From 780d47bbea52f1760908653f131063229053896b Mon Sep 17 00:00:00 2001 From: Miklos Szeredi Date: Tue, 15 Jul 2014 11:57:37 +0200 Subject: [PATCH] libfuse: document deadlock avoidance for fuse_notify_inval_entry() and fuse_notify_delete() Reported by Han-Wen Nienhuys --- ChangeLog | 5 +++++ include/fuse_lowlevel.h | 8 ++++++++ 2 files changed, 13 insertions(+) diff --git a/ChangeLog b/ChangeLog index 8100599..4e7da1d 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +2014-07-15 Miklos Szeredi + + * libfuse: document deadlock avoidance for + fuse_notify_inval_entry() and fuse_notify_delete() + 2014-03-26 Miklos Szeredi * Initilaize stat buffer passed to ->getattr() and ->fgetattr() to diff --git a/include/fuse_lowlevel.h b/include/fuse_lowlevel.h index 595f061..31ea87f 100644 --- a/include/fuse_lowlevel.h +++ b/include/fuse_lowlevel.h @@ -1401,6 +1401,10 @@ int fuse_lowlevel_notify_inval_inode(struct fuse_chan *ch, fuse_ino_t ino, * Notify to invalidate parent attributes and the dentry matching * parent/name * + * To avoid a deadlock don't call this function from a filesystem operation and + * don't call it with a lock held that can also be held by a filesystem + * operation. + * * @param ch the channel through which to send the invalidation * @param parent inode number * @param name file name @@ -1415,6 +1419,10 @@ int fuse_lowlevel_notify_inval_entry(struct fuse_chan *ch, fuse_ino_t parent, * parent/name if the dentry's inode number matches child (otherwise it * will invalidate the matching dentry). * + * To avoid a deadlock don't call this function from a filesystem operation and + * don't call it with a lock held that can also be held by a filesystem + * operation. + * * @param ch the channel through which to send the notification * @param parent inode number * @param child inode number -- 2.30.2