diff options
author | Miklos Szeredi <mszeredi@suse.cz> | 2014-07-15 11:57:37 +0200 |
---|---|---|
committer | Dan Pasanen <dan.pasanen@gmail.com> | 2015-10-28 21:00:17 -0500 |
commit | 13a440a3b11b0cbb9e2d48dda2366bbecb06fb67 (patch) | |
tree | 0b4a28545299358b4c7a7b4241ec96b18244d3a5 | |
parent | 1a82d78d098af16f4bc8694e09957336bc589341 (diff) | |
download | android_external_fuse-13a440a3b11b0cbb9e2d48dda2366bbecb06fb67.tar.gz android_external_fuse-13a440a3b11b0cbb9e2d48dda2366bbecb06fb67.tar.bz2 android_external_fuse-13a440a3b11b0cbb9e2d48dda2366bbecb06fb67.zip |
libfuse: document deadlock avoidance for fuse_notify_inval_entry()
and fuse_notify_delete()
Reported by Han-Wen Nienhuys
Change-Id: Iecdc980b9ae69675cd73f93103a5f7538bb780d0
-rw-r--r-- | ChangeLog | 3 | ||||
-rw-r--r-- | include/fuse_lowlevel.h | 8 |
2 files changed, 11 insertions, 0 deletions
@@ -1,5 +1,8 @@ 2014-07-15 Miklos Szeredi <miklos@szeredi.hu> + * libfuse: document deadlock avoidance for + fuse_notify_inval_entry() and fuse_notify_delete() + * fusermount, libfuse: send value as unsigned in "user_id=" and "group_id=" options. Uids/gids larger than 2147483647 would result in EINVAL when mounting the filesystem. This also needs a diff --git a/include/fuse_lowlevel.h b/include/fuse_lowlevel.h index 3ba3b4c..6971f73 100644 --- a/include/fuse_lowlevel.h +++ b/include/fuse_lowlevel.h @@ -1335,6 +1335,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 @@ -1349,6 +1353,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 |