fix
diff --git a/ChangeLog b/ChangeLog
index f5a3324..a80aba5 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -5,6 +5,8 @@
* Fix compile warning on 2.6.13 and later
+ * Fix compilation on 2.4.*
+
2005-08-25 Miklos Szeredi <miklos@szeredi.hu>
* lib: add userspace side of ftruncate() method for experimentation
diff --git a/kernel/dir.c b/kernel/dir.c
index f1baf78..623902c 100644
--- a/kernel/dir.c
+++ b/kernel/dir.c
@@ -476,6 +476,7 @@
return fuse_do_getattr(inode);
}
+#ifdef KERNEL_2_6
static int fuse_access(struct inode *inode, int mask)
{
struct fuse_conn *fc = get_fuse_conn(inode);
@@ -507,6 +508,7 @@
}
return err;
}
+#endif
static int fuse_permission(struct inode *inode, int mask, struct nameidata *nd)
{
@@ -552,8 +554,10 @@
return -EACCES;
err = 0;
+#ifdef KERNEL_2_6
if (nd && (nd->flags & LOOKUP_ACCESS))
err = fuse_access(inode, mask);
+#endif
}
return err;
}
diff --git a/kernel/file.c b/kernel/file.c
index 013093d..cce2777 100644
--- a/kernel/file.c
+++ b/kernel/file.c
@@ -685,17 +685,16 @@
return err;
}
-static int fuse_setlk(struct file *file, struct file_lock *fl)
+static int fuse_setlk(struct file *file, struct file_lock *fl, int sleep)
{
struct inode *inode = file->f_dentry->d_inode;
struct fuse_conn *fc = get_fuse_conn(inode);
struct fuse_req *req;
struct fuse_lk_in_out arg;
- int sleep = fl->fl_flags & FL_SLEEP;
int err;
if (fc->no_lk)
- return posix_lock_file_wait(file, fl);
+ return -ENOSYS;
if (!sleep) {
req = fuse_get_request(fc);
@@ -722,10 +721,8 @@
request_send(fc, req);
err = req->out.h.error;
fuse_put_request(fc, req);
- if (err == -ENOSYS) {
+ if (err == -ENOSYS)
fc->no_lk = 1;
- err = posix_lock_file_wait(file, fl);
- }
return err;
}
@@ -734,8 +731,19 @@
{
if (cmd == F_GETLK)
return fuse_getlk(file, fl);
- else
- return fuse_setlk(file, fl);
+ else {
+#ifdef KERNEL_2_6
+ int err = fuse_setlk(file, fl, fl->fl_flags & FL_SLEEP);
+ if (err == -ENOSYS)
+ err = posix_lock_file_wait(file, fl);
+#else
+ int err = fuse_setlk(file, fl,
+ cmd == F_SETLKW || cmd == F_SETLKW64);
+ if (err == -ENOSYS)
+ err = 0;
+#endif
+ return err;
+ }
}
#ifndef KERNEL_2_6