[Top] [All Lists]

Re: [fuse-devel] utimensat fails to update ctime

To: OGAWA Hirofumi <hirofumi@xxxxxxxxxxxxxxxxxx>
Subject: Re: [fuse-devel] utimensat fails to update ctime
From: Jean-Pierre André <jean-pierre.andre@xxxxxxxxxx>
Date: Tue, 22 Dec 2009 10:56:20 +0100
Cc: Eric Blake <ebb9@xxxxxxx>, fuse-devel@xxxxxxxxxxxxxxxxxxxxx, Miklos Szeredi <miklos@xxxxxxxxxx>, Christoph Hellwig <hch@xxxxxx>, Linux Kernel Mailing List <linux-kernel@xxxxxxxxxxxxxxx>, xfs@xxxxxxxxxxx
In-reply-to: <87d427jscr.fsf@xxxxxxxxxxxxxxxxxxx>
References: <4B2B156D.9040604@xxxxxxx> <87aaxclr4q.fsf@xxxxxxxxxxxxxxxxxxx> <4B2F7421.10005@xxxxxxx> <4B2F7A95.3010708@xxxxxxx> <87hbrkjrk8.fsf@xxxxxxxxxxxxxxxxxxx> <4B304D04.6040501@xxxxxxx> <87d427jscr.fsf@xxxxxxxxxxxxxxxxxxx>
User-agent: Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv: Gecko/20091027 Fedora/2.0-7.fc13 SeaMonkey/2.0
Hi all,

OGAWA Hirofumi wrote:
Eric Blake<ebb9@xxxxxxx>  writes:

It is likely the issue of libfuse or ntfs-3g. I don't know about ntfs-3g
people at all. So, for now, just Cc: to fuse people.

Which ntfs-3g version are you using ?

utimensat(0, NULL, {UTIME_OMIT, UTIME_NOW}, 0) = 0

Currently ntfs-3g does not set sub-second precision.

There is also a slight problem in the fuse interface :
the time buffer is never passed as NULL, consequently
in some circumstances ntfs-3g cannot decide correctly
over permissions. A permissive action is taken in this

> From this, "ia_valid" will have "ATTR_CTIME | ATTR_MTIME". And the
request would pass to userland via fuse of kernel part, then it will be
handled by libfuse.

> From quick grep of libfuse and ntfs-3g (would not be latest), ntfs-3g is
using "struct fuse_operations", not "struct fuse_lowlevel_ops".

With the latest ntfs-3g, currently as a release candidate,
you can (optionally) use the low level fuse interface
use the "lowntfs-3g" driver instead of "ntfs-3g"

Hope this helps



<Prev in Thread] Current Thread [Next in Thread>