On Fri, Apr 18, 2008 at 6:30 AM, Szabolcs Szakacsits <szaka@ntfs-3g.org> wrote:Correct me if I'm wrong, but one place where caches seem necessary is for lookup. My file system already has an inode number; my understanding is that the kernel inode cache and dcache are caching the FUSE inode by filename and its hashed inode number. In FUSE, on open, I'm passed a filename which I then have to resolve into an inode # via my own lookup. The VFS does the path_lookup as part of sys_open, and since I get to put private data into the struct inode, I'll generally already have the block # and various other info in the dcache by the time open is called. Also, if you stuff inode data into the private fh field in fuse_file_info, you need to be sure that any subsequent lookups always return the same inode structure, otherwise a thread doing ftruncate vs one doing truncate will cause issues. So I created an internal dcache to solve those two problems. Nope, that's not possible, sorry. Both require use of USB. lkarmafs and omfs_fuse aren't the same thing. Like I said it was anecdotal (copy 20 gigs of X) in both. I'm sure a good portion of it is my fault, such as doing unnecessary malloc & copies in omfs_fuse. I have put exactly zero effort into making it fast so far. BTW, I hardly intended to start a huge VFS vs FUSE debate. I think FUSE is great. I'm not sure it's the right fit for this, is all. -- Bob Copeland %% www.bobcopeland.com --
| Tarkan Erimer | Re: Dual-Licensing Linux Kernel with GPL V2 and GPL V3 |
| Greg Kroah-Hartman | [PATCH 004/196] Chinese: add translation of SubmittingPatches |
| Artem Bityutskiy | [PATCH 18/44 take 2] [UBI] build unit implementation |
| James Morris | Re: LSM conversion to static interface |
git: | |
| Paul Jackson | [PATCH] cpuset sched_load_balance kmalloc fix |
| Gerrit Renker | [PATCH 15/37] dccp: Set per-connection CCIDs via socket options |
| Jarek Poplawski | [PATCH] pkt_sched: Destroy gen estimators under rtnl_lock(). |
| Linus Torvalds | Re: [GIT]: Networking |
