linux-ext4.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Tao Ma <tm@tao.ma>
To: Theodore Ts'o <tytso@mit.edu>
Cc: linux-ext4@vger.kernel.org
Subject: Re: [PATCH V7 00/23] ext4: Add inline data support
Date: Mon, 10 Dec 2012 23:17:24 +0800	[thread overview]
Message-ID: <50C5FD04.9070206@tao.ma> (raw)
In-Reply-To: <20121210150228.GA28666@thunk.org>

On 12/10/2012 11:02 PM, Theodore Ts'o wrote:
> On Fri, Dec 07, 2012 at 09:34:24AM +0800, Tao Ma wrote:
>> I think ext4_inode->xattr_sem should protect us? When we do xattr
>> corresponding operation, we just do
>> down_write/read(&EXT4_I(inode)->xattr_sem), so we should be fine with
>> this type of operation. Am I missing something here?
> 
> We're not taking the xattr_sem in ext4_find_inline_data() before we
> call ext4_xattr_ibody_find().  So I think we need something like this:
> 
> diff --git a/fs/ext4/inline.c b/fs/ext4/inline.c
> index 6b600b4..e96268d 100644
> --- a/fs/ext4/inline.c
> +++ b/fs/ext4/inline.c
> @@ -143,7 +143,9 @@ int ext4_find_inline_data(struct inode *inode)
>  	if (error)
>  		return error;
>  
> +	down_read(&EXT4_I(inode)->xattr_sem);
>  	error = ext4_xattr_ibody_find(inode, &i, &is);
> +	up_read(&EXT4_I(inode)->xattr_sem);
>  	if (error)
>  		goto out;
Actually ext4_find_inline_data is only called in ext4_iget when we
initialize an inode from the disk and that's the reason why I didn't add
this lock. So maybe the name isn't obvious to the reader.  :(

Having said that, I think it should be safe for us to add this lock so
that any future user may abuse it without any worry about the xattr
lock. So go ahead with it.

Thanks
Tao

      reply	other threads:[~2012-12-10 15:17 UTC|newest]

Thread overview: 34+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-10-24  2:50 [PATCH V7 00/23] ext4: Add inline data support Tao Ma
2012-10-24  2:55 ` [PATCH V7 01/23] ext4: Move extra inode read to a new function Tao Ma
2012-10-24  2:55   ` [PATCH V7 02/23] ext4: export inline xattr functions Tao Ma
2012-10-24  2:55   ` [PATCH V7 03/23] ext4: Add the basic function for inline data support Tao Ma
2012-12-03  1:48     ` Theodore Ts'o
2012-12-03  5:23       ` Tao Ma
2012-12-03 16:17       ` Tao Ma
2012-10-24  2:55   ` [PATCH V7 04/23] ext4: Add read support for inline data Tao Ma
2012-10-24  2:55   ` [PATCH V7 05/23] ext4: Add normal write " Tao Ma
2012-10-24  2:55   ` [PATCH V7 06/23] ext4: Add journalled " Tao Ma
2012-10-24  2:55   ` [PATCH V7 07/23] ext4: Add delalloc " Tao Ma
2012-10-24  2:55   ` [PATCH V7 08/23] ext4: Make ext4_init_dot_dotdot for inline dir usage Tao Ma
2012-10-24  2:55   ` [PATCH V7 09/23] ext4: Refactor __ext4_check_dir_entry to accepts start and size Tao Ma
2012-10-24  2:55   ` [PATCH V7 10/23] ext4: Create __ext4_insert_dentry for dir entry insertion Tao Ma
2012-10-24  2:55   ` [PATCH V7 11/23] ext4: let add_dir_entry handle inline data properly Tao Ma
2012-10-24  2:55   ` [PATCH V7 12/23] ext4: Let ext4_readdir handle inline data Tao Ma
2012-10-24  2:55   ` [PATCH V7 13/23] ext4: Create a new function search_dir Tao Ma
2012-10-24  2:55   ` [PATCH V7 14/23] ext4: let ext4_find_entry handle inline data Tao Ma
2012-10-24  2:55   ` [PATCH V7 15/23] ext4: make ext4_delete_entry generic Tao Ma
2012-10-24  2:55   ` [PATCH V7 16/23] ext4: let ext4_delete_entry handle inline data Tao Ma
2012-10-24  2:55   ` [PATCH V7 17/23] ext4: let empty_dir handle inline dir Tao Ma
2012-10-24  2:55   ` [PATCH V7 18/23] ext4: let ext4_rename " Tao Ma
2012-10-24  2:55   ` [PATCH V7 19/23] ext4: Let fiemap work with inline data Tao Ma
2012-10-24  2:55   ` [PATCH V7 20/23] ext4: Evict inline data out if we needs to strore xattr in inode Tao Ma
2012-10-24  2:55   ` [PATCH V7 21/23] ext4: let ext4_truncate handle inline data correctly Tao Ma
2012-10-24  2:55   ` [PATCH V7 22/23] ext4: let fallocate " Tao Ma
2012-12-03  1:37     ` Theodore Ts'o
2012-10-24  2:55   ` [PATCH V7 23/23] ext4: Enable ext4 inline support Tao Ma
2012-11-19  7:41 ` [PATCH V7 00/23] ext4: Add inline data support Tao Ma
2012-11-19 15:29   ` Theodore Ts'o
2012-12-06 17:30 ` Theodore Ts'o
2012-12-07  1:34   ` Tao Ma
2012-12-10 15:02     ` Theodore Ts'o
2012-12-10 15:17       ` Tao Ma [this message]

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=50C5FD04.9070206@tao.ma \
    --to=tm@tao.ma \
    --cc=linux-ext4@vger.kernel.org \
    --cc=tytso@mit.edu \
    /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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).