diff options
author | Miklos Szeredi <mszeredi@suse.cz> | 2010-12-07 14:16:56 -0500 |
---|---|---|
committer | Miklos Szeredi <mszeredi@suse.cz> | 2010-12-07 14:16:56 -0500 |
commit | 02c048b919455aaa38628563cdcc2e691c8a9f53 (patch) | |
tree | 1f98cd9fab564b6df8869a60f36e82d5d20f14f3 /fs/fuse/fuse_i.h | |
parent | 07e77dca8a1f17a724a9b7449f0ca02e70e9d057 (diff) |
fuse: allow batching of FORGET requests
Terje Malmedal reports that a fuse filesystem with 32 million inodes
on a machine with lots of memory can take up to 30 minutes to process
FORGET requests when all those inodes are evicted from the icache.
To solve this, create a BATCH_FORGET request that allows up to about
8000 FORGET requests to be sent in a single message.
This request is only sent if userspace supports interface version 7.16
or later, otherwise fall back to sending individual FORGET messages.
Reported-by: Terje Malmedal <terje.malmedal@usit.uio.no>
Signed-off-by: Miklos Szeredi <mszeredi@suse.cz>
Diffstat (limited to 'fs/fuse/fuse_i.h')
-rw-r--r-- | fs/fuse/fuse_i.h | 3 |
1 files changed, 1 insertions, 2 deletions
diff --git a/fs/fuse/fuse_i.h b/fs/fuse/fuse_i.h index 33369c63a522..ae5744a2f9e9 100644 --- a/fs/fuse/fuse_i.h +++ b/fs/fuse/fuse_i.h | |||
@@ -55,8 +55,7 @@ extern unsigned max_user_congthresh; | |||
55 | 55 | ||
56 | /* One forget request */ | 56 | /* One forget request */ |
57 | struct fuse_forget_link { | 57 | struct fuse_forget_link { |
58 | u64 nodeid; | 58 | struct fuse_forget_one forget_one; |
59 | u64 nlookup; | ||
60 | struct fuse_forget_link *next; | 59 | struct fuse_forget_link *next; |
61 | }; | 60 | }; |
62 | 61 | ||