Patchwork ext4: cleanup sbi->s_kobj after quota initialization failure

login
register
mail settings
Submitter Jeff Mahoney
Date Feb. 25, 2013, 8:55 p.m.
Message ID <512BCFBB.30208@suse.com>
Download mbox | patch
Permalink /patch/223040/
State Superseded
Headers show

Comments

Jeff Mahoney - Feb. 25, 2013, 8:55 p.m.
If ext4_enable_quotas fails, it jumps to failed_mount7, which doesn't
tear down the kobj.

Cc: Aditya Kali <adityakali@google.com>
Cc: Jan Kara <jack@suse.cz>
Signed-off-by: Jeff Mahoney <jeffm@suse.com>
---
 fs/ext4/super.c |    6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)
Jan Kara - Feb. 25, 2013, 11:32 p.m.
On Mon 25-02-13 15:55:23, Jeff Mahoney wrote:
> If ext4_enable_quotas fails, it jumps to failed_mount7, which doesn't
> tear down the kobj.
  The patch looks good. You can add:
Reviewed-by: Jan Kara <jack@suse.cz>

								Honza

> Cc: Aditya Kali <adityakali@google.com>
> Cc: Jan Kara <jack@suse.cz>
> Signed-off-by: Jeff Mahoney <jeffm@suse.com>
> ---
>  fs/ext4/super.c |    6 +++++-
>  1 file changed, 5 insertions(+), 1 deletion(-)
> 
> --- a/fs/ext4/super.c
> +++ b/fs/ext4/super.c
> @@ -3794,7 +3794,7 @@ no_journal:
>  	    !(sb->s_flags & MS_RDONLY)) {
>  		err = ext4_enable_quotas(sb);
>  		if (err)
> -			goto failed_mount7;
> +			goto failed_mount8;
>  	}
>  #endif  /* CONFIG_QUOTA */
>  
> @@ -3813,6 +3813,10 @@ cantfind_ext4:
>  		ext4_msg(sb, KERN_ERR, "VFS: Can't find ext4 filesystem");
>  	goto failed_mount;
>  
> +failed_mount8:
> +	kobject_del(&sbi->s_kobj);
> +	kobject_put(&sbi->s_kobj);
> +	wait_for_completion(&sbi->s_kobj_unregister);
>  failed_mount7:
>  	ext4_unregister_li_request(sb);
>  failed_mount6:
> 
> -- 
> Jeff Mahoney
> SUSE Labs
> --
> To unsubscribe from this list: send the line "unsubscribe linux-ext4" in
> the body of a message to majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
Aditya Kali - Feb. 26, 2013, 1:14 a.m.
This seems to have been fixed in the ext4 master branch by commit
http://git.kernel.org/?p=linux/kernel/git/tytso/ext4.git;a=commitdiff;h=72ba74508b2857e71d65fc93f0d6b684492fc740


On Mon, Feb 25, 2013 at 3:32 PM, Jan Kara <jack@suse.cz> wrote:
> On Mon 25-02-13 15:55:23, Jeff Mahoney wrote:
>> If ext4_enable_quotas fails, it jumps to failed_mount7, which doesn't
>> tear down the kobj.
>   The patch looks good. You can add:
> Reviewed-by: Jan Kara <jack@suse.cz>
>
>                                                                 Honza
>
>> Cc: Aditya Kali <adityakali@google.com>
>> Cc: Jan Kara <jack@suse.cz>
>> Signed-off-by: Jeff Mahoney <jeffm@suse.com>
>> ---
>>  fs/ext4/super.c |    6 +++++-
>>  1 file changed, 5 insertions(+), 1 deletion(-)
>>
>> --- a/fs/ext4/super.c
>> +++ b/fs/ext4/super.c
>> @@ -3794,7 +3794,7 @@ no_journal:
>>           !(sb->s_flags & MS_RDONLY)) {
>>               err = ext4_enable_quotas(sb);
>>               if (err)
>> -                     goto failed_mount7;
>> +                     goto failed_mount8;
>>       }
>>  #endif  /* CONFIG_QUOTA */
>>
>> @@ -3813,6 +3813,10 @@ cantfind_ext4:
>>               ext4_msg(sb, KERN_ERR, "VFS: Can't find ext4 filesystem");
>>       goto failed_mount;
>>
>> +failed_mount8:
>> +     kobject_del(&sbi->s_kobj);
>> +     kobject_put(&sbi->s_kobj);
>> +     wait_for_completion(&sbi->s_kobj_unregister);
>>  failed_mount7:
>>       ext4_unregister_li_request(sb);
>>  failed_mount6:
>>
>> --
>> Jeff Mahoney
>> SUSE Labs
>> --
>> To unsubscribe from this list: send the line "unsubscribe linux-ext4" in
>> the body of a message to majordomo@vger.kernel.org
>> More majordomo info at  http://vger.kernel.org/majordomo-info.html
> --
> Jan Kara <jack@suse.cz>
> SUSE Labs, CR



--

Aditya
--
To unsubscribe from this list: send the line "unsubscribe linux-ext4" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Jeff Mahoney - Feb. 26, 2013, 2:53 a.m.
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

On 2/25/13 8:14 PM, Aditya Kali wrote:
> This seems to have been fixed in the ext4 master branch by commit 
> http://git.kernel.org/?p=linux/kernel/git/tytso/ext4.git;a=commitdiff;h=72ba74508b2857e71d65fc93f0d6b684492fc740

