patch-2.1.131 linux/fs/ext2/namei.c
Next file: linux/fs/hfs/dir.c
Previous file: linux/fs/coda/dir.c
Back to the patch index
Back to the overall index
- Lines: 50
- Date:
Tue Dec 1 22:45:12 1998
- Orig file:
v2.1.130/linux/fs/ext2/namei.c
- Orig date:
Fri Oct 23 22:01:22 1998
diff -u --recursive --new-file v2.1.130/linux/fs/ext2/namei.c linux/fs/ext2/namei.c
@@ -661,32 +661,14 @@
if (le32_to_cpu(de->inode) != inode->i_ino)
goto end_rmdir;
- down(&inode->i_sem);
- /*
- * Prune any child dentries so that this dentry becomes negative.
- */
- if (dentry->d_count > 1)
- shrink_dcache_parent(dentry);
-
if (!empty_dir (inode))
retval = -ENOTEMPTY;
else if (le32_to_cpu(de->inode) != inode->i_ino)
retval = -ENOENT;
else {
- if (dentry->d_count > 1) {
- /*
- * Are we deleting the last instance of a busy directory?
- * Better clean up if so.
- *
- * Make directory empty (it will be truncated when finally
- * dereferenced). This also inhibits ext2_add_entry.
- */
- inode->i_size = 0;
- }
retval = ext2_delete_entry (de, bh);
dir->i_version = ++event;
}
- up(&inode->i_sem);
if (retval)
goto end_rmdir;
mark_buffer_dirty(bh, 1);
@@ -700,6 +682,7 @@
inode->i_nlink);
inode->i_version = ++event;
inode->i_nlink = 0;
+ inode->i_size = 0;
mark_inode_dirty(inode);
dir->i_nlink--;
inode->i_ctime = dir->i_ctime = dir->i_mtime = CURRENT_TIME;
@@ -733,8 +716,6 @@
DQUOT_INIT(inode);
retval = -EPERM;
- if (S_ISDIR(inode->i_mode))
- goto end_unlink;
if (IS_APPEND(inode) || IS_IMMUTABLE(inode))
goto end_unlink;
if ((dir->i_mode & S_ISVTX) &&
FUNET's LINUX-ADM group, linux-adm@nic.funet.fi
TCL-scripts by Sam Shen, slshen@lbl.gov