diff options
| -rw-r--r-- | xlators/features/read-only/src/read-only-common.c | 15 | ||||
| -rw-r--r-- | xlators/features/read-only/src/read-only-common.h | 4 | ||||
| -rw-r--r-- | xlators/features/read-only/src/read-only.c | 1 | 
3 files changed, 20 insertions, 0 deletions
diff --git a/xlators/features/read-only/src/read-only-common.c b/xlators/features/read-only/src/read-only-common.c index b4e4289356b..f4851a4be40 100644 --- a/xlators/features/read-only/src/read-only-common.c +++ b/xlators/features/read-only/src/read-only-common.c @@ -196,6 +196,21 @@ ro_ftruncate (call_frame_t *frame, xlator_t *this, fd_t *fd, off_t offset, dict_  	return 0;  } +int32_t +ro_fallocate (call_frame_t *frame, xlator_t *this, fd_t *fd, int32_t mode, +              off_t offset, size_t len, dict_t *xdata) +{ +        if (is_readonly_or_worm_enabled (frame, this)) +                STACK_UNWIND_STRICT (fallocate, frame, -1, EROFS, NULL, NULL, +                                     xdata); +        else +                STACK_WIND_TAIL (frame, FIRST_CHILD (this), +                                 FIRST_CHILD(this)->fops->fallocate, fd, mode, +                                 offset, len, xdata); +        return 0; +} + +  int  ro_mknod (call_frame_t *frame, xlator_t *this, loc_t *loc, mode_t mode,            dev_t rdev, mode_t umask, dict_t *xdata) diff --git a/xlators/features/read-only/src/read-only-common.h b/xlators/features/read-only/src/read-only-common.h index 6d8c38faeb8..ec629bd5660 100644 --- a/xlators/features/read-only/src/read-only-common.h +++ b/xlators/features/read-only/src/read-only-common.h @@ -111,3 +111,7 @@ ro_setxattr (call_frame_t *frame, xlator_t *this, loc_t *loc, dict_t *dict,  int32_t  ro_removexattr (call_frame_t *frame, xlator_t *this, loc_t *loc,                  const char *name, dict_t *xdata); + +int32_t +ro_fallocate (call_frame_t *frame, xlator_t *this, fd_t *fd, int32_t mode, +              off_t offset, size_t len, dict_t *xdata); diff --git a/xlators/features/read-only/src/read-only.c b/xlators/features/read-only/src/read-only.c index 8733a40abce..75d6d104d45 100644 --- a/xlators/features/read-only/src/read-only.c +++ b/xlators/features/read-only/src/read-only.c @@ -115,6 +115,7 @@ struct xlator_fops fops = {          .entrylk     = ro_entrylk,          .fentrylk    = ro_fentrylk,          .lk          = ro_lk, +        .fallocate   = ro_fallocate,  };  struct xlator_cbks cbks = {  | 
