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()
1008 struct gfs2_sbd *sdp = gl->gl_name.ln_sbd; in gfs2_queue_try_to_evict() local
1012 return queue_delayed_work(sdp->sd_delete_wq, in gfs2_queue_try_to_evict()
1018 struct gfs2_sbd *sdp = gl->gl_name.ln_sbd; in gfs2_queue_verify_evict() local
1022 return queue_delayed_work(sdp->sd_delete_wq, in gfs2_queue_verify_evict()
1030 struct gfs2_sbd *sdp = gl->gl_name.ln_sbd; in delete_work_func() local
1053 if (test_bit(SDF_KILL, &sdp->sd_flags)) in delete_work_func()
1062 inode = gfs2_lookup_by_inum(sdp, no_addr, gl->gl_no_formal_ino, in delete_work_func()
1066 !test_bit(SDF_KILL, &sdp->sd_flags) && in delete_work_func()
1165 * @sdp: The GFS2 superblock
1176 int gfs2_glock_get(struct gfs2_sbd *sdp, u64 number, in gfs2_glock_get() argument
1180 struct super_block *s = sdp->sd_vfs; in gfs2_glock_get()
1183 .ln_sbd = sdp }; in gfs2_glock_get()
1215 atomic_inc(&sdp->sd_glock_disposal); in gfs2_glock_get()
1229 gl->gl_stats = this_cpu_ptr(sdp->sd_lkstats)->lkstats[glops->go_type]; in gfs2_glock_get()
1253 if (atomic_dec_and_test(&sdp->sd_glock_disposal)) in gfs2_glock_get()
1254 wake_up(&sdp->sd_kill_wait); in gfs2_glock_get()
1390 struct gfs2_sbd *sdp = ghs[0].gh_gl->gl_name.ln_sbd; in gfs2_glock_async_wait() local
1402 if (!wait_event_timeout(sdp->sd_async_glock_wait, in gfs2_glock_async_wait()
1505 struct gfs2_sbd *sdp = gl->gl_name.ln_sbd; in add_to_queue() local
1554 if (sdp->sd_lockstruct.ls_ops->lm_cancel) in add_to_queue()
1555 sdp->sd_lockstruct.ls_ops->lm_cancel(gl); in add_to_queue()
1560 fs_err(sdp, "original: %pSR\n", (void *)gh2->gh_ip); in add_to_queue()
1561 fs_err(sdp, "pid: %d\n", pid_nr(gh2->gh_owner_pid)); in add_to_queue()
1562 fs_err(sdp, "lock type: %d req lock state : %d\n", in add_to_queue()
1564 fs_err(sdp, "new: %pSR\n", (void *)gh->gh_ip); in add_to_queue()
1565 fs_err(sdp, "pid: %d\n", pid_nr(gh->gh_owner_pid)); in add_to_queue()
1566 fs_err(sdp, "lock type: %d req lock state : %d\n", in add_to_queue()
1690 struct gfs2_sbd *sdp = gl->gl_name.ln_sbd; in gfs2_glock_dq() local
1716 if (test_bit(SDF_WITHDRAW_RECOVERY, &sdp->sd_flags) && in gfs2_glock_dq()
1718 gh->gh_gl != sdp->sd_jinode_gl) { in gfs2_glock_dq()
1719 sdp->sd_glock_dqs_held++; in gfs2_glock_dq()
1722 wait_on_bit(&sdp->sd_flags, SDF_WITHDRAW_RECOVERY, in gfs2_glock_dq()
1754 * @sdp: the filesystem
1764 int gfs2_glock_nq_num(struct gfs2_sbd *sdp, u64 number, in gfs2_glock_nq_num() argument
1771 error = gfs2_glock_get(sdp, number, glops, CREATE, &gl); in gfs2_glock_nq_num()
1986 struct gfs2_sbd *sdp = gl->gl_name.ln_sbd; in can_free_glock() local
1991 test_bit(SDF_KILL, &sdp->sd_flags)); in can_free_glock()
2090 * @sdp: the filesystem
2097 static void glock_hash_walk(glock_examiner examiner, const struct gfs2_sbd *sdp) in glock_hash_walk() argument
2108 if (gl->gl_name.ln_sbd == sdp) in glock_hash_walk()
2129 struct gfs2_sbd *sdp = gl->gl_name.ln_sbd; in flush_delete_work() local
2132 queue_delayed_work(sdp->sd_delete_wq, in flush_delete_work()
2138 void gfs2_flush_delete_work(struct gfs2_sbd *sdp) in gfs2_flush_delete_work() argument
2140 glock_hash_walk(flush_delete_work, sdp); in gfs2_flush_delete_work()
2141 flush_workqueue(sdp->sd_delete_wq); in gfs2_flush_delete_work()
2186 * @sdp: The super block
2190 void gfs2_glock_thaw(struct gfs2_sbd *sdp) in gfs2_glock_thaw() argument
2192 glock_hash_walk(thaw_glock, sdp); in gfs2_glock_thaw()
2216 void gfs2_gl_dq_holders(struct gfs2_sbd *sdp) in gfs2_gl_dq_holders() argument
2218 glock_hash_walk(withdraw_dq, sdp); in gfs2_gl_dq_holders()
2223 * @sdp: the filesystem
2228 void gfs2_gl_hash_clear(struct gfs2_sbd *sdp) in gfs2_gl_hash_clear() argument
2233 set_bit(SDF_SKIP_DLM_UNLOCK, &sdp->sd_flags); in gfs2_gl_hash_clear()
2234 flush_workqueue(sdp->sd_glock_wq); in gfs2_gl_hash_clear()
2235 glock_hash_walk(clear_glock, sdp); in gfs2_gl_hash_clear()
2236 flush_workqueue(sdp->sd_glock_wq); in gfs2_gl_hash_clear()
2239 wait_event_timeout(sdp->sd_kill_wait, in gfs2_gl_hash_clear()
2240 !atomic_read(&sdp->sd_glock_disposal), in gfs2_gl_hash_clear()
2242 if (!atomic_read(&sdp->sd_glock_disposal)) in gfs2_gl_hash_clear()
2245 fs_warn(sdp, "%u glocks left after %u seconds%s\n", in gfs2_gl_hash_clear()
2246 atomic_read(&sdp->sd_glock_disposal), in gfs2_gl_hash_clear()
2250 gfs2_lm_unmount(sdp); in gfs2_gl_hash_clear()
2251 gfs2_free_dead_glocks(sdp); in gfs2_gl_hash_clear()
2252 glock_hash_walk(dump_glock_func, sdp); in gfs2_gl_hash_clear()
2253 destroy_workqueue(sdp->sd_glock_wq); in gfs2_gl_hash_clear()
2254 sdp->sd_glock_wq = NULL; in gfs2_gl_hash_clear()
2404 struct gfs2_sbd *sdp = gl->gl_name.ln_sbd; in gfs2_dump_glock() local
2405 char fs_id_buf[sizeof(sdp->sd_fsname) + 7]; in gfs2_dump_glock()
2414 if (fsid && sdp) /* safety precaution */ in gfs2_dump_glock()
2415 sprintf(fs_id_buf, "fsid=%s: ", sdp->sd_fsname); in gfs2_dump_glock()
2486 struct gfs2_sbd *sdp = seq->private; in gfs2_sbstats_seq_show() local
2499 const struct gfs2_pcpu_lkstats *lkstats = per_cpu_ptr(sdp->sd_lkstats, i); in gfs2_sbstats_seq_show()
2561 if (gl->gl_name.ln_sbd != gi->sdp) in gfs2_glock_iter_next()
2679 gi->sdp = inode->i_private; in __gfs2_glocks_open()
2882 struct gfs2_sbd *sdp = inode->i_private; in gfs2_glockfd_open() local
2888 i->sb = sdp->sd_vfs; in gfs2_glockfd_open()
2902 void gfs2_create_debugfs_file(struct gfs2_sbd *sdp) in gfs2_create_debugfs_file() argument
2904 sdp->debugfs_dir = debugfs_create_dir(sdp->sd_table_name, gfs2_root); in gfs2_create_debugfs_file()
2906 debugfs_create_file("glocks", S_IFREG | S_IRUGO, sdp->debugfs_dir, sdp, in gfs2_create_debugfs_file()
2909 debugfs_create_file("glockfd", S_IFREG | S_IRUGO, sdp->debugfs_dir, sdp, in gfs2_create_debugfs_file()
2912 debugfs_create_file("glstats", S_IFREG | S_IRUGO, sdp->debugfs_dir, sdp, in gfs2_create_debugfs_file()
2915 debugfs_create_file("sbstats", S_IFREG | S_IRUGO, sdp->debugfs_dir, sdp, in gfs2_create_debugfs_file()
2919 void gfs2_delete_debugfs_file(struct gfs2_sbd *sdp) in gfs2_delete_debugfs_file() argument
2921 debugfs_remove_recursive(sdp->debugfs_dir); in gfs2_delete_debugfs_file()
2922 sdp->debugfs_dir = NULL; in gfs2_delete_debugfs_file()