diff options
| author | Brian Foster <bfoster@redhat.com> | 2013-05-08 08:54:11 -0400 | 
|---|---|---|
| committer | Anand Avati <avati@redhat.com> | 2013-06-13 14:37:21 -0700 | 
| commit | d1ccc4e400728d90f2ef7904661f53deb7199123 (patch) | |
| tree | 1c491d1932795d85941861fa683431ee22608668 /libglusterfs/src/xlator.h | |
| parent | 328ea4b16a276b0e65ca719f60b82ce851dda848 (diff) | |
gluster: add fallocate fop support
Implement support for the fallocate file operation. fallocate
allocates blocks for a particular inode such that future writes
to the associated region of the file are guaranteed not to fail
with ENOSPC.
This patch adds fallocate support to the following areas:
	- libglusterfs
	- mount/fuse
	- io-stats
	- performance/md-cache,open-behind
	- quota
	- cluster/afr,dht,stripe
	- rpc/xdr
	- protocol/client,server
	- io-threads
	- marker
	- storage/posix
	- libgfapi
BUG: 949242
Change-Id: Ice8e61351f9d6115c5df68768bc844abbf0ce8bd
Signed-off-by: Brian Foster <bfoster@redhat.com>
Reviewed-on: http://review.gluster.org/4969
Tested-by: Gluster Build System <jenkins@build.gluster.com>
Reviewed-by: Anand Avati <avati@redhat.com>
Diffstat (limited to 'libglusterfs/src/xlator.h')
| -rw-r--r-- | libglusterfs/src/xlator.h | 17 | 
1 files changed, 17 insertions, 0 deletions
diff --git a/libglusterfs/src/xlator.h b/libglusterfs/src/xlator.h index 43fd063884a..ace73f2ed03 100644 --- a/libglusterfs/src/xlator.h +++ b/libglusterfs/src/xlator.h @@ -417,6 +417,14 @@ typedef int32_t (*fop_fsetattr_cbk_t) (call_frame_t *frame,                                         struct iatt *preop_stbuf,                                         struct iatt *postop_stbuf, dict_t *xdata); +typedef int32_t (*fop_fallocate_cbk_t) (call_frame_t *frame, +                                        void *cookie, +                                        xlator_t *this, +                                        int32_t op_ret, +                                        int32_t op_errno, +                                        struct iatt *preop_stbuf, +                                        struct iatt *postop_stbuf, dict_t *xdata); +  typedef int32_t (*fop_lookup_t) (call_frame_t *frame,                                   xlator_t *this,                                   loc_t *loc, @@ -634,6 +642,13 @@ typedef int32_t (*fop_fsetattr_t) (call_frame_t *frame,                                     struct iatt *stbuf,                                     int32_t valid, dict_t *xdata); +typedef int32_t (*fop_fallocate_t) (call_frame_t *frame, +                                    xlator_t *this, +                                    fd_t *fd, +				    int32_t keep_size, +				    off_t offset, +				    size_t len, +                                    dict_t *xdata);  struct xlator_fops {          fop_lookup_t         lookup; @@ -678,6 +693,7 @@ struct xlator_fops {          fop_setattr_t        setattr;          fop_fsetattr_t       fsetattr;          fop_getspec_t        getspec; +	fop_fallocate_t	     fallocate;          /* these entries are used for a typechecking hack in STACK_WIND _only_ */          fop_lookup_cbk_t         lookup_cbk; @@ -722,6 +738,7 @@ struct xlator_fops {          fop_setattr_cbk_t        setattr_cbk;          fop_fsetattr_cbk_t       fsetattr_cbk;          fop_getspec_cbk_t        getspec_cbk; +	fop_fallocate_cbk_t	 fallocate_cbk;  };  typedef int32_t (*cbk_forget_t) (xlator_t *this,  | 
