Skip to contentSkip to conversation

inconsistent behavior of MS_RELATIME F_FLAG

DISCUSSION Dave Rawks 1 participant 1 message May 26, 2011

lore
Share & tools
lore

Dave Rawks

author
#0 lore raw

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:

Quoted 1 line

/dev/sda3 /var ext3 defaults 0 2

/proc/mounts:

Quoted 1 line

/dev/sda3 /var ext3 rw,relatime,errors=continue,data=ordered 0 0

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

Quoted 8 lines
Quoted 2 lines
Quoted 2 lines
Quoted 2 lines

import os,statvfs
os.statvfs('/var')[statvfs.F_FLAG]

4096

Quoted 1 line
Quoted 1 line
Quoted 1 line

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