summaryrefslogtreecommitdiffstats
path: root/fs/gfs2/ops_file.c
diff options
context:
space:
mode:
authorSteven Whitehouse <swhiteho@redhat.com>2006-03-31 16:48:41 -0500
committerSteven Whitehouse <swhiteho@redhat.com>2006-03-31 16:48:41 -0500
commit8628de0583504138551a05ad44ca388467f0f552 (patch)
tree15a0e85dca99d74e54765a71fe2f59c4228d68c1 /fs/gfs2/ops_file.c
parent86579dd06deecfa6ac88d5e84e4d63c397cd6f6d (diff)
downloadlinux-8628de0583504138551a05ad44ca388467f0f552.tar.gz
linux-8628de0583504138551a05ad44ca388467f0f552.tar.bz2
linux-8628de0583504138551a05ad44ca388467f0f552.zip
[GFS2] Update GFS2 for the recent pull from Linus
Some interfaces have changed. In particular one of the posix locking functions has changed prototype, along with the address space operation invalidatepage and the block getting callback to the direct IO function. In addition add the splice file operations. These will need to be updated to support AOP_TRUNCATED_PAGE before they will be of much use to us. Signed-off-by: Steven Whitehouse <swhiteho@redhat.com>
Diffstat (limited to 'fs/gfs2/ops_file.c')
-rw-r--r--fs/gfs2/ops_file.c19
1 files changed, 8 insertions, 11 deletions
diff --git a/fs/gfs2/ops_file.c b/fs/gfs2/ops_file.c
index db4484a3efcc..c44225fa758b 100644
--- a/fs/gfs2/ops_file.c
+++ b/fs/gfs2/ops_file.c
@@ -833,20 +833,15 @@ static int gfs2_lock(struct file *file, int cmd, struct file_lock *fl)
if (sdp->sd_args.ar_localflocks) {
if (IS_GETLK(cmd)) {
- struct file_lock *tmp;
- lock_kernel();
- tmp = posix_test_lock(file, fl);
+ struct file_lock tmp;
+ int ret;
+ ret = posix_test_lock(file, fl, &tmp);
fl->fl_type = F_UNLCK;
- if (tmp)
- memcpy(fl, tmp, sizeof(struct file_lock));
- unlock_kernel();
+ if (ret)
+ memcpy(fl, &tmp, sizeof(struct file_lock));
return 0;
} else {
- int error;
- lock_kernel();
- error = posix_lock_file_wait(file, fl);
- unlock_kernel();
- return error;
+ return posix_lock_file_wait(file, fl);
}
}
@@ -983,6 +978,8 @@ struct file_operations gfs2_file_fops = {
.lock = gfs2_lock,
.sendfile = gfs2_sendfile,
.flock = gfs2_flock,
+ .splice_read = generic_file_splice_read,
+ .splice_write = generic_file_splice_write,
};
struct file_operations gfs2_dir_fops = {