2011-05-12 17:59:49

by Allison Henderson

[permalink] [raw]
Subject: [PATCH v2] NULL pointer when make_indexed_dir returns -ENOSPC

Hi all,

I wasnt sure if people were expecting a v2 for this one, but I noticed
the modified version of v1 was removed from the tree, so I am assuming
we needed v2? This one handles marking the buffer dirty before calling
do split to avoid the null pointer. It introduces a little overhead,
but the only other option would be to introduce a new flag set to
do_split. But if there's any one that would prefer the flags to this
solution, please let me know. Thx! :)

Allison Henderson


Signed-off-by: Allison Henderson <[email protected]>

---
:100644 100644 3c7a06e... b754b77... M fs/ext4/namei.c
fs/ext4/namei.c | 6 ++++--
1 files changed, 4 insertions(+), 2 deletions(-)

diff --git a/fs/ext4/namei.c b/fs/ext4/namei.c
index 3c7a06e..b754b77 100644
--- a/fs/ext4/namei.c
+++ b/fs/ext4/namei.c
@@ -1413,6 +1413,10 @@ static int make_indexed_dir(handle_t *handle,
struct dentry *dentry,
frame->at = entries;
frame->bh = bh;
bh = bh2;
+
+ ext4_handle_dirty_metadata(handle, dir, frame->bh);
+ ext4_handle_dirty_metadata(handle, dir, bh);
+
de = do_split(handle,dir, &bh, frame, &hinfo, &retval);
if (!de) {
/*
@@ -1421,8 +1425,6 @@ static int make_indexed_dir(handle_t *handle,
struct dentry *dentry,
* with corrupted filesystem.
*/
ext4_mark_inode_dirty(handle, dir);
- ext4_handle_dirty_metadata(handle, dir, frame->bh);
- ext4_handle_dirty_metadata(handle, dir, bh);
dx_release(frames);
return retval;
}
--
1.7.1



2011-05-15 04:21:18

by Theodore Ts'o

[permalink] [raw]
Subject: Re: [PATCH v2] NULL pointer when make_indexed_dir returns -ENOSPC

On Thu, May 12, 2011 at 10:59:20AM -0700, Allison Henderson wrote:
> Hi all,
>
> I wasnt sure if people were expecting a v2 for this one, but I
> noticed the modified version of v1 was removed from the tree, so I
> am assuming we needed v2? This one handles marking the buffer dirty
> before calling do split to avoid the null pointer. It introduces a
> little overhead, but the only other option would be to introduce a
> new flag set to do_split. But if there's any one that would prefer
> the flags to this solution, please let me know. Thx! :)
>
> Allison Henderson
>
> Signed-off-by: Allison Henderson <[email protected]>

Applied, thanks. In the future, I'd appreciate it if you resent the
patch with a formal commit description. I recreated the commit
description from the older patch in this case.

- Ted

2011-05-15 15:05:16

by Allison Henderson

[permalink] [raw]
Subject: Re: [PATCH v2] NULL pointer when make_indexed_dir returns -ENOSPC

On 5/14/2011 9:21 PM, Ted Ts'o wrote:
> On Thu, May 12, 2011 at 10:59:20AM -0700, Allison Henderson wrote:
>> Hi all,
>>
>> I wasnt sure if people were expecting a v2 for this one, but I
>> noticed the modified version of v1 was removed from the tree, so I
>> am assuming we needed v2? This one handles marking the buffer dirty
>> before calling do split to avoid the null pointer. It introduces a
>> little overhead, but the only other option would be to introduce a
>> new flag set to do_split. But if there's any one that would prefer
>> the flags to this solution, please let me know. Thx! :)
>>
>> Allison Henderson
>>
>> Signed-off-by: Allison Henderson<[email protected]>
>
> Applied, thanks. In the future, I'd appreciate it if you resent the
> patch with a formal commit description. I recreated the commit
> description from the older patch in this case.
>
> - Ted

Thanks Ted. Sorry about the description, I think I have another small
patch out there like that. I will send out an update. Thx!

Allison Henderson

> --
> To unsubscribe from this list: send the line "unsubscribe linux-ext4" in
> the body of a message to [email protected]
> More majordomo info at http://vger.kernel.org/majordomo-info.html


2011-05-17 17:45:13

by Jan Kara

[permalink] [raw]
Subject: Re: [PATCH v2] NULL pointer when make_indexed_dir returns -ENOSPC

Hello,

On Thu 12-05-11 10:59:20, Allison Henderson wrote:
> I wasnt sure if people were expecting a v2 for this one, but I
> noticed the modified version of v1 was removed from the tree, so I
> am assuming we needed v2? This one handles marking the buffer dirty
> before calling do split to avoid the null pointer. It introduces a
> little overhead, but the only other option would be to introduce a
> new flag set to do_split. But if there's any one that would prefer
> the flags to this solution, please let me know. Thx! :)
The patch looks OK. Just please CC me next time - a) because ext3 needs a
similar fix (added now) and b) because I was involved with the previous
patch version. Thanks!

