|
@@ -727,8 +727,13 @@ int do_remount_sb(struct super_block *sb, int flags, void *data, int force)
|
|
|
|
|
|
if (sb->s_op->remount_fs) {
|
|
|
retval = sb->s_op->remount_fs(sb, &flags, data);
|
|
|
- if (retval)
|
|
|
- return retval;
|
|
|
+ if (retval) {
|
|
|
+ if (!force)
|
|
|
+ return retval;
|
|
|
+ /* If forced remount, go ahead despite any errors */
|
|
|
+ WARN(1, "forced remount of a %s fs returned %i\n",
|
|
|
+ sb->s_type->name, retval);
|
|
|
+ }
|
|
|
}
|
|
|
sb->s_flags = (sb->s_flags & ~MS_RMT_MASK) | (flags & MS_RMT_MASK);
|
|
|
|