Lines Matching full:sdp
39 struct gfs2_sbd *sdp = container_of(kobj, struct gfs2_sbd, sd_kobj); in gfs2_attr_show() local
41 return a->show ? a->show(sdp, buf) : 0; in gfs2_attr_show()
47 struct gfs2_sbd *sdp = container_of(kobj, struct gfs2_sbd, sd_kobj); in gfs2_attr_store() local
49 return a->store ? a->store(sdp, buf, len) : len; in gfs2_attr_store()
60 static ssize_t id_show(struct gfs2_sbd *sdp, char *buf) in id_show() argument
63 MAJOR(sdp->sd_vfs->s_dev), MINOR(sdp->sd_vfs->s_dev)); in id_show()
66 static ssize_t status_show(struct gfs2_sbd *sdp, char *buf) in status_show() argument
68 unsigned long f = sdp->sd_flags; in status_show()
102 (sdp->sd_jdesc ? sdp->sd_jdesc->jd_jid : 0), in status_show()
103 (sdp->sd_args.ar_spectator ? 1 : 0), in status_show()
109 (sb_rdonly(sdp->sd_vfs) ? 1 : 0), in status_show()
118 sdp->sd_log_error, in status_show()
119 rwsem_is_locked(&sdp->sd_log_flush_lock), in status_show()
120 sdp->sd_log_num_revoke, in status_show()
121 atomic_read(&sdp->sd_log_in_flight), in status_show()
122 atomic_read(&sdp->sd_log_blks_needed), in status_show()
123 atomic_read(&sdp->sd_log_blks_free), in status_show()
124 sdp->sd_log_flush_head, in status_show()
125 sdp->sd_log_flush_tail, in status_show()
126 sdp->sd_log_blks_reserved, in status_show()
127 atomic_read(&sdp->sd_log_revokes_available)); in status_show()
131 static ssize_t fsname_show(struct gfs2_sbd *sdp, char *buf) in fsname_show() argument
133 return snprintf(buf, PAGE_SIZE, "%s\n", sdp->sd_fsname); in fsname_show()
136 static ssize_t uuid_show(struct gfs2_sbd *sdp, char *buf) in uuid_show() argument
138 struct super_block *s = sdp->sd_vfs; in uuid_show()
146 static ssize_t freeze_show(struct gfs2_sbd *sdp, char *buf) in freeze_show() argument
148 struct super_block *sb = sdp->sd_vfs; in freeze_show()
154 static ssize_t freeze_store(struct gfs2_sbd *sdp, const char *buf, size_t len) in freeze_store() argument
167 error = thaw_super(sdp->sd_vfs); in freeze_store()
170 error = freeze_super(sdp->sd_vfs); in freeze_store()
177 fs_warn(sdp, "freeze %d error %d\n", n, error); in freeze_store()
184 static ssize_t withdraw_show(struct gfs2_sbd *sdp, char *buf) in withdraw_show() argument
186 unsigned int b = gfs2_withdrawn(sdp); in withdraw_show()
190 static ssize_t withdraw_store(struct gfs2_sbd *sdp, const char *buf, size_t len) in withdraw_store() argument
204 gfs2_lm(sdp, "withdrawing from cluster at user's request\n"); in withdraw_store()
205 gfs2_withdraw(sdp); in withdraw_store()
210 static ssize_t statfs_sync_store(struct gfs2_sbd *sdp, const char *buf, in statfs_sync_store() argument
225 gfs2_statfs_sync(sdp->sd_vfs, 0); in statfs_sync_store()
229 static ssize_t quota_sync_store(struct gfs2_sbd *sdp, const char *buf, in quota_sync_store() argument
244 gfs2_quota_sync(sdp->sd_vfs, 0); in quota_sync_store()
248 static ssize_t quota_refresh_user_store(struct gfs2_sbd *sdp, const char *buf, in quota_refresh_user_store() argument
266 error = gfs2_quota_refresh(sdp, qid); in quota_refresh_user_store()
270 static ssize_t quota_refresh_group_store(struct gfs2_sbd *sdp, const char *buf, in quota_refresh_group_store() argument
288 error = gfs2_quota_refresh(sdp, qid); in quota_refresh_group_store()
292 static ssize_t demote_rq_store(struct gfs2_sbd *sdp, const char *buf, size_t len) in demote_rq_store() argument
327 if (!test_and_set_bit(SDF_DEMOTE, &sdp->sd_flags)) in demote_rq_store()
328 fs_info(sdp, "demote interface used\n"); in demote_rq_store()
329 rv = gfs2_glock_get(sdp, glnum, glops, 0, &gl); in demote_rq_store()
371 struct gfs2_sbd *sdp = container_of(kobj, struct gfs2_sbd, sd_kobj); in gfs2_sbd_release() local
373 complete(&sdp->sd_kobj_unregister); in gfs2_sbd_release()
387 static ssize_t proto_name_show(struct gfs2_sbd *sdp, char *buf) in proto_name_show() argument
389 const struct lm_lockops *ops = sdp->sd_lockstruct.ls_ops; in proto_name_show()
393 static ssize_t block_show(struct gfs2_sbd *sdp, char *buf) in block_show() argument
395 struct lm_lockstruct *ls = &sdp->sd_lockstruct; in block_show()
405 static ssize_t block_store(struct gfs2_sbd *sdp, const char *buf, size_t len) in block_store() argument
407 struct lm_lockstruct *ls = &sdp->sd_lockstruct; in block_store()
419 gfs2_glock_thaw(sdp); in block_store()
426 static ssize_t wdack_show(struct gfs2_sbd *sdp, char *buf) in wdack_show() argument
428 int val = completion_done(&sdp->sd_wdack) ? 1 : 0; in wdack_show()
433 static ssize_t wdack_store(struct gfs2_sbd *sdp, const char *buf, size_t len) in wdack_store() argument
442 !strcmp(sdp->sd_lockstruct.ls_ops->lm_proto_name, "lock_dlm")) in wdack_store()
443 complete(&sdp->sd_wdack); in wdack_store()
449 static ssize_t lkfirst_show(struct gfs2_sbd *sdp, char *buf) in lkfirst_show() argument
451 struct lm_lockstruct *ls = &sdp->sd_lockstruct; in lkfirst_show()
455 static ssize_t lkfirst_store(struct gfs2_sbd *sdp, const char *buf, size_t len) in lkfirst_store() argument
463 rv = wait_for_completion_killable(&sdp->sd_locking_init); in lkfirst_store()
466 spin_lock(&sdp->sd_jindex_spin); in lkfirst_store()
468 if (test_bit(SDF_NOJOURNALID, &sdp->sd_flags) == 0) in lkfirst_store()
471 if (sdp->sd_args.ar_spectator) in lkfirst_store()
473 if (sdp->sd_lockstruct.ls_ops->lm_mount == NULL) in lkfirst_store()
475 sdp->sd_lockstruct.ls_first = first; in lkfirst_store()
478 spin_unlock(&sdp->sd_jindex_spin); in lkfirst_store()
482 static ssize_t first_done_show(struct gfs2_sbd *sdp, char *buf) in first_done_show() argument
484 struct lm_lockstruct *ls = &sdp->sd_lockstruct; in first_done_show()
488 int gfs2_recover_set(struct gfs2_sbd *sdp, unsigned jid) in gfs2_recover_set() argument
494 wait_for_completion(&sdp->sd_journal_ready); in gfs2_recover_set()
496 spin_lock(&sdp->sd_jindex_spin); in gfs2_recover_set()
505 if (!sdp->sd_jdesc) in gfs2_recover_set()
507 if (sdp->sd_jdesc->jd_jid == jid && !sdp->sd_args.ar_spectator) in gfs2_recover_set()
510 list_for_each_entry(jd, &sdp->sd_jindex_list, jd_list) { in gfs2_recover_set()
511 if (jd->jd_jid != jid && !sdp->sd_args.ar_spectator) in gfs2_recover_set()
517 spin_unlock(&sdp->sd_jindex_spin); in gfs2_recover_set()
521 static ssize_t recover_store(struct gfs2_sbd *sdp, const char *buf, size_t len) in recover_store() argument
530 if (test_bit(SDF_NORECOVERY, &sdp->sd_flags)) { in recover_store()
535 rv = gfs2_recover_set(sdp, jid); in recover_store()
540 static ssize_t recover_done_show(struct gfs2_sbd *sdp, char *buf) in recover_done_show() argument
542 struct lm_lockstruct *ls = &sdp->sd_lockstruct; in recover_done_show()
546 static ssize_t recover_status_show(struct gfs2_sbd *sdp, char *buf) in recover_status_show() argument
548 struct lm_lockstruct *ls = &sdp->sd_lockstruct; in recover_status_show()
552 static ssize_t jid_show(struct gfs2_sbd *sdp, char *buf) in jid_show() argument
554 return sprintf(buf, "%d\n", sdp->sd_lockstruct.ls_jid); in jid_show()
557 static ssize_t jid_store(struct gfs2_sbd *sdp, const char *buf, size_t len) in jid_store() argument
565 rv = wait_for_completion_killable(&sdp->sd_locking_init); in jid_store()
568 spin_lock(&sdp->sd_jindex_spin); in jid_store()
570 if (sdp->sd_lockstruct.ls_ops->lm_mount == NULL) in jid_store()
573 if (test_bit(SDF_NOJOURNALID, &sdp->sd_flags) == 0) in jid_store()
576 if (sdp->sd_args.ar_spectator && jid > 0) in jid_store()
578 sdp->sd_lockstruct.ls_jid = jid; in jid_store()
579 clear_bit(SDF_NOJOURNALID, &sdp->sd_flags); in jid_store()
581 wake_up_bit(&sdp->sd_flags, SDF_NOJOURNALID); in jid_store()
583 spin_unlock(&sdp->sd_jindex_spin); in jid_store()
617 static ssize_t quota_scale_show(struct gfs2_sbd *sdp, char *buf) in quota_scale_show() argument
620 sdp->sd_tune.gt_quota_scale_num, in quota_scale_show()
621 sdp->sd_tune.gt_quota_scale_den); in quota_scale_show()
624 static ssize_t quota_scale_store(struct gfs2_sbd *sdp, const char *buf, in quota_scale_store() argument
627 struct gfs2_tune *gt = &sdp->sd_tune; in quota_scale_store()
643 static ssize_t tune_set(struct gfs2_sbd *sdp, unsigned int *field, in tune_set() argument
646 struct gfs2_tune *gt = &sdp->sd_tune; in tune_set()
670 static ssize_t name##_show(struct gfs2_sbd *sdp, char *buf) \
672 return snprintf(buf, PAGE_SIZE, "%u\n", sdp->sd_tune.gt_##name); \
677 static ssize_t name##_store(struct gfs2_sbd *sdp, const char *buf, size_t len)\
679 return tune_set(sdp, &sdp->sd_tune.gt_##name, check_zero, buf, len); \
714 int gfs2_sys_fs_add(struct gfs2_sbd *sdp) in gfs2_sys_fs_add() argument
716 struct super_block *sb = sdp->sd_vfs; in gfs2_sys_fs_add()
723 sprintf(spectator, "SPECTATOR=%d", sdp->sd_args.ar_spectator ? 1 : 0); in gfs2_sys_fs_add()
725 init_completion(&sdp->sd_kobj_unregister); in gfs2_sys_fs_add()
726 sdp->sd_kobj.kset = gfs2_kset; in gfs2_sys_fs_add()
727 error = kobject_init_and_add(&sdp->sd_kobj, &gfs2_ktype, NULL, in gfs2_sys_fs_add()
728 "%s", sdp->sd_table_name); in gfs2_sys_fs_add()
732 error = sysfs_create_group(&sdp->sd_kobj, &tune_group); in gfs2_sys_fs_add()
736 error = sysfs_create_group(&sdp->sd_kobj, &lock_module_group); in gfs2_sys_fs_add()
740 error = sysfs_create_link(&sdp->sd_kobj, in gfs2_sys_fs_add()
746 kobject_uevent_env(&sdp->sd_kobj, KOBJ_ADD, envp); in gfs2_sys_fs_add()
750 sysfs_remove_group(&sdp->sd_kobj, &lock_module_group); in gfs2_sys_fs_add()
752 sysfs_remove_group(&sdp->sd_kobj, &tune_group); in gfs2_sys_fs_add()
754 fs_err(sdp, "error %d adding sysfs files\n", error); in gfs2_sys_fs_add()
755 kobject_put(&sdp->sd_kobj); in gfs2_sys_fs_add()
756 wait_for_completion(&sdp->sd_kobj_unregister); in gfs2_sys_fs_add()
761 void gfs2_sys_fs_del(struct gfs2_sbd *sdp) in gfs2_sys_fs_del() argument
763 sysfs_remove_link(&sdp->sd_kobj, "device"); in gfs2_sys_fs_del()
764 sysfs_remove_group(&sdp->sd_kobj, &tune_group); in gfs2_sys_fs_del()
765 sysfs_remove_group(&sdp->sd_kobj, &lock_module_group); in gfs2_sys_fs_del()
766 kobject_put(&sdp->sd_kobj); in gfs2_sys_fs_del()
767 wait_for_completion(&sdp->sd_kobj_unregister); in gfs2_sys_fs_del()
772 struct gfs2_sbd *sdp = container_of(kobj, struct gfs2_sbd, sd_kobj); in gfs2_uevent() local
773 struct super_block *s = sdp->sd_vfs; in gfs2_uevent()
775 add_uevent_var(env, "LOCKTABLE=%s", sdp->sd_table_name); in gfs2_uevent()
776 add_uevent_var(env, "LOCKPROTO=%s", sdp->sd_proto_name); in gfs2_uevent()
777 if (!test_bit(SDF_NOJOURNALID, &sdp->sd_flags)) in gfs2_uevent()
778 add_uevent_var(env, "JOURNALID=%d", sdp->sd_lockstruct.ls_jid); in gfs2_uevent()