aboutsummaryrefslogtreecommitdiffstats
path: root/include
diff options
context:
space:
mode:
authorBrian Behlendorf <[email protected]>2014-08-04 13:30:20 -0700
committerBrian Behlendorf <[email protected]>2014-08-11 16:11:43 -0700
commit0a50679ce9eb8ded7bf20685e9d32724ded9cb8d (patch)
tree0087b2570d24eb85e710051c4c3721bc22469069 /include
parent4dd18932ba4cfdcf9b16609f6a80c2d6c239cb15 (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')
-rw-r--r--include/sys/zfs_vnops.h1
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
}