From: Clint O. <cli...@gm...> - 2012-07-31 16:59:53
|
Hi: I'm using FUSE 2.7.4, and whenever I do a find, I noticed that find only reads the entries in the current directory (getattr/readdir) and never descends into subdirectories. Is there some hook/handler that I'm not fulfilling that's causing find to not want to cross xdevs or something else? Thanks, -Clint |
From: Matt T. <mat...@gm...> - 2012-07-31 17:59:31
|
Have you verified that your Fs is returning a non-0 link count for the dirs? Istr gnu find has an optimisation where it won't descend into them otherwise. Sent from a telephone, please excuse typos. On 31 Jul 2012, at 18:01, Clint Olsen <cli...@gm...> wrote: > Hi: > > I'm using FUSE 2.7.4, and whenever I do a find, I noticed that find only > reads the entries in the current directory (getattr/readdir) and never > descends into subdirectories. Is there some hook/handler that I'm not > fulfilling that's causing find to not want to cross xdevs or something else? > > Thanks, > > -Clint > ------------------------------------------------------------------------------ > Live Security Virtual Conference > Exclusive live event will cover all the ways today's security and > threat landscape has changed and how IT managers can respond. Discussions > will include endpoint security, mobile security and the latest in malware > threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/ > _______________________________________________ > fuse-devel mailing list > fus...@li... > https://lists.sourceforge.net/lists/listinfo/fuse-devel |
From: Clint O. <cli...@gm...> - 2012-07-31 18:07:26
|
Hi: Yes, I copied the example from "Hello world": stbuf->st_mode = S_IFDIR | 0755; stbuf->st_nlink = 2; Thanks, -Clint On Tue, Jul 31, 2012 at 10:59 AM, Matt Turner <mat...@gm...> wrote: > Have you verified that your Fs is returning a non-0 link count for the > dirs? Istr gnu find has an optimisation where it won't descend into > them otherwise. > > Sent from a telephone, please excuse typos. > > On 31 Jul 2012, at 18:01, Clint Olsen <cli...@gm...> wrote: > > > Hi: > > > > I'm using FUSE 2.7.4, and whenever I do a find, I noticed that find only > > reads the entries in the current directory (getattr/readdir) and never > > descends into subdirectories. Is there some hook/handler that I'm not > > fulfilling that's causing find to not want to cross xdevs or something > else? > > > > Thanks, > > > > -Clint > > > ------------------------------------------------------------------------------ > > Live Security Virtual Conference > > Exclusive live event will cover all the ways today's security and > > threat landscape has changed and how IT managers can respond. Discussions > > will include endpoint security, mobile security and the latest in malware > > threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/ > > _______________________________________________ > > fuse-devel mailing list > > fus...@li... > > https://lists.sourceforge.net/lists/listinfo/fuse-devel > |
From: Lennert B. <bu...@wa...> - 2012-07-31 18:50:25
|
On Tue, Jul 31, 2012 at 11:07:19AM -0700, Clint Olsen wrote: > Yes, I copied the example from "Hello world": > > stbuf->st_mode = S_IFDIR | 0755; > stbuf->st_nlink = 2; This indicates a directory with no subdirectories in it. See the man page for 'find', search for 'noleaf'. You'll have to set the link count to two plus the number of subdirectories in the dir (or setting the link count to 0 or 1 might work too). |
From: Clint O. <cli...@gm...> - 2012-07-31 20:04:28
|
On Tue, Jul 31, 2012 at 11:50 AM, Lennert Buytenhek <bu...@wa...>wrote: > On Tue, Jul 31, 2012 at 11:07:19AM -0700, Clint Olsen wrote: > > > Yes, I copied the example from "Hello world": > > > > stbuf->st_mode = S_IFDIR | 0755; > > stbuf->st_nlink = 2; > > This indicates a directory with no subdirectories > in it. See the man page for 'find', search for > 'noleaf'. You'll have to set the link count to > two plus the number of subdirectories in the dir > (or setting the link count to 0 or 1 might work > too). > Thanks a lot for this. Great catch. I'm using 0 (for now) and this seems to work fine. If you know of any performance reasons why I would need the correct count, let me know. I'd rather not ask our API that unless we really have to due to performance issues on our side. -Clint |
From: Goswin v. B. <gos...@we...> - 2012-08-03 07:37:16
|
On Tue, Jul 31, 2012 at 01:04:20PM -0700, Clint Olsen wrote: > On Tue, Jul 31, 2012 at 11:50 AM, Lennert Buytenhek > <bu...@wa...>wrote: > > > On Tue, Jul 31, 2012 at 11:07:19AM -0700, Clint Olsen wrote: > > > > > Yes, I copied the example from "Hello world": > > > > > > stbuf->st_mode = S_IFDIR | 0755; > > > stbuf->st_nlink = 2; > > > > This indicates a directory with no subdirectories > > in it. See the man page for 'find', search for > > 'noleaf'. You'll have to set the link count to > > two plus the number of subdirectories in the dir > > (or setting the link count to 0 or 1 might work > > too). > > > > Thanks a lot for this. Great catch. I'm using 0 (for now) and this seems to > work fine. If you know of any performance reasons why I would need the > correct count, let me know. I'd rather not ask our API that unless we > really have to due to performance issues on our side. Find optimizes to only stat entries (to see if they are directories) until it got nlink number of dirs. So if you do set nlink correctly then you get less stats from find. You have to decide / test if that is worth the overhead of asking the API how many dirs there are. I'm not aware of anything else using this trick to avoid stats so I wouldn't bother. MfG Goswin |
From: Miklos S. <mi...@sz...> - 2012-08-03 09:04:42
|
On Tue, Jul 31, 2012 at 10:04 PM, Clint Olsen <cli...@gm...> wrote: > Thanks a lot for this. Great catch. I'm using 0 (for now) and this seems to > work fine. Well established filesystems use nlink=1 and this has been working for years. I don't recommend using nlink=0 because it means (for non-directories, at least) that the file has been unlinked. Thanks, Miklos |