Lines Matching refs:sdp

39 	struct gfs2_sbd *sdp = container_of(kobj, struct gfs2_sbd, sd_kobj);
41 return a->show ? a->show(sdp, buf) : 0;
47 struct gfs2_sbd *sdp = container_of(kobj, struct gfs2_sbd, sd_kobj);
49 return a->store ? a->store(sdp, buf, len) : len;
60 static ssize_t id_show(struct gfs2_sbd *sdp, char *buf)
63 MAJOR(sdp->sd_vfs->s_dev), MINOR(sdp->sd_vfs->s_dev));
66 static ssize_t fsname_show(struct gfs2_sbd *sdp, char *buf)
68 return snprintf(buf, PAGE_SIZE, "%s\n", sdp->sd_fsname);
71 static ssize_t uuid_show(struct gfs2_sbd *sdp, char *buf)
73 struct super_block *s = sdp->sd_vfs;
81 static ssize_t freeze_show(struct gfs2_sbd *sdp, char *buf)
83 struct super_block *sb = sdp->sd_vfs;
89 static ssize_t freeze_store(struct gfs2_sbd *sdp, const char *buf, size_t len)
102 error = thaw_super(sdp->sd_vfs);
105 error = freeze_super(sdp->sd_vfs);
112 fs_warn(sdp, "freeze %d error %d\n", n, error);
119 static ssize_t withdraw_show(struct gfs2_sbd *sdp, char *buf)
121 unsigned int b = gfs2_withdrawn(sdp);
125 static ssize_t withdraw_store(struct gfs2_sbd *sdp, const char *buf, size_t len)
139 gfs2_lm(sdp, "withdrawing from cluster at user's request\n");
140 gfs2_withdraw(sdp);
145 static ssize_t statfs_sync_store(struct gfs2_sbd *sdp, const char *buf,
160 gfs2_statfs_sync(sdp->sd_vfs, 0);
164 static ssize_t quota_sync_store(struct gfs2_sbd *sdp, const char *buf,
179 gfs2_quota_sync(sdp->sd_vfs, 0);
183 static ssize_t quota_refresh_user_store(struct gfs2_sbd *sdp, const char *buf,
201 error = gfs2_quota_refresh(sdp, qid);
205 static ssize_t quota_refresh_group_store(struct gfs2_sbd *sdp, const char *buf,
223 error = gfs2_quota_refresh(sdp, qid);
227 static ssize_t demote_rq_store(struct gfs2_sbd *sdp, const char *buf, size_t len)
262 if (!test_and_set_bit(SDF_DEMOTE, &sdp->sd_flags))
263 fs_info(sdp, "demote interface used\n");
264 rv = gfs2_glock_get(sdp, glnum, glops, 0, &gl);
304 struct gfs2_sbd *sdp = container_of(kobj, struct gfs2_sbd, sd_kobj);
306 complete(&sdp->sd_kobj_unregister);
320 static ssize_t proto_name_show(struct gfs2_sbd *sdp, char *buf)
322 const struct lm_lockops *ops = sdp->sd_lockstruct.ls_ops;
326 static ssize_t block_show(struct gfs2_sbd *sdp, char *buf)
328 struct lm_lockstruct *ls = &sdp->sd_lockstruct;
338 static ssize_t block_store(struct gfs2_sbd *sdp, const char *buf, size_t len)
340 struct lm_lockstruct *ls = &sdp->sd_lockstruct;
352 gfs2_glock_thaw(sdp);
359 static ssize_t wdack_show(struct gfs2_sbd *sdp, char *buf)
361 int val = completion_done(&sdp->sd_wdack) ? 1 : 0;
366 static ssize_t wdack_store(struct gfs2_sbd *sdp, const char *buf, size_t len)
375 !strcmp(sdp->sd_lockstruct.ls_ops->lm_proto_name, "lock_dlm"))
376 complete(&sdp->sd_wdack);
382 static ssize_t lkfirst_show(struct gfs2_sbd *sdp, char *buf)
384 struct lm_lockstruct *ls = &sdp->sd_lockstruct;
388 static ssize_t lkfirst_store(struct gfs2_sbd *sdp, const char *buf, size_t len)
396 rv = wait_for_completion_killable(&sdp->sd_locking_init);
399 spin_lock(&sdp->sd_jindex_spin);
401 if (test_bit(SDF_NOJOURNALID, &sdp->sd_flags) == 0)
404 if (sdp->sd_args.ar_spectator)
406 if (sdp->sd_lockstruct.ls_ops->lm_mount == NULL)
408 sdp->sd_lockstruct.ls_first = first;
411 spin_unlock(&sdp->sd_jindex_spin);
415 static ssize_t first_done_show(struct gfs2_sbd *sdp, char *buf)
417 struct lm_lockstruct *ls = &sdp->sd_lockstruct;
421 int gfs2_recover_set(struct gfs2_sbd *sdp, unsigned jid)
427 wait_for_completion(&sdp->sd_journal_ready);
429 spin_lock(&sdp->sd_jindex_spin);
438 if (!sdp->sd_jdesc)
440 if (sdp->sd_jdesc->jd_jid == jid && !sdp->sd_args.ar_spectator)
443 list_for_each_entry(jd, &sdp->sd_jindex_list, jd_list) {
444 if (jd->jd_jid != jid && !sdp->sd_args.ar_spectator)
450 spin_unlock(&sdp->sd_jindex_spin);
454 static ssize_t recover_store(struct gfs2_sbd *sdp, const char *buf, size_t len)
463 if (test_bit(SDF_NORECOVERY, &sdp->sd_flags)) {
468 rv = gfs2_recover_set(sdp, jid);
473 static ssize_t recover_done_show(struct gfs2_sbd *sdp, char *buf)
475 struct lm_lockstruct *ls = &sdp->sd_lockstruct;
479 static ssize_t recover_status_show(struct gfs2_sbd *sdp, char *buf)
481 struct lm_lockstruct *ls = &sdp->sd_lockstruct;
485 static ssize_t jid_show(struct gfs2_sbd *sdp, char *buf)
487 return sprintf(buf, "%d\n", sdp->sd_lockstruct.ls_jid);
490 static ssize_t jid_store(struct gfs2_sbd *sdp, const char *buf, size_t len)
498 rv = wait_for_completion_killable(&sdp->sd_locking_init);
501 spin_lock(&sdp->sd_jindex_spin);
503 if (sdp->sd_lockstruct.ls_ops->lm_mount == NULL)
506 if (test_bit(SDF_NOJOURNALID, &sdp->sd_flags) == 0)
509 if (sdp->sd_args.ar_spectator && jid > 0)
511 sdp->sd_lockstruct.ls_jid = jid;
512 clear_bit(SDF_NOJOURNALID, &sdp->sd_flags);
514 wake_up_bit(&sdp->sd_flags, SDF_NOJOURNALID);
516 spin_unlock(&sdp->sd_jindex_spin);
550 static ssize_t quota_scale_show(struct gfs2_sbd *sdp, char *buf)
553 sdp->sd_tune.gt_quota_scale_num,
554 sdp->sd_tune.gt_quota_scale_den);
557 static ssize_t quota_scale_store(struct gfs2_sbd *sdp, const char *buf,
560 struct gfs2_tune *gt = &sdp->sd_tune;
576 static ssize_t tune_set(struct gfs2_sbd *sdp, unsigned int *field,
579 struct gfs2_tune *gt = &sdp->sd_tune;
603 static ssize_t name##_show(struct gfs2_sbd *sdp, char *buf) \
605 return snprintf(buf, PAGE_SIZE, "%u\n", sdp->sd_tune.gt_##name); \
610 static ssize_t name##_store(struct gfs2_sbd *sdp, const char *buf, size_t len)\
612 return tune_set(sdp, &sdp->sd_tune.gt_##name, check_zero, buf, len); \
647 int gfs2_sys_fs_add(struct gfs2_sbd *sdp)
649 struct super_block *sb = sdp->sd_vfs;
656 sprintf(spectator, "SPECTATOR=%d", sdp->sd_args.ar_spectator ? 1 : 0);
658 init_completion(&sdp->sd_kobj_unregister);
659 sdp->sd_kobj.kset = gfs2_kset;
660 error = kobject_init_and_add(&sdp->sd_kobj, &gfs2_ktype, NULL,
661 "%s", sdp->sd_table_name);
665 error = sysfs_create_group(&sdp->sd_kobj, &tune_group);
669 error = sysfs_create_group(&sdp->sd_kobj, &lock_module_group);
673 error = sysfs_create_link(&sdp->sd_kobj,
679 kobject_uevent_env(&sdp->sd_kobj, KOBJ_ADD, envp);
683 sysfs_remove_group(&sdp->sd_kobj, &lock_module_group);
685 sysfs_remove_group(&sdp->sd_kobj, &tune_group);
687 fs_err(sdp, "error %d adding sysfs files\n", error);
688 kobject_put(&sdp->sd_kobj);
689 wait_for_completion(&sdp->sd_kobj_unregister);
694 void gfs2_sys_fs_del(struct gfs2_sbd *sdp)
696 sysfs_remove_link(&sdp->sd_kobj, "device");
697 sysfs_remove_group(&sdp->sd_kobj, &tune_group);
698 sysfs_remove_group(&sdp->sd_kobj, &lock_module_group);
699 kobject_put(&sdp->sd_kobj);
700 wait_for_completion(&sdp->sd_kobj_unregister);
706 struct gfs2_sbd *sdp = container_of(kobj, struct gfs2_sbd, sd_kobj);
707 struct super_block *s = sdp->sd_vfs;
709 add_uevent_var(env, "LOCKTABLE=%s", sdp->sd_table_name);
710 add_uevent_var(env, "LOCKPROTO=%s", sdp->sd_proto_name);
711 if (!test_bit(SDF_NOJOURNALID, &sdp->sd_flags))
712 add_uevent_var(env, "JOURNALID=%d", sdp->sd_lockstruct.ls_jid);