iatt: changes across the codebase
- libglusterfs -- call-stub -- inode -- protocol - libglusterfsclient - cluster/replicate - cluster/{dht,nufa,switch} - cluster/unify - cluster/HA - cluster/map - cluster/stripe - debug/error-gen - debug/trace - debug/io-stats - encryption/rot-13 - features/filter - features/locks - features/path-converter - features/quota - features/trash - mount/fuse - performance/io-threads - performance/io-cache - performance/quick-read - performance/read-ahead - performance/stat-prefetch - performance/symlink-cache - performance/write-behind - protocol/client - protocol/server - storage-posix Signed-off-by: Anand V. Avati <avati@blackhole.gluster.com> Signed-off-by: Anand V. Avati <avati@dev.gluster.com> BUG: 361 (GlusterFS 3.0 should work on Mac OS/X) URL: http://bugs.gluster.com/cgi-bin/bugzilla3/show_bug.cgi?id=361
This commit is contained in:
parent
cc7515fc3d
commit
283ec9608e
@ -81,9 +81,9 @@ fop_lookup_cbk_stub (call_frame_t *frame,
|
||||
int32_t op_ret,
|
||||
int32_t op_errno,
|
||||
inode_t *inode,
|
||||
struct stat *buf,
|
||||
struct iatt *buf,
|
||||
dict_t *dict,
|
||||
struct stat *postparent)
|
||||
struct iatt *postparent)
|
||||
{
|
||||
call_stub_t *stub = NULL;
|
||||
|
||||
@ -134,7 +134,7 @@ fop_stat_cbk_stub (call_frame_t *frame,
|
||||
fop_stat_cbk_t fn,
|
||||
int32_t op_ret,
|
||||
int32_t op_errno,
|
||||
struct stat *buf)
|
||||
struct iatt *buf)
|
||||
{
|
||||
call_stub_t *stub = NULL;
|
||||
|
||||
@ -179,7 +179,7 @@ fop_fstat_cbk_stub (call_frame_t *frame,
|
||||
fop_fstat_cbk_t fn,
|
||||
int32_t op_ret,
|
||||
int32_t op_errno,
|
||||
struct stat *buf)
|
||||
struct iatt *buf)
|
||||
{
|
||||
call_stub_t *stub = NULL;
|
||||
|
||||
@ -227,8 +227,8 @@ fop_truncate_cbk_stub (call_frame_t *frame,
|
||||
fop_truncate_cbk_t fn,
|
||||
int32_t op_ret,
|
||||
int32_t op_errno,
|
||||
struct stat *prebuf,
|
||||
struct stat *postbuf)
|
||||
struct iatt *prebuf,
|
||||
struct iatt *postbuf)
|
||||
{
|
||||
call_stub_t *stub = NULL;
|
||||
|
||||
@ -277,8 +277,8 @@ fop_ftruncate_cbk_stub (call_frame_t *frame,
|
||||
fop_ftruncate_cbk_t fn,
|
||||
int32_t op_ret,
|
||||
int32_t op_errno,
|
||||
struct stat *prebuf,
|
||||
struct stat *postbuf)
|
||||
struct iatt *prebuf,
|
||||
struct iatt *postbuf)
|
||||
{
|
||||
call_stub_t *stub = NULL;
|
||||
|
||||
@ -370,7 +370,7 @@ fop_readlink_cbk_stub (call_frame_t *frame,
|
||||
int32_t op_ret,
|
||||
int32_t op_errno,
|
||||
const char *path,
|
||||
struct stat *sbuf)
|
||||
struct iatt *sbuf)
|
||||
{
|
||||
call_stub_t *stub = NULL;
|
||||
|
||||
@ -421,9 +421,9 @@ fop_mknod_cbk_stub (call_frame_t *frame,
|
||||
int32_t op_ret,
|
||||
int32_t op_errno,
|
||||
inode_t *inode,
|
||||
struct stat *buf,
|
||||
struct stat *preparent,
|
||||
struct stat *postparent)
|
||||
struct iatt *buf,
|
||||
struct iatt *preparent,
|
||||
struct iatt *postparent)
|
||||
{
|
||||
call_stub_t *stub = NULL;
|
||||
|
||||
@ -476,9 +476,9 @@ fop_mkdir_cbk_stub (call_frame_t *frame,
|
||||
int32_t op_ret,
|
||||
int32_t op_errno,
|
||||
inode_t *inode,
|
||||
struct stat *buf,
|
||||
struct stat *preparent,
|
||||
struct stat *postparent)
|
||||
struct iatt *buf,
|
||||
struct iatt *preparent,
|
||||
struct iatt *postparent)
|
||||
{
|
||||
call_stub_t *stub = NULL;
|
||||
|
||||
@ -528,8 +528,8 @@ fop_unlink_cbk_stub (call_frame_t *frame,
|
||||
fop_unlink_cbk_t fn,
|
||||
int32_t op_ret,
|
||||
int32_t op_errno,
|
||||
struct stat *preparent,
|
||||
struct stat *postparent)
|
||||
struct iatt *preparent,
|
||||
struct iatt *postparent)
|
||||
{
|
||||
call_stub_t *stub = NULL;
|
||||
|
||||
@ -576,8 +576,8 @@ fop_rmdir_cbk_stub (call_frame_t *frame,
|
||||
fop_rmdir_cbk_t fn,
|
||||
int32_t op_ret,
|
||||
int32_t op_errno,
|
||||
struct stat *preparent,
|
||||
struct stat *postparent)
|
||||
struct iatt *preparent,
|
||||
struct iatt *postparent)
|
||||
{
|
||||
call_stub_t *stub = NULL;
|
||||
|
||||
@ -627,9 +627,9 @@ fop_symlink_cbk_stub (call_frame_t *frame,
|
||||
int32_t op_ret,
|
||||
int32_t op_errno,
|
||||
inode_t *inode,
|
||||
struct stat *buf,
|
||||
struct stat *preparent,
|
||||
struct stat *postparent)
|
||||
struct iatt *buf,
|
||||
struct iatt *preparent,
|
||||
struct iatt *postparent)
|
||||
{
|
||||
call_stub_t *stub = NULL;
|
||||
|
||||
@ -682,11 +682,11 @@ fop_rename_cbk_stub (call_frame_t *frame,
|
||||
fop_rename_cbk_t fn,
|
||||
int32_t op_ret,
|
||||
int32_t op_errno,
|
||||
struct stat *buf,
|
||||
struct stat *preoldparent,
|
||||
struct stat *postoldparent,
|
||||
struct stat *prenewparent,
|
||||
struct stat *postnewparent)
|
||||
struct iatt *buf,
|
||||
struct iatt *preoldparent,
|
||||
struct iatt *postoldparent,
|
||||
struct iatt *prenewparent,
|
||||
struct iatt *postnewparent)
|
||||
{
|
||||
call_stub_t *stub = NULL;
|
||||
|
||||
@ -743,9 +743,9 @@ fop_link_cbk_stub (call_frame_t *frame,
|
||||
int32_t op_ret,
|
||||
int32_t op_errno,
|
||||
inode_t *inode,
|
||||
struct stat *buf,
|
||||
struct stat *preparent,
|
||||
struct stat *postparent)
|
||||
struct iatt *buf,
|
||||
struct iatt *preparent,
|
||||
struct iatt *postparent)
|
||||
{
|
||||
call_stub_t *stub = NULL;
|
||||
|
||||
@ -803,9 +803,9 @@ fop_create_cbk_stub (call_frame_t *frame,
|
||||
int32_t op_errno,
|
||||
fd_t *fd,
|
||||
inode_t *inode,
|
||||
struct stat *buf,
|
||||
struct stat *preparent,
|
||||
struct stat *postparent)
|
||||
struct iatt *buf,
|
||||
struct iatt *preparent,
|
||||
struct iatt *postparent)
|
||||
{
|
||||
call_stub_t *stub = NULL;
|
||||
|
||||
@ -914,7 +914,7 @@ fop_readv_cbk_stub (call_frame_t *frame,
|
||||
int32_t op_errno,
|
||||
struct iovec *vector,
|
||||
int32_t count,
|
||||
struct stat *stbuf,
|
||||
struct iatt *stbuf,
|
||||
struct iobref *iobref)
|
||||
|
||||
{
|
||||
@ -973,8 +973,8 @@ fop_writev_cbk_stub (call_frame_t *frame,
|
||||
fop_writev_cbk_t fn,
|
||||
int32_t op_ret,
|
||||
int32_t op_errno,
|
||||
struct stat *prebuf,
|
||||
struct stat *postbuf)
|
||||
struct iatt *prebuf,
|
||||
struct iatt *postbuf)
|
||||
|
||||
{
|
||||
call_stub_t *stub = NULL;
|
||||
@ -1068,8 +1068,8 @@ fop_fsync_cbk_stub (call_frame_t *frame,
|
||||
fop_fsync_cbk_t fn,
|
||||
int32_t op_ret,
|
||||
int32_t op_errno,
|
||||
struct stat *prebuf,
|
||||
struct stat *postbuf)
|
||||
struct iatt *prebuf,
|
||||
struct iatt *postbuf)
|
||||
{
|
||||
call_stub_t *stub = NULL;
|
||||
|
||||
@ -2229,8 +2229,8 @@ fop_setattr_cbk_stub (call_frame_t *frame,
|
||||
fop_setattr_cbk_t fn,
|
||||
int32_t op_ret,
|
||||
int32_t op_errno,
|
||||
struct stat *statpre,
|
||||
struct stat *statpost)
|
||||
struct iatt *statpre,
|
||||
struct iatt *statpost)
|
||||
{
|
||||
call_stub_t *stub = NULL;
|
||||
|
||||
@ -2260,8 +2260,8 @@ fop_fsetattr_cbk_stub (call_frame_t *frame,
|
||||
fop_setattr_cbk_t fn,
|
||||
int32_t op_ret,
|
||||
int32_t op_errno,
|
||||
struct stat *statpre,
|
||||
struct stat *statpost)
|
||||
struct iatt *statpre,
|
||||
struct iatt *statpost)
|
||||
{
|
||||
call_stub_t *stub = NULL;
|
||||
|
||||
@ -2289,7 +2289,7 @@ call_stub_t *
|
||||
fop_setattr_stub (call_frame_t *frame,
|
||||
fop_setattr_t fn,
|
||||
loc_t *loc,
|
||||
struct stat *stbuf,
|
||||
struct iatt *stbuf,
|
||||
int32_t valid)
|
||||
{
|
||||
call_stub_t *stub = NULL;
|
||||
@ -2321,7 +2321,7 @@ call_stub_t *
|
||||
fop_fsetattr_stub (call_frame_t *frame,
|
||||
fop_fsetattr_t fn,
|
||||
fd_t *fd,
|
||||
struct stat *stbuf,
|
||||
struct iatt *stbuf,
|
||||
int32_t valid)
|
||||
{
|
||||
call_stub_t *stub = NULL;
|
||||
|
@ -46,9 +46,9 @@ typedef struct {
|
||||
fop_lookup_cbk_t fn;
|
||||
int32_t op_ret, op_errno;
|
||||
inode_t *inode;
|
||||
struct stat buf;
|
||||
struct iatt buf;
|
||||
dict_t *dict;
|
||||
struct stat postparent;
|
||||
struct iatt postparent;
|
||||
} lookup_cbk;
|
||||
|
||||
/* stat */
|
||||
@ -59,7 +59,7 @@ typedef struct {
|
||||
struct {
|
||||
fop_stat_cbk_t fn;
|
||||
int32_t op_ret, op_errno;
|
||||
struct stat buf;
|
||||
struct iatt buf;
|
||||
} stat_cbk;
|
||||
|
||||
/* fstat */
|
||||
@ -70,7 +70,7 @@ typedef struct {
|
||||
struct {
|
||||
fop_fstat_cbk_t fn;
|
||||
int32_t op_ret, op_errno;
|
||||
struct stat buf;
|
||||
struct iatt buf;
|
||||
} fstat_cbk;
|
||||
|
||||
/* truncate */
|
||||
@ -82,8 +82,8 @@ typedef struct {
|
||||
struct {
|
||||
fop_truncate_cbk_t fn;
|
||||
int32_t op_ret, op_errno;
|
||||
struct stat prebuf;
|
||||
struct stat postbuf;
|
||||
struct iatt prebuf;
|
||||
struct iatt postbuf;
|
||||
} truncate_cbk;
|
||||
|
||||
/* ftruncate */
|
||||
@ -95,8 +95,8 @@ typedef struct {
|
||||
struct {
|
||||
fop_ftruncate_cbk_t fn;
|
||||
int32_t op_ret, op_errno;
|
||||
struct stat prebuf;
|
||||
struct stat postbuf;
|
||||
struct iatt prebuf;
|
||||
struct iatt postbuf;
|
||||
} ftruncate_cbk;
|
||||
|
||||
/* access */
|
||||
@ -120,7 +120,7 @@ typedef struct {
|
||||
fop_readlink_cbk_t fn;
|
||||
int32_t op_ret, op_errno;
|
||||
const char *buf;
|
||||
struct stat sbuf;
|
||||
struct iatt sbuf;
|
||||
} readlink_cbk;
|
||||
|
||||
/* mknod */
|
||||
@ -134,9 +134,9 @@ typedef struct {
|
||||
fop_mknod_cbk_t fn;
|
||||
int32_t op_ret, op_errno;
|
||||
inode_t *inode;
|
||||
struct stat buf;
|
||||
struct stat preparent;
|
||||
struct stat postparent;
|
||||
struct iatt buf;
|
||||
struct iatt preparent;
|
||||
struct iatt postparent;
|
||||
} mknod_cbk;
|
||||
|
||||
/* mkdir */
|
||||
@ -149,9 +149,9 @@ typedef struct {
|
||||
fop_mkdir_cbk_t fn;
|
||||
int32_t op_ret, op_errno;
|
||||
inode_t *inode;
|
||||
struct stat buf;
|
||||
struct stat preparent;
|
||||
struct stat postparent;
|
||||
struct iatt buf;
|
||||
struct iatt preparent;
|
||||
struct iatt postparent;
|
||||
} mkdir_cbk;
|
||||
|
||||
/* unlink */
|
||||
@ -162,8 +162,8 @@ typedef struct {
|
||||
struct {
|
||||
fop_unlink_cbk_t fn;
|
||||
int32_t op_ret, op_errno;
|
||||
struct stat preparent;
|
||||
struct stat postparent;
|
||||
struct iatt preparent;
|
||||
struct iatt postparent;
|
||||
} unlink_cbk;
|
||||
|
||||
/* rmdir */
|
||||
@ -174,8 +174,8 @@ typedef struct {
|
||||
struct {
|
||||
fop_rmdir_cbk_t fn;
|
||||
int32_t op_ret, op_errno;
|
||||
struct stat preparent;
|
||||
struct stat postparent;
|
||||
struct iatt preparent;
|
||||
struct iatt postparent;
|
||||
} rmdir_cbk;
|
||||
|
||||
/* symlink */
|
||||
@ -188,9 +188,9 @@ typedef struct {
|
||||
fop_symlink_cbk_t fn;
|
||||
int32_t op_ret, op_errno;
|
||||
inode_t *inode;
|
||||
struct stat buf;
|
||||
struct stat preparent;
|
||||
struct stat postparent;
|
||||
struct iatt buf;
|
||||
struct iatt preparent;
|
||||
struct iatt postparent;
|
||||
} symlink_cbk;
|
||||
|
||||
/* rename */
|
||||
@ -202,11 +202,11 @@ typedef struct {
|
||||
struct {
|
||||
fop_rename_cbk_t fn;
|
||||
int32_t op_ret, op_errno;
|
||||
struct stat buf;
|
||||
struct stat preoldparent;
|
||||
struct stat postoldparent;
|
||||
struct stat prenewparent;
|
||||
struct stat postnewparent;
|
||||
struct iatt buf;
|
||||
struct iatt preoldparent;
|
||||
struct iatt postoldparent;
|
||||
struct iatt prenewparent;
|
||||
struct iatt postnewparent;
|
||||
} rename_cbk;
|
||||
|
||||
/* link */
|
||||
@ -219,9 +219,9 @@ typedef struct {
|
||||
fop_link_cbk_t fn;
|
||||
int32_t op_ret, op_errno;
|
||||
inode_t *inode;
|
||||
struct stat buf;
|
||||
struct stat preparent;
|
||||
struct stat postparent;
|
||||
struct iatt buf;
|
||||
struct iatt preparent;
|
||||
struct iatt postparent;
|
||||
} link_cbk;
|
||||
|
||||
/* create */
|
||||
@ -237,9 +237,9 @@ typedef struct {
|
||||
int32_t op_ret, op_errno;
|
||||
fd_t *fd;
|
||||
inode_t *inode;
|
||||
struct stat buf;
|
||||
struct stat preparent;
|
||||
struct stat postparent;
|
||||
struct iatt buf;
|
||||
struct iatt preparent;
|
||||
struct iatt postparent;
|
||||
} create_cbk;
|
||||
|
||||
/* open */
|
||||
@ -269,7 +269,7 @@ typedef struct {
|
||||
int32_t op_errno;
|
||||
struct iovec *vector;
|
||||
int32_t count;
|
||||
struct stat stbuf;
|
||||
struct iatt stbuf;
|
||||
struct iobref *iobref;
|
||||
} readv_cbk;
|
||||
|
||||
@ -285,8 +285,8 @@ typedef struct {
|
||||
struct {
|
||||
fop_writev_cbk_t fn;
|
||||
int32_t op_ret, op_errno;
|
||||
struct stat prebuf;
|
||||
struct stat postbuf;
|
||||
struct iatt prebuf;
|
||||
struct iatt postbuf;
|
||||
} writev_cbk;
|
||||
|
||||
/* flush */
|
||||
@ -308,8 +308,8 @@ typedef struct {
|
||||
struct {
|
||||
fop_fsync_cbk_t fn;
|
||||
int32_t op_ret, op_errno;
|
||||
struct stat prebuf;
|
||||
struct stat postbuf;
|
||||
struct iatt prebuf;
|
||||
struct iatt postbuf;
|
||||
} fsync_cbk;
|
||||
|
||||
/* opendir */
|
||||
@ -613,30 +613,30 @@ typedef struct {
|
||||
struct {
|
||||
fop_setattr_t fn;
|
||||
loc_t loc;
|
||||
struct stat stbuf;
|
||||
struct iatt stbuf;
|
||||
int32_t valid;
|
||||
} setattr;
|
||||
struct {
|
||||
fop_setattr_cbk_t fn;
|
||||
int32_t op_ret;
|
||||
int32_t op_errno;
|
||||
struct stat statpre;
|
||||
struct stat statpost;
|
||||
struct iatt statpre;
|
||||
struct iatt statpost;
|
||||
} setattr_cbk;
|
||||
|
||||
/* fsetattr */
|
||||
struct {
|
||||
fop_fsetattr_t fn;
|
||||
fd_t *fd;
|
||||
struct stat stbuf;
|
||||
struct iatt stbuf;
|
||||
int32_t valid;
|
||||
} fsetattr;
|
||||
struct {
|
||||
fop_fsetattr_cbk_t fn;
|
||||
int32_t op_ret;
|
||||
int32_t op_errno;
|
||||
struct stat statpre;
|
||||
struct stat statpost;
|
||||
struct iatt statpre;
|
||||
struct iatt statpost;
|
||||
} fsetattr_cbk;
|
||||
|
||||
} args;
|
||||
@ -654,9 +654,9 @@ fop_lookup_cbk_stub (call_frame_t *frame,
|
||||
int32_t op_ret,
|
||||
int32_t op_errno,
|
||||
inode_t *inode,
|
||||
struct stat *buf,
|
||||
struct iatt *buf,
|
||||
dict_t *dict,
|
||||
struct stat *postparent);
|
||||
struct iatt *postparent);
|
||||
call_stub_t *
|
||||
fop_stat_stub (call_frame_t *frame,
|
||||
fop_stat_t fn,
|
||||
@ -666,7 +666,7 @@ fop_stat_cbk_stub (call_frame_t *frame,
|
||||
fop_stat_cbk_t fn,
|
||||
int32_t op_ret,
|
||||
int32_t op_errno,
|
||||
struct stat *buf);
|
||||
struct iatt *buf);
|
||||
call_stub_t *
|
||||
fop_fstat_stub (call_frame_t *frame,
|
||||
fop_fstat_t fn,
|
||||
@ -676,7 +676,7 @@ fop_fstat_cbk_stub (call_frame_t *frame,
|
||||
fop_fstat_cbk_t fn,
|
||||
int32_t op_ret,
|
||||
int32_t op_errno,
|
||||
struct stat *buf);
|
||||
struct iatt *buf);
|
||||
|
||||
call_stub_t *
|
||||
fop_truncate_stub (call_frame_t *frame,
|
||||
@ -689,8 +689,8 @@ fop_truncate_cbk_stub (call_frame_t *frame,
|
||||
fop_truncate_cbk_t fn,
|
||||
int32_t op_ret,
|
||||
int32_t op_errno,
|
||||
struct stat *prebuf,
|
||||
struct stat *postbuf);
|
||||
struct iatt *prebuf,
|
||||
struct iatt *postbuf);
|
||||
|
||||
call_stub_t *
|
||||
fop_ftruncate_stub (call_frame_t *frame,
|
||||
@ -703,8 +703,8 @@ fop_ftruncate_cbk_stub (call_frame_t *frame,
|
||||
fop_ftruncate_cbk_t fn,
|
||||
int32_t op_ret,
|
||||
int32_t op_errno,
|
||||
struct stat *prebuf,
|
||||
struct stat *postbuf);
|
||||
struct iatt *prebuf,
|
||||
struct iatt *postbuf);
|
||||
|
||||
call_stub_t *
|
||||
fop_access_stub (call_frame_t *frame,
|
||||
@ -730,7 +730,7 @@ fop_readlink_cbk_stub (call_frame_t *frame,
|
||||
int32_t op_ret,
|
||||
int32_t op_errno,
|
||||
const char *path,
|
||||
struct stat *buf);
|
||||
struct iatt *buf);
|
||||
|
||||
call_stub_t *
|
||||
fop_mknod_stub (call_frame_t *frame,
|
||||
@ -745,9 +745,9 @@ fop_mknod_cbk_stub (call_frame_t *frame,
|
||||
int32_t op_ret,
|
||||
int32_t op_errno,
|
||||
inode_t *inode,
|
||||
struct stat *buf,
|
||||
struct stat *preparent,
|
||||
struct stat *postparent);
|
||||
struct iatt *buf,
|
||||
struct iatt *preparent,
|
||||
struct iatt *postparent);
|
||||
|
||||
call_stub_t *
|
||||
fop_mkdir_stub (call_frame_t *frame,
|
||||
@ -761,9 +761,9 @@ fop_mkdir_cbk_stub (call_frame_t *frame,
|
||||
int32_t op_ret,
|
||||
int32_t op_errno,
|
||||
inode_t *inode,
|
||||
struct stat *buf,
|
||||
struct stat *preparent,
|
||||
struct stat *postparent);
|
||||
struct iatt *buf,
|
||||
struct iatt *preparent,
|
||||
struct iatt *postparent);
|
||||
|
||||
call_stub_t *
|
||||
fop_unlink_stub (call_frame_t *frame,
|
||||
@ -775,8 +775,8 @@ fop_unlink_cbk_stub (call_frame_t *frame,
|
||||
fop_unlink_cbk_t fn,
|
||||
int32_t op_ret,
|
||||
int32_t op_errno,
|
||||
struct stat *preparent,
|
||||
struct stat *postparent);
|
||||
struct iatt *preparent,
|
||||
struct iatt *postparent);
|
||||
|
||||
call_stub_t *
|
||||
fop_rmdir_stub (call_frame_t *frame,
|
||||
@ -788,8 +788,8 @@ fop_rmdir_cbk_stub (call_frame_t *frame,
|
||||
fop_rmdir_cbk_t fn,
|
||||
int32_t op_ret,
|
||||
int32_t op_errno,
|
||||
struct stat *preparent,
|
||||
struct stat *postparent);
|
||||
struct iatt *preparent,
|
||||
struct iatt *postparent);
|
||||
|
||||
call_stub_t *
|
||||
fop_symlink_stub (call_frame_t *frame,
|
||||
@ -803,9 +803,9 @@ fop_symlink_cbk_stub (call_frame_t *frame,
|
||||
int32_t op_ret,
|
||||
int32_t op_errno,
|
||||
inode_t *inode,
|
||||
struct stat *buf,
|
||||
struct stat *preparent,
|
||||
struct stat *postparent);
|
||||
struct iatt *buf,
|
||||
struct iatt *preparent,
|
||||
struct iatt *postparent);
|
||||
|
||||
call_stub_t *
|
||||
fop_rename_stub (call_frame_t *frame,
|
||||
@ -818,11 +818,11 @@ fop_rename_cbk_stub (call_frame_t *frame,
|
||||
fop_rename_cbk_t fn,
|
||||
int32_t op_ret,
|
||||
int32_t op_errno,
|
||||
struct stat *buf,
|
||||
struct stat *preoldparent,
|
||||
struct stat *postoldparent,
|
||||
struct stat *prenewparent,
|
||||
struct stat *postnewparent);
|
||||
struct iatt *buf,
|
||||
struct iatt *preoldparent,
|
||||
struct iatt *postoldparent,
|
||||
struct iatt *prenewparent,
|
||||
struct iatt *postnewparent);
|
||||
|
||||
call_stub_t *
|
||||
fop_link_stub (call_frame_t *frame,
|
||||
@ -836,9 +836,9 @@ fop_link_cbk_stub (call_frame_t *frame,
|
||||
int32_t op_ret,
|
||||
int32_t op_errno,
|
||||
inode_t *inode,
|
||||
struct stat *buf,
|
||||
struct stat *preparent,
|
||||
struct stat *postparent);
|
||||
struct iatt *buf,
|
||||
struct iatt *preparent,
|
||||
struct iatt *postparent);
|
||||
|
||||
call_stub_t *
|
||||
fop_create_stub (call_frame_t *frame,
|
||||
@ -854,9 +854,9 @@ fop_create_cbk_stub (call_frame_t *frame,
|
||||
int32_t op_errno,
|
||||
fd_t *fd,
|
||||
inode_t *inode,
|
||||
struct stat *buf,
|
||||
struct stat *preparent,
|
||||
struct stat *postparent);
|
||||
struct iatt *buf,
|
||||
struct iatt *preparent,
|
||||
struct iatt *postparent);
|
||||
|
||||
call_stub_t *
|
||||
fop_open_stub (call_frame_t *frame,
|
||||
@ -887,7 +887,7 @@ fop_readv_cbk_stub (call_frame_t *frame,
|
||||
int32_t op_errno,
|
||||
struct iovec *vector,
|
||||
int32_t count,
|
||||
struct stat *stbuf,
|
||||
struct iatt *stbuf,
|
||||
struct iobref *iobref);
|
||||
|
||||
call_stub_t *
|
||||
@ -904,8 +904,8 @@ fop_writev_cbk_stub (call_frame_t *frame,
|
||||
fop_writev_cbk_t fn,
|
||||
int32_t op_ret,
|
||||
int32_t op_errno,
|
||||
struct stat *prebuf,
|
||||
struct stat *postbuf);
|
||||
struct iatt *prebuf,
|
||||
struct iatt *postbuf);
|
||||
|
||||
call_stub_t *
|
||||
fop_flush_stub (call_frame_t *frame,
|
||||
@ -929,8 +929,8 @@ fop_fsync_cbk_stub (call_frame_t *frame,
|
||||
fop_fsync_cbk_t fn,
|
||||
int32_t op_ret,
|
||||
int32_t op_errno,
|
||||
struct stat *prebuf,
|
||||
struct stat *postbuf);
|
||||
struct iatt *prebuf,
|
||||
struct iatt *postbuf);
|
||||
|
||||
call_stub_t *
|
||||
fop_opendir_stub (call_frame_t *frame,
|
||||
@ -1221,7 +1221,7 @@ call_stub_t *
|
||||
fop_setattr_stub (call_frame_t *frame,
|
||||
fop_setattr_t fn,
|
||||
loc_t *loc,
|
||||
struct stat *stbuf,
|
||||
struct iatt *stbuf,
|
||||
int32_t valid);
|
||||
|
||||
call_stub_t *
|
||||
@ -1229,14 +1229,14 @@ fop_setattr_cbk_stub (call_frame_t *frame,
|
||||
fop_setattr_cbk_t fn,
|
||||
int32_t op_ret,
|
||||
int32_t op_errno,
|
||||
struct stat *statpre,
|
||||
struct stat *statpost);
|
||||
struct iatt *statpre,
|
||||
struct iatt *statpost);
|
||||
|
||||
call_stub_t *
|
||||
fop_fsetattr_stub (call_frame_t *frame,
|
||||
fop_fsetattr_t fn,
|
||||
fd_t *fd,
|
||||
struct stat *stbuf,
|
||||
struct iatt *stbuf,
|
||||
int32_t valid);
|
||||
|
||||
call_stub_t *
|
||||
@ -1244,8 +1244,8 @@ fop_fsetattr_cbk_stub (call_frame_t *frame,
|
||||
fop_setattr_cbk_t fn,
|
||||
int32_t op_ret,
|
||||
int32_t op_errno,
|
||||
struct stat *statpre,
|
||||
struct stat *statpost);
|
||||
struct iatt *statpre,
|
||||
struct iatt *statpost);
|
||||
|
||||
void call_resume (call_stub_t *stub);
|
||||
void call_stub_destroy (call_stub_t *stub);
|
||||
|
@ -40,9 +40,9 @@ default_lookup_cbk (call_frame_t *frame,
|
||||
int32_t op_ret,
|
||||
int32_t op_errno,
|
||||
inode_t *inode,
|
||||
struct stat *buf,
|
||||
struct iatt *buf,
|
||||
dict_t *dict,
|
||||
struct stat *postparent)
|
||||
struct iatt *postparent)
|
||||
{
|
||||
STACK_UNWIND (frame,
|
||||
op_ret,
|
||||
@ -83,7 +83,7 @@ default_stat_cbk (call_frame_t *frame,
|
||||
xlator_t *this,
|
||||
int32_t op_ret,
|
||||
int32_t op_errno,
|
||||
struct stat *buf)
|
||||
struct iatt *buf)
|
||||
{
|
||||
STACK_UNWIND (frame,
|
||||
op_ret,
|
||||
@ -111,8 +111,8 @@ default_truncate_cbk (call_frame_t *frame,
|
||||
xlator_t *this,
|
||||
int32_t op_ret,
|
||||
int32_t op_errno,
|
||||
struct stat *prebuf,
|
||||
struct stat *postbuf)
|
||||
struct iatt *prebuf,
|
||||
struct iatt *postbuf)
|
||||
{
|
||||
STACK_UNWIND (frame,
|
||||
op_ret,
|
||||
@ -143,8 +143,8 @@ default_ftruncate_cbk (call_frame_t *frame,
|
||||
xlator_t *this,
|
||||
int32_t op_ret,
|
||||
int32_t op_errno,
|
||||
struct stat *prebuf,
|
||||
struct stat *postbuf)
|
||||
struct iatt *prebuf,
|
||||
struct iatt *postbuf)
|
||||
{
|
||||
STACK_UNWIND (frame,
|
||||
op_ret,
|
||||
@ -205,7 +205,7 @@ default_readlink_cbk (call_frame_t *frame,
|
||||
int32_t op_ret,
|
||||
int32_t op_errno,
|
||||
const char *path,
|
||||
struct stat *buf)
|
||||
struct iatt *buf)
|
||||
{
|
||||
STACK_UNWIND (frame,
|
||||
op_ret,
|
||||
@ -238,9 +238,9 @@ default_mknod_cbk (call_frame_t *frame,
|
||||
int32_t op_ret,
|
||||
int32_t op_errno,
|
||||
inode_t *inode,
|
||||
struct stat *buf,
|
||||
struct stat *preparent,
|
||||
struct stat *postparent)
|
||||
struct iatt *buf,
|
||||
struct iatt *preparent,
|
||||
struct iatt *postparent)
|
||||
{
|
||||
STACK_UNWIND (frame,
|
||||
op_ret,
|
||||
@ -274,9 +274,9 @@ default_mkdir_cbk (call_frame_t *frame,
|
||||
int32_t op_ret,
|
||||
int32_t op_errno,
|
||||
inode_t *inode,
|
||||
struct stat *buf,
|
||||
struct stat *preparent,
|
||||
struct stat *postparent)
|
||||
struct iatt *buf,
|
||||
struct iatt *preparent,
|
||||
struct iatt *postparent)
|
||||
{
|
||||
STACK_UNWIND (frame,
|
||||
op_ret,
|
||||
@ -308,8 +308,8 @@ default_unlink_cbk (call_frame_t *frame,
|
||||
xlator_t *this,
|
||||
int32_t op_ret,
|
||||
int32_t op_errno,
|
||||
struct stat *preparent,
|
||||
struct stat *postparent)
|
||||
struct iatt *preparent,
|
||||
struct iatt *postparent)
|
||||
{
|
||||
STACK_UNWIND (frame, op_ret, op_errno, preparent, postparent);
|
||||
return 0;
|
||||
@ -334,8 +334,8 @@ default_rmdir_cbk (call_frame_t *frame,
|
||||
xlator_t *this,
|
||||
int32_t op_ret,
|
||||
int32_t op_errno,
|
||||
struct stat *preparent,
|
||||
struct stat *postparent)
|
||||
struct iatt *preparent,
|
||||
struct iatt *postparent)
|
||||
{
|
||||
STACK_UNWIND (frame,
|
||||
op_ret,
|
||||
@ -366,9 +366,9 @@ default_symlink_cbk (call_frame_t *frame,
|
||||
int32_t op_ret,
|
||||
int32_t op_errno,
|
||||
inode_t *inode,
|
||||
struct stat *buf,
|
||||
struct stat *preparent,
|
||||
struct stat *postparent)
|
||||
struct iatt *buf,
|
||||
struct iatt *preparent,
|
||||
struct iatt *postparent)
|
||||
{
|
||||
STACK_UNWIND (frame, op_ret, op_errno, inode, buf, preparent,
|
||||
postparent);
|
||||
@ -396,11 +396,11 @@ default_rename_cbk (call_frame_t *frame,
|
||||
xlator_t *this,
|
||||
int32_t op_ret,
|
||||
int32_t op_errno,
|
||||
struct stat *buf,
|
||||
struct stat *preoldparent,
|
||||
struct stat *postoldparent,
|
||||
struct stat *prenewparent,
|
||||
struct stat *postnewparent)
|
||||
struct iatt *buf,
|
||||
struct iatt *preoldparent,
|
||||
struct iatt *postoldparent,
|
||||
struct iatt *prenewparent,
|
||||
struct iatt *postnewparent)
|
||||
{
|
||||
STACK_UNWIND (frame, op_ret, op_errno, buf, preoldparent, postoldparent,
|
||||
prenewparent, postnewparent);
|
||||
@ -429,9 +429,9 @@ default_link_cbk (call_frame_t *frame,
|
||||
int32_t op_ret,
|
||||
int32_t op_errno,
|
||||
inode_t *inode,
|
||||
struct stat *buf,
|
||||
struct stat *preparent,
|
||||
struct stat *postparent)
|
||||
struct iatt *buf,
|
||||
struct iatt *preparent,
|
||||
struct iatt *postparent)
|
||||
{
|
||||
STACK_UNWIND (frame, op_ret, op_errno, inode, buf, preparent,
|
||||
postparent);
|
||||
@ -461,9 +461,9 @@ default_create_cbk (call_frame_t *frame,
|
||||
int32_t op_errno,
|
||||
fd_t *fd,
|
||||
inode_t *inode,
|
||||
struct stat *buf,
|
||||
struct stat *preparent,
|
||||
struct stat *postparent)
|
||||
struct iatt *buf,
|
||||
struct iatt *preparent,
|
||||
struct iatt *postparent)
|
||||
{
|
||||
STACK_UNWIND (frame, op_ret, op_errno, fd, inode, buf, preparent,
|
||||
postparent);
|
||||
@ -522,7 +522,7 @@ default_readv_cbk (call_frame_t *frame,
|
||||
int32_t op_errno,
|
||||
struct iovec *vector,
|
||||
int32_t count,
|
||||
struct stat *stbuf,
|
||||
struct iatt *stbuf,
|
||||
struct iobref *iobref)
|
||||
{
|
||||
STACK_UNWIND (frame,
|
||||
@ -559,8 +559,8 @@ default_writev_cbk (call_frame_t *frame,
|
||||
xlator_t *this,
|
||||
int32_t op_ret,
|
||||
int32_t op_errno,
|
||||
struct stat *prebuf,
|
||||
struct stat *postbuf)
|
||||
struct iatt *prebuf,
|
||||
struct iatt *postbuf)
|
||||
{
|
||||
STACK_UNWIND (frame,
|
||||
op_ret,
|
||||
@ -624,8 +624,8 @@ default_fsync_cbk (call_frame_t *frame,
|
||||
xlator_t *this,
|
||||
int32_t op_ret,
|
||||
int32_t op_errno,
|
||||
struct stat *prebuf,
|
||||
struct stat *postbuf)
|
||||
struct iatt *prebuf,
|
||||
struct iatt *postbuf)
|
||||
{
|
||||
STACK_UNWIND (frame,
|
||||
op_ret,
|
||||
@ -656,7 +656,7 @@ default_fstat_cbk (call_frame_t *frame,
|
||||
xlator_t *this,
|
||||
int32_t op_ret,
|
||||
int32_t op_errno,
|
||||
struct stat *buf)
|
||||
struct iatt *buf)
|
||||
{
|
||||
STACK_UNWIND (frame,
|
||||
op_ret,
|
||||
@ -1477,8 +1477,8 @@ default_setattr_cbk (call_frame_t *frame,
|
||||
xlator_t *this,
|
||||
int32_t op_ret,
|
||||
int32_t op_errno,
|
||||
struct stat *statpre,
|
||||
struct stat *statpost)
|
||||
struct iatt *statpre,
|
||||
struct iatt *statpost)
|
||||
{
|
||||
STACK_UNWIND (frame, op_ret, op_errno, statpre, statpost);
|
||||
return 0;
|
||||
@ -1488,7 +1488,7 @@ int32_t
|
||||
default_setattr (call_frame_t *frame,
|
||||
xlator_t *this,
|
||||
loc_t *loc,
|
||||
struct stat *stbuf,
|
||||
struct iatt *stbuf,
|
||||
int32_t valid)
|
||||
{
|
||||
STACK_WIND (frame,
|
||||
@ -1505,8 +1505,8 @@ default_fsetattr_cbk (call_frame_t *frame,
|
||||
xlator_t *this,
|
||||
int32_t op_ret,
|
||||
int32_t op_errno,
|
||||
struct stat *statpre,
|
||||
struct stat *statpost)
|
||||
struct iatt *statpre,
|
||||
struct iatt *statpost)
|
||||
{
|
||||
STACK_UNWIND (frame, op_ret, op_errno, statpre, statpost);
|
||||
return 0;
|
||||
@ -1516,7 +1516,7 @@ int32_t
|
||||
default_fsetattr (call_frame_t *frame,
|
||||
xlator_t *this,
|
||||
fd_t *fd,
|
||||
struct stat *stbuf,
|
||||
struct iatt *stbuf,
|
||||
int32_t valid)
|
||||
{
|
||||
STACK_WIND (frame,
|
||||
|
@ -284,13 +284,13 @@ int32_t default_releasedir (xlator_t *this,
|
||||
int32_t default_setattr (call_frame_t *frame,
|
||||
xlator_t *this,
|
||||
loc_t *loc,
|
||||
struct stat *stbuf,
|
||||
struct iatt *stbuf,
|
||||
int32_t valid);
|
||||
|
||||
int32_t default_fsetattr (call_frame_t *frame,
|
||||
xlator_t *this,
|
||||
fd_t *fd,
|
||||
struct stat *stbuf,
|
||||
struct iatt *stbuf,
|
||||
int32_t valid);
|
||||
|
||||
#endif /* _DEFAULTS_H */
|
||||
|
@ -399,7 +399,7 @@ fd_destroy (fd_t *fd)
|
||||
if (!fd->_ctx)
|
||||
goto out;
|
||||
|
||||
if (S_ISDIR (fd->inode->st_mode)) {
|
||||
if (IA_ISDIR (fd->inode->ia_type)) {
|
||||
for (i = 0; i < fd->inode->table->xl->ctx->xl_count; i++) {
|
||||
if (fd->_ctx[i].key) {
|
||||
xl = (xlator_t *)(long)fd->_ctx[i].key;
|
||||
|
@ -126,11 +126,11 @@ gf_dirent_serialize (gf_dirent_t *entries, char *buf, size_t buf_size)
|
||||
entry_nb = (void *) (buf + size);
|
||||
|
||||
entry_nb->d_ino = hton64 (entry->d_ino);
|
||||
entry_nb->d_off = hton64 (entry->d_off);
|
||||
entry_nb->d_off = hton64 (entry->d_off);
|
||||
entry_nb->d_len = hton32 (entry->d_len);
|
||||
entry_nb->d_type = hton32 (entry->d_type);
|
||||
|
||||
gf_stat_from_stat (&entry_nb->d_stat, &entry->d_stat);
|
||||
gf_stat_from_iatt (&entry_nb->d_stat, &entry->d_stat);
|
||||
|
||||
strcpy (entry_nb->d_name, entry->d_name);
|
||||
}
|
||||
@ -175,7 +175,7 @@ gf_dirent_unserialize (gf_dirent_t *entries, const char *buf, size_t buf_size)
|
||||
entry->d_len = ntoh32 (entry_nb->d_len);
|
||||
entry->d_type = ntoh32 (entry_nb->d_type);
|
||||
|
||||
gf_stat_to_stat (&entry_nb->d_stat, &entry->d_stat);
|
||||
gf_stat_to_iatt (&entry_nb->d_stat, &entry->d_stat);
|
||||
|
||||
strcpy (entry->d_name, entry_nb->d_name);
|
||||
|
||||
|
@ -26,13 +26,15 @@
|
||||
#include "config.h"
|
||||
#endif
|
||||
|
||||
#include "iatt.h"
|
||||
|
||||
#define gf_dirent_size(name) (sizeof (gf_dirent_t) + strlen (name) + 1)
|
||||
|
||||
struct _dir_entry_t {
|
||||
struct _dir_entry_t *next;
|
||||
char *name;
|
||||
char *link;
|
||||
struct stat buf;
|
||||
struct iatt buf;
|
||||
};
|
||||
|
||||
|
||||
@ -48,7 +50,7 @@ struct _gf_dirent_t {
|
||||
uint64_t d_off;
|
||||
uint32_t d_len;
|
||||
uint32_t d_type;
|
||||
struct stat d_stat;
|
||||
struct iatt d_stat;
|
||||
char d_name[0];
|
||||
};
|
||||
|
||||
|
@ -657,15 +657,15 @@ __inode_atticize (inode_t *inode)
|
||||
|
||||
|
||||
uint64_t
|
||||
inode_gen_from_stat (struct stat *stbuf)
|
||||
inode_gen_from_stat (struct iatt *iatt)
|
||||
{
|
||||
return (uint64_t) stbuf->st_dev;
|
||||
return (uint64_t) iatt->ia_gen;
|
||||
}
|
||||
|
||||
|
||||
static inode_t *
|
||||
__inode_link (inode_t *inode, inode_t *parent, const char *name,
|
||||
struct stat *stbuf)
|
||||
struct iatt *iatt)
|
||||
{
|
||||
dentry_t *dentry = NULL;
|
||||
dentry_t *old_dentry = NULL;
|
||||
@ -677,9 +677,9 @@ __inode_link (inode_t *inode, inode_t *parent, const char *name,
|
||||
|
||||
link_inode = inode;
|
||||
|
||||
if (stbuf->st_ino == 1 && inode != table->root) {
|
||||
if (iatt->ia_ino == 1 && inode != table->root) {
|
||||
gf_log (table->name, GF_LOG_ERROR,
|
||||
"inode_link called with stbuf->st_ino = 1. "
|
||||
"inode_link called with iatt->ia_ino = 1. "
|
||||
"inode=%"PRId64"/%"PRId64 "parent=%"PRId64"/%"PRId64
|
||||
" name=%s",
|
||||
inode ? inode->generation:0 , inode ? inode->ino:0,
|
||||
@ -689,9 +689,9 @@ __inode_link (inode_t *inode, inode_t *parent, const char *name,
|
||||
}
|
||||
|
||||
if (!__is_inode_hashed (inode)) {
|
||||
inode->ino = stbuf->st_ino;
|
||||
inode->st_mode = stbuf->st_mode;
|
||||
inode->generation = inode_gen_from_stat (stbuf);
|
||||
inode->ino = iatt->ia_ino;
|
||||
inode->ia_type = iatt->ia_type;
|
||||
inode->generation = inode_gen_from_stat (iatt);
|
||||
|
||||
old_inode = __inode_search (table, inode->ino);
|
||||
|
||||
@ -726,7 +726,7 @@ __inode_link (inode_t *inode, inode_t *parent, const char *name,
|
||||
|
||||
inode_t *
|
||||
inode_link (inode_t *inode, inode_t *parent, const char *name,
|
||||
struct stat *stbuf)
|
||||
struct iatt *iatt)
|
||||
{
|
||||
inode_table_t *table = NULL;
|
||||
inode_t *linked_inode = NULL;
|
||||
@ -735,7 +735,7 @@ inode_link (inode_t *inode, inode_t *parent, const char *name,
|
||||
|
||||
pthread_mutex_lock (&table->lock);
|
||||
{
|
||||
linked_inode = __inode_link (inode, parent, name, stbuf);
|
||||
linked_inode = __inode_link (inode, parent, name, iatt);
|
||||
|
||||
if (linked_inode)
|
||||
__inode_ref (linked_inode);
|
||||
@ -820,13 +820,13 @@ inode_unlink (inode_t *inode, inode_t *parent, const char *name)
|
||||
int
|
||||
inode_rename (inode_table_t *table, inode_t *srcdir, const char *srcname,
|
||||
inode_t *dstdir, const char *dstname, inode_t *inode,
|
||||
struct stat *stbuf)
|
||||
struct iatt *iatt)
|
||||
{
|
||||
table = inode->table;
|
||||
|
||||
pthread_mutex_lock (&table->lock);
|
||||
{
|
||||
__inode_link (inode, dstdir, dstname, stbuf);
|
||||
__inode_link (inode, dstdir, dstname, iatt);
|
||||
__inode_unlink (inode, srcdir, srcname);
|
||||
}
|
||||
pthread_mutex_unlock (&table->lock);
|
||||
@ -1030,15 +1030,15 @@ static void
|
||||
__inode_table_init_root (inode_table_t *table)
|
||||
{
|
||||
inode_t *root = NULL;
|
||||
struct stat stbuf = {0, };
|
||||
struct iatt iatt = {0, };
|
||||
|
||||
root = __inode_create (table);
|
||||
|
||||
stbuf.st_ino = 1;
|
||||
stbuf.st_mode = S_IFDIR|0755;
|
||||
iatt.ia_ino = 1;
|
||||
iatt.ia_type = IA_IFDIR;
|
||||
|
||||
table->root = root;
|
||||
__inode_link (root, NULL, NULL, &stbuf);
|
||||
__inode_link (root, NULL, NULL, &iatt);
|
||||
}
|
||||
|
||||
|
||||
@ -1360,8 +1360,8 @@ inode_dump (inode_t *inode, char *prefix)
|
||||
gf_proc_dump_write(key, "%u", inode->ref);
|
||||
gf_proc_dump_build_key(key, prefix, "ino");
|
||||
gf_proc_dump_write(key, "%ld", inode->ino);
|
||||
gf_proc_dump_build_key(key, prefix, "st_mode");
|
||||
gf_proc_dump_write(key, "%d", inode->st_mode);
|
||||
gf_proc_dump_build_key(key, prefix, "ia_type");
|
||||
gf_proc_dump_write(key, "%d", inode->ia_type);
|
||||
UNLOCK(&inode->lock);
|
||||
if (!inode->_ctx)
|
||||
goto out;
|
||||
|
@ -39,6 +39,7 @@ typedef struct _dentry dentry_t;
|
||||
|
||||
#include "list.h"
|
||||
#include "xlator.h"
|
||||
#include "iatt.h"
|
||||
|
||||
|
||||
struct _inode_table {
|
||||
@ -96,7 +97,7 @@ struct _inode {
|
||||
uint32_t in_attic; /* whether @hash is linked with @inode_hash or @attic */
|
||||
uint32_t ref; /* reference count on this inode */
|
||||
ino_t ino; /* inode number in the storage (persistent) */
|
||||
mode_t st_mode; /* what kind of file */
|
||||
ia_type_t ia_type; /* what kind of file */
|
||||
struct list_head fd_list; /* list of open files on this inode */
|
||||
struct list_head dentry_list; /* list of directory entries for this inode */
|
||||
struct list_head hash; /* hash table pointers */
|
||||
@ -117,7 +118,7 @@ inode_search (inode_table_t *table, ino_t ino, const char *name);
|
||||
|
||||
inode_t *
|
||||
inode_link (inode_t *inode, inode_t *parent,
|
||||
const char *name, struct stat *stbuf);
|
||||
const char *name, struct iatt *stbuf);
|
||||
|
||||
void
|
||||
inode_unlink (inode_t *inode, inode_t *parent, const char *name);
|
||||
@ -140,7 +141,7 @@ inode_forget (inode_t *inode, uint64_t nlookup);
|
||||
int
|
||||
inode_rename (inode_table_t *table, inode_t *olddir, const char *oldname,
|
||||
inode_t *newdir, const char *newname,
|
||||
inode_t *inode, struct stat *stbuf);
|
||||
inode_t *inode, struct iatt *stbuf);
|
||||
|
||||
inode_t *
|
||||
inode_grep (inode_table_t *table, inode_t *parent, const char *name);
|
||||
|
@ -27,46 +27,14 @@
|
||||
#endif
|
||||
|
||||
#include <stdint.h>
|
||||
#include <stdio.h>
|
||||
#include <stdio.h>
|
||||
#include <stdarg.h>
|
||||
|
||||
#define GF_PRI_FSBLK PRId64
|
||||
#define GF_PRI_BLKSIZE "ld"
|
||||
#if GF_LINUX_HOST_OS
|
||||
|
||||
# if __WORDSIZE == 64
|
||||
# define GF_PRI_SIZET "lu"
|
||||
# define GF_PRI_NLINK "lu"
|
||||
# else
|
||||
# define GF_PRI_SIZET "u"
|
||||
# define GF_PRI_NLINK "u"
|
||||
# endif /* __WORDSIZE */
|
||||
|
||||
#elif GF_DARWIN_HOST_OS
|
||||
|
||||
/* Noticed that size_t and ino_t are different on OSX, need to fix the warnings */
|
||||
# define GF_PRI_SIZET "lu"
|
||||
# define GF_PRI_NLINK "u"
|
||||
|
||||
# undef GF_PRI_FSBLK
|
||||
# define GF_PRI_FSBLK "u"
|
||||
|
||||
# undef GF_PRI_BLKSIZE
|
||||
# define GF_PRI_BLKSIZE "u"
|
||||
|
||||
# if __DARWIN_64_BIT_INO_T == 0
|
||||
# error '64 bit ino_t is must for GlusterFS to work, Compile with "CFLAGS=-D__DARWIN_64_BIT_INO_T"'
|
||||
# endif /* __DARWIN_64_BIT_INO_T */
|
||||
|
||||
#else /* !LINUX && !DARWIN */
|
||||
|
||||
/* BSD and Solaris : Change as per testing there.. */
|
||||
# define GF_PRI_SIZET "lu"
|
||||
# define GF_PRI_NLINK "u"
|
||||
|
||||
#endif /* LINUX_OS */
|
||||
|
||||
#define GF_PRI_DEV GF_PRI_FSBLK
|
||||
#define GF_PRI_BLKSIZE PRId32
|
||||
#define GF_PRI_SIZET PRId64
|
||||
#define GF_PRI_NLINK PRId32
|
||||
#define GF_PRI_DEV PRId64
|
||||
|
||||
typedef enum {
|
||||
GF_LOG_NONE,
|
||||
|
@ -34,6 +34,7 @@
|
||||
#include <fcntl.h>
|
||||
|
||||
#include "byte-order.h"
|
||||
#include "iatt.h"
|
||||
|
||||
/* Any changes in the protocol structure or adding new '[f,m]ops' needs to
|
||||
* bump the protocol version by "0.1"
|
||||
@ -101,6 +102,57 @@ gf_stat_from_stat (struct gf_stat *gf_stat, struct stat *stat)
|
||||
}
|
||||
|
||||
|
||||
static inline void
|
||||
gf_stat_to_iatt (struct gf_stat *gf_stat, struct iatt *iatt)
|
||||
{
|
||||
iatt->ia_ino = ntoh64 (gf_stat->ino);
|
||||
iatt->ia_dev = ntoh64 (gf_stat->dev);
|
||||
iatt->ia_type = ia_type_from_st_mode (ntoh32 (gf_stat->mode));
|
||||
iatt->ia_prot = ia_prot_from_st_mode (ntoh32 (gf_stat->mode));
|
||||
iatt->ia_nlink = ntoh32 (gf_stat->nlink);
|
||||
iatt->ia_uid = ntoh32 (gf_stat->uid);
|
||||
iatt->ia_gid = ntoh32 (gf_stat->gid);
|
||||
iatt->ia_rdev = ntoh64 (gf_stat->rdev);
|
||||
iatt->ia_size = ntoh64 (gf_stat->size);
|
||||
iatt->ia_blksize = ntoh32 (gf_stat->blksize);
|
||||
iatt->ia_blocks = ntoh64 (gf_stat->blocks);
|
||||
iatt->ia_atime = ntoh32 (gf_stat->atime);
|
||||
iatt->ia_atime_nsec = ntoh32 (gf_stat->atime_nsec);
|
||||
iatt->ia_mtime = ntoh32 (gf_stat->mtime);
|
||||
iatt->ia_mtime_nsec = ntoh32 (gf_stat->mtime_nsec);
|
||||
iatt->ia_ctime = ntoh32 (gf_stat->ctime);
|
||||
iatt->ia_ctime_nsec = ntoh32 (gf_stat->ctime_nsec);
|
||||
|
||||
iatt->ia_gen = ntoh64 (gf_stat->dev);
|
||||
}
|
||||
|
||||
|
||||
static inline void
|
||||
gf_stat_from_iatt (struct gf_stat *gf_stat, struct iatt *iatt)
|
||||
{
|
||||
gf_stat->ino = hton64 (iatt->ia_ino);
|
||||
gf_stat->dev = hton64 (iatt->ia_dev);
|
||||
gf_stat->mode = hton32 (st_mode_from_ia (iatt->ia_prot,
|
||||
iatt->ia_type));
|
||||
gf_stat->nlink = hton32 (iatt->ia_nlink);
|
||||
gf_stat->uid = hton32 (iatt->ia_uid);
|
||||
gf_stat->gid = hton32 (iatt->ia_gid);
|
||||
gf_stat->rdev = hton32 (iatt->ia_rdev);
|
||||
gf_stat->size = hton64 (iatt->ia_size);
|
||||
gf_stat->blksize = hton32 (iatt->ia_blksize);
|
||||
gf_stat->blocks = hton64 (iatt->ia_blocks);
|
||||
gf_stat->atime = hton32 (iatt->ia_atime);
|
||||
gf_stat->atime_nsec = hton32 (iatt->ia_atime_nsec);
|
||||
gf_stat->mtime = hton32 (iatt->ia_mtime);
|
||||
gf_stat->mtime_nsec = hton32 (iatt->ia_mtime_nsec);
|
||||
gf_stat->ctime = hton32 (iatt->ia_ctime);
|
||||
gf_stat->ctime_nsec = hton32 (iatt->ia_ctime_nsec);
|
||||
|
||||
gf_stat->dev = hton64 (iatt->ia_gen);
|
||||
|
||||
}
|
||||
|
||||
|
||||
struct gf_statfs {
|
||||
uint64_t bsize;
|
||||
uint64_t frsize;
|
||||
|
@ -43,7 +43,7 @@ sys_stat (const char *path, struct stat *buf)
|
||||
}
|
||||
|
||||
|
||||
int
|
||||
int
|
||||
sys_fstat (int fd, struct stat *buf)
|
||||
{
|
||||
return fstat (fd, buf);
|
||||
|
@ -26,7 +26,7 @@ sys_lstat (const char *path, struct stat *buf);
|
||||
int
|
||||
sys_stat (const char *path, struct stat *buf);
|
||||
|
||||
int
|
||||
int
|
||||
sys_fstat (int fd, struct stat *buf);
|
||||
|
||||
DIR *
|
||||
@ -35,31 +35,31 @@ sys_opendir (const char *name);
|
||||
struct dirent *
|
||||
sys_readdir (DIR *dir);
|
||||
|
||||
ssize_t
|
||||
ssize_t
|
||||
sys_readlink (const char *path, char *buf, size_t bufsiz);
|
||||
|
||||
int
|
||||
int
|
||||
sys_closedir (DIR *dir);
|
||||
|
||||
int
|
||||
sys_mknod (const char *pathname, mode_t mode, dev_t dev);
|
||||
|
||||
int
|
||||
int
|
||||
sys_mkdir (const char *pathname, mode_t mode);
|
||||
|
||||
int
|
||||
int
|
||||
sys_unlink (const char *pathname);
|
||||
|
||||
int
|
||||
int
|
||||
sys_rmdir (const char *pathname);
|
||||
|
||||
int
|
||||
int
|
||||
sys_symlink (const char *oldpath, const char *newpath);
|
||||
|
||||
int
|
||||
sys_rename (const char *oldpath, const char *newpath);
|
||||
|
||||
int
|
||||
int
|
||||
sys_link (const char *oldpath, const char *newpath);
|
||||
|
||||
int
|
||||
@ -68,7 +68,7 @@ sys_chmod (const char *path, mode_t mode);
|
||||
int
|
||||
sys_fchmod (int fd, mode_t mode);
|
||||
|
||||
int
|
||||
int
|
||||
sys_chown (const char *path, uid_t owner, gid_t group);
|
||||
|
||||
int
|
||||
@ -77,13 +77,13 @@ sys_fchown (int fd, uid_t owner, gid_t group);
|
||||
int
|
||||
sys_lchown (const char *path, uid_t owner, gid_t group);
|
||||
|
||||
int
|
||||
int
|
||||
sys_truncate (const char *path, off_t length);
|
||||
|
||||
int
|
||||
int
|
||||
sys_ftruncate (int fd, off_t length);
|
||||
|
||||
int
|
||||
int
|
||||
sys_utimes (const char *filename, const struct timeval times[2]);
|
||||
|
||||
int
|
||||
@ -98,7 +98,7 @@ sys_writev (int fd, const struct iovec *iov, int iovcnt);
|
||||
ssize_t
|
||||
sys_read (int fd, void *buf, size_t count);
|
||||
|
||||
ssize_t
|
||||
ssize_t
|
||||
sys_write (int fd, const void *buf, size_t count);
|
||||
|
||||
off_t
|
||||
@ -107,42 +107,42 @@ sys_lseek (int fd, off_t offset, int whence);
|
||||
int
|
||||
sys_statvfs (const char *path, struct statvfs *buf);
|
||||
|
||||
int
|
||||
int
|
||||
sys_close (int fd);
|
||||
|
||||
int
|
||||
int
|
||||
sys_fsync (int fd);
|
||||
|
||||
int
|
||||
int
|
||||
sys_fdatasync (int fd);
|
||||
|
||||
int
|
||||
sys_lsetxattr (const char *path, const char *name, const void *value,
|
||||
size_t size, int flags);
|
||||
|
||||
ssize_t
|
||||
sys_llistxattr (const char *path, char *list, size_t size);
|
||||
|
||||
ssize_t
|
||||
sys_lgetxattr (const char *path, const char *name, void *value, size_t size);
|
||||
|
||||
ssize_t
|
||||
sys_fgetxattr (int filedes, const char *name, void *value, size_t size);
|
||||
|
||||
int
|
||||
sys_fsetxattr (int filedes, const char *name, const void *value,
|
||||
int
|
||||
sys_lsetxattr (const char *path, const char *name, const void *value,
|
||||
size_t size, int flags);
|
||||
|
||||
ssize_t
|
||||
sys_flistxattr (int filedes, char *list, size_t size);
|
||||
ssize_t
|
||||
sys_llistxattr (const char *path, char *list, size_t size);
|
||||
|
||||
int
|
||||
ssize_t
|
||||
sys_lgetxattr (const char *path, const char *name, void *value, size_t size);
|
||||
|
||||
ssize_t
|
||||
sys_fgetxattr (int filedes, const char *name, void *value, size_t size);
|
||||
|
||||
int
|
||||
sys_fsetxattr (int filedes, const char *name, const void *value,
|
||||
size_t size, int flags);
|
||||
|
||||
ssize_t
|
||||
sys_flistxattr (int filedes, char *list, size_t size);
|
||||
|
||||
int
|
||||
sys_lremovexattr (const char *path, const char *name);
|
||||
|
||||
int
|
||||
int
|
||||
sys_access (const char *pathname, int mode);
|
||||
|
||||
int
|
||||
int
|
||||
sys_ftruncate (int fd, off_t length);
|
||||
|
||||
#endif /* __SYSCALL_H__ */
|
||||
|
@ -73,6 +73,7 @@ typedef int32_t (*event_notify_fn_t) (xlator_t *this, int32_t event, void *data,
|
||||
#include "inode.h"
|
||||
#include "fd.h"
|
||||
#include "globals.h"
|
||||
#include "iatt.h"
|
||||
|
||||
|
||||
struct _loc {
|
||||
@ -175,39 +176,39 @@ typedef int32_t (*fop_lookup_cbk_t) (call_frame_t *frame,
|
||||
int32_t op_ret,
|
||||
int32_t op_errno,
|
||||
inode_t *inode,
|
||||
struct stat *buf,
|
||||
struct iatt *buf,
|
||||
dict_t *xattr,
|
||||
struct stat *postparent);
|
||||
struct iatt *postparent);
|
||||
|
||||
typedef int32_t (*fop_stat_cbk_t) (call_frame_t *frame,
|
||||
void *cookie,
|
||||
xlator_t *this,
|
||||
int32_t op_ret,
|
||||
int32_t op_errno,
|
||||
struct stat *buf);
|
||||
struct iatt *buf);
|
||||
|
||||
typedef int32_t (*fop_fstat_cbk_t) (call_frame_t *frame,
|
||||
void *cookie,
|
||||
xlator_t *this,
|
||||
int32_t op_ret,
|
||||
int32_t op_errno,
|
||||
struct stat *buf);
|
||||
struct iatt *buf);
|
||||
|
||||
typedef int32_t (*fop_truncate_cbk_t) (call_frame_t *frame,
|
||||
void *cookie,
|
||||
xlator_t *this,
|
||||
int32_t op_ret,
|
||||
int32_t op_errno,
|
||||
struct stat *prebuf,
|
||||
struct stat *postbuf);
|
||||
struct iatt *prebuf,
|
||||
struct iatt *postbuf);
|
||||
|
||||
typedef int32_t (*fop_ftruncate_cbk_t) (call_frame_t *frame,
|
||||
void *cookie,
|
||||
xlator_t *this,
|
||||
int32_t op_ret,
|
||||
int32_t op_errno,
|
||||
struct stat *prebuf,
|
||||
struct stat *postbuf);
|
||||
struct iatt *prebuf,
|
||||
struct iatt *postbuf);
|
||||
|
||||
typedef int32_t (*fop_access_cbk_t) (call_frame_t *frame,
|
||||
void *cookie,
|
||||
@ -221,7 +222,7 @@ typedef int32_t (*fop_readlink_cbk_t) (call_frame_t *frame,
|
||||
int32_t op_ret,
|
||||
int32_t op_errno,
|
||||
const char *path,
|
||||
struct stat *buf);
|
||||
struct iatt *buf);
|
||||
|
||||
typedef int32_t (*fop_mknod_cbk_t) (call_frame_t *frame,
|
||||
void *cookie,
|
||||
@ -229,9 +230,9 @@ typedef int32_t (*fop_mknod_cbk_t) (call_frame_t *frame,
|
||||
int32_t op_ret,
|
||||
int32_t op_errno,
|
||||
inode_t *inode,
|
||||
struct stat *buf,
|
||||
struct stat *preparent,
|
||||
struct stat *postparent);
|
||||
struct iatt *buf,
|
||||
struct iatt *preparent,
|
||||
struct iatt *postparent);
|
||||
|
||||
typedef int32_t (*fop_mkdir_cbk_t) (call_frame_t *frame,
|
||||
void *cookie,
|
||||
@ -239,25 +240,25 @@ typedef int32_t (*fop_mkdir_cbk_t) (call_frame_t *frame,
|
||||
int32_t op_ret,
|
||||
int32_t op_errno,
|
||||
inode_t *inode,
|
||||
struct stat *buf,
|
||||
struct stat *preparent,
|
||||
struct stat *postparent);
|
||||
struct iatt *buf,
|
||||
struct iatt *preparent,
|
||||
struct iatt *postparent);
|
||||
|
||||
typedef int32_t (*fop_unlink_cbk_t) (call_frame_t *frame,
|
||||
void *cookie,
|
||||
xlator_t *this,
|
||||
int32_t op_ret,
|
||||
int32_t op_errno,
|
||||
struct stat *preparent,
|
||||
struct stat *postparent);
|
||||
struct iatt *preparent,
|
||||
struct iatt *postparent);
|
||||
|
||||
typedef int32_t (*fop_rmdir_cbk_t) (call_frame_t *frame,
|
||||
void *cookie,
|
||||
xlator_t *this,
|
||||
int32_t op_ret,
|
||||
int32_t op_errno,
|
||||
struct stat *preparent,
|
||||
struct stat *postparent);
|
||||
struct iatt *preparent,
|
||||
struct iatt *postparent);
|
||||
|
||||
typedef int32_t (*fop_symlink_cbk_t) (call_frame_t *frame,
|
||||
void *cookie,
|
||||
@ -265,20 +266,20 @@ typedef int32_t (*fop_symlink_cbk_t) (call_frame_t *frame,
|
||||
int32_t op_ret,
|
||||
int32_t op_errno,
|
||||
inode_t *inode,
|
||||
struct stat *buf,
|
||||
struct stat *preparent,
|
||||
struct stat *postparent);
|
||||
struct iatt *buf,
|
||||
struct iatt *preparent,
|
||||
struct iatt *postparent);
|
||||
|
||||
typedef int32_t (*fop_rename_cbk_t) (call_frame_t *frame,
|
||||
void *cookie,
|
||||
xlator_t *this,
|
||||
int32_t op_ret,
|
||||
int32_t op_errno,
|
||||
struct stat *buf,
|
||||
struct stat *preoldparent,
|
||||
struct stat *postoldparent,
|
||||
struct stat *prenewparent,
|
||||
struct stat *postnewparent);
|
||||
struct iatt *buf,
|
||||
struct iatt *preoldparent,
|
||||
struct iatt *postoldparent,
|
||||
struct iatt *prenewparent,
|
||||
struct iatt *postnewparent);
|
||||
|
||||
typedef int32_t (*fop_link_cbk_t) (call_frame_t *frame,
|
||||
void *cookie,
|
||||
@ -286,9 +287,9 @@ typedef int32_t (*fop_link_cbk_t) (call_frame_t *frame,
|
||||
int32_t op_ret,
|
||||
int32_t op_errno,
|
||||
inode_t *inode,
|
||||
struct stat *buf,
|
||||
struct stat *preparent,
|
||||
struct stat *postparent);
|
||||
struct iatt *buf,
|
||||
struct iatt *preparent,
|
||||
struct iatt *postparent);
|
||||
|
||||
typedef int32_t (*fop_create_cbk_t) (call_frame_t *frame,
|
||||
void *cookie,
|
||||
@ -297,9 +298,9 @@ typedef int32_t (*fop_create_cbk_t) (call_frame_t *frame,
|
||||
int32_t op_errno,
|
||||
fd_t *fd,
|
||||
inode_t *inode,
|
||||
struct stat *buf,
|
||||
struct stat *preparent,
|
||||
struct stat *postparent);
|
||||
struct iatt *buf,
|
||||
struct iatt *preparent,
|
||||
struct iatt *postparent);
|
||||
|
||||
typedef int32_t (*fop_open_cbk_t) (call_frame_t *frame,
|
||||
void *cookie,
|
||||
@ -315,7 +316,7 @@ typedef int32_t (*fop_readv_cbk_t) (call_frame_t *frame,
|
||||
int32_t op_errno,
|
||||
struct iovec *vector,
|
||||
int32_t count,
|
||||
struct stat *stbuf,
|
||||
struct iatt *stbuf,
|
||||
struct iobref *iobref);
|
||||
|
||||
typedef int32_t (*fop_writev_cbk_t) (call_frame_t *frame,
|
||||
@ -323,8 +324,8 @@ typedef int32_t (*fop_writev_cbk_t) (call_frame_t *frame,
|
||||
xlator_t *this,
|
||||
int32_t op_ret,
|
||||
int32_t op_errno,
|
||||
struct stat *prebuf,
|
||||
struct stat *postbuf);
|
||||
struct iatt *prebuf,
|
||||
struct iatt *postbuf);
|
||||
|
||||
typedef int32_t (*fop_flush_cbk_t) (call_frame_t *frame,
|
||||
void *cookie,
|
||||
@ -337,8 +338,8 @@ typedef int32_t (*fop_fsync_cbk_t) (call_frame_t *frame,
|
||||
xlator_t *this,
|
||||
int32_t op_ret,
|
||||
int32_t op_errno,
|
||||
struct stat *prebuf,
|
||||
struct stat *postbuf);
|
||||
struct iatt *prebuf,
|
||||
struct iatt *postbuf);
|
||||
|
||||
typedef int32_t (*fop_opendir_cbk_t) (call_frame_t *frame,
|
||||
void *cookie,
|
||||
@ -482,16 +483,16 @@ typedef int32_t (*fop_setattr_cbk_t) (call_frame_t *frame,
|
||||
xlator_t *this,
|
||||
int32_t op_ret,
|
||||
int32_t op_errno,
|
||||
struct stat *preop_stbuf,
|
||||
struct stat *postop_stbuf);
|
||||
struct iatt *preop_stbuf,
|
||||
struct iatt *postop_stbuf);
|
||||
|
||||
typedef int32_t (*fop_fsetattr_cbk_t) (call_frame_t *frame,
|
||||
void *cookie,
|
||||
xlator_t *this,
|
||||
int32_t op_ret,
|
||||
int32_t op_errno,
|
||||
struct stat *preop_stbuf,
|
||||
struct stat *postop_stbuf);
|
||||
struct iatt *preop_stbuf,
|
||||
struct iatt *postop_stbuf);
|
||||
|
||||
typedef int32_t (*fop_lookup_t) (call_frame_t *frame,
|
||||
xlator_t *this,
|
||||
@ -728,13 +729,13 @@ typedef int32_t (*fop_lock_fnotify_t) (call_frame_t *frame,
|
||||
typedef int32_t (*fop_setattr_t) (call_frame_t *frame,
|
||||
xlator_t *this,
|
||||
loc_t *loc,
|
||||
struct stat *stbuf,
|
||||
struct iatt *stbuf,
|
||||
int32_t valid);
|
||||
|
||||
typedef int32_t (*fop_fsetattr_t) (call_frame_t *frame,
|
||||
xlator_t *this,
|
||||
fd_t *fd,
|
||||
struct stat *stbuf,
|
||||
struct iatt *stbuf,
|
||||
int32_t valid);
|
||||
|
||||
|
||||
|
@ -89,7 +89,7 @@ typedef struct {
|
||||
pthread_mutex_t lock;
|
||||
uint32_t previous_lookup_time;
|
||||
uint32_t previous_stat_time;
|
||||
struct stat stbuf;
|
||||
struct iatt stbuf;
|
||||
} libglusterfs_client_inode_ctx_t;
|
||||
|
||||
/* Our dirent cache is very simplistic when it comes to directory
|
||||
@ -265,7 +265,7 @@ libgf_client_path_lookup (loc_t *loc,
|
||||
int32_t
|
||||
libgf_client_lookup (libglusterfs_client_ctx_t *ctx,
|
||||
loc_t *loc,
|
||||
struct stat *stbuf,
|
||||
struct iatt *stbuf,
|
||||
dict_t **dict,
|
||||
dict_t *xattr_req);
|
||||
|
||||
@ -290,9 +290,9 @@ struct vmp_entry {
|
||||
#define LIBGF_INVALIDATE_STAT 0x2
|
||||
int
|
||||
libgf_is_iattr_cache_valid (libglusterfs_client_ctx_t *ctx, inode_t *inode,
|
||||
struct stat *sbuf, int flags);
|
||||
struct iatt *sbuf, int flags);
|
||||
|
||||
int
|
||||
libgf_update_iattr_cache (inode_t *inode, int flags, struct stat *buf);
|
||||
libgf_update_iattr_cache (inode_t *inode, int flags, struct iatt *buf);
|
||||
|
||||
#endif
|
||||
|
@ -212,7 +212,7 @@ libgf_alloc_fd_ctx (libglusterfs_client_ctx_t *ctx, fd_t *fd, char *vpath)
|
||||
ctxaddr = (uint64_t) (long)fdctx;
|
||||
|
||||
if (fd->inode) {
|
||||
if (S_ISDIR (fd->inode->st_mode)) {
|
||||
if (IA_ISDIR (fd->inode->ia_type)) {
|
||||
fdctx->dcache = CALLOC (1, sizeof (struct direntcache));
|
||||
if (fdctx->dcache)
|
||||
INIT_LIST_HEAD (&fdctx->dcache->entries.list);
|
||||
@ -423,7 +423,7 @@ libgf_client_release (xlator_t *this,
|
||||
{
|
||||
libglusterfs_client_fd_ctx_t *fd_ctx = NULL;
|
||||
fd_ctx = libgf_get_fd_ctx (fd);
|
||||
if (S_ISDIR (fd->inode->st_mode)) {
|
||||
if (IA_ISDIR (fd->inode->ia_type)) {
|
||||
libgf_dcache_invalidate (fd);
|
||||
FREE (fd_ctx->dcache);
|
||||
}
|
||||
@ -497,24 +497,24 @@ out:
|
||||
|
||||
int
|
||||
libgf_transform_iattr (libglusterfs_client_ctx_t *libctx, inode_t *inode,
|
||||
struct stat *buf)
|
||||
struct iatt *buf)
|
||||
{
|
||||
|
||||
if ((!libctx) || (!buf) || (!inode))
|
||||
return -1;
|
||||
|
||||
buf->st_dev = libctx->fake_fsid;
|
||||
buf->ia_dev = libctx->fake_fsid;
|
||||
/* If the inode is root, the inode number must be 1 not the
|
||||
* ino received from the file system.
|
||||
*/
|
||||
if ((inode->ino == 1) && (buf))
|
||||
buf->st_ino = 1;
|
||||
buf->ia_ino = 1;
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
int
|
||||
libgf_update_iattr_cache (inode_t *inode, int flags, struct stat *buf)
|
||||
libgf_update_iattr_cache (inode_t *inode, int flags, struct iatt *buf)
|
||||
{
|
||||
libglusterfs_client_inode_ctx_t *inode_ctx = NULL;
|
||||
time_t current = 0;
|
||||
@ -601,7 +601,7 @@ libgf_invalidate_iattr_cache (inode_t *inode, int flags)
|
||||
|
||||
int
|
||||
libgf_is_iattr_cache_valid (libglusterfs_client_ctx_t *ctx, inode_t *inode,
|
||||
struct stat *sbuf, int flags)
|
||||
struct iatt *sbuf, int flags)
|
||||
{
|
||||
time_t current = 0;
|
||||
time_t prev = 0;
|
||||
@ -683,7 +683,7 @@ libgf_client_releasedir (xlator_t *this,
|
||||
{
|
||||
libglusterfs_client_fd_ctx_t *fd_ctx = NULL;
|
||||
fd_ctx = libgf_get_fd_ctx (fd);
|
||||
if (S_ISDIR (fd->inode->st_mode)) {
|
||||
if (IA_ISDIR (fd->inode->ia_type)) {
|
||||
libgf_dcache_invalidate (fd);
|
||||
FREE (fd_ctx->dcache);
|
||||
}
|
||||
@ -2079,9 +2079,9 @@ libgf_client_lookup_cbk (call_frame_t *frame,
|
||||
int32_t op_ret,
|
||||
int32_t op_errno,
|
||||
inode_t *inode,
|
||||
struct stat *buf,
|
||||
struct iatt *buf,
|
||||
dict_t *dict,
|
||||
struct stat *postparent)
|
||||
struct iatt *postparent)
|
||||
{
|
||||
libgf_client_local_t *local = frame->local;
|
||||
libglusterfs_client_ctx_t *ctx = frame->root->state;
|
||||
@ -2091,7 +2091,7 @@ libgf_client_lookup_cbk (call_frame_t *frame,
|
||||
inode_t *parent = NULL;
|
||||
|
||||
if (local->fop.lookup.loc->ino == 1) {
|
||||
buf->st_ino = 1;
|
||||
buf->ia_ino = 1;
|
||||
}
|
||||
|
||||
parent = local->fop.lookup.loc->parent;
|
||||
@ -2165,7 +2165,7 @@ out:
|
||||
int32_t
|
||||
libgf_client_lookup (libglusterfs_client_ctx_t *ctx,
|
||||
loc_t *loc,
|
||||
struct stat *stbuf,
|
||||
struct iatt *stbuf,
|
||||
dict_t **dict,
|
||||
dict_t *xattr_req)
|
||||
{
|
||||
@ -2223,7 +2223,7 @@ out:
|
||||
|
||||
int
|
||||
glusterfs_glh_get (glusterfs_handle_t handle, const char *path, void *buf,
|
||||
size_t size, struct stat *stbuf)
|
||||
size_t size, struct stat *stbuf)
|
||||
{
|
||||
int32_t op_ret = -1;
|
||||
loc_t loc = {0, };
|
||||
@ -2231,6 +2231,7 @@ glusterfs_glh_get (glusterfs_handle_t handle, const char *path, void *buf,
|
||||
dict_t *dict = NULL;
|
||||
dict_t *xattr_req = NULL;
|
||||
char *name = NULL, *pathname = NULL;
|
||||
struct iatt iatt = {0,};
|
||||
|
||||
GF_VALIDATE_OR_GOTO (LIBGF_XL_NAME, ctx, out);
|
||||
GF_VALIDATE_ABSOLUTE_PATH_OR_GOTO (LIBGF_XL_NAME, path, out);
|
||||
@ -2285,8 +2286,9 @@ glusterfs_glh_get (glusterfs_handle_t handle, const char *path, void *buf,
|
||||
}
|
||||
}
|
||||
|
||||
op_ret = libgf_client_lookup (ctx, &loc, stbuf, &dict, xattr_req);
|
||||
if (!op_ret && stbuf && (stbuf->st_size <= size) && dict && buf) {
|
||||
op_ret = libgf_client_lookup (ctx, &loc, &iatt, &dict, xattr_req);
|
||||
iatt_to_stat (&iatt, stbuf);
|
||||
if (!op_ret && stbuf && (iatt.ia_size <= size) && dict && buf) {
|
||||
data_t *mem_data = NULL;
|
||||
void *mem = NULL;
|
||||
|
||||
@ -2296,7 +2298,7 @@ glusterfs_glh_get (glusterfs_handle_t handle, const char *path, void *buf,
|
||||
}
|
||||
|
||||
if (mem != NULL) {
|
||||
memcpy (buf, mem, stbuf->st_size);
|
||||
memcpy (buf, mem, iatt.ia_size);
|
||||
}
|
||||
}
|
||||
|
||||
@ -2350,9 +2352,9 @@ libgf_client_lookup_async_cbk (call_frame_t *frame,
|
||||
int32_t op_ret,
|
||||
int32_t op_errno,
|
||||
inode_t *inode,
|
||||
struct stat *stbuf,
|
||||
struct iatt *stbuf,
|
||||
dict_t *dict,
|
||||
struct stat *postparent)
|
||||
struct iatt *postparent)
|
||||
{
|
||||
libglusterfs_client_async_local_t *local = frame->local;
|
||||
glusterfs_get_cbk_t lookup_cbk = local->fop.lookup_cbk.cbk;
|
||||
@ -2360,6 +2362,7 @@ libgf_client_lookup_async_cbk (call_frame_t *frame,
|
||||
glusterfs_iobuf_t *iobuf = NULL;
|
||||
dict_t *xattr_req = NULL;
|
||||
inode_t *parent = NULL;
|
||||
struct stat stat = {0,};
|
||||
|
||||
if (op_ret == 0) {
|
||||
parent = local->fop.lookup_cbk.loc->parent;
|
||||
@ -2434,22 +2437,23 @@ out:
|
||||
mem = data_to_ptr (mem_data);
|
||||
}
|
||||
|
||||
if (mem && stbuf->st_size <= local->fop.lookup_cbk.size) {
|
||||
if (mem && stbuf->ia_size <= local->fop.lookup_cbk.size) {
|
||||
iobuf = CALLOC (1, sizeof (*iobuf));
|
||||
ERR_ABORT (iobuf);
|
||||
|
||||
vector = CALLOC (1, sizeof (*vector));
|
||||
ERR_ABORT (vector);
|
||||
vector->iov_base = mem;
|
||||
vector->iov_len = stbuf->st_size;
|
||||
vector->iov_len = stbuf->ia_size;
|
||||
|
||||
iobuf->vector = vector;
|
||||
iobuf->count = 1;
|
||||
iobuf->dictref = dict_ref (dict);
|
||||
}
|
||||
}
|
||||
|
||||
lookup_cbk (op_ret, op_errno, iobuf, stbuf, local->cbk_data);
|
||||
|
||||
iatt_to_stat (stbuf, &stat);
|
||||
lookup_cbk (op_ret, op_errno, iobuf, &stat, local->cbk_data);
|
||||
|
||||
libgf_client_loc_wipe (local->fop.lookup_cbk.loc);
|
||||
free (local->fop.lookup_cbk.loc);
|
||||
@ -2685,7 +2689,7 @@ __glusterfs_glh_getxattr (glusterfs_handle_t handle, const char *path,
|
||||
if (whichop == LIBGF_DO_LGETXATTR)
|
||||
goto do_getx;
|
||||
|
||||
if (!S_ISLNK (loc.inode->st_mode))
|
||||
if (!IA_ISLNK (loc.inode->ia_type))
|
||||
goto do_getx;
|
||||
|
||||
libgf_client_loc_wipe (&loc);
|
||||
@ -2842,9 +2846,9 @@ libgf_client_create_cbk (call_frame_t *frame,
|
||||
int32_t op_errno,
|
||||
fd_t *fd,
|
||||
inode_t *inode,
|
||||
struct stat *buf,
|
||||
struct stat *preparent,
|
||||
struct stat *postparent)
|
||||
struct iatt *buf,
|
||||
struct iatt *preparent,
|
||||
struct iatt *postparent)
|
||||
{
|
||||
libgf_client_local_t *local = frame->local;
|
||||
|
||||
@ -3018,7 +3022,7 @@ glusterfs_glh_open (glusterfs_handle_t handle, const char *path, int flags,...)
|
||||
* a network message through libgf_client_creat, and
|
||||
* then receiving a EISDIR.
|
||||
*/
|
||||
if (S_ISDIR (loc.inode->st_mode)) {
|
||||
if (IA_ISDIR (loc.inode->ia_type)) {
|
||||
errno = EISDIR;
|
||||
op_ret = -1;
|
||||
goto op_over;
|
||||
@ -3028,7 +3032,7 @@ glusterfs_glh_open (glusterfs_handle_t handle, const char *path, int flags,...)
|
||||
va_end (ap);
|
||||
op_ret = libgf_client_creat (ctx, &loc, fd, flags, mode);
|
||||
} else {
|
||||
if (S_ISDIR (loc.inode->st_mode))
|
||||
if (IA_ISDIR (loc.inode->ia_type))
|
||||
op_ret = libgf_client_opendir (ctx, &loc, fd);
|
||||
else
|
||||
op_ret = libgf_client_open (ctx, &loc, fd, flags);
|
||||
@ -3042,7 +3046,7 @@ op_over:
|
||||
}
|
||||
|
||||
vpath = NULL;
|
||||
if (S_ISDIR (loc.inode->st_mode)) {
|
||||
if (IA_ISDIR (loc.inode->ia_type)) {
|
||||
vpath = (char *)path;
|
||||
}
|
||||
|
||||
@ -3059,9 +3063,9 @@ op_over:
|
||||
if ((flags & O_TRUNC) && (((flags & O_ACCMODE) == O_RDWR)
|
||||
|| ((flags & O_ACCMODE) == O_WRONLY))) {
|
||||
inode_ctx = libgf_get_inode_ctx (fd->inode);
|
||||
if (S_ISREG (inode_ctx->stbuf.st_mode)) {
|
||||
inode_ctx->stbuf.st_size = 0;
|
||||
inode_ctx->stbuf.st_blocks = 0;
|
||||
if (IA_ISREG (inode_ctx->stbuf.ia_type)) {
|
||||
inode_ctx->stbuf.ia_size = 0;
|
||||
inode_ctx->stbuf.ia_blocks = 0;
|
||||
}
|
||||
}
|
||||
|
||||
@ -3306,7 +3310,7 @@ __glusterfs_glh_setxattr (glusterfs_handle_t handle, const char *path,
|
||||
if (whichop == LIBGF_DO_LSETXATTR)
|
||||
goto do_setx;
|
||||
|
||||
if (!S_ISLNK (loc.inode->st_mode))
|
||||
if (!IA_ISLNK (loc.inode->ia_type))
|
||||
goto do_setx;
|
||||
|
||||
libgf_client_loc_wipe (&loc);
|
||||
@ -3647,7 +3651,7 @@ libgf_client_readv_cbk (call_frame_t *frame,
|
||||
int32_t op_errno,
|
||||
struct iovec *vector,
|
||||
int32_t count,
|
||||
struct stat *stbuf,
|
||||
struct iatt *stbuf,
|
||||
struct iobref *iobref)
|
||||
{
|
||||
libgf_client_local_t *local = frame->local;
|
||||
@ -3667,7 +3671,7 @@ libgf_client_iobuf_read (libglusterfs_client_ctx_t *ctx, fd_t *fd, void *buf,
|
||||
int32_t op_ret = -1;
|
||||
int count = 0;
|
||||
libgf_client_local_t *local = NULL;
|
||||
struct stat *stbuf = NULL;
|
||||
struct iatt *stbuf = NULL;
|
||||
|
||||
local = CALLOC (1, sizeof (*local));
|
||||
ERR_ABORT (local);
|
||||
@ -3797,7 +3801,7 @@ libgf_client_iobuf_readv (libglusterfs_client_ctx_t *ctx, fd_t *fd,
|
||||
int src_count = 0, dst_count = 0;
|
||||
int len = 0, src_len = 0, dst_len = 0;
|
||||
off_t src_offset = 0, dst_offset = 0;
|
||||
struct stat *stbuf = NULL;
|
||||
struct iatt *stbuf = NULL;
|
||||
|
||||
dst = *idx;
|
||||
dst_offset = *vec_offset;
|
||||
@ -3983,8 +3987,8 @@ libgf_client_writev_cbk (call_frame_t *frame,
|
||||
xlator_t *this,
|
||||
int32_t op_ret,
|
||||
int32_t op_errno,
|
||||
struct stat *prebuf,
|
||||
struct stat *postbuf)
|
||||
struct iatt *prebuf,
|
||||
struct iatt *postbuf)
|
||||
{
|
||||
libgf_client_local_t *local = frame->local;
|
||||
|
||||
@ -4460,7 +4464,7 @@ libglusterfs_readv_async_cbk (call_frame_t *frame,
|
||||
int32_t op_errno,
|
||||
struct iovec *vector,
|
||||
int32_t count,
|
||||
struct stat *stbuf,
|
||||
struct iatt *stbuf,
|
||||
struct iobref *iobref)
|
||||
{
|
||||
glusterfs_iobuf_t *buf;
|
||||
@ -4582,8 +4586,8 @@ libglusterfs_writev_async_cbk (call_frame_t *frame,
|
||||
xlator_t *this,
|
||||
int32_t op_ret,
|
||||
int32_t op_errno,
|
||||
struct stat *prebuf,
|
||||
struct stat *postbuf)
|
||||
struct iatt *prebuf,
|
||||
struct iatt *postbuf)
|
||||
{
|
||||
libglusterfs_client_async_local_t *local = frame->local;
|
||||
fd_t *fd = NULL;
|
||||
@ -4717,13 +4721,13 @@ glusterfs_lseek (glusterfs_file_t fd, off_t offset, int whence)
|
||||
char cache_valid = 0;
|
||||
off_t end = 0;
|
||||
loc_t loc = {0, };
|
||||
struct stat stbuf = {0, };
|
||||
struct iatt stbuf = {0, };
|
||||
|
||||
cache_valid = libgf_is_iattr_cache_valid (ctx, __fd->inode,
|
||||
&stbuf,
|
||||
LIBGF_VALIDATE_STAT);
|
||||
if (cache_valid) {
|
||||
end = stbuf.st_size;
|
||||
end = stbuf.ia_size;
|
||||
} else {
|
||||
op_ret = libgf_client_loc_fill (&loc, ctx,
|
||||
__fd->inode->ino, 0,
|
||||
@ -4746,7 +4750,7 @@ glusterfs_lseek (glusterfs_file_t fd, off_t offset, int whence)
|
||||
goto out;
|
||||
}
|
||||
|
||||
end = stbuf.st_size;
|
||||
end = stbuf.ia_size;
|
||||
}
|
||||
|
||||
__offset = end + offset;
|
||||
@ -4780,7 +4784,7 @@ libgf_client_stat_cbk (call_frame_t *frame,
|
||||
xlator_t *this,
|
||||
int32_t op_ret,
|
||||
int32_t op_errno,
|
||||
struct stat *buf)
|
||||
struct iatt *buf)
|
||||
{
|
||||
libgf_client_local_t *local = frame->local;
|
||||
|
||||
@ -4797,12 +4801,12 @@ libgf_client_stat_cbk (call_frame_t *frame,
|
||||
int32_t
|
||||
libgf_client_stat (libglusterfs_client_ctx_t *ctx,
|
||||
loc_t *loc,
|
||||
struct stat *stbuf)
|
||||
struct iatt *stbuf)
|
||||
{
|
||||
call_stub_t *stub = NULL;
|
||||
int32_t op_ret = 0;
|
||||
libgf_client_local_t *local = NULL;
|
||||
struct stat cachedbuf = {0, };
|
||||
struct iatt cachedbuf = {0, };
|
||||
|
||||
if (libgf_is_iattr_cache_valid (ctx, loc->inode, &cachedbuf,
|
||||
LIBGF_VALIDATE_STAT)) {
|
||||
@ -4876,7 +4880,7 @@ out:
|
||||
|
||||
int
|
||||
__glusterfs_stat (glusterfs_handle_t handle, const char *path,
|
||||
struct stat *buf, int whichstat)
|
||||
struct stat *buf, int whichstat)
|
||||
{
|
||||
int32_t op_ret = -1;
|
||||
loc_t loc = {0, };
|
||||
@ -4926,7 +4930,7 @@ __glusterfs_stat (glusterfs_handle_t handle, const char *path,
|
||||
if (whichstat & LIBGF_DO_LSTAT)
|
||||
goto lstat_fop;
|
||||
|
||||
if (!S_ISLNK (loc.inode->st_mode))
|
||||
if (!IA_ISLNK (loc.inode->ia_type))
|
||||
goto lstat_fop;
|
||||
|
||||
op_ret = libgf_realpath_loc_fill (ctx, (char *)loc.path, &targetloc);
|
||||
@ -4937,7 +4941,9 @@ __glusterfs_stat (glusterfs_handle_t handle, const char *path,
|
||||
lstat_fop:
|
||||
|
||||
if (!op_ret) {
|
||||
op_ret = libgf_client_stat (ctx, real_loc, buf);
|
||||
struct iatt iatt;
|
||||
op_ret = libgf_client_stat (ctx, real_loc, &iatt);
|
||||
iatt_to_stat (&iatt, buf);
|
||||
}
|
||||
|
||||
out:
|
||||
@ -4953,7 +4959,7 @@ out:
|
||||
|
||||
int
|
||||
glusterfs_glh_stat (glusterfs_handle_t handle, const char *path,
|
||||
struct stat *buf)
|
||||
struct stat *buf)
|
||||
{
|
||||
return __glusterfs_stat (handle, path, buf, LIBGF_DO_STAT);
|
||||
}
|
||||
@ -5017,7 +5023,7 @@ libgf_client_fstat_cbk (call_frame_t *frame,
|
||||
xlator_t *this,
|
||||
int32_t op_ret,
|
||||
int32_t op_errno,
|
||||
struct stat *buf)
|
||||
struct iatt *buf)
|
||||
{
|
||||
libgf_client_local_t *local = frame->local;
|
||||
|
||||
@ -5040,7 +5046,7 @@ libgf_client_fstat (libglusterfs_client_ctx_t *ctx,
|
||||
call_stub_t *stub = NULL;
|
||||
int32_t op_ret = 0;
|
||||
libgf_client_local_t *local = NULL;
|
||||
struct stat cachedbuf = {0, };
|
||||
struct iatt cachedbuf = {0, };
|
||||
|
||||
if (libgf_is_iattr_cache_valid (ctx, fd->inode, &cachedbuf,
|
||||
LIBGF_VALIDATE_STAT)) {
|
||||
@ -5061,7 +5067,7 @@ libgf_client_fstat (libglusterfs_client_ctx_t *ctx,
|
||||
libgf_transform_iattr (ctx, fd->inode,
|
||||
&stub->args.fstat_cbk.buf);
|
||||
if (buf)
|
||||
*buf = stub->args.fstat_cbk.buf;
|
||||
iatt_to_stat (&stub->args.fstat_cbk.buf, buf);
|
||||
libgf_update_iattr_cache (fd->inode, LIBGF_UPDATE_STAT,
|
||||
&stub->args.fstat_cbk.buf);
|
||||
}
|
||||
@ -5103,9 +5109,9 @@ libgf_client_mkdir_cbk (call_frame_t *frame,
|
||||
int32_t op_ret,
|
||||
int32_t op_errno,
|
||||
inode_t *inode,
|
||||
struct stat *buf,
|
||||
struct stat *preparent,
|
||||
struct stat *postparent)
|
||||
struct iatt *buf,
|
||||
struct iatt *preparent,
|
||||
struct iatt *postparent)
|
||||
{
|
||||
libgf_client_local_t *local = frame->local;
|
||||
|
||||
@ -5237,8 +5243,8 @@ out:
|
||||
|
||||
static int32_t
|
||||
libgf_client_rmdir_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
|
||||
int32_t op_ret, int32_t op_errno,struct stat *preparent,
|
||||
struct stat *postparent)
|
||||
int32_t op_ret, int32_t op_errno,struct iatt *preparent,
|
||||
struct iatt *postparent)
|
||||
{
|
||||
libgf_client_local_t *local = frame->local;
|
||||
|
||||
@ -5351,7 +5357,7 @@ out:
|
||||
int
|
||||
libgf_client_setattr_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
|
||||
int32_t op_ret, int32_t op_errno,
|
||||
struct stat *preop, struct stat *postop)
|
||||
struct iatt *preop, struct iatt *postop)
|
||||
{
|
||||
libgf_client_local_t *local = frame->local;
|
||||
|
||||
@ -5365,7 +5371,7 @@ libgf_client_setattr_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
|
||||
|
||||
int
|
||||
libgf_client_setattr (libglusterfs_client_ctx_t *ctx, loc_t * loc,
|
||||
struct stat *stbuf, int32_t valid)
|
||||
struct iatt *stbuf, int32_t valid)
|
||||
{
|
||||
int op_ret = -1;
|
||||
libgf_client_local_t *local = NULL;
|
||||
@ -5397,13 +5403,13 @@ glusterfs_glh_chmod (glusterfs_handle_t handle, const char *path, mode_t mode)
|
||||
libglusterfs_client_ctx_t *ctx = handle;
|
||||
loc_t loc = {0, };
|
||||
char *name = NULL;
|
||||
struct stat stbuf = {0,};
|
||||
struct iatt stbuf = {0,};
|
||||
int32_t valid = 0;
|
||||
|
||||
GF_VALIDATE_OR_GOTO (LIBGF_XL_NAME, ctx, out);
|
||||
GF_VALIDATE_ABSOLUTE_PATH_OR_GOTO (LIBGF_XL_NAME, path, out);
|
||||
|
||||
stbuf.st_mode = mode;
|
||||
stbuf.ia_prot = ia_prot_from_st_mode (mode);
|
||||
valid |= GF_SET_ATTR_MODE;
|
||||
|
||||
loc.path = strdup (path);
|
||||
@ -5470,15 +5476,15 @@ __glusterfs_chown (glusterfs_handle_t handle, const char *path, uid_t owner,
|
||||
char *name = NULL;
|
||||
loc_t *oploc = NULL;
|
||||
loc_t targetloc = {0, };
|
||||
struct stat stbuf = {0,};
|
||||
struct iatt stbuf = {0,};
|
||||
int32_t valid = 0;
|
||||
|
||||
GF_VALIDATE_OR_GOTO (LIBGF_XL_NAME, ctx, out);
|
||||
GF_VALIDATE_ABSOLUTE_PATH_OR_GOTO (LIBGF_XL_NAME, path, out);
|
||||
|
||||
gf_log (LIBGF_XL_NAME, GF_LOG_DEBUG, "path %s, op %d", path, whichop);
|
||||
stbuf.st_uid = owner;
|
||||
stbuf.st_gid = group;
|
||||
stbuf.ia_uid = owner;
|
||||
stbuf.ia_gid = group;
|
||||
valid |= (GF_SET_ATTR_UID | GF_SET_ATTR_GID);
|
||||
|
||||
loc.path = strdup (path);
|
||||
@ -5503,7 +5509,7 @@ __glusterfs_chown (glusterfs_handle_t handle, const char *path, uid_t owner,
|
||||
if (whichop == LIBGF_DO_LCHOWN)
|
||||
goto do_lchown;
|
||||
|
||||
if (!S_ISLNK (loc.inode->st_mode))
|
||||
if (!IA_ISLNK (loc.inode->ia_type))
|
||||
goto do_lchown;
|
||||
|
||||
op_ret = libgf_realpath_loc_fill (ctx, (char *)loc.path, &targetloc);
|
||||
@ -5612,7 +5618,7 @@ glusterfs_glh_opendir (glusterfs_handle_t handle, const char *path)
|
||||
goto out;
|
||||
}
|
||||
|
||||
if (!S_ISDIR (loc.inode->st_mode) && !S_ISLNK (loc.inode->st_mode)) {
|
||||
if (!IA_ISDIR (loc.inode->ia_type) && !IA_ISLNK (loc.inode->ia_type)) {
|
||||
errno = ENOTDIR;
|
||||
op_ret = -1;
|
||||
goto out;
|
||||
@ -5697,7 +5703,7 @@ out:
|
||||
int
|
||||
libgf_client_fsetattr_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
|
||||
int32_t op_ret, int32_t op_errno,
|
||||
struct stat *preop, struct stat *postop)
|
||||
struct iatt *preop, struct iatt *postop)
|
||||
{
|
||||
libgf_client_local_t *local = frame->local;
|
||||
|
||||
@ -5711,7 +5717,7 @@ libgf_client_fsetattr_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
|
||||
|
||||
int
|
||||
libgf_client_fsetattr (libglusterfs_client_ctx_t *ctx, fd_t *fd,
|
||||
struct stat *stbuf, int32_t valid)
|
||||
struct iatt *stbuf, int32_t valid)
|
||||
{
|
||||
int op_ret = -1;
|
||||
libgf_client_local_t *local = NULL;
|
||||
@ -5740,7 +5746,7 @@ glusterfs_fchmod (glusterfs_file_t fd, mode_t mode)
|
||||
{
|
||||
libglusterfs_client_fd_ctx_t *fdctx = NULL;
|
||||
int op_ret = -1;
|
||||
struct stat stbuf = {0,};
|
||||
struct iatt stbuf = {0,};
|
||||
int32_t valid = 0;
|
||||
|
||||
GF_VALIDATE_OR_GOTO (LIBGF_XL_NAME, fd, out);
|
||||
@ -5752,7 +5758,7 @@ glusterfs_fchmod (glusterfs_file_t fd, mode_t mode)
|
||||
goto out;
|
||||
}
|
||||
|
||||
stbuf.st_mode = mode;
|
||||
stbuf.ia_prot = ia_prot_from_st_mode (mode);
|
||||
valid |= GF_SET_ATTR_MODE;
|
||||
|
||||
op_ret = libgf_client_fsetattr (fdctx->ctx, fd, &stbuf, valid);
|
||||
@ -5766,7 +5772,7 @@ glusterfs_fchown (glusterfs_file_t fd, uid_t uid, gid_t gid)
|
||||
{
|
||||
int op_ret = -1;
|
||||
libglusterfs_client_fd_ctx_t *fdctx = NULL;
|
||||
struct stat stbuf = {0,};
|
||||
struct iatt stbuf = {0,};
|
||||
int32_t valid = 0;
|
||||
|
||||
GF_VALIDATE_OR_GOTO (LIBGF_XL_NAME, fd, out);
|
||||
@ -5777,8 +5783,8 @@ glusterfs_fchown (glusterfs_file_t fd, uid_t uid, gid_t gid)
|
||||
errno = EBADF;
|
||||
goto out;
|
||||
}
|
||||
stbuf.st_uid = uid;
|
||||
stbuf.st_gid = gid;
|
||||
stbuf.ia_uid = uid;
|
||||
stbuf.ia_gid = gid;
|
||||
|
||||
valid |= (GF_SET_ATTR_UID | GF_SET_ATTR_GID);
|
||||
|
||||
@ -5790,8 +5796,8 @@ out:
|
||||
|
||||
int
|
||||
libgf_client_fsync_cbk (call_frame_t *frame, void *cookie, xlator_t *xlator,
|
||||
int32_t op_ret, int32_t op_errno, struct stat *prebuf,
|
||||
struct stat *postbuf)
|
||||
int32_t op_ret, int32_t op_errno, struct iatt *prebuf,
|
||||
struct iatt *postbuf)
|
||||
{
|
||||
libgf_client_local_t *local = frame->local;
|
||||
|
||||
@ -5846,7 +5852,7 @@ out:
|
||||
int
|
||||
libgf_client_ftruncate_cbk (call_frame_t *frame, void *cookie, xlator_t *xlator
|
||||
,int32_t op_ret, int32_t op_errno,
|
||||
struct stat *prebuf, struct stat *postbuf)
|
||||
struct iatt *prebuf, struct iatt *postbuf)
|
||||
{
|
||||
libgf_client_local_t *local = frame->local;
|
||||
|
||||
@ -5895,7 +5901,7 @@ libgf_client_ftruncate (libglusterfs_client_ctx_t *ctx, fd_t *fd,
|
||||
|
||||
pthread_mutex_lock (&fdctx->lock);
|
||||
{
|
||||
fdctx->offset = stub->args.ftruncate_cbk.postbuf.st_size;
|
||||
fdctx->offset = stub->args.ftruncate_cbk.postbuf.ia_size;
|
||||
}
|
||||
pthread_mutex_unlock (&fdctx->lock);
|
||||
|
||||
@ -5928,8 +5934,8 @@ out:
|
||||
int
|
||||
libgf_client_link_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
|
||||
int32_t op_ret, int32_t op_errno,
|
||||
inode_t *inode, struct stat *buf,
|
||||
struct stat *preparent, struct stat *postparent)
|
||||
inode_t *inode, struct iatt *buf,
|
||||
struct iatt *preparent, struct iatt *postparent)
|
||||
{
|
||||
libgf_client_local_t *local = frame->local;
|
||||
|
||||
@ -5949,7 +5955,7 @@ libgf_client_link (libglusterfs_client_ctx_t *ctx, loc_t *old, loc_t *new)
|
||||
libgf_client_local_t *local = NULL;
|
||||
int op_ret = -1;
|
||||
inode_t *inode = NULL;
|
||||
struct stat *sbuf = NULL;
|
||||
struct iatt *sbuf = NULL;
|
||||
|
||||
LIBGF_CLIENT_FOP (ctx, stub, link, local, old, new);
|
||||
|
||||
@ -6011,7 +6017,7 @@ glusterfs_glh_link (glusterfs_handle_t handle, const char *oldpath,
|
||||
goto out;
|
||||
}
|
||||
|
||||
if (S_ISDIR (old.inode->st_mode)) {
|
||||
if (IA_ISDIR (old.inode->ia_type)) {
|
||||
errno = EPERM;
|
||||
op_ret = -1;
|
||||
goto out;
|
||||
@ -6301,9 +6307,9 @@ out:
|
||||
|
||||
int32_t
|
||||
libgf_client_rename_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
|
||||
int32_t op_ret, int32_t op_errno, struct stat *buf,
|
||||
struct stat *preoldparent, struct stat *postoldparent,
|
||||
struct stat *prenewparent, struct stat *postnewparent)
|
||||
int32_t op_ret, int32_t op_errno, struct iatt *buf,
|
||||
struct iatt *preoldparent, struct iatt *postoldparent,
|
||||
struct iatt *prenewparent, struct iatt *postnewparent)
|
||||
{
|
||||
libgf_client_local_t *local = frame->local;
|
||||
|
||||
@ -6466,17 +6472,18 @@ glusterfs_glh_utimes (glusterfs_handle_t handle, const char *path,
|
||||
loc_t loc = {0, };
|
||||
libglusterfs_client_ctx_t *ctx = handle;
|
||||
char *name = NULL;
|
||||
struct stat stbuf = {0,};
|
||||
struct iatt stbuf = {0,};
|
||||
int32_t valid = 0;
|
||||
|
||||
GF_VALIDATE_OR_GOTO (LIBGF_XL_NAME, ctx, out);
|
||||
GF_VALIDATE_ABSOLUTE_PATH_OR_GOTO (LIBGF_XL_NAME, path, out);
|
||||
|
||||
gf_log (LIBGF_XL_NAME, GF_LOG_DEBUG, "path %s", path);
|
||||
stbuf.st_atime = times[0].tv_sec;
|
||||
ST_ATIM_NSEC_SET (&stbuf, (times[0].tv_usec * 1000));
|
||||
stbuf.st_mtime = times[1].tv_sec;
|
||||
ST_MTIM_NSEC_SET (&stbuf, (times[1].tv_usec * 1000));
|
||||
stbuf.ia_atime = times[0].tv_sec;
|
||||
stbuf.ia_atime_nsec = times[0].tv_usec * 1000;
|
||||
stbuf.ia_mtime = times[1].tv_sec;
|
||||
stbuf.ia_mtime_nsec = times[1].tv_usec * 1000;
|
||||
|
||||
valid |= (GF_SET_ATTR_ATIME | GF_SET_ATTR_MTIME);
|
||||
|
||||
loc.path = strdup (path);
|
||||
@ -6541,7 +6548,7 @@ glusterfs_glh_utime (glusterfs_handle_t handle, const char *path,
|
||||
loc_t loc = {0, };
|
||||
libglusterfs_client_ctx_t *ctx = handle;
|
||||
char *name = NULL;
|
||||
struct stat stbuf = {0,};
|
||||
struct iatt stbuf = {0,};
|
||||
int32_t valid = 0;
|
||||
|
||||
GF_VALIDATE_OR_GOTO (LIBGF_XL_NAME, ctx, out);
|
||||
@ -6549,11 +6556,11 @@ glusterfs_glh_utime (glusterfs_handle_t handle, const char *path,
|
||||
|
||||
gf_log (LIBGF_XL_NAME, GF_LOG_DEBUG, "path %s", path);
|
||||
if (buf) {
|
||||
stbuf.st_atime = buf->actime;
|
||||
ST_ATIM_NSEC_SET (&stbuf, 0);
|
||||
stbuf.ia_atime = buf->actime;
|
||||
stbuf.ia_atime_nsec = 0;
|
||||
|
||||
stbuf.st_mtime = buf->modtime;
|
||||
ST_MTIM_NSEC_SET (&stbuf, 0);
|
||||
stbuf.ia_mtime = buf->modtime;
|
||||
stbuf.ia_mtime_nsec = 0;
|
||||
}
|
||||
|
||||
valid |= (GF_SET_ATTR_ATIME | GF_SET_ATTR_MTIME);
|
||||
@ -6616,8 +6623,8 @@ out:
|
||||
static int32_t
|
||||
libgf_client_mknod_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
|
||||
int32_t op_ret, int32_t op_errno,
|
||||
inode_t *inode, struct stat *buf,
|
||||
struct stat *preparent, struct stat *postparent)
|
||||
inode_t *inode, struct iatt *buf,
|
||||
struct iatt *preparent, struct iatt *postparent)
|
||||
{
|
||||
libgf_client_local_t *local = frame->local;
|
||||
|
||||
@ -6819,7 +6826,7 @@ out:
|
||||
int32_t
|
||||
libgf_client_unlink_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
|
||||
int32_t op_ret, int32_t op_errno,
|
||||
struct stat *preparent, struct stat *postparent)
|
||||
struct iatt *preparent, struct iatt *postparent)
|
||||
{
|
||||
libgf_client_local_t *local = frame->local;
|
||||
|
||||
@ -6925,8 +6932,8 @@ out:
|
||||
static int32_t
|
||||
libgf_client_symlink_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
|
||||
int32_t op_ret, int32_t op_errno,
|
||||
inode_t *inode, struct stat *buf,
|
||||
struct stat *preparent, struct stat *postparent)
|
||||
inode_t *inode, struct iatt *buf,
|
||||
struct iatt *preparent, struct iatt *postparent)
|
||||
{
|
||||
libgf_client_local_t *local = frame->local;
|
||||
|
||||
@ -7066,7 +7073,7 @@ out:
|
||||
int32_t
|
||||
libgf_client_readlink_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
|
||||
int32_t op_ret, int32_t op_errno,
|
||||
const char *path, struct stat *sbuf)
|
||||
const char *path, struct iatt *sbuf)
|
||||
{
|
||||
libgf_client_local_t *local = frame->local;
|
||||
|
||||
@ -7454,7 +7461,7 @@ glusterfs_glh_remove (glusterfs_handle_t handle, const char *path)
|
||||
if (op_ret == -1)
|
||||
goto out;
|
||||
|
||||
if (S_ISDIR (loc.inode->st_mode))
|
||||
if (IA_ISDIR (loc.inode->ia_type))
|
||||
op_ret = libgf_client_rmdir (ctx, &loc);
|
||||
else
|
||||
op_ret = libgf_client_unlink (ctx, &loc);
|
||||
@ -8003,7 +8010,7 @@ unlock:
|
||||
int32_t
|
||||
libgf_client_truncate_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
|
||||
int32_t op_ret, int32_t op_errno,
|
||||
struct stat *prebuf, struct stat *postbuf)
|
||||
struct iatt *prebuf, struct iatt *postbuf)
|
||||
{
|
||||
libgf_client_local_t *local = frame->local;
|
||||
|
||||
|
@ -153,7 +153,7 @@ out:
|
||||
|
||||
sh->need_entry_self_heal = _gf_true;
|
||||
sh->forced_merge = _gf_true;
|
||||
sh->mode = local->fd->inode->st_mode;
|
||||
sh->type = local->fd->inode->ia_type;
|
||||
sh->background = _gf_false;
|
||||
sh->unwind = afr_examine_dir_sh_unwind;
|
||||
|
||||
@ -560,9 +560,9 @@ afr_readdirp_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
|
||||
inum = afr_itransform (entry->d_ino, priv->child_count,
|
||||
child_index);
|
||||
entry->d_ino = inum;
|
||||
inum = afr_itransform (entry->d_stat.st_ino,
|
||||
inum = afr_itransform (entry->d_stat.ia_ino,
|
||||
priv->child_count, child_index);
|
||||
entry->d_stat.st_ino = inum;
|
||||
entry->d_stat.ia_ino = inum;
|
||||
|
||||
if ((local->fd->inode == local->fd->inode->table->root)
|
||||
&& !strcmp (entry->d_name, GF_REPLICATE_TRASH_DIR)) {
|
||||
|
@ -79,7 +79,7 @@ afr_create_unwind (call_frame_t *frame, xlator_t *this)
|
||||
call_frame_t *main_frame = NULL;
|
||||
afr_private_t * priv = NULL;
|
||||
afr_local_t *local = NULL;
|
||||
struct stat *unwind_buf = NULL;
|
||||
struct iatt *unwind_buf = NULL;
|
||||
|
||||
priv = this->private;
|
||||
local = frame->local;
|
||||
@ -94,17 +94,17 @@ afr_create_unwind (call_frame_t *frame, xlator_t *this)
|
||||
UNLOCK (&frame->lock);
|
||||
|
||||
if (main_frame) {
|
||||
if (local->cont.create.read_child_buf.st_ino) {
|
||||
if (local->cont.create.read_child_buf.ia_ino) {
|
||||
unwind_buf = &local->cont.create.read_child_buf;
|
||||
} else {
|
||||
unwind_buf = &local->cont.create.buf;
|
||||
}
|
||||
|
||||
unwind_buf->st_ino = local->cont.create.ino;
|
||||
unwind_buf->st_dev = local->cont.create.gen;
|
||||
unwind_buf->ia_ino = local->cont.create.ino;
|
||||
unwind_buf->ia_gen = local->cont.create.gen;
|
||||
|
||||
local->cont.create.preparent.st_ino = local->cont.create.parent_ino;
|
||||
local->cont.create.postparent.st_ino = local->cont.create.parent_ino;
|
||||
local->cont.create.preparent.ia_ino = local->cont.create.parent_ino;
|
||||
local->cont.create.postparent.ia_ino = local->cont.create.parent_ino;
|
||||
|
||||
AFR_STACK_UNWIND (create, main_frame,
|
||||
local->op_ret, local->op_errno,
|
||||
@ -121,8 +121,8 @@ afr_create_unwind (call_frame_t *frame, xlator_t *this)
|
||||
int
|
||||
afr_create_wind_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
|
||||
int32_t op_ret, int32_t op_errno,
|
||||
fd_t *fd, inode_t *inode, struct stat *buf,
|
||||
struct stat *preparent, struct stat *postparent)
|
||||
fd_t *fd, inode_t *inode, struct iatt *buf,
|
||||
struct iatt *preparent, struct iatt *postparent)
|
||||
{
|
||||
afr_local_t * local = NULL;
|
||||
afr_private_t * priv = NULL;
|
||||
@ -176,10 +176,10 @@ afr_create_wind_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
|
||||
local->cont.create.buf = *buf;
|
||||
|
||||
local->cont.create.ino =
|
||||
afr_itransform (buf->st_ino,
|
||||
afr_itransform (buf->ia_ino,
|
||||
priv->child_count,
|
||||
child_index);
|
||||
local->cont.create.gen = buf->st_dev;
|
||||
local->cont.create.gen = buf->ia_gen;
|
||||
|
||||
if (priv->read_child >= 0) {
|
||||
afr_set_read_child (this, inode,
|
||||
@ -192,10 +192,10 @@ afr_create_wind_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
|
||||
|
||||
if (child_index == local->first_up_child) {
|
||||
local->cont.create.ino =
|
||||
afr_itransform (buf->st_ino,
|
||||
afr_itransform (buf->ia_ino,
|
||||
priv->child_count,
|
||||
local->first_up_child);
|
||||
local->cont.create.gen = buf->st_dev;
|
||||
local->cont.create.gen = buf->ia_gen;
|
||||
}
|
||||
|
||||
if (child_index == local->read_child_index) {
|
||||
@ -365,7 +365,7 @@ afr_mknod_unwind (call_frame_t *frame, xlator_t *this)
|
||||
call_frame_t *main_frame = NULL;
|
||||
afr_local_t *local = NULL;
|
||||
|
||||
struct stat *unwind_buf = NULL;
|
||||
struct iatt *unwind_buf = NULL;
|
||||
|
||||
local = frame->local;
|
||||
|
||||
@ -379,17 +379,17 @@ afr_mknod_unwind (call_frame_t *frame, xlator_t *this)
|
||||
UNLOCK (&frame->lock);
|
||||
|
||||
if (main_frame) {
|
||||
if (local->cont.mknod.read_child_buf.st_ino) {
|
||||
if (local->cont.mknod.read_child_buf.ia_ino) {
|
||||
unwind_buf = &local->cont.mknod.read_child_buf;
|
||||
} else {
|
||||
unwind_buf = &local->cont.mknod.buf;
|
||||
}
|
||||
|
||||
unwind_buf->st_ino = local->cont.mknod.ino;
|
||||
unwind_buf->st_dev = local->cont.mknod.gen;
|
||||
unwind_buf->ia_ino = local->cont.mknod.ino;
|
||||
unwind_buf->ia_gen = local->cont.mknod.gen;
|
||||
|
||||
local->cont.mknod.preparent.st_ino = local->cont.mknod.parent_ino;
|
||||
local->cont.mknod.postparent.st_ino = local->cont.mknod.parent_ino;
|
||||
local->cont.mknod.preparent.ia_ino = local->cont.mknod.parent_ino;
|
||||
local->cont.mknod.postparent.ia_ino = local->cont.mknod.parent_ino;
|
||||
|
||||
AFR_STACK_UNWIND (mknod, main_frame,
|
||||
local->op_ret, local->op_errno,
|
||||
@ -405,8 +405,8 @@ afr_mknod_unwind (call_frame_t *frame, xlator_t *this)
|
||||
int
|
||||
afr_mknod_wind_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
|
||||
int32_t op_ret, int32_t op_errno, inode_t *inode,
|
||||
struct stat *buf, struct stat *preparent,
|
||||
struct stat *postparent)
|
||||
struct iatt *buf, struct iatt *preparent,
|
||||
struct iatt *postparent)
|
||||
{
|
||||
afr_local_t * local = NULL;
|
||||
afr_private_t * priv = NULL;
|
||||
@ -430,10 +430,10 @@ afr_mknod_wind_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
|
||||
if (local->success_count == 0){
|
||||
local->cont.mknod.buf = *buf;
|
||||
local->cont.mknod.ino =
|
||||
afr_itransform (buf->st_ino,
|
||||
afr_itransform (buf->ia_ino,
|
||||
priv->child_count,
|
||||
child_index);
|
||||
local->cont.mknod.gen = buf->st_dev;
|
||||
local->cont.mknod.gen = buf->ia_gen;
|
||||
|
||||
if (priv->read_child >= 0) {
|
||||
afr_set_read_child (this, inode,
|
||||
@ -446,10 +446,10 @@ afr_mknod_wind_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
|
||||
|
||||
if (child_index == local->first_up_child) {
|
||||
local->cont.mknod.ino =
|
||||
afr_itransform (buf->st_ino,
|
||||
afr_itransform (buf->ia_ino,
|
||||
priv->child_count,
|
||||
local->first_up_child);
|
||||
local->cont.mknod.gen = buf->st_dev;
|
||||
local->cont.mknod.gen = buf->ia_gen;
|
||||
}
|
||||
|
||||
if (child_index == local->read_child_index) {
|
||||
@ -615,7 +615,7 @@ afr_mkdir_unwind (call_frame_t *frame, xlator_t *this)
|
||||
call_frame_t *main_frame = NULL;
|
||||
afr_local_t *local = NULL;
|
||||
|
||||
struct stat *unwind_buf = NULL;
|
||||
struct iatt *unwind_buf = NULL;
|
||||
|
||||
local = frame->local;
|
||||
|
||||
@ -629,17 +629,17 @@ afr_mkdir_unwind (call_frame_t *frame, xlator_t *this)
|
||||
UNLOCK (&frame->lock);
|
||||
|
||||
if (main_frame) {
|
||||
if (local->cont.mkdir.read_child_buf.st_ino) {
|
||||
if (local->cont.mkdir.read_child_buf.ia_ino) {
|
||||
unwind_buf = &local->cont.mkdir.read_child_buf;
|
||||
} else {
|
||||
unwind_buf = &local->cont.mkdir.buf;
|
||||
}
|
||||
|
||||
unwind_buf->st_ino = local->cont.mkdir.ino;
|
||||
unwind_buf->st_dev = local->cont.mkdir.gen;
|
||||
unwind_buf->ia_ino = local->cont.mkdir.ino;
|
||||
unwind_buf->ia_gen = local->cont.mkdir.gen;
|
||||
|
||||
local->cont.mkdir.preparent.st_ino = local->cont.mkdir.parent_ino;
|
||||
local->cont.mkdir.postparent.st_ino = local->cont.mkdir.parent_ino;
|
||||
local->cont.mkdir.preparent.ia_ino = local->cont.mkdir.parent_ino;
|
||||
local->cont.mkdir.postparent.ia_ino = local->cont.mkdir.parent_ino;
|
||||
|
||||
AFR_STACK_UNWIND (mkdir, main_frame,
|
||||
local->op_ret, local->op_errno,
|
||||
@ -655,8 +655,8 @@ afr_mkdir_unwind (call_frame_t *frame, xlator_t *this)
|
||||
int
|
||||
afr_mkdir_wind_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
|
||||
int32_t op_ret, int32_t op_errno, inode_t *inode,
|
||||
struct stat *buf, struct stat *preparent,
|
||||
struct stat *postparent)
|
||||
struct iatt *buf, struct iatt *preparent,
|
||||
struct iatt *postparent)
|
||||
{
|
||||
afr_local_t * local = NULL;
|
||||
afr_private_t * priv = NULL;
|
||||
@ -681,10 +681,10 @@ afr_mkdir_wind_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
|
||||
local->cont.mkdir.buf = *buf;
|
||||
|
||||
local->cont.mkdir.ino =
|
||||
afr_itransform (buf->st_ino,
|
||||
afr_itransform (buf->ia_ino,
|
||||
priv->child_count,
|
||||
child_index);
|
||||
local->cont.mkdir.gen = buf->st_dev;
|
||||
local->cont.mkdir.gen = buf->ia_gen;
|
||||
|
||||
if (priv->read_child >= 0) {
|
||||
afr_set_read_child (this, inode,
|
||||
@ -697,10 +697,10 @@ afr_mkdir_wind_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
|
||||
|
||||
if (child_index == local->first_up_child) {
|
||||
local->cont.mkdir.ino =
|
||||
afr_itransform (buf->st_ino,
|
||||
afr_itransform (buf->ia_ino,
|
||||
priv->child_count,
|
||||
local->first_up_child);
|
||||
local->cont.mkdir.gen = buf->st_dev;
|
||||
local->cont.mkdir.gen = buf->ia_gen;
|
||||
}
|
||||
|
||||
if (child_index == local->read_child_index) {
|
||||
@ -867,7 +867,7 @@ afr_link_unwind (call_frame_t *frame, xlator_t *this)
|
||||
call_frame_t *main_frame = NULL;
|
||||
afr_local_t *local = NULL;
|
||||
|
||||
struct stat *unwind_buf = NULL;
|
||||
struct iatt *unwind_buf = NULL;
|
||||
|
||||
local = frame->local;
|
||||
|
||||
@ -881,16 +881,16 @@ afr_link_unwind (call_frame_t *frame, xlator_t *this)
|
||||
UNLOCK (&frame->lock);
|
||||
|
||||
if (main_frame) {
|
||||
if (local->cont.link.read_child_buf.st_ino) {
|
||||
if (local->cont.link.read_child_buf.ia_ino) {
|
||||
unwind_buf = &local->cont.link.read_child_buf;
|
||||
} else {
|
||||
unwind_buf = &local->cont.link.buf;
|
||||
}
|
||||
|
||||
unwind_buf->st_ino = local->cont.link.ino;
|
||||
unwind_buf->ia_ino = local->cont.link.ino;
|
||||
|
||||
local->cont.link.preparent.st_ino = local->cont.link.parent_ino;
|
||||
local->cont.link.postparent.st_ino = local->cont.link.parent_ino;
|
||||
local->cont.link.preparent.ia_ino = local->cont.link.parent_ino;
|
||||
local->cont.link.postparent.ia_ino = local->cont.link.parent_ino;
|
||||
|
||||
AFR_STACK_UNWIND (link, main_frame,
|
||||
local->op_ret, local->op_errno,
|
||||
@ -906,8 +906,8 @@ afr_link_unwind (call_frame_t *frame, xlator_t *this)
|
||||
int
|
||||
afr_link_wind_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
|
||||
int32_t op_ret, int32_t op_errno, inode_t *inode,
|
||||
struct stat *buf, struct stat *preparent,
|
||||
struct stat *postparent)
|
||||
struct iatt *buf, struct iatt *preparent,
|
||||
struct iatt *postparent)
|
||||
{
|
||||
afr_local_t * local = NULL;
|
||||
afr_private_t * priv = NULL;
|
||||
@ -1104,7 +1104,7 @@ afr_symlink_unwind (call_frame_t *frame, xlator_t *this)
|
||||
call_frame_t *main_frame = NULL;
|
||||
afr_local_t *local = NULL;
|
||||
|
||||
struct stat *unwind_buf = NULL;
|
||||
struct iatt *unwind_buf = NULL;
|
||||
|
||||
local = frame->local;
|
||||
|
||||
@ -1118,17 +1118,17 @@ afr_symlink_unwind (call_frame_t *frame, xlator_t *this)
|
||||
UNLOCK (&frame->lock);
|
||||
|
||||
if (main_frame) {
|
||||
if (local->cont.symlink.read_child_buf.st_ino) {
|
||||
if (local->cont.symlink.read_child_buf.ia_ino) {
|
||||
unwind_buf = &local->cont.symlink.read_child_buf;
|
||||
} else {
|
||||
unwind_buf = &local->cont.symlink.buf;
|
||||
}
|
||||
|
||||
unwind_buf->st_ino = local->cont.symlink.ino;
|
||||
unwind_buf->st_dev = local->cont.symlink.gen;
|
||||
unwind_buf->ia_ino = local->cont.symlink.ino;
|
||||
unwind_buf->ia_gen = local->cont.symlink.gen;
|
||||
|
||||
local->cont.symlink.preparent.st_ino = local->cont.symlink.parent_ino;
|
||||
local->cont.symlink.postparent.st_ino = local->cont.symlink.parent_ino;
|
||||
local->cont.symlink.preparent.ia_ino = local->cont.symlink.parent_ino;
|
||||
local->cont.symlink.postparent.ia_ino = local->cont.symlink.parent_ino;
|
||||
|
||||
AFR_STACK_UNWIND (symlink, main_frame,
|
||||
local->op_ret, local->op_errno,
|
||||
@ -1144,8 +1144,8 @@ afr_symlink_unwind (call_frame_t *frame, xlator_t *this)
|
||||
int
|
||||
afr_symlink_wind_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
|
||||
int32_t op_ret, int32_t op_errno, inode_t *inode,
|
||||
struct stat *buf, struct stat *preparent,
|
||||
struct stat *postparent)
|
||||
struct iatt *buf, struct iatt *preparent,
|
||||
struct iatt *postparent)
|
||||
{
|
||||
afr_local_t * local = NULL;
|
||||
afr_private_t * priv = NULL;
|
||||
@ -1169,9 +1169,9 @@ afr_symlink_wind_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
|
||||
if (local->success_count == 0) {
|
||||
local->cont.symlink.buf = *buf;
|
||||
local->cont.symlink.ino =
|
||||
afr_itransform (buf->st_ino, priv->child_count,
|
||||
afr_itransform (buf->ia_ino, priv->child_count,
|
||||
child_index);
|
||||
local->cont.symlink.gen = buf->st_dev;
|
||||
local->cont.symlink.gen = buf->ia_gen;
|
||||
|
||||
if (priv->read_child >= 0) {
|
||||
afr_set_read_child (this, inode,
|
||||
@ -1184,10 +1184,10 @@ afr_symlink_wind_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
|
||||
|
||||
if (child_index == local->first_up_child) {
|
||||
local->cont.symlink.ino =
|
||||
afr_itransform (buf->st_ino,
|
||||
afr_itransform (buf->ia_ino,
|
||||
priv->child_count,
|
||||
local->first_up_child);
|
||||
local->cont.symlink.gen = buf->st_dev;
|
||||
local->cont.symlink.gen = buf->ia_gen;
|
||||
}
|
||||
|
||||
if (child_index == local->read_child_index) {
|
||||
@ -1353,7 +1353,7 @@ afr_rename_unwind (call_frame_t *frame, xlator_t *this)
|
||||
call_frame_t *main_frame = NULL;
|
||||
afr_local_t *local = NULL;
|
||||
|
||||
struct stat *unwind_buf = NULL;
|
||||
struct iatt *unwind_buf = NULL;
|
||||
|
||||
local = frame->local;
|
||||
|
||||
@ -1367,18 +1367,18 @@ afr_rename_unwind (call_frame_t *frame, xlator_t *this)
|
||||
UNLOCK (&frame->lock);
|
||||
|
||||
if (main_frame) {
|
||||
if (local->cont.rename.read_child_buf.st_ino) {
|
||||
if (local->cont.rename.read_child_buf.ia_ino) {
|
||||
unwind_buf = &local->cont.rename.read_child_buf;
|
||||
} else {
|
||||
unwind_buf = &local->cont.rename.buf;
|
||||
}
|
||||
|
||||
unwind_buf->st_ino = local->cont.rename.ino;
|
||||
unwind_buf->ia_ino = local->cont.rename.ino;
|
||||
|
||||
local->cont.rename.preoldparent.st_ino = local->cont.rename.oldparent_ino;
|
||||
local->cont.rename.postoldparent.st_ino = local->cont.rename.oldparent_ino;
|
||||
local->cont.rename.prenewparent.st_ino = local->cont.rename.newparent_ino;
|
||||
local->cont.rename.postnewparent.st_ino = local->cont.rename.newparent_ino;
|
||||
local->cont.rename.preoldparent.ia_ino = local->cont.rename.oldparent_ino;
|
||||
local->cont.rename.postoldparent.ia_ino = local->cont.rename.oldparent_ino;
|
||||
local->cont.rename.prenewparent.ia_ino = local->cont.rename.newparent_ino;
|
||||
local->cont.rename.postnewparent.ia_ino = local->cont.rename.newparent_ino;
|
||||
|
||||
AFR_STACK_UNWIND (rename, main_frame,
|
||||
local->op_ret, local->op_errno,
|
||||
@ -1395,9 +1395,9 @@ afr_rename_unwind (call_frame_t *frame, xlator_t *this)
|
||||
|
||||
int
|
||||
afr_rename_wind_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
|
||||
int32_t op_ret, int32_t op_errno, struct stat *buf,
|
||||
struct stat *preoldparent, struct stat *postoldparent,
|
||||
struct stat *prenewparent, struct stat *postnewparent)
|
||||
int32_t op_ret, int32_t op_errno, struct iatt *buf,
|
||||
struct iatt *preoldparent, struct iatt *postoldparent,
|
||||
struct iatt *prenewparent, struct iatt *postnewparent)
|
||||
{
|
||||
afr_local_t * local = NULL;
|
||||
afr_private_t * priv = NULL;
|
||||
@ -1599,8 +1599,8 @@ afr_unlink_unwind (call_frame_t *frame, xlator_t *this)
|
||||
UNLOCK (&frame->lock);
|
||||
|
||||
if (main_frame) {
|
||||
local->cont.unlink.preparent.st_ino = local->cont.unlink.parent_ino;
|
||||
local->cont.unlink.postparent.st_ino = local->cont.unlink.parent_ino;
|
||||
local->cont.unlink.preparent.ia_ino = local->cont.unlink.parent_ino;
|
||||
local->cont.unlink.postparent.ia_ino = local->cont.unlink.parent_ino;
|
||||
|
||||
AFR_STACK_UNWIND (unlink, main_frame,
|
||||
local->op_ret, local->op_errno,
|
||||
@ -1614,8 +1614,8 @@ afr_unlink_unwind (call_frame_t *frame, xlator_t *this)
|
||||
|
||||
int
|
||||
afr_unlink_wind_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
|
||||
int32_t op_ret, int32_t op_errno, struct stat *preparent,
|
||||
struct stat *postparent)
|
||||
int32_t op_ret, int32_t op_errno, struct iatt *preparent,
|
||||
struct iatt *postparent)
|
||||
{
|
||||
afr_local_t * local = NULL;
|
||||
afr_private_t * priv = NULL;
|
||||
@ -1814,8 +1814,8 @@ afr_rmdir_unwind (call_frame_t *frame, xlator_t *this)
|
||||
UNLOCK (&frame->lock);
|
||||
|
||||
if (main_frame) {
|
||||
local->cont.rmdir.preparent.st_ino = local->cont.rmdir.parent_ino;
|
||||
local->cont.rmdir.postparent.st_ino = local->cont.rmdir.parent_ino;
|
||||
local->cont.rmdir.preparent.ia_ino = local->cont.rmdir.parent_ino;
|
||||
local->cont.rmdir.postparent.ia_ino = local->cont.rmdir.parent_ino;
|
||||
|
||||
AFR_STACK_UNWIND (rmdir, main_frame,
|
||||
local->op_ret, local->op_errno,
|
||||
@ -1829,8 +1829,8 @@ afr_rmdir_unwind (call_frame_t *frame, xlator_t *this)
|
||||
|
||||
int
|
||||
afr_rmdir_wind_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
|
||||
int32_t op_ret, int32_t op_errno, struct stat *preparent,
|
||||
struct stat *postparent)
|
||||
int32_t op_ret, int32_t op_errno, struct iatt *preparent,
|
||||
struct iatt *postparent)
|
||||
{
|
||||
afr_local_t * local = NULL;
|
||||
afr_private_t * priv = NULL;
|
||||
|
@ -179,7 +179,7 @@ out:
|
||||
int32_t
|
||||
afr_stat_cbk (call_frame_t *frame, void *cookie,
|
||||
xlator_t *this, int32_t op_ret, int32_t op_errno,
|
||||
struct stat *buf)
|
||||
struct iatt *buf)
|
||||
{
|
||||
afr_private_t * priv = NULL;
|
||||
afr_local_t * local = NULL;
|
||||
@ -222,7 +222,7 @@ afr_stat_cbk (call_frame_t *frame, void *cookie,
|
||||
out:
|
||||
if (unwind) {
|
||||
if (buf)
|
||||
buf->st_ino = local->cont.stat.ino;
|
||||
buf->ia_ino = local->cont.stat.ino;
|
||||
|
||||
AFR_STACK_UNWIND (stat, frame, op_ret, op_errno, buf);
|
||||
}
|
||||
@ -303,7 +303,7 @@ out:
|
||||
int32_t
|
||||
afr_fstat_cbk (call_frame_t *frame, void *cookie,
|
||||
xlator_t *this, int32_t op_ret, int32_t op_errno,
|
||||
struct stat *buf)
|
||||
struct iatt *buf)
|
||||
{
|
||||
afr_private_t * priv = NULL;
|
||||
afr_local_t * local = NULL;
|
||||
@ -346,7 +346,7 @@ afr_fstat_cbk (call_frame_t *frame, void *cookie,
|
||||
out:
|
||||
if (unwind) {
|
||||
if (buf)
|
||||
buf->st_ino = local->cont.fstat.ino;
|
||||
buf->ia_ino = local->cont.fstat.ino;
|
||||
|
||||
AFR_STACK_UNWIND (fstat, frame, op_ret, op_errno, buf);
|
||||
}
|
||||
@ -428,7 +428,7 @@ out:
|
||||
int32_t
|
||||
afr_readlink_cbk (call_frame_t *frame, void *cookie,
|
||||
xlator_t *this, int32_t op_ret, int32_t op_errno,
|
||||
const char *buf, struct stat *sbuf)
|
||||
const char *buf, struct iatt *sbuf)
|
||||
{
|
||||
afr_private_t * priv = NULL;
|
||||
afr_local_t * local = NULL;
|
||||
@ -471,7 +471,7 @@ afr_readlink_cbk (call_frame_t *frame, void *cookie,
|
||||
out:
|
||||
if (unwind) {
|
||||
if (sbuf)
|
||||
sbuf->st_ino = local->cont.readlink.ino;
|
||||
sbuf->ia_ino = local->cont.readlink.ino;
|
||||
|
||||
AFR_STACK_UNWIND (readlink, frame, op_ret, op_errno, buf, sbuf);
|
||||
}
|
||||
@ -748,7 +748,7 @@ out:
|
||||
int32_t
|
||||
afr_readv_cbk (call_frame_t *frame, void *cookie,
|
||||
xlator_t *this, int32_t op_ret, int32_t op_errno,
|
||||
struct iovec *vector, int32_t count, struct stat *buf,
|
||||
struct iovec *vector, int32_t count, struct iatt *buf,
|
||||
struct iobref *iobref)
|
||||
{
|
||||
afr_private_t * priv = NULL;
|
||||
@ -803,7 +803,7 @@ afr_readv_cbk (call_frame_t *frame, void *cookie,
|
||||
out:
|
||||
if (unwind) {
|
||||
if (buf)
|
||||
buf->st_ino = local->cont.readv.ino;
|
||||
buf->ia_ino = local->cont.readv.ino;
|
||||
|
||||
AFR_STACK_UNWIND (readv, frame, op_ret, op_errno,
|
||||
vector, count, buf, iobref);
|
||||
|
@ -69,8 +69,8 @@ afr_writev_unwind (call_frame_t *frame, xlator_t *this)
|
||||
UNLOCK (&frame->lock);
|
||||
|
||||
if (main_frame) {
|
||||
local->cont.writev.prebuf.st_ino = local->cont.writev.ino;
|
||||
local->cont.writev.postbuf.st_ino = local->cont.writev.ino;
|
||||
local->cont.writev.prebuf.ia_ino = local->cont.writev.ino;
|
||||
local->cont.writev.postbuf.ia_ino = local->cont.writev.ino;
|
||||
|
||||
AFR_STACK_UNWIND (writev, main_frame,
|
||||
local->op_ret, local->op_errno,
|
||||
@ -83,8 +83,8 @@ afr_writev_unwind (call_frame_t *frame, xlator_t *this)
|
||||
|
||||
int
|
||||
afr_writev_wind_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
|
||||
int32_t op_ret, int32_t op_errno, struct stat *prebuf,
|
||||
struct stat *postbuf)
|
||||
int32_t op_ret, int32_t op_errno, struct iatt *prebuf,
|
||||
struct iatt *postbuf)
|
||||
{
|
||||
afr_local_t * local = NULL;
|
||||
afr_private_t * priv = NULL;
|
||||
@ -350,8 +350,8 @@ afr_truncate_unwind (call_frame_t *frame, xlator_t *this)
|
||||
UNLOCK (&frame->lock);
|
||||
|
||||
if (main_frame) {
|
||||
local->cont.truncate.prebuf.st_ino = local->cont.truncate.ino;
|
||||
local->cont.truncate.postbuf.st_ino = local->cont.truncate.ino;
|
||||
local->cont.truncate.prebuf.ia_ino = local->cont.truncate.ino;
|
||||
local->cont.truncate.postbuf.ia_ino = local->cont.truncate.ino;
|
||||
|
||||
AFR_STACK_UNWIND (truncate, main_frame, local->op_ret,
|
||||
local->op_errno,
|
||||
@ -365,8 +365,8 @@ afr_truncate_unwind (call_frame_t *frame, xlator_t *this)
|
||||
|
||||
int
|
||||
afr_truncate_wind_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
|
||||
int32_t op_ret, int32_t op_errno, struct stat *prebuf,
|
||||
struct stat *postbuf)
|
||||
int32_t op_ret, int32_t op_errno, struct iatt *prebuf,
|
||||
struct iatt *postbuf)
|
||||
{
|
||||
afr_local_t * local = NULL;
|
||||
afr_private_t * priv = NULL;
|
||||
@ -569,8 +569,8 @@ afr_ftruncate_unwind (call_frame_t *frame, xlator_t *this)
|
||||
UNLOCK (&frame->lock);
|
||||
|
||||
if (main_frame) {
|
||||
local->cont.ftruncate.prebuf.st_ino = local->cont.ftruncate.ino;
|
||||
local->cont.ftruncate.postbuf.st_ino = local->cont.ftruncate.ino;
|
||||
local->cont.ftruncate.prebuf.ia_ino = local->cont.ftruncate.ino;
|
||||
local->cont.ftruncate.postbuf.ia_ino = local->cont.ftruncate.ino;
|
||||
|
||||
AFR_STACK_UNWIND (ftruncate, main_frame, local->op_ret,
|
||||
local->op_errno,
|
||||
@ -583,8 +583,8 @@ afr_ftruncate_unwind (call_frame_t *frame, xlator_t *this)
|
||||
|
||||
int
|
||||
afr_ftruncate_wind_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
|
||||
int32_t op_ret, int32_t op_errno, struct stat *prebuf,
|
||||
struct stat *postbuf)
|
||||
int32_t op_ret, int32_t op_errno, struct iatt *prebuf,
|
||||
struct iatt *postbuf)
|
||||
{
|
||||
afr_local_t * local = NULL;
|
||||
afr_private_t * priv = NULL;
|
||||
@ -828,8 +828,8 @@ afr_setattr_unwind (call_frame_t *frame, xlator_t *this)
|
||||
UNLOCK (&frame->lock);
|
||||
|
||||
if (main_frame) {
|
||||
local->cont.setattr.preop_buf.st_ino = local->cont.setattr.ino;
|
||||
local->cont.setattr.postop_buf.st_ino = local->cont.setattr.ino;
|
||||
local->cont.setattr.preop_buf.ia_ino = local->cont.setattr.ino;
|
||||
local->cont.setattr.postop_buf.ia_ino = local->cont.setattr.ino;
|
||||
|
||||
AFR_STACK_UNWIND (setattr, main_frame, local->op_ret,
|
||||
local->op_errno,
|
||||
@ -844,7 +844,7 @@ afr_setattr_unwind (call_frame_t *frame, xlator_t *this)
|
||||
int
|
||||
afr_setattr_wind_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
|
||||
int32_t op_ret, int32_t op_errno,
|
||||
struct stat *preop, struct stat *postop)
|
||||
struct iatt *preop, struct iatt *postop)
|
||||
{
|
||||
afr_local_t * local = NULL;
|
||||
afr_private_t * priv = NULL;
|
||||
@ -961,7 +961,7 @@ afr_setattr_done (call_frame_t *frame, xlator_t *this)
|
||||
|
||||
int
|
||||
afr_setattr (call_frame_t *frame, xlator_t *this,
|
||||
loc_t *loc, struct stat *buf, int32_t valid)
|
||||
loc_t *loc, struct iatt *buf, int32_t valid)
|
||||
{
|
||||
afr_private_t * priv = NULL;
|
||||
afr_local_t * local = NULL;
|
||||
@ -1046,9 +1046,9 @@ afr_fsetattr_unwind (call_frame_t *frame, xlator_t *this)
|
||||
UNLOCK (&frame->lock);
|
||||
|
||||
if (main_frame) {
|
||||
local->cont.fsetattr.preop_buf.st_ino =
|
||||
local->cont.fsetattr.preop_buf.ia_ino =
|
||||
local->cont.fsetattr.ino;
|
||||
local->cont.fsetattr.postop_buf.st_ino =
|
||||
local->cont.fsetattr.postop_buf.ia_ino =
|
||||
local->cont.fsetattr.ino;
|
||||
|
||||
AFR_STACK_UNWIND (fsetattr, main_frame, local->op_ret,
|
||||
@ -1064,7 +1064,7 @@ afr_fsetattr_unwind (call_frame_t *frame, xlator_t *this)
|
||||
int
|
||||
afr_fsetattr_wind_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
|
||||
int32_t op_ret, int32_t op_errno,
|
||||
struct stat *preop, struct stat *postop)
|
||||
struct iatt *preop, struct iatt *postop)
|
||||
{
|
||||
afr_local_t * local = NULL;
|
||||
afr_private_t * priv = NULL;
|
||||
@ -1181,7 +1181,7 @@ afr_fsetattr_done (call_frame_t *frame, xlator_t *this)
|
||||
|
||||
int
|
||||
afr_fsetattr (call_frame_t *frame, xlator_t *this,
|
||||
fd_t *fd, struct stat *buf, int32_t valid)
|
||||
fd_t *fd, struct iatt *buf, int32_t valid)
|
||||
{
|
||||
afr_private_t * priv = NULL;
|
||||
afr_local_t * local = NULL;
|
||||
|
@ -55,11 +55,11 @@ afr_utimens (call_frame_t *frame, xlator_t *this,
|
||||
|
||||
int
|
||||
afr_setattr (call_frame_t *frame, xlator_t *this,
|
||||
loc_t *loc, struct stat *buf, int32_t valid);
|
||||
loc_t *loc, struct iatt *buf, int32_t valid);
|
||||
|
||||
int
|
||||
afr_fsetattr (call_frame_t *frame, xlator_t *this,
|
||||
fd_t *fd, struct stat *buf, int32_t valid);
|
||||
fd_t *fd, struct iatt *buf, int32_t valid);
|
||||
|
||||
int32_t
|
||||
afr_setxattr (call_frame_t *frame, xlator_t *this,
|
||||
|
@ -58,8 +58,8 @@
|
||||
|
||||
int
|
||||
afr_open_ftruncate_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
|
||||
int32_t op_ret, int32_t op_errno, struct stat *prebuf,
|
||||
struct stat *postbuf)
|
||||
int32_t op_ret, int32_t op_errno, struct iatt *prebuf,
|
||||
struct iatt *postbuf)
|
||||
{
|
||||
afr_local_t * local = frame->local;
|
||||
|
||||
@ -370,7 +370,7 @@ afr_up_down_flush_post_post_op (call_frame_t *frame, xlator_t *this)
|
||||
|
||||
sh->data_lock_held = _gf_true;
|
||||
sh->need_data_self_heal = _gf_true;
|
||||
sh->mode = local->fd->inode->st_mode;
|
||||
sh->type = local->fd->inode->ia_type;
|
||||
sh->background = _gf_false;
|
||||
sh->unwind = afr_up_down_flush_sh_unwind;
|
||||
|
||||
|
@ -114,8 +114,8 @@ sh_full_loop_return (call_frame_t *rw_frame, xlator_t *this, off_t offset)
|
||||
|
||||
static int
|
||||
sh_full_write_cbk (call_frame_t *rw_frame, void *cookie, xlator_t *this,
|
||||
int32_t op_ret, int32_t op_errno, struct stat *prebuf,
|
||||
struct stat *postbuf)
|
||||
int32_t op_ret, int32_t op_errno, struct iatt *prebuf,
|
||||
struct iatt *postbuf)
|
||||
{
|
||||
afr_private_t * priv = NULL;
|
||||
afr_local_t * rw_local = NULL;
|
||||
@ -169,7 +169,7 @@ sh_full_write_cbk (call_frame_t *rw_frame, void *cookie, xlator_t *this,
|
||||
static int
|
||||
sh_full_read_cbk (call_frame_t *rw_frame, void *cookie,
|
||||
xlator_t *this, int32_t op_ret, int32_t op_errno,
|
||||
struct iovec *vector, int32_t count, struct stat *buf,
|
||||
struct iovec *vector, int32_t count, struct iatt *buf,
|
||||
struct iobref *iobref)
|
||||
{
|
||||
afr_private_t * priv = NULL;
|
||||
@ -538,8 +538,8 @@ sh_diff_loop_return (call_frame_t *rw_frame, xlator_t *this,
|
||||
|
||||
static int
|
||||
sh_diff_write_cbk (call_frame_t *rw_frame, void *cookie, xlator_t *this,
|
||||
int32_t op_ret, int32_t op_errno, struct stat *buf,
|
||||
struct stat *postbuf)
|
||||
int32_t op_ret, int32_t op_errno, struct iatt *buf,
|
||||
struct iatt *postbuf)
|
||||
{
|
||||
afr_private_t * priv = NULL;
|
||||
afr_local_t * rw_local = NULL;
|
||||
@ -601,7 +601,7 @@ sh_diff_write_cbk (call_frame_t *rw_frame, void *cookie, xlator_t *this,
|
||||
static int
|
||||
sh_diff_read_cbk (call_frame_t *rw_frame, void *cookie,
|
||||
xlator_t *this, int32_t op_ret, int32_t op_errno,
|
||||
struct iovec *vector, int32_t count, struct stat *buf,
|
||||
struct iovec *vector, int32_t count, struct iatt *buf,
|
||||
struct iobref *iobref)
|
||||
{
|
||||
afr_private_t * priv = NULL;
|
||||
|
@ -441,7 +441,7 @@ afr_sh_mark_biggest_as_source (afr_self_heal_t *sh, int child_count)
|
||||
|
||||
|
||||
static int
|
||||
afr_sh_mark_lowest_uid_as_source (afr_self_heal_t *sh, int child_count)
|
||||
afr_sh_mark_loweia_uid_as_source (afr_self_heal_t *sh, int child_count)
|
||||
{
|
||||
uid_t smallest = 0;
|
||||
int i;
|
||||
@ -450,7 +450,7 @@ afr_sh_mark_lowest_uid_as_source (afr_self_heal_t *sh, int child_count)
|
||||
if (!sh->buf)
|
||||
break;
|
||||
|
||||
if (sh->buf[i].st_uid < sh->buf[smallest].st_uid) {
|
||||
if (sh->buf[i].ia_uid < sh->buf[smallest].ia_uid) {
|
||||
smallest = i;
|
||||
}
|
||||
}
|
||||
@ -513,7 +513,7 @@ afr_sh_mark_sources (afr_self_heal_t *sh, int child_count,
|
||||
if ((type == AFR_SELF_HEAL_METADATA)
|
||||
&& afr_sh_all_nodes_innocent (characters, child_count)) {
|
||||
|
||||
nsources = afr_sh_mark_lowest_uid_as_source (sh, child_count);
|
||||
nsources = afr_sh_mark_loweia_uid_as_source (sh, child_count);
|
||||
goto out;
|
||||
}
|
||||
|
||||
@ -864,7 +864,7 @@ sh_missing_entries_finish (call_frame_t *frame, xlator_t *this)
|
||||
static int
|
||||
sh_destroy_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
|
||||
int32_t op_ret, int op_errno,
|
||||
struct stat *preop, struct stat *postop)
|
||||
struct iatt *preop, struct iatt *postop)
|
||||
{
|
||||
afr_local_t *local = NULL;
|
||||
|
||||
@ -899,9 +899,9 @@ static int
|
||||
sh_missing_entries_newentry_cbk (call_frame_t *frame, void *cookie,
|
||||
xlator_t *this,
|
||||
int32_t op_ret, int32_t op_errno,
|
||||
inode_t *inode, struct stat *buf,
|
||||
struct stat *preparent,
|
||||
struct stat *postparent)
|
||||
inode_t *inode, struct iatt *buf,
|
||||
struct iatt *preparent,
|
||||
struct iatt *postparent)
|
||||
{
|
||||
afr_local_t *local = NULL;
|
||||
afr_self_heal_t *sh = NULL;
|
||||
@ -912,7 +912,7 @@ sh_missing_entries_newentry_cbk (call_frame_t *frame, void *cookie,
|
||||
|
||||
loc_t *parent_loc = NULL;
|
||||
|
||||
struct stat stbuf;
|
||||
struct iatt stbuf;
|
||||
int32_t valid;
|
||||
|
||||
local = frame->local;
|
||||
@ -921,20 +921,13 @@ sh_missing_entries_newentry_cbk (call_frame_t *frame, void *cookie,
|
||||
|
||||
child_index = (long) cookie;
|
||||
|
||||
#ifdef HAVE_STRUCT_STAT_ST_ATIM_TV_NSEC
|
||||
stbuf.st_atim = sh->buf[sh->source].st_atim;
|
||||
stbuf.st_mtim = sh->buf[sh->source].st_mtim;
|
||||
|
||||
#elif HAVE_STRUCT_STAT_ST_ATIMESPEC_TV_NSEC
|
||||
stbuf.st_atimespec = sh->buf[sh->source].st_atimespec;
|
||||
stbuf.st_mtimespec = sh->buf[sh->source].st_mtimespec;
|
||||
#else
|
||||
stbuf.st_atime = sh->buf[sh->source].st_atime;
|
||||
stbuf.st_mtime = sh->buf[sh->source].st_mtime;
|
||||
#endif
|
||||
stbuf.ia_atime = sh->buf[sh->source].ia_atime;
|
||||
stbuf.ia_atime_nsec = sh->buf[sh->source].ia_atime_nsec;
|
||||
stbuf.ia_mtime = sh->buf[sh->source].ia_mtime;
|
||||
stbuf.ia_mtime_nsec = sh->buf[sh->source].ia_mtime_nsec;
|
||||
|
||||
stbuf.st_uid = sh->buf[sh->source].st_uid;
|
||||
stbuf.st_gid = sh->buf[sh->source].st_gid;
|
||||
stbuf.ia_uid = sh->buf[sh->source].ia_uid;
|
||||
stbuf.ia_gid = sh->buf[sh->source].ia_gid;
|
||||
|
||||
valid = GF_SET_ATTR_UID | GF_SET_ATTR_GID |
|
||||
GF_SET_ATTR_ATIME | GF_SET_ATTR_MTIME;
|
||||
@ -987,7 +980,7 @@ sh_missing_entries_mknod (call_frame_t *frame, xlator_t *this)
|
||||
int enoent_count = 0;
|
||||
int call_count = 0;
|
||||
mode_t st_mode = 0;
|
||||
dev_t st_dev = 0;
|
||||
dev_t ia_gen = 0;
|
||||
|
||||
|
||||
local = frame->local;
|
||||
@ -1001,8 +994,9 @@ sh_missing_entries_mknod (call_frame_t *frame, xlator_t *this)
|
||||
call_count = enoent_count;
|
||||
local->call_count = call_count;
|
||||
|
||||
st_mode = sh->buf[sh->source].st_mode;
|
||||
st_dev = sh->buf[sh->source].st_dev;
|
||||
st_mode = st_mode_from_ia (sh->buf[sh->source].ia_prot,
|
||||
sh->buf[sh->source].ia_type);
|
||||
ia_gen = sh->buf[sh->source].ia_gen;
|
||||
|
||||
gf_log (this->name, GF_LOG_TRACE,
|
||||
"mknod %s mode 0%o on %d subvolumes",
|
||||
@ -1015,7 +1009,7 @@ sh_missing_entries_mknod (call_frame_t *frame, xlator_t *this)
|
||||
(void *) (long) i,
|
||||
priv->children[i],
|
||||
priv->children[i]->fops->mknod,
|
||||
&local->loc, st_mode, st_dev);
|
||||
&local->loc, st_mode, ia_gen);
|
||||
if (!--call_count)
|
||||
break;
|
||||
}
|
||||
@ -1048,7 +1042,8 @@ sh_missing_entries_mkdir (call_frame_t *frame, xlator_t *this)
|
||||
call_count = enoent_count;
|
||||
local->call_count = call_count;
|
||||
|
||||
st_mode = sh->buf[sh->source].st_mode;
|
||||
st_mode = st_mode_from_ia (sh->buf[sh->source].ia_prot,
|
||||
sh->buf[sh->source].ia_type);
|
||||
|
||||
gf_log (this->name, GF_LOG_TRACE,
|
||||
"mkdir %s mode 0%o on %d subvolumes",
|
||||
@ -1127,7 +1122,7 @@ static int
|
||||
sh_missing_entries_readlink_cbk (call_frame_t *frame, void *cookie,
|
||||
xlator_t *this,
|
||||
int32_t op_ret, int32_t op_errno,
|
||||
const char *link, struct stat *sbuf)
|
||||
const char *link, struct iatt *sbuf)
|
||||
{
|
||||
if (op_ret > 0)
|
||||
sh_missing_entries_symlink (frame, this, link);
|
||||
@ -1181,7 +1176,7 @@ sh_missing_entries_create (call_frame_t *frame, xlator_t *this)
|
||||
enoent_count++;
|
||||
} else {
|
||||
if (type) {
|
||||
if (type != (sh->buf[i].st_mode & S_IFMT)) {
|
||||
if (type != sh->buf[i].ia_type) {
|
||||
gf_log (this->name, GF_LOG_TRACE,
|
||||
"file %s is govinda!",
|
||||
local->loc.path);
|
||||
@ -1190,7 +1185,7 @@ sh_missing_entries_create (call_frame_t *frame, xlator_t *this)
|
||||
}
|
||||
} else {
|
||||
sh->source = i;
|
||||
type = sh->buf[i].st_mode & S_IFMT;
|
||||
type = sh->buf[i].ia_type;
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -1252,8 +1247,8 @@ static int
|
||||
sh_missing_entries_lookup_cbk (call_frame_t *frame, void *cookie,
|
||||
xlator_t *this,
|
||||
int32_t op_ret, int32_t op_errno,
|
||||
inode_t *inode, struct stat *buf, dict_t *xattr,
|
||||
struct stat *postparent)
|
||||
inode_t *inode, struct iatt *buf, dict_t *xattr,
|
||||
struct iatt *postparent)
|
||||
{
|
||||
int child_index = 0;
|
||||
afr_local_t *local = NULL;
|
||||
@ -1275,7 +1270,7 @@ sh_missing_entries_lookup_cbk (call_frame_t *frame, void *cookie,
|
||||
"path %s on subvolume %s is of mode 0%o",
|
||||
local->loc.path,
|
||||
priv->children[child_index]->name,
|
||||
buf->st_mode);
|
||||
buf->ia_type);
|
||||
|
||||
local->self_heal.buf[child_index] = *buf;
|
||||
local->self_heal.parentbuf = *postparent;
|
||||
@ -1472,7 +1467,7 @@ afr_local_t *afr_local_copy (afr_local_t *l, xlator_t *this)
|
||||
else
|
||||
shc->healing_fd = sh->healing_fd;
|
||||
shc->background = sh->background;
|
||||
shc->mode = sh->mode;
|
||||
shc->type = sh->type;
|
||||
|
||||
if (l->loc.path)
|
||||
loc_copy (&lc->loc, &l->loc);
|
||||
|
@ -20,7 +20,7 @@
|
||||
#ifndef __AFR_SELF_HEAL_COMMON_H__
|
||||
#define __AFR_SELF_HEAL_COMMON_H__
|
||||
|
||||
#define FILE_HAS_HOLES(buf) (((buf)->st_size) > ((buf)->st_blocks * 512))
|
||||
#define FILE_HAS_HOLES(buf) (((buf)->ia_size) > ((buf)->ia_blocks * 512))
|
||||
|
||||
typedef enum {
|
||||
AFR_SELF_HEAL_ENTRY,
|
||||
|
@ -124,7 +124,7 @@ afr_sh_data_flush_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
|
||||
|
||||
int
|
||||
afr_sh_data_setattr_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
|
||||
int32_t op_ret, int32_t op_errno, struct stat *statpre, struct stat *statpost)
|
||||
int32_t op_ret, int32_t op_errno, struct iatt *statpre, struct iatt *statpost)
|
||||
{
|
||||
afr_sh_data_flush_cbk (frame, cookie, this, op_ret, op_errno);
|
||||
|
||||
@ -145,7 +145,7 @@ afr_sh_data_close (call_frame_t *frame, xlator_t *this)
|
||||
int active_sinks = 0;
|
||||
int32_t valid = 0;
|
||||
|
||||
struct stat stbuf = {0,};
|
||||
struct iatt stbuf = {0,};
|
||||
|
||||
local = frame->local;
|
||||
sh = &local->self_heal;
|
||||
@ -156,17 +156,10 @@ afr_sh_data_close (call_frame_t *frame, xlator_t *this)
|
||||
|
||||
valid |= (GF_SET_ATTR_ATIME | GF_SET_ATTR_MTIME);
|
||||
|
||||
#ifdef HAVE_STRUCT_STAT_ST_ATIM_TV_NSEC
|
||||
stbuf.st_atim = sh->buf[source].st_atim;
|
||||
stbuf.st_mtim = sh->buf[source].st_mtim;
|
||||
|
||||
#elif HAVE_STRUCT_STAT_ST_ATIMESPEC_TV_NSEC
|
||||
stbuf.st_atimespec = sh->buf[source].st_atimespec;
|
||||
stbuf.st_mtimespec = sh->buf[source].st_mtimespec;
|
||||
#else
|
||||
stbuf.st_atime = sh->buf[source].st_atime;
|
||||
stbuf.st_mtime = sh->buf[source].st_mtime;
|
||||
#endif
|
||||
stbuf.ia_atime = sh->buf[source].ia_atime;
|
||||
stbuf.ia_atime_nsec = sh->buf[source].ia_atime_nsec;
|
||||
stbuf.ia_mtime = sh->buf[source].ia_mtime;
|
||||
stbuf.ia_mtime_nsec = sh->buf[source].ia_mtime_nsec;
|
||||
|
||||
if (sh->healing_fd_opened) {
|
||||
/* not our job to close the fd */
|
||||
@ -440,8 +433,8 @@ afr_sh_data_erase_pending (call_frame_t *frame, xlator_t *this)
|
||||
|
||||
int
|
||||
afr_sh_data_trim_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
|
||||
int32_t op_ret, int32_t op_errno, struct stat *prebuf,
|
||||
struct stat *postbuf)
|
||||
int32_t op_ret, int32_t op_errno, struct iatt *prebuf,
|
||||
struct iatt *postbuf)
|
||||
{
|
||||
afr_private_t * priv = NULL;
|
||||
afr_local_t * local = NULL;
|
||||
@ -543,7 +536,7 @@ sh_zero_byte_files_exist (afr_self_heal_t *sh, int child_count)
|
||||
int ret = 0;
|
||||
|
||||
for (i = 0; i < child_count; i++) {
|
||||
if (sh->buf[i].st_size == 0) {
|
||||
if (sh->buf[i].ia_size == 0) {
|
||||
ret = 1;
|
||||
break;
|
||||
}
|
||||
@ -722,13 +715,13 @@ afr_sh_data_fix (call_frame_t *frame, xlator_t *this)
|
||||
|
||||
sh->source = source;
|
||||
sh->block_size = 65536;
|
||||
sh->file_size = sh->buf[source].st_size;
|
||||
sh->file_size = sh->buf[source].ia_size;
|
||||
|
||||
if (FILE_HAS_HOLES (&sh->buf[source]))
|
||||
sh->file_has_holes = 1;
|
||||
|
||||
orig_local = sh->orig_frame->local;
|
||||
orig_local->cont.lookup.buf.st_size = sh->buf[source].st_size;
|
||||
orig_local->cont.lookup.buf.ia_size = sh->buf[source].ia_size;
|
||||
|
||||
/* detect changes not visible through pending flags -- JIC */
|
||||
for (i = 0; i < priv->child_count; i++) {
|
||||
@ -788,7 +781,7 @@ afr_self_heal_get_source (xlator_t *this, afr_local_t *local, dict_t **xattr)
|
||||
int
|
||||
afr_sh_data_fstat_cbk (call_frame_t *frame, void *cookie,
|
||||
xlator_t *this, int32_t op_ret, int32_t op_errno,
|
||||
struct stat *buf)
|
||||
struct iatt *buf)
|
||||
{
|
||||
afr_private_t *priv = NULL;
|
||||
afr_local_t *local = NULL;
|
||||
|
@ -448,7 +448,7 @@ int
|
||||
afr_sh_entry_expunge_parent_setattr_cbk (call_frame_t *expunge_frame,
|
||||
void *cookie, xlator_t *this,
|
||||
int32_t op_ret, int32_t op_errno,
|
||||
struct stat *preop, struct stat *postop)
|
||||
struct iatt *preop, struct iatt *postop)
|
||||
{
|
||||
afr_private_t *priv = NULL;
|
||||
afr_local_t *expunge_local = NULL;
|
||||
@ -480,11 +480,11 @@ int
|
||||
afr_sh_entry_expunge_rename_cbk (call_frame_t *expunge_frame, void *cookie,
|
||||
xlator_t *this,
|
||||
int32_t op_ret, int32_t op_errno,
|
||||
struct stat *buf,
|
||||
struct stat *preoldparent,
|
||||
struct stat *postoldparent,
|
||||
struct stat *prenewparent,
|
||||
struct stat *postnewparent)
|
||||
struct iatt *buf,
|
||||
struct iatt *preoldparent,
|
||||
struct iatt *postoldparent,
|
||||
struct iatt *prenewparent,
|
||||
struct iatt *postnewparent)
|
||||
{
|
||||
afr_private_t *priv = NULL;
|
||||
afr_local_t *expunge_local = NULL;
|
||||
@ -596,8 +596,8 @@ afr_sh_entry_expunge_rename (call_frame_t *expunge_frame, xlator_t *this,
|
||||
int
|
||||
afr_sh_entry_expunge_mkdir_cbk (call_frame_t *expunge_frame, void *cookie, xlator_t *this,
|
||||
int32_t op_ret, int32_t op_errno, inode_t *inode,
|
||||
struct stat *buf, struct stat *preparent,
|
||||
struct stat *postparent)
|
||||
struct iatt *buf, struct iatt *preparent,
|
||||
struct iatt *postparent)
|
||||
{
|
||||
afr_private_t *priv = NULL;
|
||||
afr_local_t *expunge_local = NULL;
|
||||
@ -640,8 +640,8 @@ int
|
||||
afr_sh_entry_expunge_lookup_trash_cbk (call_frame_t *expunge_frame, void *cookie,
|
||||
xlator_t *this,
|
||||
int32_t op_ret, int32_t op_errno,
|
||||
inode_t *inode, struct stat *buf,
|
||||
dict_t *xattr, struct stat *postparent)
|
||||
inode_t *inode, struct iatt *buf,
|
||||
dict_t *xattr, struct iatt *postparent)
|
||||
{
|
||||
afr_private_t *priv = NULL;
|
||||
afr_local_t *expunge_local = NULL;
|
||||
@ -745,7 +745,7 @@ afr_sh_entry_expunge_lookup_trash (call_frame_t *expunge_frame, xlator_t *this,
|
||||
|
||||
int
|
||||
afr_sh_entry_expunge_remove (call_frame_t *expunge_frame, xlator_t *this,
|
||||
int active_src, struct stat *buf)
|
||||
int active_src, struct iatt *buf)
|
||||
{
|
||||
afr_private_t *priv = NULL;
|
||||
afr_local_t *expunge_local = NULL;
|
||||
@ -760,7 +760,7 @@ afr_sh_entry_expunge_remove (call_frame_t *expunge_frame, xlator_t *this,
|
||||
frame = expunge_sh->sh_frame;
|
||||
source = expunge_sh->source;
|
||||
|
||||
type = (buf->st_mode & S_IFMT);
|
||||
type = buf->ia_type;
|
||||
|
||||
switch (type) {
|
||||
case S_IFSOCK:
|
||||
@ -794,8 +794,8 @@ int
|
||||
afr_sh_entry_expunge_lookup_cbk (call_frame_t *expunge_frame, void *cookie,
|
||||
xlator_t *this,
|
||||
int32_t op_ret, int32_t op_errno,
|
||||
inode_t *inode, struct stat *buf, dict_t *x,
|
||||
struct stat *postparent)
|
||||
inode_t *inode, struct iatt *buf, dict_t *x,
|
||||
struct iatt *postparent)
|
||||
{
|
||||
afr_private_t *priv = NULL;
|
||||
afr_local_t *expunge_local = NULL;
|
||||
@ -857,8 +857,8 @@ int
|
||||
afr_sh_entry_expunge_entry_cbk (call_frame_t *expunge_frame, void *cookie,
|
||||
xlator_t *this,
|
||||
int32_t op_ret, int32_t op_errno,
|
||||
inode_t *inode, struct stat *buf, dict_t *x,
|
||||
struct stat *postparent)
|
||||
inode_t *inode, struct iatt *buf, dict_t *x,
|
||||
struct iatt *postparent)
|
||||
{
|
||||
afr_private_t *priv = NULL;
|
||||
afr_local_t *expunge_local = NULL;
|
||||
@ -1148,7 +1148,7 @@ int
|
||||
afr_sh_entry_impunge_setattr_cbk (call_frame_t *impunge_frame, void *cookie,
|
||||
xlator_t *this,
|
||||
int32_t op_ret, int32_t op_errno,
|
||||
struct stat *preop, struct stat *postop)
|
||||
struct iatt *preop, struct iatt *postop)
|
||||
{
|
||||
int call_count = 0;
|
||||
afr_private_t *priv = NULL;
|
||||
@ -1209,7 +1209,7 @@ afr_sh_entry_impunge_xattrop_cbk (call_frame_t *impunge_frame, void *cookie,
|
||||
call_frame_t *frame = NULL;
|
||||
int child_index = 0;
|
||||
|
||||
struct stat stbuf;
|
||||
struct iatt stbuf;
|
||||
int32_t valid = 0;
|
||||
|
||||
priv = this->private;
|
||||
@ -1223,23 +1223,16 @@ afr_sh_entry_impunge_xattrop_cbk (call_frame_t *impunge_frame, void *cookie,
|
||||
"setting ownership of %s on %s to %d/%d",
|
||||
impunge_local->loc.path,
|
||||
priv->children[child_index]->name,
|
||||
impunge_local->cont.lookup.buf.st_uid,
|
||||
impunge_local->cont.lookup.buf.st_gid);
|
||||
impunge_local->cont.lookup.buf.ia_uid,
|
||||
impunge_local->cont.lookup.buf.ia_gid);
|
||||
|
||||
#ifdef HAVE_STRUCT_STAT_ST_ATIM_TV_NSEC
|
||||
stbuf.st_atim = impunge_local->cont.lookup.buf.st_atim;
|
||||
stbuf.st_mtim = impunge_local->cont.lookup.buf.st_mtim;
|
||||
stbuf.ia_atime = impunge_local->cont.lookup.buf.ia_atime;
|
||||
stbuf.ia_atime_nsec = impunge_local->cont.lookup.buf.ia_atime_nsec;
|
||||
stbuf.ia_mtime = impunge_local->cont.lookup.buf.ia_mtime;
|
||||
stbuf.ia_mtime_nsec = impunge_local->cont.lookup.buf.ia_mtime_nsec;
|
||||
|
||||
#elif HAVE_STRUCT_STAT_ST_ATIMESPEC_TV_NSEC
|
||||
stbuf.st_atimespec = impunge_local->cont.lookup.buf.st_atimespec;
|
||||
stbuf.st_mtimespec = impunge_local->cont.lookup.buf.st_mtimespec;
|
||||
#else
|
||||
stbuf.st_atime = impunge_local->cont.lookup.buf.st_atime;
|
||||
stbuf.st_mtime = impunge_local->cont.lookup.buf.st_mtime;
|
||||
#endif
|
||||
|
||||
stbuf.st_uid = impunge_local->cont.lookup.buf.st_uid;
|
||||
stbuf.st_gid = impunge_local->cont.lookup.buf.st_gid;
|
||||
stbuf.ia_uid = impunge_local->cont.lookup.buf.ia_uid;
|
||||
stbuf.ia_gid = impunge_local->cont.lookup.buf.ia_gid;
|
||||
|
||||
valid = GF_SET_ATTR_UID | GF_SET_ATTR_GID |
|
||||
GF_SET_ATTR_ATIME | GF_SET_ATTR_MTIME;
|
||||
@ -1258,7 +1251,7 @@ int
|
||||
afr_sh_entry_impunge_parent_setattr_cbk (call_frame_t *setattr_frame,
|
||||
void *cookie, xlator_t *this,
|
||||
int32_t op_ret, int32_t op_errno,
|
||||
struct stat *preop, struct stat *postop)
|
||||
struct iatt *preop, struct iatt *postop)
|
||||
{
|
||||
loc_t *parent_loc = cookie;
|
||||
|
||||
@ -1281,9 +1274,9 @@ int
|
||||
afr_sh_entry_impunge_newfile_cbk (call_frame_t *impunge_frame, void *cookie,
|
||||
xlator_t *this,
|
||||
int32_t op_ret, int32_t op_errno,
|
||||
inode_t *inode, struct stat *stbuf,
|
||||
struct stat *preparent,
|
||||
struct stat *postparent)
|
||||
inode_t *inode, struct iatt *stbuf,
|
||||
struct iatt *preparent,
|
||||
struct iatt *postparent)
|
||||
{
|
||||
int call_count = 0;
|
||||
afr_private_t *priv = NULL;
|
||||
@ -1302,7 +1295,7 @@ afr_sh_entry_impunge_newfile_cbk (call_frame_t *impunge_frame, void *cookie,
|
||||
call_frame_t *setattr_frame = NULL;
|
||||
int32_t valid = 0;
|
||||
loc_t *parent_loc = NULL;
|
||||
struct stat parentbuf;
|
||||
struct iatt parentbuf;
|
||||
|
||||
priv = this->private;
|
||||
impunge_local = impunge_frame->local;
|
||||
@ -1323,14 +1316,14 @@ afr_sh_entry_impunge_newfile_cbk (call_frame_t *impunge_frame, void *cookie,
|
||||
goto out;
|
||||
}
|
||||
|
||||
inode->st_mode = stbuf->st_mode;
|
||||
inode->ia_type = stbuf->ia_type;
|
||||
|
||||
xattr = get_new_dict ();
|
||||
dict_ref (xattr);
|
||||
|
||||
idx = afr_index_for_transaction_type (AFR_METADATA_TRANSACTION);
|
||||
pending_array[idx] = hton32 (1);
|
||||
if (S_ISDIR (stbuf->st_mode))
|
||||
if (IA_ISDIR (stbuf->ia_type))
|
||||
idx = afr_index_for_transaction_type (AFR_ENTRY_TRANSACTION);
|
||||
else
|
||||
idx = afr_index_for_transaction_type (AFR_DATA_TRANSACTION);
|
||||
@ -1380,7 +1373,7 @@ out:
|
||||
|
||||
int
|
||||
afr_sh_entry_impunge_mknod (call_frame_t *impunge_frame, xlator_t *this,
|
||||
int child_index, struct stat *stbuf)
|
||||
int child_index, struct iatt *stbuf)
|
||||
{
|
||||
afr_private_t *priv = NULL;
|
||||
afr_local_t *impunge_local = NULL;
|
||||
@ -1401,7 +1394,8 @@ afr_sh_entry_impunge_mknod (call_frame_t *impunge_frame, xlator_t *this,
|
||||
priv->children[child_index],
|
||||
priv->children[child_index]->fops->mknod,
|
||||
&impunge_local->loc,
|
||||
stbuf->st_mode, stbuf->st_rdev);
|
||||
st_mode_from_ia (stbuf->ia_prot, stbuf->ia_type),
|
||||
stbuf->ia_rdev);
|
||||
|
||||
return 0;
|
||||
}
|
||||
@ -1410,7 +1404,7 @@ afr_sh_entry_impunge_mknod (call_frame_t *impunge_frame, xlator_t *this,
|
||||
|
||||
int
|
||||
afr_sh_entry_impunge_mkdir (call_frame_t *impunge_frame, xlator_t *this,
|
||||
int child_index, struct stat *stbuf)
|
||||
int child_index, struct iatt *stbuf)
|
||||
{
|
||||
afr_private_t *priv = NULL;
|
||||
afr_local_t *impunge_local = NULL;
|
||||
@ -1430,7 +1424,8 @@ afr_sh_entry_impunge_mkdir (call_frame_t *impunge_frame, xlator_t *this,
|
||||
(void *) (long) child_index,
|
||||
priv->children[child_index],
|
||||
priv->children[child_index]->fops->mkdir,
|
||||
&impunge_local->loc, stbuf->st_mode);
|
||||
&impunge_local->loc,
|
||||
st_mode_from_ia (stbuf->ia_prot, stbuf->ia_type));
|
||||
|
||||
return 0;
|
||||
}
|
||||
@ -1468,8 +1463,8 @@ int
|
||||
afr_sh_entry_impunge_symlink_unlink_cbk (call_frame_t *impunge_frame,
|
||||
void *cookie, xlator_t *this,
|
||||
int32_t op_ret, int32_t op_errno,
|
||||
struct stat *preparent,
|
||||
struct stat *postparent)
|
||||
struct iatt *preparent,
|
||||
struct iatt *postparent)
|
||||
{
|
||||
afr_private_t *priv = NULL;
|
||||
afr_local_t *impunge_local = NULL;
|
||||
@ -1547,7 +1542,7 @@ int
|
||||
afr_sh_entry_impunge_readlink_sink_cbk (call_frame_t *impunge_frame, void *cookie,
|
||||
xlator_t *this,
|
||||
int32_t op_ret, int32_t op_errno,
|
||||
const char *linkname, struct stat *sbuf)
|
||||
const char *linkname, struct iatt *sbuf)
|
||||
{
|
||||
afr_private_t *priv = NULL;
|
||||
afr_local_t *impunge_local = NULL;
|
||||
@ -1646,7 +1641,7 @@ int
|
||||
afr_sh_entry_impunge_readlink_cbk (call_frame_t *impunge_frame, void *cookie,
|
||||
xlator_t *this,
|
||||
int32_t op_ret, int32_t op_errno,
|
||||
const char *linkname, struct stat *sbuf)
|
||||
const char *linkname, struct iatt *sbuf)
|
||||
{
|
||||
afr_private_t *priv = NULL;
|
||||
afr_local_t *impunge_local = NULL;
|
||||
@ -1697,7 +1692,7 @@ out:
|
||||
|
||||
int
|
||||
afr_sh_entry_impunge_readlink (call_frame_t *impunge_frame, xlator_t *this,
|
||||
int child_index, struct stat *stbuf)
|
||||
int child_index, struct iatt *stbuf)
|
||||
{
|
||||
afr_private_t *priv = NULL;
|
||||
afr_local_t *impunge_local = NULL;
|
||||
@ -1723,8 +1718,8 @@ int
|
||||
afr_sh_entry_impunge_recreate_lookup_cbk (call_frame_t *impunge_frame,
|
||||
void *cookie, xlator_t *this,
|
||||
int32_t op_ret, int32_t op_errno,
|
||||
inode_t *inode, struct stat *buf,
|
||||
dict_t *xattr,struct stat *postparent)
|
||||
inode_t *inode, struct iatt *buf,
|
||||
dict_t *xattr,struct iatt *postparent)
|
||||
{
|
||||
afr_private_t *priv = NULL;
|
||||
afr_local_t *impunge_local = NULL;
|
||||
@ -1757,7 +1752,7 @@ afr_sh_entry_impunge_recreate_lookup_cbk (call_frame_t *impunge_frame,
|
||||
impunge_sh->parentbuf = *postparent;
|
||||
|
||||
impunge_local->cont.lookup.buf = *buf;
|
||||
type = (buf->st_mode & S_IFMT);
|
||||
type = buf->ia_type;
|
||||
|
||||
switch (type) {
|
||||
case S_IFSOCK:
|
||||
@ -1834,8 +1829,8 @@ int
|
||||
afr_sh_entry_impunge_entry_cbk (call_frame_t *impunge_frame, void *cookie,
|
||||
xlator_t *this,
|
||||
int32_t op_ret, int32_t op_errno,
|
||||
inode_t *inode, struct stat *buf, dict_t *x,
|
||||
struct stat *postparent)
|
||||
inode_t *inode, struct iatt *buf, dict_t *x,
|
||||
struct iatt *postparent)
|
||||
{
|
||||
afr_private_t *priv = NULL;
|
||||
afr_local_t *impunge_local = NULL;
|
||||
@ -1953,7 +1948,8 @@ afr_sh_entry_impunge_entry (call_frame_t *frame, xlator_t *this,
|
||||
impunge_sh->sh_frame = frame;
|
||||
impunge_sh->active_source = active_src;
|
||||
|
||||
impunge_sh->impunging_entry_mode = entry->d_stat.st_mode;
|
||||
impunge_sh->impunging_entry_mode =
|
||||
st_mode_from_ia (entry->d_stat.ia_prot, entry->d_stat.ia_type);
|
||||
|
||||
ret = build_child_loc (this, &impunge_local->loc, &local->loc, entry->d_name);
|
||||
if (ret != 0) {
|
||||
@ -2357,8 +2353,8 @@ heal:
|
||||
int
|
||||
afr_sh_entry_lookup_cbk (call_frame_t *frame, void *cookie,
|
||||
xlator_t *this, int32_t op_ret, int32_t op_errno,
|
||||
inode_t *inode, struct stat *buf, dict_t *xattr,
|
||||
struct stat *postparent)
|
||||
inode_t *inode, struct iatt *buf, dict_t *xattr,
|
||||
struct iatt *postparent)
|
||||
{
|
||||
afr_private_t *priv = NULL;
|
||||
afr_local_t *local = NULL;
|
||||
|
@ -81,7 +81,7 @@ afr_sh_metadata_done (call_frame_t *frame, xlator_t *this)
|
||||
local->loc.path);
|
||||
sh->completion_cbk (frame, this);
|
||||
} else {
|
||||
if (S_ISREG (sh->mode)) {
|
||||
if (IA_ISREG (sh->type)) {
|
||||
gf_log (this->name, GF_LOG_TRACE,
|
||||
"proceeding to data check on %s",
|
||||
local->loc.path);
|
||||
@ -89,7 +89,7 @@ afr_sh_metadata_done (call_frame_t *frame, xlator_t *this)
|
||||
return 0;
|
||||
}
|
||||
|
||||
if (S_ISDIR (sh->mode)) {
|
||||
if (IA_ISDIR (sh->type)) {
|
||||
gf_log (this->name, GF_LOG_TRACE,
|
||||
"proceeding to entry check on %s",
|
||||
local->loc.path);
|
||||
@ -321,7 +321,7 @@ afr_sh_metadata_sync_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
|
||||
int
|
||||
afr_sh_metadata_setattr_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
|
||||
int32_t op_ret, int32_t op_errno,
|
||||
struct stat *preop, struct stat *postop)
|
||||
struct iatt *preop, struct iatt *postop)
|
||||
{
|
||||
afr_sh_metadata_sync_cbk (frame, cookie, this, op_ret, op_errno);
|
||||
|
||||
@ -350,7 +350,7 @@ afr_sh_metadata_sync (call_frame_t *frame, xlator_t *this, dict_t *xattr)
|
||||
int call_count = 0;
|
||||
int i = 0;
|
||||
|
||||
struct stat stbuf;
|
||||
struct iatt stbuf;
|
||||
int32_t valid = 0;
|
||||
|
||||
local = frame->local;
|
||||
@ -370,22 +370,16 @@ afr_sh_metadata_sync (call_frame_t *frame, xlator_t *this, dict_t *xattr)
|
||||
|
||||
local->call_count = call_count;
|
||||
|
||||
#ifdef HAVE_STRUCT_STAT_ST_ATIM_TV_NSEC
|
||||
stbuf.st_atim = sh->buf[source].st_atim;
|
||||
stbuf.st_mtim = sh->buf[source].st_mtim;
|
||||
|
||||
#elif HAVE_STRUCT_STAT_ST_ATIMESPEC_TV_NSEC
|
||||
stbuf.st_atimespec = sh->buf[source].st_atimespec;
|
||||
stbuf.st_mtimespec = sh->buf[source].st_mtimespec;
|
||||
#else
|
||||
stbuf.st_atime = sh->buf[source].st_atime;
|
||||
stbuf.st_mtime = sh->buf[source].st_mtime;
|
||||
#endif
|
||||
stbuf.ia_atime = sh->buf[source].ia_atime;
|
||||
stbuf.ia_atime_nsec = sh->buf[source].ia_atime_nsec;
|
||||
stbuf.ia_mtime = sh->buf[source].ia_mtime;
|
||||
stbuf.ia_mtime_nsec = sh->buf[source].ia_mtime_nsec;
|
||||
|
||||
stbuf.st_uid = sh->buf[source].st_uid;
|
||||
stbuf.st_gid = sh->buf[source].st_gid;
|
||||
stbuf.ia_uid = sh->buf[source].ia_uid;
|
||||
stbuf.ia_gid = sh->buf[source].ia_gid;
|
||||
|
||||
stbuf.st_mode = sh->buf[source].st_mode;
|
||||
stbuf.ia_type = sh->buf[source].ia_type;
|
||||
stbuf.ia_prot = sh->buf[source].ia_prot;
|
||||
|
||||
valid = GF_SET_ATTR_MODE |
|
||||
GF_SET_ATTR_UID | GF_SET_ATTR_GID |
|
||||
@ -604,8 +598,8 @@ afr_sh_metadata_fix (call_frame_t *frame, xlator_t *this)
|
||||
int
|
||||
afr_sh_metadata_lookup_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
|
||||
int32_t op_ret, int32_t op_errno,
|
||||
inode_t *inode, struct stat *buf, dict_t *xattr,
|
||||
struct stat *postparent)
|
||||
inode_t *inode, struct iatt *buf, dict_t *xattr,
|
||||
struct iatt *postparent)
|
||||
{
|
||||
afr_local_t *local = NULL;
|
||||
afr_self_heal_t *sh = NULL;
|
||||
@ -627,7 +621,7 @@ afr_sh_metadata_lookup_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
|
||||
"path %s on subvolume %s is of mode 0%o",
|
||||
local->loc.path,
|
||||
priv->children[child_index]->name,
|
||||
buf->st_mode);
|
||||
buf->ia_type);
|
||||
|
||||
sh->buf[child_index] = *buf;
|
||||
if (xattr)
|
||||
|
@ -22,12 +22,12 @@
|
||||
|
||||
#include <sys/stat.h>
|
||||
|
||||
#define FILETYPE_DIFFERS(buf1,buf2) ((S_IFMT & ((struct stat *)buf1)->st_mode) != (S_IFMT & ((struct stat *)buf2)->st_mode))
|
||||
#define PERMISSION_DIFFERS(buf1,buf2) ((((struct stat *)buf1)->st_mode) != (((struct stat *)buf2)->st_mode))
|
||||
#define OWNERSHIP_DIFFERS(buf1,buf2) ((((struct stat *)buf1)->st_uid) != (((struct stat *)buf2)->st_uid) || (((struct stat *)buf1)->st_gid != (((struct stat *)buf2)->st_gid)))
|
||||
#define SIZE_DIFFERS(buf1,buf2) ((((struct stat *)buf1)->st_size) != (((struct stat *)buf2)->st_size))
|
||||
#define FILETYPE_DIFFERS(buf1,buf2) ((buf1)->ia_type != (buf2)->ia_type)
|
||||
#define PERMISSION_DIFFERS(buf1,buf2) (st_mode_from_ia ((buf1)->ia_prot, (buf1)->ia_type) != st_mode_from_ia ((buf2)->ia_prot, (buf2)->ia_type))
|
||||
#define OWNERSHIP_DIFFERS(buf1,buf2) (((buf1)->ia_uid != (buf2)->ia_uid) || ((buf1)->ia_gid != (buf2)->ia_gid))
|
||||
#define SIZE_DIFFERS(buf1,buf2) ((buf1)->ia_size != (buf2)->ia_size)
|
||||
|
||||
#define SIZE_GREATER(buf1,buf2) ((((struct stat *)buf1)->st_size > (((struct stat *)buf2)->st_size)))
|
||||
#define SIZE_GREATER(buf1,buf2) ((buf1)->ia_size > (buf2)->ia_size)
|
||||
|
||||
int
|
||||
afr_sh_has_metadata_pending (dict_t *xattr, int child_count, xlator_t *this);
|
||||
|
@ -551,8 +551,8 @@ afr_lookup_collect_xattr (afr_local_t *local, xlator_t *this,
|
||||
|
||||
|
||||
static void
|
||||
afr_lookup_self_heal_check (afr_local_t *local, struct stat *buf,
|
||||
struct stat *lookup_buf)
|
||||
afr_lookup_self_heal_check (afr_local_t *local, struct iatt *buf,
|
||||
struct iatt *lookup_buf)
|
||||
{
|
||||
if (FILETYPE_DIFFERS (buf, lookup_buf)) {
|
||||
/* mismatching filetypes with same name
|
||||
@ -576,7 +576,7 @@ afr_lookup_self_heal_check (afr_local_t *local, struct stat *buf,
|
||||
}
|
||||
|
||||
if (SIZE_DIFFERS (buf, lookup_buf)
|
||||
&& S_ISREG (buf->st_mode)) {
|
||||
&& IA_ISREG (buf->ia_type)) {
|
||||
local->self_heal.need_data_self_heal = _gf_true;
|
||||
}
|
||||
|
||||
@ -584,7 +584,7 @@ afr_lookup_self_heal_check (afr_local_t *local, struct stat *buf,
|
||||
|
||||
|
||||
static void
|
||||
afr_lookup_done (call_frame_t *frame, xlator_t *this, struct stat *lookup_buf)
|
||||
afr_lookup_done (call_frame_t *frame, xlator_t *this, struct iatt *lookup_buf)
|
||||
{
|
||||
int unwind = 1;
|
||||
int source = -1;
|
||||
@ -593,20 +593,20 @@ afr_lookup_done (call_frame_t *frame, xlator_t *this, struct stat *lookup_buf)
|
||||
|
||||
local = frame->local;
|
||||
|
||||
local->cont.lookup.postparent.st_ino = local->cont.lookup.parent_ino;
|
||||
local->cont.lookup.postparent.ia_ino = local->cont.lookup.parent_ino;
|
||||
|
||||
if (local->cont.lookup.ino) {
|
||||
local->cont.lookup.buf.st_ino = local->cont.lookup.ino;
|
||||
local->cont.lookup.buf.st_dev = local->cont.lookup.gen;
|
||||
local->cont.lookup.buf.ia_ino = local->cont.lookup.ino;
|
||||
local->cont.lookup.buf.ia_gen = local->cont.lookup.gen;
|
||||
}
|
||||
|
||||
if (local->op_ret == 0) {
|
||||
/* KLUDGE: assuming DHT will not itransform in
|
||||
revalidate */
|
||||
if (local->cont.lookup.inode->ino) {
|
||||
local->cont.lookup.buf.st_ino =
|
||||
local->cont.lookup.buf.ia_ino =
|
||||
local->cont.lookup.inode->ino;
|
||||
local->cont.lookup.buf.st_dev =
|
||||
local->cont.lookup.buf.ia_gen =
|
||||
local->cont.lookup.inode->generation;
|
||||
}
|
||||
}
|
||||
@ -638,7 +638,7 @@ afr_lookup_done (call_frame_t *frame, xlator_t *this, struct stat *lookup_buf)
|
||||
So just make a best effort to set the read-subvolume
|
||||
and return */
|
||||
|
||||
if (S_ISREG (local->cont.lookup.inode->st_mode)) {
|
||||
if (IA_ISREG (local->cont.lookup.inode->ia_type)) {
|
||||
source = afr_self_heal_get_source (this, local, local->cont.lookup.xattrs);
|
||||
|
||||
if (source >= 0) {
|
||||
@ -648,14 +648,14 @@ afr_lookup_done (call_frame_t *frame, xlator_t *this, struct stat *lookup_buf)
|
||||
}
|
||||
}
|
||||
} else {
|
||||
if (!local->cont.lookup.inode->st_mode) {
|
||||
if (!local->cont.lookup.inode->ia_type) {
|
||||
/* fix for RT #602 */
|
||||
local->cont.lookup.inode->st_mode =
|
||||
lookup_buf->st_mode;
|
||||
local->cont.lookup.inode->ia_type =
|
||||
lookup_buf->ia_type;
|
||||
}
|
||||
|
||||
local->self_heal.background = _gf_true;
|
||||
local->self_heal.mode = local->cont.lookup.buf.st_mode;
|
||||
local->self_heal.type = local->cont.lookup.buf.ia_type;
|
||||
local->self_heal.unwind = afr_self_heal_lookup_unwind;
|
||||
|
||||
unwind = 0;
|
||||
@ -704,12 +704,12 @@ __error_more_important (int32_t old_errno, int32_t new_errno)
|
||||
int
|
||||
afr_fresh_lookup_cbk (call_frame_t *frame, void *cookie,
|
||||
xlator_t *this, int32_t op_ret, int32_t op_errno,
|
||||
inode_t *inode, struct stat *buf, dict_t *xattr,
|
||||
struct stat *postparent)
|
||||
inode_t *inode, struct iatt *buf, dict_t *xattr,
|
||||
struct iatt *postparent)
|
||||
{
|
||||
afr_local_t * local = NULL;
|
||||
afr_private_t * priv = NULL;
|
||||
struct stat * lookup_buf = NULL;
|
||||
struct iatt * lookup_buf = NULL;
|
||||
|
||||
int call_count = -1;
|
||||
int child_index = -1;
|
||||
@ -744,10 +744,10 @@ afr_fresh_lookup_cbk (call_frame_t *frame, void *cookie,
|
||||
|
||||
if (child_index == first_up_child) {
|
||||
local->cont.lookup.ino =
|
||||
afr_itransform (buf->st_ino,
|
||||
afr_itransform (buf->ia_ino,
|
||||
priv->child_count,
|
||||
first_up_child);
|
||||
local->cont.lookup.gen = buf->st_dev;
|
||||
local->cont.lookup.gen = buf->ia_gen;
|
||||
}
|
||||
|
||||
if (local->success_count == 0) {
|
||||
@ -761,7 +761,7 @@ afr_fresh_lookup_cbk (call_frame_t *frame, void *cookie,
|
||||
|
||||
*lookup_buf = *buf;
|
||||
|
||||
lookup_buf->st_ino = afr_itransform (buf->st_ino,
|
||||
lookup_buf->ia_ino = afr_itransform (buf->ia_ino,
|
||||
priv->child_count,
|
||||
child_index);
|
||||
if (priv->read_child >= 0) {
|
||||
@ -824,12 +824,12 @@ unlock:
|
||||
int
|
||||
afr_revalidate_lookup_cbk (call_frame_t *frame, void *cookie,
|
||||
xlator_t *this, int32_t op_ret, int32_t op_errno,
|
||||
inode_t *inode, struct stat *buf, dict_t *xattr,
|
||||
struct stat *postparent)
|
||||
inode_t *inode, struct iatt *buf, dict_t *xattr,
|
||||
struct iatt *postparent)
|
||||
{
|
||||
afr_local_t * local = NULL;
|
||||
afr_private_t * priv = NULL;
|
||||
struct stat * lookup_buf = NULL;
|
||||
struct iatt * lookup_buf = NULL;
|
||||
|
||||
int call_count = -1;
|
||||
int child_index = -1;
|
||||
@ -864,10 +864,10 @@ afr_revalidate_lookup_cbk (call_frame_t *frame, void *cookie,
|
||||
|
||||
if (child_index == first_up_child) {
|
||||
local->cont.lookup.ino =
|
||||
afr_itransform (buf->st_ino,
|
||||
afr_itransform (buf->ia_ino,
|
||||
priv->child_count,
|
||||
first_up_child);
|
||||
local->cont.lookup.gen = buf->st_dev;
|
||||
local->cont.lookup.gen = buf->ia_gen;
|
||||
}
|
||||
|
||||
/* in case of revalidate, we need to send stat of the
|
||||
@ -889,7 +889,7 @@ afr_revalidate_lookup_cbk (call_frame_t *frame, void *cookie,
|
||||
|
||||
*lookup_buf = *buf;
|
||||
|
||||
lookup_buf->st_ino = afr_itransform (buf->st_ino,
|
||||
lookup_buf->ia_ino = afr_itransform (buf->ia_ino,
|
||||
priv->child_count,
|
||||
child_index);
|
||||
|
||||
@ -1460,8 +1460,8 @@ out:
|
||||
|
||||
int
|
||||
afr_fsync_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
|
||||
int32_t op_ret, int32_t op_errno, struct stat *prebuf,
|
||||
struct stat *postbuf)
|
||||
int32_t op_ret, int32_t op_errno, struct iatt *prebuf,
|
||||
struct iatt *postbuf)
|
||||
{
|
||||
afr_local_t *local = NULL;
|
||||
|
||||
@ -1503,8 +1503,8 @@ afr_fsync_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
|
||||
call_count = afr_frame_return (frame);
|
||||
|
||||
if (call_count == 0) {
|
||||
local->cont.fsync.prebuf.st_ino = local->cont.fsync.ino;
|
||||
local->cont.fsync.postbuf.st_ino = local->cont.fsync.ino;
|
||||
local->cont.fsync.prebuf.ia_ino = local->cont.fsync.ino;
|
||||
local->cont.fsync.postbuf.ia_ino = local->cont.fsync.ino;
|
||||
|
||||
AFR_STACK_UNWIND (fsync, frame, local->op_ret, local->op_errno,
|
||||
&local->cont.fsync.prebuf,
|
||||
|
@ -97,7 +97,7 @@ typedef struct {
|
||||
gf_boolean_t background; /* do self-heal in background
|
||||
if possible */
|
||||
|
||||
mode_t mode; /* st_mode of the entry we're doing
|
||||
ia_type_t type; /* st_mode of the entry we're doing
|
||||
self-heal on */
|
||||
|
||||
/* Function to call to unwind. If self-heal is being done in the
|
||||
@ -109,8 +109,8 @@ typedef struct {
|
||||
|
||||
|
||||
/* array of stat's, one for each child */
|
||||
struct stat *buf;
|
||||
struct stat parentbuf;
|
||||
struct iatt *buf;
|
||||
struct iatt parentbuf;
|
||||
|
||||
/* array of xattr's, one for each child */
|
||||
dict_t **xattr;
|
||||
@ -251,9 +251,9 @@ typedef struct _afr_local {
|
||||
|
||||
struct {
|
||||
inode_t *inode;
|
||||
struct stat buf;
|
||||
struct stat read_child_buf;
|
||||
struct stat postparent;
|
||||
struct iatt buf;
|
||||
struct iatt read_child_buf;
|
||||
struct iatt postparent;
|
||||
ino_t ino;
|
||||
uint64_t gen;
|
||||
ino_t parent_ino;
|
||||
@ -348,8 +348,8 @@ typedef struct _afr_local {
|
||||
|
||||
struct {
|
||||
ino_t ino;
|
||||
struct stat prebuf;
|
||||
struct stat postbuf;
|
||||
struct iatt prebuf;
|
||||
struct iatt postbuf;
|
||||
|
||||
int32_t op_ret;
|
||||
|
||||
@ -361,38 +361,38 @@ typedef struct _afr_local {
|
||||
|
||||
struct {
|
||||
ino_t ino;
|
||||
struct stat prebuf;
|
||||
struct stat postbuf;
|
||||
struct iatt prebuf;
|
||||
struct iatt postbuf;
|
||||
} fsync;
|
||||
|
||||
struct {
|
||||
ino_t ino;
|
||||
off_t offset;
|
||||
struct stat prebuf;
|
||||
struct stat postbuf;
|
||||
struct iatt prebuf;
|
||||
struct iatt postbuf;
|
||||
} truncate;
|
||||
|
||||
struct {
|
||||
ino_t ino;
|
||||
off_t offset;
|
||||
struct stat prebuf;
|
||||
struct stat postbuf;
|
||||
struct iatt prebuf;
|
||||
struct iatt postbuf;
|
||||
} ftruncate;
|
||||
|
||||
struct {
|
||||
ino_t ino;
|
||||
struct stat in_buf;
|
||||
struct iatt in_buf;
|
||||
int32_t valid;
|
||||
struct stat preop_buf;
|
||||
struct stat postop_buf;
|
||||
struct iatt preop_buf;
|
||||
struct iatt postop_buf;
|
||||
} setattr;
|
||||
|
||||
struct {
|
||||
ino_t ino;
|
||||
struct stat in_buf;
|
||||
struct iatt in_buf;
|
||||
int32_t valid;
|
||||
struct stat preop_buf;
|
||||
struct stat postop_buf;
|
||||
struct iatt preop_buf;
|
||||
struct iatt postop_buf;
|
||||
} fsetattr;
|
||||
|
||||
struct {
|
||||
@ -414,10 +414,10 @@ typedef struct _afr_local {
|
||||
int32_t flags;
|
||||
mode_t mode;
|
||||
inode_t *inode;
|
||||
struct stat buf;
|
||||
struct stat preparent;
|
||||
struct stat postparent;
|
||||
struct stat read_child_buf;
|
||||
struct iatt buf;
|
||||
struct iatt preparent;
|
||||
struct iatt postparent;
|
||||
struct iatt read_child_buf;
|
||||
} create;
|
||||
|
||||
struct {
|
||||
@ -427,10 +427,10 @@ typedef struct _afr_local {
|
||||
dev_t dev;
|
||||
mode_t mode;
|
||||
inode_t *inode;
|
||||
struct stat buf;
|
||||
struct stat preparent;
|
||||
struct stat postparent;
|
||||
struct stat read_child_buf;
|
||||
struct iatt buf;
|
||||
struct iatt preparent;
|
||||
struct iatt postparent;
|
||||
struct iatt read_child_buf;
|
||||
} mknod;
|
||||
|
||||
struct {
|
||||
@ -439,38 +439,38 @@ typedef struct _afr_local {
|
||||
ino_t parent_ino;
|
||||
int32_t mode;
|
||||
inode_t *inode;
|
||||
struct stat buf;
|
||||
struct stat read_child_buf;
|
||||
struct stat preparent;
|
||||
struct stat postparent;
|
||||
struct iatt buf;
|
||||
struct iatt read_child_buf;
|
||||
struct iatt preparent;
|
||||
struct iatt postparent;
|
||||
} mkdir;
|
||||
|
||||
struct {
|
||||
ino_t parent_ino;
|
||||
int32_t op_ret;
|
||||
int32_t op_errno;
|
||||
struct stat preparent;
|
||||
struct stat postparent;
|
||||
struct iatt preparent;
|
||||
struct iatt postparent;
|
||||
} unlink;
|
||||
|
||||
struct {
|
||||
ino_t parent_ino;
|
||||
int32_t op_ret;
|
||||
int32_t op_errno;
|
||||
struct stat preparent;
|
||||
struct stat postparent;
|
||||
struct iatt preparent;
|
||||
struct iatt postparent;
|
||||
} rmdir;
|
||||
|
||||
struct {
|
||||
ino_t oldparent_ino;
|
||||
ino_t newparent_ino;
|
||||
ino_t ino;
|
||||
struct stat buf;
|
||||
struct stat read_child_buf;
|
||||
struct stat preoldparent;
|
||||
struct stat prenewparent;
|
||||
struct stat postoldparent;
|
||||
struct stat postnewparent;
|
||||
struct iatt buf;
|
||||
struct iatt read_child_buf;
|
||||
struct iatt preoldparent;
|
||||
struct iatt prenewparent;
|
||||
struct iatt postoldparent;
|
||||
struct iatt postnewparent;
|
||||
} rename;
|
||||
|
||||
struct {
|
||||
@ -478,10 +478,10 @@ typedef struct _afr_local {
|
||||
uint64_t gen;
|
||||
ino_t parent_ino;
|
||||
inode_t *inode;
|
||||
struct stat buf;
|
||||
struct stat read_child_buf;
|
||||
struct stat preparent;
|
||||
struct stat postparent;
|
||||
struct iatt buf;
|
||||
struct iatt read_child_buf;
|
||||
struct iatt preparent;
|
||||
struct iatt postparent;
|
||||
} link;
|
||||
|
||||
struct {
|
||||
@ -489,11 +489,11 @@ typedef struct _afr_local {
|
||||
uint64_t gen;
|
||||
ino_t parent_ino;
|
||||
inode_t *inode;
|
||||
struct stat buf;
|
||||
struct stat read_child_buf;
|
||||
struct iatt buf;
|
||||
struct iatt read_child_buf;
|
||||
char *linkpath;
|
||||
struct stat preparent;
|
||||
struct stat postparent;
|
||||
struct iatt preparent;
|
||||
struct iatt postparent;
|
||||
} symlink;
|
||||
|
||||
struct {
|
||||
|
@ -59,8 +59,8 @@ dht_lookup_selfheal_cbk (call_frame_t *frame, void *cookie,
|
||||
layout = local->selfheal.layout;
|
||||
ret = dht_layout_set (this, local->inode, layout);
|
||||
|
||||
if (local->st_ino) {
|
||||
local->stbuf.st_ino = local->st_ino;
|
||||
if (local->ia_ino) {
|
||||
local->stbuf.ia_ino = local->ia_ino;
|
||||
} else {
|
||||
gf_log (this->name, GF_LOG_DEBUG,
|
||||
"could not find hashed subvolume for %s",
|
||||
@ -68,7 +68,7 @@ dht_lookup_selfheal_cbk (call_frame_t *frame, void *cookie,
|
||||
}
|
||||
|
||||
if (local->loc.parent)
|
||||
local->postparent.st_ino = local->loc.parent->ino;
|
||||
local->postparent.ia_ino = local->loc.parent->ino;
|
||||
}
|
||||
|
||||
WIPE (&local->postparent);
|
||||
@ -83,8 +83,8 @@ dht_lookup_selfheal_cbk (call_frame_t *frame, void *cookie,
|
||||
int
|
||||
dht_lookup_dir_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
|
||||
int op_ret, int op_errno,
|
||||
inode_t *inode, struct stat *stbuf, dict_t *xattr,
|
||||
struct stat *postparent)
|
||||
inode_t *inode, struct iatt *stbuf, dict_t *xattr,
|
||||
struct iatt *postparent)
|
||||
{
|
||||
dht_conf_t *conf = NULL;
|
||||
dht_local_t *local = NULL;
|
||||
@ -125,7 +125,7 @@ dht_lookup_dir_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
|
||||
gf_log (this->name, GF_LOG_DEBUG,
|
||||
"lookup of %s on %s returned non dir 0%o",
|
||||
local->loc.path, prev->this->name,
|
||||
stbuf->st_mode);
|
||||
stbuf->ia_type);
|
||||
local->need_selfheal = 1;
|
||||
goto unlock;
|
||||
}
|
||||
@ -136,13 +136,13 @@ dht_lookup_dir_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
|
||||
if (local->inode == NULL)
|
||||
local->inode = inode_ref (inode);
|
||||
|
||||
dht_stat_merge (this, &local->stbuf, stbuf, prev->this);
|
||||
dht_stat_merge (this, &local->postparent, postparent,
|
||||
dht_iatt_merge (this, &local->stbuf, stbuf, prev->this);
|
||||
dht_iatt_merge (this, &local->postparent, postparent,
|
||||
prev->this);
|
||||
|
||||
if (prev->this == dht_first_up_subvol (this)) {
|
||||
local->st_ino = local->stbuf.st_ino;
|
||||
local->st_dev = local->stbuf.st_dev;
|
||||
local->ia_ino = local->stbuf.ia_ino;
|
||||
local->ia_gen = local->stbuf.ia_gen;
|
||||
}
|
||||
|
||||
}
|
||||
@ -171,9 +171,9 @@ unlock:
|
||||
|
||||
dht_layout_set (this, local->inode, layout);
|
||||
|
||||
if (local->st_ino) {
|
||||
local->stbuf.st_ino = local->st_ino;
|
||||
local->stbuf.st_dev = local->st_dev;
|
||||
if (local->ia_ino) {
|
||||
local->stbuf.ia_ino = local->ia_ino;
|
||||
local->stbuf.ia_gen = local->ia_gen;
|
||||
} else {
|
||||
gf_log (this->name, GF_LOG_DEBUG,
|
||||
"could not find hashed subvol for %s",
|
||||
@ -181,7 +181,7 @@ unlock:
|
||||
}
|
||||
|
||||
if (local->loc.parent)
|
||||
local->postparent.st_ino =
|
||||
local->postparent.ia_ino =
|
||||
local->loc.parent->ino;
|
||||
}
|
||||
|
||||
@ -203,8 +203,8 @@ selfheal:
|
||||
int
|
||||
dht_revalidate_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
|
||||
int op_ret, int op_errno,
|
||||
inode_t *inode, struct stat *stbuf, dict_t *xattr,
|
||||
struct stat *postparent)
|
||||
inode_t *inode, struct iatt *stbuf, dict_t *xattr,
|
||||
struct iatt *postparent)
|
||||
{
|
||||
dht_local_t *local = NULL;
|
||||
int this_call_cnt = 0;
|
||||
@ -242,11 +242,10 @@ dht_revalidate_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
|
||||
goto unlock;
|
||||
}
|
||||
|
||||
if (S_IFMT & (stbuf->st_mode ^ local->inode->st_mode)) {
|
||||
if (stbuf->ia_type != local->inode->ia_type) {
|
||||
gf_log (this->name, GF_LOG_DEBUG,
|
||||
"mismatching filetypes 0%o v/s 0%o for %s",
|
||||
(stbuf->st_mode & S_IFMT),
|
||||
(local->inode->st_mode & S_IFMT),
|
||||
(stbuf->ia_type), (local->inode->ia_type),
|
||||
local->loc.path);
|
||||
|
||||
local->op_ret = -1;
|
||||
@ -284,16 +283,16 @@ dht_revalidate_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
|
||||
}
|
||||
}
|
||||
|
||||
dht_stat_merge (this, &local->stbuf, stbuf, prev->this);
|
||||
dht_stat_merge (this, &local->postparent, postparent,
|
||||
dht_iatt_merge (this, &local->stbuf, stbuf, prev->this);
|
||||
dht_iatt_merge (this, &local->postparent, postparent,
|
||||
prev->this);
|
||||
|
||||
local->op_ret = 0;
|
||||
local->stbuf.st_ino = local->st_ino;
|
||||
local->stbuf.st_dev = local->loc.inode->generation;
|
||||
local->stbuf.ia_ino = local->ia_ino;
|
||||
local->stbuf.ia_gen = local->loc.inode->generation;
|
||||
|
||||
if (local->loc.parent)
|
||||
local->postparent.st_ino = local->loc.parent->ino;
|
||||
local->postparent.ia_ino = local->loc.parent->ino;
|
||||
|
||||
if (!local->xattr)
|
||||
local->xattr = dict_ref (xattr);
|
||||
@ -304,11 +303,11 @@ unlock:
|
||||
this_call_cnt = dht_frame_return (frame);
|
||||
|
||||
if (is_last_call (this_call_cnt)) {
|
||||
if (!S_ISDIR (local->stbuf.st_mode)
|
||||
if (!IA_ISDIR (local->stbuf.ia_type)
|
||||
&& (local->hashed_subvol != local->cached_subvol)
|
||||
&& (local->stbuf.st_nlink == 1)
|
||||
&& (local->stbuf.ia_nlink == 1)
|
||||
&& (conf->unhashed_sticky_bit)) {
|
||||
local->stbuf.st_mode |= S_ISVTX;
|
||||
local->stbuf.ia_prot.sticky = 1;
|
||||
}
|
||||
|
||||
if (local->layout_mismatch) {
|
||||
@ -331,8 +330,8 @@ int
|
||||
dht_lookup_linkfile_create_cbk (call_frame_t *frame, void *cookie,
|
||||
xlator_t *this,
|
||||
int32_t op_ret, int32_t op_errno,
|
||||
inode_t *inode, struct stat *stbuf,
|
||||
struct stat *preparent, struct stat *postparent)
|
||||
inode_t *inode, struct iatt *stbuf,
|
||||
struct iatt *preparent, struct iatt *postparent)
|
||||
{
|
||||
dht_local_t *local = NULL;
|
||||
xlator_t *cached_subvol = NULL;
|
||||
@ -354,13 +353,13 @@ dht_lookup_linkfile_create_cbk (call_frame_t *frame, void *cookie,
|
||||
}
|
||||
|
||||
local->op_ret = 0;
|
||||
if ((local->stbuf.st_nlink == 1)
|
||||
if ((local->stbuf.ia_nlink == 1)
|
||||
&& (conf->unhashed_sticky_bit)) {
|
||||
local->stbuf.st_mode |= S_ISVTX;
|
||||
local->stbuf.ia_prot.sticky = 1;
|
||||
}
|
||||
|
||||
if (local->loc.parent)
|
||||
local->postparent.st_ino = local->loc.parent->ino;
|
||||
local->postparent.ia_ino = local->loc.parent->ino;
|
||||
|
||||
unwind:
|
||||
WIPE (&local->postparent);
|
||||
@ -375,8 +374,8 @@ unwind:
|
||||
int
|
||||
dht_lookup_everywhere_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
|
||||
int32_t op_ret, int32_t op_errno,
|
||||
inode_t *inode, struct stat *buf, dict_t *xattr,
|
||||
struct stat *postparent)
|
||||
inode_t *inode, struct iatt *buf, dict_t *xattr,
|
||||
struct iatt *postparent)
|
||||
{
|
||||
dht_conf_t *conf = NULL;
|
||||
dht_local_t *local = NULL;
|
||||
@ -431,7 +430,7 @@ dht_lookup_everywhere_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
|
||||
|
||||
if (!local->cached_subvol) {
|
||||
/* found one file */
|
||||
dht_stat_merge (this, &local->stbuf, buf,
|
||||
dht_iatt_merge (this, &local->stbuf, buf,
|
||||
subvol);
|
||||
local->xattr = dict_ref (xattr);
|
||||
local->cached_subvol = subvol;
|
||||
@ -439,7 +438,7 @@ dht_lookup_everywhere_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
|
||||
"found on %s file %s",
|
||||
subvol->name, loc->path);
|
||||
|
||||
dht_stat_merge (this, &local->postparent,
|
||||
dht_iatt_merge (this, &local->postparent,
|
||||
postparent, subvol);
|
||||
} else {
|
||||
gf_log (this->name, GF_LOG_DEBUG,
|
||||
@ -507,7 +506,7 @@ unlock:
|
||||
}
|
||||
|
||||
if (local->loc.parent)
|
||||
local->postparent.st_ino =
|
||||
local->postparent.ia_ino =
|
||||
local->loc.parent->ino;
|
||||
|
||||
WIPE (&local->postparent);
|
||||
@ -564,8 +563,8 @@ dht_lookup_everywhere (call_frame_t *frame, xlator_t *this, loc_t *loc)
|
||||
int
|
||||
dht_lookup_linkfile_cbk (call_frame_t *frame, void *cookie,
|
||||
xlator_t *this, int op_ret, int op_errno,
|
||||
inode_t *inode, struct stat *stbuf, dict_t *xattr,
|
||||
struct stat *postparent)
|
||||
inode_t *inode, struct iatt *stbuf, dict_t *xattr,
|
||||
struct iatt *postparent)
|
||||
{
|
||||
call_frame_t *prev = NULL;
|
||||
dht_local_t *local = NULL;
|
||||
@ -601,13 +600,13 @@ dht_lookup_linkfile_cbk (call_frame_t *frame, void *cookie,
|
||||
goto err;
|
||||
}
|
||||
|
||||
if ((stbuf->st_nlink == 1)
|
||||
if ((stbuf->ia_nlink == 1)
|
||||
&& (conf->unhashed_sticky_bit)) {
|
||||
stbuf->st_mode |= S_ISVTX;
|
||||
stbuf->ia_prot.sticky = 1;
|
||||
}
|
||||
dht_itransform (this, prev->this, stbuf->st_ino, &stbuf->st_ino);
|
||||
dht_itransform (this, prev->this, stbuf->ia_ino, &stbuf->ia_ino);
|
||||
if (local->loc.parent)
|
||||
postparent->st_ino = local->loc.parent->ino;
|
||||
postparent->ia_ino = local->loc.parent->ino;
|
||||
|
||||
ret = dht_layout_preset (this, prev->this, inode);
|
||||
if (ret < 0) {
|
||||
@ -669,8 +668,8 @@ dht_lookup_directory (call_frame_t *frame, xlator_t *this, loc_t *loc)
|
||||
int
|
||||
dht_lookup_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
|
||||
int op_ret, int op_errno,
|
||||
inode_t *inode, struct stat *stbuf, dict_t *xattr,
|
||||
struct stat *postparent)
|
||||
inode_t *inode, struct iatt *stbuf, dict_t *xattr,
|
||||
struct iatt *postparent)
|
||||
{
|
||||
char is_linkfile = 0;
|
||||
char is_dir = 0;
|
||||
@ -729,10 +728,10 @@ dht_lookup_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
|
||||
if (!is_dir && !is_linkfile) {
|
||||
/* non-directory and not a linkfile */
|
||||
|
||||
dht_itransform (this, prev->this, stbuf->st_ino,
|
||||
&stbuf->st_ino);
|
||||
dht_itransform (this, prev->this, stbuf->ia_ino,
|
||||
&stbuf->ia_ino);
|
||||
if (loc->parent)
|
||||
postparent->st_ino = loc->parent->ino;
|
||||
postparent->ia_ino = loc->parent->ino;
|
||||
|
||||
ret = dht_layout_preset (this, prev->this, inode);
|
||||
if (ret < 0) {
|
||||
@ -766,10 +765,10 @@ dht_lookup_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
|
||||
|
||||
out:
|
||||
/*
|
||||
* FIXME: postparent->st_size and postparent->st_blocks do not have
|
||||
* FIXME: postparent->ia_size and postparent->st_blocks do not have
|
||||
* correct values. since, postparent corresponds to a directory these
|
||||
* two members should have values equal to sum of corresponding values
|
||||
* from each of the subvolume. See dht_stat_merge for reference.
|
||||
* from each of the subvolume. See dht_iatt_merge for reference.
|
||||
*/
|
||||
|
||||
WIPE (postparent);
|
||||
@ -855,7 +854,7 @@ dht_lookup (call_frame_t *frame, xlator_t *this,
|
||||
}
|
||||
|
||||
local->inode = inode_ref (loc->inode);
|
||||
local->st_ino = loc->inode->ino;
|
||||
local->ia_ino = loc->inode->ino;
|
||||
|
||||
local->call_cnt = layout->cnt;
|
||||
call_cnt = local->call_cnt;
|
||||
@ -927,8 +926,8 @@ err:
|
||||
|
||||
int
|
||||
dht_truncate_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
|
||||
int op_ret, int op_errno, struct stat *prebuf,
|
||||
struct stat *postbuf)
|
||||
int op_ret, int op_errno, struct iatt *prebuf,
|
||||
struct iatt *postbuf)
|
||||
{
|
||||
dht_local_t *local = NULL;
|
||||
int this_call_cnt = 0;
|
||||
@ -948,12 +947,12 @@ dht_truncate_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
|
||||
goto unlock;
|
||||
}
|
||||
|
||||
dht_stat_merge (this, &local->prebuf, prebuf, prev->this);
|
||||
dht_stat_merge (this, &local->stbuf, postbuf, prev->this);
|
||||
dht_iatt_merge (this, &local->prebuf, prebuf, prev->this);
|
||||
dht_iatt_merge (this, &local->stbuf, postbuf, prev->this);
|
||||
|
||||
if (local->inode) {
|
||||
local->stbuf.st_ino = local->inode->ino;
|
||||
local->prebuf.st_ino = local->inode->ino;
|
||||
local->stbuf.ia_ino = local->inode->ino;
|
||||
local->prebuf.ia_ino = local->inode->ino;
|
||||
}
|
||||
|
||||
local->op_ret = 0;
|
||||
@ -973,7 +972,7 @@ unlock:
|
||||
|
||||
int
|
||||
dht_attr_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
|
||||
int op_ret, int op_errno, struct stat *stbuf)
|
||||
int op_ret, int op_errno, struct iatt *stbuf)
|
||||
{
|
||||
dht_local_t *local = NULL;
|
||||
int this_call_cnt = 0;
|
||||
@ -993,10 +992,10 @@ dht_attr_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
|
||||
goto unlock;
|
||||
}
|
||||
|
||||
dht_stat_merge (this, &local->stbuf, stbuf, prev->this);
|
||||
dht_iatt_merge (this, &local->stbuf, stbuf, prev->this);
|
||||
|
||||
if (local->inode)
|
||||
local->stbuf.st_ino = local->inode->ino;
|
||||
local->stbuf.ia_ino = local->inode->ino;
|
||||
local->op_ret = 0;
|
||||
}
|
||||
unlock:
|
||||
@ -1213,8 +1212,8 @@ err:
|
||||
|
||||
int
|
||||
dht_unlink_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
|
||||
int op_ret, int op_errno, struct stat *preparent,
|
||||
struct stat *postparent)
|
||||
int op_ret, int op_errno, struct iatt *preparent,
|
||||
struct iatt *postparent)
|
||||
{
|
||||
dht_local_t *local = NULL;
|
||||
call_frame_t *prev = NULL;
|
||||
@ -1233,8 +1232,8 @@ dht_unlink_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
|
||||
goto unlock;
|
||||
}
|
||||
|
||||
preparent->st_ino = local->loc.parent->ino;
|
||||
postparent->st_ino = local->loc.parent->ino;
|
||||
preparent->ia_ino = local->loc.parent->ino;
|
||||
postparent->ia_ino = local->loc.parent->ino;
|
||||
local->op_ret = 0;
|
||||
|
||||
local->postparent = *postparent;
|
||||
@ -1255,8 +1254,8 @@ unlock:
|
||||
|
||||
int
|
||||
dht_unlink_linkfile_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
|
||||
int op_ret, int op_errno, struct stat *preparent,
|
||||
struct stat *postparent)
|
||||
int op_ret, int op_errno, struct iatt *preparent,
|
||||
struct iatt *postparent)
|
||||
{
|
||||
dht_local_t *local = NULL;
|
||||
call_frame_t *prev = NULL;
|
||||
@ -1308,7 +1307,7 @@ err:
|
||||
|
||||
int
|
||||
dht_fsync_cbk (call_frame_t *frame, void *cookie, xlator_t *this, int op_ret,
|
||||
int op_errno, struct stat *prebuf, struct stat *postbuf)
|
||||
int op_errno, struct iatt *prebuf, struct iatt *postbuf)
|
||||
{
|
||||
dht_local_t *local = NULL;
|
||||
int this_call_cnt = 0;
|
||||
@ -1334,8 +1333,8 @@ unlock:
|
||||
UNLOCK (&frame->lock);
|
||||
|
||||
if (local && (op_ret == 0)) {
|
||||
prebuf->st_ino = local->st_ino;
|
||||
postbuf->st_ino = local->st_ino;
|
||||
prebuf->ia_ino = local->ia_ino;
|
||||
postbuf->ia_ino = local->ia_ino;
|
||||
}
|
||||
|
||||
this_call_cnt = dht_frame_return (frame);
|
||||
@ -1433,7 +1432,7 @@ err:
|
||||
|
||||
int
|
||||
dht_readlink_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
|
||||
int op_ret, int op_errno, const char *path, struct stat *sbuf)
|
||||
int op_ret, int op_errno, const char *path, struct iatt *sbuf)
|
||||
{
|
||||
dht_local_t *local = NULL;
|
||||
|
||||
@ -1442,7 +1441,7 @@ dht_readlink_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
|
||||
goto err;
|
||||
|
||||
if (local) {
|
||||
sbuf->st_ino = local->st_ino;
|
||||
sbuf->ia_ino = local->ia_ino;
|
||||
} else {
|
||||
op_ret = -1;
|
||||
op_errno = EINVAL;
|
||||
@ -1485,7 +1484,7 @@ dht_readlink (call_frame_t *frame, xlator_t *this,
|
||||
goto err;
|
||||
}
|
||||
|
||||
local->st_ino = loc->inode->ino;
|
||||
local->ia_ino = loc->inode->ino;
|
||||
|
||||
STACK_WIND (frame, dht_readlink_cbk,
|
||||
subvol, subvol->fops->readlink,
|
||||
@ -1735,7 +1734,7 @@ err:
|
||||
int
|
||||
dht_readv_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
|
||||
int op_ret, int op_errno,
|
||||
struct iovec *vector, int count, struct stat *stbuf,
|
||||
struct iovec *vector, int count, struct iatt *stbuf,
|
||||
struct iobref *iobref)
|
||||
{
|
||||
dht_local_t *local = frame->local;
|
||||
@ -1745,7 +1744,7 @@ dht_readv_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
|
||||
op_errno = EINVAL;
|
||||
goto out;
|
||||
}
|
||||
stbuf->st_ino = local->st_ino;
|
||||
stbuf->ia_ino = local->ia_ino;
|
||||
out:
|
||||
DHT_STACK_UNWIND (readv, frame, op_ret, op_errno, vector, count, stbuf,
|
||||
iobref);
|
||||
@ -1781,7 +1780,7 @@ dht_readv (call_frame_t *frame, xlator_t *this,
|
||||
goto err;
|
||||
}
|
||||
|
||||
local->st_ino = fd->inode->ino;
|
||||
local->ia_ino = fd->inode->ino;
|
||||
STACK_WIND (frame, dht_readv_cbk,
|
||||
subvol, subvol->fops->readv,
|
||||
fd, size, off);
|
||||
@ -1798,8 +1797,8 @@ err:
|
||||
|
||||
int
|
||||
dht_writev_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
|
||||
int op_ret, int op_errno, struct stat *prebuf,
|
||||
struct stat *postbuf)
|
||||
int op_ret, int op_errno, struct iatt *prebuf,
|
||||
struct iatt *postbuf)
|
||||
{
|
||||
dht_local_t *local = NULL;
|
||||
|
||||
@ -1814,8 +1813,8 @@ dht_writev_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
|
||||
goto out;
|
||||
}
|
||||
|
||||
prebuf->st_ino = local->st_ino;
|
||||
postbuf->st_ino = local->st_ino;
|
||||
prebuf->ia_ino = local->ia_ino;
|
||||
postbuf->ia_ino = local->ia_ino;
|
||||
|
||||
out:
|
||||
DHT_STACK_UNWIND (writev, frame, op_ret, op_errno, prebuf, postbuf);
|
||||
@ -1853,7 +1852,7 @@ dht_writev (call_frame_t *frame, xlator_t *this,
|
||||
goto err;
|
||||
}
|
||||
|
||||
local->st_ino = fd->inode->ino;
|
||||
local->ia_ino = fd->inode->ino;
|
||||
|
||||
STACK_WIND (frame, dht_writev_cbk,
|
||||
subvol, subvol->fops->writev,
|
||||
@ -1943,7 +1942,7 @@ dht_fsync (call_frame_t *frame, xlator_t *this,
|
||||
}
|
||||
local->call_cnt = 1;
|
||||
|
||||
local->st_ino = fd->inode->ino;
|
||||
local->ia_ino = fd->inode->ino;
|
||||
|
||||
STACK_WIND (frame, dht_fsync_cbk,
|
||||
subvol, subvol->fops->fsync,
|
||||
@ -2199,7 +2198,7 @@ dht_readdirp_cbk (call_frame_t *frame, void *cookie, xlator_t *this, int op_ret,
|
||||
dht_itransform (this, prev->this, orig_entry->d_off,
|
||||
&entry->d_off);
|
||||
|
||||
entry->d_stat.st_ino = entry->d_ino;
|
||||
entry->d_stat.ia_ino = entry->d_ino;
|
||||
entry->d_type = orig_entry->d_type;
|
||||
entry->d_len = orig_entry->d_len;
|
||||
|
||||
@ -2489,8 +2488,8 @@ err:
|
||||
int
|
||||
dht_newfile_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
|
||||
int op_ret, int op_errno,
|
||||
inode_t *inode, struct stat *stbuf, struct stat *preparent,
|
||||
struct stat *postparent)
|
||||
inode_t *inode, struct iatt *stbuf, struct iatt *preparent,
|
||||
struct iatt *postparent)
|
||||
{
|
||||
call_frame_t *prev = NULL;
|
||||
int ret = -1;
|
||||
@ -2509,10 +2508,10 @@ dht_newfile_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
|
||||
|
||||
prev = cookie;
|
||||
|
||||
dht_itransform (this, prev->this, stbuf->st_ino, &stbuf->st_ino);
|
||||
dht_itransform (this, prev->this, stbuf->ia_ino, &stbuf->ia_ino);
|
||||
if (local->loc.parent) {
|
||||
preparent->st_ino = local->loc.parent->ino;
|
||||
postparent->st_ino = local->loc.parent->ino;
|
||||
preparent->ia_ino = local->loc.parent->ino;
|
||||
postparent->ia_ino = local->loc.parent->ino;
|
||||
|
||||
WIPE (preparent);
|
||||
WIPE (postparent);
|
||||
@ -2529,11 +2528,11 @@ dht_newfile_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
|
||||
}
|
||||
out:
|
||||
/*
|
||||
* FIXME: st_size and st_blocks of preparent and postparent do not have
|
||||
* FIXME: ia_size and st_blocks of preparent and postparent do not have
|
||||
* correct values. since, preparent and postparent buffers correspond
|
||||
* to a directory these two members should have values equal to sum of
|
||||
* corresponding values from each of the subvolume.
|
||||
* See dht_stat_merge for reference.
|
||||
* See dht_iatt_merge for reference.
|
||||
*/
|
||||
|
||||
DHT_STACK_UNWIND (mknod, frame, op_ret, op_errno, inode, stbuf, preparent,
|
||||
@ -2545,8 +2544,8 @@ int
|
||||
dht_mknod_linkfile_create_cbk (call_frame_t *frame, void *cookie,
|
||||
xlator_t *this,
|
||||
int32_t op_ret, int32_t op_errno,
|
||||
inode_t *inode, struct stat *stbuf,
|
||||
struct stat *preparent, struct stat *postparent)
|
||||
inode_t *inode, struct iatt *stbuf,
|
||||
struct iatt *preparent, struct iatt *postparent)
|
||||
{
|
||||
dht_local_t *local = NULL;
|
||||
xlator_t *cached_subvol = NULL;
|
||||
@ -2775,8 +2774,8 @@ err:
|
||||
int
|
||||
dht_link_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
|
||||
int op_ret, int op_errno,
|
||||
inode_t *inode, struct stat *stbuf, struct stat *preparent,
|
||||
struct stat *postparent)
|
||||
inode_t *inode, struct iatt *stbuf, struct iatt *preparent,
|
||||
struct iatt *postparent)
|
||||
{
|
||||
call_frame_t *prev = NULL;
|
||||
dht_layout_t *layout = NULL;
|
||||
@ -2798,10 +2797,10 @@ dht_link_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
|
||||
goto out;
|
||||
}
|
||||
|
||||
stbuf->st_ino = local->loc.inode->ino;
|
||||
stbuf->ia_ino = local->loc.inode->ino;
|
||||
|
||||
preparent->st_ino = local->loc2.parent->ino;
|
||||
postparent->st_ino = local->loc2.parent->ino;
|
||||
preparent->ia_ino = local->loc2.parent->ino;
|
||||
postparent->ia_ino = local->loc2.parent->ino;
|
||||
|
||||
WIPE (preparent);
|
||||
WIPE (postparent);
|
||||
@ -2817,8 +2816,8 @@ out:
|
||||
int
|
||||
dht_link_linkfile_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
|
||||
int op_ret, int op_errno,
|
||||
inode_t *inode, struct stat *stbuf,
|
||||
struct stat *preparent, struct stat *postparent)
|
||||
inode_t *inode, struct iatt *stbuf,
|
||||
struct iatt *preparent, struct iatt *postparent)
|
||||
{
|
||||
dht_local_t *local = NULL;
|
||||
xlator_t *srcvol = NULL;
|
||||
@ -2923,8 +2922,8 @@ err:
|
||||
int
|
||||
dht_create_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
|
||||
int op_ret, int op_errno,
|
||||
fd_t *fd, inode_t *inode, struct stat *stbuf,
|
||||
struct stat *preparent, struct stat *postparent)
|
||||
fd_t *fd, inode_t *inode, struct iatt *stbuf,
|
||||
struct iatt *preparent, struct iatt *postparent)
|
||||
{
|
||||
call_frame_t *prev = NULL;
|
||||
int ret = -1;
|
||||
@ -2942,10 +2941,10 @@ dht_create_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
|
||||
|
||||
prev = cookie;
|
||||
|
||||
dht_itransform (this, prev->this, stbuf->st_ino, &stbuf->st_ino);
|
||||
dht_itransform (this, prev->this, stbuf->ia_ino, &stbuf->ia_ino);
|
||||
if (local->loc.parent) {
|
||||
preparent->st_ino = local->loc.parent->ino;
|
||||
postparent->st_ino = local->loc.parent->ino;
|
||||
preparent->ia_ino = local->loc.parent->ino;
|
||||
postparent->ia_ino = local->loc.parent->ino;
|
||||
|
||||
WIPE (preparent);
|
||||
WIPE (postparent);
|
||||
@ -2972,8 +2971,8 @@ int
|
||||
dht_create_linkfile_create_cbk (call_frame_t *frame, void *cookie,
|
||||
xlator_t *this,
|
||||
int32_t op_ret, int32_t op_errno,
|
||||
inode_t *inode, struct stat *stbuf,
|
||||
struct stat *preparent, struct stat *postparent)
|
||||
inode_t *inode, struct iatt *stbuf,
|
||||
struct iatt *preparent, struct iatt *postparent)
|
||||
{
|
||||
dht_local_t *local = NULL;
|
||||
xlator_t *cached_subvol = NULL;
|
||||
@ -3096,11 +3095,11 @@ dht_mkdir_selfheal_cbk (call_frame_t *frame, void *cookie,
|
||||
|
||||
if (op_ret == 0) {
|
||||
dht_layout_set (this, local->inode, layout);
|
||||
local->stbuf.st_ino = local->st_ino;
|
||||
local->stbuf.st_dev = local->st_dev;
|
||||
local->stbuf.ia_ino = local->ia_ino;
|
||||
local->stbuf.ia_gen = local->ia_gen;
|
||||
if (local->loc.parent) {
|
||||
local->preparent.st_ino = local->loc.parent->ino;
|
||||
local->postparent.st_ino = local->loc.parent->ino;
|
||||
local->preparent.ia_ino = local->loc.parent->ino;
|
||||
local->postparent.ia_ino = local->loc.parent->ino;
|
||||
|
||||
WIPE (&local->preparent);
|
||||
WIPE (&local->postparent);
|
||||
@ -3116,8 +3115,8 @@ dht_mkdir_selfheal_cbk (call_frame_t *frame, void *cookie,
|
||||
|
||||
int
|
||||
dht_mkdir_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
|
||||
int op_ret, int op_errno, inode_t *inode, struct stat *stbuf,
|
||||
struct stat *preparent, struct stat *postparent)
|
||||
int op_ret, int op_errno, inode_t *inode, struct iatt *stbuf,
|
||||
struct iatt *preparent, struct iatt *postparent)
|
||||
{
|
||||
dht_local_t *local = NULL;
|
||||
int this_call_cnt = 0;
|
||||
@ -3148,14 +3147,14 @@ dht_mkdir_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
|
||||
local->op_errno = op_errno;
|
||||
goto unlock;
|
||||
}
|
||||
dht_stat_merge (this, &local->stbuf, stbuf, prev->this);
|
||||
dht_stat_merge (this, &local->preparent, preparent, prev->this);
|
||||
dht_stat_merge (this, &local->postparent, postparent,
|
||||
dht_iatt_merge (this, &local->stbuf, stbuf, prev->this);
|
||||
dht_iatt_merge (this, &local->preparent, preparent, prev->this);
|
||||
dht_iatt_merge (this, &local->postparent, postparent,
|
||||
prev->this);
|
||||
|
||||
if (prev->this == dht_first_up_subvol (this)) {
|
||||
local->st_ino = local->stbuf.st_ino;
|
||||
local->st_dev = local->stbuf.st_dev;
|
||||
local->ia_ino = local->stbuf.ia_ino;
|
||||
local->ia_gen = local->stbuf.ia_gen;
|
||||
}
|
||||
|
||||
}
|
||||
@ -3174,8 +3173,8 @@ unlock:
|
||||
int
|
||||
dht_mkdir_hashed_cbk (call_frame_t *frame, void *cookie,
|
||||
xlator_t *this, int op_ret, int op_errno,
|
||||
inode_t *inode, struct stat *stbuf,
|
||||
struct stat *preparent, struct stat *postparent)
|
||||
inode_t *inode, struct iatt *stbuf,
|
||||
struct iatt *preparent, struct iatt *postparent)
|
||||
{
|
||||
dht_local_t *local = NULL;
|
||||
int ret = -1;
|
||||
@ -3204,12 +3203,12 @@ dht_mkdir_hashed_cbk (call_frame_t *frame, void *cookie,
|
||||
}
|
||||
local->op_ret = 0;
|
||||
|
||||
dht_stat_merge (this, &local->stbuf, stbuf, prev->this);
|
||||
dht_stat_merge (this, &local->preparent, preparent, prev->this);
|
||||
dht_stat_merge (this, &local->postparent, postparent, prev->this);
|
||||
dht_iatt_merge (this, &local->stbuf, stbuf, prev->this);
|
||||
dht_iatt_merge (this, &local->preparent, preparent, prev->this);
|
||||
dht_iatt_merge (this, &local->postparent, postparent, prev->this);
|
||||
|
||||
local->st_ino = local->stbuf.st_ino;
|
||||
local->st_dev = local->stbuf.st_dev;
|
||||
local->ia_ino = local->stbuf.ia_ino;
|
||||
local->ia_gen = local->stbuf.ia_gen;
|
||||
|
||||
local->call_cnt = conf->subvolume_cnt - 1;
|
||||
|
||||
@ -3314,8 +3313,8 @@ dht_rmdir_selfheal_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
|
||||
local = frame->local;
|
||||
|
||||
if (local->loc.parent) {
|
||||
local->preparent.st_ino = local->loc.parent->ino;
|
||||
local->postparent.st_ino = local->loc.parent->ino;
|
||||
local->preparent.ia_ino = local->loc.parent->ino;
|
||||
local->postparent.ia_ino = local->loc.parent->ino;
|
||||
}
|
||||
|
||||
DHT_STACK_UNWIND (rmdir, frame, local->op_ret, local->op_errno,
|
||||
@ -3327,8 +3326,8 @@ dht_rmdir_selfheal_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
|
||||
|
||||
int
|
||||
dht_rmdir_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
|
||||
int op_ret, int op_errno, struct stat *preparent,
|
||||
struct stat *postparent)
|
||||
int op_ret, int op_errno, struct iatt *preparent,
|
||||
struct iatt *postparent)
|
||||
{
|
||||
dht_local_t *local = NULL;
|
||||
int this_call_cnt = 0;
|
||||
@ -3353,8 +3352,8 @@ dht_rmdir_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
|
||||
goto unlock;
|
||||
}
|
||||
|
||||
dht_stat_merge (this, &local->preparent, preparent, prev->this);
|
||||
dht_stat_merge (this, &local->postparent, postparent,
|
||||
dht_iatt_merge (this, &local->preparent, preparent, prev->this);
|
||||
dht_iatt_merge (this, &local->postparent, postparent,
|
||||
prev->this);
|
||||
}
|
||||
unlock:
|
||||
@ -3368,15 +3367,15 @@ unlock:
|
||||
dht_layout_get (this, local->loc.inode);
|
||||
|
||||
/* TODO: neater interface needed below */
|
||||
local->stbuf.st_mode = local->loc.inode->st_mode;
|
||||
local->stbuf.ia_type = local->loc.inode->ia_type;
|
||||
|
||||
dht_selfheal_restore (frame, dht_rmdir_selfheal_cbk,
|
||||
&local->loc, local->layout);
|
||||
} else {
|
||||
if (local->loc.parent) {
|
||||
local->preparent.st_ino =
|
||||
local->preparent.ia_ino =
|
||||
local->loc.parent->ino;
|
||||
local->postparent.st_ino =
|
||||
local->postparent.ia_ino =
|
||||
local->loc.parent->ino;
|
||||
|
||||
WIPE (&local->preparent);
|
||||
@ -3426,8 +3425,8 @@ err:
|
||||
|
||||
int
|
||||
dht_rmdir_linkfile_unlink_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
|
||||
int op_ret, int op_errno, struct stat *preparent,
|
||||
struct stat *postparent)
|
||||
int op_ret, int op_errno, struct iatt *preparent,
|
||||
struct iatt *postparent)
|
||||
{
|
||||
dht_local_t *local = NULL;
|
||||
call_frame_t *prev = NULL;
|
||||
@ -3467,7 +3466,7 @@ dht_rmdir_linkfile_unlink_cbk (call_frame_t *frame, void *cookie, xlator_t *this
|
||||
int
|
||||
dht_rmdir_lookup_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
|
||||
int op_ret, int op_errno, inode_t *inode,
|
||||
struct stat *stbuf, dict_t *xattr, struct stat *parent)
|
||||
struct iatt *stbuf, dict_t *xattr, struct iatt *parent)
|
||||
{
|
||||
dht_local_t *local = NULL;
|
||||
call_frame_t *prev = NULL;
|
||||
@ -3491,8 +3490,8 @@ dht_rmdir_lookup_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
|
||||
main_local->op_errno = ENOTEMPTY;
|
||||
|
||||
gf_log (this->name, GF_LOG_WARNING,
|
||||
"%s on %s found to be not a linkfile (mode=0%o)",
|
||||
local->loc.path, src->name, stbuf->st_mode);
|
||||
"%s on %s found to be not a linkfile (type=0%o)",
|
||||
local->loc.path, src->name, stbuf->ia_type);
|
||||
goto err;
|
||||
}
|
||||
|
||||
@ -4048,8 +4047,8 @@ err:
|
||||
|
||||
int
|
||||
dht_setattr_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
|
||||
int op_ret, int op_errno, struct stat *statpre,
|
||||
struct stat *statpost)
|
||||
int op_ret, int op_errno, struct iatt *statpre,
|
||||
struct iatt *statpost)
|
||||
{
|
||||
dht_local_t *local = NULL;
|
||||
int this_call_cnt = 0;
|
||||
@ -4069,12 +4068,12 @@ dht_setattr_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
|
||||
goto unlock;
|
||||
}
|
||||
|
||||
dht_stat_merge (this, &local->prebuf, statpre, prev->this);
|
||||
dht_stat_merge (this, &local->stbuf, statpost, prev->this);
|
||||
dht_iatt_merge (this, &local->prebuf, statpre, prev->this);
|
||||
dht_iatt_merge (this, &local->stbuf, statpost, prev->this);
|
||||
|
||||
if (local->inode) {
|
||||
local->prebuf.st_ino = local->inode->ino;
|
||||
local->stbuf.st_ino = local->inode->ino;
|
||||
local->prebuf.ia_ino = local->inode->ino;
|
||||
local->stbuf.ia_ino = local->inode->ino;
|
||||
}
|
||||
|
||||
local->op_ret = 0;
|
||||
@ -4093,7 +4092,7 @@ unlock:
|
||||
|
||||
int
|
||||
dht_setattr (call_frame_t *frame, xlator_t *this, loc_t *loc,
|
||||
struct stat *stbuf, int32_t valid)
|
||||
struct iatt *stbuf, int32_t valid)
|
||||
{
|
||||
dht_layout_t *layout = NULL;
|
||||
dht_local_t *local = NULL;
|
||||
@ -4151,7 +4150,7 @@ err:
|
||||
|
||||
|
||||
int
|
||||
dht_fsetattr (call_frame_t *frame, xlator_t *this, fd_t *fd, struct stat *stbuf,
|
||||
dht_fsetattr (call_frame_t *frame, xlator_t *this, fd_t *fd, struct iatt *stbuf,
|
||||
int32_t valid)
|
||||
{
|
||||
dht_layout_t *layout = NULL;
|
||||
|
@ -67,12 +67,12 @@ struct dht_local {
|
||||
int layout_mismatch;
|
||||
/* Use stbuf as the postbuf, when we require both
|
||||
* pre and post attrs */
|
||||
struct stat stbuf;
|
||||
struct stat prebuf;
|
||||
struct stat preoldparent;
|
||||
struct stat postoldparent;
|
||||
struct stat preparent;
|
||||
struct stat postparent;
|
||||
struct iatt stbuf;
|
||||
struct iatt prebuf;
|
||||
struct iatt preoldparent;
|
||||
struct iatt postoldparent;
|
||||
struct iatt preparent;
|
||||
struct iatt postparent;
|
||||
struct statvfs statvfs;
|
||||
fd_t *fd;
|
||||
inode_t *inode;
|
||||
@ -80,8 +80,8 @@ struct dht_local {
|
||||
dict_t *xattr_req;
|
||||
dht_layout_t *layout;
|
||||
size_t size;
|
||||
ino_t st_ino;
|
||||
ino_t st_dev;
|
||||
ino_t ia_ino;
|
||||
ino_t ia_gen;
|
||||
xlator_t *src_hashed, *src_cached;
|
||||
xlator_t *dst_hashed, *dst_cached;
|
||||
xlator_t *cached_subvol;
|
||||
@ -92,7 +92,7 @@ struct dht_local {
|
||||
call_frame_t *main_frame;
|
||||
struct {
|
||||
fop_mknod_cbk_t linkfile_cbk;
|
||||
struct stat stbuf;
|
||||
struct iatt stbuf;
|
||||
loc_t loc;
|
||||
inode_t *inode;
|
||||
dict_t *xattr;
|
||||
@ -169,11 +169,12 @@ typedef struct dht_disk_layout dht_disk_layout_t;
|
||||
#define is_last_call(cnt) (cnt == 0)
|
||||
|
||||
#define DHT_LINKFILE_MODE (S_ISVTX)
|
||||
#define check_is_linkfile(i,s,x) ( \
|
||||
((s->st_mode & ~S_IFMT) == DHT_LINKFILE_MODE) && \
|
||||
(s->st_size == 0))
|
||||
#define check_is_linkfile(i,s,x) ( \
|
||||
((st_mode_from_ia (s->ia_prot, s->ia_type) & ~S_IFMT) \
|
||||
== DHT_LINKFILE_MODE) && \
|
||||
(s->ia_size == 0))
|
||||
|
||||
#define check_is_dir(i,s,x) (S_ISDIR(s->st_mode))
|
||||
#define check_is_dir(i,s,x) (IA_ISDIR(s->ia_type))
|
||||
|
||||
#define layout_is_sane(layout) ((layout) && (layout->cnt > 0))
|
||||
|
||||
@ -211,7 +212,7 @@ int dht_layout_dir_mismatch (xlator_t *this, dht_layout_t *layout,
|
||||
xlator_t *subvol, loc_t *loc, dict_t *xattr);
|
||||
|
||||
xlator_t *dht_linkfile_subvol (xlator_t *this, inode_t *inode,
|
||||
struct stat *buf, dict_t *xattr);
|
||||
struct iatt *buf, dict_t *xattr);
|
||||
int dht_linkfile_unlink (call_frame_t *frame, xlator_t *this,
|
||||
xlator_t *subvol, loc_t *loc);
|
||||
|
||||
@ -233,7 +234,7 @@ int dht_deitransform (xlator_t *this, uint64_t y, xlator_t **subvol,
|
||||
|
||||
void dht_local_wipe (xlator_t *this, dht_local_t *local);
|
||||
dht_local_t *dht_local_init (call_frame_t *frame);
|
||||
int dht_stat_merge (xlator_t *this, struct stat *to, struct stat *from,
|
||||
int dht_iatt_merge (xlator_t *this, struct iatt *to, struct iatt *from,
|
||||
xlator_t *subvol);
|
||||
|
||||
xlator_t *dht_subvol_get_hashed (xlator_t *this, loc_t *loc);
|
||||
|
@ -340,29 +340,31 @@ dht_subvol_cnt (xlator_t *this, xlator_t *subvol)
|
||||
} while (0)
|
||||
|
||||
int
|
||||
dht_stat_merge (xlator_t *this, struct stat *to,
|
||||
struct stat *from, xlator_t *subvol)
|
||||
dht_iatt_merge (xlator_t *this, struct iatt *to,
|
||||
struct iatt *from, xlator_t *subvol)
|
||||
{
|
||||
if (!from || !to)
|
||||
return 0;
|
||||
|
||||
to->st_dev = from->st_dev;
|
||||
to->ia_dev = from->ia_dev;
|
||||
|
||||
dht_itransform (this, subvol, from->st_ino, &to->st_ino);
|
||||
dht_itransform (this, subvol, from->ia_ino, &to->ia_ino);
|
||||
to->ia_gen = from->ia_gen;
|
||||
|
||||
to->st_mode = from->st_mode;
|
||||
to->st_nlink = from->st_nlink;
|
||||
to->st_rdev = from->st_rdev;
|
||||
to->st_size += from->st_size;
|
||||
to->st_blksize = from->st_blksize;
|
||||
to->st_blocks += from->st_blocks;
|
||||
to->ia_prot = from->ia_prot;
|
||||
to->ia_type = from->ia_type;
|
||||
to->ia_nlink = from->ia_nlink;
|
||||
to->ia_rdev = from->ia_rdev;
|
||||
to->ia_size += from->ia_size;
|
||||
to->ia_blksize = from->ia_blksize;
|
||||
to->ia_blocks += from->ia_blocks;
|
||||
|
||||
set_if_greater (to->st_uid, from->st_uid);
|
||||
set_if_greater (to->st_gid, from->st_gid);
|
||||
set_if_greater (to->ia_uid, from->ia_uid);
|
||||
set_if_greater (to->ia_gid, from->ia_gid);
|
||||
|
||||
set_if_greater (to->st_atime, from->st_atime);
|
||||
set_if_greater (to->st_mtime, from->st_mtime);
|
||||
set_if_greater (to->st_ctime, from->st_ctime);
|
||||
set_if_greater (to->ia_atime, from->ia_atime);
|
||||
set_if_greater (to->ia_mtime, from->ia_mtime);
|
||||
set_if_greater (to->ia_ctime, from->ia_ctime);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
@ -49,8 +49,8 @@ dht_linkfile_xattr_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
|
||||
int
|
||||
dht_linkfile_create_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
|
||||
int op_ret, int op_errno, inode_t *inode,
|
||||
struct stat *stbuf, struct stat *preparent,
|
||||
struct stat *postparent)
|
||||
struct iatt *stbuf, struct iatt *preparent,
|
||||
struct iatt *postparent)
|
||||
{
|
||||
dht_local_t *local = NULL;
|
||||
call_frame_t *prev = NULL;
|
||||
@ -134,7 +134,7 @@ dht_linkfile_create (call_frame_t *frame, fop_mknod_cbk_t linkfile_cbk,
|
||||
int
|
||||
dht_linkfile_unlink_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
|
||||
int32_t op_ret, int32_t op_errno,
|
||||
struct stat *preparent, struct stat *postparent)
|
||||
struct iatt *preparent, struct iatt *postparent)
|
||||
{
|
||||
dht_local_t *local = NULL;
|
||||
call_frame_t *prev = NULL;
|
||||
@ -193,7 +193,7 @@ err:
|
||||
|
||||
|
||||
xlator_t *
|
||||
dht_linkfile_subvol (xlator_t *this, inode_t *inode, struct stat *stbuf,
|
||||
dht_linkfile_subvol (xlator_t *this, inode_t *inode, struct iatt *stbuf,
|
||||
dict_t *xattr)
|
||||
{
|
||||
dht_conf_t *conf = NULL;
|
||||
|
@ -33,9 +33,9 @@
|
||||
|
||||
int
|
||||
dht_rename_dir_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
|
||||
int32_t op_ret, int32_t op_errno, struct stat *stbuf,
|
||||
struct stat *preoldparent, struct stat *postoldparent,
|
||||
struct stat *prenewparent, struct stat *postnewparent)
|
||||
int32_t op_ret, int32_t op_errno, struct iatt *stbuf,
|
||||
struct iatt *preoldparent, struct iatt *postoldparent,
|
||||
struct iatt *prenewparent, struct iatt *postnewparent)
|
||||
{
|
||||
dht_local_t *local = NULL;
|
||||
int this_call_cnt = 0;
|
||||
@ -61,26 +61,26 @@ dht_rename_dir_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
|
||||
* FIXME: is this the correct way to build stbuf and
|
||||
* parent bufs?
|
||||
*/
|
||||
dht_stat_merge (this, &local->stbuf, stbuf, prev->this);
|
||||
dht_stat_merge (this, &local->preoldparent, preoldparent,
|
||||
dht_iatt_merge (this, &local->stbuf, stbuf, prev->this);
|
||||
dht_iatt_merge (this, &local->preoldparent, preoldparent,
|
||||
prev->this);
|
||||
dht_stat_merge (this, &local->postoldparent, postoldparent,
|
||||
dht_iatt_merge (this, &local->postoldparent, postoldparent,
|
||||
prev->this);
|
||||
dht_stat_merge (this, &local->preparent, prenewparent,
|
||||
dht_iatt_merge (this, &local->preparent, prenewparent,
|
||||
prev->this);
|
||||
dht_stat_merge (this, &local->postparent, postnewparent,
|
||||
dht_iatt_merge (this, &local->postparent, postnewparent,
|
||||
prev->this);
|
||||
}
|
||||
|
||||
this_call_cnt = dht_frame_return (frame);
|
||||
if (is_last_call (this_call_cnt)) {
|
||||
local->stbuf.st_ino = local->loc.inode->ino;
|
||||
local->stbuf.ia_ino = local->loc.inode->ino;
|
||||
|
||||
local->preoldparent.st_ino = local->loc.parent->ino;
|
||||
local->postoldparent.st_ino = local->loc.parent->ino;
|
||||
local->preoldparent.ia_ino = local->loc.parent->ino;
|
||||
local->postoldparent.ia_ino = local->loc.parent->ino;
|
||||
|
||||
local->preparent.st_ino = local->loc2.parent->ino;
|
||||
local->postparent.st_ino = local->loc2.parent->ino;
|
||||
local->preparent.ia_ino = local->loc2.parent->ino;
|
||||
local->postparent.ia_ino = local->loc2.parent->ino;
|
||||
|
||||
WIPE (&local->preoldparent);
|
||||
WIPE (&local->postoldparent);
|
||||
@ -243,8 +243,8 @@ err:
|
||||
|
||||
int
|
||||
dht_rename_unlink_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
|
||||
int32_t op_ret, int32_t op_errno, struct stat *preparent,
|
||||
struct stat *postparent)
|
||||
int32_t op_ret, int32_t op_errno, struct iatt *preparent,
|
||||
struct iatt *postparent)
|
||||
{
|
||||
dht_local_t *local = NULL;
|
||||
call_frame_t *prev = NULL;
|
||||
@ -347,9 +347,9 @@ nolinks:
|
||||
|
||||
int
|
||||
dht_rename_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
|
||||
int32_t op_ret, int32_t op_errno, struct stat *stbuf,
|
||||
struct stat *preoldparent, struct stat *postoldparent,
|
||||
struct stat *prenewparent, struct stat *postnewparent)
|
||||
int32_t op_ret, int32_t op_errno, struct iatt *stbuf,
|
||||
struct iatt *preoldparent, struct iatt *postoldparent,
|
||||
struct iatt *prenewparent, struct iatt *postnewparent)
|
||||
{
|
||||
dht_local_t *local = NULL;
|
||||
call_frame_t *prev = NULL;
|
||||
@ -376,19 +376,19 @@ dht_rename_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
|
||||
goto cleanup;
|
||||
}
|
||||
|
||||
dht_stat_merge (this, &local->stbuf, stbuf, prev->this);
|
||||
dht_stat_merge (this, &local->preoldparent, preoldparent, prev->this);
|
||||
dht_stat_merge (this, &local->postoldparent, postoldparent, prev->this);
|
||||
dht_stat_merge (this, &local->preparent, prenewparent, prev->this);
|
||||
dht_stat_merge (this, &local->postparent, postnewparent, prev->this);
|
||||
dht_iatt_merge (this, &local->stbuf, stbuf, prev->this);
|
||||
dht_iatt_merge (this, &local->preoldparent, preoldparent, prev->this);
|
||||
dht_iatt_merge (this, &local->postoldparent, postoldparent, prev->this);
|
||||
dht_iatt_merge (this, &local->preparent, prenewparent, prev->this);
|
||||
dht_iatt_merge (this, &local->postparent, postnewparent, prev->this);
|
||||
|
||||
local->stbuf.st_ino = local->loc.inode->ino;
|
||||
local->stbuf.ia_ino = local->loc.inode->ino;
|
||||
|
||||
local->preoldparent.st_ino = local->loc.parent->ino;
|
||||
local->postoldparent.st_ino = local->loc.parent->ino;
|
||||
local->preoldparent.ia_ino = local->loc.parent->ino;
|
||||
local->postoldparent.ia_ino = local->loc.parent->ino;
|
||||
|
||||
local->preparent.st_ino = local->loc2.parent->ino;
|
||||
local->postparent.st_ino = local->loc2.parent->ino;
|
||||
local->preparent.ia_ino = local->loc2.parent->ino;
|
||||
local->postparent.ia_ino = local->loc2.parent->ino;
|
||||
|
||||
/* NOTE: rename_subvol is the same subvolume from which dht_rename_cbk
|
||||
* is called. since rename has already happened on rename_subvol,
|
||||
@ -504,8 +504,8 @@ dht_do_rename (call_frame_t *frame)
|
||||
int
|
||||
dht_rename_links_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
|
||||
int32_t op_ret, int32_t op_errno,
|
||||
inode_t *inode, struct stat *stbuf,
|
||||
struct stat *preparent, struct stat *postparent)
|
||||
inode_t *inode, struct iatt *stbuf,
|
||||
struct iatt *preparent, struct iatt *postparent)
|
||||
{
|
||||
dht_local_t *local = NULL;
|
||||
call_frame_t *prev = NULL;
|
||||
@ -680,7 +680,7 @@ dht_rename (call_frame_t *frame, xlator_t *this,
|
||||
newloc->path, dst_hashed->name,
|
||||
dst_cached ? dst_cached->name : "<nul>");
|
||||
|
||||
if (S_ISDIR (oldloc->inode->st_mode)) {
|
||||
if (IA_ISDIR (oldloc->inode->ia_type)) {
|
||||
dht_rename_dir (frame, this);
|
||||
} else {
|
||||
local->op_ret = 0;
|
||||
|
@ -196,8 +196,8 @@ dht_selfheal_dir_xattr (call_frame_t *frame, loc_t *loc, dht_layout_t *layout)
|
||||
int
|
||||
dht_selfheal_dir_mkdir_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
|
||||
int op_ret, int op_errno,
|
||||
inode_t *inode, struct stat *stbuf,
|
||||
struct stat *preparent, struct stat *postparent)
|
||||
inode_t *inode, struct iatt *stbuf,
|
||||
struct iatt *preparent, struct iatt *postparent)
|
||||
{
|
||||
dht_local_t *local = NULL;
|
||||
dht_layout_t *layout = NULL;
|
||||
@ -212,12 +212,12 @@ dht_selfheal_dir_mkdir_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
|
||||
prev = cookie;
|
||||
subvol = prev->this;
|
||||
|
||||
dht_stat_merge (this, &local->stbuf, stbuf, prev->this);
|
||||
dht_iatt_merge (this, &local->stbuf, stbuf, prev->this);
|
||||
if (prev->this == local->hashed_subvol)
|
||||
local->st_ino = local->stbuf.st_ino;
|
||||
local->ia_ino = local->stbuf.ia_ino;
|
||||
|
||||
dht_stat_merge (this, &local->preparent, preparent, prev->this);
|
||||
dht_stat_merge (this, &local->postparent, postparent, prev->this);
|
||||
dht_iatt_merge (this, &local->preparent, preparent, prev->this);
|
||||
dht_iatt_merge (this, &local->postparent, postparent, prev->this);
|
||||
|
||||
if ((op_ret == 0) || (op_errno == EEXIST)) {
|
||||
for (i = 0; i < layout->cnt; i++) {
|
||||
@ -271,7 +271,9 @@ dht_selfheal_dir_mkdir (call_frame_t *frame, loc_t *loc,
|
||||
STACK_WIND (frame, dht_selfheal_dir_mkdir_cbk,
|
||||
layout->list[i].xlator,
|
||||
layout->list[i].xlator->fops->mkdir,
|
||||
loc, local->stbuf.st_mode);
|
||||
loc,
|
||||
st_mode_from_ia (local->stbuf.ia_prot,
|
||||
local->stbuf.ia_type));
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -30,8 +30,8 @@
|
||||
int
|
||||
nufa_local_lookup_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
|
||||
int op_ret, int op_errno,
|
||||
inode_t *inode, struct stat *stbuf, dict_t *xattr,
|
||||
struct stat *postparent)
|
||||
inode_t *inode, struct iatt *stbuf, dict_t *xattr,
|
||||
struct iatt *postparent)
|
||||
{
|
||||
xlator_t *subvol = NULL;
|
||||
char is_linkfile = 0;
|
||||
@ -68,8 +68,8 @@ nufa_local_lookup_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
|
||||
if (!is_dir && !is_linkfile) {
|
||||
/* non-directory and not a linkfile */
|
||||
|
||||
dht_itransform (this, prev->this, stbuf->st_ino,
|
||||
&stbuf->st_ino);
|
||||
dht_itransform (this, prev->this, stbuf->ia_ino,
|
||||
&stbuf->ia_ino);
|
||||
|
||||
ret = dht_layout_preset (this, prev->this, inode);
|
||||
if (ret < 0) {
|
||||
@ -224,7 +224,7 @@ nufa_lookup (call_frame_t *frame, xlator_t *this,
|
||||
}
|
||||
|
||||
local->inode = inode_ref (loc->inode);
|
||||
local->st_ino = loc->inode->ino;
|
||||
local->ia_ino = loc->inode->ino;
|
||||
|
||||
local->call_cnt = layout->cnt;
|
||||
call_cnt = local->call_cnt;
|
||||
@ -271,9 +271,9 @@ err:
|
||||
int
|
||||
nufa_create_linkfile_create_cbk (call_frame_t *frame, void *cookie,
|
||||
xlator_t *this, int op_ret, int op_errno,
|
||||
inode_t *inode, struct stat *stbuf,
|
||||
struct stat *preparent,
|
||||
struct stat *postparent)
|
||||
inode_t *inode, struct iatt *stbuf,
|
||||
struct iatt *preparent,
|
||||
struct iatt *postparent)
|
||||
{
|
||||
dht_local_t *local = NULL;
|
||||
call_frame_t *prev = NULL;
|
||||
@ -382,8 +382,8 @@ err:
|
||||
int
|
||||
nufa_mknod_linkfile_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
|
||||
int op_ret, int op_errno, inode_t *inode,
|
||||
struct stat *stbuf, struct stat *preparent,
|
||||
struct stat *postparent)
|
||||
struct iatt *stbuf, struct iatt *preparent,
|
||||
struct iatt *postparent)
|
||||
{
|
||||
dht_local_t *local = NULL;
|
||||
call_frame_t *prev = NULL;
|
||||
|
@ -104,8 +104,8 @@ get_switch_matching_subvol (const char *path, dht_conf_t *conf,
|
||||
int
|
||||
switch_local_lookup_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
|
||||
int op_ret, int op_errno,
|
||||
inode_t *inode, struct stat *stbuf, dict_t *xattr,
|
||||
struct stat *postparent)
|
||||
inode_t *inode, struct iatt *stbuf, dict_t *xattr,
|
||||
struct iatt *postparent)
|
||||
{
|
||||
xlator_t *subvol = NULL;
|
||||
char is_linkfile = 0;
|
||||
@ -141,8 +141,8 @@ switch_local_lookup_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
|
||||
if (!is_dir && !is_linkfile) {
|
||||
/* non-directory and not a linkfile */
|
||||
|
||||
dht_itransform (this, prev->this, stbuf->st_ino,
|
||||
&stbuf->st_ino);
|
||||
dht_itransform (this, prev->this, stbuf->ia_ino,
|
||||
&stbuf->ia_ino);
|
||||
|
||||
ret = dht_layout_preset (this, prev->this, inode);
|
||||
if (ret < 0) {
|
||||
@ -297,7 +297,7 @@ switch_lookup (call_frame_t *frame, xlator_t *this,
|
||||
}
|
||||
|
||||
local->inode = inode_ref (loc->inode);
|
||||
local->st_ino = loc->inode->ino;
|
||||
local->ia_ino = loc->inode->ino;
|
||||
|
||||
local->call_cnt = layout->cnt;
|
||||
call_cnt = local->call_cnt;
|
||||
@ -379,9 +379,9 @@ err:
|
||||
int
|
||||
switch_create_linkfile_create_cbk (call_frame_t *frame, void *cookie,
|
||||
xlator_t *this, int op_ret, int op_errno,
|
||||
inode_t *inode, struct stat *stbuf,
|
||||
struct stat *preparent,
|
||||
struct stat *postparent)
|
||||
inode_t *inode, struct iatt *stbuf,
|
||||
struct iatt *preparent,
|
||||
struct iatt *postparent)
|
||||
{
|
||||
dht_local_t *local = NULL;
|
||||
call_frame_t *prev = NULL;
|
||||
@ -489,8 +489,8 @@ err:
|
||||
int
|
||||
switch_mknod_linkfile_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
|
||||
int op_ret, int op_errno, inode_t *inode,
|
||||
struct stat *stbuf, struct stat *preparent,
|
||||
struct stat *postparent)
|
||||
struct iatt *stbuf, struct iatt *preparent,
|
||||
struct iatt *postparent)
|
||||
{
|
||||
dht_local_t *local = NULL;
|
||||
call_frame_t *prev = NULL;
|
||||
|
@ -98,9 +98,9 @@ ha_lookup_cbk (call_frame_t *frame,
|
||||
int32_t op_ret,
|
||||
int32_t op_errno,
|
||||
inode_t *inode,
|
||||
struct stat *buf,
|
||||
struct iatt *buf,
|
||||
dict_t *dict,
|
||||
struct stat *postparent)
|
||||
struct iatt *postparent)
|
||||
{
|
||||
ha_local_t *local = NULL;
|
||||
ha_private_t *pvt = NULL;
|
||||
@ -245,7 +245,7 @@ ha_stat_cbk (call_frame_t *frame,
|
||||
xlator_t *this,
|
||||
int32_t op_ret,
|
||||
int32_t op_errno,
|
||||
struct stat *buf)
|
||||
struct iatt *buf)
|
||||
{
|
||||
int ret = -1;
|
||||
|
||||
@ -290,8 +290,8 @@ err:
|
||||
|
||||
int32_t
|
||||
ha_setattr_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
|
||||
int32_t op_ret, int32_t op_errno, struct stat *statpre,
|
||||
struct stat *statpost)
|
||||
int32_t op_ret, int32_t op_errno, struct iatt *statpre,
|
||||
struct iatt *statpost)
|
||||
{
|
||||
int ret = -1;
|
||||
|
||||
@ -305,7 +305,7 @@ ha_setattr_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
|
||||
|
||||
|
||||
int32_t
|
||||
ha_setattr (call_frame_t *frame, xlator_t *this, loc_t *loc, struct stat *stbuf,
|
||||
ha_setattr (call_frame_t *frame, xlator_t *this, loc_t *loc, struct iatt *stbuf,
|
||||
int32_t valid)
|
||||
{
|
||||
ha_local_t *local = NULL;
|
||||
@ -333,7 +333,7 @@ err:
|
||||
|
||||
|
||||
int32_t
|
||||
ha_fsetattr (call_frame_t *frame, xlator_t *this, fd_t *fd, struct stat *stbuf,
|
||||
ha_fsetattr (call_frame_t *frame, xlator_t *this, fd_t *fd, struct iatt *stbuf,
|
||||
int32_t valid)
|
||||
{
|
||||
ha_local_t *local = NULL;
|
||||
@ -366,8 +366,8 @@ ha_truncate_cbk (call_frame_t *frame,
|
||||
xlator_t *this,
|
||||
int32_t op_ret,
|
||||
int32_t op_errno,
|
||||
struct stat *prebuf,
|
||||
struct stat *postbuf)
|
||||
struct iatt *prebuf,
|
||||
struct iatt *postbuf)
|
||||
{
|
||||
int ret = -1;
|
||||
|
||||
@ -423,8 +423,8 @@ ha_ftruncate_cbk (call_frame_t *frame,
|
||||
xlator_t *this,
|
||||
int32_t op_ret,
|
||||
int32_t op_errno,
|
||||
struct stat *prebuf,
|
||||
struct stat *postbuf)
|
||||
struct iatt *prebuf,
|
||||
struct iatt *postbuf)
|
||||
{
|
||||
int ret = -1;
|
||||
|
||||
@ -546,7 +546,7 @@ ha_readlink_cbk (call_frame_t *frame,
|
||||
int32_t op_ret,
|
||||
int32_t op_errno,
|
||||
const char *path,
|
||||
struct stat *sbuf)
|
||||
struct iatt *sbuf)
|
||||
{
|
||||
int ret = -1;
|
||||
|
||||
@ -599,9 +599,9 @@ ha_mknod_lookup_cbk (call_frame_t *frame,
|
||||
int32_t op_ret,
|
||||
int32_t op_errno,
|
||||
inode_t *inode,
|
||||
struct stat *buf,
|
||||
struct iatt *buf,
|
||||
dict_t *dict,
|
||||
struct stat *postparent)
|
||||
struct iatt *postparent)
|
||||
{
|
||||
ha_local_t *local = NULL;
|
||||
ha_private_t *pvt = NULL;
|
||||
@ -664,9 +664,9 @@ ha_mknod_cbk (call_frame_t *frame,
|
||||
int32_t op_ret,
|
||||
int32_t op_errno,
|
||||
inode_t *inode,
|
||||
struct stat *buf,
|
||||
struct stat *preparent,
|
||||
struct stat *postparent)
|
||||
struct iatt *buf,
|
||||
struct iatt *preparent,
|
||||
struct iatt *postparent)
|
||||
{
|
||||
ha_local_t *local = NULL;
|
||||
ha_private_t *pvt = NULL;
|
||||
@ -837,9 +837,9 @@ ha_mkdir_lookup_cbk (call_frame_t *frame,
|
||||
int32_t op_ret,
|
||||
int32_t op_errno,
|
||||
inode_t *inode,
|
||||
struct stat *buf,
|
||||
struct iatt *buf,
|
||||
dict_t *dict,
|
||||
struct stat *postparent)
|
||||
struct iatt *postparent)
|
||||
{
|
||||
ha_local_t *local = NULL;
|
||||
ha_private_t *pvt = NULL;
|
||||
@ -893,9 +893,9 @@ ha_mkdir_cbk (call_frame_t *frame,
|
||||
int32_t op_ret,
|
||||
int32_t op_errno,
|
||||
inode_t *inode,
|
||||
struct stat *buf,
|
||||
struct stat *preparent,
|
||||
struct stat *postparent)
|
||||
struct iatt *buf,
|
||||
struct iatt *preparent,
|
||||
struct iatt *postparent)
|
||||
{
|
||||
ha_local_t *local = NULL;
|
||||
ha_private_t *pvt = NULL;
|
||||
@ -1056,8 +1056,8 @@ ha_unlink_cbk (call_frame_t *frame,
|
||||
xlator_t *this,
|
||||
int32_t op_ret,
|
||||
int32_t op_errno,
|
||||
struct stat *preparent,
|
||||
struct stat *postparent)
|
||||
struct iatt *preparent,
|
||||
struct iatt *postparent)
|
||||
{
|
||||
int ret = -1;
|
||||
|
||||
@ -1108,8 +1108,8 @@ ha_rmdir_cbk (call_frame_t *frame,
|
||||
xlator_t *this,
|
||||
int32_t op_ret,
|
||||
int32_t op_errno,
|
||||
struct stat *preparent,
|
||||
struct stat *postparent)
|
||||
struct iatt *preparent,
|
||||
struct iatt *postparent)
|
||||
{
|
||||
int ret = -1;
|
||||
|
||||
@ -1166,9 +1166,9 @@ ha_symlink_lookup_cbk (call_frame_t *frame,
|
||||
int32_t op_ret,
|
||||
int32_t op_errno,
|
||||
inode_t *inode,
|
||||
struct stat *buf,
|
||||
struct iatt *buf,
|
||||
dict_t *dict,
|
||||
struct stat *postparent)
|
||||
struct iatt *postparent)
|
||||
{
|
||||
ha_local_t *local = NULL;
|
||||
ha_private_t *pvt = NULL;
|
||||
@ -1222,9 +1222,9 @@ ha_symlink_cbk (call_frame_t *frame,
|
||||
int32_t op_ret,
|
||||
int32_t op_errno,
|
||||
inode_t *inode,
|
||||
struct stat *buf,
|
||||
struct stat *preparent,
|
||||
struct stat *postparent)
|
||||
struct iatt *buf,
|
||||
struct iatt *preparent,
|
||||
struct iatt *postparent)
|
||||
{
|
||||
ha_local_t *local = NULL;
|
||||
ha_private_t *pvt = NULL;
|
||||
@ -1385,11 +1385,11 @@ ha_rename_cbk (call_frame_t *frame,
|
||||
xlator_t *this,
|
||||
int32_t op_ret,
|
||||
int32_t op_errno,
|
||||
struct stat *buf,
|
||||
struct stat *preoldparent,
|
||||
struct stat *postoldparent,
|
||||
struct stat *prenewparent,
|
||||
struct stat *postnewparent)
|
||||
struct iatt *buf,
|
||||
struct iatt *preoldparent,
|
||||
struct iatt *postoldparent,
|
||||
struct iatt *prenewparent,
|
||||
struct iatt *postnewparent)
|
||||
{
|
||||
int ret = -1;
|
||||
|
||||
@ -1443,9 +1443,9 @@ ha_link_lookup_cbk (call_frame_t *frame,
|
||||
int32_t op_ret,
|
||||
int32_t op_errno,
|
||||
inode_t *inode,
|
||||
struct stat *buf,
|
||||
struct iatt *buf,
|
||||
dict_t *dict,
|
||||
struct stat *postparent)
|
||||
struct iatt *postparent)
|
||||
{
|
||||
ha_local_t *local = NULL;
|
||||
ha_private_t *pvt = NULL;
|
||||
@ -1499,9 +1499,9 @@ ha_link_cbk (call_frame_t *frame,
|
||||
int32_t op_ret,
|
||||
int32_t op_errno,
|
||||
inode_t *inode,
|
||||
struct stat *buf,
|
||||
struct stat *preparent,
|
||||
struct stat *postparent)
|
||||
struct iatt *buf,
|
||||
struct iatt *preparent,
|
||||
struct iatt *postparent)
|
||||
{
|
||||
ha_local_t *local = NULL;
|
||||
ha_private_t *pvt = NULL;
|
||||
@ -1669,9 +1669,9 @@ ha_create_cbk (call_frame_t *frame,
|
||||
int32_t op_errno,
|
||||
fd_t *fd,
|
||||
inode_t *inode,
|
||||
struct stat *buf,
|
||||
struct stat *preparent,
|
||||
struct stat *postparent)
|
||||
struct iatt *buf,
|
||||
struct iatt *preparent,
|
||||
struct iatt *postparent)
|
||||
{
|
||||
ha_local_t *local = NULL;
|
||||
ha_private_t *pvt = NULL;
|
||||
@ -2044,7 +2044,7 @@ ha_readv_cbk (call_frame_t *frame,
|
||||
int32_t op_errno,
|
||||
struct iovec *vector,
|
||||
int32_t count,
|
||||
struct stat *stbuf,
|
||||
struct iatt *stbuf,
|
||||
struct iobref *iobref)
|
||||
{
|
||||
int ret = 0;
|
||||
@ -2111,8 +2111,8 @@ ha_writev_cbk (call_frame_t *frame,
|
||||
xlator_t *this,
|
||||
int32_t op_ret,
|
||||
int32_t op_errno,
|
||||
struct stat *prebuf,
|
||||
struct stat *postbuf)
|
||||
struct iatt *prebuf,
|
||||
struct iatt *postbuf)
|
||||
{
|
||||
int ret = 0;
|
||||
ret = ha_handle_cbk (frame, cookie, op_ret, op_errno);
|
||||
@ -2237,8 +2237,8 @@ ha_fsync_cbk (call_frame_t *frame,
|
||||
xlator_t *this,
|
||||
int32_t op_ret,
|
||||
int32_t op_errno,
|
||||
struct stat *prebuf,
|
||||
struct stat *postbuf)
|
||||
struct iatt *prebuf,
|
||||
struct iatt *postbuf)
|
||||
{
|
||||
int ret = 0;
|
||||
ret = ha_handle_cbk (frame, cookie, op_ret, op_errno);
|
||||
@ -2297,7 +2297,7 @@ ha_fstat_cbk (call_frame_t *frame,
|
||||
xlator_t *this,
|
||||
int32_t op_ret,
|
||||
int32_t op_errno,
|
||||
struct stat *buf)
|
||||
struct iatt *buf)
|
||||
{
|
||||
int ret = 0;
|
||||
|
||||
|
@ -28,9 +28,9 @@ typedef struct {
|
||||
char *state, *pattern;
|
||||
dict_t *dict;
|
||||
loc_t loc;
|
||||
struct stat buf;
|
||||
struct stat postparent;
|
||||
struct stat preparent;
|
||||
struct iatt buf;
|
||||
struct iatt postparent;
|
||||
struct iatt preparent;
|
||||
fd_t *fd;
|
||||
inode_t *inode;
|
||||
int32_t flags;
|
||||
|
@ -36,13 +36,13 @@ map_stat_cbk (call_frame_t *frame,
|
||||
xlator_t *this,
|
||||
int32_t op_ret,
|
||||
int32_t op_errno,
|
||||
struct stat *buf)
|
||||
struct iatt *buf)
|
||||
|
||||
{
|
||||
call_frame_t *prev = NULL;
|
||||
prev = cookie;
|
||||
|
||||
map_itransform (this, prev->this, buf->st_ino, &buf->st_ino);
|
||||
map_itransform (this, prev->this, buf->ia_ino, &buf->ia_ino);
|
||||
|
||||
STACK_UNWIND (frame, op_ret, op_errno, buf);
|
||||
return 0;
|
||||
@ -54,14 +54,14 @@ map_setattr_cbk (call_frame_t *frame,
|
||||
xlator_t *this,
|
||||
int32_t op_ret,
|
||||
int32_t op_errno,
|
||||
struct stat *statpre,
|
||||
struct stat *statpost)
|
||||
struct iatt *statpre,
|
||||
struct iatt *statpost)
|
||||
{
|
||||
call_frame_t *prev = NULL;
|
||||
prev = cookie;
|
||||
|
||||
map_itransform (this, prev->this, statpre->st_ino, &statpre->st_ino);
|
||||
map_itransform (this, prev->this, statpost->st_ino, &statpost->st_ino);
|
||||
map_itransform (this, prev->this, statpre->ia_ino, &statpre->ia_ino);
|
||||
map_itransform (this, prev->this, statpost->ia_ino, &statpost->ia_ino);
|
||||
|
||||
STACK_UNWIND (frame, op_ret, op_errno, statpre, statpost);
|
||||
return 0;
|
||||
@ -73,14 +73,14 @@ map_fsetattr_cbk (call_frame_t *frame,
|
||||
xlator_t *this,
|
||||
int32_t op_ret,
|
||||
int32_t op_errno,
|
||||
struct stat *statpre,
|
||||
struct stat *statpost)
|
||||
struct iatt *statpre,
|
||||
struct iatt *statpost)
|
||||
{
|
||||
call_frame_t *prev = NULL;
|
||||
prev = cookie;
|
||||
|
||||
map_itransform (this, prev->this, statpre->st_ino, &statpre->st_ino);
|
||||
map_itransform (this, prev->this, statpost->st_ino, &statpost->st_ino);
|
||||
map_itransform (this, prev->this, statpre->ia_ino, &statpre->ia_ino);
|
||||
map_itransform (this, prev->this, statpost->ia_ino, &statpost->ia_ino);
|
||||
|
||||
STACK_UNWIND (frame, op_ret, op_errno, statpre, statpost);
|
||||
return 0;
|
||||
@ -92,13 +92,13 @@ map_truncate_cbk (call_frame_t *frame,
|
||||
xlator_t *this,
|
||||
int32_t op_ret,
|
||||
int32_t op_errno,
|
||||
struct stat *prebuf,
|
||||
struct stat *postbuf)
|
||||
struct iatt *prebuf,
|
||||
struct iatt *postbuf)
|
||||
{
|
||||
call_frame_t *prev = NULL;
|
||||
prev = cookie;
|
||||
|
||||
map_itransform (this, prev->this, postbuf->st_ino, &postbuf->st_ino);
|
||||
map_itransform (this, prev->this, postbuf->ia_ino, &postbuf->ia_ino);
|
||||
|
||||
STACK_UNWIND (frame, op_ret, op_errno, prebuf, postbuf);
|
||||
return 0;
|
||||
@ -110,13 +110,13 @@ map_ftruncate_cbk (call_frame_t *frame,
|
||||
xlator_t *this,
|
||||
int32_t op_ret,
|
||||
int32_t op_errno,
|
||||
struct stat *prebuf,
|
||||
struct stat *postbuf)
|
||||
struct iatt *prebuf,
|
||||
struct iatt *postbuf)
|
||||
{
|
||||
call_frame_t *prev = NULL;
|
||||
prev = cookie;
|
||||
|
||||
map_itransform (this, prev->this, postbuf->st_ino, &postbuf->st_ino);
|
||||
map_itransform (this, prev->this, postbuf->ia_ino, &postbuf->ia_ino);
|
||||
|
||||
STACK_UNWIND (frame, op_ret, op_errno, prebuf, postbuf);
|
||||
return 0;
|
||||
@ -141,7 +141,7 @@ map_readlink_cbk (call_frame_t *frame,
|
||||
int32_t op_ret,
|
||||
int32_t op_errno,
|
||||
const char *path,
|
||||
struct stat *sbuf)
|
||||
struct iatt *sbuf)
|
||||
{
|
||||
STACK_UNWIND (frame, op_ret, op_errno, path, sbuf);
|
||||
return 0;
|
||||
@ -153,8 +153,8 @@ map_unlink_cbk (call_frame_t *frame,
|
||||
xlator_t *this,
|
||||
int32_t op_ret,
|
||||
int32_t op_errno,
|
||||
struct stat *preparent,
|
||||
struct stat *postparent)
|
||||
struct iatt *preparent,
|
||||
struct iatt *postparent)
|
||||
{
|
||||
STACK_UNWIND (frame, op_ret, op_errno, preparent, postparent);
|
||||
return 0;
|
||||
@ -166,8 +166,8 @@ map_rmdir_cbk (call_frame_t *frame,
|
||||
xlator_t *this,
|
||||
int32_t op_ret,
|
||||
int32_t op_errno,
|
||||
struct stat *preparent,
|
||||
struct stat *postparent)
|
||||
struct iatt *preparent,
|
||||
struct iatt *postparent)
|
||||
{
|
||||
STACK_UNWIND (frame, op_ret, op_errno, preparent, postparent);
|
||||
return 0;
|
||||
@ -180,16 +180,16 @@ map_rename_cbk (call_frame_t *frame,
|
||||
xlator_t *this,
|
||||
int32_t op_ret,
|
||||
int32_t op_errno,
|
||||
struct stat *buf,
|
||||
struct stat *preoldparent,
|
||||
struct stat *postoldparent,
|
||||
struct stat *prenewparent,
|
||||
struct stat *postnewparent)
|
||||
struct iatt *buf,
|
||||
struct iatt *preoldparent,
|
||||
struct iatt *postoldparent,
|
||||
struct iatt *prenewparent,
|
||||
struct iatt *postnewparent)
|
||||
{
|
||||
call_frame_t *prev = NULL;
|
||||
prev = cookie;
|
||||
|
||||
map_itransform (this, prev->this, buf->st_ino, &buf->st_ino);
|
||||
map_itransform (this, prev->this, buf->ia_ino, &buf->ia_ino);
|
||||
|
||||
STACK_UNWIND (frame, op_ret, op_errno, buf);
|
||||
return 0;
|
||||
@ -202,14 +202,14 @@ map_link_cbk (call_frame_t *frame,
|
||||
int32_t op_ret,
|
||||
int32_t op_errno,
|
||||
inode_t *inode,
|
||||
struct stat *buf,
|
||||
struct stat *preparent,
|
||||
struct stat *postparent)
|
||||
struct iatt *buf,
|
||||
struct iatt *preparent,
|
||||
struct iatt *postparent)
|
||||
{
|
||||
call_frame_t *prev = NULL;
|
||||
prev = cookie;
|
||||
|
||||
map_itransform (this, prev->this, buf->st_ino, &buf->st_ino);
|
||||
map_itransform (this, prev->this, buf->ia_ino, &buf->ia_ino);
|
||||
|
||||
STACK_UNWIND (frame, op_ret, op_errno, inode, buf);
|
||||
return 0;
|
||||
@ -235,13 +235,13 @@ map_readv_cbk (call_frame_t *frame,
|
||||
int32_t op_errno,
|
||||
struct iovec *vector,
|
||||
int32_t count,
|
||||
struct stat *stbuf,
|
||||
struct iatt *stbuf,
|
||||
struct iobref *iobref)
|
||||
{
|
||||
call_frame_t *prev = NULL;
|
||||
prev = cookie;
|
||||
|
||||
map_itransform (this, prev->this, stbuf->st_ino, &stbuf->st_ino);
|
||||
map_itransform (this, prev->this, stbuf->ia_ino, &stbuf->ia_ino);
|
||||
|
||||
STACK_UNWIND (frame, op_ret, op_errno, vector, count, stbuf, iobref);
|
||||
return 0;
|
||||
@ -253,13 +253,13 @@ map_writev_cbk (call_frame_t *frame,
|
||||
xlator_t *this,
|
||||
int32_t op_ret,
|
||||
int32_t op_errno,
|
||||
struct stat *prebuf,
|
||||
struct stat *postbuf)
|
||||
struct iatt *prebuf,
|
||||
struct iatt *postbuf)
|
||||
{
|
||||
call_frame_t *prev = NULL;
|
||||
prev = cookie;
|
||||
|
||||
map_itransform (this, prev->this, postbuf->st_ino, &postbuf->st_ino);
|
||||
map_itransform (this, prev->this, postbuf->ia_ino, &postbuf->ia_ino);
|
||||
|
||||
STACK_UNWIND (frame, op_ret, op_errno, prebuf, postbuf);
|
||||
return 0;
|
||||
@ -283,8 +283,8 @@ map_fsync_cbk (call_frame_t *frame,
|
||||
xlator_t *this,
|
||||
int32_t op_ret,
|
||||
int32_t op_errno,
|
||||
struct stat *prebuf,
|
||||
struct stat *postbuf)
|
||||
struct iatt *prebuf,
|
||||
struct iatt *postbuf)
|
||||
{
|
||||
STACK_UNWIND (frame, op_ret, op_errno, prebuf, postbuf);
|
||||
return 0;
|
||||
@ -297,12 +297,12 @@ map_fstat_cbk (call_frame_t *frame,
|
||||
xlator_t *this,
|
||||
int32_t op_ret,
|
||||
int32_t op_errno,
|
||||
struct stat *buf)
|
||||
struct iatt *buf)
|
||||
{
|
||||
call_frame_t *prev = NULL;
|
||||
prev = cookie;
|
||||
|
||||
map_itransform (this, prev->this, buf->st_ino, &buf->st_ino);
|
||||
map_itransform (this, prev->this, buf->ia_ino, &buf->ia_ino);
|
||||
|
||||
STACK_UNWIND (frame, op_ret, op_errno, buf);
|
||||
return 0;
|
||||
@ -492,14 +492,14 @@ map_newentry_cbk (call_frame_t *frame,
|
||||
int32_t op_ret,
|
||||
int32_t op_errno,
|
||||
inode_t *inode,
|
||||
struct stat *buf,
|
||||
struct stat *preparent,
|
||||
struct stat *postparent)
|
||||
struct iatt *buf,
|
||||
struct iatt *preparent,
|
||||
struct iatt *postparent)
|
||||
{
|
||||
call_frame_t *prev = NULL;
|
||||
prev = cookie;
|
||||
|
||||
map_itransform (this, prev->this, buf->st_ino, &buf->st_ino);
|
||||
map_itransform (this, prev->this, buf->ia_ino, &buf->ia_ino);
|
||||
|
||||
STACK_UNWIND (frame, op_ret, op_errno, inode, buf);
|
||||
return 0;
|
||||
@ -515,14 +515,14 @@ map_create_cbk (call_frame_t *frame,
|
||||
int32_t op_errno,
|
||||
fd_t *fd,
|
||||
inode_t *inode,
|
||||
struct stat *buf,
|
||||
struct stat *preparent,
|
||||
struct stat *postparent)
|
||||
struct iatt *buf,
|
||||
struct iatt *preparent,
|
||||
struct iatt *postparent)
|
||||
{
|
||||
call_frame_t *prev = NULL;
|
||||
prev = cookie;
|
||||
|
||||
map_itransform (this, prev->this, buf->st_ino, &buf->st_ino);
|
||||
map_itransform (this, prev->this, buf->ia_ino, &buf->ia_ino);
|
||||
|
||||
STACK_UNWIND (frame, op_ret, op_errno, fd, inode, buf);
|
||||
return 0;
|
||||
@ -624,14 +624,14 @@ map_single_lookup_cbk (call_frame_t *frame,
|
||||
int32_t op_ret,
|
||||
int32_t op_errno,
|
||||
inode_t *inode,
|
||||
struct stat *buf,
|
||||
struct iatt *buf,
|
||||
dict_t *dict,
|
||||
struct stat *postparent)
|
||||
struct iatt *postparent)
|
||||
{
|
||||
call_frame_t *prev = NULL;
|
||||
prev = cookie;
|
||||
|
||||
map_itransform (this, prev->this, buf->st_ino, &buf->st_ino);
|
||||
map_itransform (this, prev->this, buf->ia_ino, &buf->ia_ino);
|
||||
|
||||
STACK_UNWIND (frame, op_ret, op_errno, inode, buf, dict);
|
||||
|
||||
@ -645,9 +645,9 @@ map_root_lookup_cbk (call_frame_t *frame,
|
||||
int32_t op_ret,
|
||||
int32_t op_errno,
|
||||
inode_t *inode,
|
||||
struct stat *buf,
|
||||
struct iatt *buf,
|
||||
dict_t *dict,
|
||||
struct stat *postparent)
|
||||
struct iatt *postparent)
|
||||
{
|
||||
int callcnt = 0;
|
||||
map_local_t *local = NULL;
|
||||
@ -762,7 +762,7 @@ map_single_readdirp_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
|
||||
list_for_each_entry (orig_entry, &entries->list, list) {
|
||||
map_itransform (this, prev->this, orig_entry->d_ino,
|
||||
&orig_entry->d_ino);
|
||||
orig_entry->d_stat.st_ino = orig_entry->d_ino;
|
||||
orig_entry->d_stat.ia_ino = orig_entry->d_ino;
|
||||
}
|
||||
STACK_UNWIND (frame, op_ret, op_errno, entries);
|
||||
return 0;
|
||||
@ -815,7 +815,7 @@ map_generic_readdir_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
|
||||
&entry->d_off);
|
||||
|
||||
if (whichop == GF_FOP_READDIRP)
|
||||
entry->d_stat.st_ino = entry->d_ino;
|
||||
entry->d_stat.ia_ino = entry->d_ino;
|
||||
entry->d_type = orig_entry->d_type;
|
||||
entry->d_len = orig_entry->d_len;
|
||||
|
||||
@ -957,7 +957,7 @@ int32_t
|
||||
map_setattr (call_frame_t *frame,
|
||||
xlator_t *this,
|
||||
loc_t *loc,
|
||||
struct stat *stbuf,
|
||||
struct iatt *stbuf,
|
||||
int32_t valid)
|
||||
{
|
||||
int32_t op_errno = 1;
|
||||
@ -989,7 +989,7 @@ int32_t
|
||||
map_fsetattr (call_frame_t *frame,
|
||||
xlator_t *this,
|
||||
fd_t *fd,
|
||||
struct stat *stbuf,
|
||||
struct iatt *stbuf,
|
||||
int32_t valid)
|
||||
{
|
||||
int32_t op_errno = 1;
|
||||
|
@ -46,7 +46,7 @@ typedef struct {
|
||||
int32_t op_errno;
|
||||
int call_count;
|
||||
struct statvfs statvfs;
|
||||
struct stat stbuf;
|
||||
struct iatt stbuf;
|
||||
inode_t *inode;
|
||||
dict_t *dict;
|
||||
fd_t *fd;
|
||||
|
@ -75,7 +75,7 @@ stripe_get_matching_bs (const char *path, struct stripe_options *opts,
|
||||
int32_t
|
||||
stripe_common_remove_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
|
||||
int32_t op_ret, int32_t op_errno,
|
||||
struct stat *preparent, struct stat *postparent)
|
||||
struct iatt *preparent, struct iatt *postparent)
|
||||
{
|
||||
STACK_UNWIND (frame, op_ret, op_errno, preparent, postparent);
|
||||
return 0;
|
||||
@ -135,8 +135,8 @@ stripe_common_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
|
||||
|
||||
int32_t
|
||||
stripe_fsync_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
|
||||
int32_t op_ret, int32_t op_errno, struct stat *prebuf,
|
||||
struct stat *postbuf)
|
||||
int32_t op_ret, int32_t op_errno, struct iatt *prebuf,
|
||||
struct iatt *postbuf)
|
||||
{
|
||||
int32_t callcnt = 0;
|
||||
stripe_local_t *local = NULL;
|
||||
@ -164,14 +164,14 @@ stripe_fsync_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
|
||||
local->pre_buf = *prebuf;
|
||||
local->post_buf = *postbuf;
|
||||
}
|
||||
local->prebuf_blocks += prebuf->st_blocks;
|
||||
local->postbuf_blocks += postbuf->st_blocks;
|
||||
local->prebuf_blocks += prebuf->ia_blocks;
|
||||
local->postbuf_blocks += postbuf->ia_blocks;
|
||||
|
||||
if (local->prebuf_size < prebuf->st_size)
|
||||
local->prebuf_size = prebuf->st_size;
|
||||
if (local->prebuf_size < prebuf->ia_size)
|
||||
local->prebuf_size = prebuf->ia_size;
|
||||
|
||||
if (local->postbuf_size < postbuf->st_size)
|
||||
local->postbuf_size = postbuf->st_size;
|
||||
if (local->postbuf_size < postbuf->ia_size)
|
||||
local->postbuf_size = postbuf->ia_size;
|
||||
}
|
||||
}
|
||||
UNLOCK (&frame->lock);
|
||||
@ -186,10 +186,10 @@ stripe_fsync_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
|
||||
loc_wipe (&local->loc2);
|
||||
|
||||
if (local->op_ret != -1) {
|
||||
local->pre_buf.st_blocks = local->prebuf_blocks;
|
||||
local->pre_buf.st_size = local->prebuf_size;
|
||||
local->post_buf.st_blocks = local->postbuf_blocks;
|
||||
local->post_buf.st_size = local->postbuf_size;
|
||||
local->pre_buf.ia_blocks = local->prebuf_blocks;
|
||||
local->pre_buf.ia_size = local->prebuf_size;
|
||||
local->post_buf.ia_blocks = local->postbuf_blocks;
|
||||
local->post_buf.ia_size = local->postbuf_size;
|
||||
}
|
||||
STACK_UNWIND (frame, local->op_ret, local->op_errno,
|
||||
&local->pre_buf, &local->post_buf);
|
||||
@ -205,8 +205,8 @@ stripe_fsync_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
|
||||
*/
|
||||
int32_t
|
||||
stripe_unlink_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
|
||||
int32_t op_ret, int32_t op_errno, struct stat *preparent,
|
||||
struct stat *postparent)
|
||||
int32_t op_ret, int32_t op_errno, struct iatt *preparent,
|
||||
struct iatt *postparent)
|
||||
{
|
||||
int32_t callcnt = 0;
|
||||
stripe_local_t *local = NULL;
|
||||
@ -235,14 +235,14 @@ stripe_unlink_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
|
||||
local->preparent = *preparent;
|
||||
local->postparent = *postparent;
|
||||
}
|
||||
local->preparent_blocks += preparent->st_blocks;
|
||||
local->postparent_blocks += postparent->st_blocks;
|
||||
local->preparent_blocks += preparent->ia_blocks;
|
||||
local->postparent_blocks += postparent->ia_blocks;
|
||||
|
||||
if (local->preparent_size < preparent->st_size)
|
||||
local->preparent_size = preparent->st_size;
|
||||
if (local->preparent_size < preparent->ia_size)
|
||||
local->preparent_size = preparent->ia_size;
|
||||
|
||||
if (local->postparent_size < postparent->st_size)
|
||||
local->postparent_size = postparent->st_size;
|
||||
if (local->postparent_size < postparent->ia_size)
|
||||
local->postparent_size = postparent->ia_size;
|
||||
}
|
||||
}
|
||||
UNLOCK (&frame->lock);
|
||||
@ -257,10 +257,10 @@ stripe_unlink_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
|
||||
loc_wipe (&local->loc2);
|
||||
|
||||
if (local->op_ret != -1) {
|
||||
local->preparent.st_blocks = local->preparent_blocks;
|
||||
local->preparent.st_size = local->preparent_size;
|
||||
local->postparent.st_blocks = local->postparent_blocks;
|
||||
local->postparent.st_size = local->postparent_size;
|
||||
local->preparent.ia_blocks = local->preparent_blocks;
|
||||
local->preparent.ia_size = local->preparent_size;
|
||||
local->postparent.ia_blocks = local->postparent_blocks;
|
||||
local->postparent.ia_size = local->postparent_size;
|
||||
}
|
||||
STACK_UNWIND (frame, local->op_ret, local->op_errno,
|
||||
&local->preparent, &local->postparent);
|
||||
@ -270,8 +270,8 @@ stripe_unlink_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
|
||||
|
||||
int32_t
|
||||
stripe_truncate_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
|
||||
int32_t op_ret, int32_t op_errno, struct stat *prebuf,
|
||||
struct stat *postbuf)
|
||||
int32_t op_ret, int32_t op_errno, struct iatt *prebuf,
|
||||
struct iatt *postbuf)
|
||||
{
|
||||
int32_t callcnt = 0;
|
||||
stripe_local_t *local = NULL;
|
||||
@ -301,14 +301,14 @@ stripe_truncate_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
|
||||
local->post_buf = *postbuf;
|
||||
}
|
||||
|
||||
local->prebuf_blocks += prebuf->st_blocks;
|
||||
local->postbuf_blocks += postbuf->st_blocks;
|
||||
local->prebuf_blocks += prebuf->ia_blocks;
|
||||
local->postbuf_blocks += postbuf->ia_blocks;
|
||||
|
||||
if (local->prebuf_size < prebuf->st_size)
|
||||
local->prebuf_size = prebuf->st_size;
|
||||
if (local->prebuf_size < prebuf->ia_size)
|
||||
local->prebuf_size = prebuf->ia_size;
|
||||
|
||||
if (local->postbuf_size < postbuf->st_size)
|
||||
local->postbuf_size = postbuf->st_size;
|
||||
if (local->postbuf_size < postbuf->ia_size)
|
||||
local->postbuf_size = postbuf->ia_size;
|
||||
}
|
||||
}
|
||||
UNLOCK (&frame->lock);
|
||||
@ -323,10 +323,10 @@ stripe_truncate_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
|
||||
loc_wipe (&local->loc2);
|
||||
|
||||
if (local->op_ret != -1) {
|
||||
local->pre_buf.st_blocks = local->prebuf_blocks;
|
||||
local->pre_buf.st_size = local->prebuf_size;
|
||||
local->post_buf.st_blocks = local->postbuf_blocks;
|
||||
local->post_buf.st_size = local->postbuf_size;
|
||||
local->pre_buf.ia_blocks = local->prebuf_blocks;
|
||||
local->pre_buf.ia_size = local->prebuf_size;
|
||||
local->post_buf.ia_blocks = local->postbuf_blocks;
|
||||
local->post_buf.ia_size = local->postbuf_size;
|
||||
}
|
||||
|
||||
STACK_UNWIND (frame, local->op_ret, local->op_errno,
|
||||
@ -339,7 +339,7 @@ stripe_truncate_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
|
||||
|
||||
int32_t
|
||||
stripe_common_buf_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
|
||||
int32_t op_ret, int32_t op_errno, struct stat *buf)
|
||||
int32_t op_ret, int32_t op_errno, struct iatt *buf)
|
||||
{
|
||||
STACK_UNWIND (frame, op_ret, op_errno, buf);
|
||||
return 0;
|
||||
@ -347,15 +347,16 @@ stripe_common_buf_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
|
||||
|
||||
/**
|
||||
* stripe_buf_cbk - This function is used for all the _cbk with
|
||||
* 'struct stat *buf' as extra argument (other than minimum)
|
||||
* 'struct iatt *buf' as extra argument (other than minimum)
|
||||
* This is called from functions like, chmod, fchmod, chown, fchown,
|
||||
* truncate, ftruncate, utimens etc.
|
||||
*
|
||||
* @cookie - this argument should be always 'xlator_t *' of child node
|
||||
*/
|
||||
|
||||
int32_t
|
||||
stripe_buf_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
|
||||
int32_t op_ret, int32_t op_errno, struct stat *buf)
|
||||
int32_t op_ret, int32_t op_errno, struct iatt *buf)
|
||||
{
|
||||
int32_t callcnt = 0;
|
||||
stripe_local_t *local = NULL;
|
||||
@ -385,9 +386,9 @@ stripe_buf_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
|
||||
local->stbuf = *buf;
|
||||
}
|
||||
|
||||
local->stbuf_blocks += buf->st_blocks;
|
||||
if (local->stbuf_size < buf->st_size)
|
||||
local->stbuf_size = buf->st_size;
|
||||
local->stbuf_blocks += buf->ia_blocks;
|
||||
if (local->stbuf_size < buf->ia_size)
|
||||
local->stbuf_size = buf->ia_size;
|
||||
}
|
||||
}
|
||||
UNLOCK (&frame->lock);
|
||||
@ -402,8 +403,8 @@ stripe_buf_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
|
||||
loc_wipe (&local->loc2);
|
||||
|
||||
if (local->op_ret != -1) {
|
||||
local->stbuf.st_size = local->stbuf_size;
|
||||
local->stbuf.st_blocks = local->stbuf_blocks;
|
||||
local->stbuf.ia_size = local->stbuf_size;
|
||||
local->stbuf.ia_blocks = local->stbuf_blocks;
|
||||
}
|
||||
|
||||
STACK_UNWIND (frame, local->op_ret, local->op_errno,
|
||||
@ -417,8 +418,8 @@ stripe_buf_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
|
||||
int32_t
|
||||
stripe_common_inode_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
|
||||
int32_t op_ret, int32_t op_errno, inode_t *inode,
|
||||
struct stat *buf, struct stat *preparent,
|
||||
struct stat *postparent)
|
||||
struct iatt *buf, struct iatt *preparent,
|
||||
struct iatt *postparent)
|
||||
{
|
||||
STACK_UNWIND (frame, op_ret, op_errno, inode, buf, preparent,
|
||||
postparent);
|
||||
@ -437,8 +438,8 @@ int32_t
|
||||
stripe_inode_cbk (call_frame_t *frame, void *cookie,
|
||||
xlator_t *this, int32_t op_ret,
|
||||
int32_t op_errno, inode_t *inode,
|
||||
struct stat *buf, struct stat *preparent,
|
||||
struct stat *postparent)
|
||||
struct iatt *buf, struct iatt *preparent,
|
||||
struct iatt *postparent)
|
||||
{
|
||||
int32_t callcnt = 0;
|
||||
stripe_local_t *local = NULL;
|
||||
@ -471,16 +472,16 @@ stripe_inode_cbk (call_frame_t *frame, void *cookie,
|
||||
local->postparent = *postparent;
|
||||
local->preparent = *preparent;
|
||||
}
|
||||
local->stbuf_blocks += buf->st_blocks;
|
||||
local->preparent_blocks += preparent->st_blocks;
|
||||
local->postparent_blocks += postparent->st_blocks;
|
||||
local->stbuf_blocks += buf->ia_blocks;
|
||||
local->preparent_blocks += preparent->ia_blocks;
|
||||
local->postparent_blocks += postparent->ia_blocks;
|
||||
|
||||
if (local->stbuf_size < buf->st_size)
|
||||
local->stbuf_size = buf->st_size;
|
||||
if (local->preparent_size < preparent->st_size)
|
||||
local->preparent_size = preparent->st_size;
|
||||
if (local->postparent_size < postparent->st_size)
|
||||
local->postparent_size = postparent->st_size;
|
||||
if (local->stbuf_size < buf->ia_size)
|
||||
local->stbuf_size = buf->ia_size;
|
||||
if (local->preparent_size < preparent->ia_size)
|
||||
local->preparent_size = preparent->ia_size;
|
||||
if (local->postparent_size < postparent->ia_size)
|
||||
local->postparent_size = postparent->ia_size;
|
||||
}
|
||||
}
|
||||
UNLOCK (&frame->lock);
|
||||
@ -492,12 +493,12 @@ stripe_inode_cbk (call_frame_t *frame, void *cookie,
|
||||
local_inode = local->inode;
|
||||
|
||||
if (local->op_ret != -1) {
|
||||
local->preparent.st_blocks = local->preparent_blocks;
|
||||
local->preparent.st_size = local->preparent_size;
|
||||
local->postparent.st_blocks = local->postparent_blocks;
|
||||
local->postparent.st_size = local->postparent_size;
|
||||
local->stbuf.st_size = local->stbuf_size;
|
||||
local->stbuf.st_blocks = local->stbuf_blocks;
|
||||
local->preparent.ia_blocks = local->preparent_blocks;
|
||||
local->preparent.ia_size = local->preparent_size;
|
||||
local->postparent.ia_blocks = local->postparent_blocks;
|
||||
local->postparent.ia_size = local->postparent_size;
|
||||
local->stbuf.ia_size = local->stbuf_size;
|
||||
local->stbuf.ia_blocks = local->stbuf_blocks;
|
||||
}
|
||||
STACK_UNWIND (frame, local->op_ret, local->op_errno,
|
||||
local->inode, &local->stbuf,
|
||||
@ -513,7 +514,7 @@ stripe_inode_cbk (call_frame_t *frame, void *cookie,
|
||||
int32_t
|
||||
stripe_sh_chown_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
|
||||
int32_t op_ret, int32_t op_errno,
|
||||
struct stat *preop, struct stat *postop)
|
||||
struct iatt *preop, struct iatt *postop)
|
||||
{
|
||||
int callcnt = -1;
|
||||
stripe_local_t *local = NULL;
|
||||
@ -536,8 +537,8 @@ stripe_sh_chown_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
|
||||
int32_t
|
||||
stripe_sh_make_entry_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
|
||||
int32_t op_ret, int32_t op_errno, inode_t *inode,
|
||||
struct stat *buf, struct stat *preparent,
|
||||
struct stat *postparent)
|
||||
struct iatt *buf, struct iatt *preparent,
|
||||
struct iatt *postparent)
|
||||
{
|
||||
stripe_local_t *local = NULL;
|
||||
call_frame_t *prev = NULL;
|
||||
@ -561,8 +562,8 @@ stripe_entry_self_heal (call_frame_t *frame, xlator_t *this,
|
||||
stripe_local_t *rlocal = NULL;
|
||||
stripe_private_t *priv = NULL;
|
||||
|
||||
if (!(S_ISREG (local->stbuf.st_mode) ||
|
||||
S_ISDIR (local->stbuf.st_mode)))
|
||||
if (!(IA_ISREG (local->stbuf.ia_type) ||
|
||||
IA_ISDIR (local->stbuf.ia_type)))
|
||||
return 0;
|
||||
|
||||
priv = this->private;
|
||||
@ -581,15 +582,18 @@ stripe_entry_self_heal (call_frame_t *frame, xlator_t *this,
|
||||
memcpy (&rlocal->stbuf, &local->stbuf, sizeof (struct stat));
|
||||
|
||||
while (trav) {
|
||||
if (S_ISREG (local->stbuf.st_mode)) {
|
||||
if (IA_ISREG (local->stbuf.ia_type)) {
|
||||
STACK_WIND (rframe, stripe_sh_make_entry_cbk,
|
||||
trav->xlator, trav->xlator->fops->mknod,
|
||||
&local->loc, local->stbuf.st_mode, 0);
|
||||
&local->loc,
|
||||
st_mode_from_ia (local->stbuf.ia_prot,
|
||||
local->stbuf.ia_type), 0);
|
||||
}
|
||||
if (S_ISDIR (local->stbuf.st_mode)) {
|
||||
if (IA_ISREG (local->stbuf.ia_type)) {
|
||||
STACK_WIND (rframe, stripe_sh_make_entry_cbk,
|
||||
trav->xlator, trav->xlator->fops->mkdir,
|
||||
&local->loc, local->stbuf.st_mode);
|
||||
&local->loc, st_mode_from_ia (local->stbuf.ia_prot,
|
||||
local->stbuf.ia_type));
|
||||
}
|
||||
trav = trav->next;
|
||||
}
|
||||
@ -601,7 +605,7 @@ out:
|
||||
int32_t
|
||||
stripe_lookup_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
|
||||
int32_t op_ret, int32_t op_errno, inode_t *inode,
|
||||
struct stat *buf, dict_t *dict, struct stat *postparent)
|
||||
struct iatt *buf, dict_t *dict, struct iatt *postparent)
|
||||
{
|
||||
int32_t callcnt = 0;
|
||||
dict_t *tmp_dict = NULL;
|
||||
@ -640,13 +644,13 @@ stripe_lookup_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
|
||||
local->inode = inode_ref (inode);
|
||||
local->dict = dict_ref (dict);
|
||||
}
|
||||
local->stbuf_blocks += buf->st_blocks;
|
||||
local->postparent_blocks += postparent->st_blocks;
|
||||
local->stbuf_blocks += buf->ia_blocks;
|
||||
local->postparent_blocks += postparent->ia_blocks;
|
||||
|
||||
if (local->stbuf_size < buf->st_size)
|
||||
local->stbuf_size = buf->st_size;
|
||||
if (local->postparent_size < postparent->st_size)
|
||||
local->postparent_size = postparent->st_size;
|
||||
if (local->stbuf_size < buf->ia_size)
|
||||
local->stbuf_size = buf->ia_size;
|
||||
if (local->postparent_size < postparent->ia_size)
|
||||
local->postparent_size = postparent->ia_size;
|
||||
}
|
||||
}
|
||||
UNLOCK (&frame->lock);
|
||||
@ -662,10 +666,10 @@ stripe_lookup_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
|
||||
tmp_inode = local->inode;
|
||||
|
||||
if (local->op_ret != -1) {
|
||||
local->stbuf.st_blocks = local->stbuf_blocks;
|
||||
local->stbuf.st_size = local->stbuf_size;
|
||||
local->postparent.st_blocks = local->postparent_blocks;
|
||||
local->postparent.st_size = local->postparent_size;
|
||||
local->stbuf.ia_blocks = local->stbuf_blocks;
|
||||
local->stbuf.ia_size = local->stbuf_size;
|
||||
local->postparent.ia_blocks = local->postparent_blocks;
|
||||
local->postparent.ia_size = local->postparent_size;
|
||||
}
|
||||
|
||||
loc_wipe (&local->loc);
|
||||
@ -914,7 +918,7 @@ stripe_truncate (call_frame_t *frame, xlator_t *this, loc_t *loc, off_t offset)
|
||||
int32_t
|
||||
stripe_setattr_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
|
||||
int32_t op_ret, int32_t op_errno,
|
||||
struct stat *preop, struct stat *postop)
|
||||
struct iatt *preop, struct iatt *postop)
|
||||
{
|
||||
int32_t callcnt = 0;
|
||||
stripe_local_t *local = NULL;
|
||||
@ -945,13 +949,13 @@ stripe_setattr_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
|
||||
local->post_buf = *postop;
|
||||
}
|
||||
|
||||
local->prebuf_blocks += preop->st_blocks;
|
||||
local->postbuf_blocks += postop->st_blocks;
|
||||
local->prebuf_blocks += preop->ia_blocks;
|
||||
local->postbuf_blocks += postop->ia_blocks;
|
||||
|
||||
if (local->prebuf_size < preop->st_size)
|
||||
local->prebuf_size = preop->st_size;
|
||||
if (local->postbuf_size < postop->st_size)
|
||||
local->postbuf_size = postop->st_size;
|
||||
if (local->prebuf_size < preop->ia_size)
|
||||
local->prebuf_size = preop->ia_size;
|
||||
if (local->postbuf_size < postop->ia_size)
|
||||
local->postbuf_size = postop->ia_size;
|
||||
}
|
||||
}
|
||||
UNLOCK (&frame->lock);
|
||||
@ -966,10 +970,10 @@ stripe_setattr_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
|
||||
loc_wipe (&local->loc2);
|
||||
|
||||
if (local->op_ret != -1) {
|
||||
local->pre_buf.st_blocks = local->prebuf_blocks;
|
||||
local->pre_buf.st_size = local->prebuf_size;
|
||||
local->post_buf.st_blocks = local->postbuf_blocks;
|
||||
local->post_buf.st_size = local->postbuf_size;
|
||||
local->pre_buf.ia_blocks = local->prebuf_blocks;
|
||||
local->pre_buf.ia_size = local->prebuf_size;
|
||||
local->post_buf.ia_blocks = local->postbuf_blocks;
|
||||
local->post_buf.ia_size = local->postbuf_size;
|
||||
}
|
||||
|
||||
STACK_UNWIND (frame, local->op_ret, local->op_errno,
|
||||
@ -982,7 +986,7 @@ stripe_setattr_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
|
||||
|
||||
int32_t
|
||||
stripe_setattr (call_frame_t *frame, xlator_t *this, loc_t *loc,
|
||||
struct stat *stbuf, int32_t valid)
|
||||
struct iatt *stbuf, int32_t valid)
|
||||
{
|
||||
xlator_list_t *trav = NULL;
|
||||
stripe_local_t *local = NULL;
|
||||
@ -1029,7 +1033,7 @@ stripe_setattr (call_frame_t *frame, xlator_t *this, loc_t *loc,
|
||||
|
||||
int32_t
|
||||
stripe_fsetattr (call_frame_t *frame, xlator_t *this, fd_t *fd,
|
||||
struct stat *stbuf, int32_t valid)
|
||||
struct iatt *stbuf, int32_t valid)
|
||||
{
|
||||
stripe_local_t *local = NULL;
|
||||
stripe_private_t *priv = NULL;
|
||||
@ -1068,9 +1072,9 @@ stripe_fsetattr (call_frame_t *frame, xlator_t *this, fd_t *fd,
|
||||
|
||||
int32_t
|
||||
stripe_stack_rename_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
|
||||
int32_t op_ret, int32_t op_errno, struct stat *buf,
|
||||
struct stat *preoldparent, struct stat *postoldparent,
|
||||
struct stat *prenewparent, struct stat *postnewparent)
|
||||
int32_t op_ret, int32_t op_errno, struct iatt *buf,
|
||||
struct iatt *preoldparent, struct iatt *postoldparent,
|
||||
struct iatt *prenewparent, struct iatt *postnewparent)
|
||||
{
|
||||
int32_t callcnt = 0;
|
||||
stripe_local_t *local = NULL;
|
||||
@ -1096,26 +1100,26 @@ stripe_stack_rename_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
|
||||
if (op_ret == 0) {
|
||||
local->op_ret = 0;
|
||||
|
||||
local->stbuf.st_blocks += buf->st_blocks;
|
||||
local->preparent.st_blocks += preoldparent->st_blocks;
|
||||
local->postparent.st_blocks += postoldparent->st_blocks;
|
||||
local->pre_buf.st_blocks += prenewparent->st_blocks;
|
||||
local->post_buf.st_blocks += postnewparent->st_blocks;
|
||||
local->stbuf.ia_blocks += buf->ia_blocks;
|
||||
local->preparent.ia_blocks += preoldparent->ia_blocks;
|
||||
local->postparent.ia_blocks += postoldparent->ia_blocks;
|
||||
local->pre_buf.ia_blocks += prenewparent->ia_blocks;
|
||||
local->post_buf.ia_blocks += postnewparent->ia_blocks;
|
||||
|
||||
if (local->stbuf.st_size < buf->st_size)
|
||||
local->stbuf.st_size = buf->st_size;
|
||||
if (local->stbuf.ia_size < buf->ia_size)
|
||||
local->stbuf.ia_size = buf->ia_size;
|
||||
|
||||
if (local->preparent.st_size < preoldparent->st_size)
|
||||
local->preparent.st_size = preoldparent->st_size;
|
||||
if (local->preparent.ia_size < preoldparent->ia_size)
|
||||
local->preparent.ia_size = preoldparent->ia_size;
|
||||
|
||||
if (local->postparent.st_size < postoldparent->st_size)
|
||||
local->postparent.st_size = postoldparent->st_size;
|
||||
if (local->postparent.ia_size < postoldparent->ia_size)
|
||||
local->postparent.ia_size = postoldparent->ia_size;
|
||||
|
||||
if (local->pre_buf.st_size < prenewparent->st_size)
|
||||
local->pre_buf.st_size = prenewparent->st_size;
|
||||
if (local->pre_buf.ia_size < prenewparent->ia_size)
|
||||
local->pre_buf.ia_size = prenewparent->ia_size;
|
||||
|
||||
if (local->post_buf.st_size < postnewparent->st_size)
|
||||
local->post_buf.st_size = postnewparent->st_size;
|
||||
if (local->post_buf.ia_size < postnewparent->ia_size)
|
||||
local->post_buf.ia_size = postnewparent->ia_size;
|
||||
}
|
||||
}
|
||||
UNLOCK (&frame->lock);
|
||||
@ -1140,9 +1144,9 @@ stripe_stack_rename_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
|
||||
|
||||
int32_t
|
||||
stripe_first_rename_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
|
||||
int32_t op_ret, int32_t op_errno, struct stat *buf,
|
||||
struct stat *preoldparent, struct stat *postoldparent,
|
||||
struct stat *prenewparent, struct stat *postnewparent)
|
||||
int32_t op_ret, int32_t op_errno, struct iatt *buf,
|
||||
struct iatt *preoldparent, struct iatt *postoldparent,
|
||||
struct iatt *prenewparent, struct iatt *postnewparent)
|
||||
{
|
||||
stripe_local_t *local = NULL;
|
||||
xlator_list_t *trav = NULL;
|
||||
@ -1291,8 +1295,8 @@ stripe_unlink (call_frame_t *frame, xlator_t *this, loc_t *loc)
|
||||
|
||||
int32_t
|
||||
stripe_first_rmdir_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
|
||||
int32_t op_ret, int32_t op_errno,struct stat *preparent,
|
||||
struct stat *postparent)
|
||||
int32_t op_ret, int32_t op_errno,struct iatt *preparent,
|
||||
struct iatt *postparent)
|
||||
|
||||
{
|
||||
xlator_list_t *trav = NULL;
|
||||
@ -1311,10 +1315,10 @@ stripe_first_rmdir_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
|
||||
|
||||
local->preparent = *preparent;
|
||||
local->postparent = *postparent;
|
||||
local->preparent_blocks += preparent->st_blocks;
|
||||
local->postparent_blocks += postparent->st_blocks;
|
||||
local->preparent_size = preparent->st_size;
|
||||
local->postparent_size = postparent->st_size;
|
||||
local->preparent_blocks += preparent->ia_blocks;
|
||||
local->postparent_blocks += postparent->ia_blocks;
|
||||
local->preparent_size = preparent->ia_size;
|
||||
local->postparent_size = postparent->ia_size;
|
||||
|
||||
while (trav) {
|
||||
STACK_WIND (frame, stripe_unlink_cbk, trav->xlator,
|
||||
@ -1375,8 +1379,8 @@ stripe_rmdir (call_frame_t *frame, xlator_t *this, loc_t *loc)
|
||||
int32_t
|
||||
stripe_mknod_ifreg_fail_unlink_cbk (call_frame_t *frame, void *cookie,
|
||||
xlator_t *this, int32_t op_ret,
|
||||
int32_t op_errno, struct stat *preparent,
|
||||
struct stat *postparent)
|
||||
int32_t op_errno, struct iatt *preparent,
|
||||
struct iatt *postparent)
|
||||
{
|
||||
int32_t callcnt = 0;
|
||||
stripe_local_t *local = NULL;
|
||||
@ -1458,8 +1462,8 @@ stripe_mknod_ifreg_setxattr_cbk (call_frame_t *frame, void *cookie,
|
||||
int32_t
|
||||
stripe_mknod_ifreg_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
|
||||
int32_t op_ret, int32_t op_errno, inode_t *inode,
|
||||
struct stat *buf, struct stat *preparent,
|
||||
struct stat *postparent)
|
||||
struct iatt *buf, struct iatt *preparent,
|
||||
struct iatt *postparent)
|
||||
{
|
||||
int ret = 0;
|
||||
int32_t callcnt = 0;
|
||||
@ -1495,16 +1499,16 @@ stripe_mknod_ifreg_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
|
||||
local->postparent = *postparent;
|
||||
}
|
||||
|
||||
local->stbuf_blocks += buf->st_blocks;
|
||||
local->preparent_blocks += preparent->st_blocks;
|
||||
local->postparent_blocks += postparent->st_blocks;
|
||||
local->stbuf_blocks += buf->ia_blocks;
|
||||
local->preparent_blocks += preparent->ia_blocks;
|
||||
local->postparent_blocks += postparent->ia_blocks;
|
||||
|
||||
if (local->stbuf_size < buf->st_size)
|
||||
local->stbuf_size = buf->st_size;
|
||||
if (local->preparent_size < preparent->st_size)
|
||||
local->preparent_size = preparent->st_size;
|
||||
if (local->postparent_size < postparent->st_size)
|
||||
local->postparent_size = postparent->st_size;
|
||||
if (local->stbuf_size < buf->ia_size)
|
||||
local->stbuf_size = buf->ia_size;
|
||||
if (local->preparent_size < preparent->ia_size)
|
||||
local->preparent_size = preparent->ia_size;
|
||||
if (local->postparent_size < postparent->ia_size)
|
||||
local->postparent_size = postparent->ia_size;
|
||||
}
|
||||
}
|
||||
UNLOCK (&frame->lock);
|
||||
@ -1514,12 +1518,12 @@ stripe_mknod_ifreg_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
|
||||
local->op_ret = -1;
|
||||
|
||||
if (local->op_ret != -1) {
|
||||
local->preparent.st_blocks = local->preparent_blocks;
|
||||
local->preparent.st_size = local->preparent_size;
|
||||
local->postparent.st_blocks = local->postparent_blocks;
|
||||
local->postparent.st_size = local->postparent_size;
|
||||
local->stbuf.st_size = local->stbuf_size;
|
||||
local->stbuf.st_blocks = local->stbuf_blocks;
|
||||
local->preparent.ia_blocks = local->preparent_blocks;
|
||||
local->preparent.ia_size = local->preparent_size;
|
||||
local->postparent.ia_blocks = local->postparent_blocks;
|
||||
local->postparent.ia_size = local->postparent_size;
|
||||
local->stbuf.ia_size = local->stbuf_size;
|
||||
local->stbuf.ia_blocks = local->stbuf_blocks;
|
||||
}
|
||||
|
||||
if ((local->op_ret != -1) && priv->xattr_supported) {
|
||||
@ -1758,8 +1762,8 @@ stripe_link (call_frame_t *frame, xlator_t *this, loc_t *oldloc, loc_t *newloc)
|
||||
int32_t
|
||||
stripe_create_fail_unlink_cbk (call_frame_t *frame, void *cookie,
|
||||
xlator_t *this, int32_t op_ret,
|
||||
int32_t op_errno, struct stat *preparent,
|
||||
struct stat *postparent)
|
||||
int32_t op_errno, struct iatt *preparent,
|
||||
struct iatt *postparent)
|
||||
{
|
||||
int32_t callcnt = 0;
|
||||
fd_t *lfd = NULL;
|
||||
@ -1864,8 +1868,8 @@ stripe_create_setxattr_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
|
||||
int32_t
|
||||
stripe_create_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
|
||||
int32_t op_ret, int32_t op_errno, fd_t *fd,
|
||||
inode_t *inode, struct stat *buf, struct stat *preparent,
|
||||
struct stat *postparent)
|
||||
inode_t *inode, struct iatt *buf, struct iatt *preparent,
|
||||
struct iatt *postparent)
|
||||
{
|
||||
int32_t callcnt = 0;
|
||||
stripe_local_t *local = NULL;
|
||||
@ -1903,16 +1907,16 @@ stripe_create_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
|
||||
local->postparent = *postparent;
|
||||
}
|
||||
|
||||
local->stbuf_blocks += buf->st_blocks;
|
||||
local->preparent_blocks += preparent->st_blocks;
|
||||
local->postparent_blocks += postparent->st_blocks;
|
||||
local->stbuf_blocks += buf->ia_blocks;
|
||||
local->preparent_blocks += preparent->ia_blocks;
|
||||
local->postparent_blocks += postparent->ia_blocks;
|
||||
|
||||
if (local->stbuf_size < buf->st_size)
|
||||
local->stbuf_size = buf->st_size;
|
||||
if (local->preparent_size < preparent->st_size)
|
||||
local->preparent_size = preparent->st_size;
|
||||
if (local->postparent_size < postparent->st_size)
|
||||
local->postparent_size = postparent->st_size;
|
||||
if (local->stbuf_size < buf->ia_size)
|
||||
local->stbuf_size = buf->ia_size;
|
||||
if (local->preparent_size < preparent->ia_size)
|
||||
local->preparent_size = preparent->ia_size;
|
||||
if (local->postparent_size < postparent->ia_size)
|
||||
local->postparent_size = postparent->ia_size;
|
||||
}
|
||||
}
|
||||
UNLOCK (&frame->lock);
|
||||
@ -1922,12 +1926,12 @@ stripe_create_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
|
||||
local->op_ret = -1;
|
||||
|
||||
if (local->op_ret != -1) {
|
||||
local->preparent.st_blocks = local->preparent_blocks;
|
||||
local->preparent.st_size = local->preparent_size;
|
||||
local->postparent.st_blocks = local->postparent_blocks;
|
||||
local->postparent.st_size = local->postparent_size;
|
||||
local->stbuf.st_size = local->stbuf_size;
|
||||
local->stbuf.st_blocks = local->stbuf_blocks;
|
||||
local->preparent.ia_blocks = local->preparent_blocks;
|
||||
local->preparent.ia_size = local->preparent_size;
|
||||
local->postparent.ia_blocks = local->postparent_blocks;
|
||||
local->postparent.ia_size = local->postparent_size;
|
||||
local->stbuf.ia_size = local->stbuf_size;
|
||||
local->stbuf.ia_blocks = local->stbuf_blocks;
|
||||
}
|
||||
|
||||
/* */
|
||||
@ -2822,7 +2826,7 @@ int32_t
|
||||
stripe_single_readv_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
|
||||
int32_t op_ret, int32_t op_errno,
|
||||
struct iovec *vector, int32_t count,
|
||||
struct stat *stbuf, struct iobref *iobref)
|
||||
struct iatt *stbuf, struct iobref *iobref)
|
||||
{
|
||||
STACK_UNWIND (frame, op_ret, op_errno, vector, count, stbuf, iobref);
|
||||
return 0;
|
||||
@ -2835,7 +2839,7 @@ stripe_single_readv_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
|
||||
int32_t
|
||||
stripe_readv_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
|
||||
int32_t op_ret, int32_t op_errno, struct iovec *vector,
|
||||
int32_t count, struct stat *stbuf, struct iobref *iobref)
|
||||
int32_t count, struct iatt *stbuf, struct iobref *iobref)
|
||||
{
|
||||
int32_t index = 0;
|
||||
int32_t callcnt = 0;
|
||||
@ -2876,7 +2880,7 @@ stripe_readv_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
|
||||
if (callcnt == main_local->wind_count) {
|
||||
int32_t final_count = 0;
|
||||
struct iovec *final_vec = NULL;
|
||||
struct stat tmp_stbuf = {0,};
|
||||
struct iatt tmp_stbuf = {0,};
|
||||
struct iobref *iobref = NULL;
|
||||
|
||||
op_ret = 0;
|
||||
@ -2895,10 +2899,10 @@ stripe_readv_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
|
||||
}
|
||||
/* ANSWER-ME: Do we need to send anything more in stbuf?
|
||||
*/
|
||||
if (tmp_stbuf.st_size <
|
||||
main_local->replies[index].stbuf.st_size) {
|
||||
tmp_stbuf.st_size =
|
||||
main_local->replies[index].stbuf.st_size;
|
||||
if (tmp_stbuf.ia_size <
|
||||
main_local->replies[index].stbuf.ia_size) {
|
||||
tmp_stbuf.ia_size =
|
||||
main_local->replies[index].stbuf.ia_size;
|
||||
}
|
||||
|
||||
/* TODO: Should I handle a case where there is a hole
|
||||
@ -3086,8 +3090,8 @@ stripe_readv (call_frame_t *frame, xlator_t *this, fd_t *fd,
|
||||
*/
|
||||
int32_t
|
||||
stripe_writev_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
|
||||
int32_t op_ret, int32_t op_errno, struct stat *prebuf,
|
||||
struct stat *postbuf)
|
||||
int32_t op_ret, int32_t op_errno, struct iatt *prebuf,
|
||||
struct iatt *postbuf)
|
||||
{
|
||||
int32_t callcnt = 0;
|
||||
stripe_local_t *local = NULL;
|
||||
@ -3128,7 +3132,7 @@ stripe_writev_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
|
||||
*/
|
||||
int32_t
|
||||
stripe_single_writev_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
|
||||
int32_t op_ret, int32_t op_errno, struct stat *stbuf)
|
||||
int32_t op_ret, int32_t op_errno, struct iatt *stbuf)
|
||||
{
|
||||
STACK_UNWIND (frame, op_ret, op_errno, stbuf);
|
||||
return 0;
|
||||
|
@ -69,7 +69,7 @@ struct readv_replies {
|
||||
int32_t count; //count of vector
|
||||
int32_t op_ret; //op_ret of readv
|
||||
int32_t op_errno;
|
||||
struct stat stbuf; /* 'stbuf' is also a part of reply */
|
||||
struct iatt stbuf; /* 'stbuf' is also a part of reply */
|
||||
};
|
||||
|
||||
typedef struct _stripe_fd_ctx {
|
||||
@ -92,11 +92,11 @@ struct stripe_local {
|
||||
stripe_fd_ctx_t *fctx;
|
||||
|
||||
/* Used by _cbk functions */
|
||||
struct stat stbuf;
|
||||
struct stat pre_buf;
|
||||
struct stat post_buf;
|
||||
struct stat preparent;
|
||||
struct stat postparent;
|
||||
struct iatt stbuf;
|
||||
struct iatt pre_buf;
|
||||
struct iatt post_buf;
|
||||
struct iatt preparent;
|
||||
struct iatt postparent;
|
||||
|
||||
off_t stbuf_size;
|
||||
off_t prebuf_size;
|
||||
|
@ -145,7 +145,7 @@ unify_sh_setdents_cbk (call_frame_t *frame,
|
||||
while (trav) {
|
||||
prev->next = trav->next;
|
||||
FREE (trav->name);
|
||||
if (S_ISLNK (trav->buf.st_mode))
|
||||
if (IA_ISLNK (trav->buf.ia_type))
|
||||
FREE (trav->link);
|
||||
FREE (trav);
|
||||
trav = prev->next;
|
||||
@ -260,7 +260,7 @@ unify_sh_ns_setdents_cbk (call_frame_t *frame,
|
||||
while (trav) {
|
||||
prev->next = trav->next;
|
||||
FREE (trav->name);
|
||||
if (S_ISLNK (trav->buf.st_mode))
|
||||
if (IA_ISLNK (trav->buf.ia_type))
|
||||
FREE (trav->link);
|
||||
FREE (trav);
|
||||
trav = prev->next;
|
||||
@ -669,7 +669,7 @@ unify_bgsh_setdents_cbk (call_frame_t *frame,
|
||||
while (trav) {
|
||||
prev->next = trav->next;
|
||||
FREE (trav->name);
|
||||
if (S_ISLNK (trav->buf.st_mode))
|
||||
if (IA_ISLNK (trav->buf.ia_type))
|
||||
FREE (trav->link);
|
||||
FREE (trav);
|
||||
trav = prev->next;
|
||||
@ -776,7 +776,7 @@ unify_bgsh_ns_setdents_cbk (call_frame_t *frame,
|
||||
while (trav) {
|
||||
prev->next = trav->next;
|
||||
FREE (trav->name);
|
||||
if (S_ISLNK (trav->buf.st_mode))
|
||||
if (IA_ISLNK (trav->buf.ia_type))
|
||||
FREE (trav->link);
|
||||
FREE (trav);
|
||||
trav = prev->next;
|
||||
|
@ -27,7 +27,7 @@
|
||||
* NOTE:
|
||||
* Now, unify has support for global namespace, which is used to keep a
|
||||
* global view of fs's namespace tree. The stat for directories are taken
|
||||
* just from the namespace, where as for files, just 'st_ino' is taken from
|
||||
* just from the namespace, where as for files, just 'ia_ino' is taken from
|
||||
* Namespace node, and other stat info is taken from the actual storage node.
|
||||
* Also Namespace node helps to keep consistant inode for files across
|
||||
* glusterfs (re-)mounts.
|
||||
@ -129,7 +129,7 @@ unify_loc_subvol (loc_t *loc, xlator_t *this)
|
||||
priv = this->private;
|
||||
subvol = NS (this);
|
||||
|
||||
if (!S_ISDIR (loc->inode->st_mode)) {
|
||||
if (!IA_ISDIR (loc->inode->ia_type)) {
|
||||
ret = inode_ctx_get (loc->inode, this, &tmp_list);
|
||||
list = (int16_t *)(long)tmp_list;
|
||||
if (!list)
|
||||
@ -253,7 +253,7 @@ unify_buf_cbk (call_frame_t *frame,
|
||||
xlator_t *this,
|
||||
int32_t op_ret,
|
||||
int32_t op_errno,
|
||||
struct stat *buf)
|
||||
struct iatt *buf)
|
||||
{
|
||||
int32_t callcnt = 0;
|
||||
unify_private_t *priv = this->private;
|
||||
@ -281,16 +281,16 @@ unify_buf_cbk (call_frame_t *frame,
|
||||
local->op_ret = 0;
|
||||
|
||||
if (NS (this) == prev_frame->this) {
|
||||
local->st_ino = buf->st_ino;
|
||||
local->ia_ino = buf->ia_ino;
|
||||
/* If the entry is directory, get the stat
|
||||
from NS node */
|
||||
if (S_ISDIR (buf->st_mode) ||
|
||||
!local->stbuf.st_blksize) {
|
||||
if (IA_ISDIR (buf->ia_type) ||
|
||||
!local->stbuf.ia_blksize) {
|
||||
local->stbuf = *buf;
|
||||
}
|
||||
}
|
||||
|
||||
if ((!S_ISDIR (buf->st_mode)) &&
|
||||
if ((!IA_ISDIR (buf->ia_type)) &&
|
||||
(NS (this) != prev_frame->this)) {
|
||||
/* If file, take the stat info from Storage
|
||||
node. */
|
||||
@ -303,10 +303,10 @@ unify_buf_cbk (call_frame_t *frame,
|
||||
if (!callcnt) {
|
||||
/* If the inode number is not filled, operation should
|
||||
fail */
|
||||
if (!local->st_ino)
|
||||
if (!local->ia_ino)
|
||||
local->op_ret = -1;
|
||||
|
||||
local->stbuf.st_ino = local->st_ino;
|
||||
local->stbuf.ia_ino = local->ia_ino;
|
||||
unify_local_wipe (local);
|
||||
STACK_UNWIND (frame, local->op_ret, local->op_errno,
|
||||
&local->stbuf);
|
||||
@ -315,7 +315,8 @@ unify_buf_cbk (call_frame_t *frame,
|
||||
return 0;
|
||||
}
|
||||
|
||||
#define check_if_dht_linkfile(s) ((s->st_mode & ~S_IFMT) == S_ISVTX)
|
||||
#define check_if_dht_linkfile(s) \
|
||||
((st_mode_from_ia (s->ia_prot, s->ia_type) & ~S_IFMT) == S_ISVTX)
|
||||
|
||||
/**
|
||||
* unify_lookup_cbk -
|
||||
@ -327,9 +328,9 @@ unify_lookup_cbk (call_frame_t *frame,
|
||||
int32_t op_ret,
|
||||
int32_t op_errno,
|
||||
inode_t *inode,
|
||||
struct stat *buf,
|
||||
struct iatt *buf,
|
||||
dict_t *dict,
|
||||
struct stat *postparent)
|
||||
struct iatt *postparent)
|
||||
{
|
||||
int32_t callcnt = 0;
|
||||
unify_private_t *priv = this->private;
|
||||
@ -390,11 +391,11 @@ unify_lookup_cbk (call_frame_t *frame,
|
||||
priv->xl_array[(long)cookie]->name);
|
||||
}
|
||||
|
||||
if (local->stbuf.st_mode && local->stbuf.st_blksize) {
|
||||
if (local->stbuf.ia_type && local->stbuf.ia_blksize) {
|
||||
/* make sure we already have a stbuf
|
||||
stored in local->stbuf */
|
||||
if (S_ISDIR (local->stbuf.st_mode) &&
|
||||
!S_ISDIR (buf->st_mode)) {
|
||||
if (IA_ISDIR (local->stbuf.ia_type) &&
|
||||
!IA_ISDIR (buf->ia_type)) {
|
||||
gf_log (this->name, GF_LOG_CRITICAL,
|
||||
"[CRITICAL] '%s' is directory "
|
||||
"on namespace, non-directory "
|
||||
@ -403,8 +404,8 @@ unify_lookup_cbk (call_frame_t *frame,
|
||||
priv->xl_array[(long)cookie]->name);
|
||||
local->return_eio = 1;
|
||||
}
|
||||
if (!S_ISDIR (local->stbuf.st_mode) &&
|
||||
S_ISDIR (buf->st_mode)) {
|
||||
if (!IA_ISDIR (local->stbuf.ia_type) &&
|
||||
IA_ISDIR (buf->ia_type)) {
|
||||
gf_log (this->name, GF_LOG_CRITICAL,
|
||||
"[CRITICAL] '%s' is directory "
|
||||
"on node '%s', non-directory "
|
||||
@ -415,7 +416,7 @@ unify_lookup_cbk (call_frame_t *frame,
|
||||
}
|
||||
}
|
||||
|
||||
if (!local->revalidate && !S_ISDIR (buf->st_mode)) {
|
||||
if (!local->revalidate && !IA_ISDIR (buf->ia_type)) {
|
||||
/* This is the first time lookup on file*/
|
||||
if (!local->list) {
|
||||
/* list is not allocated, allocate
|
||||
@ -436,7 +437,7 @@ unify_lookup_cbk (call_frame_t *frame,
|
||||
(int16_t)(long)cookie;
|
||||
}
|
||||
|
||||
if (!local->revalidate && S_ISDIR (buf->st_mode)) {
|
||||
if (!local->revalidate && IA_ISDIR (buf->ia_type)) {
|
||||
/* fresh lookup of a directory */
|
||||
inode_ctx_put (local->loc1.inode, this,
|
||||
priv->inode_generation);
|
||||
@ -450,20 +451,20 @@ unify_lookup_cbk (call_frame_t *frame,
|
||||
/* index of NS node is == total child count */
|
||||
if (priv->child_count == (int16_t)(long)cookie) {
|
||||
/* Take the inode number from namespace */
|
||||
local->st_ino = buf->st_ino;
|
||||
if (S_ISDIR (buf->st_mode) ||
|
||||
!(local->stbuf.st_blksize)) {
|
||||
local->ia_ino = buf->ia_ino;
|
||||
if (IA_ISDIR (buf->ia_type) ||
|
||||
!(local->stbuf.ia_blksize)) {
|
||||
local->stbuf = *buf;
|
||||
local->oldpostparent = *postparent;
|
||||
}
|
||||
} else if (!S_ISDIR (buf->st_mode)) {
|
||||
} else if (!IA_ISDIR (buf->ia_type)) {
|
||||
/* If file, then get the stat from
|
||||
storage node */
|
||||
local->stbuf = *buf;
|
||||
}
|
||||
|
||||
if (local->st_nlink < buf->st_nlink) {
|
||||
local->st_nlink = buf->st_nlink;
|
||||
if (local->ia_nlink < buf->ia_nlink) {
|
||||
local->ia_nlink = buf->ia_nlink;
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -484,12 +485,12 @@ unify_lookup_cbk (call_frame_t *frame,
|
||||
return 0;
|
||||
}
|
||||
|
||||
if (!local->stbuf.st_blksize) {
|
||||
if (!local->stbuf.ia_blksize) {
|
||||
/* Inode not present */
|
||||
local->op_ret = -1;
|
||||
} else {
|
||||
if (!local->revalidate &&
|
||||
!S_ISDIR (local->stbuf.st_mode)) {
|
||||
!IA_ISDIR (local->stbuf.ia_type)) {
|
||||
/* If its a file, big array is useless,
|
||||
allocate the smaller one */
|
||||
int16_t *list = NULL;
|
||||
@ -506,7 +507,7 @@ unify_lookup_cbk (call_frame_t *frame,
|
||||
(uint64_t)(long)local->list);
|
||||
}
|
||||
|
||||
if (S_ISDIR(local->loc1.inode->st_mode)) {
|
||||
if (IA_ISDIR(local->loc1.inode->ia_type)) {
|
||||
/* lookup is done for directory */
|
||||
if (local->failed && priv->self_heal) {
|
||||
/* Triggering self-heal */
|
||||
@ -516,10 +517,10 @@ unify_lookup_cbk (call_frame_t *frame,
|
||||
priv->inode_generation++;
|
||||
}
|
||||
} else {
|
||||
local->stbuf.st_ino = local->st_ino;
|
||||
local->stbuf.ia_ino = local->ia_ino;
|
||||
}
|
||||
|
||||
local->stbuf.st_nlink = local->st_nlink;
|
||||
local->stbuf.ia_nlink = local->ia_nlink;
|
||||
}
|
||||
if (local->op_ret == -1) {
|
||||
if (!local->revalidate && local->list)
|
||||
@ -540,7 +541,7 @@ unify_lookup_cbk (call_frame_t *frame,
|
||||
|
||||
if ((priv->self_heal && !priv->optimist) &&
|
||||
(!local->revalidate && (local->op_ret == 0) &&
|
||||
S_ISDIR(local->stbuf.st_mode))) {
|
||||
IA_ISDIR(local->stbuf.ia_type))) {
|
||||
/* Let the self heal be done here */
|
||||
zr_unify_self_heal (frame, this, local);
|
||||
local_dict = NULL;
|
||||
@ -598,13 +599,13 @@ unify_lookup (call_frame_t *frame,
|
||||
}
|
||||
|
||||
if (inode_ctx_get (loc->inode, this, NULL)
|
||||
&& S_ISDIR (loc->inode->st_mode)) {
|
||||
&& IA_ISDIR (loc->inode->ia_type)) {
|
||||
local->revalidate = 1;
|
||||
}
|
||||
|
||||
if (!inode_ctx_get (loc->inode, this, NULL) &&
|
||||
loc->inode->st_mode &&
|
||||
!S_ISDIR (loc->inode->st_mode)) {
|
||||
loc->inode->ia_type &&
|
||||
!IA_ISDIR (loc->inode->ia_type)) {
|
||||
uint64_t tmp_list = 0;
|
||||
/* check if revalidate or fresh lookup */
|
||||
inode_ctx_get (loc->inode, this, &tmp_list);
|
||||
@ -665,7 +666,7 @@ unify_lookup (call_frame_t *frame,
|
||||
break;
|
||||
}
|
||||
} else {
|
||||
if (loc->inode->st_mode) {
|
||||
if (loc->inode->ia_type) {
|
||||
if (inode_ctx_get (loc->inode, this, NULL)) {
|
||||
inode_ctx_get (loc->inode, this,
|
||||
&local->inode_generation);
|
||||
@ -718,8 +719,8 @@ unify_stat (call_frame_t *frame,
|
||||
STACK_UNWIND (frame, -1, ENOMEM, NULL);
|
||||
return 0;
|
||||
}
|
||||
local->st_ino = loc->inode->ino;
|
||||
if (S_ISDIR (loc->inode->st_mode)) {
|
||||
local->ia_ino = loc->inode->ino;
|
||||
if (IA_ISDIR (loc->inode->ia_type)) {
|
||||
/* Directory */
|
||||
local->call_count = 1;
|
||||
STACK_WIND (frame, unify_buf_cbk, NS(this),
|
||||
@ -791,9 +792,9 @@ unify_mkdir_cbk (call_frame_t *frame,
|
||||
int32_t op_ret,
|
||||
int32_t op_errno,
|
||||
inode_t *inode,
|
||||
struct stat *buf,
|
||||
struct stat *preparent,
|
||||
struct stat *postparent)
|
||||
struct iatt *buf,
|
||||
struct iatt *preparent,
|
||||
struct iatt *postparent)
|
||||
{
|
||||
int32_t callcnt = 0;
|
||||
unify_private_t *priv = this->private;
|
||||
@ -855,9 +856,9 @@ unify_ns_mkdir_cbk (call_frame_t *frame,
|
||||
int32_t op_ret,
|
||||
int32_t op_errno,
|
||||
inode_t *inode,
|
||||
struct stat *buf,
|
||||
struct stat *preparent,
|
||||
struct stat *postparent)
|
||||
struct iatt *buf,
|
||||
struct iatt *preparent,
|
||||
struct iatt *postparent)
|
||||
{
|
||||
unify_private_t *priv = this->private;
|
||||
unify_local_t *local = frame->local;
|
||||
@ -941,8 +942,8 @@ unify_rmdir_cbk (call_frame_t *frame,
|
||||
xlator_t *this,
|
||||
int32_t op_ret,
|
||||
int32_t op_errno,
|
||||
struct stat *preparent,
|
||||
struct stat *postparent)
|
||||
struct iatt *preparent,
|
||||
struct iatt *postparent)
|
||||
{
|
||||
int32_t callcnt = 0;
|
||||
unify_private_t *priv = this->private;
|
||||
@ -976,8 +977,8 @@ unify_ns_rmdir_cbk (call_frame_t *frame,
|
||||
xlator_t *this,
|
||||
int32_t op_ret,
|
||||
int32_t op_errno,
|
||||
struct stat *preparent,
|
||||
struct stat *postparent)
|
||||
struct iatt *preparent,
|
||||
struct iatt *postparent)
|
||||
{
|
||||
int16_t index = 0;
|
||||
unify_private_t *priv = this->private;
|
||||
@ -1113,7 +1114,7 @@ unify_open_lookup_cbk (call_frame_t *frame,
|
||||
int32_t op_ret,
|
||||
int32_t op_errno,
|
||||
inode_t *inode,
|
||||
struct stat *buf,
|
||||
struct iatt *buf,
|
||||
dict_t *dict)
|
||||
{
|
||||
int32_t callcnt = 0;
|
||||
@ -1140,7 +1141,7 @@ unify_open_lookup_cbk (call_frame_t *frame,
|
||||
} else {
|
||||
local->list[1] = (int16_t)(long)cookie;
|
||||
}
|
||||
if (S_ISDIR (buf->st_mode))
|
||||
if (IA_ISDIR (buf->ia_type))
|
||||
local->failed = 1;
|
||||
}
|
||||
}
|
||||
@ -1306,7 +1307,7 @@ unify_open (call_frame_t *frame,
|
||||
|
||||
#ifdef GF_DARWIN_HOST_OS
|
||||
/* Handle symlink here */
|
||||
if (S_ISLNK (loc->inode->st_mode)) {
|
||||
if (IA_ISLNK (loc->inode->ia_type)) {
|
||||
/* Callcount doesn't matter here */
|
||||
STACK_WIND (frame,
|
||||
unify_open_readlink_cbk,
|
||||
@ -1342,8 +1343,8 @@ unify_create_unlink_cbk (call_frame_t *frame,
|
||||
xlator_t *this,
|
||||
int32_t op_ret,
|
||||
int32_t op_errno,
|
||||
struct stat *preparent,
|
||||
struct stat *postparent)
|
||||
struct iatt *preparent,
|
||||
struct iatt *postparent)
|
||||
{
|
||||
unify_local_t *local = frame->local;
|
||||
inode_t *inode = local->loc1.inode;
|
||||
@ -1457,9 +1458,9 @@ unify_create_lookup_cbk (call_frame_t *frame,
|
||||
int32_t op_ret,
|
||||
int32_t op_errno,
|
||||
inode_t *inode,
|
||||
struct stat *buf,
|
||||
struct iatt *buf,
|
||||
dict_t *dict,
|
||||
struct stat *postparent)
|
||||
struct iatt *postparent)
|
||||
{
|
||||
int32_t callcnt = 0;
|
||||
int16_t index = 0;
|
||||
@ -1482,7 +1483,7 @@ unify_create_lookup_cbk (call_frame_t *frame,
|
||||
local->op_ret = op_ret;
|
||||
local->list[local->index++] = (int16_t)(long)cookie;
|
||||
if (NS(this) == priv->xl_array[(long)cookie]) {
|
||||
local->st_ino = buf->st_ino;
|
||||
local->ia_ino = buf->ia_ino;
|
||||
} else {
|
||||
local->stbuf = *buf;
|
||||
}
|
||||
@ -1500,7 +1501,7 @@ unify_create_lookup_cbk (call_frame_t *frame,
|
||||
file_list[1] = list[1];
|
||||
file_list[2] = -1;
|
||||
|
||||
local->stbuf.st_ino = local->st_ino;
|
||||
local->stbuf.ia_ino = local->ia_ino;
|
||||
/* TODO: log on failure */
|
||||
inode_ctx_put (local->loc1.inode, this,
|
||||
(uint64_t)(long)local->list);
|
||||
@ -1563,9 +1564,9 @@ unify_create_cbk (call_frame_t *frame,
|
||||
int32_t op_errno,
|
||||
fd_t *fd,
|
||||
inode_t *inode,
|
||||
struct stat *buf,
|
||||
struct stat *preparent,
|
||||
struct stat *postparent)
|
||||
struct iatt *buf,
|
||||
struct iatt *preparent,
|
||||
struct iatt *postparent)
|
||||
{
|
||||
int ret = 0;
|
||||
unify_local_t *local = frame->local;
|
||||
@ -1596,7 +1597,7 @@ unify_create_cbk (call_frame_t *frame,
|
||||
local->op_ret = op_ret;
|
||||
local->stbuf = *buf;
|
||||
/* Just inode number should be from NS node */
|
||||
local->stbuf.st_ino = local->st_ino;
|
||||
local->stbuf.ia_ino = local->ia_ino;
|
||||
|
||||
/* TODO: log on failure */
|
||||
ret = fd_ctx_set (fd, this, (uint64_t)(long)prev_frame->this);
|
||||
@ -1623,9 +1624,9 @@ unify_ns_create_cbk (call_frame_t *frame,
|
||||
int32_t op_errno,
|
||||
fd_t *fd,
|
||||
inode_t *inode,
|
||||
struct stat *buf,
|
||||
struct stat *preparent,
|
||||
struct stat *postparent)
|
||||
struct iatt *buf,
|
||||
struct iatt *preparent,
|
||||
struct iatt *postparent)
|
||||
{
|
||||
struct sched_ops *sched_ops = NULL;
|
||||
xlator_t *sched_xl = NULL;
|
||||
@ -1654,7 +1655,7 @@ unify_ns_create_cbk (call_frame_t *frame,
|
||||
|
||||
if (op_ret >= 0) {
|
||||
/* Get the inode number from the NS node */
|
||||
local->st_ino = buf->st_ino;
|
||||
local->ia_ino = buf->ia_ino;
|
||||
|
||||
local->oldpreparent = *preparent;
|
||||
local->oldpostparent = *postparent;
|
||||
@ -1803,8 +1804,8 @@ unify_opendir (call_frame_t *frame,
|
||||
|
||||
int32_t
|
||||
unify_setattr_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
|
||||
int32_t op_ret, int32_t op_errno, struct stat *statpre,
|
||||
struct stat *statpost)
|
||||
int32_t op_ret, int32_t op_errno, struct iatt *statpre,
|
||||
struct iatt *statpost)
|
||||
{
|
||||
int32_t callcnt = 0;
|
||||
unify_private_t *priv = this->private;
|
||||
@ -1832,17 +1833,17 @@ unify_setattr_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
|
||||
local->op_ret = 0;
|
||||
|
||||
if (NS (this) == prev_frame->this) {
|
||||
local->st_ino = statpost->st_ino;
|
||||
local->ia_ino = statpost->ia_ino;
|
||||
/* If the entry is directory, get the stat
|
||||
from NS node */
|
||||
if (S_ISDIR (statpost->st_mode) ||
|
||||
!local->stpost.st_blksize) {
|
||||
if (IA_ISDIR (statpost->ia_type) ||
|
||||
!local->stpost.ia_blksize) {
|
||||
local->stpre = *statpre;
|
||||
local->stpost = *statpost;
|
||||
}
|
||||
}
|
||||
|
||||
if ((!S_ISDIR (statpost->st_mode)) &&
|
||||
if ((!IA_ISDIR (statpost->ia_type)) &&
|
||||
(NS (this) != prev_frame->this)) {
|
||||
/* If file, take the stat info from Storage
|
||||
node. */
|
||||
@ -1856,11 +1857,11 @@ unify_setattr_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
|
||||
if (!callcnt) {
|
||||
/* If the inode number is not filled, operation should
|
||||
fail */
|
||||
if (!local->st_ino)
|
||||
if (!local->ia_ino)
|
||||
local->op_ret = -1;
|
||||
|
||||
local->stpre.st_ino = local->st_ino;
|
||||
local->stpost.st_ino = local->st_ino;
|
||||
local->stpre.ia_ino = local->ia_ino;
|
||||
local->stpost.ia_ino = local->ia_ino;
|
||||
unify_local_wipe (local);
|
||||
STACK_UNWIND (frame, local->op_ret, local->op_errno,
|
||||
&local->stpre, &local->stpost);
|
||||
@ -1872,7 +1873,7 @@ unify_setattr_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
|
||||
|
||||
int32_t
|
||||
unify_setattr (call_frame_t *frame, xlator_t *this, loc_t *loc,
|
||||
struct stat *stbuf, int32_t valid)
|
||||
struct iatt *stbuf, int32_t valid)
|
||||
{
|
||||
unify_local_t *local = NULL;
|
||||
unify_private_t *priv = this->private;
|
||||
@ -1889,7 +1890,7 @@ unify_setattr (call_frame_t *frame, xlator_t *this, loc_t *loc,
|
||||
INIT_LOCAL (frame, local);
|
||||
loc_copy (&local->loc1, loc);
|
||||
|
||||
if (S_ISDIR (loc->inode->st_mode)) {
|
||||
if (IA_ISDIR (loc->inode->ia_type)) {
|
||||
local->call_count = 1;
|
||||
|
||||
STACK_WIND (frame,
|
||||
@ -1924,7 +1925,7 @@ unify_setattr (call_frame_t *frame, xlator_t *this, loc_t *loc,
|
||||
|
||||
int32_t
|
||||
unify_fsetattr (call_frame_t *frame, xlator_t *this, fd_t *fd,
|
||||
struct stat *stbuf, int32_t valid)
|
||||
struct iatt *stbuf, int32_t valid)
|
||||
{
|
||||
unify_local_t *local = NULL;
|
||||
xlator_t *child = NULL;
|
||||
@ -1967,8 +1968,8 @@ unify_truncate_cbk (call_frame_t *frame,
|
||||
xlator_t *this,
|
||||
int32_t op_ret,
|
||||
int32_t op_errno,
|
||||
struct stat *prebuf,
|
||||
struct stat *postbuf)
|
||||
struct iatt *prebuf,
|
||||
struct iatt *postbuf)
|
||||
{
|
||||
int32_t callcnt = 0;
|
||||
unify_private_t *priv = this->private;
|
||||
@ -1992,17 +1993,17 @@ unify_truncate_cbk (call_frame_t *frame,
|
||||
|
||||
if (op_ret >= 0) {
|
||||
if (NS (this) == prev_frame->this) {
|
||||
local->st_ino = postbuf->st_ino;
|
||||
local->ia_ino = postbuf->ia_ino;
|
||||
/* If the entry is directory, get the
|
||||
stat from NS node */
|
||||
if (S_ISDIR (postbuf->st_mode) ||
|
||||
!local->stbuf.st_blksize) {
|
||||
if (IA_ISDIR (postbuf->ia_type) ||
|
||||
!local->stbuf.ia_blksize) {
|
||||
local->stbuf = *prebuf;
|
||||
local->poststbuf = *postbuf;
|
||||
}
|
||||
}
|
||||
|
||||
if ((!S_ISDIR (postbuf->st_mode)) &&
|
||||
if ((!IA_ISDIR (postbuf->ia_type)) &&
|
||||
(NS (this) != prev_frame->this)) {
|
||||
/* If file, take the stat info from
|
||||
Storage node. */
|
||||
@ -2014,9 +2015,9 @@ unify_truncate_cbk (call_frame_t *frame,
|
||||
UNLOCK (&frame->lock);
|
||||
|
||||
if (!callcnt) {
|
||||
if (local->st_ino) {
|
||||
local->stbuf.st_ino = local->st_ino;
|
||||
local->poststbuf.st_ino = local->st_ino;
|
||||
if (local->ia_ino) {
|
||||
local->stbuf.ia_ino = local->ia_ino;
|
||||
local->poststbuf.ia_ino = local->ia_ino;
|
||||
} else {
|
||||
local->op_ret = -1;
|
||||
}
|
||||
@ -2049,9 +2050,9 @@ unify_truncate (call_frame_t *frame,
|
||||
/* Initialization */
|
||||
INIT_LOCAL (frame, local);
|
||||
loc_copy (&local->loc1, loc);
|
||||
local->st_ino = loc->inode->ino;
|
||||
local->ia_ino = loc->inode->ino;
|
||||
|
||||
if (S_ISDIR (loc->inode->st_mode)) {
|
||||
if (IA_ISDIR (loc->inode->ia_type)) {
|
||||
local->call_count = 1;
|
||||
|
||||
STACK_WIND (frame,
|
||||
@ -2102,7 +2103,7 @@ unify_readlink_cbk (call_frame_t *frame,
|
||||
int32_t op_ret,
|
||||
int32_t op_errno,
|
||||
const char *path,
|
||||
struct stat *sbuf)
|
||||
struct iatt *sbuf)
|
||||
{
|
||||
STACK_UNWIND (frame, op_ret, op_errno, path, sbuf);
|
||||
return 0;
|
||||
@ -2163,8 +2164,8 @@ unify_unlink_cbk (call_frame_t *frame,
|
||||
xlator_t *this,
|
||||
int32_t op_ret,
|
||||
int32_t op_errno,
|
||||
struct stat *preparent,
|
||||
struct stat *postparent)
|
||||
struct iatt *preparent,
|
||||
struct iatt *postparent)
|
||||
{
|
||||
int32_t callcnt = 0;
|
||||
unify_private_t *priv = this->private;
|
||||
@ -2253,7 +2254,7 @@ unify_readv_cbk (call_frame_t *frame,
|
||||
int32_t op_errno,
|
||||
struct iovec *vector,
|
||||
int32_t count,
|
||||
struct stat *stbuf,
|
||||
struct iatt *stbuf,
|
||||
struct iobref *iobref)
|
||||
{
|
||||
STACK_UNWIND (frame, op_ret, op_errno, vector, count, stbuf, iobref);
|
||||
@ -2298,18 +2299,18 @@ unify_writev_cbk (call_frame_t *frame,
|
||||
xlator_t *this,
|
||||
int32_t op_ret,
|
||||
int32_t op_errno,
|
||||
struct stat *prebuf,
|
||||
struct stat *postbuf)
|
||||
struct iatt *prebuf,
|
||||
struct iatt *postbuf)
|
||||
{
|
||||
unify_local_t *local = NULL;
|
||||
|
||||
local = frame->local;
|
||||
|
||||
local->stbuf = *prebuf;
|
||||
local->stbuf.st_ino = local->st_ino;
|
||||
local->stbuf.ia_ino = local->ia_ino;
|
||||
|
||||
local->poststbuf = *postbuf;
|
||||
local->poststbuf.st_ino = local->st_ino;
|
||||
local->poststbuf.ia_ino = local->ia_ino;
|
||||
|
||||
STACK_UNWIND (frame, op_ret, op_errno,
|
||||
&local->stbuf, &local->poststbuf);
|
||||
@ -2334,7 +2335,7 @@ unify_writev (call_frame_t *frame,
|
||||
unify_local_t *local = NULL;
|
||||
|
||||
INIT_LOCAL (frame, local);
|
||||
local->st_ino = fd->inode->ino;
|
||||
local->ia_ino = fd->inode->ino;
|
||||
|
||||
fd_ctx_get (fd, this, &tmp_child);
|
||||
child = (xlator_t *)(long)tmp_child;
|
||||
@ -2433,8 +2434,8 @@ unify_fsync_cbk (call_frame_t *frame,
|
||||
xlator_t *this,
|
||||
int32_t op_ret,
|
||||
int32_t op_errno,
|
||||
struct stat *prebuf,
|
||||
struct stat *postbuf)
|
||||
struct iatt *prebuf,
|
||||
struct iatt *postbuf)
|
||||
{
|
||||
STACK_UNWIND (frame, op_ret, op_errno, prebuf, postbuf);
|
||||
return 0;
|
||||
@ -2478,7 +2479,7 @@ unify_fstat (call_frame_t *frame,
|
||||
UNIFY_CHECK_FD_AND_UNWIND_ON_ERR(fd);
|
||||
|
||||
INIT_LOCAL (frame, local);
|
||||
local->st_ino = fd->inode->ino;
|
||||
local->ia_ino = fd->inode->ino;
|
||||
|
||||
if (!fd_ctx_get (fd, this, &tmp_child)) {
|
||||
/* If its set, then its file */
|
||||
@ -2819,7 +2820,7 @@ unify_setxattr (call_frame_t *frame,
|
||||
local->failed = -1;
|
||||
loc_copy (&local->loc1, loc);
|
||||
|
||||
if (S_ISDIR (loc->inode->st_mode)) {
|
||||
if (IA_ISDIR (loc->inode->ia_type)) {
|
||||
|
||||
if (trav && trav->key && ZR_FILE_CONTENT_REQUEST(trav->key)) {
|
||||
/* direct the storage xlators to change file
|
||||
@ -2951,7 +2952,7 @@ unify_getxattr (call_frame_t *frame,
|
||||
UNIFY_CHECK_INODE_CTX_AND_UNWIND_ON_ERR (loc);
|
||||
INIT_LOCAL (frame, local);
|
||||
|
||||
if (S_ISDIR (loc->inode->st_mode)) {
|
||||
if (IA_ISDIR (loc->inode->ia_type)) {
|
||||
local->call_count = priv->child_count;
|
||||
for (index = 0; index < priv->child_count; index++)
|
||||
STACK_WIND (frame,
|
||||
@ -3057,7 +3058,7 @@ unify_removexattr (call_frame_t *frame,
|
||||
/* Initialization */
|
||||
INIT_LOCAL (frame, local);
|
||||
|
||||
if (S_ISDIR (loc->inode->st_mode)) {
|
||||
if (IA_ISDIR (loc->inode->ia_type)) {
|
||||
local->call_count = priv->child_count;
|
||||
for (index = 0; index < priv->child_count; index++)
|
||||
STACK_WIND (frame,
|
||||
@ -3110,8 +3111,8 @@ unify_mknod_unlink_cbk (call_frame_t *frame,
|
||||
xlator_t *this,
|
||||
int32_t op_ret,
|
||||
int32_t op_errno,
|
||||
struct stat *preparent,
|
||||
struct stat *postparent)
|
||||
struct iatt *preparent,
|
||||
struct iatt *postparent)
|
||||
{
|
||||
unify_local_t *local = frame->local;
|
||||
|
||||
@ -3135,9 +3136,9 @@ unify_mknod_cbk (call_frame_t *frame,
|
||||
int32_t op_ret,
|
||||
int32_t op_errno,
|
||||
inode_t *inode,
|
||||
struct stat *buf,
|
||||
struct stat *preparent,
|
||||
struct stat *postparent)
|
||||
struct iatt *buf,
|
||||
struct iatt *preparent,
|
||||
struct iatt *postparent)
|
||||
{
|
||||
unify_local_t *local = frame->local;
|
||||
|
||||
@ -3155,7 +3156,7 @@ unify_mknod_cbk (call_frame_t *frame,
|
||||
}
|
||||
|
||||
local->stbuf = *buf;
|
||||
local->stbuf.st_ino = local->st_ino;
|
||||
local->stbuf.ia_ino = local->ia_ino;
|
||||
unify_local_wipe (local);
|
||||
STACK_UNWIND (frame, op_ret, op_errno, inode, &local->stbuf,
|
||||
&local->oldpreparent, &local->oldpostparent);
|
||||
@ -3172,9 +3173,9 @@ unify_ns_mknod_cbk (call_frame_t *frame,
|
||||
int32_t op_ret,
|
||||
int32_t op_errno,
|
||||
inode_t *inode,
|
||||
struct stat *buf,
|
||||
struct stat *preparent,
|
||||
struct stat *postparent)
|
||||
struct iatt *buf,
|
||||
struct iatt *preparent,
|
||||
struct iatt *postparent)
|
||||
{
|
||||
struct sched_ops *sched_ops = NULL;
|
||||
xlator_t *sched_xl = NULL;
|
||||
@ -3201,7 +3202,7 @@ unify_ns_mknod_cbk (call_frame_t *frame,
|
||||
/* Create one inode for this entry */
|
||||
local->op_ret = 0;
|
||||
local->stbuf = *buf;
|
||||
local->st_ino = buf->st_ino;
|
||||
local->ia_ino = buf->ia_ino;
|
||||
|
||||
local->oldpreparent = *preparent;
|
||||
local->oldpostparent = *postparent;
|
||||
@ -3283,8 +3284,8 @@ unify_symlink_unlink_cbk (call_frame_t *frame,
|
||||
xlator_t *this,
|
||||
int32_t op_ret,
|
||||
int32_t op_errno,
|
||||
struct stat *preparent,
|
||||
struct stat *postparent)
|
||||
struct iatt *preparent,
|
||||
struct iatt *postparent)
|
||||
{
|
||||
unify_local_t *local = frame->local;
|
||||
if (op_ret == -1)
|
||||
@ -3306,9 +3307,9 @@ unify_symlink_cbk (call_frame_t *frame,
|
||||
int32_t op_ret,
|
||||
int32_t op_errno,
|
||||
inode_t *inode,
|
||||
struct stat *buf,
|
||||
struct stat *preparent,
|
||||
struct stat *postparent)
|
||||
struct iatt *buf,
|
||||
struct iatt *preparent,
|
||||
struct iatt *postparent)
|
||||
{
|
||||
unify_local_t *local = frame->local;
|
||||
|
||||
@ -3330,7 +3331,7 @@ unify_symlink_cbk (call_frame_t *frame,
|
||||
}
|
||||
|
||||
local->stbuf = *buf;
|
||||
local->stbuf.st_ino = local->st_ino;
|
||||
local->stbuf.ia_ino = local->ia_ino;
|
||||
unify_local_wipe (local);
|
||||
STACK_UNWIND (frame, op_ret, op_errno, inode, &local->stbuf,
|
||||
&local->oldpreparent, &local->oldpostparent);
|
||||
@ -3348,9 +3349,9 @@ unify_ns_symlink_cbk (call_frame_t *frame,
|
||||
int32_t op_ret,
|
||||
int32_t op_errno,
|
||||
inode_t *inode,
|
||||
struct stat *buf,
|
||||
struct stat *preparent,
|
||||
struct stat *postparent)
|
||||
struct iatt *buf,
|
||||
struct iatt *preparent,
|
||||
struct iatt *postparent)
|
||||
{
|
||||
|
||||
struct sched_ops *sched_ops = NULL;
|
||||
@ -3375,7 +3376,7 @@ unify_ns_symlink_cbk (call_frame_t *frame,
|
||||
|
||||
/* Create one inode for this entry */
|
||||
local->op_ret = 0;
|
||||
local->st_ino = buf->st_ino;
|
||||
local->ia_ino = buf->ia_ino;
|
||||
|
||||
local->oldpreparent = *preparent;
|
||||
local->oldpostparent = *postparent;
|
||||
@ -3464,8 +3465,8 @@ unify_rename_unlink_cbk (call_frame_t *frame,
|
||||
xlator_t *this,
|
||||
int32_t op_ret,
|
||||
int32_t op_errno,
|
||||
struct stat *preparent,
|
||||
struct stat *postparent)
|
||||
struct iatt *preparent,
|
||||
struct iatt *postparent)
|
||||
{
|
||||
int32_t callcnt = 0;
|
||||
unify_local_t *local = frame->local;
|
||||
@ -3486,7 +3487,7 @@ unify_rename_unlink_cbk (call_frame_t *frame,
|
||||
UNLOCK (&frame->lock);
|
||||
|
||||
if (!callcnt) {
|
||||
local->stbuf.st_ino = local->st_ino;
|
||||
local->stbuf.ia_ino = local->ia_ino;
|
||||
unify_local_wipe (local);
|
||||
STACK_UNWIND (frame, local->op_ret, local->op_errno,
|
||||
&local->stbuf);
|
||||
@ -3500,11 +3501,11 @@ unify_ns_rename_undo_cbk (call_frame_t *frame,
|
||||
xlator_t *this,
|
||||
int32_t op_ret,
|
||||
int32_t op_errno,
|
||||
struct stat *buf,
|
||||
struct stat *preoldparent,
|
||||
struct stat *postoldparent,
|
||||
struct stat *prenewparent,
|
||||
struct stat *postnewparent)
|
||||
struct iatt *buf,
|
||||
struct iatt *preoldparent,
|
||||
struct iatt *postoldparent,
|
||||
struct iatt *prenewparent,
|
||||
struct iatt *postnewparent)
|
||||
{
|
||||
unify_local_t *local = frame->local;
|
||||
|
||||
@ -3515,7 +3516,7 @@ unify_ns_rename_undo_cbk (call_frame_t *frame,
|
||||
strerror (op_errno));
|
||||
}
|
||||
|
||||
local->stbuf.st_ino = local->st_ino;
|
||||
local->stbuf.ia_ino = local->ia_ino;
|
||||
unify_local_wipe (local);
|
||||
STACK_UNWIND (frame, local->op_ret, local->op_errno, &local->stbuf);
|
||||
return 0;
|
||||
@ -3527,11 +3528,11 @@ unify_rename_cbk (call_frame_t *frame,
|
||||
xlator_t *this,
|
||||
int32_t op_ret,
|
||||
int32_t op_errno,
|
||||
struct stat *buf,
|
||||
struct stat *preoldparent,
|
||||
struct stat *postoldparent,
|
||||
struct stat *prenewparent,
|
||||
struct stat *postnewparent)
|
||||
struct iatt *buf,
|
||||
struct iatt *preoldparent,
|
||||
struct iatt *postoldparent,
|
||||
struct iatt *prenewparent,
|
||||
struct iatt *postnewparent)
|
||||
{
|
||||
int32_t index = 0;
|
||||
int32_t callcnt = 0;
|
||||
@ -3544,7 +3545,7 @@ unify_rename_cbk (call_frame_t *frame,
|
||||
{
|
||||
callcnt = --local->call_count;
|
||||
if (op_ret >= 0) {
|
||||
if (!S_ISDIR (buf->st_mode))
|
||||
if (!IA_ISDIR (buf->ia_type))
|
||||
local->stbuf = *buf;
|
||||
local->op_ret = op_ret;
|
||||
} else {
|
||||
@ -3559,8 +3560,8 @@ unify_rename_cbk (call_frame_t *frame,
|
||||
UNLOCK (&frame->lock);
|
||||
|
||||
if (!callcnt) {
|
||||
local->stbuf.st_ino = local->st_ino;
|
||||
if (S_ISDIR (local->loc1.inode->st_mode)) {
|
||||
local->stbuf.ia_ino = local->ia_ino;
|
||||
if (IA_ISDIR (local->loc1.inode->ia_type)) {
|
||||
unify_local_wipe (local);
|
||||
STACK_UNWIND (frame, local->op_ret, local->op_errno,
|
||||
&local->stbuf, &local->oldpreparent,
|
||||
@ -3692,11 +3693,11 @@ unify_ns_rename_cbk (call_frame_t *frame,
|
||||
xlator_t *this,
|
||||
int32_t op_ret,
|
||||
int32_t op_errno,
|
||||
struct stat *buf,
|
||||
struct stat *preoldparent,
|
||||
struct stat *postoldparent,
|
||||
struct stat *prenewparent,
|
||||
struct stat *postnewparent)
|
||||
struct iatt *buf,
|
||||
struct iatt *preoldparent,
|
||||
struct iatt *postoldparent,
|
||||
struct iatt *prenewparent,
|
||||
struct iatt *postnewparent)
|
||||
{
|
||||
int32_t index = 0;
|
||||
int32_t callcnt = 0;
|
||||
@ -3719,7 +3720,7 @@ unify_ns_rename_cbk (call_frame_t *frame,
|
||||
}
|
||||
|
||||
local->stbuf = *buf;
|
||||
local->st_ino = buf->st_ino;
|
||||
local->ia_ino = buf->ia_ino;
|
||||
|
||||
local->oldpreparent = *preoldparent;
|
||||
local->oldpostparent = *postoldparent;
|
||||
@ -3727,7 +3728,7 @@ unify_ns_rename_cbk (call_frame_t *frame,
|
||||
local->newpostparent = *postnewparent;
|
||||
|
||||
/* Everything is fine. */
|
||||
if (S_ISDIR (buf->st_mode)) {
|
||||
if (IA_ISDIR (buf->ia_type)) {
|
||||
local->call_count = priv->child_count;
|
||||
for (index=0; index < priv->child_count; index++) {
|
||||
STACK_WIND (frame,
|
||||
@ -3826,15 +3827,15 @@ unify_link_cbk (call_frame_t *frame,
|
||||
int32_t op_ret,
|
||||
int32_t op_errno,
|
||||
inode_t *inode,
|
||||
struct stat *buf,
|
||||
struct stat *preparent,
|
||||
struct stat *postparent)
|
||||
struct iatt *buf,
|
||||
struct iatt *preparent,
|
||||
struct iatt *postparent)
|
||||
{
|
||||
unify_local_t *local = frame->local;
|
||||
|
||||
if (op_ret >= 0)
|
||||
local->stbuf = *buf;
|
||||
local->stbuf.st_ino = local->st_ino;
|
||||
local->stbuf.ia_ino = local->ia_ino;
|
||||
|
||||
unify_local_wipe (local);
|
||||
STACK_UNWIND (frame, op_ret, op_errno, inode, &local->stbuf,
|
||||
@ -3853,9 +3854,9 @@ unify_ns_link_cbk (call_frame_t *frame,
|
||||
int32_t op_ret,
|
||||
int32_t op_errno,
|
||||
inode_t *inode,
|
||||
struct stat *buf,
|
||||
struct stat *preparent,
|
||||
struct stat *postparent)
|
||||
struct iatt *buf,
|
||||
struct iatt *preparent,
|
||||
struct iatt *postparent)
|
||||
{
|
||||
unify_private_t *priv = this->private;
|
||||
unify_local_t *local = frame->local;
|
||||
@ -3878,7 +3879,7 @@ unify_ns_link_cbk (call_frame_t *frame,
|
||||
|
||||
/* Update inode for this entry */
|
||||
local->op_ret = 0;
|
||||
local->st_ino = buf->st_ino;
|
||||
local->ia_ino = buf->ia_ino;
|
||||
|
||||
local->oldpreparent = *preparent;
|
||||
local->oldpostparent = *postparent;
|
||||
@ -4178,7 +4179,7 @@ unify_forget (xlator_t *this,
|
||||
int16_t *list = NULL;
|
||||
uint64_t tmp_list = 0;
|
||||
|
||||
if (inode->st_mode && (!S_ISDIR(inode->st_mode))) {
|
||||
if (inode->ia_type && (!IA_ISDIR(inode->ia_type))) {
|
||||
inode_ctx_get (inode, this, &tmp_list);
|
||||
if (tmp_list) {
|
||||
list = (int16_t *)(long)tmp_list;
|
||||
|
@ -96,16 +96,16 @@ struct _unify_local_t {
|
||||
int32_t entry_count;
|
||||
int32_t count; // dir_entry_t count;
|
||||
fd_t *fd;
|
||||
struct stat stbuf;
|
||||
struct stat stpre;
|
||||
struct stat stpost;
|
||||
struct iatt stbuf;
|
||||
struct iatt stpre;
|
||||
struct iatt stpost;
|
||||
struct statvfs statvfs_buf;
|
||||
struct timespec tv[2];
|
||||
char *name;
|
||||
int32_t revalidate;
|
||||
|
||||
ino_t st_ino;
|
||||
nlink_t st_nlink;
|
||||
ino_t ia_ino;
|
||||
nlink_t ia_nlink;
|
||||
|
||||
dict_t *dict;
|
||||
|
||||
@ -125,15 +125,15 @@ struct _unify_local_t {
|
||||
struct unify_self_heal_struct *sh_struct;
|
||||
loc_t loc1, loc2;
|
||||
|
||||
struct stat poststbuf;
|
||||
struct iatt poststbuf;
|
||||
/* When not used for rename, old*
|
||||
* are used as the attrs for the current
|
||||
* parent directory.
|
||||
*/
|
||||
struct stat oldpreparent;
|
||||
struct stat oldpostparent;
|
||||
struct stat newpreparent;
|
||||
struct stat newpostparent;
|
||||
struct iatt oldpreparent;
|
||||
struct iatt oldpostparent;
|
||||
struct iatt newpreparent;
|
||||
struct iatt newpostparent;
|
||||
int32_t wbflags;
|
||||
};
|
||||
typedef struct _unify_local_t unify_local_t;
|
||||
|
@ -390,7 +390,7 @@ error_gen (xlator_t *this, int op_no)
|
||||
int
|
||||
error_gen_lookup_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
|
||||
int32_t op_ret, int32_t op_errno, inode_t *inode,
|
||||
struct stat *buf, dict_t *dict, struct stat *postparent)
|
||||
struct iatt *buf, dict_t *dict, struct iatt *postparent)
|
||||
{
|
||||
STACK_UNWIND_STRICT (lookup, frame, op_ret, op_errno, inode,
|
||||
buf, dict, postparent);
|
||||
@ -436,7 +436,7 @@ error_gen_forget (xlator_t *this, inode_t *inode)
|
||||
|
||||
int
|
||||
error_gen_stat_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
|
||||
int32_t op_ret, int32_t op_errno, struct stat *buf)
|
||||
int32_t op_ret, int32_t op_errno, struct iatt *buf)
|
||||
{
|
||||
STACK_UNWIND_STRICT (stat, frame, op_ret, op_errno, buf);
|
||||
|
||||
@ -473,7 +473,7 @@ error_gen_stat (call_frame_t *frame, xlator_t *this, loc_t *loc)
|
||||
int
|
||||
error_gen_setattr_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
|
||||
int32_t op_ret, int32_t op_errno,
|
||||
struct stat *preop, struct stat *postop)
|
||||
struct iatt *preop, struct iatt *postop)
|
||||
{
|
||||
STACK_UNWIND_STRICT (setattr, frame, op_ret, op_errno, preop, postop);
|
||||
|
||||
@ -483,7 +483,7 @@ error_gen_setattr_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
|
||||
|
||||
int
|
||||
error_gen_setattr (call_frame_t *frame, xlator_t *this, loc_t *loc,
|
||||
struct stat *stbuf, int32_t valid)
|
||||
struct iatt *stbuf, int32_t valid)
|
||||
{
|
||||
int op_errno = 0;
|
||||
eg_t *egp = NULL;
|
||||
@ -511,7 +511,7 @@ error_gen_setattr (call_frame_t *frame, xlator_t *this, loc_t *loc,
|
||||
|
||||
int
|
||||
error_gen_fsetattr (call_frame_t *frame, xlator_t *this, fd_t *fd,
|
||||
struct stat *stbuf, int32_t valid)
|
||||
struct iatt *stbuf, int32_t valid)
|
||||
{
|
||||
int op_errno = 0;
|
||||
eg_t *egp = NULL;
|
||||
@ -540,7 +540,7 @@ error_gen_fsetattr (call_frame_t *frame, xlator_t *this, fd_t *fd,
|
||||
int
|
||||
error_gen_truncate_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
|
||||
int32_t op_ret, int32_t op_errno,
|
||||
struct stat *prebuf, struct stat *postbuf)
|
||||
struct iatt *prebuf, struct iatt *postbuf)
|
||||
{
|
||||
STACK_UNWIND_STRICT (truncate, frame, op_ret, op_errno,
|
||||
prebuf, postbuf);
|
||||
@ -579,8 +579,8 @@ error_gen_truncate (call_frame_t *frame, xlator_t *this, loc_t *loc,
|
||||
|
||||
int
|
||||
error_gen_ftruncate_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
|
||||
int32_t op_ret, int32_t op_errno, struct stat *prebuf,
|
||||
struct stat *postbuf)
|
||||
int32_t op_ret, int32_t op_errno, struct iatt *prebuf,
|
||||
struct iatt *postbuf)
|
||||
{
|
||||
STACK_UNWIND_STRICT (ftruncate, frame, op_ret, op_errno,
|
||||
prebuf, postbuf);
|
||||
@ -658,7 +658,7 @@ error_gen_access (call_frame_t *frame, xlator_t *this, loc_t *loc,
|
||||
int
|
||||
error_gen_readlink_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
|
||||
int32_t op_ret, int32_t op_errno,
|
||||
const char *path, struct stat *sbuf)
|
||||
const char *path, struct iatt *sbuf)
|
||||
{
|
||||
STACK_UNWIND_STRICT (readlink, frame, op_ret, op_errno, path, sbuf);
|
||||
return 0;
|
||||
@ -696,8 +696,8 @@ error_gen_readlink (call_frame_t *frame, xlator_t *this, loc_t *loc,
|
||||
int
|
||||
error_gen_mknod_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
|
||||
int32_t op_ret, int32_t op_errno, inode_t *inode,
|
||||
struct stat *buf, struct stat *preparent,
|
||||
struct stat *postparent)
|
||||
struct iatt *buf, struct iatt *preparent,
|
||||
struct iatt *postparent)
|
||||
{
|
||||
STACK_UNWIND_STRICT (mknod, frame, op_ret, op_errno,
|
||||
inode, buf,
|
||||
@ -738,8 +738,8 @@ error_gen_mknod (call_frame_t *frame, xlator_t *this, loc_t *loc,
|
||||
int
|
||||
error_gen_mkdir_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
|
||||
int32_t op_ret, int32_t op_errno, inode_t *inode,
|
||||
struct stat *buf, struct stat *preparent,
|
||||
struct stat *postparent)
|
||||
struct iatt *buf, struct iatt *preparent,
|
||||
struct iatt *postparent)
|
||||
{
|
||||
STACK_UNWIND_STRICT (mkdir, frame, op_ret, op_errno,
|
||||
inode, buf,
|
||||
@ -779,7 +779,7 @@ error_gen_mkdir (call_frame_t *frame, xlator_t *this,
|
||||
int
|
||||
error_gen_unlink_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
|
||||
int32_t op_ret, int32_t op_errno,
|
||||
struct stat *preparent, struct stat *postparent)
|
||||
struct iatt *preparent, struct iatt *postparent)
|
||||
{
|
||||
STACK_UNWIND_STRICT (unlink, frame, op_ret, op_errno,
|
||||
preparent, postparent);
|
||||
@ -817,7 +817,7 @@ error_gen_unlink (call_frame_t *frame, xlator_t *this, loc_t *loc)
|
||||
int
|
||||
error_gen_rmdir_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
|
||||
int32_t op_ret, int32_t op_errno,
|
||||
struct stat *preparent, struct stat *postparent)
|
||||
struct iatt *preparent, struct iatt *postparent)
|
||||
{
|
||||
STACK_UNWIND_STRICT (rmdir, frame, op_ret, op_errno,
|
||||
preparent, postparent);
|
||||
@ -855,8 +855,8 @@ error_gen_rmdir (call_frame_t *frame, xlator_t *this, loc_t *loc)
|
||||
int
|
||||
error_gen_symlink_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
|
||||
int32_t op_ret, int32_t op_errno, inode_t *inode,
|
||||
struct stat *buf, struct stat *preparent,
|
||||
struct stat *postparent)
|
||||
struct iatt *buf, struct iatt *preparent,
|
||||
struct iatt *postparent)
|
||||
{
|
||||
STACK_UNWIND_STRICT (symlink, frame, op_ret, op_errno, inode, buf,
|
||||
preparent, postparent);
|
||||
@ -895,9 +895,9 @@ error_gen_symlink (call_frame_t *frame, xlator_t *this, const char *linkpath,
|
||||
|
||||
int
|
||||
error_gen_rename_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
|
||||
int32_t op_ret, int32_t op_errno, struct stat *buf,
|
||||
struct stat *preoldparent, struct stat *postoldparent,
|
||||
struct stat *prenewparent, struct stat *postnewparent)
|
||||
int32_t op_ret, int32_t op_errno, struct iatt *buf,
|
||||
struct iatt *preoldparent, struct iatt *postoldparent,
|
||||
struct iatt *prenewparent, struct iatt *postnewparent)
|
||||
{
|
||||
STACK_UNWIND_STRICT (rename, frame, op_ret, op_errno, buf,
|
||||
preoldparent, postoldparent,
|
||||
@ -938,8 +938,8 @@ error_gen_rename (call_frame_t *frame, xlator_t *this,
|
||||
int
|
||||
error_gen_link_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
|
||||
int32_t op_ret, int32_t op_errno, inode_t *inode,
|
||||
struct stat *buf, struct stat *preparent,
|
||||
struct stat *postparent)
|
||||
struct iatt *buf, struct iatt *preparent,
|
||||
struct iatt *postparent)
|
||||
{
|
||||
STACK_UNWIND_STRICT (link, frame, op_ret, op_errno, inode, buf,
|
||||
preparent, postparent);
|
||||
@ -979,8 +979,8 @@ error_gen_link (call_frame_t *frame, xlator_t *this,
|
||||
int
|
||||
error_gen_create_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
|
||||
int32_t op_ret, int32_t op_errno,
|
||||
fd_t *fd, inode_t *inode, struct stat *buf,
|
||||
struct stat *preparent, struct stat *postparent)
|
||||
fd_t *fd, inode_t *inode, struct iatt *buf,
|
||||
struct iatt *preparent, struct iatt *postparent)
|
||||
{
|
||||
STACK_UNWIND_STRICT (create, frame, op_ret, op_errno, fd, inode, buf,
|
||||
preparent, postparent);
|
||||
@ -1058,7 +1058,7 @@ int
|
||||
error_gen_readv_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
|
||||
int32_t op_ret, int32_t op_errno,
|
||||
struct iovec *vector, int32_t count,
|
||||
struct stat *stbuf, struct iobref *iobref)
|
||||
struct iatt *stbuf, struct iobref *iobref)
|
||||
{
|
||||
STACK_UNWIND_STRICT (readv, frame, op_ret, op_errno,
|
||||
vector, count, stbuf, iobref);
|
||||
@ -1099,7 +1099,7 @@ error_gen_readv (call_frame_t *frame, xlator_t *this,
|
||||
int
|
||||
error_gen_writev_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
|
||||
int32_t op_ret, int32_t op_errno,
|
||||
struct stat *prebuf, struct stat *postbuf)
|
||||
struct iatt *prebuf, struct iatt *postbuf)
|
||||
{
|
||||
STACK_UNWIND_STRICT (writev, frame, op_ret, op_errno, prebuf, postbuf);
|
||||
return 0;
|
||||
@ -1174,8 +1174,8 @@ error_gen_flush (call_frame_t *frame, xlator_t *this, fd_t *fd)
|
||||
int
|
||||
error_gen_fsync_cbk (call_frame_t *frame, void *cookie,
|
||||
xlator_t *this, int32_t op_ret,
|
||||
int32_t op_errno, struct stat *prebuf,
|
||||
struct stat *postbuf)
|
||||
int32_t op_errno, struct iatt *prebuf,
|
||||
struct iatt *postbuf)
|
||||
{
|
||||
STACK_UNWIND_STRICT (fsync, frame, op_ret, op_errno, prebuf, postbuf);
|
||||
return 0;
|
||||
@ -1211,7 +1211,7 @@ error_gen_fsync (call_frame_t *frame, xlator_t *this, fd_t *fd, int32_t flags)
|
||||
|
||||
int
|
||||
error_gen_fstat_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
|
||||
int32_t op_ret, int32_t op_errno, struct stat *buf)
|
||||
int32_t op_ret, int32_t op_errno, struct iatt *buf)
|
||||
{
|
||||
STACK_UNWIND_STRICT (fstat, frame, op_ret, op_errno, buf);
|
||||
return 0;
|
||||
|
@ -347,8 +347,8 @@ io_stats_dump_fd (xlator_t *this, struct ios_fd *iosfd)
|
||||
int
|
||||
io_stats_create_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
|
||||
int32_t op_ret, int32_t op_errno, fd_t *fd,
|
||||
inode_t *inode, struct stat *buf,
|
||||
struct stat *preparent, struct stat *postparent)
|
||||
inode_t *inode, struct iatt *buf,
|
||||
struct iatt *preparent, struct iatt *postparent)
|
||||
{
|
||||
struct ios_fd *iosfd = NULL;
|
||||
char *path = NULL;
|
||||
@ -419,7 +419,7 @@ unwind:
|
||||
|
||||
int
|
||||
io_stats_stat_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
|
||||
int32_t op_ret, int32_t op_errno, struct stat *buf)
|
||||
int32_t op_ret, int32_t op_errno, struct iatt *buf)
|
||||
{
|
||||
STACK_UNWIND_STRICT (stat, frame, op_ret, op_errno, buf);
|
||||
return 0;
|
||||
@ -430,7 +430,7 @@ int
|
||||
io_stats_readv_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
|
||||
int32_t op_ret, int32_t op_errno,
|
||||
struct iovec *vector, int32_t count,
|
||||
struct stat *buf, struct iobref *iobref)
|
||||
struct iatt *buf, struct iobref *iobref)
|
||||
{
|
||||
struct ios_conf *conf = NULL;
|
||||
int len = 0;
|
||||
@ -455,7 +455,7 @@ io_stats_readv_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
|
||||
int
|
||||
io_stats_writev_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
|
||||
int32_t op_ret, int32_t op_errno,
|
||||
struct stat *prebuf, struct stat *postbuf)
|
||||
struct iatt *prebuf, struct iatt *postbuf)
|
||||
{
|
||||
STACK_UNWIND_STRICT (writev, frame, op_ret, op_errno, prebuf, postbuf);
|
||||
return 0;
|
||||
@ -493,7 +493,7 @@ io_stats_readdir_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
|
||||
int
|
||||
io_stats_fsync_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
|
||||
int32_t op_ret, int32_t op_errno,
|
||||
struct stat *prebuf, struct stat *postbuf)
|
||||
struct iatt *prebuf, struct iatt *postbuf)
|
||||
{
|
||||
STACK_UNWIND_STRICT (fsync, frame, op_ret, op_errno, prebuf, postbuf);
|
||||
return 0;
|
||||
@ -503,7 +503,7 @@ io_stats_fsync_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
|
||||
int
|
||||
io_stats_setattr_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
|
||||
int32_t op_ret, int32_t op_errno,
|
||||
struct stat *preop, struct stat *postop)
|
||||
struct iatt *preop, struct iatt *postop)
|
||||
{
|
||||
STACK_UNWIND_STRICT (setattr, frame, op_ret, op_errno, preop, postop);
|
||||
return 0;
|
||||
@ -513,7 +513,7 @@ io_stats_setattr_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
|
||||
int
|
||||
io_stats_unlink_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
|
||||
int32_t op_ret, int32_t op_errno,
|
||||
struct stat *preparent, struct stat *postparent)
|
||||
struct iatt *preparent, struct iatt *postparent)
|
||||
{
|
||||
STACK_UNWIND_STRICT (unlink, frame, op_ret, op_errno,
|
||||
preparent, postparent);
|
||||
@ -523,9 +523,9 @@ io_stats_unlink_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
|
||||
|
||||
int
|
||||
io_stats_rename_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
|
||||
int32_t op_ret, int32_t op_errno, struct stat *buf,
|
||||
struct stat *preoldparent, struct stat *postoldparent,
|
||||
struct stat *prenewparent, struct stat *postnewparent)
|
||||
int32_t op_ret, int32_t op_errno, struct iatt *buf,
|
||||
struct iatt *preoldparent, struct iatt *postoldparent,
|
||||
struct iatt *prenewparent, struct iatt *postnewparent)
|
||||
{
|
||||
STACK_UNWIND_STRICT (rename, frame, op_ret, op_errno, buf,
|
||||
preoldparent, postoldparent,
|
||||
@ -537,7 +537,7 @@ io_stats_rename_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
|
||||
int
|
||||
io_stats_readlink_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
|
||||
int32_t op_ret, int32_t op_errno, const char *buf,
|
||||
struct stat *sbuf)
|
||||
struct iatt *sbuf)
|
||||
{
|
||||
STACK_UNWIND_STRICT (readlink, frame, op_ret, op_errno, buf, sbuf);
|
||||
return 0;
|
||||
@ -547,8 +547,8 @@ io_stats_readlink_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
|
||||
int
|
||||
io_stats_lookup_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
|
||||
int32_t op_ret, int32_t op_errno,
|
||||
inode_t *inode, struct stat *buf,
|
||||
dict_t *xattr, struct stat *postparent)
|
||||
inode_t *inode, struct iatt *buf,
|
||||
dict_t *xattr, struct iatt *postparent)
|
||||
{
|
||||
STACK_UNWIND_STRICT (lookup, frame, op_ret, op_errno, inode, buf, xattr,
|
||||
postparent);
|
||||
@ -559,8 +559,8 @@ io_stats_lookup_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
|
||||
int
|
||||
io_stats_symlink_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
|
||||
int32_t op_ret, int32_t op_errno,
|
||||
inode_t *inode, struct stat *buf,
|
||||
struct stat *preparent, struct stat *postparent)
|
||||
inode_t *inode, struct iatt *buf,
|
||||
struct iatt *preparent, struct iatt *postparent)
|
||||
{
|
||||
STACK_UNWIND_STRICT (symlink, frame, op_ret, op_errno, inode, buf,
|
||||
preparent, postparent);
|
||||
@ -571,8 +571,8 @@ io_stats_symlink_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
|
||||
int
|
||||
io_stats_mknod_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
|
||||
int32_t op_ret, int32_t op_errno,
|
||||
inode_t *inode, struct stat *buf,
|
||||
struct stat *preparent, struct stat *postparent)
|
||||
inode_t *inode, struct iatt *buf,
|
||||
struct iatt *preparent, struct iatt *postparent)
|
||||
{
|
||||
STACK_UNWIND_STRICT (mknod, frame, op_ret, op_errno, inode, buf,
|
||||
preparent, postparent);
|
||||
@ -583,8 +583,8 @@ io_stats_mknod_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
|
||||
int
|
||||
io_stats_mkdir_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
|
||||
int32_t op_ret, int32_t op_errno,
|
||||
inode_t *inode, struct stat *buf,
|
||||
struct stat *preparent, struct stat *postparent)
|
||||
inode_t *inode, struct iatt *buf,
|
||||
struct iatt *preparent, struct iatt *postparent)
|
||||
{
|
||||
STACK_UNWIND_STRICT (mkdir, frame, op_ret, op_errno, inode, buf,
|
||||
preparent, postparent);
|
||||
@ -595,8 +595,8 @@ io_stats_mkdir_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
|
||||
int
|
||||
io_stats_link_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
|
||||
int32_t op_ret, int32_t op_errno,
|
||||
inode_t *inode, struct stat *buf,
|
||||
struct stat *preparent, struct stat *postparent)
|
||||
inode_t *inode, struct iatt *buf,
|
||||
struct iatt *preparent, struct iatt *postparent)
|
||||
{
|
||||
STACK_UNWIND_STRICT (link, frame, op_ret, op_errno, inode, buf,
|
||||
preparent, postparent);
|
||||
@ -628,7 +628,7 @@ io_stats_opendir_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
|
||||
int
|
||||
io_stats_rmdir_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
|
||||
int32_t op_ret, int32_t op_errno,
|
||||
struct stat *preparent, struct stat *postparent)
|
||||
struct iatt *preparent, struct iatt *postparent)
|
||||
{
|
||||
STACK_UNWIND_STRICT (rmdir, frame, op_ret, op_errno,
|
||||
preparent, postparent);
|
||||
@ -639,7 +639,7 @@ io_stats_rmdir_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
|
||||
int
|
||||
io_stats_truncate_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
|
||||
int32_t op_ret, int32_t op_errno,
|
||||
struct stat *prebuf, struct stat *postbuf)
|
||||
struct iatt *prebuf, struct iatt *postbuf)
|
||||
{
|
||||
STACK_UNWIND_STRICT (truncate, frame, op_ret, op_errno,
|
||||
prebuf, postbuf);
|
||||
@ -704,7 +704,7 @@ io_stats_access_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
|
||||
int
|
||||
io_stats_ftruncate_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
|
||||
int32_t op_ret, int32_t op_errno,
|
||||
struct stat *prebuf, struct stat *postbuf)
|
||||
struct iatt *prebuf, struct iatt *postbuf)
|
||||
{
|
||||
STACK_UNWIND_STRICT (ftruncate, frame, op_ret, op_errno,
|
||||
prebuf, postbuf);
|
||||
@ -714,7 +714,7 @@ io_stats_ftruncate_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
|
||||
|
||||
int
|
||||
io_stats_fstat_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
|
||||
int32_t op_ret, int32_t op_errno, struct stat *buf)
|
||||
int32_t op_ret, int32_t op_errno, struct iatt *buf)
|
||||
{
|
||||
STACK_UNWIND_STRICT (fstat, frame, op_ret, op_errno, buf);
|
||||
return 0;
|
||||
@ -1007,7 +1007,7 @@ io_stats_link (call_frame_t *frame, xlator_t *this,
|
||||
|
||||
int
|
||||
io_stats_setattr (call_frame_t *frame, xlator_t *this,
|
||||
loc_t *loc, struct stat *stbuf, int32_t valid)
|
||||
loc_t *loc, struct iatt *stbuf, int32_t valid)
|
||||
{
|
||||
BUMP_FOP (SETATTR);
|
||||
|
||||
@ -1336,7 +1336,7 @@ io_stats_ftruncate (call_frame_t *frame, xlator_t *this,
|
||||
|
||||
int
|
||||
io_stats_fsetattr (call_frame_t *frame, xlator_t *this,
|
||||
fd_t *fd, struct stat *stbuf, int32_t valid)
|
||||
fd_t *fd, struct iatt *stbuf, int32_t valid)
|
||||
{
|
||||
BUMP_FOP (FSETATTR);
|
||||
|
||||
|
@ -60,7 +60,7 @@ struct {
|
||||
int trace_log_level = GF_LOG_NORMAL;
|
||||
|
||||
static char *
|
||||
trace_stat_to_str (struct stat *stbuf)
|
||||
trace_stat_to_str (struct iatt *stbuf)
|
||||
{
|
||||
char *statstr = NULL;
|
||||
char atime_buf[256] = {0,};
|
||||
@ -69,22 +69,22 @@ trace_stat_to_str (struct stat *stbuf)
|
||||
int asprint_ret_value = 0;
|
||||
|
||||
strftime (atime_buf, 256, "[%b %d %H:%M:%S]",
|
||||
localtime (&stbuf->st_atime));
|
||||
localtime ((time_t *)&stbuf->ia_atime));
|
||||
strftime (mtime_buf, 256, "[%b %d %H:%M:%S]",
|
||||
localtime (&stbuf->st_mtime));
|
||||
localtime ((time_t *)&stbuf->ia_mtime));
|
||||
strftime (ctime_buf, 256, "[%b %d %H:%M:%S]",
|
||||
localtime (&stbuf->st_ctime));
|
||||
localtime ((time_t *)&stbuf->ia_ctime));
|
||||
|
||||
asprint_ret_value = asprintf (&statstr,
|
||||
"st_ino=%"PRIu64", st_dev=%"PRIu64
|
||||
", st_mode=%o, st_nlink=%"GF_PRI_NLINK", "
|
||||
"st_uid=%d, st_gid=%d, st_size=%"PRId64", st_blocks=%"PRId64
|
||||
", st_atime=%s, st_mtime=%s, st_ctime=%s",
|
||||
stbuf->st_ino, stbuf->st_dev,
|
||||
stbuf->st_mode, stbuf->st_nlink,
|
||||
stbuf->st_uid,
|
||||
stbuf->st_gid, stbuf->st_size,
|
||||
stbuf->st_blocks, atime_buf,
|
||||
"ia_ino=%"PRIu64", ia_gen=%"PRIu64
|
||||
", st_mode=%o, ia_nlink=%"GF_PRI_NLINK", "
|
||||
"ia_uid=%d, ia_gid=%d, ia_size=%"PRId64", ia_blocks=%"PRId64
|
||||
", ia_atime=%s, ia_mtime=%s, ia_ctime=%s",
|
||||
stbuf->ia_ino, stbuf->ia_gen,
|
||||
st_mode_from_ia (stbuf->ia_prot, stbuf->ia_type),
|
||||
stbuf->ia_nlink, stbuf->ia_uid,
|
||||
stbuf->ia_gid, stbuf->ia_size,
|
||||
stbuf->ia_blocks, atime_buf,
|
||||
mtime_buf, ctime_buf);
|
||||
|
||||
if (asprint_ret_value < 0)
|
||||
@ -97,8 +97,8 @@ trace_stat_to_str (struct stat *stbuf)
|
||||
int
|
||||
trace_create_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
|
||||
int32_t op_ret, int32_t op_errno, fd_t *fd,
|
||||
inode_t *inode, struct stat *buf,
|
||||
struct stat *preparent, struct stat *postparent)
|
||||
inode_t *inode, struct iatt *buf,
|
||||
struct iatt *preparent, struct iatt *postparent)
|
||||
{
|
||||
char *statstr = NULL;
|
||||
char *preparentstr = NULL;
|
||||
@ -154,7 +154,7 @@ trace_open_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
|
||||
|
||||
int
|
||||
trace_stat_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
|
||||
int32_t op_ret, int32_t op_errno, struct stat *buf)
|
||||
int32_t op_ret, int32_t op_errno, struct iatt *buf)
|
||||
{
|
||||
char atime_buf[256];
|
||||
char mtime_buf[256];
|
||||
@ -163,20 +163,24 @@ trace_stat_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
|
||||
|
||||
if (trace_fop_names[GF_FOP_STAT].enabled) {
|
||||
if (op_ret >= 0) {
|
||||
strftime (atime_buf, 256, "[%b %d %H:%M:%S]", localtime (&buf->st_atime));
|
||||
strftime (mtime_buf, 256, "[%b %d %H:%M:%S]", localtime (&buf->st_mtime));
|
||||
strftime (ctime_buf, 256, "[%b %d %H:%M:%S]", localtime (&buf->st_ctime));
|
||||
strftime (atime_buf, 256, "[%b %d %H:%M:%S]",
|
||||
localtime ((time_t *)&buf->ia_atime));
|
||||
strftime (mtime_buf, 256, "[%b %d %H:%M:%S]",
|
||||
localtime ((time_t *)&buf->ia_mtime));
|
||||
strftime (ctime_buf, 256, "[%b %d %H:%M:%S]",
|
||||
localtime ((time_t *)&buf->ia_ctime));
|
||||
|
||||
gf_log (this->name, GF_LOG_NORMAL,
|
||||
"%"PRId64": (op_ret=%d, buf {st_dev=%"GF_PRI_DEV", "
|
||||
"st_ino=%"PRIu64", st_mode=%o, st_nlink=%"GF_PRI_NLINK", "
|
||||
"st_uid=%d, st_gid=%d, st_rdev=%"GF_PRI_DEV", st_size=%"PRId64
|
||||
", st_blksize=%"GF_PRI_BLKSIZE", st_blocks=%"PRId64", "
|
||||
"st_atime=%s, st_mtime=%s, st_ctime=%s})",
|
||||
frame->root->unique, op_ret, buf->st_dev, buf->st_ino,
|
||||
buf->st_mode, buf->st_nlink, buf->st_uid, buf->st_gid,
|
||||
buf->st_rdev, buf->st_size, buf->st_blksize,
|
||||
buf->st_blocks, atime_buf, mtime_buf, ctime_buf);
|
||||
"%"PRId64": (op_ret=%d, buf {ia_gen=%"GF_PRI_DEV", "
|
||||
"ia_ino=%"PRIu64", st_mode=%o, ia_nlink=%"GF_PRI_NLINK", "
|
||||
"ia_uid=%d, ia_gid=%d, ia_rdev=%"GF_PRI_DEV", ia_size=%"PRId64
|
||||
", ia_blksize=%"GF_PRI_BLKSIZE", ia_blocks=%"PRId64", "
|
||||
"ia_atime=%s, ia_mtime=%s, ia_ctime=%s})",
|
||||
frame->root->unique, op_ret, buf->ia_gen, buf->ia_ino,
|
||||
st_mode_from_ia (buf->ia_prot, buf->ia_type),
|
||||
buf->ia_nlink, buf->ia_uid, buf->ia_gid,
|
||||
buf->ia_rdev, buf->ia_size, buf->ia_blksize,
|
||||
buf->ia_blocks, atime_buf, mtime_buf, ctime_buf);
|
||||
} else {
|
||||
gf_log (this->name, GF_LOG_NORMAL,
|
||||
"%"PRId64": (op_ret=%d, op_errno=%d)",
|
||||
@ -192,7 +196,7 @@ trace_stat_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
|
||||
int
|
||||
trace_readv_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
|
||||
int32_t op_ret, int32_t op_errno, struct iovec *vector,
|
||||
int32_t count, struct stat *buf, struct iobref *iobref)
|
||||
int32_t count, struct iatt *buf, struct iobref *iobref)
|
||||
{
|
||||
char atime_buf[256];
|
||||
char mtime_buf[256];
|
||||
@ -200,19 +204,23 @@ trace_readv_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
|
||||
|
||||
if (trace_fop_names[GF_FOP_READ].enabled) {
|
||||
if (op_ret >= 0) {
|
||||
strftime (atime_buf, 256, "[%b %d %H:%M:%S]", localtime (&buf->st_atime));
|
||||
strftime (mtime_buf, 256, "[%b %d %H:%M:%S]", localtime (&buf->st_mtime));
|
||||
strftime (ctime_buf, 256, "[%b %d %H:%M:%S]", localtime (&buf->st_ctime));
|
||||
strftime (atime_buf, 256, "[%b %d %H:%M:%S]",
|
||||
localtime ((time_t *)&buf->ia_atime));
|
||||
strftime (mtime_buf, 256, "[%b %d %H:%M:%S]",
|
||||
localtime ((time_t *)&buf->ia_mtime));
|
||||
strftime (ctime_buf, 256, "[%b %d %H:%M:%S]",
|
||||
localtime ((time_t *)&buf->ia_ctime));
|
||||
|
||||
gf_log (this->name, GF_LOG_NORMAL,
|
||||
"%"PRId64": (op_ret=%d, op_errno=%d, *buf {st_dev=%"GF_PRI_DEV", "
|
||||
"st_ino=%"PRIu64", st_mode=%o, st_nlink=%"GF_PRI_NLINK", "
|
||||
"st_uid=%d, st_gid=%d, st_rdev=%"GF_PRI_DEV", "
|
||||
"st_size=%"PRId64", st_blksize=%"GF_PRI_BLKSIZE", "
|
||||
"st_blocks=%"PRId64", st_atime=%s, st_mtime=%s, st_ctime=%s})",
|
||||
frame->root->unique, op_ret, op_errno, buf->st_dev, buf->st_ino,
|
||||
buf->st_mode, buf->st_nlink, buf->st_uid, buf->st_gid,
|
||||
buf->st_rdev, buf->st_size, buf->st_blksize, buf->st_blocks,
|
||||
"%"PRId64": (op_ret=%d, op_errno=%d, *buf {ia_gen=%"GF_PRI_DEV", "
|
||||
"ia_ino=%"PRIu64", st_mode=%o, ia_nlink=%"GF_PRI_NLINK", "
|
||||
"ia_uid=%d, ia_gid=%d, ia_rdev=%"GF_PRI_DEV", "
|
||||
"ia_size=%"PRId64", ia_blksize=%"GF_PRI_BLKSIZE", "
|
||||
"ia_blocks=%"PRId64", ia_atime=%s, ia_mtime=%s, ia_ctime=%s})",
|
||||
frame->root->unique, op_ret, op_errno, buf->ia_gen, buf->ia_ino,
|
||||
st_mode_from_ia (buf->ia_prot, buf->ia_type),
|
||||
buf->ia_nlink, buf->ia_uid, buf->ia_gid,
|
||||
buf->ia_rdev, buf->ia_size, buf->ia_blksize, buf->ia_blocks,
|
||||
atime_buf, mtime_buf, ctime_buf);
|
||||
} else {
|
||||
gf_log (this->name, GF_LOG_NORMAL,
|
||||
@ -230,7 +238,7 @@ trace_readv_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
|
||||
int
|
||||
trace_writev_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
|
||||
int32_t op_ret, int32_t op_errno,
|
||||
struct stat *prebuf, struct stat *postbuf)
|
||||
struct iatt *prebuf, struct iatt *postbuf)
|
||||
{
|
||||
char *preopstr = NULL;
|
||||
char *postopstr = NULL;
|
||||
@ -243,7 +251,7 @@ trace_writev_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
|
||||
gf_log (this->name, GF_LOG_NORMAL,
|
||||
"%"PRId64": (op_ret=%d, ino = %"PRIu64
|
||||
", *prebuf = {%s}, *postbuf = {%s})",
|
||||
frame->root->unique, op_ret, postbuf->st_ino,
|
||||
frame->root->unique, op_ret, postbuf->ia_ino,
|
||||
preopstr, postopstr);
|
||||
|
||||
if (preopstr)
|
||||
@ -314,7 +322,7 @@ trace_readdirp_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
|
||||
int
|
||||
trace_fsync_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
|
||||
int32_t op_ret, int32_t op_errno,
|
||||
struct stat *prebuf, struct stat *postbuf)
|
||||
struct iatt *prebuf, struct iatt *postbuf)
|
||||
{
|
||||
char *preopstr = NULL;
|
||||
char *postopstr = NULL;
|
||||
@ -327,7 +335,7 @@ trace_fsync_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
|
||||
gf_log (this->name, GF_LOG_NORMAL,
|
||||
"%"PRId64": (op_ret=%d, ino = %"PRIu64
|
||||
", *prebuf = {%s}, *postbuf = {%s}",
|
||||
frame->root->unique, op_ret, postbuf->st_ino,
|
||||
frame->root->unique, op_ret, postbuf->ia_ino,
|
||||
preopstr, postopstr);
|
||||
|
||||
if (preopstr)
|
||||
@ -351,7 +359,7 @@ trace_fsync_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
|
||||
int
|
||||
trace_setattr_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
|
||||
int32_t op_ret, int32_t op_errno,
|
||||
struct stat *statpre, struct stat *statpost)
|
||||
struct iatt *statpre, struct iatt *statpost)
|
||||
{
|
||||
char atime_pre[256] = {0,};
|
||||
char mtime_pre[256] = {0,};
|
||||
@ -363,31 +371,33 @@ trace_setattr_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
|
||||
if (trace_fop_names[GF_FOP_SETATTR].enabled) {
|
||||
if (op_ret >= 0) {
|
||||
strftime (atime_pre, 256, "[%b %d %H:%M:%S]",
|
||||
localtime (&statpre->st_atime));
|
||||
localtime ((time_t *)&statpre->ia_atime));
|
||||
strftime (mtime_pre, 256, "[%b %d %H:%M:%S]",
|
||||
localtime (&statpre->st_mtime));
|
||||
localtime ((time_t *)&statpre->ia_mtime));
|
||||
strftime (ctime_pre, 256, "[%b %d %H:%M:%S]",
|
||||
localtime (&statpre->st_ctime));
|
||||
localtime ((time_t *)&statpre->ia_ctime));
|
||||
|
||||
strftime (atime_post, 256, "[%b %d %H:%M:%S]",
|
||||
localtime (&statpost->st_atime));
|
||||
localtime ((time_t *)&statpost->ia_atime));
|
||||
strftime (mtime_post, 256, "[%b %d %H:%M:%S]",
|
||||
localtime (&statpost->st_mtime));
|
||||
localtime ((time_t *)&statpost->ia_mtime));
|
||||
strftime (ctime_post, 256, "[%b %d %H:%M:%S]",
|
||||
localtime (&statpost->st_ctime));
|
||||
localtime ((time_t *)&statpost->ia_ctime));
|
||||
|
||||
gf_log (this->name, GF_LOG_NORMAL,
|
||||
"%"PRId64": (op_ret=%d, *statpre "
|
||||
"{st_ino=%"PRIu64", st_mode=%o, st_uid=%d, "
|
||||
"st_gid=%d, st_atime=%s, st_mtime=%s, "
|
||||
"st_ctime=%s}, *statpost {st_ino=%"PRIu64", "
|
||||
"st_mode=%o, st_uid=%d, st_gid=%d, st_atime=%s,"
|
||||
" st_mtime=%s, st_ctime=%s})",
|
||||
frame->root->unique, op_ret, statpre->st_ino,
|
||||
statpre->st_mode, statpre->st_uid,
|
||||
statpre->st_gid, atime_pre, mtime_pre,
|
||||
ctime_pre, statpost->st_ino, statpost->st_mode,
|
||||
statpost->st_uid, statpost->st_gid, atime_post,
|
||||
"{ia_ino=%"PRIu64", st_mode=%o, ia_uid=%d, "
|
||||
"ia_gid=%d, ia_atime=%s, ia_mtime=%s, "
|
||||
"ia_ctime=%s}, *statpost {ia_ino=%"PRIu64", "
|
||||
"st_mode=%o, ia_uid=%d, ia_gid=%d, ia_atime=%s,"
|
||||
" ia_mtime=%s, ia_ctime=%s})",
|
||||
frame->root->unique, op_ret, statpre->ia_ino,
|
||||
st_mode_from_ia (statpre->ia_prot, statpre->ia_type),
|
||||
statpre->ia_uid,
|
||||
statpre->ia_gid, atime_pre, mtime_pre,
|
||||
ctime_pre, statpost->ia_ino,
|
||||
st_mode_from_ia (statpost->ia_prot, statpost->ia_type),
|
||||
statpost->ia_uid, statpost->ia_gid, atime_post,
|
||||
mtime_post, ctime_post);
|
||||
} else {
|
||||
gf_log (this->name, GF_LOG_NORMAL,
|
||||
@ -404,7 +414,7 @@ trace_setattr_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
|
||||
int
|
||||
trace_fsetattr_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
|
||||
int32_t op_ret, int32_t op_errno,
|
||||
struct stat *statpre, struct stat *statpost)
|
||||
struct iatt *statpre, struct iatt *statpost)
|
||||
{
|
||||
char atime_pre[256] = {0,};
|
||||
char mtime_pre[256] = {0,};
|
||||
@ -416,31 +426,33 @@ trace_fsetattr_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
|
||||
if (trace_fop_names[GF_FOP_FSETATTR].enabled) {
|
||||
if (op_ret >= 0) {
|
||||
strftime (atime_pre, 256, "[%b %d %H:%M:%S]",
|
||||
localtime (&statpre->st_atime));
|
||||
localtime ((time_t *)&statpre->ia_atime));
|
||||
strftime (mtime_pre, 256, "[%b %d %H:%M:%S]",
|
||||
localtime (&statpre->st_mtime));
|
||||
localtime ((time_t *)&statpre->ia_mtime));
|
||||
strftime (ctime_pre, 256, "[%b %d %H:%M:%S]",
|
||||
localtime (&statpre->st_ctime));
|
||||
localtime ((time_t *)&statpre->ia_ctime));
|
||||
|
||||
strftime (atime_post, 256, "[%b %d %H:%M:%S]",
|
||||
localtime (&statpost->st_atime));
|
||||
localtime ((time_t *)&statpost->ia_atime));
|
||||
strftime (mtime_post, 256, "[%b %d %H:%M:%S]",
|
||||
localtime (&statpost->st_mtime));
|
||||
localtime ((time_t *)&statpost->ia_mtime));
|
||||
strftime (ctime_post, 256, "[%b %d %H:%M:%S]",
|
||||
localtime (&statpost->st_ctime));
|
||||
localtime ((time_t *)&statpost->ia_ctime));
|
||||
|
||||
gf_log (this->name, GF_LOG_NORMAL,
|
||||
"%"PRId64": (op_ret=%d, *statpre "
|
||||
"{st_ino=%"PRIu64", st_mode=%o, st_uid=%d, "
|
||||
"st_gid=%d, st_atime=%s, st_mtime=%s, "
|
||||
"st_ctime=%s}, *statpost {st_ino=%"PRIu64", "
|
||||
"st_mode=%o, st_uid=%d, st_gid=%d, st_atime=%s,"
|
||||
" st_mtime=%s, st_ctime=%s})",
|
||||
frame->root->unique, op_ret, statpre->st_ino,
|
||||
statpre->st_mode, statpre->st_uid,
|
||||
statpre->st_gid, atime_pre, mtime_pre,
|
||||
ctime_pre, statpost->st_ino, statpost->st_mode,
|
||||
statpost->st_uid, statpost->st_gid, atime_post,
|
||||
"{ia_ino=%"PRIu64", st_mode=%o, ia_uid=%d, "
|
||||
"ia_gid=%d, ia_atime=%s, ia_mtime=%s, "
|
||||
"ia_ctime=%s}, *statpost {ia_ino=%"PRIu64", "
|
||||
"st_mode=%o, ia_uid=%d, ia_gid=%d, ia_atime=%s,"
|
||||
" ia_mtime=%s, ia_ctime=%s})",
|
||||
frame->root->unique, op_ret, statpre->ia_ino,
|
||||
st_mode_from_ia (statpre->ia_prot, statpre->ia_type),
|
||||
statpre->ia_uid,
|
||||
statpre->ia_gid, atime_pre, mtime_pre,
|
||||
ctime_pre, statpost->ia_ino,
|
||||
st_mode_from_ia (statpost->ia_prot, statpost->ia_type),
|
||||
statpost->ia_uid, statpost->ia_gid, atime_post,
|
||||
mtime_post, ctime_post);
|
||||
} else {
|
||||
gf_log (this->name, GF_LOG_NORMAL,
|
||||
@ -458,7 +470,7 @@ trace_fsetattr_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
|
||||
int
|
||||
trace_unlink_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
|
||||
int32_t op_ret, int32_t op_errno,
|
||||
struct stat *preparent, struct stat *postparent)
|
||||
struct iatt *preparent, struct iatt *postparent)
|
||||
{
|
||||
char *preparentstr = NULL;
|
||||
char *postparentstr = NULL;
|
||||
@ -494,9 +506,9 @@ trace_unlink_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
|
||||
|
||||
int
|
||||
trace_rename_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
|
||||
int32_t op_ret, int32_t op_errno, struct stat *buf,
|
||||
struct stat *preoldparent, struct stat *postoldparent,
|
||||
struct stat *prenewparent, struct stat *postnewparent)
|
||||
int32_t op_ret, int32_t op_errno, struct iatt *buf,
|
||||
struct iatt *preoldparent, struct iatt *postoldparent,
|
||||
struct iatt *prenewparent, struct iatt *postnewparent)
|
||||
{
|
||||
char *statstr = NULL;
|
||||
char *preoldparentstr = NULL;
|
||||
@ -538,9 +550,9 @@ trace_rename_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
|
||||
frame->root->unique, op_ret, op_errno);
|
||||
}
|
||||
gf_log (this->name, GF_LOG_NORMAL,
|
||||
"%"PRId64": (op_ret=%d, op_errno=%d, buf {st_ino=%"PRIu64"})",
|
||||
"%"PRId64": (op_ret=%d, op_errno=%d, buf {ia_ino=%"PRIu64"})",
|
||||
frame->root->unique, op_ret, op_errno,
|
||||
(buf? buf->st_ino : 0));
|
||||
(buf? buf->ia_ino : 0));
|
||||
}
|
||||
|
||||
STACK_UNWIND_STRICT (rename, frame, op_ret, op_errno, buf,
|
||||
@ -553,7 +565,7 @@ trace_rename_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
|
||||
int
|
||||
trace_readlink_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
|
||||
int32_t op_ret, int32_t op_errno,
|
||||
const char *buf, struct stat *stbuf)
|
||||
const char *buf, struct iatt *stbuf)
|
||||
{
|
||||
char *statstr = NULL;
|
||||
|
||||
@ -583,8 +595,8 @@ trace_readlink_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
|
||||
int
|
||||
trace_lookup_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
|
||||
int32_t op_ret, int32_t op_errno,
|
||||
inode_t *inode, struct stat *buf,
|
||||
dict_t *xattr, struct stat *postparent)
|
||||
inode_t *inode, struct iatt *buf,
|
||||
dict_t *xattr, struct iatt *postparent)
|
||||
{
|
||||
char *statstr = NULL;
|
||||
char *postparentstr = NULL;
|
||||
@ -620,8 +632,8 @@ trace_lookup_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
|
||||
int
|
||||
trace_symlink_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
|
||||
int32_t op_ret, int32_t op_errno,
|
||||
inode_t *inode, struct stat *buf,
|
||||
struct stat *preparent, struct stat *postparent)
|
||||
inode_t *inode, struct iatt *buf,
|
||||
struct iatt *preparent, struct iatt *postparent)
|
||||
{
|
||||
char *statstr = NULL;
|
||||
char *preparentstr = NULL;
|
||||
@ -665,8 +677,8 @@ trace_symlink_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
|
||||
int
|
||||
trace_mknod_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
|
||||
int32_t op_ret, int32_t op_errno,
|
||||
inode_t *inode, struct stat *buf,
|
||||
struct stat *preparent, struct stat *postparent)
|
||||
inode_t *inode, struct iatt *buf,
|
||||
struct iatt *preparent, struct iatt *postparent)
|
||||
{
|
||||
char *statstr = NULL;
|
||||
char *preparentstr = NULL;
|
||||
@ -709,8 +721,8 @@ trace_mknod_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
|
||||
int
|
||||
trace_mkdir_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
|
||||
int32_t op_ret, int32_t op_errno,
|
||||
inode_t *inode, struct stat *buf,
|
||||
struct stat *preparent, struct stat *postparent)
|
||||
inode_t *inode, struct iatt *buf,
|
||||
struct iatt *preparent, struct iatt *postparent)
|
||||
{
|
||||
char *statstr = NULL;
|
||||
char *preparentstr = NULL;
|
||||
@ -726,7 +738,7 @@ trace_mkdir_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
|
||||
"%"PRId64": (op_ret=%d, ino = %"PRIu64
|
||||
", *stbuf = {%s}, *prebuf = {%s}, "
|
||||
"*postbuf = {%s} )",
|
||||
frame->root->unique, op_ret, buf->st_ino,
|
||||
frame->root->unique, op_ret, buf->ia_ino,
|
||||
statstr, preparentstr, postparentstr);
|
||||
|
||||
if (statstr)
|
||||
@ -753,8 +765,8 @@ trace_mkdir_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
|
||||
int
|
||||
trace_link_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
|
||||
int32_t op_ret, int32_t op_errno,
|
||||
inode_t *inode, struct stat *buf,
|
||||
struct stat *preparent, struct stat *postparent)
|
||||
inode_t *inode, struct iatt *buf,
|
||||
struct iatt *preparent, struct iatt *postparent)
|
||||
{
|
||||
char *statstr = NULL;
|
||||
char *preparentstr = NULL;
|
||||
@ -770,7 +782,7 @@ trace_link_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
|
||||
"%"PRId64": (op_ret=%d, ino = %"PRIu64
|
||||
", *stbuf = {%s}, *prebuf = {%s}, "
|
||||
"*postbuf = {%s})",
|
||||
frame->root->unique, op_ret, buf->st_ino,
|
||||
frame->root->unique, op_ret, buf->ia_ino,
|
||||
statstr, preparentstr, postparentstr);
|
||||
|
||||
if (statstr)
|
||||
@ -827,7 +839,7 @@ trace_opendir_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
|
||||
int
|
||||
trace_rmdir_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
|
||||
int32_t op_ret, int32_t op_errno,
|
||||
struct stat *preparent, struct stat *postparent)
|
||||
struct iatt *preparent, struct iatt *postparent)
|
||||
{
|
||||
char *preparentstr = NULL;
|
||||
char *postparentstr = NULL;
|
||||
@ -864,7 +876,7 @@ trace_rmdir_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
|
||||
int
|
||||
trace_truncate_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
|
||||
int32_t op_ret, int32_t op_errno,
|
||||
struct stat *prebuf, struct stat *postbuf)
|
||||
struct iatt *prebuf, struct iatt *postbuf)
|
||||
{
|
||||
char *preopstr = NULL;
|
||||
char *postopstr = NULL;
|
||||
@ -1003,7 +1015,7 @@ trace_access_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
|
||||
int
|
||||
trace_ftruncate_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
|
||||
int32_t op_ret, int32_t op_errno,
|
||||
struct stat *prebuf, struct stat *postbuf)
|
||||
struct iatt *prebuf, struct iatt *postbuf)
|
||||
{
|
||||
char *prebufstr = NULL;
|
||||
char *postbufstr = NULL;
|
||||
@ -1039,7 +1051,7 @@ trace_ftruncate_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
|
||||
|
||||
int
|
||||
trace_fstat_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
|
||||
int32_t op_ret, int32_t op_errno, struct stat *buf)
|
||||
int32_t op_ret, int32_t op_errno, struct iatt *buf)
|
||||
{
|
||||
char atime_buf[256];
|
||||
char mtime_buf[256];
|
||||
@ -1048,22 +1060,23 @@ trace_fstat_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
|
||||
if (trace_fop_names[GF_FOP_FSTAT].enabled) {
|
||||
if (op_ret >= 0) {
|
||||
strftime (atime_buf, 256, "[%b %d %H:%M:%S]",
|
||||
localtime (&buf->st_atime));
|
||||
localtime ((time_t *)&buf->ia_atime));
|
||||
strftime (mtime_buf, 256, "[%b %d %H:%M:%S]",
|
||||
localtime (&buf->st_mtime));
|
||||
localtime ((time_t *)&buf->ia_mtime));
|
||||
strftime (ctime_buf, 256, "[%b %d %H:%M:%S]",
|
||||
localtime (&buf->st_ctime));
|
||||
localtime ((time_t *)&buf->ia_ctime));
|
||||
|
||||
gf_log (this->name, GF_LOG_NORMAL,
|
||||
"%"PRId64": (op_ret=%d, *buf {st_dev=%"GF_PRI_DEV", "
|
||||
"st_ino=%"PRIu64", st_mode=%o, st_nlink=%"GF_PRI_NLINK", "
|
||||
"st_uid=%d, st_gid=%d, st_rdev=%"GF_PRI_DEV", st_size=%"PRId64", "
|
||||
"st_blksize=%"GF_PRI_BLKSIZE", st_blocks=%"PRId64", st_atime=%s, "
|
||||
"st_mtime=%s, st_ctime=%s})",
|
||||
frame->root->unique, op_ret, buf->st_dev, buf->st_ino,
|
||||
buf->st_mode, buf->st_nlink, buf->st_uid, buf->st_gid,
|
||||
buf->st_rdev, buf->st_size, buf->st_blksize,
|
||||
buf->st_blocks, atime_buf, mtime_buf, ctime_buf);
|
||||
"%"PRId64": (op_ret=%d, *buf {ia_gen=%"GF_PRI_DEV", "
|
||||
"ia_ino=%"PRIu64", st_mode=%o, ia_nlink=%"GF_PRI_NLINK", "
|
||||
"ia_uid=%d, ia_gid=%d, ia_rdev=%"GF_PRI_DEV", ia_size=%"PRId64", "
|
||||
"ia_blksize=%"GF_PRI_BLKSIZE", ia_blocks=%"PRId64", ia_atime=%s, "
|
||||
"ia_mtime=%s, ia_ctime=%s})",
|
||||
frame->root->unique, op_ret, buf->ia_gen, buf->ia_ino,
|
||||
st_mode_from_ia (buf->ia_prot, buf->ia_type),
|
||||
buf->ia_nlink, buf->ia_uid, buf->ia_gid,
|
||||
buf->ia_rdev, buf->ia_size, buf->ia_blksize,
|
||||
buf->ia_blocks, atime_buf, mtime_buf, ctime_buf);
|
||||
} else {
|
||||
gf_log (this->name, GF_LOG_NORMAL,
|
||||
"%"PRId64": (op_ret=%d, op_errno=%d)",
|
||||
@ -1478,7 +1491,7 @@ trace_link (call_frame_t *frame, xlator_t *this, loc_t *oldloc, loc_t *newloc)
|
||||
|
||||
int
|
||||
trace_setattr (call_frame_t *frame, xlator_t *this, loc_t *loc,
|
||||
struct stat *stbuf, int32_t valid)
|
||||
struct iatt *stbuf, int32_t valid)
|
||||
{
|
||||
char actime_str[256] = {0,};
|
||||
char modtime_str[256] = {0,};
|
||||
@ -1488,7 +1501,8 @@ trace_setattr (call_frame_t *frame, xlator_t *this, loc_t *loc,
|
||||
gf_log (this->name, GF_LOG_NORMAL,
|
||||
"%"PRId64": (loc {path=%s, ino=%"PRIu64"},"
|
||||
" mode=%o)", frame->root->unique, loc->path,
|
||||
loc->inode->ino, stbuf->st_mode);
|
||||
loc->inode->ino,
|
||||
st_mode_from_ia (stbuf->ia_prot, stbuf->ia_type));
|
||||
}
|
||||
|
||||
if (valid & (GF_SET_ATTR_UID | GF_SET_ATTR_GID)) {
|
||||
@ -1496,18 +1510,18 @@ trace_setattr (call_frame_t *frame, xlator_t *this, loc_t *loc,
|
||||
"%"PRId64": (loc {path=%s, ino=%"PRIu64"},"
|
||||
" uid=%o, gid=%o)",
|
||||
frame->root->unique, loc->path, loc->inode->ino,
|
||||
stbuf->st_uid, stbuf->st_gid);
|
||||
stbuf->ia_uid, stbuf->ia_gid);
|
||||
}
|
||||
|
||||
if (valid & (GF_SET_ATTR_ATIME | GF_SET_ATTR_MTIME)) {
|
||||
strftime (actime_str, 256, "[%b %d %H:%M:%S]",
|
||||
localtime (&stbuf->st_atime));
|
||||
localtime ((time_t *)&stbuf->ia_atime));
|
||||
strftime (modtime_str, 256, "[%b %d %H:%M:%S]",
|
||||
localtime (&stbuf->st_mtime));
|
||||
localtime ((time_t *)&stbuf->ia_mtime));
|
||||
|
||||
gf_log (this->name, GF_LOG_NORMAL,
|
||||
"%"PRId64": (loc {path=%s, ino=%"PRIu64"}, "
|
||||
"*stbuf=%p {st_atime=%s, st_mtime=%s})",
|
||||
"*stbuf=%p {ia_atime=%s, ia_mtime=%s})",
|
||||
frame->root->unique, loc->path, loc->inode->ino,
|
||||
stbuf, actime_str, modtime_str);
|
||||
}
|
||||
@ -1524,7 +1538,7 @@ trace_setattr (call_frame_t *frame, xlator_t *this, loc_t *loc,
|
||||
|
||||
int
|
||||
trace_fsetattr (call_frame_t *frame, xlator_t *this, fd_t *fd,
|
||||
struct stat *stbuf, int32_t valid)
|
||||
struct iatt *stbuf, int32_t valid)
|
||||
{
|
||||
char actime_str[256] = {0,};
|
||||
char modtime_str[256] = {0,};
|
||||
@ -1534,25 +1548,25 @@ trace_fsetattr (call_frame_t *frame, xlator_t *this, fd_t *fd,
|
||||
gf_log (this->name, GF_LOG_NORMAL,
|
||||
"%"PRId64": (*fd=%p, mode=%o)",
|
||||
frame->root->unique, fd,
|
||||
stbuf->st_mode);
|
||||
st_mode_from_ia (stbuf->ia_prot, stbuf->ia_type));
|
||||
}
|
||||
|
||||
if (valid & (GF_SET_ATTR_UID | GF_SET_ATTR_GID)) {
|
||||
gf_log (this->name, GF_LOG_NORMAL,
|
||||
"%"PRId64": (*fd=%p, uid=%o, gid=%o)",
|
||||
frame->root->unique, fd,
|
||||
stbuf->st_uid, stbuf->st_gid);
|
||||
stbuf->ia_uid, stbuf->ia_gid);
|
||||
}
|
||||
|
||||
if (valid & (GF_SET_ATTR_ATIME | GF_SET_ATTR_MTIME)) {
|
||||
strftime (actime_str, 256, "[%b %d %H:%M:%S]",
|
||||
localtime (&stbuf->st_atime));
|
||||
localtime ((time_t *)&stbuf->ia_atime));
|
||||
strftime (modtime_str, 256, "[%b %d %H:%M:%S]",
|
||||
localtime (&stbuf->st_mtime));
|
||||
localtime ((time_t *)&stbuf->ia_mtime));
|
||||
|
||||
gf_log (this->name, GF_LOG_NORMAL,
|
||||
"%"PRId64": (*fd=%p"
|
||||
"*stbuf=%p {st_atime=%s, st_mtime=%s})",
|
||||
"*stbuf=%p {ia_atime=%s, ia_mtime=%s})",
|
||||
frame->root->unique, fd, stbuf, actime_str,
|
||||
modtime_str);
|
||||
}
|
||||
|
@ -67,7 +67,7 @@ rot13_readv_cbk (call_frame_t *frame,
|
||||
int32_t op_errno,
|
||||
struct iovec *vector,
|
||||
int32_t count,
|
||||
struct stat *stbuf,
|
||||
struct iatt *stbuf,
|
||||
struct iobref *iobref)
|
||||
{
|
||||
rot_13_private_t *priv = (rot_13_private_t *)this->private;
|
||||
@ -100,8 +100,8 @@ rot13_writev_cbk (call_frame_t *frame,
|
||||
xlator_t *this,
|
||||
int32_t op_ret,
|
||||
int32_t op_errno,
|
||||
struct stat *prebuf,
|
||||
struct stat *postbuf)
|
||||
struct iatt *prebuf,
|
||||
struct iatt *postbuf)
|
||||
{
|
||||
STACK_UNWIND (frame, op_ret, op_errno, prebuf, postbuf);
|
||||
return 0;
|
||||
|
@ -159,36 +159,36 @@ update_frame (call_frame_t *frame,
|
||||
|
||||
/* if 'root' don't change the uid/gid */
|
||||
static int32_t
|
||||
update_stat (struct stat *stbuf,
|
||||
update_stat (struct iatt *stbuf,
|
||||
struct gf_filter *filter)
|
||||
{
|
||||
int32_t idx = 0;
|
||||
for (idx = 0; idx < filter->translate_num_uid_entries; idx++) {
|
||||
if (stbuf->st_uid == GF_FILTER_ROOT_UID)
|
||||
if (stbuf->ia_uid == GF_FILTER_ROOT_UID)
|
||||
continue;
|
||||
if ((stbuf->st_uid >= filter->translate_input_uid[idx][0]) &&
|
||||
(stbuf->st_uid <= filter->translate_input_uid[idx][1])) {
|
||||
stbuf->st_uid = filter->translate_output_uid[idx];
|
||||
if ((stbuf->ia_uid >= filter->translate_input_uid[idx][0]) &&
|
||||
(stbuf->ia_uid <= filter->translate_input_uid[idx][1])) {
|
||||
stbuf->ia_uid = filter->translate_output_uid[idx];
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
for (idx = 0; idx < filter->translate_num_gid_entries; idx++) {
|
||||
if (stbuf->st_gid == GF_FILTER_ROOT_GID)
|
||||
if (stbuf->ia_gid == GF_FILTER_ROOT_GID)
|
||||
continue;
|
||||
if ((stbuf->st_gid >= filter->translate_input_gid[idx][0]) &&
|
||||
(stbuf->st_gid <= filter->translate_input_gid[idx][1])) {
|
||||
stbuf->st_gid = filter->translate_output_gid[idx];
|
||||
if ((stbuf->ia_gid >= filter->translate_input_gid[idx][0]) &&
|
||||
(stbuf->ia_gid <= filter->translate_input_gid[idx][1])) {
|
||||
stbuf->ia_gid = filter->translate_output_gid[idx];
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if (filter->fixed_uid_set) {
|
||||
stbuf->st_uid = filter->fixed_uid;
|
||||
stbuf->ia_uid = filter->fixed_uid;
|
||||
}
|
||||
|
||||
if (filter->fixed_gid_set) {
|
||||
stbuf->st_gid = filter->fixed_gid;
|
||||
stbuf->ia_gid = filter->fixed_gid;
|
||||
}
|
||||
|
||||
return 0;
|
||||
@ -201,14 +201,14 @@ filter_lookup_cbk (call_frame_t *frame,
|
||||
int32_t op_ret,
|
||||
int32_t op_errno,
|
||||
inode_t *inode,
|
||||
struct stat *buf,
|
||||
struct iatt *buf,
|
||||
dict_t *dict,
|
||||
struct stat *postparent)
|
||||
struct iatt *postparent)
|
||||
{
|
||||
int ret = 0;
|
||||
if (op_ret >= 0) {
|
||||
update_stat (buf, this->private);
|
||||
ret = inode_ctx_put (inode, this, (uint64_t)(long)buf->st_uid);
|
||||
ret = inode_ctx_put (inode, this, (uint64_t)(long)buf->ia_uid);
|
||||
if (ret == -1) {
|
||||
gf_log (this->name, GF_LOG_ERROR,
|
||||
"couldn't set context");
|
||||
@ -242,7 +242,7 @@ filter_stat_cbk (call_frame_t *frame,
|
||||
xlator_t *this,
|
||||
int32_t op_ret,
|
||||
int32_t op_errno,
|
||||
struct stat *buf)
|
||||
struct iatt *buf)
|
||||
{
|
||||
if (op_ret >= 0) {
|
||||
update_stat (buf, this->private);
|
||||
@ -270,8 +270,8 @@ filter_setattr_cbk (call_frame_t *frame,
|
||||
xlator_t *this,
|
||||
int32_t op_ret,
|
||||
int32_t op_errno,
|
||||
struct stat *preop,
|
||||
struct stat *postop)
|
||||
struct iatt *preop,
|
||||
struct iatt *postop)
|
||||
{
|
||||
if (op_ret >= 0) {
|
||||
update_stat (preop, this->private);
|
||||
@ -285,7 +285,7 @@ int32_t
|
||||
filter_setattr (call_frame_t *frame,
|
||||
xlator_t *this,
|
||||
loc_t *loc,
|
||||
struct stat *stbuf,
|
||||
struct iatt *stbuf,
|
||||
int32_t valid)
|
||||
{
|
||||
int32_t ret = 0;
|
||||
@ -326,8 +326,8 @@ filter_fsetattr_cbk (call_frame_t *frame,
|
||||
xlator_t *this,
|
||||
int32_t op_ret,
|
||||
int32_t op_errno,
|
||||
struct stat *preop,
|
||||
struct stat *postop)
|
||||
struct iatt *preop,
|
||||
struct iatt *postop)
|
||||
{
|
||||
if (op_ret >= 0) {
|
||||
update_stat (preop, this->private);
|
||||
@ -344,7 +344,7 @@ int32_t
|
||||
filter_fsetattr (call_frame_t *frame,
|
||||
xlator_t *this,
|
||||
fd_t *fd,
|
||||
struct stat *stbuf,
|
||||
struct iatt *stbuf,
|
||||
int32_t valid)
|
||||
{
|
||||
STACK_WIND (frame,
|
||||
@ -363,8 +363,8 @@ filter_truncate_cbk (call_frame_t *frame,
|
||||
xlator_t *this,
|
||||
int32_t op_ret,
|
||||
int32_t op_errno,
|
||||
struct stat *prebuf,
|
||||
struct stat *postbuf)
|
||||
struct iatt *prebuf,
|
||||
struct iatt *postbuf)
|
||||
{
|
||||
if (op_ret >= 0) {
|
||||
update_stat (prebuf, this->private);
|
||||
@ -415,8 +415,8 @@ filter_ftruncate_cbk (call_frame_t *frame,
|
||||
xlator_t *this,
|
||||
int32_t op_ret,
|
||||
int32_t op_errno,
|
||||
struct stat *prebuf,
|
||||
struct stat *postbuf)
|
||||
struct iatt *prebuf,
|
||||
struct iatt *postbuf)
|
||||
{
|
||||
if (op_ret >= 0) {
|
||||
update_stat (prebuf, this->private);
|
||||
@ -449,7 +449,7 @@ filter_readlink_cbk (call_frame_t *frame,
|
||||
int32_t op_ret,
|
||||
int32_t op_errno,
|
||||
const char *path,
|
||||
struct stat *sbuf)
|
||||
struct iatt *sbuf)
|
||||
{
|
||||
if (op_ret >= 0)
|
||||
update_stat (sbuf, this->private);
|
||||
@ -494,15 +494,15 @@ filter_mknod_cbk (call_frame_t *frame,
|
||||
int32_t op_ret,
|
||||
int32_t op_errno,
|
||||
inode_t *inode,
|
||||
struct stat *buf,
|
||||
struct stat *preparent,
|
||||
struct stat *postparent)
|
||||
struct iatt *buf,
|
||||
struct iatt *preparent,
|
||||
struct iatt *postparent)
|
||||
{
|
||||
int ret = 0;
|
||||
|
||||
if (op_ret >= 0) {
|
||||
update_stat (buf, this->private);
|
||||
ret = inode_ctx_put (inode, this, (uint64_t)(long)buf->st_uid);
|
||||
ret = inode_ctx_put (inode, this, (uint64_t)(long)buf->ia_uid);
|
||||
if (ret == -1) {
|
||||
gf_log (this->name, GF_LOG_ERROR,
|
||||
"couldn't set context");
|
||||
@ -560,14 +560,14 @@ filter_mkdir_cbk (call_frame_t *frame,
|
||||
int32_t op_ret,
|
||||
int32_t op_errno,
|
||||
inode_t *inode,
|
||||
struct stat *buf,
|
||||
struct stat *preparent,
|
||||
struct stat *postparent)
|
||||
struct iatt *buf,
|
||||
struct iatt *preparent,
|
||||
struct iatt *postparent)
|
||||
{
|
||||
int ret = 0;
|
||||
if (op_ret >= 0) {
|
||||
update_stat (buf, this->private);
|
||||
ret = inode_ctx_put (inode, this, (uint64_t)(long)buf->st_uid);
|
||||
ret = inode_ctx_put (inode, this, (uint64_t)(long)buf->ia_uid);
|
||||
if (ret == -1) {
|
||||
gf_log (this->name, GF_LOG_ERROR,
|
||||
"couldn't set context");
|
||||
@ -623,8 +623,8 @@ filter_unlink_cbk (call_frame_t *frame,
|
||||
xlator_t *this,
|
||||
int32_t op_ret,
|
||||
int32_t op_errno,
|
||||
struct stat *preparent,
|
||||
struct stat *postparent)
|
||||
struct iatt *preparent,
|
||||
struct iatt *postparent)
|
||||
{
|
||||
if (op_ret >= 0) {
|
||||
update_stat (preparent, this->private);
|
||||
@ -679,8 +679,8 @@ filter_rmdir_cbk (call_frame_t *frame,
|
||||
xlator_t *this,
|
||||
int32_t op_ret,
|
||||
int32_t op_errno,
|
||||
struct stat *preparent,
|
||||
struct stat *postparent)
|
||||
struct iatt *preparent,
|
||||
struct iatt *postparent)
|
||||
{
|
||||
if (op_ret >= 0) {
|
||||
update_stat (preparent, this->private);
|
||||
@ -736,14 +736,14 @@ filter_symlink_cbk (call_frame_t *frame,
|
||||
int32_t op_ret,
|
||||
int32_t op_errno,
|
||||
inode_t *inode,
|
||||
struct stat *buf,
|
||||
struct stat *preparent,
|
||||
struct stat *postparent)
|
||||
struct iatt *buf,
|
||||
struct iatt *preparent,
|
||||
struct iatt *postparent)
|
||||
{
|
||||
int ret = 0;
|
||||
if (op_ret >= 0) {
|
||||
update_stat (buf, this->private);
|
||||
ret = inode_ctx_put (inode, this, (uint64_t)(long)buf->st_uid);
|
||||
ret = inode_ctx_put (inode, this, (uint64_t)(long)buf->ia_uid);
|
||||
if (ret == -1) {
|
||||
gf_log (this->name, GF_LOG_ERROR,
|
||||
"couldn't set context");
|
||||
@ -800,11 +800,11 @@ filter_rename_cbk (call_frame_t *frame,
|
||||
xlator_t *this,
|
||||
int32_t op_ret,
|
||||
int32_t op_errno,
|
||||
struct stat *buf,
|
||||
struct stat *preoldparent,
|
||||
struct stat *postoldparent,
|
||||
struct stat *prenewparent,
|
||||
struct stat *postnewparent)
|
||||
struct iatt *buf,
|
||||
struct iatt *preoldparent,
|
||||
struct iatt *postoldparent,
|
||||
struct iatt *prenewparent,
|
||||
struct iatt *postnewparent)
|
||||
{
|
||||
if (op_ret >= 0) {
|
||||
update_stat (buf, this->private);
|
||||
@ -875,14 +875,14 @@ filter_link_cbk (call_frame_t *frame,
|
||||
int32_t op_ret,
|
||||
int32_t op_errno,
|
||||
inode_t *inode,
|
||||
struct stat *buf,
|
||||
struct stat *preparent,
|
||||
struct stat *postparent)
|
||||
struct iatt *buf,
|
||||
struct iatt *preparent,
|
||||
struct iatt *postparent)
|
||||
{
|
||||
int ret = 0;
|
||||
if (op_ret >= 0) {
|
||||
update_stat (buf, this->private);
|
||||
ret = inode_ctx_put (inode, this, (uint64_t)(long)buf->st_uid);
|
||||
ret = inode_ctx_put (inode, this, (uint64_t)(long)buf->ia_uid);
|
||||
if (ret == -1) {
|
||||
gf_log (this->name, GF_LOG_ERROR,
|
||||
"couldn't set context");
|
||||
@ -929,14 +929,14 @@ filter_create_cbk (call_frame_t *frame,
|
||||
int32_t op_errno,
|
||||
fd_t *fd,
|
||||
inode_t *inode,
|
||||
struct stat *buf,
|
||||
struct stat *preparent,
|
||||
struct stat *postparent)
|
||||
struct iatt *buf,
|
||||
struct iatt *preparent,
|
||||
struct iatt *postparent)
|
||||
{
|
||||
int ret = 0;
|
||||
if (op_ret >= 0) {
|
||||
update_stat (buf, this->private);
|
||||
ret = inode_ctx_put (inode, this, (uint64_t)(long)buf->st_uid);
|
||||
ret = inode_ctx_put (inode, this, (uint64_t)(long)buf->ia_uid);
|
||||
if (ret == -1) {
|
||||
gf_log (this->name, GF_LOG_ERROR,
|
||||
"couldn't set context");
|
||||
@ -1053,7 +1053,7 @@ filter_readv_cbk (call_frame_t *frame,
|
||||
int32_t op_errno,
|
||||
struct iovec *vector,
|
||||
int32_t count,
|
||||
struct stat *stbuf,
|
||||
struct iatt *stbuf,
|
||||
struct iobref *iobref)
|
||||
{
|
||||
if (op_ret >= 0) {
|
||||
@ -1093,8 +1093,8 @@ filter_writev_cbk (call_frame_t *frame,
|
||||
xlator_t *this,
|
||||
int32_t op_ret,
|
||||
int32_t op_errno,
|
||||
struct stat *prebuf,
|
||||
struct stat *postbuf)
|
||||
struct iatt *prebuf,
|
||||
struct iatt *postbuf)
|
||||
{
|
||||
if (op_ret >= 0) {
|
||||
update_stat (prebuf, this->private);
|
||||
@ -1145,7 +1145,7 @@ filter_fstat_cbk (call_frame_t *frame,
|
||||
xlator_t *this,
|
||||
int32_t op_ret,
|
||||
int32_t op_errno,
|
||||
struct stat *buf)
|
||||
struct iatt *buf)
|
||||
{
|
||||
if (op_ret >= 0) {
|
||||
update_stat (buf, this->private);
|
||||
|
@ -410,7 +410,7 @@ pl_inode_get (xlator_t *this, inode_t *inode)
|
||||
{
|
||||
uint64_t tmp_pl_inode = 0;
|
||||
pl_inode_t *pl_inode = NULL;
|
||||
mode_t st_mode = 0;
|
||||
// mode_t st_mode = 0;
|
||||
int ret = 0;
|
||||
|
||||
ret = inode_ctx_get (inode, this,&tmp_pl_inode);
|
||||
@ -428,10 +428,11 @@ pl_inode_get (xlator_t *this, inode_t *inode)
|
||||
gf_log (this->name, GF_LOG_TRACE,
|
||||
"Allocating new pl inode");
|
||||
|
||||
/*
|
||||
st_mode = inode->st_mode;
|
||||
if ((st_mode & S_ISGID) && !(st_mode & S_IXGRP))
|
||||
pl_inode->mandatory = 1;
|
||||
|
||||
*/
|
||||
|
||||
pthread_mutex_init (&pl_inode->mutex, NULL);
|
||||
|
||||
|
@ -58,8 +58,8 @@ struct _truncate_ops {
|
||||
|
||||
int
|
||||
pl_truncate_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
|
||||
int32_t op_ret, int32_t op_errno, struct stat *prebuf,
|
||||
struct stat *postbuf)
|
||||
int32_t op_ret, int32_t op_errno, struct iatt *prebuf,
|
||||
struct iatt *postbuf)
|
||||
{
|
||||
struct _truncate_ops *local = NULL;
|
||||
|
||||
@ -108,7 +108,7 @@ truncate_allowed (pl_inode_t *pl_inode,
|
||||
|
||||
static int
|
||||
truncate_stat_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
|
||||
int32_t op_ret, int32_t op_errno, struct stat *buf)
|
||||
int32_t op_ret, int32_t op_errno, struct iatt *buf)
|
||||
{
|
||||
posix_locks_private_t *priv = NULL;
|
||||
struct _truncate_ops *local = NULL;
|
||||
@ -442,8 +442,8 @@ pl_open (call_frame_t *frame, xlator_t *this, loc_t *loc, int32_t flags,
|
||||
int
|
||||
pl_create_cbk (call_frame_t *frame, void *cookie,
|
||||
xlator_t *this, int32_t op_ret, int32_t op_errno,
|
||||
fd_t *fd, inode_t *inode, struct stat *buf,
|
||||
struct stat *preparent, struct stat *postparent)
|
||||
fd_t *fd, inode_t *inode, struct iatt *buf,
|
||||
struct iatt *preparent, struct iatt *postparent)
|
||||
{
|
||||
int dummy = 1;
|
||||
int ret = -1;
|
||||
@ -478,7 +478,7 @@ pl_create (call_frame_t *frame, xlator_t *this,
|
||||
int
|
||||
pl_readv_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
|
||||
int32_t op_ret, int32_t op_errno,
|
||||
struct iovec *vector, int32_t count, struct stat *stbuf,
|
||||
struct iovec *vector, int32_t count, struct iatt *stbuf,
|
||||
struct iobref *iobref)
|
||||
{
|
||||
STACK_UNWIND_STRICT (readv, frame, op_ret, op_errno,
|
||||
@ -489,8 +489,8 @@ pl_readv_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
|
||||
|
||||
int
|
||||
pl_writev_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
|
||||
int32_t op_ret, int32_t op_errno, struct stat *prebuf,
|
||||
struct stat *postbuf)
|
||||
int32_t op_ret, int32_t op_errno, struct iatt *prebuf,
|
||||
struct iatt *postbuf)
|
||||
{
|
||||
STACK_UNWIND_STRICT (writev, frame, op_ret, op_errno, prebuf, postbuf);
|
||||
|
||||
@ -1090,9 +1090,9 @@ pl_lookup_cbk (call_frame_t *frame,
|
||||
int32_t op_ret,
|
||||
int32_t op_errno,
|
||||
inode_t *inode,
|
||||
struct stat *buf,
|
||||
struct iatt *buf,
|
||||
dict_t *dict,
|
||||
struct stat *postparent)
|
||||
struct iatt *postparent)
|
||||
{
|
||||
pl_local_t *local = NULL;
|
||||
|
||||
|
@ -134,9 +134,9 @@ path_create_cbk (call_frame_t *frame,
|
||||
int32_t op_errno,
|
||||
fd_t *fd,
|
||||
inode_t *inode,
|
||||
struct stat *buf,
|
||||
struct stat *preparent,
|
||||
struct stat *postparent)
|
||||
struct iatt *buf,
|
||||
struct iatt *preparent,
|
||||
struct iatt *postparent)
|
||||
{
|
||||
STACK_UNWIND (frame, op_ret, op_errno, fd, inode, buf);
|
||||
return 0;
|
||||
@ -187,7 +187,7 @@ path_readlink_cbk (call_frame_t *frame,
|
||||
int32_t op_ret,
|
||||
int32_t op_errno,
|
||||
const char *buf,
|
||||
struct stat *sbuf)
|
||||
struct iatt *sbuf)
|
||||
{
|
||||
STACK_UNWIND (frame, op_ret, op_errno, buf, sbuf);
|
||||
return 0;
|
||||
@ -200,9 +200,9 @@ path_lookup_cbk (call_frame_t *frame,
|
||||
int32_t op_ret,
|
||||
int32_t op_errno,
|
||||
inode_t *inode,
|
||||
struct stat *buf,
|
||||
struct iatt *buf,
|
||||
dict_t *xattr,
|
||||
struct stat *postparent)
|
||||
struct iatt *postparent)
|
||||
{
|
||||
STACK_UNWIND (frame, op_ret, op_errno, inode, buf, xattr);
|
||||
return 0;
|
||||
@ -216,9 +216,9 @@ path_symlink_cbk (call_frame_t *frame,
|
||||
int32_t op_ret,
|
||||
int32_t op_errno,
|
||||
inode_t *inode,
|
||||
struct stat *buf,
|
||||
struct stat *preparent,
|
||||
struct stat *postparent)
|
||||
struct iatt *buf,
|
||||
struct iatt *preparent,
|
||||
struct iatt *postparent)
|
||||
{
|
||||
STACK_UNWIND (frame, op_ret, op_errno, inode, buf);
|
||||
return 0;
|
||||
@ -231,9 +231,9 @@ path_mknod_cbk (call_frame_t *frame,
|
||||
int32_t op_ret,
|
||||
int32_t op_errno,
|
||||
inode_t *inode,
|
||||
struct stat *buf,
|
||||
struct stat *preparent,
|
||||
struct stat *postparent)
|
||||
struct iatt *buf,
|
||||
struct iatt *preparent,
|
||||
struct iatt *postparent)
|
||||
{
|
||||
STACK_UNWIND (frame, op_ret, op_errno, inode, buf);
|
||||
return 0;
|
||||
@ -247,9 +247,9 @@ path_mkdir_cbk (call_frame_t *frame,
|
||||
int32_t op_ret,
|
||||
int32_t op_errno,
|
||||
inode_t *inode,
|
||||
struct stat *buf,
|
||||
struct stat *preparent,
|
||||
struct stat *postparent)
|
||||
struct iatt *buf,
|
||||
struct iatt *preparent,
|
||||
struct iatt *postparent)
|
||||
{
|
||||
STACK_UNWIND (frame, op_ret, op_errno, inode, buf);
|
||||
return 0;
|
||||
@ -262,9 +262,9 @@ path_link_cbk (call_frame_t *frame,
|
||||
int32_t op_ret,
|
||||
int32_t op_errno,
|
||||
inode_t *inode,
|
||||
struct stat *buf,
|
||||
struct stat *preparent,
|
||||
struct stat *postparent)
|
||||
struct iatt *buf,
|
||||
struct iatt *preparent,
|
||||
struct iatt *postparent)
|
||||
{
|
||||
STACK_UNWIND (frame, op_ret, op_errno, inode, buf);
|
||||
return 0;
|
||||
@ -289,11 +289,11 @@ path_rename_buf_cbk (call_frame_t *frame,
|
||||
xlator_t *this,
|
||||
int32_t op_ret,
|
||||
int32_t op_errno,
|
||||
struct stat *buf,
|
||||
struct stat *preoldparent,
|
||||
struct stat *postoldparent,
|
||||
struct stat *prenewparent,
|
||||
struct stat *postnewparent)
|
||||
struct iatt *buf,
|
||||
struct iatt *preoldparent,
|
||||
struct iatt *postoldparent,
|
||||
struct iatt *prenewparent,
|
||||
struct iatt *postnewparent)
|
||||
{
|
||||
STACK_UNWIND (frame, op_ret, op_errno, buf);
|
||||
return 0;
|
||||
@ -307,7 +307,7 @@ path_common_buf_cbk (call_frame_t *frame,
|
||||
xlator_t *this,
|
||||
int32_t op_ret,
|
||||
int32_t op_errno,
|
||||
struct stat *buf)
|
||||
struct iatt *buf)
|
||||
{
|
||||
STACK_UNWIND (frame, op_ret, op_errno, buf);
|
||||
return 0;
|
||||
@ -327,8 +327,8 @@ path_common_dict_cbk (call_frame_t *frame,
|
||||
|
||||
int32_t
|
||||
path_common_remove_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
|
||||
int32_t op_ret, int32_t op_errno,struct stat *preparent,
|
||||
struct stat *postparent)
|
||||
int32_t op_ret, int32_t op_errno,struct iatt *preparent,
|
||||
struct iatt *postparent)
|
||||
{
|
||||
STACK_UNWIND (frame, op_ret, op_errno);
|
||||
return 0;
|
||||
@ -336,8 +336,8 @@ path_common_remove_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
|
||||
|
||||
int32_t
|
||||
path_truncate_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
|
||||
int32_t op_ret, int32_t op_errno,struct stat *prebuf,
|
||||
struct stat *postbuf)
|
||||
int32_t op_ret, int32_t op_errno,struct iatt *prebuf,
|
||||
struct iatt *postbuf)
|
||||
{
|
||||
STACK_UNWIND (frame, op_ret, op_errno, prebuf, postbuf);
|
||||
return 0;
|
||||
@ -672,8 +672,8 @@ path_setattr_cbk (call_frame_t *frame,
|
||||
xlator_t *this,
|
||||
int32_t op_ret,
|
||||
int32_t op_errno,
|
||||
struct stat *preop,
|
||||
struct stat *postop)
|
||||
struct iatt *preop,
|
||||
struct iatt *postop)
|
||||
{
|
||||
STACK_UNWIND (frame, op_ret, op_errno, preop, postop);
|
||||
return 0;
|
||||
@ -683,7 +683,7 @@ int32_t
|
||||
path_setattr (call_frame_t *frame,
|
||||
xlator_t *this,
|
||||
loc_t *loc,
|
||||
struct stat *stbuf,
|
||||
struct iatt *stbuf,
|
||||
int32_t valid)
|
||||
{
|
||||
char *loc_path = (char *)loc->path;
|
||||
|
@ -33,7 +33,7 @@
|
||||
#endif
|
||||
|
||||
struct quota_local {
|
||||
struct stat stbuf;
|
||||
struct iatt stbuf;
|
||||
inode_t *inode;
|
||||
char *path;
|
||||
fd_t *fd;
|
||||
@ -153,8 +153,8 @@ gf_quota_check_free_disk (xlator_t *this)
|
||||
|
||||
int
|
||||
quota_truncate_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
|
||||
int32_t op_ret, int32_t op_errno, struct stat *prebuf,
|
||||
struct stat *postbuf)
|
||||
int32_t op_ret, int32_t op_errno, struct iatt *prebuf,
|
||||
struct iatt *postbuf)
|
||||
{
|
||||
struct quota_priv *priv = this->private;
|
||||
struct quota_local *local = NULL;
|
||||
@ -162,8 +162,8 @@ quota_truncate_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
|
||||
local = frame->local;
|
||||
|
||||
if ((op_ret >= 0) && priv->disk_usage_limit) {
|
||||
gf_quota_usage_subtract (this, (local->stbuf.st_blocks -
|
||||
postbuf->st_blocks) * 512);
|
||||
gf_quota_usage_subtract (this, (local->stbuf.ia_blocks -
|
||||
postbuf->ia_blocks) * 512);
|
||||
loc_wipe (&local->loc);
|
||||
}
|
||||
|
||||
@ -175,7 +175,7 @@ quota_truncate_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
|
||||
|
||||
int
|
||||
quota_truncate_stat_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
|
||||
int32_t op_ret, int32_t op_errno, struct stat *buf)
|
||||
int32_t op_ret, int32_t op_errno, struct iatt *buf)
|
||||
{
|
||||
struct quota_local *local = NULL;
|
||||
struct quota_priv *priv = NULL;
|
||||
@ -226,8 +226,8 @@ quota_truncate (call_frame_t *frame, xlator_t *this,
|
||||
|
||||
int
|
||||
quota_ftruncate_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
|
||||
int32_t op_ret, int32_t op_errno, struct stat *prebuf,
|
||||
struct stat *postbuf)
|
||||
int32_t op_ret, int32_t op_errno, struct iatt *prebuf,
|
||||
struct iatt *postbuf)
|
||||
{
|
||||
struct quota_priv *priv = NULL;
|
||||
struct quota_local *local = NULL;
|
||||
@ -236,8 +236,8 @@ quota_ftruncate_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
|
||||
priv = this->private;
|
||||
|
||||
if ((op_ret >= 0) && priv->disk_usage_limit) {
|
||||
gf_quota_usage_subtract (this, (local->stbuf.st_blocks -
|
||||
postbuf->st_blocks) * 512);
|
||||
gf_quota_usage_subtract (this, (local->stbuf.ia_blocks -
|
||||
postbuf->ia_blocks) * 512);
|
||||
fd_unref (local->fd);
|
||||
}
|
||||
|
||||
@ -249,7 +249,7 @@ quota_ftruncate_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
|
||||
|
||||
int
|
||||
quota_ftruncate_fstat_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
|
||||
int32_t op_ret, int32_t op_errno, struct stat *buf)
|
||||
int32_t op_ret, int32_t op_errno, struct iatt *buf)
|
||||
{
|
||||
struct quota_local *local = NULL;
|
||||
struct quota_priv *priv = NULL;
|
||||
@ -302,15 +302,15 @@ quota_ftruncate (call_frame_t *frame, xlator_t *this,
|
||||
int
|
||||
quota_mknod_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
|
||||
int32_t op_ret, int32_t op_errno,
|
||||
inode_t *inode, struct stat *buf, struct stat *preparent,
|
||||
struct stat *postparent)
|
||||
inode_t *inode, struct iatt *buf, struct iatt *preparent,
|
||||
struct iatt *postparent)
|
||||
{
|
||||
struct quota_priv *priv = NULL;
|
||||
|
||||
priv = this->private;
|
||||
|
||||
if ((op_ret >= 0) && priv->disk_usage_limit) {
|
||||
gf_quota_usage_add (this, buf->st_blocks * 512);
|
||||
gf_quota_usage_add (this, buf->ia_blocks * 512);
|
||||
}
|
||||
|
||||
STACK_UNWIND_STRICT (mknod, frame, op_ret, op_errno, inode, buf,
|
||||
@ -356,15 +356,15 @@ quota_mknod (call_frame_t *frame, xlator_t *this,
|
||||
int
|
||||
quota_mkdir_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
|
||||
int32_t op_ret, int32_t op_errno, inode_t *inode,
|
||||
struct stat *buf, struct stat *preparent,
|
||||
struct stat *postparent)
|
||||
struct iatt *buf, struct iatt *preparent,
|
||||
struct iatt *postparent)
|
||||
{
|
||||
struct quota_priv *priv = NULL;
|
||||
|
||||
priv = this->private;
|
||||
|
||||
if ((op_ret >= 0) && priv->disk_usage_limit) {
|
||||
gf_quota_usage_subtract (this, buf->st_blocks * 512);
|
||||
gf_quota_usage_subtract (this, buf->ia_blocks * 512);
|
||||
}
|
||||
|
||||
STACK_UNWIND_STRICT (mkdir, frame, op_ret, op_errno, inode, buf,
|
||||
@ -410,8 +410,8 @@ quota_mkdir (call_frame_t *frame, xlator_t *this, loc_t *loc, mode_t mode)
|
||||
|
||||
int
|
||||
quota_unlink_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
|
||||
int32_t op_ret, int32_t op_errno, struct stat *preparent,
|
||||
struct stat *postparent)
|
||||
int32_t op_ret, int32_t op_errno, struct iatt *preparent,
|
||||
struct iatt *postparent)
|
||||
{
|
||||
struct quota_local *local = NULL;
|
||||
|
||||
@ -420,7 +420,7 @@ quota_unlink_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
|
||||
if (local) {
|
||||
if (op_ret >= 0) {
|
||||
gf_quota_usage_subtract (this,
|
||||
local->stbuf.st_blocks * 512);
|
||||
local->stbuf.ia_blocks * 512);
|
||||
}
|
||||
loc_wipe (&local->loc);
|
||||
}
|
||||
@ -432,14 +432,14 @@ quota_unlink_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
|
||||
|
||||
int
|
||||
quota_unlink_stat_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
|
||||
int32_t op_ret, int32_t op_errno, struct stat *buf)
|
||||
int32_t op_ret, int32_t op_errno, struct iatt *buf)
|
||||
{
|
||||
struct quota_local *local = NULL;
|
||||
|
||||
local = frame->local;
|
||||
|
||||
if (op_ret >= 0) {
|
||||
if (buf->st_nlink == 1) {
|
||||
if (buf->ia_nlink == 1) {
|
||||
local->stbuf = *buf;
|
||||
}
|
||||
}
|
||||
@ -485,8 +485,8 @@ quota_unlink (call_frame_t *frame, xlator_t *this, loc_t *loc)
|
||||
|
||||
int
|
||||
quota_rmdir_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
|
||||
int32_t op_ret, int32_t op_errno, struct stat *preparent,
|
||||
struct stat *postparent)
|
||||
int32_t op_ret, int32_t op_errno, struct iatt *preparent,
|
||||
struct iatt *postparent)
|
||||
{
|
||||
struct quota_local *local = NULL;
|
||||
|
||||
@ -494,7 +494,7 @@ quota_rmdir_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
|
||||
|
||||
if (local) {
|
||||
if (op_ret >= 0) {
|
||||
gf_quota_usage_subtract (this, local->stbuf.st_blocks * 512);
|
||||
gf_quota_usage_subtract (this, local->stbuf.ia_blocks * 512);
|
||||
}
|
||||
loc_wipe (&local->loc);
|
||||
}
|
||||
@ -506,7 +506,7 @@ quota_rmdir_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
|
||||
|
||||
int
|
||||
quota_rmdir_stat_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
|
||||
int32_t op_ret, int32_t op_errno, struct stat *buf)
|
||||
int32_t op_ret, int32_t op_errno, struct iatt *buf)
|
||||
{
|
||||
struct quota_local *local = NULL;
|
||||
|
||||
@ -556,15 +556,15 @@ quota_rmdir (call_frame_t *frame, xlator_t *this, loc_t *loc)
|
||||
int
|
||||
quota_symlink_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
|
||||
int32_t op_ret, int32_t op_errno, inode_t *inode,
|
||||
struct stat *buf, struct stat *preparent,
|
||||
struct stat *postparent)
|
||||
struct iatt *buf, struct iatt *preparent,
|
||||
struct iatt *postparent)
|
||||
{
|
||||
struct quota_priv *priv = NULL;
|
||||
|
||||
priv = this->private;
|
||||
|
||||
if ((op_ret >= 0) && priv->disk_usage_limit) {
|
||||
gf_quota_usage_add (this, buf->st_blocks * 512);
|
||||
gf_quota_usage_add (this, buf->ia_blocks * 512);
|
||||
}
|
||||
|
||||
STACK_UNWIND_STRICT (symlink, frame, op_ret, op_errno, inode, buf,
|
||||
@ -610,14 +610,14 @@ quota_symlink (call_frame_t *frame, xlator_t *this,
|
||||
int
|
||||
quota_create_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
|
||||
int32_t op_ret, int32_t op_errno,
|
||||
fd_t *fd, inode_t *inode, struct stat *buf,
|
||||
struct stat *preparent, struct stat *postparent)
|
||||
fd_t *fd, inode_t *inode, struct iatt *buf,
|
||||
struct iatt *preparent, struct iatt *postparent)
|
||||
{
|
||||
struct quota_priv *priv = this->private;
|
||||
int ret = 0;
|
||||
|
||||
if ((op_ret >= 0) && priv->disk_usage_limit) {
|
||||
gf_quota_usage_add (this, buf->st_blocks * 512);
|
||||
gf_quota_usage_add (this, buf->ia_blocks * 512);
|
||||
|
||||
ret = fd_ctx_set (fd, this, 1);
|
||||
}
|
||||
@ -690,8 +690,8 @@ quota_open (call_frame_t *frame, xlator_t *this, loc_t *loc, int32_t flags,
|
||||
|
||||
int
|
||||
quota_writev_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
|
||||
int32_t op_ret, int32_t op_errno, struct stat *prebuf,
|
||||
struct stat *postbuf)
|
||||
int32_t op_ret, int32_t op_errno, struct iatt *prebuf,
|
||||
struct iatt *postbuf)
|
||||
{
|
||||
struct quota_priv *priv = NULL;
|
||||
struct quota_local *local = NULL;
|
||||
@ -702,8 +702,8 @@ quota_writev_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
|
||||
|
||||
if (priv->disk_usage_limit) {
|
||||
if (op_ret >= 0) {
|
||||
gf_quota_usage_add (this, (postbuf->st_blocks -
|
||||
prebuf->st_blocks) * 512);
|
||||
gf_quota_usage_add (this, (postbuf->ia_blocks -
|
||||
prebuf->ia_blocks) * 512);
|
||||
}
|
||||
fd_unref (local->fd);
|
||||
iobref_unref (local->iobref);
|
||||
@ -716,7 +716,7 @@ quota_writev_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
|
||||
|
||||
int
|
||||
quota_writev_fstat_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
|
||||
int32_t op_ret, int32_t op_errno, struct stat *buf)
|
||||
int32_t op_ret, int32_t op_errno, struct iatt *buf)
|
||||
{
|
||||
struct quota_local *local = NULL;
|
||||
struct quota_priv *priv = NULL;
|
||||
@ -730,7 +730,7 @@ quota_writev_fstat_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
|
||||
if (priv->current_disk_usage > priv->disk_usage_limit) {
|
||||
iovlen = iov_length (local->vector, local->count);
|
||||
|
||||
if (iovlen > (buf->st_blksize - (buf->st_size % buf->st_blksize))) {
|
||||
if (iovlen > (buf->ia_blksize - (buf->ia_size % buf->ia_blksize))) {
|
||||
fd_unref (local->fd);
|
||||
iobref_unref (local->iobref);
|
||||
STACK_UNWIND_STRICT (writev, frame, -1, ENOSPC,
|
||||
@ -978,9 +978,9 @@ quota_lookup_cbk (call_frame_t *frame,
|
||||
int32_t op_ret,
|
||||
int32_t op_errno,
|
||||
inode_t *inode,
|
||||
struct stat *buf,
|
||||
struct iatt *buf,
|
||||
dict_t *dict,
|
||||
struct stat *postparent)
|
||||
struct iatt *postparent)
|
||||
{
|
||||
STACK_UNWIND (frame,
|
||||
op_ret,
|
||||
|
@ -29,24 +29,24 @@ int32_t
|
||||
trash_ftruncate_readv_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
|
||||
int32_t op_ret, int32_t op_errno,
|
||||
struct iovec *vector, int32_t count,
|
||||
struct stat *stbuf, struct iobref *iobuf);
|
||||
struct iatt *stbuf, struct iobref *iobuf);
|
||||
|
||||
int32_t
|
||||
trash_truncate_writev_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
|
||||
int32_t op_ret, int32_t op_errno,
|
||||
struct stat *prebuf, struct stat *postbuf);
|
||||
struct iatt *prebuf, struct iatt *postbuf);
|
||||
|
||||
int32_t
|
||||
trash_truncate_mkdir_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
|
||||
int32_t op_ret, int32_t op_errno, inode_t *inode,
|
||||
struct stat *stbuf, struct stat *preparent,
|
||||
struct stat *postparent);
|
||||
struct iatt *stbuf, struct iatt *preparent,
|
||||
struct iatt *postparent);
|
||||
|
||||
int32_t
|
||||
trash_unlink_rename_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
|
||||
int32_t op_ret, int32_t op_errno, struct stat *buf,
|
||||
struct stat *preoldparent, struct stat *postoldparent,
|
||||
struct stat *prenewparent, struct stat *postnewparent);
|
||||
int32_t op_ret, int32_t op_errno, struct iatt *buf,
|
||||
struct iatt *preoldparent, struct iatt *postoldparent,
|
||||
struct iatt *prenewparent, struct iatt *postnewparent);
|
||||
|
||||
void
|
||||
trash_local_wipe (trash_local_t *local)
|
||||
@ -71,7 +71,7 @@ out:
|
||||
int32_t
|
||||
trash_common_unwind_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
|
||||
int32_t op_ret, int32_t op_errno,
|
||||
struct stat *preparent, struct stat *postparent)
|
||||
struct iatt *preparent, struct iatt *postparent)
|
||||
{
|
||||
TRASH_STACK_UNWIND (frame, op_ret, op_errno, preparent, postparent);
|
||||
return 0;
|
||||
@ -80,8 +80,8 @@ trash_common_unwind_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
|
||||
int32_t
|
||||
trash_unlink_mkdir_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
|
||||
int32_t op_ret, int32_t op_errno, inode_t *inode,
|
||||
struct stat *stbuf, struct stat *preparent,
|
||||
struct stat *postparent)
|
||||
struct iatt *stbuf, struct iatt *preparent,
|
||||
struct iatt *postparent)
|
||||
{
|
||||
trash_local_t *local = NULL;
|
||||
char *tmp_str = NULL;
|
||||
@ -175,14 +175,14 @@ out:
|
||||
int32_t
|
||||
trash_rename_mkdir_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
|
||||
int32_t op_ret, int32_t op_errno, inode_t *inode,
|
||||
struct stat *stbuf, struct stat *preparent,
|
||||
struct stat *postparent);
|
||||
struct iatt *stbuf, struct iatt *preparent,
|
||||
struct iatt *postparent);
|
||||
|
||||
int32_t
|
||||
trash_unlink_rename_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
|
||||
int32_t op_ret, int32_t op_errno, struct stat *buf,
|
||||
struct stat *preoldparent, struct stat *postoldparent,
|
||||
struct stat *prenewparent, struct stat *postnewparent)
|
||||
int32_t op_ret, int32_t op_errno, struct iatt *buf,
|
||||
struct iatt *preoldparent, struct iatt *postoldparent,
|
||||
struct iatt *prenewparent, struct iatt *postnewparent)
|
||||
{
|
||||
trash_local_t *local = NULL;
|
||||
trash_private_t *priv = NULL;
|
||||
@ -254,7 +254,7 @@ trash_unlink_rename_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
|
||||
int32_t
|
||||
trash_common_unwind_buf_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
|
||||
int32_t op_ret, int32_t op_errno,
|
||||
struct stat *prebuf, struct stat *postbuf)
|
||||
struct iatt *prebuf, struct iatt *postbuf)
|
||||
{
|
||||
TRASH_STACK_UNWIND (frame, op_ret, op_errno, prebuf, postbuf);
|
||||
return 0;
|
||||
@ -262,9 +262,9 @@ trash_common_unwind_buf_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
|
||||
|
||||
int
|
||||
trash_common_rename_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
|
||||
int32_t op_ret, int32_t op_errno, struct stat *stbuf,
|
||||
struct stat *preoldparent, struct stat *postoldparent,
|
||||
struct stat *prenewparent, struct stat *postnewparent)
|
||||
int32_t op_ret, int32_t op_errno, struct iatt *stbuf,
|
||||
struct iatt *preoldparent, struct iatt *postoldparent,
|
||||
struct iatt *prenewparent, struct iatt *postnewparent)
|
||||
{
|
||||
TRASH_STACK_UNWIND (frame, op_ret, op_errno, stbuf, preoldparent,
|
||||
postoldparent, prenewparent, postnewparent);
|
||||
@ -274,7 +274,7 @@ trash_common_rename_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
|
||||
|
||||
int32_t
|
||||
trash_unlink_stat_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
|
||||
int32_t op_ret, int32_t op_errno, struct stat *buf)
|
||||
int32_t op_ret, int32_t op_errno, struct iatt *buf)
|
||||
{
|
||||
trash_private_t *priv = NULL;
|
||||
trash_local_t *local = NULL;
|
||||
@ -289,15 +289,15 @@ trash_unlink_stat_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
|
||||
goto fail;
|
||||
}
|
||||
|
||||
if ((buf->st_size == 0) ||
|
||||
(buf->st_size > priv->max_trash_file_size)) {
|
||||
if ((buf->ia_size == 0) ||
|
||||
(buf->ia_size > priv->max_trash_file_size)) {
|
||||
/* if the file is too big or zero, just unlink it */
|
||||
|
||||
if (buf->st_size > priv->max_trash_file_size) {
|
||||
if (buf->ia_size > priv->max_trash_file_size) {
|
||||
gf_log (this->name, GF_LOG_DEBUG,
|
||||
"%s: file size too big (%"GF_PRI_SIZET") to "
|
||||
"move into trash directory",
|
||||
local->loc.path, buf->st_size);
|
||||
local->loc.path, buf->ia_size);
|
||||
}
|
||||
|
||||
STACK_WIND (frame, trash_common_unwind_cbk,
|
||||
@ -325,9 +325,9 @@ fail:
|
||||
|
||||
int32_t
|
||||
trash_rename_rename_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
|
||||
int32_t op_ret, int32_t op_errno, struct stat *buf,
|
||||
struct stat *preoldparent, struct stat *postoldparent,
|
||||
struct stat *prenewparent, struct stat *postnewparent)
|
||||
int32_t op_ret, int32_t op_errno, struct iatt *buf,
|
||||
struct iatt *preoldparent, struct iatt *postoldparent,
|
||||
struct iatt *prenewparent, struct iatt *postnewparent)
|
||||
{
|
||||
trash_local_t *local = NULL;
|
||||
char *tmp_str = NULL;
|
||||
@ -384,8 +384,8 @@ trash_rename_rename_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
|
||||
int32_t
|
||||
trash_rename_mkdir_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
|
||||
int32_t op_ret, int32_t op_errno, inode_t *inode,
|
||||
struct stat *stbuf, struct stat *preparent,
|
||||
struct stat *postparent)
|
||||
struct iatt *stbuf, struct iatt *preparent,
|
||||
struct iatt *postparent)
|
||||
{
|
||||
trash_local_t *local = NULL;
|
||||
char *tmp_str = NULL;
|
||||
@ -447,8 +447,8 @@ out:
|
||||
int32_t
|
||||
trash_rename_lookup_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
|
||||
int32_t op_ret, int32_t op_errno, inode_t *inode,
|
||||
struct stat *buf, dict_t *xattr,
|
||||
struct stat *postparent)
|
||||
struct iatt *buf, dict_t *xattr,
|
||||
struct iatt *postparent)
|
||||
{
|
||||
trash_private_t *priv = NULL;
|
||||
trash_local_t *local = NULL;
|
||||
@ -464,15 +464,15 @@ trash_rename_lookup_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
|
||||
&local->loc, &local->newloc);
|
||||
return 0;
|
||||
}
|
||||
if ((buf->st_size == 0) ||
|
||||
(buf->st_size > priv->max_trash_file_size)) {
|
||||
if ((buf->ia_size == 0) ||
|
||||
(buf->ia_size > priv->max_trash_file_size)) {
|
||||
/* if the file is too big or zero, just unlink it */
|
||||
|
||||
if (buf->st_size > priv->max_trash_file_size) {
|
||||
if (buf->ia_size > priv->max_trash_file_size) {
|
||||
gf_log (this->name, GF_LOG_DEBUG,
|
||||
"%s: file size too big (%"GF_PRI_SIZET") to "
|
||||
"move into trash directory",
|
||||
local->newloc.path, buf->st_size);
|
||||
local->newloc.path, buf->ia_size);
|
||||
}
|
||||
|
||||
STACK_WIND (frame, trash_common_rename_cbk,
|
||||
@ -639,7 +639,7 @@ trash_unlink (call_frame_t *frame, xlator_t *this, loc_t *loc)
|
||||
int32_t
|
||||
trash_truncate_unlink_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
|
||||
int32_t op_ret, int32_t op_errno,
|
||||
struct stat *preparent, struct stat *postparent)
|
||||
struct iatt *preparent, struct iatt *postparent)
|
||||
{
|
||||
/* use this Function when a failure occurs, and
|
||||
delete the newly created file. */
|
||||
@ -664,7 +664,7 @@ int32_t
|
||||
trash_truncate_readv_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
|
||||
int32_t op_ret, int32_t op_errno,
|
||||
struct iovec *vector, int32_t count,
|
||||
struct stat *stbuf, struct iobref *iobuf)
|
||||
struct iatt *stbuf, struct iobref *iobuf)
|
||||
{
|
||||
trash_local_t *local = NULL;
|
||||
|
||||
@ -681,7 +681,7 @@ trash_truncate_readv_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
|
||||
goto out;
|
||||
}
|
||||
|
||||
local->fsize = stbuf->st_size;
|
||||
local->fsize = stbuf->ia_size;
|
||||
STACK_WIND (frame, trash_truncate_writev_cbk, FIRST_CHILD(this),
|
||||
FIRST_CHILD(this)->fops->writev,
|
||||
local->newfd, vector, count, local->cur_offset, iobuf);
|
||||
@ -694,7 +694,7 @@ out:
|
||||
int32_t
|
||||
trash_truncate_writev_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
|
||||
int32_t op_ret, int32_t op_errno,
|
||||
struct stat *prebuf, struct stat *postbuf)
|
||||
struct iatt *prebuf, struct iatt *postbuf)
|
||||
{
|
||||
trash_local_t *local = NULL;
|
||||
|
||||
@ -767,8 +767,8 @@ out:
|
||||
int32_t
|
||||
trash_truncate_create_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
|
||||
int32_t op_ret, int32_t op_errno, fd_t *fd,
|
||||
inode_t *inode, struct stat *buf,
|
||||
struct stat *preparent, struct stat *postparent)
|
||||
inode_t *inode, struct iatt *buf,
|
||||
struct iatt *preparent, struct iatt *postparent)
|
||||
{
|
||||
trash_local_t *local = NULL;
|
||||
char *tmp_str = NULL;
|
||||
@ -830,8 +830,8 @@ out:
|
||||
int32_t
|
||||
trash_truncate_mkdir_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
|
||||
int32_t op_ret, int32_t op_errno, inode_t *inode,
|
||||
struct stat *stbuf, struct stat *preparent,
|
||||
struct stat *postparent)
|
||||
struct iatt *stbuf, struct iatt *preparent,
|
||||
struct iatt *postparent)
|
||||
{
|
||||
trash_local_t *local = NULL;
|
||||
char *tmp_str = NULL;
|
||||
@ -883,11 +883,13 @@ trash_truncate_mkdir_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
|
||||
dir_name = dirname (tmp_str);
|
||||
if (strcmp ((char*)cookie, dir_name) == 0) {
|
||||
flags = O_CREAT|O_EXCL|O_WRONLY;
|
||||
ia_prot_t prot = {0, };
|
||||
|
||||
//Call create again once directory structure is created.
|
||||
STACK_WIND (frame, trash_truncate_create_cbk,
|
||||
FIRST_CHILD(this), FIRST_CHILD(this)->fops->create,
|
||||
&local->newloc, flags, local->loc.inode->st_mode,
|
||||
&local->newloc, flags,
|
||||
st_mode_from_ia (prot, local->loc.inode->ia_type),
|
||||
local->newfd);
|
||||
goto out;
|
||||
}
|
||||
@ -930,7 +932,7 @@ out:
|
||||
|
||||
int32_t
|
||||
trash_truncate_stat_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
|
||||
int32_t op_ret, int32_t op_errno, struct stat *buf)
|
||||
int32_t op_ret, int32_t op_errno, struct iatt *buf)
|
||||
{
|
||||
trash_private_t *priv = NULL;
|
||||
trash_local_t *local = NULL;
|
||||
@ -952,9 +954,9 @@ trash_truncate_stat_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
|
||||
return 0;
|
||||
}
|
||||
|
||||
if ((buf->st_size == 0) || (buf->st_size > priv->max_trash_file_size)) {
|
||||
if ((buf->ia_size == 0) || (buf->ia_size > priv->max_trash_file_size)) {
|
||||
// If the file is too big, just unlink it.
|
||||
if (buf->st_size > priv->max_trash_file_size)
|
||||
if (buf->ia_size > priv->max_trash_file_size)
|
||||
gf_log (this->name, GF_LOG_DEBUG, "%s: file too big, "
|
||||
"not moving to trash", local->loc.path);
|
||||
|
||||
@ -988,7 +990,8 @@ trash_truncate_stat_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
|
||||
STACK_WIND (frame, trash_truncate_create_cbk,
|
||||
FIRST_CHILD(this),
|
||||
FIRST_CHILD(this)->fops->create,
|
||||
&local->newloc, flags, local->loc.inode->st_mode,
|
||||
&local->newloc, flags,
|
||||
st_mode_from_ia (buf->ia_prot, local->loc.inode->ia_type),
|
||||
local->newfd);
|
||||
|
||||
return 0;
|
||||
@ -1057,7 +1060,7 @@ out:
|
||||
int32_t
|
||||
trash_ftruncate_unlink_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
|
||||
int32_t op_ret, int32_t op_errno,
|
||||
struct stat *preparent, struct stat *postparent)
|
||||
struct iatt *preparent, struct iatt *postparent)
|
||||
{
|
||||
trash_local_t *local = NULL;
|
||||
|
||||
@ -1080,7 +1083,7 @@ trash_ftruncate_unlink_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
|
||||
int32_t
|
||||
trash_ftruncate_writev_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
|
||||
int32_t op_ret, int32_t op_errno,
|
||||
struct stat *prebuf, struct stat *postbuf)
|
||||
struct iatt *prebuf, struct iatt *postbuf)
|
||||
{
|
||||
trash_local_t *local = NULL;
|
||||
|
||||
@ -1114,12 +1117,12 @@ int32_t
|
||||
trash_ftruncate_readv_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
|
||||
int32_t op_ret, int32_t op_errno,
|
||||
struct iovec *vector, int32_t count,
|
||||
struct stat *stbuf, struct iobref *iobuf)
|
||||
struct iatt *stbuf, struct iobref *iobuf)
|
||||
{
|
||||
trash_local_t *local = NULL;
|
||||
|
||||
local = frame->local;
|
||||
local->fsize = stbuf->st_size;
|
||||
local->fsize = stbuf->ia_size;
|
||||
|
||||
if (op_ret == -1) {
|
||||
STACK_WIND (frame, trash_ftruncate_unlink_cbk,
|
||||
@ -1139,8 +1142,8 @@ trash_ftruncate_readv_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
|
||||
int32_t
|
||||
trash_ftruncate_create_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
|
||||
int32_t op_ret, int32_t op_errno, fd_t *fd,
|
||||
inode_t *inode, struct stat *buf,
|
||||
struct stat *preparent, struct stat *postparent)
|
||||
inode_t *inode, struct iatt *buf,
|
||||
struct iatt *preparent, struct iatt *postparent)
|
||||
{
|
||||
trash_local_t *local = NULL;
|
||||
char *tmp_str = NULL;
|
||||
@ -1191,8 +1194,8 @@ trash_ftruncate_create_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
|
||||
int32_t
|
||||
trash_ftruncate_mkdir_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
|
||||
int32_t op_ret, int32_t op_errno, inode_t *inode,
|
||||
struct stat *stbuf, struct stat *preparent,
|
||||
struct stat *postparent)
|
||||
struct iatt *stbuf, struct iatt *preparent,
|
||||
struct iatt *postparent)
|
||||
{
|
||||
trash_local_t *local = NULL;
|
||||
char *tmp_str = NULL;
|
||||
@ -1243,6 +1246,7 @@ trash_ftruncate_mkdir_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
|
||||
if (op_ret == 0) {
|
||||
dir_name = dirname (tmp_str);
|
||||
if (strcmp ((char*)cookie, dir_name) == 0) {
|
||||
ia_prot_t prot = {0, };
|
||||
flags = O_CREAT|O_EXCL|O_WRONLY;
|
||||
|
||||
//Call create again once directory structure is created.
|
||||
@ -1250,7 +1254,8 @@ trash_ftruncate_mkdir_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
|
||||
FIRST_CHILD(this),
|
||||
FIRST_CHILD(this)->fops->create,
|
||||
&local->newloc, flags,
|
||||
local->loc.inode->st_mode, local->newfd);
|
||||
st_mode_from_ia (prot, local->loc.inode->ia_type),
|
||||
local->newfd);
|
||||
goto out;
|
||||
}
|
||||
}
|
||||
@ -1292,7 +1297,7 @@ out:
|
||||
|
||||
int32_t
|
||||
trash_ftruncate_fstat_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
|
||||
int32_t op_ret, int32_t op_errno, struct stat *buf)
|
||||
int32_t op_ret, int32_t op_errno, struct iatt *buf)
|
||||
{
|
||||
trash_private_t *priv = NULL;
|
||||
trash_local_t *local = NULL;
|
||||
@ -1307,7 +1312,7 @@ trash_ftruncate_fstat_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
|
||||
TRASH_STACK_UNWIND (frame, -1, op_errno, buf, NULL);
|
||||
return 0;
|
||||
}
|
||||
if ((buf->st_size == 0) || (buf->st_size > priv->max_trash_file_size))
|
||||
if ((buf->ia_size == 0) || (buf->ia_size > priv->max_trash_file_size))
|
||||
{
|
||||
STACK_WIND (frame, trash_common_unwind_buf_cbk,
|
||||
this->children->xlator,
|
||||
@ -1320,7 +1325,8 @@ trash_ftruncate_fstat_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
|
||||
STACK_WIND (frame, trash_ftruncate_create_cbk, FIRST_CHILD(this),
|
||||
FIRST_CHILD(this)->fops->create, &local->newloc,
|
||||
( O_CREAT | O_EXCL | O_WRONLY ),
|
||||
local->loc.inode->st_mode, local->newfd);
|
||||
st_mode_from_ia (buf->ia_prot, local->loc.inode->ia_type),
|
||||
local->newfd);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
@ -422,30 +422,30 @@ fail:
|
||||
|
||||
/* courtesy of folly */
|
||||
static void
|
||||
stat2attr (struct stat *st, struct fuse_attr *fa)
|
||||
stat2attr (struct iatt *st, struct fuse_attr *fa)
|
||||
{
|
||||
fa->ino = st->st_ino;
|
||||
fa->size = st->st_size;
|
||||
fa->blocks = st->st_blocks;
|
||||
fa->atime = st->st_atime;
|
||||
fa->mtime = st->st_mtime;
|
||||
fa->ctime = st->st_ctime;
|
||||
fa->atimensec = ST_ATIM_NSEC (st);
|
||||
fa->mtimensec = ST_MTIM_NSEC (st);
|
||||
fa->ctimensec = ST_CTIM_NSEC (st);
|
||||
fa->mode = st->st_mode;
|
||||
fa->nlink = st->st_nlink;
|
||||
fa->uid = st->st_uid;
|
||||
fa->gid = st->st_gid;
|
||||
fa->rdev = st->st_rdev;
|
||||
fa->blksize = st->st_blksize;
|
||||
fa->ino = st->ia_ino;
|
||||
fa->size = st->ia_size;
|
||||
fa->blocks = st->ia_blocks;
|
||||
fa->atime = st->ia_atime;
|
||||
fa->mtime = st->ia_mtime;
|
||||
fa->ctime = st->ia_ctime;
|
||||
fa->atimensec = st->ia_atime_nsec;
|
||||
fa->mtimensec = st->ia_mtime_nsec;
|
||||
fa->ctimensec = st->ia_ctime_nsec;
|
||||
fa->mode = st_mode_from_ia (st->ia_prot, st->ia_type);
|
||||
fa->nlink = st->ia_nlink;
|
||||
fa->uid = st->ia_uid;
|
||||
fa->gid = st->ia_gid;
|
||||
fa->rdev = st->ia_rdev;
|
||||
fa->blksize = st->ia_blksize;
|
||||
}
|
||||
|
||||
|
||||
static int
|
||||
fuse_entry_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
|
||||
int32_t op_ret, int32_t op_errno,
|
||||
inode_t *inode, struct stat *buf)
|
||||
inode_t *inode, struct iatt *buf)
|
||||
{
|
||||
fuse_state_t *state = NULL;
|
||||
fuse_in_header_t *finh = NULL;
|
||||
@ -458,19 +458,19 @@ fuse_entry_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
|
||||
finh = state->finh;
|
||||
|
||||
if (!op_ret && state->loc.ino == 1) {
|
||||
buf->st_ino = 1;
|
||||
buf->ia_ino = 1;
|
||||
}
|
||||
|
||||
if (op_ret == 0) {
|
||||
gf_log ("glusterfs-fuse", GF_LOG_TRACE,
|
||||
"%"PRIu64": %s() %s => %"PRId64" (%"PRId64")",
|
||||
frame->root->unique, gf_fop_list[frame->root->op],
|
||||
state->loc.path, buf->st_ino, state->loc.ino);
|
||||
state->loc.path, buf->ia_ino, state->loc.ino);
|
||||
|
||||
buf->st_blksize = this->ctx->page_size;
|
||||
buf->ia_blksize = this->ctx->page_size;
|
||||
stat2attr (buf, &feo.attr);
|
||||
|
||||
if (!buf->st_ino) {
|
||||
if (!buf->ia_ino) {
|
||||
gf_log ("glusterfs-fuse", GF_LOG_WARNING,
|
||||
"%"PRIu64": %s() %s returning inode 0",
|
||||
frame->root->unique,
|
||||
@ -531,8 +531,8 @@ fuse_entry_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
|
||||
static int
|
||||
fuse_newentry_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
|
||||
int32_t op_ret, int32_t op_errno,
|
||||
inode_t *inode, struct stat *buf, struct stat *preparent,
|
||||
struct stat *postparent)
|
||||
inode_t *inode, struct iatt *buf, struct iatt *preparent,
|
||||
struct iatt *postparent)
|
||||
{
|
||||
fuse_entry_cbk (frame, cookie, this, op_ret, op_errno, inode, buf);
|
||||
return 0;
|
||||
@ -542,8 +542,8 @@ fuse_newentry_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
|
||||
static int
|
||||
fuse_lookup_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
|
||||
int32_t op_ret, int32_t op_errno,
|
||||
inode_t *inode, struct stat *stat, dict_t *dict,
|
||||
struct stat *postparent)
|
||||
inode_t *inode, struct iatt *stat, dict_t *dict,
|
||||
struct iatt *postparent)
|
||||
{
|
||||
fuse_state_t *state = NULL;
|
||||
call_frame_t *prev = NULL;
|
||||
@ -632,8 +632,8 @@ fuse_forget (xlator_t *this, fuse_in_header_t *finh, void *msg)
|
||||
|
||||
static int
|
||||
fuse_truncate_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
|
||||
int32_t op_ret, int32_t op_errno, struct stat *prebuf,
|
||||
struct stat *postbuf)
|
||||
int32_t op_ret, int32_t op_errno, struct iatt *prebuf,
|
||||
struct iatt *postbuf)
|
||||
{
|
||||
fuse_state_t *state;
|
||||
fuse_in_header_t *finh;
|
||||
@ -649,11 +649,11 @@ fuse_truncate_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
|
||||
"%"PRIu64": %s() %s => %"PRId64, frame->root->unique,
|
||||
gf_fop_list[frame->root->op],
|
||||
state->loc.path ? state->loc.path : "ERR",
|
||||
prebuf->st_ino);
|
||||
prebuf->ia_ino);
|
||||
|
||||
/* TODO: make these timeouts configurable via meta */
|
||||
/* TODO: what if the inode number has changed by now */
|
||||
postbuf->st_blksize = this->ctx->page_size;
|
||||
postbuf->ia_blksize = this->ctx->page_size;
|
||||
stat2attr (postbuf, &fao.attr);
|
||||
|
||||
fao.attr_valid = calc_timeout_sec (priv->attribute_timeout);
|
||||
@ -683,7 +683,7 @@ fuse_truncate_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
|
||||
|
||||
static int
|
||||
fuse_attr_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
|
||||
int32_t op_ret, int32_t op_errno, struct stat *buf)
|
||||
int32_t op_ret, int32_t op_errno, struct iatt *buf)
|
||||
{
|
||||
fuse_state_t *state;
|
||||
fuse_in_header_t *finh;
|
||||
@ -699,11 +699,11 @@ fuse_attr_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
|
||||
"%"PRIu64": %s() %s => %"PRId64, frame->root->unique,
|
||||
gf_fop_list[frame->root->op],
|
||||
state->loc.path ? state->loc.path : "ERR",
|
||||
buf->st_ino);
|
||||
buf->ia_ino);
|
||||
|
||||
/* TODO: make these timeouts configurable via meta */
|
||||
/* TODO: what if the inode number has changed by now */
|
||||
buf->st_blksize = this->ctx->page_size;
|
||||
buf->ia_blksize = this->ctx->page_size;
|
||||
stat2attr (buf, &fao.attr);
|
||||
|
||||
fao.attr_valid = calc_timeout_sec (priv->attribute_timeout);
|
||||
@ -734,8 +734,8 @@ fuse_attr_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
|
||||
static int
|
||||
fuse_root_lookup_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
|
||||
int32_t op_ret, int32_t op_errno,
|
||||
inode_t *inode, struct stat *stat, dict_t *dict,
|
||||
struct stat *postparent)
|
||||
inode_t *inode, struct iatt *stat, dict_t *dict,
|
||||
struct iatt *postparent)
|
||||
{
|
||||
fuse_attr_cbk (frame, cookie, this, op_ret, op_errno, stat);
|
||||
|
||||
@ -783,7 +783,7 @@ fuse_getattr (xlator_t *this, fuse_in_header_t *finh, void *msg)
|
||||
|
||||
fd = fd_lookup (state->loc.inode, finh->pid);
|
||||
state->fd = fd;
|
||||
if (!fd || S_ISDIR (state->loc.inode->st_mode)) {
|
||||
if (!fd || IA_ISDIR (state->loc.inode->ia_type)) {
|
||||
/* this is the @ret of fuse_loc_fill, checked here
|
||||
to permit fstat() to happen even when fuse_loc_fill fails
|
||||
*/
|
||||
@ -832,7 +832,7 @@ fuse_fd_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
|
||||
foo.fh = (uintptr_t) fd;
|
||||
foo.open_flags = 0;
|
||||
|
||||
if (!S_ISDIR (fd->inode->st_mode)) {
|
||||
if (!IA_ISDIR (fd->inode->ia_type)) {
|
||||
if (((state->flags & O_ACCMODE) != O_RDONLY) &&
|
||||
priv->direct_io_mode)
|
||||
foo.open_flags |= FOPEN_DIRECT_IO;
|
||||
@ -884,7 +884,7 @@ fuse_do_truncate (fuse_state_t *state, size_t size)
|
||||
static int
|
||||
fuse_setattr_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
|
||||
int32_t op_ret, int32_t op_errno,
|
||||
struct stat *statpre, struct stat *statpost)
|
||||
struct iatt *statpre, struct iatt *statpost)
|
||||
{
|
||||
fuse_state_t *state;
|
||||
fuse_in_header_t *finh;
|
||||
@ -902,12 +902,12 @@ fuse_setattr_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
|
||||
"%"PRIu64": %s() %s => %"PRId64, frame->root->unique,
|
||||
gf_fop_list[frame->root->op],
|
||||
state->loc.path ? state->loc.path : "ERR",
|
||||
statpost->st_ino);
|
||||
statpost->ia_ino);
|
||||
|
||||
/* TODO: make these timeouts configurable via meta */
|
||||
/* TODO: what if the inode number has changed by now */
|
||||
|
||||
statpost->st_blksize = this->ctx->page_size;
|
||||
statpost->ia_blksize = this->ctx->page_size;
|
||||
|
||||
stat2attr (statpost, &fao.attr);
|
||||
|
||||
@ -982,7 +982,7 @@ fuse_setattr (xlator_t *this, fuse_in_header_t *finh, void *msg)
|
||||
{
|
||||
struct fuse_setattr_in *fsi = msg;
|
||||
|
||||
struct stat attr = {0, };
|
||||
struct iatt attr = {0, };
|
||||
|
||||
fuse_private_t *priv = NULL;
|
||||
fuse_state_t *state = NULL;
|
||||
@ -1046,15 +1046,15 @@ fuse_setattr (xlator_t *this, fuse_in_header_t *finh, void *msg)
|
||||
state->truncate_needed = _gf_true;
|
||||
}
|
||||
|
||||
attr.st_size = fsi->size;
|
||||
attr.st_atime = fsi->atime;
|
||||
attr.st_mtime = fsi->mtime;
|
||||
ST_ATIM_NSEC_SET (&attr, fsi->atimensec);
|
||||
ST_MTIM_NSEC_SET (&attr, fsi->mtimensec);
|
||||
attr.ia_size = fsi->size;
|
||||
attr.ia_atime = fsi->atime;
|
||||
attr.ia_mtime = fsi->mtime;
|
||||
attr.ia_atime_nsec = fsi->atimensec;
|
||||
attr.ia_mtime_nsec = fsi->mtimensec;
|
||||
|
||||
attr.st_mode = fsi->mode;
|
||||
attr.st_uid = fsi->uid;
|
||||
attr.st_gid = fsi->gid;
|
||||
attr.ia_prot = ia_prot_from_st_mode (fsi->mode);
|
||||
attr.ia_uid = fsi->uid;
|
||||
attr.ia_gid = fsi->gid;
|
||||
|
||||
if (state->fd &&
|
||||
!((fsi->valid & FATTR_ATIME) || (fsi->valid & FATTR_MTIME))) {
|
||||
@ -1082,8 +1082,8 @@ fuse_setattr (xlator_t *this, fuse_in_header_t *finh, void *msg)
|
||||
static int gf_fuse_xattr_enotsup_log;
|
||||
static int
|
||||
fuse_fsync_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
|
||||
int32_t op_ret, int32_t op_errno, struct stat *prebuf,
|
||||
struct stat *postbuf)
|
||||
int32_t op_ret, int32_t op_errno, struct iatt *prebuf,
|
||||
struct iatt *postbuf)
|
||||
{
|
||||
fuse_state_t *state = frame->root->state;
|
||||
fuse_in_header_t *finh = state->finh;
|
||||
@ -1187,8 +1187,8 @@ fuse_err_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
|
||||
|
||||
static int
|
||||
fuse_unlink_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
|
||||
int32_t op_ret, int32_t op_errno, struct stat *preparent,
|
||||
struct stat *postparent)
|
||||
int32_t op_ret, int32_t op_errno, struct iatt *preparent,
|
||||
struct iatt *postparent)
|
||||
{
|
||||
fuse_state_t *state = NULL;
|
||||
fuse_in_header_t *finh = NULL;
|
||||
@ -1259,7 +1259,7 @@ fuse_access (xlator_t *this, fuse_in_header_t *finh, void *msg)
|
||||
static int
|
||||
fuse_readlink_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
|
||||
int32_t op_ret, int32_t op_errno, const char *linkname,
|
||||
struct stat *buf)
|
||||
struct iatt *buf)
|
||||
{
|
||||
fuse_state_t *state = NULL;
|
||||
fuse_in_header_t *finh = NULL;
|
||||
@ -1490,9 +1490,9 @@ fuse_symlink (xlator_t *this, fuse_in_header_t *finh, void *msg)
|
||||
|
||||
int
|
||||
fuse_rename_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
|
||||
int32_t op_ret, int32_t op_errno, struct stat *buf,
|
||||
struct stat *preoldparent, struct stat *postoldparent,
|
||||
struct stat *prenewparent, struct stat *postnewparent)
|
||||
int32_t op_ret, int32_t op_errno, struct iatt *buf,
|
||||
struct iatt *preoldparent, struct iatt *postoldparent,
|
||||
struct iatt *prenewparent, struct iatt *postnewparent)
|
||||
{
|
||||
fuse_state_t *state = NULL;
|
||||
fuse_in_header_t *finh = NULL;
|
||||
@ -1502,18 +1502,18 @@ fuse_rename_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
|
||||
|
||||
if (op_ret == 0) {
|
||||
gf_log ("glusterfs-fuse", GF_LOG_TRACE,
|
||||
"%"PRIu64": %s -> %s => 0 (buf->st_ino=%"PRId64" , loc->ino=%"PRId64")",
|
||||
"%"PRIu64": %s -> %s => 0 (buf->ia_ino=%"PRId64" , loc->ino=%"PRId64")",
|
||||
frame->root->unique, state->loc.path, state->loc2.path,
|
||||
buf->st_ino, state->loc.ino);
|
||||
buf->ia_ino, state->loc.ino);
|
||||
|
||||
{
|
||||
/* ugly ugly - to stay blind to situation where
|
||||
rename happens on a new inode
|
||||
*/
|
||||
buf->st_ino = state->loc.ino;
|
||||
buf->st_mode = state->loc.inode->st_mode;
|
||||
buf->ia_ino = state->loc.ino;
|
||||
buf->ia_type = state->loc.inode->ia_type;
|
||||
}
|
||||
buf->st_blksize = this->ctx->page_size;
|
||||
buf->ia_blksize = this->ctx->page_size;
|
||||
|
||||
inode_rename (state->itable,
|
||||
state->loc.parent, state->loc.name,
|
||||
@ -1627,8 +1627,8 @@ fuse_link (xlator_t *this, fuse_in_header_t *finh, void *msg)
|
||||
static int
|
||||
fuse_create_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
|
||||
int32_t op_ret, int32_t op_errno,
|
||||
fd_t *fd, inode_t *inode, struct stat *buf,
|
||||
struct stat *preparent, struct stat *postparent)
|
||||
fd_t *fd, inode_t *inode, struct iatt *buf,
|
||||
struct iatt *preparent, struct iatt *postparent)
|
||||
{
|
||||
fuse_state_t *state = NULL;
|
||||
fuse_in_header_t *finh = NULL;
|
||||
@ -1655,9 +1655,9 @@ fuse_create_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
|
||||
gf_log ("glusterfs-fuse", GF_LOG_TRACE,
|
||||
"%"PRIu64": %s() %s => %p (ino=%"PRId64")",
|
||||
frame->root->unique, gf_fop_list[frame->root->op],
|
||||
state->loc.path, fd, buf->st_ino);
|
||||
state->loc.path, fd, buf->ia_ino);
|
||||
|
||||
buf->st_blksize = this->ctx->page_size;
|
||||
buf->ia_blksize = this->ctx->page_size;
|
||||
stat2attr (buf, &feo.attr);
|
||||
|
||||
linked_inode = inode_link (inode, state->loc.parent,
|
||||
@ -1815,7 +1815,7 @@ static int
|
||||
fuse_readv_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
|
||||
int32_t op_ret, int32_t op_errno,
|
||||
struct iovec *vector, int32_t count,
|
||||
struct stat *stbuf, struct iobref *iobref)
|
||||
struct iatt *stbuf, struct iobref *iobref)
|
||||
{
|
||||
fuse_state_t *state = NULL;
|
||||
fuse_in_header_t *finh = NULL;
|
||||
@ -1829,7 +1829,7 @@ fuse_readv_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
|
||||
gf_log ("glusterfs-fuse", GF_LOG_TRACE,
|
||||
"%"PRIu64": READ => %d/%"GF_PRI_SIZET",%"PRId64"/%"PRId64,
|
||||
frame->root->unique,
|
||||
op_ret, state->size, state->off, stbuf->st_size);
|
||||
op_ret, state->size, state->off, stbuf->ia_size);
|
||||
|
||||
iov_out = CALLOC (count + 1, sizeof (*iov_out));
|
||||
if (iov_out) {
|
||||
@ -1890,7 +1890,7 @@ fuse_readv (xlator_t *this, fuse_in_header_t *finh, void *msg)
|
||||
static int
|
||||
fuse_writev_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
|
||||
int32_t op_ret, int32_t op_errno,
|
||||
struct stat *stbuf, struct stat *postbuf)
|
||||
struct iatt *stbuf, struct iatt *postbuf)
|
||||
{
|
||||
fuse_state_t *state = NULL;
|
||||
fuse_in_header_t *finh = NULL;
|
||||
@ -1903,7 +1903,7 @@ fuse_writev_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
|
||||
gf_log ("glusterfs-fuse", GF_LOG_TRACE,
|
||||
"%"PRIu64": WRITE => %d/%"GF_PRI_SIZET",%"PRId64"/%"PRId64,
|
||||
frame->root->unique,
|
||||
op_ret, state->size, state->off, stbuf->st_size);
|
||||
op_ret, state->size, state->off, stbuf->ia_size);
|
||||
|
||||
fwo.size = op_ret;
|
||||
send_fuse_obj (this, finh, &fwo);
|
||||
@ -2131,29 +2131,29 @@ fuse_opendir (xlator_t *this, fuse_in_header_t *finh, void *msg)
|
||||
|
||||
|
||||
unsigned char
|
||||
d_type_from_stat (struct stat *buf)
|
||||
d_type_from_stat (struct iatt *buf)
|
||||
{
|
||||
unsigned char d_type;
|
||||
|
||||
if (S_ISLNK (buf->st_mode)) {
|
||||
if (IA_ISLNK (buf->ia_type)) {
|
||||
d_type = DT_LNK;
|
||||
|
||||
} else if (S_ISDIR (buf->st_mode)) {
|
||||
} else if (IA_ISDIR (buf->ia_type)) {
|
||||
d_type = DT_DIR;
|
||||
|
||||
} else if (S_ISFIFO (buf->st_mode)) {
|
||||
} else if (IA_ISFIFO (buf->ia_type)) {
|
||||
d_type = DT_FIFO;
|
||||
|
||||
} else if (S_ISSOCK (buf->st_mode)) {
|
||||
} else if (IA_ISSOCK (buf->ia_type)) {
|
||||
d_type = DT_SOCK;
|
||||
|
||||
} else if (S_ISCHR (buf->st_mode)) {
|
||||
} else if (IA_ISCHR (buf->ia_type)) {
|
||||
d_type = DT_CHR;
|
||||
|
||||
} else if (S_ISBLK (buf->st_mode)) {
|
||||
} else if (IA_ISBLK (buf->ia_type)) {
|
||||
d_type = DT_BLK;
|
||||
|
||||
} else if (S_ISREG (buf->st_mode)) {
|
||||
} else if (IA_ISREG (buf->ia_type)) {
|
||||
d_type = DT_REG;
|
||||
|
||||
} else {
|
||||
@ -2316,7 +2316,7 @@ fuse_statfs_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
|
||||
|
||||
Scale the block counts to match ->f_bsize.
|
||||
*/
|
||||
/* TODO: with old coreutils, f_bsize is taken from stat()'s st_blksize
|
||||
/* TODO: with old coreutils, f_bsize is taken from stat()'s ia_blksize
|
||||
* so the df with old coreutils this wont work :(
|
||||
*/
|
||||
|
||||
@ -2974,8 +2974,8 @@ static fuse_handler_t *fuse_ops[FUSE_713_OP_HIGH];
|
||||
int
|
||||
fuse_first_lookup_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
|
||||
int32_t op_ret, int32_t op_errno,
|
||||
inode_t *inode, struct stat *buf, dict_t *xattr,
|
||||
struct stat *postparent)
|
||||
inode_t *inode, struct iatt *buf, dict_t *xattr,
|
||||
struct iatt *postparent)
|
||||
{
|
||||
fuse_private_t *priv = NULL;
|
||||
|
||||
|
@ -149,7 +149,7 @@ ioc_inode_flush (ioc_inode_t *ioc_inode)
|
||||
int32_t
|
||||
ioc_setattr_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
|
||||
int32_t op_ret, int32_t op_errno,
|
||||
struct stat *preop, struct stat *postop)
|
||||
struct iatt *preop, struct iatt *postop)
|
||||
{
|
||||
STACK_UNWIND_STRICT (setattr, frame, op_ret, op_errno, preop, postop);
|
||||
return 0;
|
||||
@ -157,7 +157,7 @@ ioc_setattr_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
|
||||
|
||||
int32_t
|
||||
ioc_setattr (call_frame_t *frame, xlator_t *this, loc_t *loc,
|
||||
struct stat *stbuf, int32_t valid)
|
||||
struct iatt *stbuf, int32_t valid)
|
||||
{
|
||||
uint64_t ioc_inode = 0;
|
||||
|
||||
@ -177,7 +177,7 @@ ioc_setattr (call_frame_t *frame, xlator_t *this, loc_t *loc,
|
||||
int32_t
|
||||
ioc_lookup_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
|
||||
int32_t op_ret, int32_t op_errno, inode_t *inode,
|
||||
struct stat *stbuf, dict_t *dict, struct stat *postparent)
|
||||
struct iatt *stbuf, dict_t *dict, struct iatt *postparent)
|
||||
{
|
||||
ioc_inode_t *ioc_inode = NULL;
|
||||
ioc_table_t *table = this->private;
|
||||
@ -219,10 +219,10 @@ ioc_lookup_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
|
||||
ioc_inode_lock (ioc_inode);
|
||||
{
|
||||
if (ioc_inode->cache.mtime == 0) {
|
||||
ioc_inode->cache.mtime = stbuf->st_mtime;
|
||||
ioc_inode->cache.mtime = stbuf->ia_mtime;
|
||||
}
|
||||
|
||||
ioc_inode->st_size = stbuf->st_size;
|
||||
ioc_inode->ia_size = stbuf->ia_size;
|
||||
}
|
||||
ioc_inode_unlock (ioc_inode);
|
||||
|
||||
@ -321,12 +321,12 @@ ioc_forget (xlator_t *this, inode_t *inode)
|
||||
*/
|
||||
int32_t
|
||||
ioc_cache_validate_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
|
||||
int32_t op_ret, int32_t op_errno, struct stat *stbuf)
|
||||
int32_t op_ret, int32_t op_errno, struct iatt *stbuf)
|
||||
{
|
||||
ioc_local_t *local = NULL;
|
||||
ioc_inode_t *ioc_inode = NULL;
|
||||
size_t destroy_size = 0;
|
||||
struct stat *local_stbuf = NULL;
|
||||
struct iatt *local_stbuf = NULL;
|
||||
|
||||
local = frame->local;
|
||||
ioc_inode = local->inode;
|
||||
@ -345,7 +345,7 @@ ioc_cache_validate_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
|
||||
{
|
||||
destroy_size = __ioc_inode_flush (ioc_inode);
|
||||
if (op_ret >= 0)
|
||||
ioc_inode->cache.mtime = stbuf->st_mtime;
|
||||
ioc_inode->cache.mtime = stbuf->ia_mtime;
|
||||
}
|
||||
ioc_inode_unlock (ioc_inode);
|
||||
local_stbuf = NULL;
|
||||
@ -536,21 +536,14 @@ ioc_open_cbk (call_frame_t *frame, void *cookie, xlator_t *this, int32_t op_ret,
|
||||
|
||||
ioc_inode_lock (ioc_inode);
|
||||
{
|
||||
if ((table->min_file_size > ioc_inode->st_size)
|
||||
if ((table->min_file_size > ioc_inode->ia_size)
|
||||
|| ((table->max_file_size >= 0)
|
||||
&& (table->max_file_size < ioc_inode->st_size))) {
|
||||
&& (table->max_file_size < ioc_inode->ia_size))) {
|
||||
fd_ctx_set (fd, this, 1);
|
||||
}
|
||||
}
|
||||
ioc_inode_unlock (ioc_inode);
|
||||
|
||||
/* If mandatory locking has been enabled on this file,
|
||||
we disable caching on it */
|
||||
if (((inode->st_mode & S_ISGID)
|
||||
&& !(inode->st_mode & S_IXGRP))) {
|
||||
fd_ctx_set (fd, this, 1);
|
||||
}
|
||||
|
||||
/* If O_DIRECT open, we disable caching on it */
|
||||
if ((local->flags & O_DIRECT)){
|
||||
/* O_DIRECT is only for one fd, not the inode
|
||||
@ -591,8 +584,8 @@ ioc_open_cbk (call_frame_t *frame, void *cookie, xlator_t *this, int32_t op_ret,
|
||||
int32_t
|
||||
ioc_create_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
|
||||
int32_t op_ret, int32_t op_errno, fd_t *fd,
|
||||
inode_t *inode, struct stat *buf, struct stat *preparent,
|
||||
struct stat *postparent)
|
||||
inode_t *inode, struct iatt *buf, struct iatt *preparent,
|
||||
struct iatt *postparent)
|
||||
{
|
||||
ioc_local_t *local = NULL;
|
||||
ioc_table_t *table = NULL;
|
||||
@ -612,12 +605,12 @@ ioc_create_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
|
||||
|
||||
ioc_inode_lock (ioc_inode);
|
||||
{
|
||||
ioc_inode->cache.mtime = buf->st_mtime;
|
||||
ioc_inode->st_size = buf->st_size;
|
||||
ioc_inode->cache.mtime = buf->ia_mtime;
|
||||
ioc_inode->ia_size = buf->ia_size;
|
||||
|
||||
if ((table->min_file_size > ioc_inode->st_size)
|
||||
if ((table->min_file_size > ioc_inode->ia_size)
|
||||
|| ((table->max_file_size >= 0)
|
||||
&& (table->max_file_size < ioc_inode->st_size))) {
|
||||
&& (table->max_file_size < ioc_inode->ia_size))) {
|
||||
fd_ctx_set (fd, this, 1);
|
||||
}
|
||||
}
|
||||
@ -626,15 +619,6 @@ ioc_create_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
|
||||
inode_ctx_put (fd->inode, this,
|
||||
(uint64_t)(long)ioc_inode);
|
||||
|
||||
/*
|
||||
* If mandatory locking has been enabled on this file,
|
||||
* we disable caching on it
|
||||
*/
|
||||
if ((inode->st_mode & S_ISGID) &&
|
||||
!(inode->st_mode & S_IXGRP)) {
|
||||
fd_ctx_set (fd, this, 1);
|
||||
}
|
||||
|
||||
/* If O_DIRECT open, we disable caching on it */
|
||||
if (local->flags & O_DIRECT){
|
||||
/*
|
||||
@ -760,7 +744,7 @@ ioc_release (xlator_t *this, fd_t *fd)
|
||||
int32_t
|
||||
ioc_readv_disabled_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
|
||||
int32_t op_ret, int32_t op_errno, struct iovec *vector,
|
||||
int32_t count, struct stat *stbuf,
|
||||
int32_t count, struct iatt *stbuf,
|
||||
struct iobref *iobref)
|
||||
{
|
||||
STACK_UNWIND_STRICT (readv, frame, op_ret, op_errno, vector, count,
|
||||
@ -1082,8 +1066,8 @@ out:
|
||||
*/
|
||||
int32_t
|
||||
ioc_writev_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
|
||||
int32_t op_ret, int32_t op_errno, struct stat *prebuf,
|
||||
struct stat *postbuf)
|
||||
int32_t op_ret, int32_t op_errno, struct iatt *prebuf,
|
||||
struct iatt *postbuf)
|
||||
{
|
||||
ioc_local_t *local = NULL;
|
||||
uint64_t ioc_inode = 0;
|
||||
@ -1153,8 +1137,8 @@ ioc_writev (call_frame_t *frame, xlator_t *this, fd_t *fd,
|
||||
*/
|
||||
int32_t
|
||||
ioc_truncate_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
|
||||
int32_t op_ret, int32_t op_errno, struct stat *prebuf,
|
||||
struct stat *postbuf)
|
||||
int32_t op_ret, int32_t op_errno, struct iatt *prebuf,
|
||||
struct iatt *postbuf)
|
||||
{
|
||||
|
||||
STACK_UNWIND_STRICT (truncate, frame, op_ret, op_errno, prebuf,
|
||||
@ -1176,8 +1160,8 @@ ioc_truncate_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
|
||||
*/
|
||||
int32_t
|
||||
ioc_ftruncate_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
|
||||
int32_t op_ret, int32_t op_errno, struct stat *prebuf,
|
||||
struct stat *postbuf)
|
||||
int32_t op_ret, int32_t op_errno, struct iatt *prebuf,
|
||||
struct iatt *postbuf)
|
||||
{
|
||||
|
||||
STACK_UNWIND_STRICT (ftruncate, frame, op_ret, op_errno, prebuf,
|
||||
|
@ -141,7 +141,7 @@ struct ioc_cache {
|
||||
|
||||
struct ioc_inode {
|
||||
struct ioc_table *table;
|
||||
off_t st_size;
|
||||
off_t ia_size;
|
||||
struct ioc_cache cache;
|
||||
struct list_head inode_list; /*
|
||||
* list of inodes, maintained by
|
||||
@ -191,7 +191,7 @@ ptr_to_str (void *ptr);
|
||||
int32_t
|
||||
ioc_readv_disabled_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
|
||||
int32_t op_ret, int32_t op_errno, struct iovec *vector,
|
||||
int32_t count, struct stat *stbuf,
|
||||
int32_t count, struct iatt *stbuf,
|
||||
struct iobref *iobref);
|
||||
|
||||
ioc_page_t *
|
||||
@ -325,10 +325,10 @@ ioc_inode_flush (ioc_inode_t *ioc_inode);
|
||||
|
||||
void
|
||||
ioc_inode_wakeup (call_frame_t *frame, ioc_inode_t *ioc_inode,
|
||||
struct stat *stbuf);
|
||||
struct iatt *stbuf);
|
||||
|
||||
int8_t
|
||||
ioc_cache_still_valid (ioc_inode_t *ioc_inode, struct stat *stbuf);
|
||||
ioc_cache_still_valid (ioc_inode_t *ioc_inode, struct iatt *stbuf);
|
||||
|
||||
int32_t
|
||||
ioc_prune (ioc_table_t *table);
|
||||
|
@ -62,7 +62,7 @@ ptr_to_str (void *ptr)
|
||||
|
||||
void
|
||||
ioc_inode_wakeup (call_frame_t *frame, ioc_inode_t *ioc_inode,
|
||||
struct stat *stbuf)
|
||||
struct iatt *stbuf)
|
||||
{
|
||||
ioc_waitq_t *waiter = NULL, *waited = NULL;
|
||||
ioc_waitq_t *page_waitq = NULL;
|
||||
|
@ -282,17 +282,17 @@ out:
|
||||
* assumes ioc_inode is locked
|
||||
*/
|
||||
int8_t
|
||||
ioc_cache_still_valid (ioc_inode_t *ioc_inode, struct stat *stbuf)
|
||||
ioc_cache_still_valid (ioc_inode_t *ioc_inode, struct iatt *stbuf)
|
||||
{
|
||||
int8_t cache_still_valid = 1;
|
||||
|
||||
#if 0
|
||||
if (!stbuf || (stbuf->st_mtime != ioc_inode->cache.mtime) ||
|
||||
if (!stbuf || (stbuf->ia_mtime != ioc_inode->cache.mtime) ||
|
||||
(stbuf->st_mtim.tv_nsec != ioc_inode->stbuf.st_mtim.tv_nsec))
|
||||
cache_still_valid = 0;
|
||||
|
||||
#else
|
||||
if (!stbuf || (stbuf->st_mtime != ioc_inode->cache.mtime))
|
||||
if (!stbuf || (stbuf->ia_mtime != ioc_inode->cache.mtime))
|
||||
cache_still_valid = 0;
|
||||
|
||||
#endif
|
||||
@ -301,7 +301,7 @@ ioc_cache_still_valid (ioc_inode_t *ioc_inode, struct stat *stbuf)
|
||||
/* talk with avati@gluster.com to enable this section */
|
||||
if (!ioc_inode->mtime && stbuf) {
|
||||
cache_still_valid = 1;
|
||||
ioc_inode->mtime = stbuf->st_mtime;
|
||||
ioc_inode->mtime = stbuf->ia_mtime;
|
||||
}
|
||||
#endif
|
||||
|
||||
@ -329,7 +329,7 @@ ioc_waitq_return (ioc_waitq_t *waitq)
|
||||
int
|
||||
ioc_fault_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
|
||||
int32_t op_ret, int32_t op_errno, struct iovec *vector,
|
||||
int32_t count, struct stat *stbuf, struct iobref *iobref)
|
||||
int32_t count, struct iatt *stbuf, struct iobref *iobref)
|
||||
{
|
||||
ioc_local_t *local = NULL;
|
||||
off_t offset = 0;
|
||||
@ -353,7 +353,7 @@ ioc_fault_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
|
||||
payload_size = op_ret;
|
||||
|
||||
zero_filled = ((op_ret >=0)
|
||||
&& (stbuf->st_mtime == 0));
|
||||
&& (stbuf->ia_mtime == 0));
|
||||
|
||||
ioc_inode_lock (ioc_inode);
|
||||
{
|
||||
@ -367,7 +367,7 @@ ioc_fault_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
|
||||
}
|
||||
|
||||
if ((op_ret >= 0) && !zero_filled)
|
||||
ioc_inode->cache.mtime = stbuf->st_mtime;
|
||||
ioc_inode->cache.mtime = stbuf->ia_mtime;
|
||||
|
||||
gettimeofday (&ioc_inode->cache.tv, NULL);
|
||||
|
||||
@ -695,7 +695,7 @@ ioc_frame_unwind (call_frame_t *frame)
|
||||
struct iovec *vector = NULL;
|
||||
int32_t copied = 0;
|
||||
struct iobref *iobref = NULL;
|
||||
struct stat stbuf = {0,};
|
||||
struct iatt stbuf = {0,};
|
||||
int32_t op_ret = 0, op_errno = 0;
|
||||
|
||||
local = frame->local;
|
||||
|
@ -162,8 +162,8 @@ iot_schedule_ordered (iot_conf_t *conf, inode_t *inode, call_stub_t *stub)
|
||||
int
|
||||
iot_lookup_cbk (call_frame_t *frame, void * cookie, xlator_t *this,
|
||||
int32_t op_ret, int32_t op_errno,
|
||||
inode_t *inode, struct stat *buf, dict_t *xattr,
|
||||
struct stat *postparent)
|
||||
inode_t *inode, struct iatt *buf, dict_t *xattr,
|
||||
struct iatt *postparent)
|
||||
{
|
||||
STACK_UNWIND_STRICT (lookup, frame, op_ret, op_errno, inode, buf, xattr,
|
||||
postparent);
|
||||
@ -216,7 +216,7 @@ out:
|
||||
int
|
||||
iot_setattr_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
|
||||
int32_t op_ret, int32_t op_errno,
|
||||
struct stat *preop, struct stat *postop)
|
||||
struct iatt *preop, struct iatt *postop)
|
||||
{
|
||||
STACK_UNWIND_STRICT (setattr, frame, op_ret, op_errno, preop, postop);
|
||||
return 0;
|
||||
@ -225,7 +225,7 @@ iot_setattr_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
|
||||
|
||||
int
|
||||
iot_setattr_wrapper (call_frame_t *frame, xlator_t *this, loc_t *loc,
|
||||
struct stat *stbuf, int32_t valid)
|
||||
struct iatt *stbuf, int32_t valid)
|
||||
{
|
||||
STACK_WIND (frame, iot_setattr_cbk,
|
||||
FIRST_CHILD (this),
|
||||
@ -237,7 +237,7 @@ iot_setattr_wrapper (call_frame_t *frame, xlator_t *this, loc_t *loc,
|
||||
|
||||
int
|
||||
iot_setattr (call_frame_t *frame, xlator_t *this, loc_t *loc,
|
||||
struct stat *stbuf, int32_t valid)
|
||||
struct iatt *stbuf, int32_t valid)
|
||||
{
|
||||
call_stub_t *stub = NULL;
|
||||
int ret = -1;
|
||||
@ -269,7 +269,7 @@ out:
|
||||
int
|
||||
iot_fsetattr_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
|
||||
int32_t op_ret, int32_t op_errno,
|
||||
struct stat *preop, struct stat *postop)
|
||||
struct iatt *preop, struct iatt *postop)
|
||||
{
|
||||
STACK_UNWIND_STRICT (fsetattr, frame, op_ret, op_errno, preop, postop);
|
||||
return 0;
|
||||
@ -278,7 +278,7 @@ iot_fsetattr_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
|
||||
|
||||
int
|
||||
iot_fsetattr_wrapper (call_frame_t *frame, xlator_t *this,
|
||||
fd_t *fd, struct stat *stbuf, int32_t valid)
|
||||
fd_t *fd, struct iatt *stbuf, int32_t valid)
|
||||
{
|
||||
STACK_WIND (frame, iot_fsetattr_cbk, FIRST_CHILD (this),
|
||||
FIRST_CHILD (this)->fops->fsetattr, fd, stbuf, valid);
|
||||
@ -288,7 +288,7 @@ iot_fsetattr_wrapper (call_frame_t *frame, xlator_t *this,
|
||||
|
||||
int
|
||||
iot_fsetattr (call_frame_t *frame, xlator_t *this, fd_t *fd,
|
||||
struct stat *stbuf, int32_t valid)
|
||||
struct iatt *stbuf, int32_t valid)
|
||||
{
|
||||
call_stub_t *stub = NULL;
|
||||
int ret = -1;
|
||||
@ -366,7 +366,7 @@ out:
|
||||
int
|
||||
iot_readlink_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
|
||||
int32_t op_ret, int32_t op_errno, const char *path,
|
||||
struct stat *stbuf)
|
||||
struct iatt *stbuf)
|
||||
{
|
||||
STACK_UNWIND_STRICT (readlink, frame, op_ret, op_errno, path, stbuf);
|
||||
return 0;
|
||||
@ -418,8 +418,8 @@ out:
|
||||
int
|
||||
iot_mknod_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
|
||||
int32_t op_ret, int32_t op_errno, inode_t *inode,
|
||||
struct stat *buf, struct stat *preparent,
|
||||
struct stat *postparent)
|
||||
struct iatt *buf, struct iatt *preparent,
|
||||
struct iatt *postparent)
|
||||
{
|
||||
STACK_UNWIND_STRICT (mknod, frame, op_ret, op_errno, inode, buf,
|
||||
preparent, postparent);
|
||||
@ -471,8 +471,8 @@ out:
|
||||
int
|
||||
iot_mkdir_cbk (call_frame_t *frame, void * cookie, xlator_t *this,
|
||||
int32_t op_ret, int32_t op_errno, inode_t *inode,
|
||||
struct stat *buf, struct stat *preparent,
|
||||
struct stat *postparent)
|
||||
struct iatt *buf, struct iatt *preparent,
|
||||
struct iatt *postparent)
|
||||
{
|
||||
STACK_UNWIND_STRICT (mkdir, frame, op_ret, op_errno, inode, buf,
|
||||
preparent, postparent);
|
||||
@ -521,8 +521,8 @@ out:
|
||||
|
||||
int
|
||||
iot_rmdir_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
|
||||
int32_t op_ret, int32_t op_errno, struct stat *preparent,
|
||||
struct stat *postparent)
|
||||
int32_t op_ret, int32_t op_errno, struct iatt *preparent,
|
||||
struct iatt *postparent)
|
||||
{
|
||||
STACK_UNWIND_STRICT (rmdir, frame, op_ret, op_errno, preparent,
|
||||
postparent);
|
||||
@ -570,8 +570,8 @@ out:
|
||||
int
|
||||
iot_symlink_cbk (call_frame_t *frame, void * cookie, xlator_t *this,
|
||||
int32_t op_ret, int32_t op_errno, inode_t *inode,
|
||||
struct stat *buf, struct stat *preparent,
|
||||
struct stat *postparent)
|
||||
struct iatt *buf, struct iatt *preparent,
|
||||
struct iatt *postparent)
|
||||
{
|
||||
STACK_UNWIND_STRICT (symlink, frame, op_ret, op_errno, inode, buf,
|
||||
preparent, postparent);
|
||||
@ -622,9 +622,9 @@ out:
|
||||
|
||||
int
|
||||
iot_rename_cbk (call_frame_t *frame, void * cookie, xlator_t *this,
|
||||
int32_t op_ret, int32_t op_errno, struct stat *buf,
|
||||
struct stat *preoldparent, struct stat *postoldparent,
|
||||
struct stat *prenewparent, struct stat *postnewparent)
|
||||
int32_t op_ret, int32_t op_errno, struct iatt *buf,
|
||||
struct iatt *preoldparent, struct iatt *postoldparent,
|
||||
struct iatt *prenewparent, struct iatt *postnewparent)
|
||||
{
|
||||
STACK_UNWIND_STRICT (rename, frame, op_ret, op_errno, buf, preoldparent,
|
||||
postoldparent, prenewparent, postnewparent);
|
||||
@ -726,8 +726,8 @@ out:
|
||||
int
|
||||
iot_create_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
|
||||
int32_t op_ret, int32_t op_errno, fd_t *fd, inode_t *inode,
|
||||
struct stat *stbuf, struct stat *preparent,
|
||||
struct stat *postparent)
|
||||
struct iatt *stbuf, struct iatt *preparent,
|
||||
struct iatt *postparent)
|
||||
{
|
||||
STACK_UNWIND_STRICT (create, frame, op_ret, op_errno, fd, inode, stbuf,
|
||||
preparent, postparent);
|
||||
@ -784,7 +784,7 @@ out:
|
||||
int
|
||||
iot_readv_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
|
||||
int32_t op_ret, int32_t op_errno, struct iovec *vector,
|
||||
int32_t count, struct stat *stbuf, struct iobref *iobref)
|
||||
int32_t count, struct iatt *stbuf, struct iobref *iobref)
|
||||
{
|
||||
STACK_UNWIND_STRICT (readv, frame, op_ret, op_errno, vector, count,
|
||||
stbuf, iobref);
|
||||
@ -887,8 +887,8 @@ out:
|
||||
|
||||
int
|
||||
iot_fsync_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
|
||||
int32_t op_ret, int32_t op_errno, struct stat *prebuf,
|
||||
struct stat *postbuf)
|
||||
int32_t op_ret, int32_t op_errno, struct iatt *prebuf,
|
||||
struct iatt *postbuf)
|
||||
{
|
||||
STACK_UNWIND_STRICT (fsync, frame, op_ret, op_errno, prebuf, postbuf);
|
||||
return 0;
|
||||
@ -939,8 +939,8 @@ out:
|
||||
|
||||
int
|
||||
iot_writev_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
|
||||
int32_t op_ret, int32_t op_errno, struct stat *prebuf,
|
||||
struct stat *postbuf)
|
||||
int32_t op_ret, int32_t op_errno, struct iatt *prebuf,
|
||||
struct iatt *postbuf)
|
||||
{
|
||||
STACK_UNWIND_STRICT (writev, frame, op_ret, op_errno, prebuf, postbuf);
|
||||
return 0;
|
||||
@ -1048,7 +1048,7 @@ out:
|
||||
|
||||
int
|
||||
iot_stat_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
|
||||
int32_t op_ret, int32_t op_errno, struct stat *buf)
|
||||
int32_t op_ret, int32_t op_errno, struct iatt *buf)
|
||||
{
|
||||
STACK_UNWIND_STRICT (stat, frame, op_ret, op_errno, buf);
|
||||
return 0;
|
||||
@ -1108,7 +1108,7 @@ out:
|
||||
|
||||
int
|
||||
iot_fstat_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
|
||||
int32_t op_ret, int32_t op_errno, struct stat *buf)
|
||||
int32_t op_ret, int32_t op_errno, struct iatt *buf)
|
||||
{
|
||||
STACK_UNWIND_STRICT (fstat, frame, op_ret, op_errno, buf);
|
||||
return 0;
|
||||
@ -1157,8 +1157,8 @@ out:
|
||||
|
||||
int
|
||||
iot_truncate_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
|
||||
int32_t op_ret, int32_t op_errno, struct stat *prebuf,
|
||||
struct stat *postbuf)
|
||||
int32_t op_ret, int32_t op_errno, struct iatt *prebuf,
|
||||
struct iatt *postbuf)
|
||||
{
|
||||
STACK_UNWIND_STRICT (truncate, frame, op_ret, op_errno, prebuf,
|
||||
postbuf);
|
||||
@ -1220,8 +1220,8 @@ out:
|
||||
|
||||
int
|
||||
iot_ftruncate_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
|
||||
int32_t op_ret, int32_t op_errno, struct stat *prebuf,
|
||||
struct stat *postbuf)
|
||||
int32_t op_ret, int32_t op_errno, struct iatt *prebuf,
|
||||
struct iatt *postbuf)
|
||||
{
|
||||
STACK_UNWIND_STRICT (ftruncate, frame, op_ret, op_errno, prebuf,
|
||||
postbuf);
|
||||
@ -1324,8 +1324,8 @@ out:
|
||||
|
||||
int
|
||||
iot_unlink_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
|
||||
int32_t op_ret, int32_t op_errno, struct stat *preparent,
|
||||
struct stat *postparent)
|
||||
int32_t op_ret, int32_t op_errno, struct iatt *preparent,
|
||||
struct iatt *postparent)
|
||||
{
|
||||
STACK_UNWIND_STRICT (unlink, frame, op_ret, op_errno, preparent,
|
||||
postparent);
|
||||
@ -1378,7 +1378,7 @@ out:
|
||||
int
|
||||
iot_link_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
|
||||
int32_t op_ret, int32_t op_errno, inode_t *inode,
|
||||
struct stat *buf, struct stat *preparent, struct stat *postparent)
|
||||
struct iatt *buf, struct iatt *preparent, struct iatt *postparent)
|
||||
{
|
||||
STACK_UNWIND_STRICT (link, frame, op_ret, op_errno, inode, buf,
|
||||
preparent, postparent);
|
||||
|
@ -150,7 +150,7 @@ out:
|
||||
int32_t
|
||||
qr_lookup_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
|
||||
int32_t op_ret, int32_t op_errno, inode_t *inode,
|
||||
struct stat *buf, dict_t *dict, struct stat *postparent)
|
||||
struct iatt *buf, dict_t *dict, struct iatt *postparent)
|
||||
{
|
||||
data_t *content = NULL;
|
||||
qr_file_t *qr_file = NULL;
|
||||
@ -164,11 +164,11 @@ qr_lookup_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
|
||||
|
||||
conf = this->private;
|
||||
|
||||
if (buf->st_size > conf->max_file_size) {
|
||||
if (buf->ia_size > conf->max_file_size) {
|
||||
goto out;
|
||||
}
|
||||
|
||||
if (S_ISDIR (buf->st_mode)) {
|
||||
if (IA_ISDIR (buf->ia_type)) {
|
||||
goto out;
|
||||
}
|
||||
|
||||
@ -215,7 +215,7 @@ unlock:
|
||||
LOCK (&qr_file->lock);
|
||||
{
|
||||
if (qr_file->xattr
|
||||
&& (qr_file->stbuf.st_mtime != buf->st_mtime)) {
|
||||
&& (qr_file->stbuf.ia_mtime != buf->ia_mtime)) {
|
||||
dict_unref (qr_file->xattr);
|
||||
qr_file->xattr = NULL;
|
||||
}
|
||||
@ -546,7 +546,7 @@ qr_need_validation (qr_conf_t *conf, qr_file_t *file)
|
||||
|
||||
static int32_t
|
||||
qr_validate_cache_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
|
||||
int32_t op_ret, int32_t op_errno, struct stat *buf)
|
||||
int32_t op_ret, int32_t op_errno, struct iatt *buf)
|
||||
{
|
||||
qr_file_t *qr_file = NULL;
|
||||
qr_local_t *local = NULL;
|
||||
@ -580,7 +580,7 @@ qr_validate_cache_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
|
||||
|
||||
LOCK (&qr_file->lock);
|
||||
{
|
||||
if (qr_file->stbuf.st_mtime != buf->st_mtime) {
|
||||
if (qr_file->stbuf.ia_mtime != buf->ia_mtime) {
|
||||
dict_unref (qr_file->xattr);
|
||||
qr_file->xattr = NULL;
|
||||
}
|
||||
@ -729,7 +729,7 @@ out:
|
||||
int32_t
|
||||
qr_readv_cbk (call_frame_t *frame, void *cookie, xlator_t *this, int32_t op_ret,
|
||||
int32_t op_errno, struct iovec *vector, int32_t count,
|
||||
struct stat *stbuf, struct iobref *iobref)
|
||||
struct iatt *stbuf, struct iobref *iobref)
|
||||
{
|
||||
STACK_UNWIND_STRICT (readv, frame, op_ret, op_errno, vector, count,
|
||||
stbuf, iobref);
|
||||
@ -759,7 +759,7 @@ qr_readv (call_frame_t *frame, xlator_t *this, fd_t *fd, size_t size,
|
||||
char need_open = 0, can_wind = 0, need_unwind = 0;
|
||||
struct iobuf *iobuf = NULL;
|
||||
struct iobref *iobref = NULL;
|
||||
struct stat stbuf = {0, };
|
||||
struct iatt stbuf = {0, };
|
||||
data_t *content = NULL;
|
||||
qr_fd_ctx_t *qr_fd_ctx = NULL;
|
||||
call_stub_t *stub = NULL;
|
||||
@ -978,8 +978,8 @@ out:
|
||||
|
||||
int32_t
|
||||
qr_writev_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
|
||||
int32_t op_ret, int32_t op_errno, struct stat *prebuf,
|
||||
struct stat *postbuf)
|
||||
int32_t op_ret, int32_t op_errno, struct iatt *prebuf,
|
||||
struct iatt *postbuf)
|
||||
{
|
||||
STACK_UNWIND_STRICT (writev, frame, op_ret, op_errno, prebuf, postbuf);
|
||||
return 0;
|
||||
@ -1098,7 +1098,7 @@ out:
|
||||
|
||||
int32_t
|
||||
qr_fstat_cbk (call_frame_t *frame, void *cookie, xlator_t *this, int32_t op_ret,
|
||||
int32_t op_errno, struct stat *buf)
|
||||
int32_t op_errno, struct iatt *buf)
|
||||
{
|
||||
STACK_UNWIND_STRICT (fstat, frame, op_ret, op_errno, buf);
|
||||
return 0;
|
||||
@ -1195,7 +1195,7 @@ out:
|
||||
int32_t
|
||||
qr_fsetattr_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
|
||||
int32_t op_ret, int32_t op_errno,
|
||||
struct stat *preop, struct stat *postop)
|
||||
struct iatt *preop, struct iatt *postop)
|
||||
{
|
||||
STACK_UNWIND_STRICT (fsetattr, frame, op_ret, op_errno, preop, postop);
|
||||
return 0;
|
||||
@ -1204,7 +1204,7 @@ qr_fsetattr_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
|
||||
|
||||
int32_t
|
||||
qr_fsetattr_helper (call_frame_t *frame, xlator_t *this, fd_t *fd,
|
||||
struct stat *stbuf, int32_t valid)
|
||||
struct iatt *stbuf, int32_t valid)
|
||||
{
|
||||
STACK_WIND(frame, qr_fsetattr_cbk, FIRST_CHILD(this),
|
||||
FIRST_CHILD(this)->fops->fsetattr, fd, stbuf,
|
||||
@ -1215,7 +1215,7 @@ qr_fsetattr_helper (call_frame_t *frame, xlator_t *this, fd_t *fd,
|
||||
|
||||
int32_t
|
||||
qr_fsetattr (call_frame_t *frame, xlator_t *this, fd_t *fd,
|
||||
struct stat *stbuf, int32_t valid)
|
||||
struct iatt *stbuf, int32_t valid)
|
||||
{
|
||||
uint64_t value = 0;
|
||||
int flags = 0;
|
||||
@ -1765,7 +1765,7 @@ out:
|
||||
|
||||
int32_t
|
||||
qr_fsync_cbk (call_frame_t *frame, void *cookie, xlator_t *this, int32_t op_ret,
|
||||
int32_t op_errno, struct stat *prebuf, struct stat *postbuf)
|
||||
int32_t op_errno, struct iatt *prebuf, struct iatt *postbuf)
|
||||
{
|
||||
STACK_UNWIND_STRICT (fsync, frame, op_ret, op_errno, prebuf, postbuf);
|
||||
return 0;
|
||||
@ -1859,8 +1859,8 @@ out:
|
||||
|
||||
int32_t
|
||||
qr_ftruncate_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
|
||||
int32_t op_ret, int32_t op_errno, struct stat *prebuf,
|
||||
struct stat *postbuf)
|
||||
int32_t op_ret, int32_t op_errno, struct iatt *prebuf,
|
||||
struct iatt *postbuf)
|
||||
{
|
||||
int32_t ret = 0;
|
||||
uint64_t value = 0;
|
||||
@ -1886,7 +1886,7 @@ qr_ftruncate_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
|
||||
if (qr_file) {
|
||||
LOCK (&qr_file->lock);
|
||||
{
|
||||
if (qr_file->stbuf.st_size != postbuf->st_size)
|
||||
if (qr_file->stbuf.ia_size != postbuf->ia_size)
|
||||
{
|
||||
dict_unref (qr_file->xattr);
|
||||
qr_file->xattr = NULL;
|
||||
|
@ -66,7 +66,7 @@ typedef struct qr_local qr_local_t;
|
||||
|
||||
struct qr_file {
|
||||
dict_t *xattr;
|
||||
struct stat stbuf;
|
||||
struct iatt stbuf;
|
||||
struct timeval tv;
|
||||
gf_lock_t lock;
|
||||
};
|
||||
|
@ -131,7 +131,7 @@ ra_waitq_return (ra_waitq_t *waitq)
|
||||
int
|
||||
ra_fault_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
|
||||
int32_t op_ret, int32_t op_errno, struct iovec *vector,
|
||||
int32_t count, struct stat *stbuf, struct iobref *iobref)
|
||||
int32_t count, struct iatt *stbuf, struct iobref *iobref)
|
||||
{
|
||||
ra_local_t *local = NULL;
|
||||
off_t pending_offset = 0;
|
||||
|
@ -70,12 +70,6 @@ ra_open_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
|
||||
|
||||
ret = fd_ctx_set (fd, this, (uint64_t)(long)file);
|
||||
|
||||
/* If mandatory locking has been enabled on this file,
|
||||
we disable caching on it */
|
||||
|
||||
if ((fd->inode->st_mode & S_ISGID) && !(fd->inode->st_mode & S_IXGRP))
|
||||
file->disabled = 1;
|
||||
|
||||
/* If O_DIRECT open, we disable caching on it */
|
||||
|
||||
if ((fd->flags & O_DIRECT) || ((fd->flags & O_ACCMODE) == O_WRONLY))
|
||||
@ -122,8 +116,8 @@ unwind:
|
||||
int
|
||||
ra_create_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
|
||||
int32_t op_ret, int32_t op_errno, fd_t *fd, inode_t *inode,
|
||||
struct stat *buf, struct stat *preparent,
|
||||
struct stat *postparent)
|
||||
struct iatt *buf, struct iatt *preparent,
|
||||
struct iatt *postparent)
|
||||
{
|
||||
ra_conf_t *conf = NULL;
|
||||
ra_file_t *file = NULL;
|
||||
@ -146,19 +140,13 @@ ra_create_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
|
||||
|
||||
ret = fd_ctx_set (fd, this, (uint64_t)(long)file);
|
||||
|
||||
/* If mandatory locking has been enabled on this file,
|
||||
we disable caching on it */
|
||||
|
||||
if ((fd->inode->st_mode & S_ISGID) && !(fd->inode->st_mode & S_IXGRP))
|
||||
file->disabled = 1;
|
||||
|
||||
/* If O_DIRECT open, we disable caching on it */
|
||||
|
||||
if ((fd->flags & O_DIRECT) || ((fd->flags & O_ACCMODE) == O_WRONLY))
|
||||
file->disabled = 1;
|
||||
|
||||
file->offset = (unsigned long long) 0;
|
||||
//file->size = fd->inode->buf.st_size;
|
||||
//file->size = fd->inode->buf.ia_size;
|
||||
file->conf = conf;
|
||||
file->pages.next = &file->pages;
|
||||
file->pages.prev = &file->pages;
|
||||
@ -330,7 +318,7 @@ read_ahead (call_frame_t *frame, ra_file_t *file)
|
||||
int
|
||||
ra_need_atime_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
|
||||
int32_t op_ret, int32_t op_errno, struct iovec *vector,
|
||||
int32_t count, struct stat *stbuf, struct iobref *iobref)
|
||||
int32_t count, struct iatt *stbuf, struct iobref *iobref)
|
||||
{
|
||||
STACK_DESTROY (frame->root);
|
||||
return 0;
|
||||
@ -425,7 +413,7 @@ out:
|
||||
int
|
||||
ra_readv_disabled_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
|
||||
int32_t op_ret, int32_t op_errno, struct iovec *vector,
|
||||
int32_t count, struct stat *stbuf, struct iobref *iobref)
|
||||
int32_t count, struct iatt *stbuf, struct iobref *iobref)
|
||||
{
|
||||
STACK_UNWIND_STRICT (readv, frame, op_ret, op_errno, vector, count,
|
||||
stbuf, iobref);
|
||||
@ -543,7 +531,7 @@ ra_flush_cbk (call_frame_t *frame, void *cookie, xlator_t *this, int32_t op_ret,
|
||||
|
||||
int
|
||||
ra_fsync_cbk (call_frame_t *frame, void *cookie, xlator_t *this, int32_t op_ret,
|
||||
int32_t op_errno, struct stat *prebuf, struct stat *postbuf)
|
||||
int32_t op_errno, struct iatt *prebuf, struct iatt *postbuf)
|
||||
{
|
||||
STACK_UNWIND_STRICT (fsync, frame, op_ret, op_errno, prebuf, postbuf);
|
||||
return 0;
|
||||
@ -616,8 +604,8 @@ unwind:
|
||||
|
||||
int
|
||||
ra_writev_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
|
||||
int32_t op_ret, int32_t op_errno, struct stat *prebuf,
|
||||
struct stat *postbuf)
|
||||
int32_t op_ret, int32_t op_errno, struct iatt *prebuf,
|
||||
struct iatt *postbuf)
|
||||
{
|
||||
fd_t *fd = NULL;
|
||||
ra_file_t *file = NULL;
|
||||
@ -677,8 +665,8 @@ unwind:
|
||||
|
||||
int
|
||||
ra_truncate_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
|
||||
int32_t op_ret, int32_t op_errno, struct stat *prebuf,
|
||||
struct stat *postbuf)
|
||||
int32_t op_ret, int32_t op_errno, struct iatt *prebuf,
|
||||
struct iatt *postbuf)
|
||||
{
|
||||
STACK_UNWIND_STRICT (truncate, frame, op_ret, op_errno, prebuf,
|
||||
postbuf);
|
||||
@ -688,7 +676,7 @@ ra_truncate_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
|
||||
|
||||
int
|
||||
ra_attr_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
|
||||
int32_t op_ret, int32_t op_errno, struct stat *buf)
|
||||
int32_t op_ret, int32_t op_errno, struct iatt *buf)
|
||||
{
|
||||
STACK_UNWIND_STRICT (stat, frame, op_ret, op_errno, buf);
|
||||
return 0;
|
||||
|
@ -98,7 +98,7 @@ struct ra_file {
|
||||
size_t size;
|
||||
int32_t refcount;
|
||||
pthread_mutex_t file_lock;
|
||||
struct stat stbuf;
|
||||
struct iatt stbuf;
|
||||
uint64_t page_size;
|
||||
uint32_t page_count;
|
||||
};
|
||||
|
@ -87,7 +87,7 @@ out:
|
||||
int
|
||||
sp_update_inode_ctx (xlator_t *this, inode_t *inode, int32_t *op_ret,
|
||||
int32_t *op_errno, char *lookup_in_progress,
|
||||
char *looked_up, struct stat *stbuf,
|
||||
char *looked_up, struct iatt *stbuf,
|
||||
struct list_head *waiting_ops, int32_t *error)
|
||||
{
|
||||
int32_t ret = 0;
|
||||
@ -127,7 +127,7 @@ sp_update_inode_ctx (xlator_t *this, inode_t *inode, int32_t *op_ret,
|
||||
}
|
||||
|
||||
if ((op_ret == 0) && (stbuf != NULL)
|
||||
&& S_ISDIR (stbuf->st_mode)) {
|
||||
&& IA_ISDIR (stbuf->ia_type)) {
|
||||
memcpy (&inode_ctx->stbuf, stbuf,
|
||||
sizeof (*stbuf));
|
||||
}
|
||||
@ -695,7 +695,7 @@ sp_cache_add_entries (sp_cache_t *cache, gf_dirent_t *entries)
|
||||
LOCK (&cache->lock);
|
||||
{
|
||||
list_for_each_entry (entry, &entries->list, list) {
|
||||
if (S_ISDIR (entry->d_stat.st_mode)) {
|
||||
if (IA_ISDIR (entry->d_stat.ia_type)) {
|
||||
continue;
|
||||
}
|
||||
|
||||
@ -734,7 +734,7 @@ unlock:
|
||||
int32_t
|
||||
sp_lookup_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
|
||||
int32_t op_ret, int32_t op_errno, inode_t *inode,
|
||||
struct stat *buf, dict_t *dict, struct stat *postparent)
|
||||
struct iatt *buf, dict_t *dict, struct iatt *postparent)
|
||||
{
|
||||
int ret = 0;
|
||||
struct list_head waiting_ops = {0, };
|
||||
@ -972,7 +972,7 @@ sp_lookup (call_frame_t *frame, xlator_t *this, loc_t *loc, dict_t *xattr_req)
|
||||
uint64_t value = 0;
|
||||
char xattr_req_empty = 1, can_wind = 0;
|
||||
sp_cache_t *cache = NULL;
|
||||
struct stat postparent = {0, }, buf = {0, };
|
||||
struct iatt postparent = {0, }, buf = {0, };
|
||||
int32_t ret = -1, op_ret = -1, op_errno = EINVAL;
|
||||
sp_inode_ctx_t *inode_ctx = NULL, *parent_inode_ctx = NULL;
|
||||
sp_local_t *local = NULL;
|
||||
@ -1017,7 +1017,7 @@ sp_lookup (call_frame_t *frame, xlator_t *this, loc_t *loc, dict_t *xattr_req)
|
||||
|
||||
FREE (dirent);
|
||||
}
|
||||
} else if (S_ISDIR (loc->inode->st_mode)) {
|
||||
} else if (IA_ISDIR (loc->inode->ia_type)) {
|
||||
cache = sp_get_cache_inode (this, loc->inode, frame->root->pid);
|
||||
if (cache) {
|
||||
ret = sp_cache_get_entry (cache, ".", &dirent);
|
||||
@ -1230,8 +1230,8 @@ unwind:
|
||||
|
||||
int32_t
|
||||
sp_truncate_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
|
||||
int32_t op_ret, int32_t op_errno, struct stat *prebuf,
|
||||
struct stat *postbuf)
|
||||
int32_t op_ret, int32_t op_errno, struct iatt *prebuf,
|
||||
struct iatt *postbuf)
|
||||
{
|
||||
SP_STACK_UNWIND (truncate, frame, op_ret, op_errno, prebuf, postbuf);
|
||||
return 0;
|
||||
@ -1241,9 +1241,9 @@ sp_truncate_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
|
||||
|
||||
int32_t
|
||||
sp_rename_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
|
||||
int32_t op_ret, int32_t op_errno, struct stat *buf,
|
||||
struct stat *preoldparent, struct stat *postoldparent,
|
||||
struct stat *prenewparent, struct stat *postnewparent)
|
||||
int32_t op_ret, int32_t op_errno, struct iatt *buf,
|
||||
struct iatt *preoldparent, struct iatt *postoldparent,
|
||||
struct iatt *prenewparent, struct iatt *postnewparent)
|
||||
{
|
||||
SP_STACK_UNWIND (rename, frame, op_ret, op_errno, buf, preoldparent,
|
||||
postoldparent, prenewparent, postnewparent);
|
||||
@ -1381,8 +1381,8 @@ out:
|
||||
static int32_t
|
||||
sp_create_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
|
||||
int32_t op_ret, int32_t op_errno, fd_t *fd, inode_t *inode,
|
||||
struct stat *buf, struct stat *preparent,
|
||||
struct stat *postparent)
|
||||
struct iatt *buf, struct iatt *preparent,
|
||||
struct iatt *postparent)
|
||||
{
|
||||
sp_local_t *local = NULL;
|
||||
sp_fd_ctx_t *fd_ctx = NULL;
|
||||
@ -1582,8 +1582,8 @@ out:
|
||||
int32_t
|
||||
sp_new_entry_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
|
||||
int32_t op_ret, int32_t op_errno, inode_t *inode,
|
||||
struct stat *buf, struct stat *preparent,
|
||||
struct stat *postparent)
|
||||
struct iatt *buf, struct iatt *preparent,
|
||||
struct iatt *postparent)
|
||||
{
|
||||
sp_local_t *local = NULL;
|
||||
char lookup_in_progress = 0, looked_up = 0;
|
||||
@ -1807,8 +1807,8 @@ out:
|
||||
int32_t
|
||||
sp_link_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
|
||||
int32_t op_ret, int32_t op_errno, inode_t *inode,
|
||||
struct stat *buf, struct stat *preparent,
|
||||
struct stat *postparent)
|
||||
struct iatt *buf, struct iatt *preparent,
|
||||
struct iatt *postparent)
|
||||
{
|
||||
SP_STACK_UNWIND (link, frame, op_ret, op_errno, inode, buf, preparent,
|
||||
postparent);
|
||||
@ -2049,7 +2049,7 @@ unwind:
|
||||
int32_t
|
||||
sp_setattr_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
|
||||
int32_t op_ret, int32_t op_errno,
|
||||
struct stat *prestat, struct stat *poststat)
|
||||
struct iatt *prestat, struct iatt *poststat)
|
||||
{
|
||||
SP_STACK_UNWIND (setattr, frame, op_ret, op_errno, prestat, poststat);
|
||||
return 0;
|
||||
@ -2058,7 +2058,7 @@ sp_setattr_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
|
||||
|
||||
int
|
||||
sp_setattr_helper (call_frame_t *frame, xlator_t *this,
|
||||
loc_t *loc, struct stat *buf, int32_t valid)
|
||||
loc_t *loc, struct iatt *buf, int32_t valid)
|
||||
{
|
||||
uint64_t value = 0;
|
||||
sp_inode_ctx_t *inode_ctx = NULL;
|
||||
@ -2100,7 +2100,7 @@ unwind:
|
||||
|
||||
int
|
||||
sp_setattr (call_frame_t *frame, xlator_t *this,
|
||||
loc_t *loc, struct stat *buf, int32_t valid)
|
||||
loc_t *loc, struct iatt *buf, int32_t valid)
|
||||
{
|
||||
sp_cache_t *cache = NULL;
|
||||
int32_t op_errno = -1;
|
||||
@ -2149,7 +2149,7 @@ out:
|
||||
int32_t
|
||||
sp_readlink_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
|
||||
int32_t op_ret, int32_t op_errno, const char *path,
|
||||
struct stat *buf)
|
||||
struct iatt *buf)
|
||||
{
|
||||
SP_STACK_UNWIND (readlink, frame, op_ret, op_errno, path, buf);
|
||||
return 0;
|
||||
@ -2247,8 +2247,8 @@ out:
|
||||
|
||||
int32_t
|
||||
sp_unlink_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
|
||||
int32_t op_ret, int32_t op_errno, struct stat *preparent,
|
||||
struct stat *postparent)
|
||||
int32_t op_ret, int32_t op_errno, struct iatt *preparent,
|
||||
struct iatt *postparent)
|
||||
{
|
||||
SP_STACK_UNWIND (unlink, frame, op_ret, op_errno, preparent,
|
||||
postparent);
|
||||
@ -2487,7 +2487,7 @@ out:
|
||||
int32_t
|
||||
sp_readv_cbk (call_frame_t *frame, void *cookie, xlator_t *this, int32_t op_ret,
|
||||
int32_t op_errno, struct iovec *vector, int32_t count,
|
||||
struct stat *stbuf, struct iobref *iobref)
|
||||
struct iatt *stbuf, struct iobref *iobref)
|
||||
{
|
||||
SP_STACK_UNWIND (readv, frame, op_ret, op_errno, vector, count, stbuf,
|
||||
iobref);
|
||||
@ -2754,7 +2754,7 @@ sp_rename (call_frame_t *frame, xlator_t *this, loc_t *oldloc,loc_t *newloc)
|
||||
goto out;
|
||||
}
|
||||
|
||||
if (S_ISDIR (oldloc->inode->st_mode)) {
|
||||
if (IA_ISDIR (oldloc->inode->ia_type)) {
|
||||
sp_remove_caches_from_all_fds_opened (this, oldloc->inode);
|
||||
}
|
||||
|
||||
@ -3178,7 +3178,7 @@ sp_getdents_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
|
||||
cache = sp_get_cache_fd (this, local->fd);
|
||||
if (cache) {
|
||||
for (trav = entries->next; trav; trav = trav->next) {
|
||||
if (S_ISLNK (trav->buf.st_mode)) {
|
||||
if (IA_ISLNK (trav->buf.ia_type)) {
|
||||
sp_cache_remove_entry (cache, trav->name, 0);
|
||||
}
|
||||
}
|
||||
@ -3476,7 +3476,7 @@ unwind:
|
||||
|
||||
int32_t
|
||||
sp_stbuf_cbk (call_frame_t *frame, void *cookie, xlator_t *this, int32_t op_ret,
|
||||
int32_t op_errno, struct stat *buf)
|
||||
int32_t op_errno, struct iatt *buf)
|
||||
{
|
||||
STACK_UNWIND (frame, op_ret, op_errno, buf);
|
||||
return 0;
|
||||
@ -3812,7 +3812,7 @@ out:
|
||||
int32_t
|
||||
sp_forget (xlator_t *this, inode_t *inode)
|
||||
{
|
||||
struct stat *buf = NULL;
|
||||
struct iatt *buf = NULL;
|
||||
uint64_t value = 0;
|
||||
|
||||
inode_ctx_del (inode, this, &value);
|
||||
|
@ -73,7 +73,7 @@ struct sp_inode_ctx {
|
||||
char need_unwind;
|
||||
int32_t op_ret;
|
||||
int32_t op_errno;
|
||||
struct stat stbuf;
|
||||
struct iatt stbuf;
|
||||
gf_lock_t lock;
|
||||
struct list_head waiting_ops;
|
||||
};
|
||||
|
@ -90,7 +90,7 @@ sc_cache_update (xlator_t *this, inode_t *inode, const char *link)
|
||||
|
||||
|
||||
int
|
||||
sc_cache_set (xlator_t *this, inode_t *inode, struct stat *buf,
|
||||
sc_cache_set (xlator_t *this, inode_t *inode, struct iatt *buf,
|
||||
const char *link)
|
||||
{
|
||||
struct symlink_cache *sc = NULL;
|
||||
@ -126,7 +126,7 @@ sc_cache_set (xlator_t *this, inode_t *inode, struct stat *buf,
|
||||
}
|
||||
}
|
||||
|
||||
sc->ctime = buf->st_ctime;
|
||||
sc->ctime = buf->ia_ctime;
|
||||
|
||||
gf_log (this->name, GF_LOG_DEBUG,
|
||||
"setting symlink cache: %s", link);
|
||||
@ -180,12 +180,12 @@ sc_cache_flush (xlator_t *this, inode_t *inode)
|
||||
|
||||
|
||||
int
|
||||
sc_cache_validate (xlator_t *this, inode_t *inode, struct stat *buf)
|
||||
sc_cache_validate (xlator_t *this, inode_t *inode, struct iatt *buf)
|
||||
{
|
||||
struct symlink_cache *sc = NULL;
|
||||
uint64_t tmp_sc = 0;
|
||||
|
||||
if (!S_ISLNK (buf->st_mode)) {
|
||||
if (!IA_ISLNK (buf->ia_type)) {
|
||||
sc_cache_flush (this, inode);
|
||||
return 0;
|
||||
}
|
||||
@ -204,7 +204,7 @@ sc_cache_validate (xlator_t *this, inode_t *inode, struct stat *buf)
|
||||
sc = (struct symlink_cache *)(long)tmp_sc;
|
||||
}
|
||||
|
||||
if (sc->ctime == buf->st_ctime)
|
||||
if (sc->ctime == buf->ia_ctime)
|
||||
return 0;
|
||||
|
||||
/* STALE */
|
||||
@ -216,7 +216,7 @@ sc_cache_validate (xlator_t *this, inode_t *inode, struct stat *buf)
|
||||
sc->readlink = NULL;
|
||||
}
|
||||
|
||||
sc->ctime = buf->st_ctime;
|
||||
sc->ctime = buf->ia_ctime;
|
||||
|
||||
return 0;
|
||||
}
|
||||
@ -242,7 +242,7 @@ sc_cache_get (xlator_t *this, inode_t *inode, char **link)
|
||||
int
|
||||
sc_readlink_cbk (call_frame_t *frame, void *cookie,
|
||||
xlator_t *this, int op_ret, int op_errno,
|
||||
const char *link, struct stat *sbuf)
|
||||
const char *link, struct iatt *sbuf)
|
||||
{
|
||||
if (op_ret > 0)
|
||||
sc_cache_update (this, frame->local, link);
|
||||
@ -260,7 +260,7 @@ sc_readlink (call_frame_t *frame, xlator_t *this,
|
||||
loc_t *loc, size_t size)
|
||||
{
|
||||
char *link = NULL;
|
||||
struct stat buf = {0, };
|
||||
struct iatt buf = {0, };
|
||||
|
||||
sc_cache_get (this, loc->inode, &link);
|
||||
|
||||
@ -294,8 +294,8 @@ sc_readlink (call_frame_t *frame, xlator_t *this,
|
||||
int
|
||||
sc_symlink_cbk (call_frame_t *frame, void *cookie,
|
||||
xlator_t *this, int op_ret, int op_errno,
|
||||
inode_t *inode, struct stat *buf, struct stat *preparent,
|
||||
struct stat *postparent)
|
||||
inode_t *inode, struct iatt *buf, struct iatt *preparent,
|
||||
struct iatt *postparent)
|
||||
{
|
||||
if (op_ret == 0) {
|
||||
if (frame->local) {
|
||||
@ -327,8 +327,8 @@ sc_symlink (call_frame_t *frame, xlator_t *this,
|
||||
int
|
||||
sc_lookup_cbk (call_frame_t *frame, void *cookie,
|
||||
xlator_t *this, int op_ret, int op_errno,
|
||||
inode_t *inode, struct stat *buf, dict_t *xattr,
|
||||
struct stat *postparent)
|
||||
inode_t *inode, struct iatt *buf, dict_t *xattr,
|
||||
struct iatt *postparent)
|
||||
{
|
||||
if (op_ret == 0)
|
||||
sc_cache_validate (this, inode, buf);
|
||||
|
@ -316,7 +316,7 @@ wb_file_destroy (wb_file_t *file)
|
||||
|
||||
int32_t
|
||||
wb_sync_cbk (call_frame_t *frame, void *cookie, xlator_t *this, int32_t op_ret,
|
||||
int32_t op_errno, struct stat *prebuf, struct stat *postbuf)
|
||||
int32_t op_errno, struct iatt *prebuf, struct iatt *postbuf)
|
||||
{
|
||||
wb_local_t *local = NULL;
|
||||
list_head_t *winds = NULL;
|
||||
@ -522,7 +522,7 @@ out:
|
||||
|
||||
int32_t
|
||||
wb_stat_cbk (call_frame_t *frame, void *cookie, xlator_t *this, int32_t op_ret,
|
||||
int32_t op_errno, struct stat *buf)
|
||||
int32_t op_errno, struct iatt *buf)
|
||||
{
|
||||
wb_local_t *local = NULL;
|
||||
wb_request_t *request = NULL;
|
||||
@ -666,7 +666,7 @@ unwind:
|
||||
|
||||
int32_t
|
||||
wb_fstat_cbk (call_frame_t *frame, void *cookie, xlator_t *this, int32_t op_ret,
|
||||
int32_t op_errno, struct stat *buf)
|
||||
int32_t op_errno, struct iatt *buf)
|
||||
{
|
||||
wb_local_t *local = NULL;
|
||||
wb_request_t *request = NULL;
|
||||
@ -715,7 +715,7 @@ wb_fstat (call_frame_t *frame, xlator_t *this, fd_t *fd)
|
||||
int32_t ret = -1;
|
||||
int op_errno = EINVAL;
|
||||
|
||||
if ((!S_ISDIR (fd->inode->st_mode))
|
||||
if ((!IA_ISDIR (fd->inode->ia_type))
|
||||
&& fd_ctx_get (fd, this, &tmp_file)) {
|
||||
gf_log (this->name, GF_LOG_DEBUG, "write behind file pointer is"
|
||||
" not stored in context of fd(%p), returning EBADFD",
|
||||
@ -779,8 +779,8 @@ unwind:
|
||||
|
||||
int32_t
|
||||
wb_truncate_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
|
||||
int32_t op_ret, int32_t op_errno, struct stat *prebuf,
|
||||
struct stat *postbuf)
|
||||
int32_t op_ret, int32_t op_errno, struct iatt *prebuf,
|
||||
struct iatt *postbuf)
|
||||
{
|
||||
wb_local_t *local = NULL;
|
||||
wb_request_t *request = NULL;
|
||||
@ -929,8 +929,8 @@ unwind:
|
||||
|
||||
int32_t
|
||||
wb_ftruncate_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
|
||||
int32_t op_ret, int32_t op_errno, struct stat *prebuf,
|
||||
struct stat *postbuf)
|
||||
int32_t op_ret, int32_t op_errno, struct iatt *prebuf,
|
||||
struct iatt *postbuf)
|
||||
{
|
||||
wb_local_t *local = NULL;
|
||||
wb_request_t *request = NULL;
|
||||
@ -981,7 +981,7 @@ wb_ftruncate (call_frame_t *frame, xlator_t *this, fd_t *fd, off_t offset)
|
||||
int32_t ret = -1;
|
||||
int op_errno = EINVAL;
|
||||
|
||||
if ((!S_ISDIR (fd->inode->st_mode))
|
||||
if ((!IA_ISDIR (fd->inode->ia_type))
|
||||
&& fd_ctx_get (fd, this, &tmp_file)) {
|
||||
gf_log (this->name, GF_LOG_DEBUG, "write behind file pointer is"
|
||||
" not stored in context of fd(%p), returning EBADFD",
|
||||
@ -1048,7 +1048,7 @@ unwind:
|
||||
|
||||
int32_t
|
||||
wb_setattr_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
|
||||
int32_t op_ret, int32_t op_errno, struct stat *statpre, struct stat *statpost)
|
||||
int32_t op_ret, int32_t op_errno, struct iatt *statpre, struct iatt *statpost)
|
||||
{
|
||||
wb_local_t *local = NULL;
|
||||
wb_request_t *request = NULL;
|
||||
@ -1105,7 +1105,7 @@ wb_setattr_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
|
||||
|
||||
static int32_t
|
||||
wb_setattr_helper (call_frame_t *frame, xlator_t *this, loc_t *loc,
|
||||
struct stat *stbuf, int32_t valid)
|
||||
struct iatt *stbuf, int32_t valid)
|
||||
{
|
||||
STACK_WIND (frame,
|
||||
wb_setattr_cbk,
|
||||
@ -1121,7 +1121,7 @@ wb_setattr_helper (call_frame_t *frame, xlator_t *this, loc_t *loc,
|
||||
|
||||
int32_t
|
||||
wb_setattr (call_frame_t *frame, xlator_t *this, loc_t *loc,
|
||||
struct stat *stbuf, int32_t valid)
|
||||
struct iatt *stbuf, int32_t valid)
|
||||
{
|
||||
wb_file_t *file = NULL;
|
||||
fd_t *iter_fd = NULL;
|
||||
@ -1235,15 +1235,6 @@ wb_open_cbk (call_frame_t *frame, void *cookie, xlator_t *this, int32_t op_ret,
|
||||
goto out;
|
||||
}
|
||||
|
||||
/*
|
||||
If mandatory locking has been enabled on this file,
|
||||
we disable caching on it
|
||||
*/
|
||||
|
||||
if ((fd->inode->st_mode & S_ISGID)
|
||||
&& !(fd->inode->st_mode & S_IXGRP))
|
||||
file->disabled = 1;
|
||||
|
||||
/* If O_DIRECT then, we disable chaching */
|
||||
if (((flags & O_DIRECT) == O_DIRECT)
|
||||
|| ((flags & O_ACCMODE) == O_RDONLY)
|
||||
@ -1299,8 +1290,8 @@ unwind:
|
||||
int32_t
|
||||
wb_create_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
|
||||
int32_t op_ret, int32_t op_errno, fd_t *fd, inode_t *inode,
|
||||
struct stat *buf, struct stat *preparent,
|
||||
struct stat *postparent)
|
||||
struct iatt *buf, struct iatt *preparent,
|
||||
struct iatt *postparent)
|
||||
{
|
||||
long flags = 0;
|
||||
wb_file_t *file = NULL;
|
||||
@ -1313,13 +1304,6 @@ wb_create_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
|
||||
op_errno = ENOMEM;
|
||||
goto out;
|
||||
}
|
||||
/*
|
||||
* If mandatory locking has been enabled on this file,
|
||||
* we disable caching on it
|
||||
*/
|
||||
if ((fd->inode->st_mode & S_ISGID)
|
||||
&& !(fd->inode->st_mode & S_IXGRP))
|
||||
file->disabled = 1;
|
||||
|
||||
/* If O_DIRECT then, we disable chaching */
|
||||
if (frame->local) {
|
||||
@ -1571,7 +1555,7 @@ __wb_get_other_requests (list_head_t *list, list_head_t *other_requests)
|
||||
int32_t
|
||||
wb_stack_unwind (list_head_t *unwinds)
|
||||
{
|
||||
struct stat buf = {0,};
|
||||
struct iatt buf = {0,};
|
||||
wb_request_t *request = NULL, *dummy = NULL;
|
||||
call_frame_t *frame = NULL;
|
||||
wb_local_t *local = NULL;
|
||||
@ -1826,8 +1810,8 @@ out:
|
||||
|
||||
int32_t
|
||||
wb_writev_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
|
||||
int32_t op_ret, int32_t op_errno, struct stat *prebuf,
|
||||
struct stat *postbuf)
|
||||
int32_t op_ret, int32_t op_errno, struct iatt *prebuf,
|
||||
struct iatt *postbuf)
|
||||
{
|
||||
STACK_UNWIND_STRICT (writev, frame, op_ret, op_errno, prebuf, postbuf);
|
||||
return 0;
|
||||
@ -1852,7 +1836,7 @@ wb_writev (call_frame_t *frame, xlator_t *this, fd_t *fd, struct iovec *vector,
|
||||
if (vector != NULL)
|
||||
size = iov_length (vector, count);
|
||||
|
||||
if ((!S_ISDIR (fd->inode->st_mode))
|
||||
if ((!IA_ISDIR (fd->inode->ia_type))
|
||||
&& fd_ctx_get (fd, this, &tmp_file)) {
|
||||
gf_log (this->name, GF_LOG_DEBUG, "write behind file pointer is"
|
||||
" not stored in context of fd(%p), returning EBADFD",
|
||||
@ -1863,7 +1847,7 @@ wb_writev (call_frame_t *frame, xlator_t *this, fd_t *fd, struct iovec *vector,
|
||||
}
|
||||
|
||||
file = (wb_file_t *)(long)tmp_file;
|
||||
if ((!S_ISDIR (fd->inode->st_mode)) && (file == NULL)) {
|
||||
if ((!IA_ISDIR (fd->inode->ia_type)) && (file == NULL)) {
|
||||
gf_log (this->name, GF_LOG_DEBUG,
|
||||
"wb_file not found for fd %p", fd);
|
||||
op_errno = EBADFD;
|
||||
@ -1964,7 +1948,7 @@ unwind:
|
||||
int32_t
|
||||
wb_readv_cbk (call_frame_t *frame, void *cookie, xlator_t *this, int32_t op_ret,
|
||||
int32_t op_errno, struct iovec *vector, int32_t count,
|
||||
struct stat *stbuf, struct iobref *iobref)
|
||||
struct iatt *stbuf, struct iobref *iobref)
|
||||
{
|
||||
wb_local_t *local = NULL;
|
||||
wb_file_t *file = NULL;
|
||||
@ -2016,7 +2000,7 @@ wb_readv (call_frame_t *frame, xlator_t *this, fd_t *fd, size_t size,
|
||||
int32_t ret = -1;
|
||||
wb_request_t *request = NULL;
|
||||
|
||||
if ((!S_ISDIR (fd->inode->st_mode))
|
||||
if ((!IA_ISDIR (fd->inode->ia_type))
|
||||
&& fd_ctx_get (fd, this, &tmp_file)) {
|
||||
gf_log (this->name, GF_LOG_DEBUG, "write behind file pointer is"
|
||||
" not stored in context of fd(%p), returning EBADFD",
|
||||
@ -2171,7 +2155,7 @@ wb_flush (call_frame_t *frame, xlator_t *this, fd_t *fd)
|
||||
|
||||
conf = this->private;
|
||||
|
||||
if ((!S_ISDIR (fd->inode->st_mode))
|
||||
if ((!IA_ISDIR (fd->inode->ia_type))
|
||||
&& fd_ctx_get (fd, this, &tmp_file)) {
|
||||
gf_log (this->name, GF_LOG_DEBUG, "write behind file pointer is"
|
||||
" not stored in context of fd(%p), returning EBADFD",
|
||||
@ -2281,7 +2265,7 @@ wb_flush (call_frame_t *frame, xlator_t *this, fd_t *fd)
|
||||
|
||||
static int32_t
|
||||
wb_fsync_cbk (call_frame_t *frame, void *cookie, xlator_t *this, int32_t op_ret,
|
||||
int32_t op_errno, struct stat *prebuf, struct stat *postbuf)
|
||||
int32_t op_errno, struct iatt *prebuf, struct iatt *postbuf)
|
||||
{
|
||||
wb_local_t *local = NULL;
|
||||
wb_file_t *file = NULL;
|
||||
@ -2344,7 +2328,7 @@ wb_fsync (call_frame_t *frame, xlator_t *this, fd_t *fd, int32_t datasync)
|
||||
wb_request_t *request = NULL;
|
||||
int32_t ret = -1;
|
||||
|
||||
if ((!S_ISDIR (fd->inode->st_mode))
|
||||
if ((!IA_ISDIR (fd->inode->ia_type))
|
||||
&& fd_ctx_get (fd, this, &tmp_file)) {
|
||||
gf_log (this->name, GF_LOG_DEBUG, "write behind file pointer is"
|
||||
" not stored in context of fd(%p), returning EBADFD",
|
||||
|
@ -3437,27 +3437,27 @@ client_setdents (call_frame_t *frame, xlator_t *this, fd_t *fd, int32_t flags,
|
||||
while (trav) {
|
||||
int32_t this_len = 0;
|
||||
char *tmp_buf = NULL;
|
||||
struct stat *stbuf = &trav->buf;
|
||||
struct iatt *stbuf = &trav->buf;
|
||||
{
|
||||
/* Convert the stat buf to string */
|
||||
uint64_t dev = stbuf->st_dev;
|
||||
uint64_t ino = stbuf->st_ino;
|
||||
uint32_t mode = stbuf->st_mode;
|
||||
uint32_t nlink = stbuf->st_nlink;
|
||||
uint32_t uid = stbuf->st_uid;
|
||||
uint32_t gid = stbuf->st_gid;
|
||||
uint64_t rdev = stbuf->st_rdev;
|
||||
uint64_t size = stbuf->st_size;
|
||||
uint32_t blksize = stbuf->st_blksize;
|
||||
uint64_t blocks = stbuf->st_blocks;
|
||||
uint64_t dev = stbuf->ia_gen;
|
||||
uint64_t ino = stbuf->ia_ino;
|
||||
uint32_t mode = st_mode_from_ia (stbuf->ia_prot, stbuf->ia_type);
|
||||
uint32_t nlink = stbuf->ia_nlink;
|
||||
uint32_t uid = stbuf->ia_uid;
|
||||
uint32_t gid = stbuf->ia_gid;
|
||||
uint64_t rdev = stbuf->ia_rdev;
|
||||
uint64_t size = stbuf->ia_size;
|
||||
uint32_t blksize = stbuf->ia_blksize;
|
||||
uint64_t blocks = stbuf->ia_blocks;
|
||||
|
||||
uint32_t atime = stbuf->st_atime;
|
||||
uint32_t mtime = stbuf->st_mtime;
|
||||
uint32_t ctime = stbuf->st_ctime;
|
||||
uint32_t atime = stbuf->ia_atime;
|
||||
uint32_t mtime = stbuf->ia_mtime;
|
||||
uint32_t ctime = stbuf->ia_ctime;
|
||||
|
||||
uint32_t atime_nsec = ST_ATIM_NSEC(stbuf);
|
||||
uint32_t mtime_nsec = ST_MTIM_NSEC(stbuf);
|
||||
uint32_t ctime_nsec = ST_CTIM_NSEC(stbuf);
|
||||
uint32_t atime_nsec = stbuf->ia_atime_nsec;
|
||||
uint32_t mtime_nsec = stbuf->ia_mtime_nsec;
|
||||
uint32_t ctime_nsec = stbuf->ia_ctime_nsec;
|
||||
|
||||
ret = asprintf (&tmp_buf, GF_STAT_PRINT_FMT_STR,
|
||||
dev, ino, mode, nlink, uid, gid,
|
||||
@ -3520,7 +3520,7 @@ unwind:
|
||||
|
||||
int
|
||||
client_setattr (call_frame_t *frame, xlator_t *this, loc_t *loc,
|
||||
struct stat *stbuf, int32_t valid)
|
||||
struct iatt *stbuf, int32_t valid)
|
||||
{
|
||||
gf_hdr_common_t *hdr = NULL;
|
||||
gf_fop_setattr_req_t *req = NULL;
|
||||
@ -3553,7 +3553,7 @@ client_setattr (call_frame_t *frame, xlator_t *this, loc_t *loc,
|
||||
req->gen = hton64 (gen);
|
||||
strcpy (req->path, loc->path);
|
||||
|
||||
gf_stat_from_stat (&req->stbuf, stbuf);
|
||||
gf_stat_from_iatt (&req->stbuf, stbuf);
|
||||
req->valid = hton32 (valid);
|
||||
|
||||
ret = protocol_client_xfer (frame, this,
|
||||
@ -3570,7 +3570,7 @@ unwind:
|
||||
|
||||
int
|
||||
client_fsetattr (call_frame_t *frame, xlator_t *this, fd_t *fd,
|
||||
struct stat *stbuf, int32_t valid)
|
||||
struct iatt *stbuf, int32_t valid)
|
||||
{
|
||||
gf_hdr_common_t *hdr = NULL;
|
||||
gf_fop_fsetattr_req_t *req = NULL;
|
||||
@ -3616,7 +3616,7 @@ client_fsetattr (call_frame_t *frame, xlator_t *this, fd_t *fd,
|
||||
|
||||
req->fd = hton64 (remote_fd);
|
||||
|
||||
gf_stat_from_stat (&req->stbuf, stbuf);
|
||||
gf_stat_from_iatt (&req->stbuf, stbuf);
|
||||
req->valid = hton32 (valid);
|
||||
|
||||
ret = protocol_client_xfer (frame, this,
|
||||
@ -3940,9 +3940,9 @@ client_create_cbk (call_frame_t *frame, gf_hdr_common_t *hdr, size_t hdrlen,
|
||||
int32_t op_errno = 0;
|
||||
fd_t *fd = NULL;
|
||||
inode_t *inode = NULL;
|
||||
struct stat stbuf = {0, };
|
||||
struct stat preparent = {0, };
|
||||
struct stat postparent = {0, };
|
||||
struct iatt stbuf = {0, };
|
||||
struct iatt preparent = {0, };
|
||||
struct iatt postparent = {0, };
|
||||
int64_t remote_fd = 0;
|
||||
int32_t ret = -1;
|
||||
client_local_t *local = NULL;
|
||||
@ -3963,13 +3963,13 @@ client_create_cbk (call_frame_t *frame, gf_hdr_common_t *hdr, size_t hdrlen,
|
||||
|
||||
if (op_ret >= 0) {
|
||||
remote_fd = ntoh64 (rsp->fd);
|
||||
gf_stat_to_stat (&rsp->stat, &stbuf);
|
||||
gf_stat_to_iatt (&rsp->stat, &stbuf);
|
||||
|
||||
gf_stat_to_stat (&rsp->preparent, &preparent);
|
||||
gf_stat_to_stat (&rsp->postparent, &postparent);
|
||||
gf_stat_to_iatt (&rsp->preparent, &preparent);
|
||||
gf_stat_to_iatt (&rsp->postparent, &postparent);
|
||||
|
||||
ino = stbuf.st_ino;
|
||||
gen = stbuf.st_dev;
|
||||
ino = stbuf.ia_ino;
|
||||
gen = stbuf.ia_gen;
|
||||
}
|
||||
|
||||
if (op_ret >= 0) {
|
||||
@ -4106,7 +4106,7 @@ int
|
||||
client_stat_cbk (call_frame_t *frame, gf_hdr_common_t *hdr, size_t hdrlen,
|
||||
struct iobuf *iobuf)
|
||||
{
|
||||
struct stat stbuf = {0, };
|
||||
struct iatt stbuf = {0, };
|
||||
gf_fop_stat_rsp_t *rsp = NULL;
|
||||
int32_t op_ret = 0;
|
||||
int32_t op_errno = 0;
|
||||
@ -4117,7 +4117,7 @@ client_stat_cbk (call_frame_t *frame, gf_hdr_common_t *hdr, size_t hdrlen,
|
||||
op_errno = gf_error_to_errno (ntoh32 (hdr->rsp.op_errno));
|
||||
|
||||
if (op_ret == 0) {
|
||||
gf_stat_to_stat (&rsp->stat, &stbuf);
|
||||
gf_stat_to_iatt (&rsp->stat, &stbuf);
|
||||
}
|
||||
|
||||
STACK_UNWIND (frame, op_ret, op_errno, &stbuf);
|
||||
@ -4141,12 +4141,12 @@ client_mknod_cbk (call_frame_t *frame, gf_hdr_common_t *hdr, size_t hdrlen,
|
||||
gf_fop_mknod_rsp_t *rsp = NULL;
|
||||
int32_t op_ret = 0;
|
||||
int32_t op_errno = 0;
|
||||
struct stat stbuf = {0, };
|
||||
struct iatt stbuf = {0, };
|
||||
inode_t *inode = NULL;
|
||||
client_local_t *local = NULL;
|
||||
int ret = 0;
|
||||
struct stat preparent = {0,};
|
||||
struct stat postparent = {0,};
|
||||
struct iatt preparent = {0,};
|
||||
struct iatt postparent = {0,};
|
||||
|
||||
local = frame->local;
|
||||
frame->local = NULL;
|
||||
@ -4158,10 +4158,10 @@ client_mknod_cbk (call_frame_t *frame, gf_hdr_common_t *hdr, size_t hdrlen,
|
||||
op_errno = gf_error_to_errno (ntoh32 (hdr->rsp.op_errno));
|
||||
|
||||
if (op_ret >= 0) {
|
||||
gf_stat_to_stat (&rsp->stat, &stbuf);
|
||||
gf_stat_to_iatt (&rsp->stat, &stbuf);
|
||||
|
||||
ret = inode_ctx_put2 (local->loc.inode, frame->this,
|
||||
stbuf.st_ino, stbuf.st_dev);
|
||||
stbuf.ia_ino, stbuf.ia_gen);
|
||||
if (ret < 0) {
|
||||
gf_log (frame->this->name, GF_LOG_DEBUG,
|
||||
"MKNOD %"PRId64"/%s (%s): failed to set remote"
|
||||
@ -4170,8 +4170,8 @@ client_mknod_cbk (call_frame_t *frame, gf_hdr_common_t *hdr, size_t hdrlen,
|
||||
local->loc.path);
|
||||
}
|
||||
|
||||
gf_stat_to_stat (&rsp->preparent, &preparent);
|
||||
gf_stat_to_stat (&rsp->postparent, &postparent);
|
||||
gf_stat_to_iatt (&rsp->preparent, &preparent);
|
||||
gf_stat_to_iatt (&rsp->postparent, &postparent);
|
||||
}
|
||||
|
||||
STACK_UNWIND (frame, op_ret, op_errno, inode, &stbuf,
|
||||
@ -4197,9 +4197,9 @@ client_symlink_cbk (call_frame_t *frame, gf_hdr_common_t *hdr, size_t hdrlen,
|
||||
gf_fop_symlink_rsp_t *rsp = NULL;
|
||||
int32_t op_ret = 0;
|
||||
int32_t op_errno = 0;
|
||||
struct stat stbuf = {0, };
|
||||
struct stat preparent = {0,};
|
||||
struct stat postparent = {0,};
|
||||
struct iatt stbuf = {0, };
|
||||
struct iatt preparent = {0,};
|
||||
struct iatt postparent = {0,};
|
||||
inode_t *inode = NULL;
|
||||
client_local_t *local = NULL;
|
||||
int ret = 0;
|
||||
@ -4214,10 +4214,10 @@ client_symlink_cbk (call_frame_t *frame, gf_hdr_common_t *hdr, size_t hdrlen,
|
||||
op_errno = gf_error_to_errno (ntoh32 (hdr->rsp.op_errno));
|
||||
|
||||
if (op_ret >= 0) {
|
||||
gf_stat_to_stat (&rsp->stat, &stbuf);
|
||||
gf_stat_to_iatt (&rsp->stat, &stbuf);
|
||||
|
||||
ret = inode_ctx_put2 (inode, frame->this,
|
||||
stbuf.st_ino, stbuf.st_dev);
|
||||
stbuf.ia_ino, stbuf.ia_gen);
|
||||
if (ret < 0) {
|
||||
gf_log (frame->this->name, GF_LOG_DEBUG,
|
||||
"SYMLINK %"PRId64"/%s (%s): failed to set "
|
||||
@ -4225,8 +4225,8 @@ client_symlink_cbk (call_frame_t *frame, gf_hdr_common_t *hdr, size_t hdrlen,
|
||||
local->loc.parent->ino, local->loc.name,
|
||||
local->loc.path);
|
||||
}
|
||||
gf_stat_to_stat (&rsp->preparent, &preparent);
|
||||
gf_stat_to_stat (&rsp->postparent, &postparent);
|
||||
gf_stat_to_iatt (&rsp->preparent, &preparent);
|
||||
gf_stat_to_iatt (&rsp->postparent, &postparent);
|
||||
}
|
||||
|
||||
STACK_UNWIND (frame, op_ret, op_errno, inode, &stbuf,
|
||||
@ -4252,11 +4252,11 @@ client_link_cbk (call_frame_t *frame, gf_hdr_common_t *hdr, size_t hdrlen,
|
||||
gf_fop_link_rsp_t *rsp = NULL;
|
||||
int32_t op_ret = 0;
|
||||
int32_t op_errno = 0;
|
||||
struct stat stbuf = {0, };
|
||||
struct iatt stbuf = {0, };
|
||||
inode_t *inode = NULL;
|
||||
client_local_t *local = NULL;
|
||||
struct stat preparent = {0,};
|
||||
struct stat postparent = {0,};
|
||||
struct iatt preparent = {0,};
|
||||
struct iatt postparent = {0,};
|
||||
|
||||
local = frame->local;
|
||||
frame->local = NULL;
|
||||
@ -4268,10 +4268,10 @@ client_link_cbk (call_frame_t *frame, gf_hdr_common_t *hdr, size_t hdrlen,
|
||||
op_errno = gf_error_to_errno (ntoh32 (hdr->rsp.op_errno));
|
||||
|
||||
if (op_ret >= 0) {
|
||||
gf_stat_to_stat (&rsp->stat, &stbuf);
|
||||
gf_stat_to_iatt (&rsp->stat, &stbuf);
|
||||
|
||||
gf_stat_to_stat (&rsp->preparent, &preparent);
|
||||
gf_stat_to_stat (&rsp->postparent, &postparent);
|
||||
gf_stat_to_iatt (&rsp->preparent, &preparent);
|
||||
gf_stat_to_iatt (&rsp->postparent, &postparent);
|
||||
}
|
||||
|
||||
STACK_UNWIND (frame, op_ret, op_errno, inode, &stbuf,
|
||||
@ -4297,8 +4297,8 @@ client_truncate_cbk (call_frame_t *frame, gf_hdr_common_t *hdr, size_t hdrlen,
|
||||
gf_fop_truncate_rsp_t *rsp = NULL;
|
||||
int32_t op_ret = 0;
|
||||
int32_t op_errno = 0;
|
||||
struct stat prestat = {0, };
|
||||
struct stat poststat = {0, };
|
||||
struct iatt prestat = {0, };
|
||||
struct iatt poststat = {0, };
|
||||
|
||||
rsp = gf_param (hdr);
|
||||
|
||||
@ -4306,8 +4306,8 @@ client_truncate_cbk (call_frame_t *frame, gf_hdr_common_t *hdr, size_t hdrlen,
|
||||
op_errno = gf_error_to_errno (ntoh32 (hdr->rsp.op_errno));
|
||||
|
||||
if (op_ret == 0) {
|
||||
gf_stat_to_stat (&rsp->prestat, &prestat);
|
||||
gf_stat_to_stat (&rsp->poststat, &poststat);
|
||||
gf_stat_to_iatt (&rsp->prestat, &prestat);
|
||||
gf_stat_to_iatt (&rsp->poststat, &poststat);
|
||||
}
|
||||
|
||||
STACK_UNWIND (frame, op_ret, op_errno, &prestat, &poststat);
|
||||
@ -4326,7 +4326,7 @@ int
|
||||
client_fstat_cbk (call_frame_t *frame, gf_hdr_common_t *hdr, size_t hdrlen,
|
||||
struct iobuf *iobuf)
|
||||
{
|
||||
struct stat stbuf = {0, };
|
||||
struct iatt stbuf = {0, };
|
||||
gf_fop_fstat_rsp_t *rsp = NULL;
|
||||
int32_t op_ret = 0;
|
||||
int32_t op_errno = 0;
|
||||
@ -4337,7 +4337,7 @@ client_fstat_cbk (call_frame_t *frame, gf_hdr_common_t *hdr, size_t hdrlen,
|
||||
op_errno = gf_error_to_errno (ntoh32 (hdr->rsp.op_errno));
|
||||
|
||||
if (op_ret == 0) {
|
||||
gf_stat_to_stat (&rsp->stat, &stbuf);
|
||||
gf_stat_to_iatt (&rsp->stat, &stbuf);
|
||||
|
||||
}
|
||||
|
||||
@ -4360,8 +4360,8 @@ client_ftruncate_cbk (call_frame_t *frame, gf_hdr_common_t *hdr, size_t hdrlen,
|
||||
gf_fop_ftruncate_rsp_t *rsp = NULL;
|
||||
int32_t op_ret = 0;
|
||||
int32_t op_errno = 0;
|
||||
struct stat prestat = {0, };
|
||||
struct stat poststat = {0, };
|
||||
struct iatt prestat = {0, };
|
||||
struct iatt poststat = {0, };
|
||||
|
||||
rsp = gf_param (hdr);
|
||||
|
||||
@ -4369,8 +4369,8 @@ client_ftruncate_cbk (call_frame_t *frame, gf_hdr_common_t *hdr, size_t hdrlen,
|
||||
op_errno = gf_error_to_errno (ntoh32 (hdr->rsp.op_errno));
|
||||
|
||||
if (op_ret == 0) {
|
||||
gf_stat_to_stat (&rsp->prestat, &prestat);
|
||||
gf_stat_to_stat (&rsp->poststat, &poststat);
|
||||
gf_stat_to_iatt (&rsp->prestat, &prestat);
|
||||
gf_stat_to_iatt (&rsp->poststat, &poststat);
|
||||
}
|
||||
|
||||
STACK_UNWIND (frame, op_ret, op_errno, &prestat, &poststat);
|
||||
@ -4394,7 +4394,7 @@ client_readv_cbk (call_frame_t *frame, gf_hdr_common_t *hdr, size_t hdrlen,
|
||||
int32_t op_ret = 0;
|
||||
int32_t op_errno = 0;
|
||||
struct iovec vector = {0, };
|
||||
struct stat stbuf = {0, };
|
||||
struct iatt stbuf = {0, };
|
||||
struct iobref *iobref = NULL;
|
||||
|
||||
rsp = gf_param (hdr);
|
||||
@ -4404,7 +4404,7 @@ client_readv_cbk (call_frame_t *frame, gf_hdr_common_t *hdr, size_t hdrlen,
|
||||
|
||||
if (op_ret != -1) {
|
||||
iobref = iobref_new ();
|
||||
gf_stat_to_stat (&rsp->stat, &stbuf);
|
||||
gf_stat_to_iatt (&rsp->stat, &stbuf);
|
||||
vector.iov_len = op_ret;
|
||||
|
||||
if (op_ret > 0) {
|
||||
@ -4439,8 +4439,8 @@ client_write_cbk (call_frame_t *frame, gf_hdr_common_t *hdr, size_t hdrlen,
|
||||
gf_fop_write_rsp_t *rsp = NULL;
|
||||
int32_t op_ret = 0;
|
||||
int32_t op_errno = 0;
|
||||
struct stat prestat = {0, };
|
||||
struct stat poststat = {0, };
|
||||
struct iatt prestat = {0, };
|
||||
struct iatt poststat = {0, };
|
||||
|
||||
rsp = gf_param (hdr);
|
||||
|
||||
@ -4448,8 +4448,8 @@ client_write_cbk (call_frame_t *frame, gf_hdr_common_t *hdr, size_t hdrlen,
|
||||
op_errno = gf_error_to_errno (ntoh32 (hdr->rsp.op_errno));
|
||||
|
||||
if (op_ret >= 0) {
|
||||
gf_stat_to_stat (&rsp->prestat, &prestat);
|
||||
gf_stat_to_stat (&rsp->poststat, &poststat);
|
||||
gf_stat_to_iatt (&rsp->prestat, &prestat);
|
||||
gf_stat_to_iatt (&rsp->poststat, &poststat);
|
||||
}
|
||||
|
||||
STACK_UNWIND (frame, op_ret, op_errno, &prestat, &poststat);
|
||||
@ -4528,8 +4528,8 @@ int
|
||||
client_fsync_cbk (call_frame_t *frame, gf_hdr_common_t *hdr, size_t hdrlen,
|
||||
struct iobuf *iobuf)
|
||||
{
|
||||
struct stat prestat = {0, };
|
||||
struct stat poststat = {0,};
|
||||
struct iatt prestat = {0, };
|
||||
struct iatt poststat = {0,};
|
||||
gf_fop_fsync_rsp_t *rsp = NULL;
|
||||
int32_t op_ret = 0;
|
||||
int32_t op_errno = 0;
|
||||
@ -4540,8 +4540,8 @@ client_fsync_cbk (call_frame_t *frame, gf_hdr_common_t *hdr, size_t hdrlen,
|
||||
op_errno = gf_error_to_errno (ntoh32 (hdr->rsp.op_errno));
|
||||
|
||||
if (op_ret == 0) {
|
||||
gf_stat_to_stat (&rsp->prestat, &prestat);
|
||||
gf_stat_to_stat (&rsp->poststat, &poststat);
|
||||
gf_stat_to_iatt (&rsp->prestat, &prestat);
|
||||
gf_stat_to_iatt (&rsp->poststat, &poststat);
|
||||
}
|
||||
|
||||
STACK_UNWIND (frame, op_ret, op_errno, &prestat, &poststat);
|
||||
@ -4564,8 +4564,8 @@ client_unlink_cbk (call_frame_t *frame, gf_hdr_common_t *hdr, size_t hdrlen,
|
||||
gf_fop_unlink_rsp_t *rsp = NULL;
|
||||
int32_t op_ret = 0;
|
||||
int32_t op_errno = 0;
|
||||
struct stat preparent = {0,};
|
||||
struct stat postparent = {0,};
|
||||
struct iatt preparent = {0,};
|
||||
struct iatt postparent = {0,};
|
||||
|
||||
rsp = gf_param (hdr);
|
||||
|
||||
@ -4573,8 +4573,8 @@ client_unlink_cbk (call_frame_t *frame, gf_hdr_common_t *hdr, size_t hdrlen,
|
||||
op_errno = gf_error_to_errno (ntoh32 (hdr->rsp.op_errno));
|
||||
|
||||
if (op_ret == 0) {
|
||||
gf_stat_to_stat (&rsp->preparent, &preparent);
|
||||
gf_stat_to_stat (&rsp->postparent, &postparent);
|
||||
gf_stat_to_iatt (&rsp->preparent, &preparent);
|
||||
gf_stat_to_iatt (&rsp->postparent, &postparent);
|
||||
}
|
||||
|
||||
STACK_UNWIND (frame, op_ret, op_errno, &preparent, &postparent);
|
||||
@ -4594,14 +4594,14 @@ int
|
||||
client_rename_cbk (call_frame_t *frame, gf_hdr_common_t *hdr, size_t hdrlen,
|
||||
struct iobuf *iobuf)
|
||||
{
|
||||
struct stat stbuf = {0, };
|
||||
struct iatt stbuf = {0, };
|
||||
gf_fop_rename_rsp_t *rsp = NULL;
|
||||
int32_t op_ret = 0;
|
||||
int32_t op_errno = 0;
|
||||
struct stat preoldparent = {0, };
|
||||
struct stat postoldparent = {0, };
|
||||
struct stat prenewparent = {0, };
|
||||
struct stat postnewparent = {0, };
|
||||
struct iatt preoldparent = {0, };
|
||||
struct iatt postoldparent = {0, };
|
||||
struct iatt prenewparent = {0, };
|
||||
struct iatt postnewparent = {0, };
|
||||
|
||||
rsp = gf_param (hdr);
|
||||
|
||||
@ -4609,11 +4609,11 @@ client_rename_cbk (call_frame_t *frame, gf_hdr_common_t *hdr, size_t hdrlen,
|
||||
op_errno = gf_error_to_errno (ntoh32 (hdr->rsp.op_errno));
|
||||
|
||||
if (op_ret == 0) {
|
||||
gf_stat_to_stat (&rsp->stat, &stbuf);
|
||||
gf_stat_to_stat (&rsp->preoldparent, &preoldparent);
|
||||
gf_stat_to_stat (&rsp->postoldparent, &postoldparent);
|
||||
gf_stat_to_stat (&rsp->prenewparent, &prenewparent);
|
||||
gf_stat_to_stat (&rsp->postnewparent, &postnewparent);
|
||||
gf_stat_to_iatt (&rsp->stat, &stbuf);
|
||||
gf_stat_to_iatt (&rsp->preoldparent, &preoldparent);
|
||||
gf_stat_to_iatt (&rsp->postoldparent, &postoldparent);
|
||||
gf_stat_to_iatt (&rsp->prenewparent, &prenewparent);
|
||||
gf_stat_to_iatt (&rsp->postnewparent, &postnewparent);
|
||||
}
|
||||
|
||||
STACK_UNWIND (frame, op_ret, op_errno, &stbuf, &preoldparent,
|
||||
@ -4639,7 +4639,7 @@ client_readlink_cbk (call_frame_t *frame, gf_hdr_common_t *hdr, size_t hdrlen,
|
||||
int32_t op_ret = 0;
|
||||
int32_t op_errno = 0;
|
||||
char *link = NULL;
|
||||
struct stat stbuf = {0,};
|
||||
struct iatt stbuf = {0,};
|
||||
|
||||
rsp = gf_param (hdr);
|
||||
|
||||
@ -4648,7 +4648,7 @@ client_readlink_cbk (call_frame_t *frame, gf_hdr_common_t *hdr, size_t hdrlen,
|
||||
|
||||
if (op_ret > 0) {
|
||||
link = rsp->path;
|
||||
gf_stat_to_stat (&rsp->buf, &stbuf);
|
||||
gf_stat_to_iatt (&rsp->buf, &stbuf);
|
||||
}
|
||||
|
||||
STACK_UNWIND (frame, op_ret, op_errno, link, &stbuf);
|
||||
@ -4670,12 +4670,12 @@ client_mkdir_cbk (call_frame_t *frame, gf_hdr_common_t *hdr, size_t hdrlen,
|
||||
gf_fop_mkdir_rsp_t *rsp = NULL;
|
||||
int32_t op_ret = 0;
|
||||
int32_t op_errno = 0;
|
||||
struct stat stbuf = {0, };
|
||||
struct iatt stbuf = {0, };
|
||||
inode_t *inode = NULL;
|
||||
client_local_t *local = NULL;
|
||||
int ret = 0;
|
||||
struct stat preparent = {0,};
|
||||
struct stat postparent = {0,};
|
||||
struct iatt preparent = {0,};
|
||||
struct iatt postparent = {0,};
|
||||
|
||||
local = frame->local;
|
||||
inode = local->loc.inode;
|
||||
@ -4687,10 +4687,10 @@ client_mkdir_cbk (call_frame_t *frame, gf_hdr_common_t *hdr, size_t hdrlen,
|
||||
op_errno = gf_error_to_errno (ntoh32 (hdr->rsp.op_errno));
|
||||
|
||||
if (op_ret >= 0) {
|
||||
gf_stat_to_stat (&rsp->stat, &stbuf);
|
||||
gf_stat_to_iatt (&rsp->stat, &stbuf);
|
||||
|
||||
ret = inode_ctx_put2 (inode, frame->this, stbuf.st_ino,
|
||||
stbuf.st_dev);
|
||||
ret = inode_ctx_put2 (inode, frame->this, stbuf.ia_ino,
|
||||
stbuf.ia_gen);
|
||||
if (ret < 0) {
|
||||
gf_log (frame->this->name, GF_LOG_DEBUG,
|
||||
"MKDIR %"PRId64"/%s (%s): failed to set "
|
||||
@ -4699,8 +4699,8 @@ client_mkdir_cbk (call_frame_t *frame, gf_hdr_common_t *hdr, size_t hdrlen,
|
||||
local->loc.path);
|
||||
}
|
||||
|
||||
gf_stat_to_stat (&rsp->preparent, &preparent);
|
||||
gf_stat_to_stat (&rsp->postparent, &postparent);
|
||||
gf_stat_to_iatt (&rsp->preparent, &preparent);
|
||||
gf_stat_to_iatt (&rsp->postparent, &postparent);
|
||||
}
|
||||
|
||||
STACK_UNWIND (frame, op_ret, op_errno, inode, &stbuf,
|
||||
@ -4829,8 +4829,8 @@ client_rmdir_cbk (call_frame_t *frame, gf_hdr_common_t *hdr, size_t hdrlen,
|
||||
gf_fop_rmdir_rsp_t *rsp = NULL;
|
||||
int32_t op_ret = 0;
|
||||
int32_t op_errno = 0;
|
||||
struct stat preparent = {0,};
|
||||
struct stat postparent = {0,};
|
||||
struct iatt preparent = {0,};
|
||||
struct iatt postparent = {0,};
|
||||
|
||||
rsp = gf_param (hdr);
|
||||
|
||||
@ -4838,8 +4838,8 @@ client_rmdir_cbk (call_frame_t *frame, gf_hdr_common_t *hdr, size_t hdrlen,
|
||||
op_errno = gf_error_to_errno (ntoh32 (hdr->rsp.op_errno));
|
||||
|
||||
if (op_ret == 0) {
|
||||
gf_stat_to_stat (&rsp->preparent, &preparent);
|
||||
gf_stat_to_stat (&rsp->postparent, &postparent);
|
||||
gf_stat_to_iatt (&rsp->preparent, &preparent);
|
||||
gf_stat_to_iatt (&rsp->postparent, &postparent);
|
||||
}
|
||||
|
||||
STACK_UNWIND (frame, op_ret, op_errno, &preparent, &postparent);
|
||||
@ -4886,8 +4886,8 @@ int
|
||||
client_lookup_cbk (call_frame_t *frame, gf_hdr_common_t *hdr, size_t hdrlen,
|
||||
struct iobuf *iobuf)
|
||||
{
|
||||
struct stat stbuf = {0, };
|
||||
struct stat postparent = {0, };
|
||||
struct iatt stbuf = {0, };
|
||||
struct iatt postparent = {0, };
|
||||
inode_t *inode = NULL;
|
||||
dict_t *xattr = NULL;
|
||||
gf_fop_lookup_rsp_t *rsp = NULL;
|
||||
@ -4909,14 +4909,14 @@ client_lookup_cbk (call_frame_t *frame, gf_hdr_common_t *hdr, size_t hdrlen,
|
||||
|
||||
op_ret = ntoh32 (hdr->rsp.op_ret);
|
||||
|
||||
gf_stat_to_stat (&rsp->postparent, &postparent);
|
||||
gf_stat_to_iatt (&rsp->postparent, &postparent);
|
||||
|
||||
if (op_ret == 0) {
|
||||
op_ret = -1;
|
||||
gf_stat_to_stat (&rsp->stat, &stbuf);
|
||||
gf_stat_to_iatt (&rsp->stat, &stbuf);
|
||||
|
||||
ret = inode_ctx_get2 (inode, frame->this, &oldino, &oldgen);
|
||||
if (oldino != stbuf.st_ino || oldgen != stbuf.st_dev) {
|
||||
if (oldino != stbuf.ia_ino || oldgen != stbuf.ia_gen) {
|
||||
if (oldino) {
|
||||
gf_log (frame->this->name, GF_LOG_DEBUG,
|
||||
"LOOKUP %"PRId64"/%s (%s): "
|
||||
@ -4926,13 +4926,13 @@ client_lookup_cbk (call_frame_t *frame, gf_hdr_common_t *hdr, size_t hdrlen,
|
||||
local->loc.parent->ino : (uint64_t) 0,
|
||||
local->loc.name,
|
||||
local->loc.path,
|
||||
oldgen, oldino, stbuf.st_dev, stbuf.st_ino);
|
||||
oldgen, oldino, stbuf.ia_gen, stbuf.ia_ino);
|
||||
op_errno = ESTALE;
|
||||
goto fail;
|
||||
}
|
||||
|
||||
ret = inode_ctx_put2 (inode, frame->this,
|
||||
stbuf.st_ino, stbuf.st_dev);
|
||||
stbuf.ia_ino, stbuf.ia_gen);
|
||||
if (ret < 0) {
|
||||
gf_log (frame->this->name, GF_LOG_DEBUG,
|
||||
"LOOKUP %"PRId64"/%s (%s) : "
|
||||
@ -4990,8 +4990,8 @@ static int32_t
|
||||
client_setattr_cbk (call_frame_t *frame,gf_hdr_common_t *hdr, size_t hdrlen,
|
||||
struct iobuf *iobuf)
|
||||
{
|
||||
struct stat statpre = {0, };
|
||||
struct stat statpost = {0, };
|
||||
struct iatt statpre = {0, };
|
||||
struct iatt statpost = {0, };
|
||||
gf_fop_setattr_rsp_t *rsp = NULL;
|
||||
int32_t op_ret = 0;
|
||||
int32_t op_errno = 0;
|
||||
@ -5002,8 +5002,8 @@ client_setattr_cbk (call_frame_t *frame,gf_hdr_common_t *hdr, size_t hdrlen,
|
||||
op_errno = gf_error_to_errno (ntoh32 (hdr->rsp.op_errno));
|
||||
|
||||
if (op_ret == 0) {
|
||||
gf_stat_to_stat (&rsp->statpre, &statpre);
|
||||
gf_stat_to_stat (&rsp->statpost, &statpost);
|
||||
gf_stat_to_iatt (&rsp->statpre, &statpre);
|
||||
gf_stat_to_iatt (&rsp->statpost, &statpost);
|
||||
}
|
||||
|
||||
STACK_UNWIND (frame, op_ret, op_errno, &statpre, &statpost);
|
||||
@ -5015,8 +5015,8 @@ static int32_t
|
||||
client_fsetattr_cbk (call_frame_t *frame,gf_hdr_common_t *hdr, size_t hdrlen,
|
||||
struct iobuf *iobuf)
|
||||
{
|
||||
struct stat statpre = {0, };
|
||||
struct stat statpost = {0, };
|
||||
struct iatt statpre = {0, };
|
||||
struct iatt statpost = {0, };
|
||||
gf_fop_setattr_rsp_t *rsp = NULL;
|
||||
int32_t op_ret = 0;
|
||||
int32_t op_errno = 0;
|
||||
@ -5027,8 +5027,8 @@ client_fsetattr_cbk (call_frame_t *frame,gf_hdr_common_t *hdr, size_t hdrlen,
|
||||
op_errno = gf_error_to_errno (ntoh32 (hdr->rsp.op_errno));
|
||||
|
||||
if (op_ret == 0) {
|
||||
gf_stat_to_stat (&rsp->statpre, &statpre);
|
||||
gf_stat_to_stat (&rsp->statpost, &statpost);
|
||||
gf_stat_to_iatt (&rsp->statpre, &statpre);
|
||||
gf_stat_to_iatt (&rsp->statpost, &statpost);
|
||||
}
|
||||
|
||||
STACK_UNWIND (frame, op_ret, op_errno, &statpre, &statpost);
|
||||
@ -5087,7 +5087,7 @@ gf_bin_to_direntry (char *buf, size_t count)
|
||||
break;
|
||||
rcount = ender - buffer;
|
||||
*ender = '\0';
|
||||
if (S_ISLNK (trav->buf.st_mode))
|
||||
if (IA_ISLNK (trav->buf.ia_type))
|
||||
trav->link = strdup (buffer);
|
||||
else
|
||||
trav->link = "";
|
||||
@ -5118,7 +5118,7 @@ gf_free_direntry (dir_entry_t *head)
|
||||
while (trav) {
|
||||
prev->next = trav->next;
|
||||
FREE (trav->name);
|
||||
if (S_ISLNK (trav->buf.st_mode))
|
||||
if (IA_ISLNK (trav->buf.ia_type))
|
||||
FREE (trav->link);
|
||||
FREE (trav);
|
||||
trav = prev->next;
|
||||
|
@ -117,7 +117,7 @@ typedef struct {
|
||||
|
||||
|
||||
static inline void
|
||||
gf_string_to_stat(char *string, struct stat *stbuf)
|
||||
gf_string_to_stat(char *string, struct iatt *stbuf)
|
||||
{
|
||||
uint64_t dev = 0;
|
||||
uint64_t ino = 0;
|
||||
@ -154,25 +154,25 @@ gf_string_to_stat(char *string, struct stat *stbuf)
|
||||
&ctime,
|
||||
&ctime_nsec);
|
||||
|
||||
stbuf->st_dev = dev;
|
||||
stbuf->st_ino = ino;
|
||||
stbuf->st_mode = mode;
|
||||
stbuf->st_nlink = nlink;
|
||||
stbuf->st_uid = uid;
|
||||
stbuf->st_gid = gid;
|
||||
stbuf->st_rdev = rdev;
|
||||
stbuf->st_size = size;
|
||||
stbuf->st_blksize = blksize;
|
||||
stbuf->st_blocks = blocks;
|
||||
stbuf->ia_gen = dev;
|
||||
stbuf->ia_ino = ino;
|
||||
stbuf->ia_prot = ia_prot_from_st_mode (mode);
|
||||
stbuf->ia_type = ia_type_from_st_mode (mode);
|
||||
stbuf->ia_nlink = nlink;
|
||||
stbuf->ia_uid = uid;
|
||||
stbuf->ia_gid = gid;
|
||||
stbuf->ia_rdev = rdev;
|
||||
stbuf->ia_size = size;
|
||||
stbuf->ia_blksize = blksize;
|
||||
stbuf->ia_blocks = blocks;
|
||||
|
||||
stbuf->st_atime = atime;
|
||||
stbuf->st_mtime = mtime;
|
||||
stbuf->st_ctime = ctime;
|
||||
|
||||
ST_ATIM_NSEC_SET(stbuf, atime_nsec);
|
||||
ST_MTIM_NSEC_SET(stbuf, mtime_nsec);
|
||||
ST_CTIM_NSEC_SET(stbuf, ctime_nsec);
|
||||
stbuf->ia_atime = atime;
|
||||
stbuf->ia_mtime = mtime;
|
||||
stbuf->ia_ctime = ctime;
|
||||
|
||||
stbuf->ia_atime_nsec = atime_nsec;
|
||||
stbuf->ia_mtime_nsec = mtime_nsec;
|
||||
stbuf->ia_ctime_nsec = ctime_nsec;
|
||||
}
|
||||
|
||||
#endif
|
||||
|
@ -112,34 +112,34 @@ out:
|
||||
}
|
||||
|
||||
/*
|
||||
* stat_to_str - convert struct stat to a ASCII string
|
||||
* @stbuf: struct stat pointer
|
||||
* stat_to_str - convert struct iatt to a ASCII string
|
||||
* @stbuf: struct iatt pointer
|
||||
*
|
||||
* not for external reference
|
||||
*/
|
||||
char *
|
||||
stat_to_str (struct stat *stbuf)
|
||||
stat_to_str (struct iatt *stbuf)
|
||||
{
|
||||
int ret = 0;
|
||||
char *tmp_buf = NULL;
|
||||
|
||||
uint64_t dev = stbuf->st_dev;
|
||||
uint64_t ino = stbuf->st_ino;
|
||||
uint32_t mode = stbuf->st_mode;
|
||||
uint32_t nlink = stbuf->st_nlink;
|
||||
uint32_t uid = stbuf->st_uid;
|
||||
uint32_t gid = stbuf->st_gid;
|
||||
uint64_t rdev = stbuf->st_rdev;
|
||||
uint64_t size = stbuf->st_size;
|
||||
uint32_t blksize = stbuf->st_blksize;
|
||||
uint64_t blocks = stbuf->st_blocks;
|
||||
uint32_t atime = stbuf->st_atime;
|
||||
uint32_t mtime = stbuf->st_mtime;
|
||||
uint32_t ctime = stbuf->st_ctime;
|
||||
uint64_t dev = stbuf->ia_gen;
|
||||
uint64_t ino = stbuf->ia_ino;
|
||||
uint32_t mode = st_mode_from_ia (stbuf->ia_prot, stbuf->ia_type);
|
||||
uint32_t nlink = stbuf->ia_nlink;
|
||||
uint32_t uid = stbuf->ia_uid;
|
||||
uint32_t gid = stbuf->ia_gid;
|
||||
uint64_t rdev = stbuf->ia_rdev;
|
||||
uint64_t size = stbuf->ia_size;
|
||||
uint32_t blksize = stbuf->ia_blksize;
|
||||
uint64_t blocks = stbuf->ia_blocks;
|
||||
uint32_t atime = stbuf->ia_atime;
|
||||
uint32_t mtime = stbuf->ia_mtime;
|
||||
uint32_t ctime = stbuf->ia_ctime;
|
||||
|
||||
uint32_t atime_nsec = ST_ATIM_NSEC(stbuf);
|
||||
uint32_t mtime_nsec = ST_MTIM_NSEC(stbuf);
|
||||
uint32_t ctime_nsec = ST_CTIM_NSEC(stbuf);
|
||||
uint32_t atime_nsec = stbuf->ia_atime_nsec;
|
||||
uint32_t mtime_nsec = stbuf->ia_mtime_nsec;
|
||||
uint32_t ctime_nsec = stbuf->ia_ctime_nsec;
|
||||
|
||||
|
||||
ret = asprintf (&tmp_buf,
|
||||
@ -307,10 +307,10 @@ gf_add_locker (struct _lock_table *table, const char *volume,
|
||||
|
||||
if (fd == NULL) {
|
||||
loc_copy (&new->loc, loc);
|
||||
dir = S_ISDIR (new->loc.inode->st_mode);
|
||||
dir = IA_ISDIR (new->loc.inode->ia_type);
|
||||
} else {
|
||||
new->fd = fd_ref (fd);
|
||||
dir = S_ISDIR (fd->inode->st_mode);
|
||||
dir = IA_ISDIR (fd->inode->ia_type);
|
||||
}
|
||||
|
||||
new->pid = pid;
|
||||
@ -342,9 +342,9 @@ gf_del_locker (struct _lock_table *table, const char *volume,
|
||||
INIT_LIST_HEAD (&del);
|
||||
|
||||
if (fd) {
|
||||
dir = S_ISDIR (fd->inode->st_mode);
|
||||
dir = IA_ISDIR (fd->inode->ia_type);
|
||||
} else {
|
||||
dir = S_ISDIR (loc->inode->st_mode);
|
||||
dir = IA_ISDIR (loc->inode->ia_type);
|
||||
}
|
||||
|
||||
LOCK (&table->lock);
|
||||
|
@ -42,7 +42,7 @@
|
||||
#define IS_NOT_ROOT(pathlen) ((pathlen > 2)? 1 : 0)
|
||||
|
||||
char *
|
||||
stat_to_str (struct stat *stbuf);
|
||||
stat_to_str (struct iatt *stbuf);
|
||||
|
||||
call_frame_t *
|
||||
server_copy_frame (call_frame_t *frame);
|
||||
|
@ -668,8 +668,8 @@ server_access_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
|
||||
*/
|
||||
int
|
||||
server_rmdir_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
|
||||
int32_t op_ret, int32_t op_errno, struct stat *preparent,
|
||||
struct stat *postparent)
|
||||
int32_t op_ret, int32_t op_errno, struct iatt *preparent,
|
||||
struct iatt *postparent)
|
||||
{
|
||||
gf_hdr_common_t *hdr = NULL;
|
||||
gf_fop_rmdir_rsp_t *rsp = NULL;
|
||||
@ -705,8 +705,8 @@ server_rmdir_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
|
||||
hdr->rsp.op_errno = hton32 (gf_errno);
|
||||
|
||||
if (op_ret == 0) {
|
||||
gf_stat_from_stat (&rsp->preparent, preparent);
|
||||
gf_stat_from_stat (&rsp->postparent, postparent);
|
||||
gf_stat_from_iatt (&rsp->preparent, preparent);
|
||||
gf_stat_from_iatt (&rsp->postparent, postparent);
|
||||
}
|
||||
|
||||
protocol_server_reply (frame, GF_OP_TYPE_FOP_REPLY, GF_FOP_RMDIR,
|
||||
@ -729,8 +729,8 @@ server_rmdir_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
|
||||
int
|
||||
server_mkdir_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
|
||||
int32_t op_ret, int32_t op_errno, inode_t *inode,
|
||||
struct stat *stbuf, struct stat *preparent,
|
||||
struct stat *postparent)
|
||||
struct iatt *stbuf, struct iatt *preparent,
|
||||
struct iatt *postparent)
|
||||
{
|
||||
gf_hdr_common_t *hdr = NULL;
|
||||
gf_fop_mkdir_rsp_t *rsp = NULL;
|
||||
@ -750,9 +750,9 @@ server_mkdir_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
|
||||
hdr->rsp.op_errno = hton32 (gf_errno);
|
||||
|
||||
if (op_ret >= 0) {
|
||||
gf_stat_from_stat (&rsp->stat, stbuf);
|
||||
gf_stat_from_stat (&rsp->preparent, preparent);
|
||||
gf_stat_from_stat (&rsp->postparent, postparent);
|
||||
gf_stat_from_iatt (&rsp->stat, stbuf);
|
||||
gf_stat_from_iatt (&rsp->preparent, preparent);
|
||||
gf_stat_from_iatt (&rsp->postparent, postparent);
|
||||
|
||||
link_inode = inode_link (inode, state->loc.parent,
|
||||
state->loc.name, stbuf);
|
||||
@ -785,8 +785,8 @@ server_mkdir_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
|
||||
int
|
||||
server_mknod_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
|
||||
int32_t op_ret, int32_t op_errno,
|
||||
inode_t *inode, struct stat *stbuf, struct stat *preparent,
|
||||
struct stat *postparent)
|
||||
inode_t *inode, struct iatt *stbuf, struct iatt *preparent,
|
||||
struct iatt *postparent)
|
||||
{
|
||||
gf_hdr_common_t *hdr = NULL;
|
||||
gf_fop_mknod_rsp_t *rsp = NULL;
|
||||
@ -806,9 +806,9 @@ server_mknod_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
|
||||
hdr->rsp.op_errno = hton32 (gf_errno);
|
||||
|
||||
if (op_ret >= 0) {
|
||||
gf_stat_from_stat (&rsp->stat, stbuf);
|
||||
gf_stat_from_stat (&rsp->preparent, preparent);
|
||||
gf_stat_from_stat (&rsp->postparent, postparent);
|
||||
gf_stat_from_iatt (&rsp->stat, stbuf);
|
||||
gf_stat_from_iatt (&rsp->preparent, preparent);
|
||||
gf_stat_from_iatt (&rsp->postparent, postparent);
|
||||
|
||||
link_inode = inode_link (inode, state->loc.parent,
|
||||
state->loc.name, stbuf);
|
||||
@ -1383,9 +1383,9 @@ server_fsetxattr_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
|
||||
*/
|
||||
int
|
||||
server_rename_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
|
||||
int32_t op_ret, int32_t op_errno, struct stat *stbuf,
|
||||
struct stat *preoldparent, struct stat *postoldparent,
|
||||
struct stat *prenewparent, struct stat *postnewparent)
|
||||
int32_t op_ret, int32_t op_errno, struct iatt *stbuf,
|
||||
struct iatt *preoldparent, struct iatt *postoldparent,
|
||||
struct iatt *prenewparent, struct iatt *postnewparent)
|
||||
{
|
||||
gf_hdr_common_t *hdr = NULL;
|
||||
gf_fop_rename_rsp_t *rsp = NULL;
|
||||
@ -1404,8 +1404,8 @@ server_rename_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
|
||||
hdr->rsp.op_errno = hton32 (gf_errno);
|
||||
|
||||
if (op_ret == 0) {
|
||||
stbuf->st_ino = state->loc.inode->ino;
|
||||
stbuf->st_mode = state->loc.inode->st_mode;
|
||||
stbuf->ia_ino = state->loc.inode->ino;
|
||||
stbuf->ia_type = state->loc.inode->ia_type;
|
||||
|
||||
gf_log (state->bound_xl->name, GF_LOG_TRACE,
|
||||
"%"PRId64": RENAME_CBK (%"PRId64") %"PRId64"/%s "
|
||||
@ -1418,13 +1418,13 @@ server_rename_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
|
||||
state->loc.parent, state->loc.name,
|
||||
state->loc2.parent, state->loc2.name,
|
||||
state->loc.inode, stbuf);
|
||||
gf_stat_from_stat (&rsp->stat, stbuf);
|
||||
gf_stat_from_iatt (&rsp->stat, stbuf);
|
||||
|
||||
gf_stat_from_stat (&rsp->preoldparent, preoldparent);
|
||||
gf_stat_from_stat (&rsp->postoldparent, postoldparent);
|
||||
gf_stat_from_iatt (&rsp->preoldparent, preoldparent);
|
||||
gf_stat_from_iatt (&rsp->postoldparent, postoldparent);
|
||||
|
||||
gf_stat_from_stat (&rsp->prenewparent, prenewparent);
|
||||
gf_stat_from_stat (&rsp->postnewparent, postnewparent);
|
||||
gf_stat_from_iatt (&rsp->prenewparent, prenewparent);
|
||||
gf_stat_from_iatt (&rsp->postnewparent, postnewparent);
|
||||
}
|
||||
|
||||
protocol_server_reply (frame, GF_OP_TYPE_FOP_REPLY, GF_FOP_RENAME,
|
||||
@ -1446,8 +1446,8 @@ server_rename_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
|
||||
*/
|
||||
int
|
||||
server_unlink_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
|
||||
int32_t op_ret, int32_t op_errno, struct stat *preparent,
|
||||
struct stat *postparent)
|
||||
int32_t op_ret, int32_t op_errno, struct iatt *preparent,
|
||||
struct iatt *postparent)
|
||||
{
|
||||
gf_hdr_common_t *hdr = NULL;
|
||||
gf_fop_unlink_rsp_t *rsp = NULL;
|
||||
@ -1489,8 +1489,8 @@ server_unlink_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
|
||||
hdr->rsp.op_errno = hton32 (gf_errno);
|
||||
|
||||
if (op_ret == 0) {
|
||||
gf_stat_from_stat (&rsp->preparent, preparent);
|
||||
gf_stat_from_stat (&rsp->postparent, postparent);
|
||||
gf_stat_from_iatt (&rsp->preparent, preparent);
|
||||
gf_stat_from_iatt (&rsp->postparent, postparent);
|
||||
}
|
||||
|
||||
protocol_server_reply (frame, GF_OP_TYPE_FOP_REPLY, GF_FOP_UNLINK,
|
||||
@ -1512,8 +1512,8 @@ server_unlink_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
|
||||
int
|
||||
server_symlink_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
|
||||
int32_t op_ret, int32_t op_errno, inode_t *inode,
|
||||
struct stat *stbuf, struct stat *preparent,
|
||||
struct stat *postparent)
|
||||
struct iatt *stbuf, struct iatt *preparent,
|
||||
struct iatt *postparent)
|
||||
{
|
||||
gf_hdr_common_t *hdr = NULL;
|
||||
gf_fop_symlink_rsp_t *rsp = NULL;
|
||||
@ -1533,9 +1533,9 @@ server_symlink_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
|
||||
hdr->rsp.op_errno = hton32 (gf_errno_to_error (op_errno));
|
||||
|
||||
if (op_ret >= 0) {
|
||||
gf_stat_from_stat (&rsp->stat, stbuf);
|
||||
gf_stat_from_stat (&rsp->preparent, preparent);
|
||||
gf_stat_from_stat (&rsp->postparent, postparent);
|
||||
gf_stat_from_iatt (&rsp->stat, stbuf);
|
||||
gf_stat_from_iatt (&rsp->preparent, preparent);
|
||||
gf_stat_from_iatt (&rsp->postparent, postparent);
|
||||
|
||||
link_inode = inode_link (inode, state->loc.parent,
|
||||
state->loc.name, stbuf);
|
||||
@ -1569,8 +1569,8 @@ server_symlink_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
|
||||
int
|
||||
server_link_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
|
||||
int32_t op_ret, int32_t op_errno, inode_t *inode,
|
||||
struct stat *stbuf, struct stat *preparent,
|
||||
struct stat *postparent)
|
||||
struct iatt *stbuf, struct iatt *preparent,
|
||||
struct iatt *postparent)
|
||||
{
|
||||
gf_hdr_common_t *hdr = NULL;
|
||||
gf_fop_link_rsp_t *rsp = NULL;
|
||||
@ -1590,11 +1590,11 @@ server_link_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
|
||||
hdr->rsp.op_errno = hton32 (gf_errno);
|
||||
|
||||
if (op_ret == 0) {
|
||||
stbuf->st_ino = state->loc.inode->ino;
|
||||
stbuf->ia_ino = state->loc.inode->ino;
|
||||
|
||||
gf_stat_from_stat (&rsp->stat, stbuf);
|
||||
gf_stat_from_stat (&rsp->preparent, preparent);
|
||||
gf_stat_from_stat (&rsp->postparent, postparent);
|
||||
gf_stat_from_iatt (&rsp->stat, stbuf);
|
||||
gf_stat_from_iatt (&rsp->preparent, preparent);
|
||||
gf_stat_from_iatt (&rsp->postparent, postparent);
|
||||
|
||||
gf_log (state->bound_xl->name, GF_LOG_TRACE,
|
||||
"%"PRId64": LINK (%"PRId64") %"PRId64"/%s ==> %"PRId64"/%s",
|
||||
@ -1637,8 +1637,8 @@ server_link_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
|
||||
*/
|
||||
int
|
||||
server_truncate_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
|
||||
int32_t op_ret, int32_t op_errno, struct stat *prebuf,
|
||||
struct stat *postbuf)
|
||||
int32_t op_ret, int32_t op_errno, struct iatt *prebuf,
|
||||
struct iatt *postbuf)
|
||||
{
|
||||
gf_hdr_common_t *hdr = NULL;
|
||||
gf_fop_truncate_rsp_t *rsp = NULL;
|
||||
@ -1657,8 +1657,8 @@ server_truncate_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
|
||||
hdr->rsp.op_errno = hton32 (gf_errno);
|
||||
|
||||
if (op_ret == 0) {
|
||||
gf_stat_from_stat (&rsp->prestat, prebuf);
|
||||
gf_stat_from_stat (&rsp->poststat, postbuf);
|
||||
gf_stat_from_iatt (&rsp->prestat, prebuf);
|
||||
gf_stat_from_iatt (&rsp->poststat, postbuf);
|
||||
} else {
|
||||
gf_log (this->name, GF_LOG_DEBUG,
|
||||
"%"PRId64": TRUNCATE %s (%"PRId64") ==> %"PRId32" (%s)",
|
||||
@ -1686,7 +1686,7 @@ server_truncate_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
|
||||
*/
|
||||
int
|
||||
server_fstat_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
|
||||
int32_t op_ret, int32_t op_errno, struct stat *stbuf)
|
||||
int32_t op_ret, int32_t op_errno, struct iatt *stbuf)
|
||||
{
|
||||
gf_hdr_common_t *hdr = NULL;
|
||||
gf_fop_fstat_rsp_t *rsp = NULL;
|
||||
@ -1703,7 +1703,7 @@ server_fstat_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
|
||||
hdr->rsp.op_errno = hton32 (gf_errno);
|
||||
|
||||
if (op_ret == 0) {
|
||||
gf_stat_from_stat (&rsp->stat, stbuf);
|
||||
gf_stat_from_iatt (&rsp->stat, stbuf);
|
||||
} else {
|
||||
state = CALL_STATE(frame);
|
||||
|
||||
@ -1733,8 +1733,8 @@ server_fstat_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
|
||||
*/
|
||||
int
|
||||
server_ftruncate_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
|
||||
int32_t op_ret, int32_t op_errno, struct stat *prebuf,
|
||||
struct stat *postbuf)
|
||||
int32_t op_ret, int32_t op_errno, struct iatt *prebuf,
|
||||
struct iatt *postbuf)
|
||||
{
|
||||
gf_hdr_common_t *hdr = NULL;
|
||||
gf_fop_ftruncate_rsp_t *rsp = NULL;
|
||||
@ -1751,8 +1751,8 @@ server_ftruncate_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
|
||||
hdr->rsp.op_errno = hton32 (gf_errno);
|
||||
|
||||
if (op_ret == 0) {
|
||||
gf_stat_from_stat (&rsp->prestat, prebuf);
|
||||
gf_stat_from_stat (&rsp->poststat, postbuf);
|
||||
gf_stat_from_iatt (&rsp->prestat, prebuf);
|
||||
gf_stat_from_iatt (&rsp->poststat, postbuf);
|
||||
} else {
|
||||
state = CALL_STATE (frame);
|
||||
|
||||
@ -1825,8 +1825,8 @@ server_flush_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
|
||||
*/
|
||||
int
|
||||
server_fsync_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
|
||||
int32_t op_ret, int32_t op_errno, struct stat *prebuf,
|
||||
struct stat *postbuf)
|
||||
int32_t op_ret, int32_t op_errno, struct iatt *prebuf,
|
||||
struct iatt *postbuf)
|
||||
{
|
||||
gf_hdr_common_t *hdr = NULL;
|
||||
gf_fop_fsync_rsp_t *rsp = NULL;
|
||||
@ -1853,8 +1853,8 @@ server_fsync_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
|
||||
hdr->rsp.op_errno = hton32 (gf_errno);
|
||||
|
||||
if (op_ret >= 0) {
|
||||
gf_stat_from_stat (&(rsp->prestat), prebuf);
|
||||
gf_stat_from_stat (&(rsp->poststat), postbuf);
|
||||
gf_stat_from_iatt (&(rsp->prestat), prebuf);
|
||||
gf_stat_from_iatt (&(rsp->poststat), postbuf);
|
||||
}
|
||||
|
||||
protocol_server_reply (frame, GF_OP_TYPE_FOP_REPLY, GF_FOP_FSYNC,
|
||||
@ -1909,8 +1909,8 @@ server_release_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
|
||||
|
||||
int
|
||||
server_writev_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
|
||||
int32_t op_ret, int32_t op_errno, struct stat *prebuf,
|
||||
struct stat *postbuf)
|
||||
int32_t op_ret, int32_t op_errno, struct iatt *prebuf,
|
||||
struct iatt *postbuf)
|
||||
{
|
||||
gf_hdr_common_t *hdr = NULL;
|
||||
gf_fop_write_rsp_t *rsp = NULL;
|
||||
@ -1927,8 +1927,8 @@ server_writev_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
|
||||
hdr->rsp.op_errno = hton32 (gf_errno_to_error (op_errno));
|
||||
|
||||
if (op_ret >= 0) {
|
||||
gf_stat_from_stat (&rsp->prestat, prebuf);
|
||||
gf_stat_from_stat (&rsp->poststat, postbuf);
|
||||
gf_stat_from_iatt (&rsp->prestat, prebuf);
|
||||
gf_stat_from_iatt (&rsp->poststat, postbuf);
|
||||
} else {
|
||||
state = CALL_STATE(frame);
|
||||
|
||||
@ -1962,7 +1962,7 @@ int
|
||||
server_readv_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
|
||||
int32_t op_ret, int32_t op_errno,
|
||||
struct iovec *vector, int32_t count,
|
||||
struct stat *stbuf, struct iobref *iobref)
|
||||
struct iatt *stbuf, struct iobref *iobref)
|
||||
{
|
||||
gf_hdr_common_t *hdr = NULL;
|
||||
gf_fop_read_rsp_t *rsp = NULL;
|
||||
@ -1979,7 +1979,7 @@ server_readv_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
|
||||
hdr->rsp.op_errno = hton32 (gf_errno);
|
||||
|
||||
if (op_ret >= 0) {
|
||||
gf_stat_from_stat (&rsp->stat, stbuf);
|
||||
gf_stat_from_iatt (&rsp->stat, stbuf);
|
||||
} else {
|
||||
state = CALL_STATE(frame);
|
||||
|
||||
@ -2062,15 +2062,15 @@ server_open_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
|
||||
* @op_errno:
|
||||
* @fd: file descriptor
|
||||
* @inode: inode structure
|
||||
* @stbuf: struct stat of created file
|
||||
* @stbuf: struct iatt of created file
|
||||
*
|
||||
* not for external reference
|
||||
*/
|
||||
int
|
||||
server_create_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
|
||||
int32_t op_ret, int32_t op_errno,
|
||||
fd_t *fd, inode_t *inode, struct stat *stbuf,
|
||||
struct stat *preparent, struct stat *postparent)
|
||||
fd_t *fd, inode_t *inode, struct iatt *stbuf,
|
||||
struct iatt *preparent, struct iatt *postparent)
|
||||
{
|
||||
server_connection_t *conn = NULL;
|
||||
gf_hdr_common_t *hdr = NULL;
|
||||
@ -2089,7 +2089,7 @@ server_create_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
|
||||
gf_log (state->bound_xl->name, GF_LOG_TRACE,
|
||||
"%"PRId64": CREATE %"PRId64"/%s (%"PRId64")",
|
||||
frame->root->unique, state->loc.parent->ino,
|
||||
state->loc.name, stbuf->st_ino);
|
||||
state->loc.name, stbuf->ia_ino);
|
||||
|
||||
link_inode = inode_link (inode, state->loc.parent,
|
||||
state->loc.name, stbuf);
|
||||
@ -2142,9 +2142,9 @@ server_create_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
|
||||
rsp->fd = hton64 (fd_no);
|
||||
|
||||
if (op_ret >= 0) {
|
||||
gf_stat_from_stat (&rsp->stat, stbuf);
|
||||
gf_stat_from_stat (&rsp->preparent, preparent);
|
||||
gf_stat_from_stat (&rsp->postparent, postparent);
|
||||
gf_stat_from_iatt (&rsp->stat, stbuf);
|
||||
gf_stat_from_iatt (&rsp->preparent, preparent);
|
||||
gf_stat_from_iatt (&rsp->postparent, postparent);
|
||||
}
|
||||
|
||||
protocol_server_reply (frame, GF_OP_TYPE_FOP_REPLY, GF_FOP_CREATE,
|
||||
@ -2167,7 +2167,7 @@ server_create_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
|
||||
int
|
||||
server_readlink_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
|
||||
int32_t op_ret, int32_t op_errno, const char *buf,
|
||||
struct stat *sbuf)
|
||||
struct iatt *sbuf)
|
||||
{
|
||||
gf_hdr_common_t *hdr = NULL;
|
||||
gf_fop_readlink_rsp_t *rsp = NULL;
|
||||
@ -2197,7 +2197,7 @@ server_readlink_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
|
||||
hdr->rsp.op_errno = hton32 (gf_errno_to_error (op_errno));
|
||||
|
||||
if (op_ret >= 0) {
|
||||
gf_stat_from_stat (&(rsp->buf), sbuf);
|
||||
gf_stat_from_iatt (&(rsp->buf), sbuf);
|
||||
strcpy (rsp->path, buf);
|
||||
}
|
||||
|
||||
@ -2220,7 +2220,7 @@ server_readlink_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
|
||||
*/
|
||||
int
|
||||
server_stat_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
|
||||
int32_t op_ret, int32_t op_errno, struct stat *stbuf)
|
||||
int32_t op_ret, int32_t op_errno, struct iatt *stbuf)
|
||||
{
|
||||
gf_hdr_common_t *hdr = NULL;
|
||||
gf_fop_stat_rsp_t *rsp = NULL;
|
||||
@ -2239,7 +2239,7 @@ server_stat_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
|
||||
hdr->rsp.op_errno = hton32 (gf_errno_to_error (op_errno));
|
||||
|
||||
if (op_ret == 0) {
|
||||
gf_stat_from_stat (&rsp->stat, stbuf);
|
||||
gf_stat_from_iatt (&rsp->stat, stbuf);
|
||||
} else {
|
||||
gf_log (this->name, GF_LOG_DEBUG,
|
||||
"%"PRId64": STAT %s (%"PRId64") ==> %"PRId32" (%s)",
|
||||
@ -2269,7 +2269,7 @@ server_stat_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
|
||||
int
|
||||
server_setattr_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
|
||||
int32_t op_ret, int32_t op_errno,
|
||||
struct stat *statpre, struct stat *statpost)
|
||||
struct iatt *statpre, struct iatt *statpost)
|
||||
{
|
||||
gf_hdr_common_t *hdr = NULL;
|
||||
gf_fop_setattr_rsp_t *rsp = NULL;
|
||||
@ -2288,8 +2288,8 @@ server_setattr_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
|
||||
hdr->rsp.op_errno = hton32 (gf_errno_to_error (op_errno));
|
||||
|
||||
if (op_ret == 0) {
|
||||
gf_stat_from_stat (&rsp->statpre, statpre);
|
||||
gf_stat_from_stat (&rsp->statpost, statpost);
|
||||
gf_stat_from_iatt (&rsp->statpre, statpre);
|
||||
gf_stat_from_iatt (&rsp->statpost, statpost);
|
||||
} else {
|
||||
gf_log (this->name, GF_LOG_DEBUG,
|
||||
"%"PRId64": SETATTR %s (%"PRId64") ==> %"PRId32" (%s)",
|
||||
@ -2318,7 +2318,7 @@ server_setattr_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
|
||||
int
|
||||
server_fsetattr_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
|
||||
int32_t op_ret, int32_t op_errno,
|
||||
struct stat *statpre, struct stat *statpost)
|
||||
struct iatt *statpre, struct iatt *statpost)
|
||||
{
|
||||
gf_hdr_common_t *hdr = NULL;
|
||||
gf_fop_fsetattr_rsp_t *rsp = NULL;
|
||||
@ -2337,8 +2337,8 @@ server_fsetattr_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
|
||||
hdr->rsp.op_errno = hton32 (gf_errno_to_error (op_errno));
|
||||
|
||||
if (op_ret == 0) {
|
||||
gf_stat_from_stat (&rsp->statpre, statpre);
|
||||
gf_stat_from_stat (&rsp->statpost, statpost);
|
||||
gf_stat_from_iatt (&rsp->statpre, statpre);
|
||||
gf_stat_from_iatt (&rsp->statpost, statpost);
|
||||
} else {
|
||||
gf_log (this->name, GF_LOG_DEBUG,
|
||||
"%"PRId64": FSETATTR %"PRId64" (%"PRId64") ==> "
|
||||
@ -2370,8 +2370,8 @@ server_fsetattr_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
|
||||
int
|
||||
server_lookup_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
|
||||
int32_t op_ret, int32_t op_errno,
|
||||
inode_t *inode, struct stat *stbuf, dict_t *dict,
|
||||
struct stat *postparent)
|
||||
inode_t *inode, struct iatt *stbuf, dict_t *dict,
|
||||
struct iatt *postparent)
|
||||
{
|
||||
gf_hdr_common_t *hdr = NULL;
|
||||
gf_fop_lookup_rsp_t *rsp = NULL;
|
||||
@ -2435,18 +2435,18 @@ server_lookup_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
|
||||
hdr->rsp.op_errno = hton32 (gf_errno);
|
||||
|
||||
if (postparent)
|
||||
gf_stat_from_stat (&rsp->postparent, postparent);
|
||||
gf_stat_from_iatt (&rsp->postparent, postparent);
|
||||
|
||||
if (op_ret == 0) {
|
||||
root_inode = BOUND_XL(frame)->itable->root;
|
||||
if (inode == root_inode) {
|
||||
/* we just looked up root ("/") */
|
||||
stbuf->st_ino = 1;
|
||||
if (inode->st_mode == 0)
|
||||
inode->st_mode = stbuf->st_mode;
|
||||
stbuf->ia_ino = 1;
|
||||
if (inode->ia_type == 0)
|
||||
inode->ia_type = stbuf->ia_type;
|
||||
}
|
||||
|
||||
gf_stat_from_stat (&rsp->stat, stbuf);
|
||||
gf_stat_from_iatt (&rsp->stat, stbuf);
|
||||
|
||||
if (inode->ino != 1) {
|
||||
link_inode = inode_link (inode, state->loc.parent,
|
||||
@ -2802,7 +2802,7 @@ server_setattr (call_frame_t *frame, xlator_t *bound_xl,
|
||||
state->resolve.gen = ntoh64 (req->gen);
|
||||
state->resolve.path = strdup (req->path);
|
||||
|
||||
gf_stat_to_stat (&req->stbuf, &state->stbuf);
|
||||
gf_stat_to_iatt (&req->stbuf, &state->stbuf);
|
||||
state->valid = ntoh32 (req->valid);
|
||||
|
||||
resolve_and_resume (frame, server_setattr_resume);
|
||||
@ -2848,7 +2848,7 @@ server_fsetattr (call_frame_t *frame, xlator_t *bound_xl,
|
||||
state->resolve.type = RESOLVE_MUST;
|
||||
state->resolve.fd_no = ntoh64 (req->fd);
|
||||
|
||||
gf_stat_to_stat (&req->stbuf, &state->stbuf);
|
||||
gf_stat_to_iatt (&req->stbuf, &state->stbuf);
|
||||
state->valid = ntoh32 (req->valid);
|
||||
|
||||
resolve_and_resume (frame, server_fsetattr_resume);
|
||||
@ -5084,25 +5084,25 @@ server_setdents (call_frame_t *frame, xlator_t *bound_xl,
|
||||
&size, &blksize, &blocks, &atime, &atime_nsec,
|
||||
&mtime, &mtime_nsec, &ctime, &ctime_nsec);
|
||||
|
||||
trav->buf.st_dev = dev;
|
||||
trav->buf.st_ino = ino;
|
||||
trav->buf.st_mode = mode;
|
||||
trav->buf.st_nlink = nlink;
|
||||
trav->buf.st_uid = uid;
|
||||
trav->buf.st_gid = gid;
|
||||
trav->buf.st_rdev = rdev;
|
||||
trav->buf.st_size = size;
|
||||
trav->buf.st_blksize = blksize;
|
||||
trav->buf.st_blocks = blocks;
|
||||
trav->buf.ia_gen = dev;
|
||||
trav->buf.ia_ino = ino;
|
||||
trav->buf.ia_prot = ia_prot_from_st_mode (mode);
|
||||
trav->buf.ia_type = ia_type_from_st_mode (mode);
|
||||
trav->buf.ia_nlink = nlink;
|
||||
trav->buf.ia_uid = uid;
|
||||
trav->buf.ia_gid = gid;
|
||||
trav->buf.ia_rdev = rdev;
|
||||
trav->buf.ia_size = size;
|
||||
trav->buf.ia_blksize = blksize;
|
||||
trav->buf.ia_blocks = blocks;
|
||||
|
||||
trav->buf.st_atime = atime;
|
||||
trav->buf.st_mtime = mtime;
|
||||
trav->buf.st_ctime = ctime;
|
||||
|
||||
ST_ATIM_NSEC_SET(&trav->buf, atime_nsec);
|
||||
ST_MTIM_NSEC_SET(&trav->buf, mtime_nsec);
|
||||
ST_CTIM_NSEC_SET(&trav->buf, ctime_nsec);
|
||||
trav->buf.ia_atime = atime;
|
||||
trav->buf.ia_mtime = mtime;
|
||||
trav->buf.ia_ctime = ctime;
|
||||
|
||||
trav->buf.ia_atime_nsec = atime_nsec;
|
||||
trav->buf.ia_mtime_nsec = mtime_nsec;
|
||||
trav->buf.ia_ctime_nsec = ctime_nsec;
|
||||
}
|
||||
|
||||
ender = strchr (buffer_ptr, '\n');
|
||||
@ -5110,7 +5110,7 @@ server_setdents (call_frame_t *frame, xlator_t *bound_xl,
|
||||
break;
|
||||
count = ender - buffer_ptr;
|
||||
*ender = '\0';
|
||||
if (S_ISLNK (trav->buf.st_mode)) {
|
||||
if (IA_ISLNK (trav->buf.ia_type)) {
|
||||
trav->link = strdup (buffer_ptr);
|
||||
} else
|
||||
trav->link = "";
|
||||
@ -5131,7 +5131,7 @@ server_setdents (call_frame_t *frame, xlator_t *bound_xl,
|
||||
while (trav) {
|
||||
prev->next = trav->next;
|
||||
FREE (trav->name);
|
||||
if (S_ISLNK (trav->buf.st_mode))
|
||||
if (IA_ISLNK (trav->buf.ia_type))
|
||||
FREE (trav->link);
|
||||
FREE (trav);
|
||||
trav = prev->next;
|
||||
|
@ -165,7 +165,7 @@ struct _server_state {
|
||||
loc_t *loc_now;
|
||||
server_resolve_t *resolve_now;
|
||||
|
||||
struct stat stbuf;
|
||||
struct iatt stbuf;
|
||||
int valid;
|
||||
|
||||
fd_t *fd;
|
||||
|
@ -165,8 +165,8 @@ resolve_deep_continue (call_frame_t *frame)
|
||||
|
||||
int
|
||||
resolve_deep_cbk (call_frame_t *frame, void *cookie, xlator_t *this,
|
||||
int op_ret, int op_errno, inode_t *inode, struct stat *buf,
|
||||
dict_t *xattr, struct stat *postparent)
|
||||
int op_ret, int op_errno, inode_t *inode, struct iatt *buf,
|
||||
dict_t *xattr, struct iatt *postparent)
|
||||
{
|
||||
server_state_t *state = NULL;
|
||||
server_resolve_t *resolve = NULL;
|
||||
|
File diff suppressed because it is too large
Load Diff
Loading…
x
Reference in New Issue
Block a user