Honza
> Signed-off-by: Allison Henderson <[email protected]>
>
> ---
> :100644 100644 3c7a06e... b754b77... M fs/ext4/namei.c
> fs/ext4/namei.c | 6 ++++--
> 1 files changed, 4 insertions(+), 2 deletions(-)
>
> diff --git a/fs/ext4/namei.c b/fs/ext4/namei.c
> index 3c7a06e..b754b77 100644
> --- a/fs/ext4/namei.c
> +++ b/fs/ext4/namei.c
> @@ -1413,6 +1413,10 @@ static int make_indexed_dir(handle_t *handle,
> struct dentry *dentry,
> frame->at = entries;
> frame->bh = bh;
> bh = bh2;
> +
> + ext4_handle_dirty_metadata(handle, dir, frame->bh);
> + ext4_handle_dirty_metadata(handle, dir, bh);
> +
> de = do_split(handle,dir, &bh, frame, &hinfo, &retval);
> if (!de) {
> /*
> @@ -1421,8 +1425,6 @@ static int make_indexed_dir(handle_t *handle,
> struct dentry *dentry,
> * with corrupted filesystem.
> */
> ext4_mark_inode_dirty(handle, dir);
> - ext4_handle_dirty_metadata(handle, dir, frame->bh);
> - ext4_handle_dirty_metadata(handle, dir, bh);
> dx_release(frames);
> return retval;
> }
> --
> 1.7.1
>
> --
> To unsubscribe from this list: send the line "unsubscribe linux-ext4" in
> the body of a message to [email protected]
> More majordomo info at http://vger.kernel.org/majordomo-info.html
--
Jan Kara <[email protected]>
SUSE Labs, CR

2011-05-18 15:23:49

by Allison Henderson

[permalink] [raw]
Subject: Re: [PATCH v2] NULL pointer when make_indexed_dir returns -ENOSPC

On 5/17/2011 10:44 AM, Jan Kara wrote:
> Hello,
>
> On Thu 12-05-11 10:59:20, Allison Henderson wrote:
>> I wasnt sure if people were expecting a v2 for this one, but I
>> noticed the modified version of v1 was removed from the tree, so I
>> am assuming we needed v2? This one handles marking the buffer dirty
>> before calling do split to avoid the null pointer. It introduces a
>> little overhead, but the only other option would be to introduce a
>> new flag set to do_split. But if there's any one that would prefer
>> the flags to this solution, please let me know. Thx! :)
> The patch looks OK. Just please CC me next time - a) because ext3 needs a
> similar fix (added now) and b) because I was involved with the previous
> patch version. Thanks!
>
> Honza

Sure, I just thought I would save people from the extra spam since it
was already seen, but I will keep you cc'd next time. Thx!

Allison Henderson

>> Signed-off-by: Allison Henderson<[email protected]>
>>
>> ---
>> :100644 100644 3c7a06e... b754b77... M fs/ext4/namei.c
>> fs/ext4/namei.c | 6 ++++--
>> 1 files changed, 4 insertions(+), 2 deletions(-)
>>
>> diff --git a/fs/ext4/namei.c b/fs/ext4/namei.c
>> index 3c7a06e..b754b77 100644
>> --- a/fs/ext4/namei.c
>> +++ b/fs/ext4/namei.c
>> @@ -1413,6 +1413,10 @@ static int make_indexed_dir(handle_t *handle,
>> struct dentry *dentry,
>> frame->at = entries;
>> frame->bh = bh;
>> bh = bh2;
>> +
>> + ext4_handle_dirty_metadata(handle, dir, frame->bh);
>> + ext4_handle_dirty_metadata(handle, dir, bh);
>> +
>> de = do_split(handle,dir,&bh, frame,&hinfo,&retval);
>> if (!de) {
>> /*
>> @@ -1421,8 +1425,6 @@ static int make_indexed_dir(handle_t *handle,
>> struct dentry *dentry,
>> * with corrupted filesystem.
>> */
>> ext4_mark_inode_dirty(handle, dir);
>> - ext4_handle_dirty_metadata(handle, dir, frame->bh);
>> - ext4_handle_dirty_metadata(handle, dir, bh);
>> dx_release(frames);
>> return retval;
>> }
>> --
>> 1.7.1
>>
>> --
>> To unsubscribe from this list: send the line "unsubscribe linux-ext4" in
>> the body of a message to [email protected]
>> More majordomo info at http://vger.kernel.org/majordomo-info.html