Re: xfs: commit 6552321831dc "xfs: remove i_iolock and use i_rwsem in the VFS inode instead" change causes hang

From: Christoph Hellwig
Date: Sun Jan 08 2017 - 10:14:43 EST


On Sun, Jan 08, 2017 at 10:03:09AM -0500, Mimi Zohar wrote:
> But not normally for a normal file read.

Depends on the file system. In addition to XFS at least the NFS
also uses i_rwsem by default. Also all file systems supporting
a DAX I/O path.

> Unless something has changed recently, to synchronize reading files to
> calculate the file hash and writing xattrs it has to take the i_rwsem
> prior to reading the file.

No, you must simply not do this at all. If you take a lock that
belongs to the fs and is not your own over ->read_iter you're toast
as you've seen.