aboutsummaryrefslogtreecommitdiffstats
path: root/fs/ufs/super.c
diff options
context:
space:
mode:
authorSatyam Sharma <satyam@infradead.org>2007-10-17 02:26:53 -0400
committerLinus Torvalds <torvalds@woody.linux-foundation.org>2007-10-17 11:42:51 -0400
commit48ef09a16edcc98d1de60f66ed7f650c571907f4 (patch)
tree4f7f8198407fd39f0ed0663d592b548853d1141c /fs/ufs/super.c
parentbcd6d4ecf6868ed57d4daae5d48e52d0752566d2 (diff)
ufs: Fix mount check in ufs_fill_super()
The current code skips the check to verify whether the filesystem was previously cleanly unmounted, if (flags & UFS_ST_MASK) == UFS_ST_44BSD or UFS_ST_OLD. This looks like an inadvertent bug that slipped in due to parantheses in the compound conditional to me, especially given that ufs_get_fs_state() handles the UFS_ST_44BSD case perfectly well. So, let's fix the compound condition appropriately. Signed-off-by: Satyam Sharma <satyam@infradead.org> Cc: Evgeniy Dushistov <dushistov@mail.ru> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'fs/ufs/super.c')
-rw-r--r--fs/ufs/super.c15
1 files changed, 8 insertions, 7 deletions
diff --git a/fs/ufs/super.c b/fs/ufs/super.c
index 4d72933661b7..584cf12cc40f 100644
--- a/fs/ufs/super.c
+++ b/fs/ufs/super.c
@@ -933,19 +933,20 @@ magic_found:
933 goto again; 933 goto again;
934 } 934 }
935 935
936 sbi->s_flags = flags;/*after that line some functions use s_flags*/ 936 /* Set sbi->s_flags here, used by ufs_get_fs_state() below */
937 sbi->s_flags = flags;
937 ufs_print_super_stuff(sb, usb1, usb2, usb3); 938 ufs_print_super_stuff(sb, usb1, usb2, usb3);
938 939
939 /* 940 /*
940 * Check, if file system was correctly unmounted. 941 * Check, if file system was correctly unmounted.
941 * If not, make it read only. 942 * If not, make it read only.
942 */ 943 */
943 if (((flags & UFS_ST_MASK) == UFS_ST_44BSD) || 944 if ((((flags & UFS_ST_MASK) == UFS_ST_44BSD) ||
944 ((flags & UFS_ST_MASK) == UFS_ST_OLD) || 945 ((flags & UFS_ST_MASK) == UFS_ST_OLD) ||
945 (((flags & UFS_ST_MASK) == UFS_ST_SUN || 946 ((flags & UFS_ST_MASK) == UFS_ST_SUN) ||
946 (flags & UFS_ST_MASK) == UFS_ST_SUNOS || 947 ((flags & UFS_ST_MASK) == UFS_ST_SUNOS) ||
947 (flags & UFS_ST_MASK) == UFS_ST_SUNx86) && 948 ((flags & UFS_ST_MASK) == UFS_ST_SUNx86)) &&
948 (ufs_get_fs_state(sb, usb1, usb3) == (UFS_FSOK - fs32_to_cpu(sb, usb1->fs_time))))) { 949 (ufs_get_fs_state(sb, usb1, usb3) == (UFS_FSOK - fs32_to_cpu(sb, usb1->fs_time)))) {
949 switch(usb1->fs_clean) { 950 switch(usb1->fs_clean) {
950 case UFS_FSCLEAN: 951 case UFS_FSCLEAN:
951 UFSD("fs is clean\n"); 952 UFSD("fs is clean\n");