don't try odd hacks on ENOSPC, just fail it. 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