> -----Original Message----- > From: Waiman Long [mailto:Waiman.Long@xxxxxx] > Sent: Tuesday, July 09, 2013 9:10 AM > To: Alexander Viro; Jeff Layton; Miklos Szeredi; Ingo Molnar; Thomas Gleixner > Cc: Waiman Long; linux-fsdevel@xxxxxxxxxxxxxxx; Greg Kroah-Hartman; Andreas Dilger; Peng, Tao; Oleg Drokin; > Fan Yong; Ned Bass; devel@xxxxxxxxxxxxxxxxxxxx; linux-kernel@xxxxxxxxxxxxxxx; Peter Zijlstra; Steven > Rostedt; Linus Torvalds; Benjamin Herrenschmidt; Andi Kleen; Chandramouleeswaran, Aswin; Norton, Scott J > Subject: [PATCH v6 12/14] lustre-fs: Use the standard d_count() helper to access refcount > > The Lustre FS should use the newly defined d_count() helper function > to access the dentry's reference count instead of defining its own > d_refcount() macro for the same purpose. Since the current lustre > code is marked as broken, no build test was attempted for this change. > This was already fixed by Al. See commit 193deee199c55ce06bca2b3e5e2d3c10208a942a in Linus tree. Thanks, Tao > Signed-off-by: Waiman Long <Waiman.Long@xxxxxx> > --- > .../lustre/include/linux/lustre_patchless_compat.h | 2 -- > drivers/staging/lustre/lustre/include/linux/lvfs.h | 2 +- > drivers/staging/lustre/lustre/llite/dcache.c | 8 ++++---- > .../staging/lustre/lustre/llite/llite_internal.h | 4 ++-- > drivers/staging/lustre/lustre/llite/llite_lib.c | 2 +- > drivers/staging/lustre/lustre/llite/namei.c | 4 ++-- > drivers/staging/lustre/lustre/lvfs/lvfs_linux.c | 4 ++-- > 7 files changed, 12 insertions(+), 14 deletions(-) > > diff --git a/drivers/staging/lustre/lustre/include/linux/lustre_patchless_compat.h > b/drivers/staging/lustre/lustre/include/linux/lustre_patchless_compat.h > index f050808..a8e9c0c 100644 > --- a/drivers/staging/lustre/lustre/include/linux/lustre_patchless_compat.h > +++ b/drivers/staging/lustre/lustre/include/linux/lustre_patchless_compat.h > @@ -60,8 +60,6 @@ truncate_complete_page(struct address_space *mapping, struct page *page) > ll_delete_from_page_cache(page); > } > > -# define d_refcount(d) ((d)->d_count) > - > #ifdef ATTR_OPEN > # define ATTR_FROM_OPEN ATTR_OPEN > #else > diff --git a/drivers/staging/lustre/lustre/include/linux/lvfs.h > b/drivers/staging/lustre/lustre/include/linux/lvfs.h > index b4db6cb..eb59ac7 100644 > --- a/drivers/staging/lustre/lustre/include/linux/lvfs.h > +++ b/drivers/staging/lustre/lustre/include/linux/lvfs.h > @@ -99,7 +99,7 @@ static inline void l_dput(struct dentry *de) > if (!de || IS_ERR(de)) > return; > //shrink_dcache_parent(de); > - LASSERT(d_refcount(de) > 0); > + LASSERT(d_count(de) > 0); > dput(de); > } > > diff --git a/drivers/staging/lustre/lustre/llite/dcache.c b/drivers/staging/lustre/lustre/llite/dcache.c > index 7d6abff..ff0d085 100644 > --- a/drivers/staging/lustre/lustre/llite/dcache.c > +++ b/drivers/staging/lustre/lustre/llite/dcache.c > @@ -98,7 +98,7 @@ int ll_dcompare(const struct dentry *parent, const struct inode *pinode, > > CDEBUG(D_DENTRY, "found name %.*s(%p) flags %#x refc %d\n", > name->len, name->name, dentry, dentry->d_flags, > - d_refcount(dentry)); > + d_count(dentry)); > > /* mountpoint is always valid */ > if (d_mountpoint((struct dentry *)dentry)) > @@ -165,7 +165,7 @@ static int ll_ddelete(const struct dentry *de) > list_empty(&de->d_subdirs) ? "" : "subdirs"); > > /* kernel >= 2.6.38 last refcount is decreased after this function. */ > - LASSERT(d_refcount(de) == 1); > + LASSERT(d_count(de) == 1); > > /* Disable this piece of code temproarily because this is called > * inside dcache_lock so it's not appropriate to do lots of work > @@ -190,7 +190,7 @@ static int ll_set_dd(struct dentry *de) > > CDEBUG(D_DENTRY, "ldd on dentry %.*s (%p) parent %p inode %p refc %d\n", > de->d_name.len, de->d_name.name, de, de->d_parent, de->d_inode, > - d_refcount(de)); > + d_count(de)); > > if (de->d_fsdata == NULL) { > struct ll_dentry_data *lld; > @@ -540,7 +540,7 @@ out: > CDEBUG(D_DENTRY, "revalidated dentry %.*s (%p) parent %p " > "inode %p refc %d\n", de->d_name.len, > de->d_name.name, de, de->d_parent, de->d_inode, > - d_refcount(de)); > + d_count(de)); > > ll_set_lock_data(exp, de->d_inode, it, &bits); > > diff --git a/drivers/staging/lustre/lustre/llite/llite_internal.h > b/drivers/staging/lustre/lustre/llite/llite_internal.h > index 992cd20..5227c5c 100644 > --- a/drivers/staging/lustre/lustre/llite/llite_internal.h > +++ b/drivers/staging/lustre/lustre/llite/llite_internal.h > @@ -1529,12 +1529,12 @@ 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)); > + dentry->d_parent, dentry->d_inode, d_count(dentry)); > > spin_lock_nested(&dentry->d_lock, > nested ? DENTRY_D_LOCK_NESTED : DENTRY_D_LOCK_NORMAL); > __d_lustre_invalidate(dentry); > - if (d_refcount(dentry) == 0) > + if (d_count(dentry) == 0) > __d_drop(dentry); > spin_unlock(&dentry->d_lock); > } > diff --git a/drivers/staging/lustre/lustre/llite/llite_lib.c > b/drivers/staging/lustre/lustre/llite/llite_lib.c > index 2311b20..afae801 100644 > --- a/drivers/staging/lustre/lustre/llite/llite_lib.c > +++ b/drivers/staging/lustre/lustre/llite/llite_lib.c > @@ -659,7 +659,7 @@ void lustre_dump_dentry(struct dentry *dentry, int recur) > " flags=0x%x, fsdata=%p, %d subdirs\n", dentry, > dentry->d_name.len, dentry->d_name.name, > dentry->d_parent->d_name.len, dentry->d_parent->d_name.name, > - dentry->d_parent, dentry->d_inode, d_refcount(dentry), > + dentry->d_parent, dentry->d_inode, d_count(dentry), > dentry->d_flags, dentry->d_fsdata, subdirs); > if (dentry->d_inode != NULL) > ll_dump_inode(dentry->d_inode); > diff --git a/drivers/staging/lustre/lustre/llite/namei.c b/drivers/staging/lustre/lustre/llite/namei.c > index 58d59aa..ff8f63d 100644 > --- a/drivers/staging/lustre/lustre/llite/namei.c > +++ b/drivers/staging/lustre/lustre/llite/namei.c > @@ -409,7 +409,7 @@ struct dentry *ll_splice_alias(struct inode *inode, struct dentry *de) > iput(inode); > CDEBUG(D_DENTRY, > "Reuse dentry %p inode %p refc %d flags %#x\n", > - new, new->d_inode, d_refcount(new), new->d_flags); > + new, new->d_inode, d_count(new), new->d_flags); > return new; > } > } > @@ -417,7 +417,7 @@ struct dentry *ll_splice_alias(struct inode *inode, struct dentry *de) > __d_lustre_invalidate(de); > d_add(de, inode); > CDEBUG(D_DENTRY, "Add dentry %p inode %p refc %d flags %#x\n", > - de, de->d_inode, d_refcount(de), de->d_flags); > + de, de->d_inode, d_count(de), de->d_flags); > return de; > } > > diff --git a/drivers/staging/lustre/lustre/lvfs/lvfs_linux.c > b/drivers/staging/lustre/lustre/lvfs/lvfs_linux.c > index 1e6f32c..e70d8fe 100644 > --- a/drivers/staging/lustre/lustre/lvfs/lvfs_linux.c > +++ b/drivers/staging/lustre/lustre/lvfs/lvfs_linux.c > @@ -121,8 +121,8 @@ void push_ctxt(struct lvfs_run_ctxt *save, struct lvfs_run_ctxt *new_ctx, > OBD_SET_CTXT_MAGIC(save); > > save->fs = get_fs(); > - LASSERT(d_refcount(cfs_fs_pwd(current->fs))); > - LASSERT(d_refcount(new_ctx->pwd)); > + LASSERT(d_count(cfs_fs_pwd(current->fs))); > + LASSERT(d_count(new_ctx->pwd)); > save->pwd = dget(cfs_fs_pwd(current->fs)); > save->pwdmnt = mntget(cfs_fs_mnt(current->fs)); > save->luc.luc_umask = current_umask(); > -- > 1.7.1 > ��.n��������+%������w��{.n�����{���)��jg��������ݢj����G�������j:+v���w�m������w�������h�����٥