reiserfs: discard prealloc in reiserfs_delete_inode
PATCH 1/1 reiserfs: discard prealloc in reiserfs_delete_inode
With the removal of struct file from the xattr code, reiserfs_file_release() isn't used anymore, so the prealloc isn't discarded. This causes hangs later down the line.
This patch adds it to reiserfs_delete_inode. In most cases it will be a no-op due to it already having been called, but will avoid hangs with xattrs.
--- fs/reiserfs/inode.c | 2 ++ 1 file changed, 2 insertions(+)
fs/reiserfs/inode.c +2 -0
@@ -45,6 +45,8 @@ void reiserfs_delete_inode(struct inode goto out;reiserfs_update_inode_transaction (inode); +reiserfs_discard_prealloc (&th, inode); + err =reiserfs_delete_object (&th, inode);/* Do quota update inside a transaction for journaled quotas. We must do that
Signature · 2 lines
Jeff Mahoney SUSE Labs
Quoted 15 lines · On Tue, 08 Jul 2008 14:37:06 -0400 Jeff Mahoney <[email protected]> wrote:
With the removal of struct file from the xattr code,
reiserfs_file_release()isn't used anymore, so the prealloc isn't discarded. This causes hangs later down the line.This patch adds it to
reiserfs_delete_inode. In most cases it will be a no-op due to it already having been called, but will avoid hangs with xattrs.Signed-off-by Jeff Mahoney <[email protected]>--- fs/reiserfs/inode.c | 2 ++ 1 file changed, 2 insertions(+)
fs/reiserfs/inode.c void reiserfs_delete_inode(struct inode · line 52
Quoted 8 lines
fs/reiserfs/inode.c +2
-0@@ -45,6 +45,8 @@ void reiserfs_delete_inode(struct inode goto out;reiserfs_update_inode_transaction (inode); +reiserfs_discard_prealloc (&th, inode); + err =reiserfs_delete_object (&th, inode);/* Do quota update inside a transaction for journaled quotas. We must do that
Can you please remind us when "the removal of struct file from the xattr code" happened?
Because hangs aren't good, and 2.6.25 might want this.
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
Quoted 24 lines · Andrew Morton
Quoted 22 lines · On Tue, 08 Jul 2008 14:37:06 -0400 Jeff Mahoney <[email protected]> wrote:
With the removal of struct file from the xattr code,
reiserfs_file_release()isn't used anymore, so the prealloc isn't discarded. This causes hangs later down the line.This patch adds it to
reiserfs_delete_inode. In most cases it will be a no-op due to it already having been called, but will avoid hangs with xattrs.Signed-off-by Jeff Mahoney <[email protected]>--- fs/reiserfs/inode.c | 2 ++ 1 file changed, 2 insertions(+)fs/reiserfs/inode.c +2
-0@@ -45,6 +45,8 @@ void reiserfs_delete_inode(struct inode goto out;reiserfs_update_inode_transaction (inode); +reiserfs_discard_prealloc (&th, inode); + err =reiserfs_delete_object (&th, inode);
Quoted 6 lines
fs/reiserfs/inode.c void reiserfs_delete_inode(struct inode · line 52
Quoted 1 line
fs/reiserfs/inode.c +0
-0/* Do quota update inside a transaction for journaled quotas. We must do that Can you please remind us when "the removal of struct file from the xattr code" happened?
Because hangs aren't good, and 2.6.25 might want this.
You're right. It was added in 2.6.25-rc7. I'll ping Greg about including it in the stable tree.
- -Jeff
- --
Jeff Mahoney
SUSE Labs
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v2.0.9 (GNU/Linux)
Comment: Using GnuPG with SUSE - http://enigmail.mozdev.org
iEYEARECAAYFAkh3szkACgkQLPWxlyuTD7IOyACZAd0+kO4D+bPjx1W1pX/APgl+ eKgAoJ75yKu/IlmHxvlmyWM5DThyKCQL
=BLAB
-----END PGP SIGNATURE-----