From: Jean-Pierre A. <jea...@wa...> - 2016-01-30 13:03:41
|
Hi, Satya Prakash GS wrote: >>In this situation your reply by >>fuse_reply_attr() defines the new permissions to enter into >>the cached entries and the kernel is supposed to check the >>full path for any subsequent access to the file. You do not >>have to do anything special. > > I double-checked this and we are sending correct attributes as > part of reply. After the 3 second timeout things are fine but within the > 3 second window ls -l seems to be displaying the attributes of the children. That is a bad bug. The more bad as I already reported it more than six years ago on this list (with a patch proposal which was wrong) http://article.gmane.org/gmane.comp.file-systems.fuse.devel/8099 http://article.gmane.org/gmane.comp.file-systems.fuse.devel/8119 This was one of the reasons why ntfs-3g gave up on using the fuse cache. Jean-Pierre > > > On Jan 28 2016, Satya Prakash GS <g.satyaprakash-Re5JQEeQqe8AvxtiuMwx3w@...> wrote: >>> Is there an api in low-level which will invalidate all the dentries of >>> the children in a directory. > >>No, but you can invalidate them one-by-one using fuse_notify_inval*. > > But this is an expensive operation if I have to walk over all the files (or the ones which have > lookup count > 0) in a directory. > > >>> When setattr is called on a directory with execute >>> permissions revoked for a particular user, further lookups of children in >>> the directory should not be served from kernel. How can this be >>> achieved. > >>The kernel ought to reset its cache automatically in this situation. > > Looks like this isn't happening within the lookup timeout window. I am not a kernel > expert can somebody please confirm this behaviour. > >>Best, >>-Nikolaus > > Thanks, > Satya. |