All of lore.kernel.org
 help / color / mirror / Atom feed
From: Joel Becker <Joel.Becker@oracle.com>
To: Louis Rilling <louis.rilling@kerlabs.com>
Cc: linux-kernel@vger.kernel.org, ocfs2-devel@oss.oracle.com
Subject: [Ocfs2-devel] [BUGFIX][PATCH] configfs: Fix open directory making rmdir()	fail
Date: Thu, 3 Jul 2008 15:08:05 -0700	[thread overview]
Message-ID: <20080703220805.GI1502@mail.oracle.com> (raw)
In-Reply-To: <1214565025-2646-1-git-send-email-louis.rilling@kerlabs.com>

On Fri, Jun 27, 2008 at 01:10:25PM +0200, Louis Rilling wrote:
> When checking for user-created elements under an item to be removed by rmdir(),
> configfs_detach_prep() counts fake configfs_dirents created by dir_open() as
> user-created and fails when finding one. It is however perfectly valid to remove
> a directory that is open.
> 
> Simply make configfs_detach_prep() skip fake configfs_dirent, like it already
> does for attributes, and like detach_groups() does.

	This looks good.

> Signed-off-by: Louis Rilling <louis.rilling@kerlabs.com>
> ---
>  fs/configfs/dir.c |    3 ++-
>  1 files changed, 2 insertions(+), 1 deletions(-)
> 
> diff --git a/fs/configfs/dir.c b/fs/configfs/dir.c
> index 2c873fd..e721fd5 100644
> --- a/fs/configfs/dir.c
> +++ b/fs/configfs/dir.c
> @@ -379,7 +379,8 @@ static int configfs_detach_prep(struct dentry *dentry, struct mutex **wait_mutex
>  
>  	ret = 0;
>  	list_for_each_entry(sd, &parent_sd->s_children, s_sibling) {
> -		if (sd->s_type & CONFIGFS_NOT_PINNED)
> +		if (!sd->s_element ||
> +		    (sd->s_type & CONFIGFS_NOT_PINNED))
>  			continue;
>  		if (sd->s_type & CONFIGFS_USET_DEFAULT) {
>  			/* Abort if racing with mkdir() */
> -- 
> 1.5.5.3
> 

-- 

"You can get more with a kind word and a gun than you can with
 a kind word alone."
         - Al Capone

Joel Becker
Principal Software Developer
Oracle
E-mail: joel.becker at oracle.com
Phone: (650) 506-8127

WARNING: multiple messages have this Message-ID (diff)
From: Joel Becker <Joel.Becker@oracle.com>
To: Louis Rilling <louis.rilling@kerlabs.com>
Cc: linux-kernel@vger.kernel.org, ocfs2-devel@oss.oracle.com
Subject: Re: [BUGFIX][PATCH] configfs: Fix open directory making rmdir() fail
Date: Thu, 3 Jul 2008 15:08:05 -0700	[thread overview]
Message-ID: <20080703220805.GI1502@mail.oracle.com> (raw)
In-Reply-To: <1214565025-2646-1-git-send-email-louis.rilling@kerlabs.com>

On Fri, Jun 27, 2008 at 01:10:25PM +0200, Louis Rilling wrote:
> When checking for user-created elements under an item to be removed by rmdir(),
> configfs_detach_prep() counts fake configfs_dirents created by dir_open() as
> user-created and fails when finding one. It is however perfectly valid to remove
> a directory that is open.
> 
> Simply make configfs_detach_prep() skip fake configfs_dirent, like it already
> does for attributes, and like detach_groups() does.

	This looks good.

> Signed-off-by: Louis Rilling <louis.rilling@kerlabs.com>
> ---
>  fs/configfs/dir.c |    3 ++-
>  1 files changed, 2 insertions(+), 1 deletions(-)
> 
> diff --git a/fs/configfs/dir.c b/fs/configfs/dir.c
> index 2c873fd..e721fd5 100644
> --- a/fs/configfs/dir.c
> +++ b/fs/configfs/dir.c
> @@ -379,7 +379,8 @@ static int configfs_detach_prep(struct dentry *dentry, struct mutex **wait_mutex
>  
>  	ret = 0;
>  	list_for_each_entry(sd, &parent_sd->s_children, s_sibling) {
> -		if (sd->s_type & CONFIGFS_NOT_PINNED)
> +		if (!sd->s_element ||
> +		    (sd->s_type & CONFIGFS_NOT_PINNED))
>  			continue;
>  		if (sd->s_type & CONFIGFS_USET_DEFAULT) {
>  			/* Abort if racing with mkdir() */
> -- 
> 1.5.5.3
> 

-- 

"You can get more with a kind word and a gun than you can with
 a kind word alone."
         - Al Capone

Joel Becker
Principal Software Developer
Oracle
E-mail: joel.becker@oracle.com
Phone: (650) 506-8127

  reply	other threads:[~2008-07-03 22:08 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2008-06-27 11:10 [Ocfs2-devel] [BUGFIX][PATCH] configfs: Fix open directory making rmdir() fail Louis Rilling
2008-06-27 11:10 ` Louis Rilling
2008-07-03 22:08 ` Joel Becker [this message]
2008-07-03 22:08   ` Joel Becker

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20080703220805.GI1502@mail.oracle.com \
    --to=joel.becker@oracle.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=louis.rilling@kerlabs.com \
    --cc=ocfs2-devel@oss.oracle.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.