The patch titled libfs: make simple attributes interruptible has been added to the -mm tree. Its filename is libfs-make-simple-attributes-interruptible.patch Before you just go and hit "reply", please: a) Consider who else should be cc'ed b) Prefer to cc a suitable mailing list as well c) Ideally: find the original patch on the mailing list and do a reply-to-all to that, adding suitable additional cc's *** Remember to use Documentation/SubmitChecklist when testing your code *** See http://www.zip.com.au/~akpm/linux/patches/stuff/added-to-mm.txt to find out what to do about this The current -mm tree may be found at http://userweb.kernel.org/~akpm/mmotm/ ------------------------------------------------------ Subject: libfs: make simple attributes interruptible From: Christoph Hellwig <hch@xxxxxx> Use mutex_lock_interruptible in simple_attr_read/write. Signed-off-by: Christoph Hellwig <hch@xxxxxx> Cc: <stefano.brivio@xxxxxxxxx> Cc: Arnd Bergmann <arnd@xxxxxxxx> Cc: Greg KH <greg@xxxxxxxxx> Cc: Al Viro <viro@xxxxxxxxxxxxxxxxxx> Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx> --- fs/libfs.c | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff -puN fs/libfs.c~libfs-make-simple-attributes-interruptible fs/libfs.c --- a/fs/libfs.c~libfs-make-simple-attributes-interruptible +++ a/fs/libfs.c @@ -634,7 +634,10 @@ ssize_t simple_attr_read(struct file *fi if (!attr->get) return -EACCES; - mutex_lock(&attr->mutex); + ret = mutex_lock_interruptible(&attr->mutex); + if (ret) + return ret; + if (*ppos) { /* continued read */ size = strlen(attr->get_buf); } else { /* first read */ @@ -666,7 +669,10 @@ ssize_t simple_attr_write(struct file *f if (!attr->set) return -EACCES; - mutex_lock(&attr->mutex); + ret = mutex_lock_interruptible(&attr->mutex); + if (ret) + return ret; + ret = -EFAULT; size = min(sizeof(attr->set_buf) - 1, len); if (copy_from_user(attr->set_buf, buf, size)) _ Patches currently in -mm which might be from hch@xxxxxx are git-powerpc.patch git-mips.patch git-netdev-all.patch pcmcia-convert-some-internal-only-ioaddr_t-to-unsigned-int.patch pcmcia-replace-kio_addr_t-with-unsigned-int-everywhere.patch git-scsi-misc.patch git-unionfs.patch vfs-apply-coding-standards-to-fs-ioctlc.patch vfs-swap-do_ioctl-and-vfs_ioctl-names.patch vfs-swap-do_ioctl-and-vfs_ioctl-names-fix.patch vfs-factor-out-three-helpers-for-fibmap-fionbio-fioasync-file-ioctls.patch git-xfs.patch clean-up-vmtruncate.patch vfs-security-rework-inode_getsecurity-and-callers-to.patch vfs-reorder-vfs_getxattr-to-avoid-unnecessary-calls-to-the-lsm.patch kernel-add-mutex_lock_killable.patch vfs-use-mutex_lock_killable-in-vfs_readdir.patch reiserfs-eliminate-private-use-of-struct-file-in-xattr.patch rename-open_namei-to-open_pathname-fix.patch r-o-bind-mounts-stub-functions.patch r-o-bind-mounts-elevate-write-count-during-entire-ncp_ioctl.patch r-o-bind-mounts-elevate-write-count-during-entire-ncp_ioctl-fix.patch r-o-bind-mounts-elevate-write-count-for-do_utimes.patch r-o-bind-mounts-elevate-write-count-for-some-ioctls-vs-forbid-user-to-change-file-flags-on-quota-files.patch r-o-bind-mounts-elevate-write-count-opened-files-oops-fix.patch r-o-bind-mounts-track-number-of-mount-writers.patch r-o-bind-mounts-track-number-of-mount-writer-fix-buggy-loop.patch r-o-bind-mounts-track-number-of-mount-writer-fix-buggy-loop-checkpatch-fixes.patch r-o-bind-mounts-honor-r-w-changes-at-do_remount-time.patch iget-introduce-a-function-to-register-iget-failure.patch iget-use-iget_failed-in-afs.patch iget-use-iget_failed-in-gfs2.patch iget-stop-affs-from-using-iget-and-read_inode-try.patch iget-stop-autofs-from-using-iget-and-read_inode.patch iget-stop-befs-from-using-iget-and-read_inode-try.patch iget-stop-bfs-from-using-iget-and-read_inode-try.patch iget-stop-cifs-from-using-iget-and-read_inode-try.patch iget-stop-efs-from-using-iget-and-read_inode-try.patch iget-stop-ext2-from-using-iget-and-read_inode-try.patch iget-stop-ext3-from-using-iget-and-read_inode-try.patch iget-stop-ext4-from-using-iget-and-read_inode-try.patch iget-stop-fat-from-using-iget-and-read_inode-try.patch iget-stop-freevxfs-from-using-iget-and-read_inode.patch iget-stop-freevxfs-from-using-iget-and-read_inode-fix.patch iget-stop-freevxfs-from-using-iget-and-read_inode-checkpatch-fixes.patch iget-stop-fuse-from-using-iget-and-read_inode-try.patch iget-stop-hfsplus-from-using-iget-and-read_inode.patch iget-stop-isofs-from-using-read_inode.patch iget-stop-isofs-from-using-read_inode-fix-2.patch iget-stop-jffs2-from-using-iget-and-read_inode.patch iget-stop-jfs-from-using-iget-and-read_inode-try.patch iget-stop-the-minix-filesystem-from-using-iget-and.patch iget-stop-procfs-from-using-iget-and-read_inode.patch iget-stop-qnx4-from-using-iget-and-read_inode-try.patch iget-stop-romfs-from-using-iget-and-read_inode.patch iget-stop-the-sysv-filesystem-from-using-iget-and.patch iget-stop-the-sysv-filesystem-from-using-iget-and-checkpatch-fixes.patch iget-stop-ufs-from-using-iget-and-read_inode-try.patch iget-stop-openpromfs-from-using-iget-and.patch iget-stop-hostfs-from-using-iget-and-read_inode.patch iget-stop-hppfs-from-using-iget-and-read_inode.patch iget-remove-iget-and-the-read_inode-super-op-as.patch dont-touch-fs_struct-in-drivers.patch dont-touch-fs_struct-in-usermodehelper.patch remove-path_release_on_umount.patch move-struct-path-into-its-own-header.patch embed-a-struct-path-into-struct-nameidata-instead-of-nd-dentrymnt.patch introduce-path_put.patch use-path_put-in-a-few-places-instead-of-mntdput.patch introduce-path_get.patch use-struct-path-in-fs_struct.patch make-set_fs_rootpwd-take-a-struct-path.patch introduce-path_get-unionfs.patch embed-a-struct-path-into-struct-nameidata-instead-of-nd-dentrymnt-unionfs.patch introduce-path_put-unionfs.patch use-struct-path-in-struct-svc_expkey.patch d_path-make-seq_path-use-a-struct-path-argument.patch kill-pt_attached.patch kill-my_ptrace_child.patch ptrace_check_attach-remove-unneeded-signal-=-null-check.patch ext2-remove-unused-ext2_put_inode-prototype.patch libfs-allow-error-return-from-simple-attributes.patch libfs-make-simple-attributes-interruptible.patch libfs-rename-simple_attr_close-to-simple_attr_release.patch - To unsubscribe from this list: send the line "unsubscribe mm-commits" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html