From e089b718969bc0aaecf180c675b9c2b6d1b8ba9c Mon Sep 17 00:00:00 2001 From: Miklos Szeredi Date: Tue, 17 Jan 2006 12:42:39 +0000 Subject: [PATCH] fix --- ChangeLog | 2 -- kernel/file.c | 6 ++++++ kernel/fuse_i.h | 3 +++ 3 files changed, 9 insertions(+), 2 deletions(-) diff --git a/ChangeLog b/ChangeLog index efd5a3e..1298d09 100644 --- a/ChangeLog +++ b/ChangeLog @@ -10,8 +10,6 @@ * Connection may be aborted through either the sysfs interface or with 'umount -f mountpoint' - * - 2006-01-14 Miklos Szeredi * Released 2.5.0 diff --git a/kernel/file.c b/kernel/file.c index 42ab037..e8dae79 100644 --- a/kernel/file.c +++ b/kernel/file.c @@ -692,9 +692,15 @@ static ssize_t fuse_direct_write(struct file *file, const char __user *buf, struct inode *inode = file->f_dentry->d_inode; ssize_t res; /* Don't allow parallel writes to the same file */ +#ifdef KERNEL_2_6_16_PLUS + mutex_lock(&inode->i_mutex); + res = fuse_direct_io(file, buf, count, ppos, 1); + mutex_unlock(&inode->i_mutex); +#else down(&inode->i_sem); res = fuse_direct_io(file, buf, count, ppos, 1); up(&inode->i_sem); +#endif return res; } diff --git a/kernel/fuse_i.h b/kernel/fuse_i.h index b68b9e3..4979fac 100644 --- a/kernel/fuse_i.h +++ b/kernel/fuse_i.h @@ -40,6 +40,9 @@ # if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,13) # define KERNEL_2_6_13_PLUS # endif +# if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,16) +# define KERNEL_2_6_16_PLUS +# endif #endif #include "config.h" -- 2.30.2