Module Name: src Committed By: pooka Date: Thu Jan 13 07:25:50 UTC 2011
Modified Files: src/sys/kern: vfs_syscalls.c src/sys/sys: fstypes.h Log Message: allow file system to decide if it can be downgraded from r/w to r/o To generate a diff of this commit: cvs rdiff -u -r1.413 -r1.414 src/sys/kern/vfs_syscalls.c cvs rdiff -u -r1.27 -r1.28 src/sys/sys/fstypes.h Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
Modified files: Index: src/sys/kern/vfs_syscalls.c diff -u src/sys/kern/vfs_syscalls.c:1.413 src/sys/kern/vfs_syscalls.c:1.414 --- src/sys/kern/vfs_syscalls.c:1.413 Sun Jan 2 05:12:33 2011 +++ src/sys/kern/vfs_syscalls.c Thu Jan 13 07:25:50 2011 @@ -1,4 +1,4 @@ -/* $NetBSD: vfs_syscalls.c,v 1.413 2011/01/02 05:12:33 dholland Exp $ */ +/* $NetBSD: vfs_syscalls.c,v 1.414 2011/01/13 07:25:50 pooka Exp $ */ /*- * Copyright (c) 2008, 2009 The NetBSD Foundation, Inc. @@ -66,7 +66,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: vfs_syscalls.c,v 1.413 2011/01/02 05:12:33 dholland Exp $"); +__KERNEL_RCSID(0, "$NetBSD: vfs_syscalls.c,v 1.414 2011/01/13 07:25:50 pooka Exp $"); #ifdef _KERNEL_OPT #include "opt_fileassoc.h" @@ -169,7 +169,8 @@ * prevent read-write to read-only downgrades. */ if ((flags & (MNT_RELOAD | MNT_RDONLY)) != 0 && - (mp->mnt_flag & MNT_RDONLY) == 0) { + (mp->mnt_flag & MNT_RDONLY) == 0 && + (mp->mnt_iflag & IMNT_CAN_RWTORO) == 0) { error = EOPNOTSUPP; /* Needs translation */ goto out; } Index: src/sys/sys/fstypes.h diff -u src/sys/sys/fstypes.h:1.27 src/sys/sys/fstypes.h:1.28 --- src/sys/sys/fstypes.h:1.27 Thu Jan 13 07:23:39 2011 +++ src/sys/sys/fstypes.h Thu Jan 13 07:25:50 2011 @@ -1,4 +1,4 @@ -/* $NetBSD: fstypes.h,v 1.27 2011/01/13 07:23:39 pooka Exp $ */ +/* $NetBSD: fstypes.h,v 1.28 2011/01/13 07:25:50 pooka Exp $ */ /* * Copyright (c) 1989, 1991, 1993 @@ -210,6 +210,7 @@ #define IMNT_DTYPE 0x00000040 /* returns d_type fields */ #define IMNT_HAS_TRANS 0x00000080 /* supports transactions */ #define IMNT_MPSAFE 0x00000100 /* file system code MP safe */ +#define IMNT_CAN_RWTORO 0x00000200 /* can downgrade fs to from rw to r/o */ #define __MNT_FLAGS \ __MNT_BASIC_FLAGS \ @@ -254,6 +255,7 @@ #define __IMNT_FLAG_BITS \ "\20" \ + "\12IMNT_CAN_RWTORO" \ "\11IMNT_MPSAFE" \ "\10IMNT_HAS_TRANS" \ "\07IMNT_DTYPE" \