From: Pete W. <pwy...@fa...> - 2008-07-20 01:05:33
|
Thanks, for the info and that does work. But, is there a way to push that stat info into fuse's attribute cache during the readdir call? I.e., some function call like insert_into_cache(path, stat struct)? Thanks, pete On 7/19/08 2:26 AM, "sqweek" <sq...@gm...> wrote: > On Sat, Jul 19, 2008 at 8:34 AM, Pete Wyckoff <pwy...@fa...> wrote: >> For some reason, FUSE (2.7.3 on Linux Kernel 2.6.12) is calling getattr for >> every file after a readdir which gave it the same information using the >> filler function and stat structures. >> >> It does not do this for sub-directories, just files in the directory. >> >> It's killing me for directories with 10s of thousands of files. > > I presume it's killing you during ls. In this case, it's nothing to > do with fuse - ls is causing the getattr. readdir(3) doesn't portably > give ls any information except the name of the file. Most likely > you're using some sort of ls alias that uses a flag which forces ls to > stat the file (eg --color). You'll probably find if you bypass the > alias by typing /bin/ls everything is a lot swifter. > Unfortunately I don't think there's a workaround here, short of > moving to plan 9 (directory reads in 9p include all the stat > information). > -sqweek |