ext4: cleanup sbi->s_kobj after quota initialization failure
PATCH 1/1 ext4: cleanup sbi->s_kobj after quota initialization failure
If ext4_enable_quotas fails, it jumps to failed_mount7, which doesn't tear down the kobj.
--- fs/ext4/super.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-)
fs/ext4/super.c +5 -1
@@ -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:
Signature · 2 lines
Jeff Mahoney SUSE Labs
Quoted 2 lines · Jeff Mahoney
If
ext4_enable_quotasfails, it jumps tofailed_mount7, which doesn't tear down the kobj.
The patch looks good. You can add:
Honza
Quoted 37 lines
Cc Aditya Kali <[email protected]>Cc Jan Kara <[email protected]>Signed-off-by Jeff Mahoney <[email protected]>--- fs/ext4/super.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-)fs/ext4/super.c +5
-1@@ -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:Signature · 7 lines
-- Jeff Mahoney SUSE Labs -- 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
Signature · 2 lines
Jan Kara <[email protected]> SUSE Labs, CR
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
Quoted 38 lines · Jan Kara
Quoted 2 lines · Jeff Mahoney
If
ext4_enable_quotasfails, it jumps tofailed_mount7, which doesn't tear down the kobj.The patch looks good. You can add:
Reviewed-by Jan Kara <[email protected]>Honza
Quoted 30 lines
Cc Aditya Kali <[email protected]>Cc Jan Kara <[email protected]>Signed-off-by Jeff Mahoney <[email protected]>--- fs/ext4/super.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-)fs/ext4/super.c +5
-1@@ -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:
Quoted 10 lines
Quoted 7 lines
--
Jeff Mahoney
SUSE Labs
--
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
--
Aditya
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
Quoted 2 lines · Aditya Kali
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.
Quoted 1 line
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
Quoted 36 lines · Jan Kara
Quoted 27 lines · Jeff Mahoney
Quoted 2 lines
If
ext4_enable_quotasfails, it jumps tofailed_mount7, which doesn't tear down the kobj.The patch looks good. You can add: Reviewed-by: Jan Kara <[email protected]>
Honza
Quoted 19 lines
Cc: Aditya Kali <[email protected]> Cc: Jan Kara <[email protected]> Signed-off-by: Jeff Mahoney <[email protected]>
---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) - gotofailed_mount7; + gotofailed_mount8; }
#endif /*CONFIG_QUOTA*/(quoted diff) +1
-0@@ -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:Quoted 5 lines
Quoted 4 lines
-- Jeff Mahoney SUSE Labs -- 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
Quoted 4 lines
--
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-----