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" \

Reply via email to