Skip to contentSkip to conversation

ext4: cleanup sbi->s_kobj after quota initialization failure

PATCH In review Jeff Mahoney 3 participants 4 messages Feb 25, 2013 – Feb 26, 2013 ext4 file system

lore
Share & tools
lore
#0 lore raw

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
reviewer Reviewed-by on v1 1/1
#1 lore raw
Quoted 2 lines · Jeff Mahoney

If ext4_enable_quotas fails, it jumps to failed_mount7, which doesn't tear down the kobj.

The patch looks good. You can add:

Honza

Quoted 37 lines
---
 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
#2 lore raw

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_quotas fails, it jumps to failed_mount7, which doesn't tear down the kobj.

The patch looks good. You can add:

Honza

Quoted 30 lines
---
 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

#3 lore raw

-----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_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 <[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) - goto
failed_mount7; + goto failed_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-----