summaryrefslogtreecommitdiffstats
path: root/libglusterfs/src/inode.c
diff options
context:
space:
mode:
Diffstat (limited to 'libglusterfs/src/inode.c')
-rw-r--r--libglusterfs/src/inode.c150
1 files changed, 98 insertions, 52 deletions
diff --git a/libglusterfs/src/inode.c b/libglusterfs/src/inode.c
index 579b94ca036..70150536643 100644
--- a/libglusterfs/src/inode.c
+++ b/libglusterfs/src/inode.c
@@ -23,6 +23,7 @@
#include "list.h"
#include <time.h>
#include <assert.h>
+#include "libglusterfs-messages.h"
/* TODO:
move latest accessed dentry to list_head of inode
@@ -85,7 +86,8 @@ __dentry_hash (dentry_t *dentry)
int hash = 0;
if (!dentry) {
- gf_log_callingfn (THIS->name, GF_LOG_WARNING, "dentry not found");
+ gf_msg_callingfn (THIS->name, GF_LOG_WARNING, 0,
+ LG_MSG_DENTRY_NOT_FOUND, "dentry not found");
return;
}
@@ -102,7 +104,8 @@ static int
__is_dentry_hashed (dentry_t *dentry)
{
if (!dentry) {
- gf_log_callingfn (THIS->name, GF_LOG_WARNING, "dentry not found");
+ gf_msg_callingfn (THIS->name, GF_LOG_WARNING, 0,
+ LG_MSG_DENTRY_NOT_FOUND, "dentry not found");
return 0;
}
@@ -114,7 +117,8 @@ static void
__dentry_unhash (dentry_t *dentry)
{
if (!dentry) {
- gf_log_callingfn (THIS->name, GF_LOG_WARNING, "dentry not found");
+ gf_msg_callingfn (THIS->name, GF_LOG_WARNING, 0,
+ LG_MSG_DENTRY_NOT_FOUND, "dentry not found");
return;
}
@@ -126,7 +130,8 @@ static void
__dentry_unset (dentry_t *dentry)
{
if (!dentry) {
- gf_log_callingfn (THIS->name, GF_LOG_WARNING, "dentry not found");
+ gf_msg_callingfn (THIS->name, GF_LOG_WARNING, 0,
+ LG_MSG_DENTRY_NOT_FOUND, "dentry not found");
return;
}
@@ -157,19 +162,24 @@ __foreach_ancestor_dentry (dentry_t *dentry,
int ret = 0;
if (!dentry) {
- gf_log_callingfn (THIS->name, GF_LOG_WARNING, "dentry not found");
+ gf_msg_callingfn (THIS->name, GF_LOG_WARNING, 0,
+ LG_MSG_DENTRY_NOT_FOUND, "dentry not found");
return 0;
}
ret = per_dentry_fn (dentry, data);
if (ret) {
- gf_log (THIS->name, GF_LOG_WARNING, "per dentry fn returned %d", ret);
+ gf_msg (THIS->name, GF_LOG_WARNING, 0,
+ LG_MSG_PER_DENTRY_FAILED, "per dentry fn returned %d",
+ ret);
goto out;
}
parent = dentry->parent;
if (!parent) {
- gf_log (THIS->name, GF_LOG_WARNING, "parent not found");
+ gf_msg (THIS->name, GF_LOG_WARNING, 0,
+ LG_MSG_PARENT_DENTRY_NOT_FOUND,
+ "parent not found");
goto out;
}
@@ -212,10 +222,10 @@ __is_dentry_cyclic (dentry_t *dentry)
if (dentry->name)
name = dentry->name;
- gf_log (dentry->inode->table->name, GF_LOG_CRITICAL,
- "detected cyclic loop formation during inode linkage."
- " inode (%s) linking under itself as %s",
- uuid_utoa (inode->gfid), name);
+ gf_msg (dentry->inode->table->name, GF_LOG_CRITICAL, 0,
+ LG_MSG_DENTRY_CYCLIC_LOOP, "detected cyclic loop "
+ "formation during inode linkage. inode (%s) linking "
+ "under itself as %s", uuid_utoa (inode->gfid), name);
}
return ret;
@@ -226,7 +236,8 @@ static void
__inode_unhash (inode_t *inode)
{
if (!inode) {
- gf_log_callingfn (THIS->name, GF_LOG_WARNING, "inode not found");
+ gf_msg_callingfn (THIS->name, GF_LOG_WARNING, 0,
+ LG_MSG_INODE_NOT_FOUND, "inode not found");
return;
}
@@ -238,7 +249,8 @@ static int
__is_inode_hashed (inode_t *inode)
{
if (!inode) {
- gf_log_callingfn (THIS->name, GF_LOG_WARNING, "inode not found");
+ gf_msg_callingfn (THIS->name, GF_LOG_WARNING, 0,
+ LG_MSG_INODE_NOT_FOUND, "inode not found");
return 0;
}
@@ -253,7 +265,8 @@ __inode_hash (inode_t *inode)
int hash = 0;
if (!inode) {
- gf_log_callingfn (THIS->name, GF_LOG_WARNING, "inode not found");
+ gf_msg_callingfn (THIS->name, GF_LOG_WARNING, 0,
+ LG_MSG_INODE_NOT_FOUND, "inode not found");
return;
}
@@ -272,7 +285,9 @@ __dentry_search_for_inode (inode_t *inode, uuid_t pargfid, const char *name)
dentry_t *tmp = NULL;
if (!inode || !name) {
- gf_log_callingfn (THIS->name, GF_LOG_WARNING, "inode || name not found");
+ gf_msg_callingfn (THIS->name, GF_LOG_WARNING, EINVAL,
+ LG_MSG_INVALID_ARG,
+ "inode || name not found");
return NULL;
}
@@ -302,12 +317,14 @@ __inode_ctx_free (inode_t *inode)
xlator_t *old_THIS = NULL;
if (!inode) {
- gf_log_callingfn (THIS->name, GF_LOG_WARNING, "inode not found");
+ gf_msg_callingfn (THIS->name, GF_LOG_WARNING, 0,
+ LG_MSG_INODE_NOT_FOUND, "inode not found");
return;
}
if (!inode->_ctx) {
- gf_log (THIS->name, GF_LOG_WARNING, "_ctx not found");
+ gf_msg (THIS->name, GF_LOG_WARNING, 0, LG_MSG_CTX_NULL,
+ "_ctx not found");
goto noctx;
}
@@ -333,7 +350,8 @@ static void
__inode_destroy (inode_t *inode)
{
if (!inode) {
- gf_log_callingfn (THIS->name, GF_LOG_WARNING, "inode not found");
+ gf_msg_callingfn (THIS->name, GF_LOG_WARNING, 0,
+ LG_MSG_INODE_NOT_FOUND, "inode not found");
return;
}
@@ -352,12 +370,14 @@ inode_ctx_merge (fd_t *fd, inode_t *inode, inode_t *linked_inode)
xlator_t *old_THIS = NULL;
if (!fd || !inode || !linked_inode) {
- gf_log_callingfn (THIS->name, GF_LOG_WARNING, "invalid inode");
+ gf_msg_callingfn (THIS->name, GF_LOG_WARNING, EINVAL,
+ LG_MSG_INVALID_ARG, "invalid inode");
return;
}
if (!inode->_ctx || !linked_inode->_ctx) {
- gf_log_callingfn (THIS->name, GF_LOG_WARNING,
+ gf_msg_callingfn (THIS->name, GF_LOG_WARNING, EINVAL,
+ LG_MSG_INVALID_ARG,
"invalid inode context");
return;
}
@@ -394,7 +414,8 @@ __inode_passivate (inode_t *inode)
dentry_t *t = NULL;
if (!inode) {
- gf_log_callingfn (THIS->name, GF_LOG_WARNING, "inode not found");
+ gf_msg_callingfn (THIS->name, GF_LOG_WARNING, 0,
+ LG_MSG_INODE_NOT_FOUND, "inode not found");
return;
}
@@ -415,7 +436,8 @@ __inode_retire (inode_t *inode)
dentry_t *t = NULL;
if (!inode) {
- gf_log_callingfn (THIS->name, GF_LOG_WARNING, "inode not found");
+ gf_msg_callingfn (THIS->name, GF_LOG_WARNING, 0,
+ LG_MSG_INODE_NOT_FOUND, "inode not found");
return;
}
@@ -536,7 +558,8 @@ __dentry_create (inode_t *inode, inode_t *parent, const char *name)
dentry_t *newd = NULL;
if (!inode || !parent || !name) {
- gf_log_callingfn (THIS->name, GF_LOG_WARNING,
+ gf_msg_callingfn (THIS->name, GF_LOG_WARNING, EINVAL,
+ LG_MSG_INVALID_ARG,
"inode || parent || name not found");
return NULL;
}
@@ -573,7 +596,9 @@ __inode_create (inode_table_t *table)
inode_t *newi = NULL;
if (!table) {
- gf_log_callingfn (THIS->name, GF_LOG_WARNING, "table not found");
+ gf_msg_callingfn (THIS->name, GF_LOG_WARNING, 0,
+ LG_MSG_INODE_TABLE_NOT_FOUND, "table not "
+ "found");
return NULL;
}
@@ -616,7 +641,9 @@ inode_new (inode_table_t *table)
inode_t *inode = NULL;
if (!table) {
- gf_log_callingfn (THIS->name, GF_LOG_WARNING, "inode not found");
+ gf_msg_callingfn (THIS->name, GF_LOG_WARNING, 0,
+ LG_MSG_INODE_TABLE_NOT_FOUND, "inode not "
+ "found");
return NULL;
}
@@ -727,8 +754,9 @@ inode_grep (inode_table_t *table, inode_t *parent, const char *name)
dentry_t *dentry = NULL;
if (!table || !parent || !name) {
- gf_log_callingfn (THIS->name, GF_LOG_WARNING,
- "table || parent || name not found");
+ gf_msg_callingfn (THIS->name, GF_LOG_WARNING, EINVAL,
+ LG_MSG_INVALID_ARG, "table || parent || name"
+ " not found");
return NULL;
}
@@ -800,8 +828,9 @@ inode_grep_for_gfid (inode_table_t *table, inode_t *parent, const char *name,
int ret = -1;
if (!table || !parent || !name) {
- gf_log_callingfn (THIS->name, GF_LOG_WARNING,
- "table || parent || name not found");
+ gf_msg_callingfn (THIS->name, GF_LOG_WARNING, EINVAL,
+ LG_MSG_INVALID_ARG, "table || parent || name"
+ " not found");
return ret;
}
@@ -848,7 +877,9 @@ __inode_find (inode_table_t *table, uuid_t gfid)
int hash = 0;
if (!table) {
- gf_log_callingfn (THIS->name, GF_LOG_WARNING, "table not found");
+ gf_msg_callingfn (THIS->name, GF_LOG_WARNING, 0,
+ LG_MSG_INODE_TABLE_NOT_FOUND, "table not "
+ "found");
goto out;
}
@@ -875,7 +906,9 @@ inode_find (inode_table_t *table, uuid_t gfid)
inode_t *inode = NULL;
if (!table) {
- gf_log_callingfn (THIS->name, GF_LOG_WARNING, "table not found");
+ gf_msg_callingfn (THIS->name, GF_LOG_WARNING, 0,
+ LG_MSG_INODE_TABLE_NOT_FOUND, "table not "
+ "found");
return NULL;
}
@@ -976,7 +1009,8 @@ __inode_link (inode_t *inode, inode_t *parent, const char *name,
if (!old_dentry || old_dentry->inode != link_inode) {
dentry = __dentry_create (link_inode, parent, name);
if (!dentry) {
- gf_log_callingfn (THIS->name, GF_LOG_ERROR,
+ gf_msg_callingfn (THIS->name, GF_LOG_ERROR, 0,
+ LG_MSG_DENTRY_CREATE_FAILED,
"dentry create failed on "
"inode %s with parent %s",
uuid_utoa (link_inode->gfid),
@@ -1006,7 +1040,8 @@ inode_link (inode_t *inode, inode_t *parent, const char *name,
inode_t *linked_inode = NULL;
if (!inode) {
- gf_log_callingfn (THIS->name, GF_LOG_WARNING, "inode not found");
+ gf_msg_callingfn (THIS->name, GF_LOG_WARNING, 0,
+ LG_MSG_INODE_NOT_FOUND, "inode not found");
return NULL;
}
@@ -1033,7 +1068,8 @@ inode_lookup (inode_t *inode)
inode_table_t *table = NULL;
if (!inode) {
- gf_log_callingfn (THIS->name, GF_LOG_WARNING, "inode not found");
+ gf_msg_callingfn (THIS->name, GF_LOG_WARNING, 0,
+ LG_MSG_INODE_NOT_FOUND, "inode not found");
return -1;
}
@@ -1055,7 +1091,8 @@ inode_ref_reduce_by_n (inode_t *inode, uint64_t nref)
inode_table_t *table = NULL;
if (!inode) {
- gf_log_callingfn (THIS->name, GF_LOG_WARNING, "inode not found");
+ gf_msg_callingfn (THIS->name, GF_LOG_WARNING, 0,
+ LG_MSG_INODE_NOT_FOUND, "inode not found");
return -1;
}
@@ -1079,7 +1116,8 @@ inode_forget (inode_t *inode, uint64_t nlookup)
inode_table_t *table = NULL;
if (!inode) {
- gf_log_callingfn (THIS->name, GF_LOG_WARNING, "inode not found");
+ gf_msg_callingfn (THIS->name, GF_LOG_WARNING, 0,
+ LG_MSG_INODE_NOT_FOUND, "inode not found");
return -1;
}
@@ -1109,7 +1147,8 @@ inode_invalidate(inode_t *inode)
xlator_t *old_THIS = NULL;
if (!inode) {
- gf_log_callingfn(THIS->name, GF_LOG_WARNING, "inode not found");
+ gf_msg_callingfn(THIS->name, GF_LOG_WARNING, 0,
+ LG_MSG_INODE_NOT_FOUND, "inode not found");
return -1;
}
@@ -1161,8 +1200,9 @@ __inode_unlink (inode_t *inode, inode_t *parent, const char *name)
if (dentry) {
__dentry_unset (dentry);
} else {
- gf_log ("inode", GF_LOG_WARNING, "%s/%s: dentry not "
- "found in %s", uuid_utoa_r (parent->gfid, pgfid), name,
+ gf_msg ("inode", GF_LOG_WARNING, 0, LG_MSG_DENTRY_NOT_FOUND,
+ "%s/%s: dentry not found in %s",
+ uuid_utoa_r (parent->gfid, pgfid), name,
uuid_utoa_r (inode->gfid, gfid));
}
@@ -1175,7 +1215,8 @@ inode_unlink (inode_t *inode, inode_t *parent, const char *name)
inode_table_t *table = NULL;
if (!inode) {
- gf_log_callingfn (THIS->name, GF_LOG_WARNING, "inode not found");
+ gf_msg_callingfn (THIS->name, GF_LOG_WARNING, 0,
+ LG_MSG_INODE_NOT_FOUND, "inode not found");
return;
}
@@ -1197,7 +1238,8 @@ inode_rename (inode_table_t *table, inode_t *srcdir, const char *srcname,
struct iatt *iatt)
{
if (!inode) {
- gf_log_callingfn (THIS->name, GF_LOG_WARNING, "inode not found");
+ gf_msg_callingfn (THIS->name, GF_LOG_WARNING, 0,
+ LG_MSG_INODE_NOT_FOUND, "inode not found");
return -1;
}
@@ -1251,7 +1293,8 @@ inode_parent (inode_t *inode, uuid_t pargfid, const char *name)
dentry_t *dentry = NULL;
if (!inode) {
- gf_log_callingfn (THIS->name, GF_LOG_WARNING, "inode not found");
+ gf_msg_callingfn (THIS->name, GF_LOG_WARNING, 0,
+ LG_MSG_INODE_NOT_FOUND, "inode not found");
return NULL;
}
@@ -1290,7 +1333,8 @@ __inode_path (inode_t *inode, const char *name, char **bufp)
if (!inode || gf_uuid_is_null (inode->gfid)) {
GF_ASSERT (0);
- gf_log_callingfn (THIS->name, GF_LOG_WARNING, "invalid inode");
+ gf_msg_callingfn (THIS->name, GF_LOG_WARNING, EINVAL,
+ LG_MSG_INVALID_ARG, "invalid inode");
return -EINVAL;
}
@@ -1303,9 +1347,10 @@ __inode_path (inode_t *inode, const char *name, char **bufp)
i ++; /* "/" */
i += strlen (trav->name);
if (i > PATH_MAX) {
- gf_log (table->name, GF_LOG_CRITICAL,
- "possible infinite loop detected, "
- "forcing break. name=(%s)", name);
+ gf_msg (table->name, GF_LOG_CRITICAL, 0,
+ LG_MSG_DENTRY_CYCLIC_LOOP, "possible infinite "
+ "loop detected, forcing break. name=(%s)",
+ name);
ret = -ENOENT;
goto out;
}
@@ -1623,12 +1668,13 @@ inode_table_ctx_free (inode_table_t *table)
ret = purge_count + lru_count + active_count;
itable_size = table->active_size + table->lru_size + table->purge_size;
- gf_log_callingfn (this->name, GF_LOG_INFO, "total %d (itable size: %d) "
- "inode contexts have been freed (active: %d, "
- "(active size: %d), lru: %d, (lru size: %d), "
- " purge: %d, (purge size: %d))", ret, itable_size,
- active_count, table->active_size, lru_count,
- table->lru_size, purge_count, table->purge_size);
+ gf_msg_callingfn (this->name, GF_LOG_INFO, 0,
+ LG_MSG_INODE_CONTEXT_FREED, "total %d (itable size: "
+ "%d) inode contexts have been freed (active: %d, ("
+ "active size: %d), lru: %d, (lru size: %d), purge: "
+ "%d, (purge size: %d))", ret, itable_size,
+ active_count, table->active_size, lru_count,
+ table->lru_size, purge_count, table->purge_size);
return ret;
}