summaryrefslogtreecommitdiffstats
path: root/xlators/cluster
diff options
context:
space:
mode:
Diffstat (limited to 'xlators/cluster')
-rw-r--r--xlators/cluster/afr/src/afr-dir-read.c6
-rw-r--r--xlators/cluster/afr/src/afr-dir-write.c146
-rw-r--r--xlators/cluster/afr/src/afr-inode-read.c16
-rw-r--r--xlators/cluster/afr/src/afr-inode-write.c40
-rw-r--r--xlators/cluster/afr/src/afr-inode-write.h4
-rw-r--r--xlators/cluster/afr/src/afr-open.c6
-rw-r--r--xlators/cluster/afr/src/afr-self-heal-algorithm.c12
-rw-r--r--xlators/cluster/afr/src/afr-self-heal-common.c63
-rw-r--r--xlators/cluster/afr/src/afr-self-heal-common.h2
-rw-r--r--xlators/cluster/afr/src/afr-self-heal-data.c31
-rw-r--r--xlators/cluster/afr/src/afr-self-heal-entry.c112
-rw-r--r--xlators/cluster/afr/src/afr-self-heal-metadata.c36
-rw-r--r--xlators/cluster/afr/src/afr-self-heal.h10
-rw-r--r--xlators/cluster/afr/src/afr.c60
-rw-r--r--xlators/cluster/afr/src/afr.h100
-rw-r--r--xlators/cluster/dht/src/dht-common.c289
-rw-r--r--xlators/cluster/dht/src/dht-common.h31
-rw-r--r--xlators/cluster/dht/src/dht-helper.c32
-rw-r--r--xlators/cluster/dht/src/dht-linkfile.c8
-rw-r--r--xlators/cluster/dht/src/dht-rename.c62
-rw-r--r--xlators/cluster/dht/src/dht-selfheal.c16
-rw-r--r--xlators/cluster/dht/src/nufa.c20
-rw-r--r--xlators/cluster/dht/src/switch.c20
-rw-r--r--xlators/cluster/ha/src/ha.c100
-rw-r--r--xlators/cluster/ha/src/ha.h6
-rw-r--r--xlators/cluster/map/src/map.c114
-rw-r--r--xlators/cluster/map/src/map.h2
-rw-r--r--xlators/cluster/stripe/src/stripe.c348
-rw-r--r--xlators/cluster/stripe/src/stripe.h12
-rw-r--r--xlators/cluster/unify/src/unify-self-heal.c8
-rw-r--r--xlators/cluster/unify/src/unify.c311
-rw-r--r--xlators/cluster/unify/src/unify.h20
32 files changed, 1015 insertions, 1028 deletions
diff --git a/xlators/cluster/afr/src/afr-dir-read.c b/xlators/cluster/afr/src/afr-dir-read.c
index 98cda1e80..065221e1d 100644
--- a/xlators/cluster/afr/src/afr-dir-read.c
+++ b/xlators/cluster/afr/src/afr-dir-read.c
@@ -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)) {
diff --git a/xlators/cluster/afr/src/afr-dir-write.c b/xlators/cluster/afr/src/afr-dir-write.c
index 8a6529bfb..14d3e28c4 100644
--- a/xlators/cluster/afr/src/afr-dir-write.c
+++ b/xlators/cluster/afr/src/afr-dir-write.c
@@ -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;
diff --git a/xlators/cluster/afr/src/afr-inode-read.c b/xlators/cluster/afr/src/afr-inode-read.c
index 3b89da9ab..9ce103675 100644
--- a/xlators/cluster/afr/src/afr-inode-read.c
+++ b/xlators/cluster/afr/src/afr-inode-read.c
@@ -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);
diff --git a/xlators/cluster/afr/src/afr-inode-write.c b/xlators/cluster/afr/src/afr-inode-write.c
index 32e93e6e2..7b7408bbc 100644
--- a/xlators/cluster/afr/src/afr-inode-write.c
+++ b/xlators/cluster/afr/src/afr-inode-write.c
@@ -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;
diff --git a/xlators/cluster/afr/src/afr-inode-write.h b/xlators/cluster/afr/src/afr-inode-write.h
index 66da777b6..f0c2fbe00 100644
--- a/xlators/cluster/afr/src/afr-inode-write.h
+++ b/xlators/cluster/afr/src/afr-inode-write.h
@@ -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,
diff --git a/xlators/cluster/afr/src/afr-open.c b/xlators/cluster/afr/src/afr-open.c
index ae58eef06..1bfeb9cdf 100644
--- a/xlators/cluster/afr/src/afr-open.c
+++ b/xlators/cluster/afr/src/afr-open.c
@@ -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;
diff --git a/xlators/cluster/afr/src/afr-self-heal-algorithm.c b/xlators/cluster/afr/src/afr-self-heal-algorithm.c
index eefd1ff7b..f840c1bbe 100644
--- a/xlators/cluster/afr/src/afr-self-heal-algorithm.c
+++ b/xlators/cluster/afr/src/afr-self-heal-algorithm.c
@@ -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;
diff --git a/xlators/cluster/afr/src/afr-self-heal-common.c b/xlators/cluster/afr/src/afr-self-heal-common.c
index fbd13e47a..dead7a323 100644
--- a/xlators/cluster/afr/src/afr-self-heal-common.c
+++ b/xlators/cluster/afr/src/afr-self-heal-common.c
@@ -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.st_uid = sh->buf[sh->source].st_uid;
- stbuf.st_gid = sh->buf[sh->source].st_gid;
+ 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.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);
diff --git a/xlators/cluster/afr/src/afr-self-heal-common.h b/xlators/cluster/afr/src/afr-self-heal-common.h
index be556a3c7..298ac022a 100644
--- a/xlators/cluster/afr/src/afr-self-heal-common.h
+++ b/xlators/cluster/afr/src/afr-self-heal-common.h
@@ -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,
diff --git a/xlators/cluster/afr/src/afr-self-heal-data.c b/xlators/cluster/afr/src/afr-self-heal-data.c
index 75090ad79..5711c89cf 100644
--- a/xlators/cluster/afr/src/afr-self-heal-data.c
+++ b/xlators/cluster/afr/src/afr-self-heal-data.c
@@ -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;
diff --git a/xlators/cluster/afr/src/afr-self-heal-entry.c b/xlators/cluster/afr/src/afr-self-heal-entry.c
index 17c82d565..ef8de1987 100644
--- a/xlators/cluster/afr/src/afr-self-heal-entry.c
+++ b/xlators/cluster/afr/src/afr-self-heal-entry.c
@@ -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);
-
-#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;
-
-#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
+ impunge_local->cont.lookup.buf.ia_uid,
+ impunge_local->cont.lookup.buf.ia_gid);
+
+ 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;
- 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;
diff --git a/xlators/cluster/afr/src/afr-self-heal-metadata.c b/xlators/cluster/afr/src/afr-self-heal-metadata.c
index bddccf682..57408cfa6 100644
--- a/xlators/cluster/afr/src/afr-self-heal-metadata.c
+++ b/xlators/cluster/afr/src/afr-self-heal-metadata.c
@@ -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)
diff --git a/xlators/cluster/afr/src/afr-self-heal.h b/xlators/cluster/afr/src/afr-self-heal.h
index 1c2743a48..c43473a43 100644
--- a/xlators/cluster/afr/src/afr-self-heal.h
+++ b/xlators/cluster/afr/src/afr-self-heal.h
@@ -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);
diff --git a/xlators/cluster/afr/src/afr.c b/xlators/cluster/afr/src/afr.c
index f4917929c..b7fbbd09c 100644
--- a/xlators/cluster/afr/src/afr.c
+++ b/xlators/cluster/afr/src/afr.c
@@ -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,
diff --git a/xlators/cluster/afr/src/afr.h b/xlators/cluster/afr/src/afr.h
index a5c75add7..589d5dffc 100644
--- a/xlators/cluster/afr/src/afr.h
+++ b/xlators/cluster/afr/src/afr.h
@@ -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 {
diff --git a/xlators/cluster/dht/src/dht-common.c b/xlators/cluster/dht/src/dht-common.c
index 6f0ab4ae5..1ee723d9c 100644
--- a/xlators/cluster/dht/src/dht-common.c
+++ b/xlators/cluster/dht/src/dht-common.c
@@ -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;
diff --git a/xlators/cluster/dht/src/dht-common.h b/xlators/cluster/dht/src/dht-common.h
index 9b978155e..e6e1e8181 100644
--- a/xlators/cluster/dht/src/dht-common.h
+++ b/xlators/cluster/dht/src/dht-common.h
@@ -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);
diff --git a/xlators/cluster/dht/src/dht-helper.c b/xlators/cluster/dht/src/dht-helper.c
index fc7f7a4bf..f2e1a182a 100644
--- a/xlators/cluster/dht/src/dht-helper.c
+++ b/xlators/cluster/dht/src/dht-helper.c
@@ -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;
}
diff --git a/xlators/cluster/dht/src/dht-linkfile.c b/xlators/cluster/dht/src/dht-linkfile.c
index 77e7818ef..3f4630cf4 100644
--- a/xlators/cluster/dht/src/dht-linkfile.c
+++ b/xlators/cluster/dht/src/dht-linkfile.c
@@ -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;
diff --git a/xlators/cluster/dht/src/dht-rename.c b/xlators/cluster/dht/src/dht-rename.c
index b0356da87..54c41120c 100644
--- a/xlators/cluster/dht/src/dht-rename.c
+++ b/xlators/cluster/dht/src/dht-rename.c
@@ -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;
diff --git a/xlators/cluster/dht/src/dht-selfheal.c b/xlators/cluster/dht/src/dht-selfheal.c
index a254b0ddc..8a4d3a6f5 100644
--- a/xlators/cluster/dht/src/dht-selfheal.c
+++ b/xlators/cluster/dht/src/dht-selfheal.c
@@ -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));
}
}
diff --git a/xlators/cluster/dht/src/nufa.c b/xlators/cluster/dht/src/nufa.c
index a4a4a2568..edb900f76 100644
--- a/xlators/cluster/dht/src/nufa.c
+++ b/xlators/cluster/dht/src/nufa.c
@@ -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;
diff --git a/xlators/cluster/dht/src/switch.c b/xlators/cluster/dht/src/switch.c
index 766bd31ff..680ce8d6f 100644
--- a/xlators/cluster/dht/src/switch.c
+++ b/xlators/cluster/dht/src/switch.c
@@ -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;
diff --git a/xlators/cluster/ha/src/ha.c b/xlators/cluster/ha/src/ha.c
index 442de21df..3317ae783 100644
--- a/xlators/cluster/ha/src/ha.c
+++ b/xlators/cluster/ha/src/ha.c
@@ -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;
diff --git a/xlators/cluster/ha/src/ha.h b/xlators/cluster/ha/src/ha.h
index 0da31850c..e5c9541db 100644
--- a/xlators/cluster/ha/src/ha.h
+++ b/xlators/cluster/ha/src/ha.h
@@ -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;
diff --git a/xlators/cluster/map/src/map.c b/xlators/cluster/map/src/map.c
index 72464fc82..17de0c095 100644
--- a/xlators/cluster/map/src/map.c
+++ b/xlators/cluster/map/src/map.c
@@ -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;
diff --git a/xlators/cluster/map/src/map.h b/xlators/cluster/map/src/map.h
index b5f57518b..b423642cc 100644
--- a/xlators/cluster/map/src/map.h
+++ b/xlators/cluster/map/src/map.h
@@ -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;
diff --git a/xlators/cluster/stripe/src/stripe.c b/xlators/cluster/stripe/src/stripe.c
index 21f1d0d03..420f43e20 100644
--- a/xlators/cluster/stripe/src/stripe.c
+++ b/xlators/cluster/stripe/src/stripe.c
@@ -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;
diff --git a/xlators/cluster/stripe/src/stripe.h b/xlators/cluster/stripe/src/stripe.h
index 614fb7a08..85a50f817 100644
--- a/xlators/cluster/stripe/src/stripe.h
+++ b/xlators/cluster/stripe/src/stripe.h
@@ -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;
diff --git a/xlators/cluster/unify/src/unify-self-heal.c b/xlators/cluster/unify/src/unify-self-heal.c
index 3e4affe8c..86f9e88fa 100644
--- a/xlators/cluster/unify/src/unify-self-heal.c
+++ b/xlators/cluster/unify/src/unify-self-heal.c
@@ -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;
diff --git a/xlators/cluster/unify/src/unify.c b/xlators/cluster/unify/src/unify.c
index 6ce31da9d..2eadfe31c 100644
--- a/xlators/cluster/unify/src/unify.c
+++ b/xlators/cluster/unify/src/unify.c
@@ -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;
diff --git a/xlators/cluster/unify/src/unify.h b/xlators/cluster/unify/src/unify.h
index b81946697..cf3560d5b 100644
--- a/xlators/cluster/unify/src/unify.h
+++ b/xlators/cluster/unify/src/unify.h
@@ -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;