Re: [RFC][PATCH v4] readahead: introduce O_RANDOM forPOSIX_FADV_RANDOM

From: Wu Fengguang
Date: Mon Jan 04 2010 - 21:45:43 EST


On Tue, Jan 05, 2010 at 10:28:24AM +0800, Stephen Rothwell wrote:
> Hi Fengguang,
>
> On Tue, 5 Jan 2010 10:26:50 +0800 Wu Fengguang <fengguang.wu@xxxxxxxxx> wrote:
> >
> > Where is it? I cannot grep find one in arch/.
> > There is one defined in include/asm-generic/fcntl.h:
> >
> > #ifndef O_SYNC
> > #define __O_SYNC 04000000
> > #define O_SYNC (__O_SYNC|O_DSYNC)
> > #endif
> >
> > However it has one less '0' :)
>
> Search for 0x800000 ...

Thanks, I got it..

Does that mean __O_SYNC would be _accidentally_ masked out in
__dentry_open() by the newly introduced fanotify bit?

f->f_flags = (flags & ~(FMODE_EXEC | FMODE_NONOTIFY));

The above line is added in commit f67cee7b50b004357be383,
and can be fixed by the below patch.

Eric, what do you think?

Thanks,
Fengguang
---

include/asm-generic/fcntl.h | 2 +-
include/linux/fs.h | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)

--- linux.orig/include/asm-generic/fcntl.h 2010-01-05 10:42:36.000000000 +0800
+++ linux/include/asm-generic/fcntl.h 2010-01-05 10:42:57.000000000 +0800
@@ -5,7 +5,7 @@

/*
* FMODE_EXEC is 0x20
- * FMODE_NONOTIFY is 0x800000
+ * FMODE_NONOTIFY is 0x1000000
* These cannot be used by userspace O_* until internal and external open
* flags are split.
* -Eric Paris
--- linux.orig/include/linux/fs.h 2010-01-05 10:40:33.000000000 +0800
+++ linux/include/linux/fs.h 2010-01-05 10:42:07.000000000 +0800
@@ -88,7 +88,7 @@ struct inodes_stat_t {
#define FMODE_NOCMTIME ((__force fmode_t)2048)

/* File was opened by fanotify and shouldn't generate fanotify events */
-#define FMODE_NONOTIFY ((__force fmode_t)8388608)
+#define FMODE_NONOTIFY ((__force fmode_t)0x1000000)

/*
* The below are the various read and write types that we support. Some of
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/