diff options
| -rw-r--r-- | libglusterfs/src/fd.c | 6 | ||||
| -rw-r--r-- | libglusterfs/src/inode.c | 1 | ||||
| -rw-r--r-- | libglusterfs/src/inode.h | 1 | 
3 files changed, 8 insertions, 0 deletions
diff --git a/libglusterfs/src/fd.c b/libglusterfs/src/fd.c index 0c3a5262133..2f4afc5e87a 100644 --- a/libglusterfs/src/fd.c +++ b/libglusterfs/src/fd.c @@ -513,6 +513,11 @@ fd_destroy (fd_t *fd)          LOCK_DESTROY (&fd->lock);          GF_FREE (fd->_ctx); +        LOCK (&fd->inode->lock); +        { +                fd->inode->fd_count--; +        } +        UNLOCK (&fd->inode->lock);          inode_unref (fd->inode);          fd->inode = (inode_t *)0xaaaaaaaa;          fd_lk_ctx_unref (fd->lk_ctx); @@ -552,6 +557,7 @@ __fd_bind (fd_t *fd)  {          list_del_init (&fd->inode_list);          list_add (&fd->inode_list, &fd->inode->fd_list); +        fd->inode->fd_count++;          return fd;  } diff --git a/libglusterfs/src/inode.c b/libglusterfs/src/inode.c index 886491292a8..6f1c8ec3f25 100644 --- a/libglusterfs/src/inode.c +++ b/libglusterfs/src/inode.c @@ -1624,6 +1624,7 @@ inode_dump (inode_t *inode, char *prefix)          {                  gf_proc_dump_write("gfid", "%s", uuid_utoa (inode->gfid));                  gf_proc_dump_write("nlookup", "%ld", inode->nlookup); +                gf_proc_dump_write("fd-count", "%u", inode->fd_count);                  gf_proc_dump_write("ref", "%u", inode->ref);                  gf_proc_dump_write("ia_type", "%d", inode->ia_type);                  if (inode->_ctx) { diff --git a/libglusterfs/src/inode.h b/libglusterfs/src/inode.h index 20e28f6820d..199ce44849a 100644 --- a/libglusterfs/src/inode.h +++ b/libglusterfs/src/inode.h @@ -87,6 +87,7 @@ struct _inode {          uuid_t               gfid;          gf_lock_t            lock;          uint64_t             nlookup; +        uint32_t             fd_count;      /* Open fd count */          uint32_t             ref;           /* reference count on this inode */          ia_type_t            ia_type;       /* what kind of file */          struct list_head     fd_list;       /* list of open files on this inode */  | 
