lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Date:	Wed, 10 Jul 2013 09:47:13 +0000
From:	"Peng, Tao" <tao.peng@....com>
To:	Waiman Long <Waiman.Long@...com>,
	Alexander Viro <viro@...iv.linux.org.uk>,
	Jeff Layton <jlayton@...hat.com>,
	Miklos Szeredi <mszeredi@...e.cz>,
	Ingo Molnar <mingo@...hat.com>,
	Thomas Gleixner <tglx@...utronix.de>
CC:	"linux-fsdevel@...r.kernel.org" <linux-fsdevel@...r.kernel.org>,
	"Greg Kroah-Hartman" <gregkh@...uxfoundation.org>,
	Andreas Dilger <andreas.dilger@...el.com>,
	Oleg Drokin <oleg.drokin@...el.com>,
	Fan Yong <fan.yong@...el.com>, Ned Bass <bass6@...l.gov>,
	"devel@...verdev.osuosl.org" <devel@...verdev.osuosl.org>,
	"linux-kernel@...r.kernel.org" <linux-kernel@...r.kernel.org>,
	Peter Zijlstra <peterz@...radead.org>,
	"Steven Rostedt" <rostedt@...dmis.org>,
	Linus Torvalds <torvalds@...ux-foundation.org>,
	Benjamin Herrenschmidt <benh@...nel.crashing.org>,
	Andi Kleen <andi@...stfloor.org>,
	"Chandramouleeswaran, Aswin" <aswin@...com>,
	"Norton, Scott J" <scott.norton@...com>
Subject: RE: [PATCH v6 12/14] lustre-fs: Use the standard d_count() helper
 to access refcount

> -----Original Message-----
> From: Waiman Long [mailto:Waiman.Long@...com]
> Sent: Tuesday, July 09, 2013 9:10 AM
> To: Alexander Viro; Jeff Layton; Miklos Szeredi; Ingo Molnar; Thomas Gleixner
> Cc: Waiman Long; linux-fsdevel@...r.kernel.org; Greg Kroah-Hartman; Andreas Dilger; Peng, Tao; Oleg Drokin;
> Fan Yong; Ned Bass; devel@...verdev.osuosl.org; linux-kernel@...r.kernel.org; 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@...com>
> ---
>  .../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
> 

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