fix reiserfs mkdir() breakage
if directory has so many subdirectories that its link count is set to 1 (i.e. "can't tell accurately") and reiserfs_new_inode() fails, we shouldn't decrement the parent's link count in cleanup path; that's what DEC_DIR_INODE_NLINK() is for. As it is, we end up with parent suddenly getting zero i_nlink, with very unpleasant effects. Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
This commit is contained in:
parent
babfe56046
commit
99890a3be1
|
@ -771,7 +771,7 @@ static int reiserfs_mkdir(struct inode *dir, struct dentry *dentry, int mode)
|
||||||
EMPTY_DIR_SIZE_V1 : EMPTY_DIR_SIZE,
|
EMPTY_DIR_SIZE_V1 : EMPTY_DIR_SIZE,
|
||||||
dentry, inode, &security);
|
dentry, inode, &security);
|
||||||
if (retval) {
|
if (retval) {
|
||||||
dir->i_nlink--;
|
DEC_DIR_INODE_NLINK(dir)
|
||||||
goto out_failed;
|
goto out_failed;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue