Gitweb: http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=9261303ab7589cda6a3b95f9f80c9063538dc335 Commit: 9261303ab7589cda6a3b95f9f80c9063538dc335 Parent: 8b88b0998e35d239e74446cc30f354bdab86df89 Author: Christoph Hellwig <[EMAIL PROTECTED]> AuthorDate: Fri Feb 8 04:20:27 2008 -0800 Committer: Linus Torvalds <[EMAIL PROTECTED]> CommitDate: Fri Feb 8 09:22:34 2008 -0800
libfs: make simple attributes interruptible Use mutex_lock_interruptible in simple_attr_read/write. Signed-off-by: Christoph Hellwig <[EMAIL PROTECTED]> Cc: <[EMAIL PROTECTED]> Cc: Arnd Bergmann <[EMAIL PROTECTED]> Cc: Greg KH <[EMAIL PROTECTED]> Cc: Al Viro <[EMAIL PROTECTED]> Signed-off-by: Andrew Morton <[EMAIL PROTECTED]> Signed-off-by: Linus Torvalds <[EMAIL PROTECTED]> --- fs/libfs.c | 10 ++++++++-- 1 files changed, 8 insertions(+), 2 deletions(-) diff --git a/fs/libfs.c b/fs/libfs.c index 2319415..d6de56a 100644 --- a/fs/libfs.c +++ b/fs/libfs.c @@ -634,7 +634,10 @@ ssize_t simple_attr_read(struct file *file, char __user *buf, 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 *file, const char __user *buf, 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)) - To unsubscribe from this list: send the line "unsubscribe git-commits-head" in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html