67 lines
1.6 KiB
Diff
67 lines
1.6 KiB
Diff
From 43ae9e3fc70ca0057ae0a24ef5eedff05e3fae06 Mon Sep 17 00:00:00 2001
|
|
From: Miklos Szeredi <mszeredi@suse.cz>
|
|
Date: Thu, 10 Oct 2013 16:48:19 +0200
|
|
Subject: ext[34]: fix double put in tmpfile
|
|
|
|
From: Miklos Szeredi <mszeredi@suse.cz>
|
|
|
|
commit 43ae9e3fc70ca0057ae0a24ef5eedff05e3fae06 upstream.
|
|
|
|
d_tmpfile() already swallowed the inode ref.
|
|
|
|
Signed-off-by: Miklos Szeredi <mszeredi@suse.cz>
|
|
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
|
|
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
|
|
|
|
---
|
|
fs/ext3/namei.c | 5 ++---
|
|
fs/ext4/namei.c | 5 ++---
|
|
2 files changed, 4 insertions(+), 6 deletions(-)
|
|
|
|
--- a/fs/ext3/namei.c
|
|
+++ b/fs/ext3/namei.c
|
|
@@ -1783,7 +1783,7 @@ retry:
|
|
d_tmpfile(dentry, inode);
|
|
err = ext3_orphan_add(handle, inode);
|
|
if (err)
|
|
- goto err_drop_inode;
|
|
+ goto err_unlock_inode;
|
|
mark_inode_dirty(inode);
|
|
unlock_new_inode(inode);
|
|
}
|
|
@@ -1791,10 +1791,9 @@ retry:
|
|
if (err == -ENOSPC && ext3_should_retry_alloc(dir->i_sb, &retries))
|
|
goto retry;
|
|
return err;
|
|
-err_drop_inode:
|
|
+err_unlock_inode:
|
|
ext3_journal_stop(handle);
|
|
unlock_new_inode(inode);
|
|
- iput(inode);
|
|
return err;
|
|
}
|
|
|
|
--- a/fs/ext4/namei.c
|
|
+++ b/fs/ext4/namei.c
|
|
@@ -2319,7 +2319,7 @@ retry:
|
|
d_tmpfile(dentry, inode);
|
|
err = ext4_orphan_add(handle, inode);
|
|
if (err)
|
|
- goto err_drop_inode;
|
|
+ goto err_unlock_inode;
|
|
mark_inode_dirty(inode);
|
|
unlock_new_inode(inode);
|
|
}
|
|
@@ -2328,10 +2328,9 @@ retry:
|
|
if (err == -ENOSPC && ext4_should_retry_alloc(dir->i_sb, &retries))
|
|
goto retry;
|
|
return err;
|
|
-err_drop_inode:
|
|
+err_unlock_inode:
|
|
ext4_journal_stop(handle);
|
|
unlock_new_inode(inode);
|
|
- iput(inode);
|
|
return err;
|
|
}
|
|
|