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:
Anand V. Avati 2010-03-16 09:46:33 +00:00 committed by Anand V. Avati
parent cc7515fc3d
commit 283ec9608e
81 changed files with 2523 additions and 2972 deletions

View File

@ -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;

View File

@ -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);

View File

@ -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,

View File

@ -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 */

View File

@ -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;

View File

@ -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);

View File

@ -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];
};

View File

@ -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;

View File

@ -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);

View File

@ -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,

View File

@ -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;

View File

@ -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);

View File

@ -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__ */

View File

@ -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);

View File

@ -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

View File

@ -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;

View File

@ -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)) {

View File

@ -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;

View File

@ -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);

View File

@ -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;

View File

@ -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,

View File

@ -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;

View File

@ -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;

View File

@ -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);

View File

@ -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,

View File

@ -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;

View File

@ -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;

View File

@ -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)

View File

@ -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);

View File

@ -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,

View File

@ -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 {

View File

@ -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;

View File

@ -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);

View File

@ -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;
}

View File

@ -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;

View File

@ -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;

View File

@ -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));
}
}

View File

@ -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;

View File

@ -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;

View File

@ -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;

View File

@ -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;

View File

@ -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;

View File

@ -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;

View File

@ -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;

View File

@ -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;

View File

@ -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;

View File

@ -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;

View File

@ -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;

View File

@ -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;

View File

@ -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);

View File

@ -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);
}

View File

@ -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;

View File

@ -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);

View File

@ -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);

View File

@ -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;

View File

@ -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;

View File

@ -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,

View File

@ -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;
}

View File

@ -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;

View File

@ -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,

View File

@ -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);

View File

@ -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;

View File

@ -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;

View File

@ -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);

View File

@ -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;

View File

@ -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;
};

View File

@ -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;

View File

@ -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;

View File

@ -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;
};

View File

@ -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);

View File

@ -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;
};

View File

@ -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);

View File

@ -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",

View File

@ -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;

View File

@ -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

View File

@ -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);

View File

@ -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);

View File

@ -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;

View File

@ -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;

View File

@ -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