inconsistent behavior of MS_RELATIME F_FLAG

From: Dave Rawks
Date: Thu May 26 2011 - 13:58:59 EST


I've been trying to figure this out for the past few days and I'm at a
loss as to what exactly the expected behavior of the MS_RELATIME bit in
F_FLAG is supposed to reflect when I stat a mounted filesystem. The
comments in fs.h state that the MS_RELATIME flag is one of the
filesystem independent flags available in the regular 32 bit F_FLAG
mask. However observationally I notice that /proc/mounts indicates that
relatime is set even on mount which return 0 for the relatime bit when
stat'd.

For instance:

/etc/fstab:
>/dev/sda3 /var ext3 defaults 0 2

/proc/mounts:
> /dev/sda3 /var ext3 rw,relatime,errors=continue,data=ordered 0 0

yet when I stat the filesystem (excuse my python):

> >>> import os,statvfs
> >>> os.statvfs('/var')[statvfs.F_FLAG]
> 4096
> >>> 4096 & (1<<21)
> 0


>From a quick search back through the list archive, I see that the
default atime behavior has been a contentious subject at times, but I'm
left wondering how we came to a state where apparently relatime is the
default but the normal programmatic way of interrogating the mount's
state does not reflect that.

Any insight would be greatly appreciated. Also, this is my first post to
lkml so I apologize in advance if I've asked in the wrong place.

-Dave Rawks
--
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/