diff options
Diffstat (limited to 'ipc/shm.c')
-rw-r--r-- | ipc/shm.c | 12 |
1 files changed, 12 insertions, 0 deletions
@@ -393,6 +393,16 @@ static int shm_fsync(struct file *file, loff_t start, loff_t end, int datasync) | |||
393 | return sfd->file->f_op->fsync(sfd->file, start, end, datasync); | 393 | return sfd->file->f_op->fsync(sfd->file, start, end, datasync); |
394 | } | 394 | } |
395 | 395 | ||
396 | static long shm_fallocate(struct file *file, int mode, loff_t offset, | ||
397 | loff_t len) | ||
398 | { | ||
399 | struct shm_file_data *sfd = shm_file_data(file); | ||
400 | |||
401 | if (!sfd->file->f_op->fallocate) | ||
402 | return -EOPNOTSUPP; | ||
403 | return sfd->file->f_op->fallocate(file, mode, offset, len); | ||
404 | } | ||
405 | |||
396 | static unsigned long shm_get_unmapped_area(struct file *file, | 406 | static unsigned long shm_get_unmapped_area(struct file *file, |
397 | unsigned long addr, unsigned long len, unsigned long pgoff, | 407 | unsigned long addr, unsigned long len, unsigned long pgoff, |
398 | unsigned long flags) | 408 | unsigned long flags) |
@@ -410,6 +420,7 @@ static const struct file_operations shm_file_operations = { | |||
410 | .get_unmapped_area = shm_get_unmapped_area, | 420 | .get_unmapped_area = shm_get_unmapped_area, |
411 | #endif | 421 | #endif |
412 | .llseek = noop_llseek, | 422 | .llseek = noop_llseek, |
423 | .fallocate = shm_fallocate, | ||
413 | }; | 424 | }; |
414 | 425 | ||
415 | static const struct file_operations shm_file_operations_huge = { | 426 | static const struct file_operations shm_file_operations_huge = { |
@@ -418,6 +429,7 @@ static const struct file_operations shm_file_operations_huge = { | |||
418 | .release = shm_release, | 429 | .release = shm_release, |
419 | .get_unmapped_area = shm_get_unmapped_area, | 430 | .get_unmapped_area = shm_get_unmapped_area, |
420 | .llseek = noop_llseek, | 431 | .llseek = noop_llseek, |
432 | .fallocate = shm_fallocate, | ||
421 | }; | 433 | }; |
422 | 434 | ||
423 | int is_file_shm_hugepages(struct file *file) | 435 | int is_file_shm_hugepages(struct file *file) |