diff options
Diffstat (limited to 'xlators/cluster/dht/src')
-rw-r--r-- | xlators/cluster/dht/src/dht-common.c | 289 | ||||
-rw-r--r-- | xlators/cluster/dht/src/dht-common.h | 31 | ||||
-rw-r--r-- | xlators/cluster/dht/src/dht-helper.c | 32 | ||||
-rw-r--r-- | xlators/cluster/dht/src/dht-linkfile.c | 8 | ||||
-rw-r--r-- | xlators/cluster/dht/src/dht-rename.c | 62 | ||||
-rw-r--r-- | xlators/cluster/dht/src/dht-selfheal.c | 16 | ||||
-rw-r--r-- | xlators/cluster/dht/src/nufa.c | 20 | ||||
-rw-r--r-- | xlators/cluster/dht/src/switch.c | 20 |
8 files changed, 241 insertions, 237 deletions
diff --git a/xlators/cluster/dht/src/dht-common.c b/xlators/cluster/dht/src/dht-common.c index 6f0ab4ae..1ee723d9 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 9b978155..e6e1e818 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 fc7f7a4b..f2e1a182 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 77e7818e..3f4630cf 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 b0356da8..54c41120 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 a254b0dd..8a4d3a6f 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 a4a4a256..edb900f7 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 766bd31f..680ce8d6 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; |