Messages in this thread Patch in this message |  | | Date | Thu, 04 Jan 2001 14:27:11 -0500 | From | Chris Mason <> | Subject | Re: [PATCH] fsync on unmounting root |
| |
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/
|  |