Yep.
> 
You're right. It's been a while since I worked with sysfs code
and I was still expecting the old kobject refcounting semantics. I
suppose it would follow that the completion stuff in ext4_put_super is
unnecessary now as well.

- -Jeff

> On Mon, Feb 25, 2013 at 3:32 PM, Jan Kara <jack@suse.cz> wrote:
>> On Mon 25-02-13 15:55:23, Jeff Mahoney wrote:
>>> If ext4_enable_quotas fails, it jumps to failed_mount7, which 
>>> doesn't tear down the kobj.
>> The patch looks good. You can add: Reviewed-by: Jan Kara 
>> <jack@suse.cz>
>> 
>> Honza
>> 
>>> Cc: Aditya Kali <adityakali@google.com> Cc: Jan Kara 
>>> <jack@suse.cz> Signed-off-by: Jeff Mahoney <jeffm@suse.com>
>>> --- fs/ext4/super.c |    6 +++++- 1 file changed, 5
>>> insertions(+), 1 deletion(-)
>>> 
>>> --- a/fs/ext4/super.c +++ b/fs/ext4/super.c @@ -3794,7 +3794,7
>>>  @@ no_journal: !(sb->s_flags & MS_RDONLY)) { err = 
>>> ext4_enable_quotas(sb); if (err) -                     goto 
>>> failed_mount7; +                     goto failed_mount8; } 
>>> #endif  /* CONFIG_QUOTA */
>>> 
>>> @@ -3813,6 +3813,10 @@ cantfind_ext4: ext4_msg(sb, KERN_ERR, 
>>> "VFS: Can't find ext4 filesystem"); goto failed_mount;
>>> 
>>> +failed_mount8: +     kobject_del(&sbi->s_kobj); + 
>>> kobject_put(&sbi->s_kobj); + 
>>> wait_for_completion(&sbi->s_kobj_unregister); failed_mount7: 
>>> ext4_unregister_li_request(sb); failed_mount6:
>>> 
>>> -- Jeff Mahoney SUSE Labs -- To unsubscribe from this list: 
>>> send the line "unsubscribe linux-ext4" in the body of a message
>>> to majordomo@vger.kernel.org More majordomo info at 
>>> http://vger.kernel.org/majordomo-info.html
>> -- Jan Kara <jack@suse.cz> SUSE Labs, CR
> 
> 
> 
> --
> 
> Aditya
> 


- -- 
Jeff Mahoney
SUSE Labs
-----BEGIN PGP SIGNATURE-----
Version: GnuPG/MacGPG2 v2.0.18 (Darwin)
Comment: GPGTools - http://gpgtools.org

iQIcBAEBAgAGBQJRLCOjAAoJEB57S2MheeWypD8P/3B3IQsKkwagguu9qv2isfuC
Um4yDclKbHO54TexW8FV+JBS5gnivO/H6MOksN3n/q2EtvPH9phBP3i1W56P77A4
bgGIsYW5hdSWTGhcgQiNzmFgeOfF53dl+r8nZCxpOcEvvp4QQPI8WPd4IsNKmjGN
vmKhX8m1eY2TGV/dHubAmQ+EttIhn5tMnsM48reQoW3v/H3F70WNQrYEEFqja/tk
xjTn8tlBWvKmR9qP3XzRQHXOGUC56QXBtKyIGLqzkquhrCiG2CywxWnyhwPRujDc
QC26bf18jSThhnPic6GrDvgAwhkEUiuETTtz5hF3+eL5mLR3bFwDQlJsGOfNBWAe
cQAuDv/fapD072wHSEdQ200JoTLEYYr4pCeaU/FlqMlUqX3mxmPANP3lgEaTI/Yh
fmzYANO4eFgAYk9zklqWri57EB+JqFVejZVURE9HftrkWZCQfcHnyGiOdvA4RTSa
HsNQsGA3ta++0H3mdUGGa+SoB+FZa851Gqw/vfN5i87gcHcu+lUfjGnoaNx0RfaU
2qyQOxPODt0p+GDWhfDnCmZqha9wBiW0VPohMv9/Rnwl6QQEMbr6dgd1ZKR5ZWTf
xHxSoC0qNX3EX5dwGUBUSgNFvwJIh1E3cNUxghe2Li0rluia6cmgDouHFGAfDL/A
+vw2xYvvMqfvgUk63+yR
=Uh7A
-----END PGP SIGNATURE-----
--
To unsubscribe from this list: send the line "unsubscribe linux-ext4" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Patch

--- a/fs/ext4/super.c
+++ b/fs/ext4/super.c
@@ -3794,7 +3794,7 @@  no_journal:
 	    !(sb->s_flags & MS_RDONLY)) {
 		err = ext4_enable_quotas(sb);
 		if (err)
-			goto failed_mount7;
+			goto failed_mount8;
 	}
 #endif  /* CONFIG_QUOTA */
 
@@ -3813,6 +3813,10 @@  cantfind_ext4:
 		ext4_msg(sb, KERN_ERR, "VFS: Can't find ext4 filesystem");
 	goto failed_mount;
 
+failed_mount8:
+	kobject_del(&sbi->s_kobj);
+	kobject_put(&sbi->s_kobj);
+	wait_for_completion(&sbi->s_kobj_unregister);
 failed_mount7:
 	ext4_unregister_li_request(sb);
 failed_mount6: