X-Git-Url: https://git.whamcloud.com/?p=fs%2Flustre-release.git;a=blobdiff_plain;f=lustre%2Fllite%2Fllite_internal.h;h=daaa3718bd35db03cda740c6b3a08100b2971f0d;hp=d150bb6af17a04e927dd6d6e165bd5aea6090bcc;hb=ea766bd959cc2347b223d597b3f8a31e010bed72;hpb=58548b6f5faaab0b2c8f9429e43dd930ce52da54 diff --git a/lustre/llite/llite_internal.h b/lustre/llite/llite_internal.h index d150bb6..daaa371 100644 --- a/lustre/llite/llite_internal.h +++ b/lustre/llite/llite_internal.h @@ -1585,13 +1585,14 @@ static inline void __d_lustre_invalidate(struct dentry *dentry) * ll_md_blocking_ast), unhash this dentry, and let dcache to reclaim it later; * else dput() of the last refcount will unhash this dentry and kill it. */ -static inline void d_lustre_invalidate(struct dentry *dentry) +static inline void d_lustre_invalidate(struct dentry *dentry, int nested) { CDEBUG(D_DENTRY, "invalidate dentry %.*s (%p) parent %p inode %p " "refc %d\n", dentry->d_name.len, dentry->d_name.name, dentry, dentry->d_parent, dentry->d_inode, d_refcount(dentry)); - spin_lock(&dentry->d_lock); + spin_lock_nested(&dentry->d_lock, + nested ? DENTRY_D_LOCK_NESTED : DENTRY_D_LOCK_NORMAL); __d_lustre_invalidate(dentry); if (d_refcount(dentry) == 0) __d_drop(dentry);