diff options
author | Brian Behlendorf <[email protected]> | 2014-08-04 13:30:20 -0700 |
---|---|---|
committer | Brian Behlendorf <[email protected]> | 2014-08-11 16:11:43 -0700 |
commit | 0a50679ce9eb8ded7bf20685e9d32724ded9cb8d (patch) | |
tree | 0087b2570d24eb85e710051c4c3721bc22469069 /include/sys | |
parent | 4dd18932ba4cfdcf9b16609f6a80c2d6c239cb15 (diff) |
Add zfs_iput_async() interface
Handle all iputs in zfs_purgedir() and zfs_inode_destroy()
asynchronously to prevent deadlocks. When the iputs are allowed
to run synchronously in the destroy call path deadlocks between
xattr directory inodes and their parent file inodes are possible.
Signed-off-by: Brian Behlendorf <[email protected]>
Signed-off-by: Richard Yao <[email protected]>
Closes #457
Diffstat (limited to 'include/sys')
-rw-r--r-- | include/sys/zfs_vnops.h | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/include/sys/zfs_vnops.h b/include/sys/zfs_vnops.h index c9fecf8ba..c331035c5 100644 --- a/include/sys/zfs_vnops.h +++ b/include/sys/zfs_vnops.h @@ -79,6 +79,7 @@ extern int zfs_putpage(struct inode *ip, struct page *pp, extern int zfs_dirty_inode(struct inode *ip, int flags); extern int zfs_map(struct inode *ip, offset_t off, caddr_t *addrp, size_t len, unsigned long vm_flags); +extern void zfs_iput_async(struct inode *ip); #ifdef __cplusplus } |