summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCraig Rodrigues <rodrigc@FreeBSD.org>2007-07-14 21:18:19 +0000
committerCraig Rodrigues <rodrigc@FreeBSD.org>2007-07-14 21:18:19 +0000
commitd678780e6027a653bd3af3344494ee8f2c93d22c (patch)
tree104b3b3840b5ebffddfa7133189f3243964ec2a9
parente38e34dbadbc1338ca58be445f79c4be6a406da8 (diff)
Notes
-rw-r--r--sys/gnu/fs/ext2fs/ext2_vfsops.c2
-rw-r--r--sys/kern/kern_event.c9
-rw-r--r--sys/kern/vfs_mount.c4
3 files changed, 14 insertions, 1 deletions
diff --git a/sys/gnu/fs/ext2fs/ext2_vfsops.c b/sys/gnu/fs/ext2fs/ext2_vfsops.c
index ab70b23f803f..d5ad6f22feb4 100644
--- a/sys/gnu/fs/ext2fs/ext2_vfsops.c
+++ b/sys/gnu/fs/ext2fs/ext2_vfsops.c
@@ -119,7 +119,7 @@ static int compute_sb_data(struct vnode * devvp,
static const char *ext2_opts[] = { "from", "export", "union", "acls", "exec",
"atime", "union", "suiddir", "multilabel", "symfollow", "clusterr",
- "clusterw", "force" };
+ "clusterw", "force", NULL };
/*
* VFS Operations.
diff --git a/sys/kern/kern_event.c b/sys/kern/kern_event.c
index aa446b6079f7..f7f9f1c01e15 100644
--- a/sys/kern/kern_event.c
+++ b/sys/kern/kern_event.c
@@ -1059,6 +1059,15 @@ kqueue_expand(struct kqueue *kq, struct filterops *fops, uintptr_t ident,
int fd;
int mflag = waitok ? M_WAITOK : M_NOWAIT;
+ /*
+ * knote locks the KQ and filt_proc calls kqueue_register if _TRACK
+ * is set. Return early so we don't assert KQ_NOTOWNED in this
+ * case. We have a knote in the hash, so we have the table.
+ */
+ if ((fops->f_isfd && kq->kq_knlistsize > ident) ||
+ (!fops->f_isfd && kq->kq_knhashmask != 0))
+ return 0;
+
KQ_NOTOWNED(kq);
if (fops->f_isfd) {
diff --git a/sys/kern/vfs_mount.c b/sys/kern/vfs_mount.c
index 82bb76736810..7106b2cf8771 100644
--- a/sys/kern/vfs_mount.c
+++ b/sys/kern/vfs_mount.c
@@ -638,6 +638,10 @@ vfs_donmount(struct thread *td, int fsflags, struct uio *fsoptions)
fsflags &= ~MNT_ASYNC;
else if (strcmp(opt->name, "noatime") == 0)
fsflags |= MNT_NOATIME;
+ else if (strcmp(opt->name, "atime") == 0) {
+ free(opt->name, M_MOUNT);
+ opt->name = strdup("nonoatime", M_MOUNT);
+ }
else if (strcmp(opt->name, "noclusterr") == 0)
fsflags |= MNT_NOCLUSTERR;
else if (strcmp(opt->name, "noclusterw") == 0)