summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorkato <kato@FreeBSD.org>1997-08-23 07:41:02 +0000
committerkato <kato@FreeBSD.org>1997-08-23 07:41:02 +0000
commitc2d70f740042782abd9b85859d58a2718bf25459 (patch)
tree4dff3cf847f57b3ebfe04eb5b0eb49419c49444c
parentdaea96682ac0a2bfa5eb16641f5769723eb55bfa (diff)
downloadFreeBSD-src-c2d70f740042782abd9b85859d58a2718bf25459.zip
FreeBSD-src-c2d70f740042782abd9b85859d58a2718bf25459.tar.gz
Added sysctl args vfs.ext2fs.doclusterread and
vfs.ext2fs.doclusterwrite which control cluster read/write operation on ext2fs filesystem.
-rw-r--r--sys/gnu/ext2fs/ext2_extern.h13
-rw-r--r--sys/gnu/ext2fs/ext2_vnops.c24
-rw-r--r--sys/gnu/fs/ext2fs/ext2_extern.h13
-rw-r--r--sys/gnu/fs/ext2fs/ext2_vnops.c24
4 files changed, 56 insertions, 18 deletions
diff --git a/sys/gnu/ext2fs/ext2_extern.h b/sys/gnu/ext2fs/ext2_extern.h
index 34171b2..f00cd1e 100644
--- a/sys/gnu/ext2fs/ext2_extern.h
+++ b/sys/gnu/ext2fs/ext2_extern.h
@@ -42,6 +42,19 @@
#ifndef _SYS_GNU_EXT2FS_EXT2_EXTERN_H_
#define _SYS_GNU_EXT2FS_EXT2_EXTERN_H_
+/*
+ * Sysctl values for the ext2fs filesystem.
+ */
+#define EXT2FS_CLUSTERREAD 1 /* cluster reading enabled */
+#define EXT2FS_CLUSTERWRITE 2 /* cluster writing enable */
+#define EXT2FS_MAXID 3 /* number of valid ext2fs ids */
+
+#define EXT2FS_NAMES {\
+ {0, 0}, \
+ { "doclusterread", CTLTYPE_INT }, \
+ { "doculsterwrite", CTLTYPE_INT }, \
+}
+
struct dinode;
struct ext2_inode;
struct inode;
diff --git a/sys/gnu/ext2fs/ext2_vnops.c b/sys/gnu/ext2fs/ext2_vnops.c
index 9fa6e3a..4045fb6 100644
--- a/sys/gnu/ext2fs/ext2_vnops.c
+++ b/sys/gnu/ext2fs/ext2_vnops.c
@@ -236,24 +236,30 @@ static struct vnodeopv_desc ext2fs_fifoop_opv_desc =
/*
* Enabling cluster read/write operations.
*/
+#if defined(__FreeBSD__)
+static int doclusterread = 1;
+static int doclusterwrite = 1;
+#include <sys/sysctl.h>
+SYSCTL_NODE(_vfs, MOUNT_EXT2FS, ext2fs, CTLFLAG_RW, 0, "EXT2FS filesystem");
+SYSCTL_INT(_vfs_ext2fs, EXT2FS_CLUSTERREAD, doclusterread,
+ CTLFLAG_RW, &doclusterread, 0, "");
+SYSCTL_INT(_vfs_ext2fs, EXT2FS_CLUSTERWRITE, doclusterwrite,
+ CTLFLAG_RW, &doclusterwrite, 0, "");
+#else /* !FreeBSD */
#ifdef DEBUG
+static int doclusterread = 0;
+static int doclusterwrite = 1;
#include <sys/sysctl.h>
-static int doclusterread = 1;
SYSCTL_INT(_debug, 11, doclusterread, CTLFLAG_RW, &doclusterread, 0, "");
-static int doclusterwrite = 1;
SYSCTL_INT(_debug, 12, doclusterwrite, CTLFLAG_RW, &doclusterwrite, 0, "");
-#endif
-
-#if defined(__FreeBSD__)
-#define doclusterwrite 1
-#define doclusterread 1
-#else
+#else /* !DEBUG */
/* doclusterwrite is being tested
note that reallocblks is called when it's on, but this is not implemented */
#define doclusterwrite 0
/* doclusterread should work with new pagemove */
#define doclusterread 1
-#endif
+#endif /* DEBUG */
+#endif /* FreeBSD */
#include <gnu/ext2fs/ext2_readwrite.c>
diff --git a/sys/gnu/fs/ext2fs/ext2_extern.h b/sys/gnu/fs/ext2fs/ext2_extern.h
index 34171b2..f00cd1e 100644
--- a/sys/gnu/fs/ext2fs/ext2_extern.h
+++ b/sys/gnu/fs/ext2fs/ext2_extern.h
@@ -42,6 +42,19 @@
#ifndef _SYS_GNU_EXT2FS_EXT2_EXTERN_H_
#define _SYS_GNU_EXT2FS_EXT2_EXTERN_H_
+/*
+ * Sysctl values for the ext2fs filesystem.
+ */
+#define EXT2FS_CLUSTERREAD 1 /* cluster reading enabled */
+#define EXT2FS_CLUSTERWRITE 2 /* cluster writing enable */
+#define EXT2FS_MAXID 3 /* number of valid ext2fs ids */
+
+#define EXT2FS_NAMES {\
+ {0, 0}, \
+ { "doclusterread", CTLTYPE_INT }, \
+ { "doculsterwrite", CTLTYPE_INT }, \
+}
+
struct dinode;
struct ext2_inode;
struct inode;
diff --git a/sys/gnu/fs/ext2fs/ext2_vnops.c b/sys/gnu/fs/ext2fs/ext2_vnops.c
index 9fa6e3a..4045fb6 100644
--- a/sys/gnu/fs/ext2fs/ext2_vnops.c
+++ b/sys/gnu/fs/ext2fs/ext2_vnops.c
@@ -236,24 +236,30 @@ static struct vnodeopv_desc ext2fs_fifoop_opv_desc =
/*
* Enabling cluster read/write operations.
*/
+#if defined(__FreeBSD__)
+static int doclusterread = 1;
+static int doclusterwrite = 1;
+#include <sys/sysctl.h>
+SYSCTL_NODE(_vfs, MOUNT_EXT2FS, ext2fs, CTLFLAG_RW, 0, "EXT2FS filesystem");
+SYSCTL_INT(_vfs_ext2fs, EXT2FS_CLUSTERREAD, doclusterread,
+ CTLFLAG_RW, &doclusterread, 0, "");
+SYSCTL_INT(_vfs_ext2fs, EXT2FS_CLUSTERWRITE, doclusterwrite,
+ CTLFLAG_RW, &doclusterwrite, 0, "");
+#else /* !FreeBSD */
#ifdef DEBUG
+static int doclusterread = 0;
+static int doclusterwrite = 1;
#include <sys/sysctl.h>
-static int doclusterread = 1;
SYSCTL_INT(_debug, 11, doclusterread, CTLFLAG_RW, &doclusterread, 0, "");
-static int doclusterwrite = 1;
SYSCTL_INT(_debug, 12, doclusterwrite, CTLFLAG_RW, &doclusterwrite, 0, "");
-#endif
-
-#if defined(__FreeBSD__)
-#define doclusterwrite 1
-#define doclusterread 1
-#else
+#else /* !DEBUG */
/* doclusterwrite is being tested
note that reallocblks is called when it's on, but this is not implemented */
#define doclusterwrite 0
/* doclusterread should work with new pagemove */
#define doclusterread 1
-#endif
+#endif /* DEBUG */
+#endif /* FreeBSD */
#include <gnu/ext2fs/ext2_readwrite.c>
OpenPOWER on IntegriCloud