ocfs2: Fix directory link count checks in ocfs2_link()
Remove the redundant "i_nlink >= OCFS2_LINK_MAX" check and adds an unlinked directory check in ocfs2_link(). Signed-off-by: Tiger Yang <tiger.yang@oracle.com> Signed-off-by: Mark Fasheh <mark.fasheh@oracle.com>
This commit is contained in:
parent
a663e30513
commit
0f62de2c9c
@ -641,11 +641,6 @@ static int ocfs2_link(struct dentry *old_dentry,
|
|||||||
goto bail;
|
goto bail;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (inode->i_nlink >= OCFS2_LINK_MAX) {
|
|
||||||
err = -EMLINK;
|
|
||||||
goto bail;
|
|
||||||
}
|
|
||||||
|
|
||||||
handle = ocfs2_alloc_handle(osb);
|
handle = ocfs2_alloc_handle(osb);
|
||||||
if (handle == NULL) {
|
if (handle == NULL) {
|
||||||
err = -ENOMEM;
|
err = -ENOMEM;
|
||||||
@ -659,6 +654,11 @@ static int ocfs2_link(struct dentry *old_dentry,
|
|||||||
goto bail;
|
goto bail;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (!dir->i_nlink) {
|
||||||
|
err = -ENOENT;
|
||||||
|
goto bail;
|
||||||
|
}
|
||||||
|
|
||||||
err = ocfs2_check_dir_for_entry(dir, dentry->d_name.name,
|
err = ocfs2_check_dir_for_entry(dir, dentry->d_name.name,
|
||||||
dentry->d_name.len);
|
dentry->d_name.len);
|
||||||
if (err)
|
if (err)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user