diff options
author | 2012-07-30 09:03:10 +0200 | |
---|---|---|
committer | 2012-07-30 09:03:10 +0200 | |
commit | 72ea1f74fcdf874cca6d2c0962379523bbd99e2c (patch) | |
tree | 4c67be6c73356086ff44ef1b8b1c9479702689ca /ipc | |
parent | Merge branch 'upstream' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/floppy into for-3.6/drivers (diff) | |
parent | drbd: announce FLUSH/FUA capability to upper layers (diff) | |
download | linux-dev-72ea1f74fcdf874cca6d2c0962379523bbd99e2c.tar.xz linux-dev-72ea1f74fcdf874cca6d2c0962379523bbd99e2c.zip |
Merge branch 'for-jens' of git://git.drbd.org/linux-drbd into for-3.6/drivers
Diffstat (limited to 'ipc')
-rw-r--r-- | ipc/shm.c | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/ipc/shm.c b/ipc/shm.c index 5e2cbfdab6fc..41c1285d697a 100644 --- a/ipc/shm.c +++ b/ipc/shm.c @@ -393,6 +393,16 @@ static int shm_fsync(struct file *file, loff_t start, loff_t end, int datasync) return sfd->file->f_op->fsync(sfd->file, start, end, datasync); } +static long shm_fallocate(struct file *file, int mode, loff_t offset, + loff_t len) +{ + struct shm_file_data *sfd = shm_file_data(file); + + if (!sfd->file->f_op->fallocate) + return -EOPNOTSUPP; + return sfd->file->f_op->fallocate(file, mode, offset, len); +} + static unsigned long shm_get_unmapped_area(struct file *file, unsigned long addr, unsigned long len, unsigned long pgoff, unsigned long flags) @@ -410,6 +420,7 @@ static const struct file_operations shm_file_operations = { .get_unmapped_area = shm_get_unmapped_area, #endif .llseek = noop_llseek, + .fallocate = shm_fallocate, }; static const struct file_operations shm_file_operations_huge = { @@ -418,6 +429,7 @@ static const struct file_operations shm_file_operations_huge = { .release = shm_release, .get_unmapped_area = shm_get_unmapped_area, .llseek = noop_llseek, + .fallocate = shm_fallocate, }; int is_file_shm_hugepages(struct file *file) |