]> git.baikalelectronics.ru Git - kernel.git/commit
fuse: allow batching of FORGET requests
authorMiklos Szeredi <mszeredi@suse.cz>
Tue, 7 Dec 2010 19:16:56 +0000 (20:16 +0100)
committerMiklos Szeredi <mszeredi@suse.cz>
Tue, 7 Dec 2010 19:16:56 +0000 (20:16 +0100)
commite27ca836415a60df27192182ac2b3b642b469026
tree1f98cd9fab564b6df8869a60f36e82d5d20f14f3
parent57652b3c2b60fdf95723c4b56cb354e6ffede978
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>
fs/fuse/dev.c
fs/fuse/fuse_i.h
include/linux/fuse.h