Home
last modified time | relevance | path

Searched hist:dc46bba7 (Results 1 – 1 of 1) sorted by relevance

/openbmc/linux/fs/nfsd/
H A Dnfsctl.cdc46bba7 Wed Aug 14 20:57:37 CDT 2019 J. Bruce Fields <bfields@redhat.com> nfsd: use i_wrlock instead of rcu for nfsdfs i_private

synchronize_rcu() gets called multiple times each time a client is
destroyed. If the laundromat thread has a lot of clients to destroy,
the delay can be noticeable. This was causing pynfs test RENEW3 to
fail.

We could embed an rcu_head in each inode and do the kref_put in an rcu
callback. But simplest is just to take a lock here.

(I also wonder if the laundromat thread would be better replaced by a
bunch of scheduled work or timers or something.)

Signed-off-by: J. Bruce Fields <bfields@redhat.com>
dc46bba7 Wed Aug 14 20:57:37 CDT 2019 J. Bruce Fields <bfields@redhat.com> nfsd: use i_wrlock instead of rcu for nfsdfs i_private

synchronize_rcu() gets called multiple times each time a client is
destroyed. If the laundromat thread has a lot of clients to destroy,
the delay can be noticeable. This was causing pynfs test RENEW3 to
fail.

We could embed an rcu_head in each inode and do the kref_put in an rcu
callback. But simplest is just to take a lock here.

(I also wonder if the laundromat thread would be better replaced by a
bunch of scheduled work or timers or something.)

Signed-off-by: J. Bruce Fields <bfields@redhat.com>