diff options
Diffstat (limited to 'xlators/cluster/unify/src')
| -rw-r--r-- | xlators/cluster/unify/src/unify-self-heal.c | 8 | ||||
| -rw-r--r-- | xlators/cluster/unify/src/unify.c | 311 | ||||
| -rw-r--r-- | xlators/cluster/unify/src/unify.h | 20 | 
3 files changed, 170 insertions, 169 deletions
diff --git a/xlators/cluster/unify/src/unify-self-heal.c b/xlators/cluster/unify/src/unify-self-heal.c index 3e4affe8c23..86f9e88fa5c 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 6ce31da9dc6..2eadfe31cd7 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 b81946697f8..cf3560d5b05 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;  | 
