]> err.no Git - linux-2.6/blobdiff - fs/xfs/xfs_vfsops.c
[XFS] Update valid fields in xfs_mount_log_sb()
[linux-2.6] / fs / xfs / xfs_vfsops.c
index 30bacd8bb0e5b8a86251e3dbe03f9fe2c6f08ace..a005cebf50412437c958d35a0caabd4a0337a24e 100644 (file)
@@ -284,6 +284,8 @@ xfs_start_flags(
                mp->m_flags |= XFS_MOUNT_DIRSYNC;
        if (ap->flags & XFSMNT_ATTR2)
                mp->m_flags |= XFS_MOUNT_ATTR2;
+       if (ap->flags & XFSMNT_NOATTR2)
+               mp->m_flags |= XFS_MOUNT_NOATTR2;
 
        if (ap->flags2 & XFSMNT2_COMPAT_IOSIZE)
                mp->m_flags |= XFS_MOUNT_COMPAT_IOSIZE;
@@ -346,7 +348,12 @@ xfs_finish_flags(
                }
        }
 
-       if (xfs_sb_version_hasattr2(&mp->m_sb))
+       /*
+        * mkfs'ed attr2 will turn on attr2 mount unless explicitly
+        * told by noattr2 to turn it off
+        */
+       if (xfs_sb_version_hasattr2(&mp->m_sb) &&
+           !(ap->flags & XFSMNT_NOATTR2))
                mp->m_flags |= XFS_MOUNT_ATTR2;
 
        /*
@@ -632,7 +639,7 @@ out:
                xfs_unmountfs(mp, credp);
                xfs_qmops_put(mp);
                xfs_dmops_put(mp);
-               kmem_free(mp, sizeof(xfs_mount_t));
+               kmem_free(mp);
        }
 
        return XFS_ERROR(error);
@@ -1048,7 +1055,7 @@ xfs_sync_inodes(
 
                if (XFS_FORCED_SHUTDOWN(mp) && !(flags & SYNC_CLOSE)) {
                        XFS_MOUNT_IUNLOCK(mp);
-                       kmem_free(ipointer, sizeof(xfs_iptr_t));
+                       kmem_free(ipointer);
                        return 0;
                }
 
@@ -1194,7 +1201,7 @@ xfs_sync_inodes(
                        }
                        XFS_MOUNT_IUNLOCK(mp);
                        ASSERT(ipointer_in == B_FALSE);
-                       kmem_free(ipointer, sizeof(xfs_iptr_t));
+                       kmem_free(ipointer);
                        return XFS_ERROR(error);
                }
 
@@ -1224,7 +1231,7 @@ xfs_sync_inodes(
 
        ASSERT(ipointer_in == B_FALSE);
 
-       kmem_free(ipointer, sizeof(xfs_iptr_t));
+       kmem_free(ipointer);
        return XFS_ERROR(last_error);
 }