Whamcloud - gitweb
LU-709 build: clean up i_mutex/i_private/quota_info macros
[fs/lustre-release.git] / lustre / llite / llite_lib.c
index 6da9064..f6dd8ac 100644 (file)
@@ -1394,15 +1394,15 @@ int ll_setattr_raw(struct dentry *dentry, struct iattr *attr)
         if (op_data == NULL)
                 RETURN(-ENOMEM);
 
-        if (!S_ISDIR(inode->i_mode)) {
-                if (ia_valid & ATTR_SIZE)
-                        UP_WRITE_I_ALLOC_SEM(inode);
-                UNLOCK_INODE_MUTEX(inode);
-                cfs_down_write(&lli->lli_trunc_sem);
-                LOCK_INODE_MUTEX(inode);
-                if (ia_valid & ATTR_SIZE)
-                        DOWN_WRITE_I_ALLOC_SEM(inode);
-        }
+       if (!S_ISDIR(inode->i_mode)) {
+               if (ia_valid & ATTR_SIZE)
+                       UP_WRITE_I_ALLOC_SEM(inode);
+               mutex_unlock(&inode->i_mutex);
+               cfs_down_write(&lli->lli_trunc_sem);
+               mutex_lock(&inode->i_mutex);
+               if (ia_valid & ATTR_SIZE)
+                       DOWN_WRITE_I_ALLOC_SEM(inode);
+       }
 
        /* We need a steady stripe configuration for setattr to avoid
         * confusion. */