Lines Matching full:sdp

55 	struct gfs2_sbd *sdp;		/* incore superblock           */  member
155 struct gfs2_sbd *sdp = gl->gl_name.ln_sbd; in glock_blocked_by_withdraw() local
157 if (!gfs2_withdrawing_or_withdrawn(sdp)) in glock_blocked_by_withdraw()
161 if (!sdp->sd_jdesc || in glock_blocked_by_withdraw()
162 gl->gl_name.ln_number == sdp->sd_jdesc->jd_no_addr) in glock_blocked_by_withdraw()
176 struct gfs2_sbd *sdp = gl->gl_name.ln_sbd; in gfs2_glock_free() local
179 if (atomic_dec_and_test(&sdp->sd_glock_disposal)) in gfs2_glock_free()
180 wake_up(&sdp->sd_kill_wait); in gfs2_glock_free()
184 struct gfs2_sbd *sdp = gl->gl_name.ln_sbd; in gfs2_glock_free_later() local
187 list_add(&gl->gl_lru, &sdp->sd_dead_glocks); in gfs2_glock_free_later()
189 if (atomic_dec_and_test(&sdp->sd_glock_disposal)) in gfs2_glock_free_later()
190 wake_up(&sdp->sd_kill_wait); in gfs2_glock_free_later()
193 static void gfs2_free_dead_glocks(struct gfs2_sbd *sdp) in gfs2_free_dead_glocks() argument
195 struct list_head *list = &sdp->sd_dead_glocks; in gfs2_free_dead_glocks()
248 struct gfs2_sbd *sdp = gl->gl_name.ln_sbd; in gfs2_glock_queue_work() local
250 if (!queue_delayed_work(sdp->sd_glock_wq, &gl->gl_work, delay)) { in gfs2_glock_queue_work()
264 struct gfs2_sbd *sdp = gl->gl_name.ln_sbd; in __gfs2_glock_put() local
273 if (!gfs2_withdrawing_or_withdrawn(sdp)) in __gfs2_glock_put()
277 sdp->sd_lockstruct.ls_ops->lm_put_lock(gl); in __gfs2_glock_put()
386 struct gfs2_sbd *sdp = gh->gh_gl->gl_name.ln_sbd; in gfs2_holder_wake() local
388 wake_up(&sdp->sd_async_glock_wait); in gfs2_holder_wake()
568 struct gfs2_sbd *sdp = gl->gl_name.ln_sbd; in gfs2_set_demote() local
572 wake_up(&sdp->sd_async_glock_wait); in gfs2_set_demote()
669 struct gfs2_sbd *sdp = gl->gl_name.ln_sbd; in is_system_glock() local
670 struct gfs2_inode *m_ip = GFS2_I(sdp->sd_statfs_inode); in is_system_glock()
691 struct gfs2_sbd *sdp = gl->gl_name.ln_sbd; in do_xmote() local
692 struct lm_lockstruct *ls = &sdp->sd_lockstruct; in do_xmote()
732 if (cmpxchg(&sdp->sd_log_error, 0, ret)) { in do_xmote()
733 fs_err(sdp, "Error %d syncing glock \n", ret); in do_xmote()
749 (!cmpxchg(&sdp->sd_log_error, 0, -EIO))) { in do_xmote()
782 if (unlikely(sdp->sd_log_error) && !gfs2_withdrawing_or_withdrawn(sdp)) in do_xmote()
783 gfs2_withdraw_delayed(sdp); in do_xmote()
786 test_bit(SDF_WITHDRAW_RECOVERY, &sdp->sd_flags))) { in do_xmote()
822 fs_err(sdp, "lm_lock ret %d\n", ret); in do_xmote()
1014 struct gfs2_sbd *sdp = gl->gl_name.ln_sbd; in gfs2_queue_try_to_evict() local
1018 return !mod_delayed_work(sdp->sd_delete_wq, &gl->gl_delete, 0); in gfs2_queue_try_to_evict()
1023 struct gfs2_sbd *sdp = gl->gl_name.ln_sbd; in gfs2_queue_verify_delete() local
1029 return queue_delayed_work(sdp->sd_delete_wq, &gl->gl_delete, delay); in gfs2_queue_verify_delete()
1036 struct gfs2_sbd *sdp = gl->gl_name.ln_sbd; in delete_work_func() local
1046 inode = gfs2_lookup_by_inum(sdp, no_addr, gl->gl_no_formal_ino, in delete_work_func()
1050 !test_bit(SDF_KILL, &sdp->sd_flags) && in delete_work_func()
1148 * @sdp: The GFS2 superblock
1159 int gfs2_glock_get(struct gfs2_sbd *sdp, u64 number, in gfs2_glock_get() argument
1163 struct super_block *s = sdp->sd_vfs; in gfs2_glock_get()
1166 .ln_sbd = sdp }; in gfs2_glock_get()
1198 atomic_inc(&sdp->sd_glock_disposal); in gfs2_glock_get()
1212 gl->gl_stats = this_cpu_ptr(sdp->sd_lkstats)->lkstats[glops->go_type]; in gfs2_glock_get()
1236 if (atomic_dec_and_test(&sdp->sd_glock_disposal)) in gfs2_glock_get()
1237 wake_up(&sdp->sd_kill_wait); in gfs2_glock_get()
1373 struct gfs2_sbd *sdp = ghs[0].gh_gl->gl_name.ln_sbd; in gfs2_glock_async_wait() local
1385 if (!wait_event_timeout(sdp->sd_async_glock_wait, in gfs2_glock_async_wait()
1485 struct gfs2_sbd *sdp = gl->gl_name.ln_sbd; in add_to_queue() local
1534 if (sdp->sd_lockstruct.ls_ops->lm_cancel) in add_to_queue()
1535 sdp->sd_lockstruct.ls_ops->lm_cancel(gl); in add_to_queue()
1540 fs_err(sdp, "original: %pSR\n", (void *)gh2->gh_ip); in add_to_queue()
1541 fs_err(sdp, "pid: %d\n", pid_nr(gh2->gh_owner_pid)); in add_to_queue()
1542 fs_err(sdp, "lock type: %d req lock state : %d\n", in add_to_queue()
1544 fs_err(sdp, "new: %pSR\n", (void *)gh->gh_ip); in add_to_queue()
1545 fs_err(sdp, "pid: %d\n", pid_nr(gh->gh_owner_pid)); in add_to_queue()
1546 fs_err(sdp, "lock type: %d req lock state : %d\n", in add_to_queue()
1664 struct gfs2_sbd *sdp = gl->gl_name.ln_sbd; in gfs2_glock_dq() local
1690 if (test_bit(SDF_WITHDRAW_RECOVERY, &sdp->sd_flags) && in gfs2_glock_dq()
1692 gh->gh_gl != sdp->sd_jinode_gl) { in gfs2_glock_dq()
1693 sdp->sd_glock_dqs_held++; in gfs2_glock_dq()
1696 wait_on_bit(&sdp->sd_flags, SDF_WITHDRAW_RECOVERY, in gfs2_glock_dq()
1728 * @sdp: the filesystem
1738 int gfs2_glock_nq_num(struct gfs2_sbd *sdp, u64 number, in gfs2_glock_nq_num() argument
1745 error = gfs2_glock_get(sdp, number, glops, CREATE, &gl); in gfs2_glock_nq_num()
1960 struct gfs2_sbd *sdp = gl->gl_name.ln_sbd; in can_free_glock() local
1965 test_bit(SDF_KILL, &sdp->sd_flags)); in can_free_glock()
2064 * @sdp: the filesystem
2071 static void glock_hash_walk(glock_examiner examiner, const struct gfs2_sbd *sdp) in glock_hash_walk() argument
2082 if (gl->gl_name.ln_sbd == sdp) in glock_hash_walk()
2103 struct gfs2_sbd *sdp = gl->gl_name.ln_sbd; in flush_delete_work() local
2106 queue_delayed_work(sdp->sd_delete_wq, in flush_delete_work()
2112 void gfs2_flush_delete_work(struct gfs2_sbd *sdp) in gfs2_flush_delete_work() argument
2114 glock_hash_walk(flush_delete_work, sdp); in gfs2_flush_delete_work()
2115 flush_workqueue(sdp->sd_delete_wq); in gfs2_flush_delete_work()
2160 * @sdp: The super block
2164 void gfs2_glock_thaw(struct gfs2_sbd *sdp) in gfs2_glock_thaw() argument
2166 glock_hash_walk(thaw_glock, sdp); in gfs2_glock_thaw()
2190 void gfs2_gl_dq_holders(struct gfs2_sbd *sdp) in gfs2_gl_dq_holders() argument
2192 glock_hash_walk(withdraw_dq, sdp); in gfs2_gl_dq_holders()
2197 * @sdp: the filesystem
2202 void gfs2_gl_hash_clear(struct gfs2_sbd *sdp) in gfs2_gl_hash_clear() argument
2207 set_bit(SDF_SKIP_DLM_UNLOCK, &sdp->sd_flags); in gfs2_gl_hash_clear()
2208 flush_workqueue(sdp->sd_glock_wq); in gfs2_gl_hash_clear()
2209 glock_hash_walk(clear_glock, sdp); in gfs2_gl_hash_clear()
2210 flush_workqueue(sdp->sd_glock_wq); in gfs2_gl_hash_clear()
2213 wait_event_timeout(sdp->sd_kill_wait, in gfs2_gl_hash_clear()
2214 !atomic_read(&sdp->sd_glock_disposal), in gfs2_gl_hash_clear()
2216 if (!atomic_read(&sdp->sd_glock_disposal)) in gfs2_gl_hash_clear()
2219 fs_warn(sdp, "%u glocks left after %u seconds%s\n", in gfs2_gl_hash_clear()
2220 atomic_read(&sdp->sd_glock_disposal), in gfs2_gl_hash_clear()
2224 gfs2_lm_unmount(sdp); in gfs2_gl_hash_clear()
2225 gfs2_free_dead_glocks(sdp); in gfs2_gl_hash_clear()
2226 glock_hash_walk(dump_glock_func, sdp); in gfs2_gl_hash_clear()
2227 destroy_workqueue(sdp->sd_glock_wq); in gfs2_gl_hash_clear()
2228 sdp->sd_glock_wq = NULL; in gfs2_gl_hash_clear()
2378 struct gfs2_sbd *sdp = gl->gl_name.ln_sbd; in gfs2_dump_glock() local
2379 char fs_id_buf[sizeof(sdp->sd_fsname) + 7]; in gfs2_dump_glock()
2388 if (fsid && sdp) /* safety precaution */ in gfs2_dump_glock()
2389 sprintf(fs_id_buf, "fsid=%s: ", sdp->sd_fsname); in gfs2_dump_glock()
2460 struct gfs2_sbd *sdp = seq->private; in gfs2_sbstats_seq_show() local
2473 const struct gfs2_pcpu_lkstats *lkstats = per_cpu_ptr(sdp->sd_lkstats, i); in gfs2_sbstats_seq_show()
2535 if (gl->gl_name.ln_sbd != gi->sdp) in gfs2_glock_iter_next()
2653 gi->sdp = inode->i_private; in __gfs2_glocks_open()
2849 struct gfs2_sbd *sdp = inode->i_private; in gfs2_glockfd_open() local
2855 i->sb = sdp->sd_vfs; in gfs2_glockfd_open()
2869 void gfs2_create_debugfs_file(struct gfs2_sbd *sdp) in gfs2_create_debugfs_file() argument
2871 sdp->debugfs_dir = debugfs_create_dir(sdp->sd_table_name, gfs2_root); in gfs2_create_debugfs_file()
2873 debugfs_create_file("glocks", S_IFREG | S_IRUGO, sdp->debugfs_dir, sdp, in gfs2_create_debugfs_file()
2876 debugfs_create_file("glockfd", S_IFREG | S_IRUGO, sdp->debugfs_dir, sdp, in gfs2_create_debugfs_file()
2879 debugfs_create_file("glstats", S_IFREG | S_IRUGO, sdp->debugfs_dir, sdp, in gfs2_create_debugfs_file()
2882 debugfs_create_file("sbstats", S_IFREG | S_IRUGO, sdp->debugfs_dir, sdp, in gfs2_create_debugfs_file()
2886 void gfs2_delete_debugfs_file(struct gfs2_sbd *sdp) in gfs2_delete_debugfs_file() argument
2888 debugfs_remove_recursive(sdp->debugfs_dir); in gfs2_delete_debugfs_file()
2889 sdp->debugfs_dir = NULL; in gfs2_delete_debugfs_file()