diff options
author | Christoph Hellwig <hch@lst.de> | 2009-01-19 02:04:07 +0100 |
---|---|---|
committer | Christoph Hellwig <hch@brick.lst.de> | 2009-01-19 02:04:07 +0100 |
commit | 7884bc8617e6b8afda8cb8853cf14abfd3148d5c (patch) | |
tree | eccabfabb65cfc06402f4c23f813bf84b500b5a3 /fs/xfs/xfs_mount.h | |
parent | 98b8c7a0c42acf0d6963dbb9aabe4a2e312aae12 (diff) | |
download | kernel_samsung_smdk4412-7884bc8617e6b8afda8cb8853cf14abfd3148d5c.tar.gz kernel_samsung_smdk4412-7884bc8617e6b8afda8cb8853cf14abfd3148d5c.tar.bz2 kernel_samsung_smdk4412-7884bc8617e6b8afda8cb8853cf14abfd3148d5c.zip |
xfs: fix bad_features2 fixups for the root filesystem
Currently the bad_features2 fixup and the alignment updates in the superblock
are skipped if we mount a filesystem read-only. But for the root filesystem
the typical case is to mount read-only first and only later remount writeable
so we'll never perform this update at all. It's not a big problem but means
the logs of people needing the fixup get spammed at every boot because they
never happen on disk.
Reported-by: Arkadiusz Miskiewicz <arekm@maven.pl>
Signed-off-by: Christoph Hellwig <hch@lst.de>
Reviewed-by: Dave Chinner <david@fromorbit.com>
Diffstat (limited to 'fs/xfs/xfs_mount.h')
-rw-r--r-- | fs/xfs/xfs_mount.h | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/fs/xfs/xfs_mount.h b/fs/xfs/xfs_mount.h index 9bb41a9f765..f5e9937f9bd 100644 --- a/fs/xfs/xfs_mount.h +++ b/fs/xfs/xfs_mount.h @@ -327,6 +327,8 @@ typedef struct xfs_mount { spinlock_t m_sync_lock; /* work item list lock */ int m_sync_seq; /* sync thread generation no. */ wait_queue_head_t m_wait_single_sync_task; + __int64_t m_update_flags; /* sb flags we need to update + on the next remount,rw */ } xfs_mount_t; /* @@ -512,6 +514,7 @@ extern int xfs_mod_incore_sb_unlocked(xfs_mount_t *, xfs_sb_field_t, int64_t, int); extern int xfs_mod_incore_sb_batch(xfs_mount_t *, xfs_mod_sb_t *, uint, int); +extern int xfs_mount_log_sb(xfs_mount_t *, __int64_t); extern struct xfs_buf *xfs_getsb(xfs_mount_t *, int); extern int xfs_readsb(xfs_mount_t *, int); extern void xfs_freesb(xfs_mount_t *); |