diff options
Diffstat (limited to 'api')
| -rw-r--r-- | api/src/gfapi-messages.h | 3 | ||||
| -rw-r--r-- | api/src/glfs-fops.c | 1 | ||||
| -rw-r--r-- | api/src/glfs-handleops.c | 8 | ||||
| -rw-r--r-- | api/src/glfs-resolve.c | 14 | 
4 files changed, 18 insertions, 8 deletions
diff --git a/api/src/gfapi-messages.h b/api/src/gfapi-messages.h index 050b9766dea..fd90ff4d1bc 100644 --- a/api/src/gfapi-messages.h +++ b/api/src/gfapi-messages.h @@ -40,7 +40,7 @@   */  #define GLFS_GFAPI_BASE             GLFS_MSGID_COMP_API -#define GLFS_NUM_MESSAGES           47 +#define GLFS_NUM_MESSAGES           48  #define GLFS_MSGID_END              (GLFS_GFAPI_BASE + GLFS_NUM_MESSAGESi + 1)  /* Messages with message IDs */  #define glfs_msg_start_x GLFS_GFAPI_BASE, "Invalid: Start of messages" @@ -93,6 +93,7 @@  #define API_MSG_NEW_GRAPH                       (GLFS_GFAPI_BASE + 45)  #define API_MSG_ALLOC_FAILED                    (GLFS_GFAPI_BASE + 46)  #define API_MSG_CREATE_HANDLE_FAILED            (GLFS_GFAPI_BASE + 47) +#define API_MSG_INODE_LINK_FAILED               (GLFS_GFAPI_BASE + 48)  /*------------*/  #define glfs_msg_end_x GLFS_MSGID_END, "Invalid: End of messages" diff --git a/api/src/glfs-fops.c b/api/src/glfs-fops.c index b8fe0498225..48bbf224d87 100644 --- a/api/src/glfs-fops.c +++ b/api/src/glfs-fops.c @@ -133,7 +133,6 @@ glfs_loc_link (loc_t *loc, struct iatt *iatt)  		ret = 0;  	} else {  		ret = -1; -		errno = ENOMEM;  	}  	return ret; diff --git a/api/src/glfs-handleops.c b/api/src/glfs-handleops.c index 72aa7de146e..721187f8342 100644 --- a/api/src/glfs-handleops.c +++ b/api/src/glfs-handleops.c @@ -1332,11 +1332,9 @@ pub_glfs_h_create_from_handle (struct glfs *fs, unsigned char *handle, int len,                  }                  inode_lookup (newinode);          } else { -                gf_msg (subvol->name, GF_LOG_WARNING, EINVAL, -                        API_MSG_INVALID_ENTRY, -                        "inode linking of %s failed: %s", -                        uuid_utoa (loc.gfid), strerror (errno)); -                errno = EINVAL; +                gf_msg (subvol->name, GF_LOG_WARNING, errno, +                        API_MSG_INODE_LINK_FAILED, +                        "inode linking of %s failed", uuid_utoa (loc.gfid));                  goto out;          } diff --git a/api/src/glfs-resolve.c b/api/src/glfs-resolve.c index 9d8ea2c4553..7a7064c3aa2 100644 --- a/api/src/glfs-resolve.c +++ b/api/src/glfs-resolve.c @@ -129,6 +129,11 @@ glfs_refresh_inode_safe (xlator_t *subvol, inode_t *oldinode,                  if (newinode == loc.inode)                          inode_ctx_set (newinode, THIS, &ctx_value);                  inode_lookup (newinode); +        } else { +                gf_msg (subvol->name, GF_LOG_WARNING, errno, +                        API_MSG_INODE_LINK_FAILED, +                        "inode linking of %s failed", +                        uuid_utoa ((unsigned char *)&iatt.ia_gfid));          }  	loc_wipe (&loc); @@ -341,7 +346,14 @@ glfs_resolve_component (struct glfs *fs, xlator_t *subvol, inode_t *parent,  		goto out;  	inode = inode_link (loc.inode, loc.parent, component, &ciatt); -        if (inode == loc.inode) + +        if (!inode) { +                gf_msg (subvol->name, GF_LOG_WARNING, errno, +                        API_MSG_INODE_LINK_FAILED, +                        "inode linking of %s failed", +                        uuid_utoa ((unsigned char *)&ciatt.ia_gfid)); +                goto out; +        } else if (inode == loc.inode)                  inode_ctx_set (inode, THIS, &ctx_value);  found:  	if (inode)  | 
