* [PATCH] fsync on unmounting root
@ 2001-01-04 18:47 Chris Mason
2001-01-04 18:58 ` Alexander Viro
0 siblings, 1 reply; 3+ messages in thread
From: Chris Mason @ 2001-01-04 18:47 UTC (permalink / raw)
To: viro, linux-kernel
Hi guys,
Looks like the prerelease, and at least test13 don't fsync the device when
someone does an unmount on /
mount -o remount works, just unmounting the root misses the fsync.
This patch works for me:
-chris
--- linux/fs/super.c.1 Thu Jan 4 13:38:55 2001
+++ linux/fs/super.c Thu Jan 4 13:38:39 2001
@@ -1031,8 +1031,12 @@
* we just try to remount it readonly.
*/
mntput(mnt);
- if (!(sb->s_flags & MS_RDONLY))
+ if (!(sb->s_flags & MS_RDONLY)) {
+ shrink_dcache_sb(sb);
+ fsync_dev(sb->s_dev);
+ acct_auto_close(sb->s_dev);
retval = do_remount_sb(sb, MS_RDONLY, 0);
+ }
return retval;
}
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
Please read the FAQ at http://www.tux.org/lkml/
^ permalink raw reply [flat|nested] 3+ messages in thread* Re: [PATCH] fsync on unmounting root 2001-01-04 18:47 [PATCH] fsync on unmounting root Chris Mason @ 2001-01-04 18:58 ` Alexander Viro 2001-01-04 19:27 ` Chris Mason 0 siblings, 1 reply; 3+ messages in thread From: Alexander Viro @ 2001-01-04 18:58 UTC (permalink / raw) To: Chris Mason; +Cc: linux-kernel On Thu, 4 Jan 2001, Chris Mason wrote: > Hi guys, > > Looks like the prerelease, and at least test13 don't fsync the device when > someone does an unmount on / > > mount -o remount works, just unmounting the root misses the fsync. > > This patch works for me: > > -chris > > --- linux/fs/super.c.1 Thu Jan 4 13:38:55 2001 > +++ linux/fs/super.c Thu Jan 4 13:38:39 2001 > @@ -1031,8 +1031,12 @@ > * we just try to remount it readonly. > */ > mntput(mnt); > - if (!(sb->s_flags & MS_RDONLY)) > + if (!(sb->s_flags & MS_RDONLY)) { > + shrink_dcache_sb(sb); > + fsync_dev(sb->s_dev); > + acct_auto_close(sb->s_dev); > retval = do_remount_sb(sb, MS_RDONLY, 0); > + } I have a better suggestion: if (mnt == current->fs->rootmnt && !umount_root) { mntput(mnt); return do_remount("/", 0, NULL); } - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org Please read the FAQ at http://www.tux.org/lkml/ ^ permalink raw reply [flat|nested] 3+ messages in thread
* Re: [PATCH] fsync on unmounting root 2001-01-04 18:58 ` Alexander Viro @ 2001-01-04 19:27 ` Chris Mason 0 siblings, 0 replies; 3+ messages in thread From: Chris Mason @ 2001-01-04 19:27 UTC (permalink / raw) To: Alexander Viro; +Cc: linux-kernel On Thursday, January 04, 2001 01:58:47 PM -0500 Alexander Viro <viro@math.psu.edu> wrote: > On Thu, 4 Jan 2001, Chris Mason wrote: > >> Looks like the prerelease, and at least test13 don't fsync the device >> when someone does an unmount on / >> >> mount -o remount works, just unmounting the root misses the fsync. >> [snip] > > I have a better suggestion: > > if (mnt == current->fs->rootmnt && !umount_root) { > mntput(mnt); > return do_remount("/", 0, NULL); > } > Ok, but I thought we would need an MS_RDONLY in there somewhere...How about this: -chris --- linux/fs/super.c.1 Thu Jan 4 13:38:55 2001 +++ linux/fs/super.c Thu Jan 4 14:14:04 2001 @@ -54,6 +54,7 @@ extern int root_mountflags; static int do_remount_sb(struct super_block *sb, int flags, char * data); +static int do_remount(const char *dir, int flags, char * data); /* this is initialized in init/main.c */ kdev_t ROOT_DEV; @@ -1025,15 +1026,12 @@ * call reboot(9). Then init(8) could umount root and exec /reboot. */ if (mnt == current->fs->rootmnt && !umount_root) { - int retval = 0; /* * Special case for "unmounting" root ... * we just try to remount it readonly. */ mntput(mnt); - if (!(sb->s_flags & MS_RDONLY)) - retval = do_remount_sb(sb, MS_RDONLY, 0); - return retval; + return do_remount("/", MS_RDONLY, NULL); } spin_lock(&dcache_lock); - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org Please read the FAQ at http://www.tux.org/lkml/ ^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2001-01-04 19:27 UTC | newest] Thread overview: 3+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2001-01-04 18:47 [PATCH] fsync on unmounting root Chris Mason 2001-01-04 18:58 ` Alexander Viro 2001-01-04 19:27 ` Chris Mason
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox