temp patch until we find workaround. WIll not affect Lustre functionality Index: linux-2.6.27.21-0.1/fs/ext4/ioctl.c =================================================================== --- linux-2.6.27.21-0.1.orig/fs/ext4/ioctl.c +++ linux-2.6.27.21-0.1/fs/ext4/ioctl.c @@ -200,9 +200,9 @@ long ext4_ioctl(struct file *filp, unsig if (get_user(flags, (int __user *) arg)) return -EFAULT; - err = mnt_want_write(filp->f_path.mnt); +/* err = mnt_want_write(filp->f_path.mnt); if (err) - return err; + return err;*/ if (!S_ISDIR(inode->i_mode)) flags &= ~EXT4_DIRSYNC_FL; @@ -281,7 +281,7 @@ flags_err: err = ext4_ext_migrate(inode); flags_out: mutex_unlock(&inode->i_mutex); - mnt_drop_write(filp->f_path.mnt); +// mnt_drop_write(filp->f_path.mnt); return err; } case EXT4_IOC_GETVERSION: @@ -297,9 +297,9 @@ flags_out: if (!is_owner_or_cap(inode)) return -EPERM; - err = mnt_want_write(filp->f_path.mnt); +/* err = mnt_want_write(filp->f_path.mnt); if (err) - return err; + return err;*/ if (get_user(generation, (int __user *) arg)) { err = -EFAULT; goto setversion_out; @@ -318,7 +318,7 @@ flags_out: } ext4_journal_stop(handle); setversion_out: - mnt_drop_write(filp->f_path.mnt); +// mnt_drop_write(filp->f_path.mnt); return err; } #ifdef CONFIG_JBD2_DEBUG @@ -356,9 +356,9 @@ setversion_out: if (get_user(n_blocks_count, (__u32 __user *)arg)) return -EFAULT; - err = mnt_want_write(filp->f_path.mnt); +/* err = mnt_want_write(filp->f_path.mnt); if (err) - return err; + return err;*/ err = ext4_group_extend(sb, EXT4_SB(sb)->s_es, n_blocks_count); jbd2_journal_lock_updates(EXT4_SB(sb)->s_journal); @@ -366,7 +366,7 @@ setversion_out: jbd2_journal_unlock_updates(EXT4_SB(sb)->s_journal); if (err == 0) err = err2; - mnt_drop_write(filp->f_path.mnt); +// mnt_drop_write(filp->f_path.mnt); return err; } @@ -382,9 +382,9 @@ setversion_out: sizeof(input))) return -EFAULT; - err = mnt_want_write(filp->f_path.mnt); +/* err = mnt_want_write(filp->f_path.mnt); if (err) - return err; + return err;*/ err = ext4_group_add(sb, &input); jbd2_journal_lock_updates(EXT4_SB(sb)->s_journal); @@ -392,7 +392,7 @@ setversion_out: jbd2_journal_unlock_updates(EXT4_SB(sb)->s_journal); if (err == 0) err = err2; - mnt_drop_write(filp->f_path.mnt); +// mnt_drop_write(filp->f_path.mnt); return err; } @@ -403,9 +403,9 @@ setversion_out: if (!is_owner_or_cap(inode)) return -EACCES; - err = mnt_want_write(filp->f_path.mnt); +/* err = mnt_want_write(filp->f_path.mnt); if (err) - return err; + return err;*/ /* * inode_mutex prevent write and truncate on the file. * Read still goes through. We take i_data_sem in @@ -415,7 +415,7 @@ setversion_out: mutex_lock(&(inode->i_mutex)); err = ext4_ext_migrate(inode); mutex_unlock(&(inode->i_mutex)); - mnt_drop_write(filp->f_path.mnt); +// mnt_drop_write(filp->f_path.mnt); return err; }