Project

General

Profile

Bug #7378

exported_lock held during nfs4 compound processing

Added by Arne Jansen about 3 years ago. Updated over 1 year ago.

Status:
In Progress
Priority:
Normal
Assignee:
Category:
nfs - NFS server and client
Start date:
2016-09-14
Due date:
% Done:

100%

Estimated time:
Difficulty:
Medium
Tags:
needs-triage

Description

Traditionally, rfs4_compound() holds a read lock on exported_lock during the processing of the compound request. The processing of some OPs might take several seconds. In our case, writes to a zfs filesystem can take very long if the filesystem is at quota. In this case, zfs waits for the next txg to free some space. This becomes problematic should someone need a write lock, like share(). If there is a pending writer, it has to wait for all existing readers to complete. During this time, all new readers also have to wait, effectively rendering nfs4 service unresponsive.

The aim is to only acquire the exported_lock during nfs4 processing when needed.

History

#1

Updated by Marcel Telka about 3 years ago

  • Description updated (diff)
#2

Updated by Marcel Telka over 1 year ago

  • Status changed from New to In Progress
  • Assignee changed from Arne Jansen to Marcel Telka

Also available in: Atom PDF