diff options
Diffstat (limited to 'xlators/performance/quick-read/src/quick-read.c')
| -rw-r--r-- | xlators/performance/quick-read/src/quick-read.c | 40 | 
1 files changed, 39 insertions, 1 deletions
diff --git a/xlators/performance/quick-read/src/quick-read.c b/xlators/performance/quick-read/src/quick-read.c index 5afc7ec74ad..e4f0885de2c 100644 --- a/xlators/performance/quick-read/src/quick-read.c +++ b/xlators/performance/quick-read/src/quick-read.c @@ -668,6 +668,41 @@ qr_ftruncate (call_frame_t *frame, xlator_t *this, fd_t *fd, off_t offset,  	return 0;  } +static int +qr_fallocate (call_frame_t *frame, xlator_t *this, fd_t *fd, int keep_size, +              off_t offset, size_t len, dict_t *xdata) +{ +        qr_inode_prune (this, fd->inode); + +        STACK_WIND (frame, default_fallocate_cbk, +                    FIRST_CHILD (this), FIRST_CHILD (this)->fops->fallocate, +                    fd, keep_size, offset, len, xdata); +        return 0; +} + +static int +qr_discard (call_frame_t *frame, xlator_t *this, fd_t *fd, off_t offset, +              size_t len, dict_t *xdata) +{ +        qr_inode_prune (this, fd->inode); + +        STACK_WIND (frame, default_discard_cbk, +                    FIRST_CHILD (this), FIRST_CHILD (this)->fops->discard, +                    fd, offset, len, xdata); +        return 0; +} + +static int +qr_zerofill (call_frame_t *frame, xlator_t *this, fd_t *fd, off_t offset, +              off_t len, dict_t *xdata) +{ +        qr_inode_prune (this, fd->inode); + +        STACK_WIND (frame, default_zerofill_cbk, +                    FIRST_CHILD (this), FIRST_CHILD (this)->fops->zerofill, +                    fd, offset, len, xdata); +        return 0; +}  int  qr_open (call_frame_t *frame, xlator_t *this, loc_t *loc, int flags, @@ -1128,7 +1163,10 @@ struct xlator_fops fops = {          .readv       = qr_readv,  	.writev      = qr_writev,  	.truncate    = qr_truncate, -	.ftruncate   = qr_ftruncate +        .ftruncate   = qr_ftruncate, +        .fallocate   = qr_fallocate, +        .discard     = qr_discard, +        .zerofill    = qr_zerofill  };  struct xlator_cbks cbks = {  | 
