Module Name:    src
Committed By:   pooka
Date:           Wed May 15 16:44:03 UTC 2013

Modified Files:
        src/sys/fs/sysvbfs: sysvbfs_vnops.c

Log Message:
Don't change a read-only file system.


To generate a diff of this commit:
cvs rdiff -u -r1.47 -r1.48 src/sys/fs/sysvbfs/sysvbfs_vnops.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/sys/fs/sysvbfs/sysvbfs_vnops.c
diff -u src/sys/fs/sysvbfs/sysvbfs_vnops.c:1.47 src/sys/fs/sysvbfs/sysvbfs_vnops.c:1.48
--- src/sys/fs/sysvbfs/sysvbfs_vnops.c:1.47	Mon Mar 18 19:35:40 2013
+++ src/sys/fs/sysvbfs/sysvbfs_vnops.c	Wed May 15 16:44:03 2013
@@ -1,4 +1,4 @@
-/*	$NetBSD: sysvbfs_vnops.c,v 1.47 2013/03/18 19:35:40 plunky Exp $	*/
+/*	$NetBSD: sysvbfs_vnops.c,v 1.48 2013/05/15 16:44:03 pooka Exp $	*/
 
 /*-
  * Copyright (c) 2004 The NetBSD Foundation, Inc.
@@ -30,7 +30,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: sysvbfs_vnops.c,v 1.47 2013/03/18 19:35:40 plunky Exp $");
+__KERNEL_RCSID(0, "$NetBSD: sysvbfs_vnops.c,v 1.48 2013/05/15 16:44:03 pooka Exp $");
 
 #include <sys/param.h>
 #include <sys/kernel.h>
@@ -218,6 +218,10 @@ sysvbfs_close(void *arg)
 	struct bfs_fileattr attr;
 
 	DPRINTF("%s:\n", __func__);
+
+	if (v->v_mount->mnt_flag & MNT_RDONLY)
+		goto out;
+
 	uvm_vnp_setsize(v, bnode->size);
 
 	memset(&attr, 0xff, sizeof attr);	/* Set VNOVAL all */
@@ -231,6 +235,7 @@ sysvbfs_close(void *arg)
 
 	VOP_FSYNC(a->a_vp, a->a_cred, FSYNC_WAIT, 0, 0);
 
+ out:
 	return 0;
 }
 
@@ -877,6 +882,9 @@ sysvbfs_update(struct vnode *vp, const s
 	struct sysvbfs_node *bnode = vp->v_data;
 	struct bfs_fileattr attr;
 
+	if (vp->v_mount->mnt_flag & MNT_RDONLY)
+		return 0;
+
 	DPRINTF("%s:\n", __func__);
 	memset(&attr, 0xff, sizeof attr);	/* Set VNOVAL all */
 	if (bnode->update_atime) {

Reply via email to