Re: [PATCH] hpfs: remove ENOSPC hack in unlink

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



don't try odd hacks on ENOSPC, just fail it.

What's the reason for this patch? Doesn't it work? HPFS is tricky that when you delete file there, it may allocate more space (b-trees are evil). So it truncates file content first.

Mikulas

Signed-off-by: Christoph Hellwig <hch@xxxxxx>

Index: linux-2.6/fs/hpfs/namei.c
===================================================================
--- linux-2.6.orig/fs/hpfs/namei.c	2006-03-24 20:20:00.000000000 +0100
+++ linux-2.6/fs/hpfs/namei.c	2006-04-20 20:29:07.000000000 +0200
@@ -376,12 +376,10 @@
	dnode_secno dno;
	fnode_secno fno;
	int r;
-	int rep = 0;
	int err;

	lock_kernel();
	hpfs_adjust_length((char *)name, &len);
-again:
	mutex_lock(&hpfs_i(inode)->i_parent_mutex);
	mutex_lock(&hpfs_i(dir)->i_mutex);
	err = -ENOENT;
@@ -404,35 +402,9 @@
		hpfs_error(dir->i_sb, "there was error when removing dirent");
		err = -EFSERROR;
		break;
-	case 2:		/* no space for deleting, try to truncate file */
-
+	case 2:		/* no space for deleting */
		err = -ENOSPC;
-		if (rep++)
-			break;
-
-		mutex_unlock(&hpfs_i(dir)->i_mutex);
-		mutex_unlock(&hpfs_i(inode)->i_parent_mutex);
-		d_drop(dentry);
-		spin_lock(&dentry->d_lock);
-		if (atomic_read(&dentry->d_count) > 1 ||
-		    permission(inode, MAY_WRITE, NULL) ||
-		    !S_ISREG(inode->i_mode) ||
-		    get_write_access(inode)) {
-			spin_unlock(&dentry->d_lock);
-			d_rehash(dentry);
-		} else {
-			struct iattr newattrs;
-			spin_unlock(&dentry->d_lock);
-			/*printk("HPFS: truncating file before delete.\n");*/
-			newattrs.ia_size = 0;
-			newattrs.ia_valid = ATTR_SIZE | ATTR_CTIME;
-			err = notify_change(dentry, &newattrs);
-			put_write_access(inode);
-			if (!err)
-				goto again;
-		}
-		unlock_kernel();
-		return -ENOSPC;
+		break;
	default:
		inode->i_nlink--;
		err = 0;

-
To unsubscribe from this list: send the line "unsubscribe linux-fsdevel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html

[Index of Archives]     [Linux Ext4 Filesystem]     [Union Filesystem]     [Filesystem Testing]     [Ceph Users]     [Ecryptfs]     [AutoFS]     [Kernel Newbies]     [Share Photos]     [Security]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux Cachefs]     [Reiser Filesystem]     [Linux RAID]     [Samba]     [Device Mapper]     [CEPH Development]
  Powered by Linux