diff options
author | Miklos Szeredi <miklos@szeredi.hu> | 2006-06-23 05:05:12 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@g5.osdl.org> | 2006-06-23 10:43:02 -0400 |
commit | 75e1fcc0b18df0a65ab113198e9dc0e98999a08c (patch) | |
tree | 3ac0d0d3120cbca4ee9734494e2c9a4e0775ac4f /drivers | |
parent | ff7b86b82083f24b8637dff1528c7101c18c7f39 (diff) |
[PATCH] vfs: add lock owner argument to flush operation
Pass the POSIX lock owner ID to the flush operation.
This is useful for filesystems which don't want to store any locking state
in inode->i_flock but want to handle locking/unlocking POSIX locks
internally. FUSE is one such filesystem but I think it possible that some
network filesystems would need this also.
Also add a flag to indicate that a POSIX locking request was generated by
close(), so filesystems using the above feature won't send an extra locking
request in this case.
Signed-off-by: Miklos Szeredi <miklos@szeredi.hu>
Cc: Trond Myklebust <trond.myklebust@fys.uio.no>
Cc: Al Viro <viro@zeniv.linux.org.uk>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Diffstat (limited to 'drivers')
-rw-r--r-- | drivers/input/evdev.c | 2 | ||||
-rw-r--r-- | drivers/scsi/osst.c | 2 | ||||
-rw-r--r-- | drivers/scsi/st.c | 2 |
3 files changed, 3 insertions, 3 deletions
diff --git a/drivers/input/evdev.c b/drivers/input/evdev.c index ba325f16d077..5f561fce32d8 100644 --- a/drivers/input/evdev.c +++ b/drivers/input/evdev.c | |||
@@ -82,7 +82,7 @@ static int evdev_fasync(int fd, struct file *file, int on) | |||
82 | return retval < 0 ? retval : 0; | 82 | return retval < 0 ? retval : 0; |
83 | } | 83 | } |
84 | 84 | ||
85 | static int evdev_flush(struct file * file) | 85 | static int evdev_flush(struct file * file, fl_owner_t id) |
86 | { | 86 | { |
87 | struct evdev_list *list = file->private_data; | 87 | struct evdev_list *list = file->private_data; |
88 | if (!list->evdev->exist) return -ENODEV; | 88 | if (!list->evdev->exist) return -ENODEV; |
diff --git a/drivers/scsi/osst.c b/drivers/scsi/osst.c index ce0ba3a174f9..4a2fed350d4e 100644 --- a/drivers/scsi/osst.c +++ b/drivers/scsi/osst.c | |||
@@ -4724,7 +4724,7 @@ err_out: | |||
4724 | 4724 | ||
4725 | 4725 | ||
4726 | /* Flush the tape buffer before close */ | 4726 | /* Flush the tape buffer before close */ |
4727 | static int os_scsi_tape_flush(struct file * filp) | 4727 | static int os_scsi_tape_flush(struct file * filp, fl_owner_t id) |
4728 | { | 4728 | { |
4729 | int result = 0, result2; | 4729 | int result = 0, result2; |
4730 | struct osst_tape * STp = filp->private_data; | 4730 | struct osst_tape * STp = filp->private_data; |
diff --git a/drivers/scsi/st.c b/drivers/scsi/st.c index ad87d73f88ee..1272dd249af3 100644 --- a/drivers/scsi/st.c +++ b/drivers/scsi/st.c | |||
@@ -1193,7 +1193,7 @@ static int st_open(struct inode *inode, struct file *filp) | |||
1193 | 1193 | ||
1194 | 1194 | ||
1195 | /* Flush the tape buffer before close */ | 1195 | /* Flush the tape buffer before close */ |
1196 | static int st_flush(struct file *filp) | 1196 | static int st_flush(struct file *filp, fl_owner_t id) |
1197 | { | 1197 | { |
1198 | int result = 0, result2; | 1198 | int result = 0, result2; |
1199 | unsigned char cmd[MAX_COMMAND_SIZE]; | 1199 | unsigned char cmd[MAX_COMMAND_SIZE]; |