forked from Minki/linux
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>
This commit is contained in:
parent
bcd6d4ecf6
commit
48ef09a16e
@ -933,19 +933,20 @@ magic_found:
|
||||
goto again;
|
||||
}
|
||||
|
||||
sbi->s_flags = flags;/*after that line some functions use s_flags*/
|
||||
/* Set sbi->s_flags here, used by ufs_get_fs_state() below */
|
||||
sbi->s_flags = flags;
|
||||
ufs_print_super_stuff(sb, usb1, usb2, usb3);
|
||||
|
||||
/*
|
||||
* Check, if file system was correctly unmounted.
|
||||
* If not, make it read only.
|
||||
*/
|
||||
if (((flags & UFS_ST_MASK) == UFS_ST_44BSD) ||
|
||||
((flags & UFS_ST_MASK) == UFS_ST_OLD) ||
|
||||
(((flags & UFS_ST_MASK) == UFS_ST_SUN ||
|
||||
(flags & UFS_ST_MASK) == UFS_ST_SUNOS ||
|
||||
(flags & UFS_ST_MASK) == UFS_ST_SUNx86) &&
|
||||
(ufs_get_fs_state(sb, usb1, usb3) == (UFS_FSOK - fs32_to_cpu(sb, usb1->fs_time))))) {
|
||||
if ((((flags & UFS_ST_MASK) == UFS_ST_44BSD) ||
|
||||
((flags & UFS_ST_MASK) == UFS_ST_OLD) ||
|
||||
((flags & UFS_ST_MASK) == UFS_ST_SUN) ||
|
||||
((flags & UFS_ST_MASK) == UFS_ST_SUNOS) ||
|
||||
((flags & UFS_ST_MASK) == UFS_ST_SUNx86)) &&
|
||||
(ufs_get_fs_state(sb, usb1, usb3) == (UFS_FSOK - fs32_to_cpu(sb, usb1->fs_time)))) {
|
||||
switch(usb1->fs_clean) {
|
||||
case UFS_FSCLEAN:
|
||||
UFSD("fs is clean\n");
|
||||
|
Loading…
Reference in New Issue
Block a user