diff options
| author | Anand V. Avati <avati@amp.gluster.com> | 2009-06-24 18:31:06 +0000 | 
|---|---|---|
| committer | Anand V. Avati <avati@dev.gluster.com> | 2009-06-26 11:09:22 -0700 | 
| commit | 597c06064239a6053c58477316cefd06d921eec2 (patch) | |
| tree | b4c92deb95e9bfd15f81bdc97c36c4832e67a670 | |
| parent | 795f087e0c25a3bb4c661b7d37583a06da1737cc (diff) | |
gf-dirent: add support for stat attribute in dir entry (to work like
Signed-off-by: Anand V. Avati <avati@dev.gluster.com>
| -rw-r--r-- | libglusterfs/src/gf-dirent.c | 17 | ||||
| -rw-r--r-- | libglusterfs/src/gf-dirent.h | 1 | 
2 files changed, 13 insertions, 5 deletions
diff --git a/libglusterfs/src/gf-dirent.c b/libglusterfs/src/gf-dirent.c index b321dfc10e0..546c2f82bb2 100644 --- a/libglusterfs/src/gf-dirent.c +++ b/libglusterfs/src/gf-dirent.c @@ -30,14 +30,16 @@  #include "compat.h"  #include "xlator.h"  #include "byte-order.h" +#include "protocol.h"  struct gf_dirent_nb { -	uint64_t    d_ino; -	uint64_t    d_off; -	uint32_t    d_len; -	uint32_t    d_type; -	char        d_name[0]; +	uint64_t       d_ino; +	uint64_t       d_off; +	uint32_t       d_len; +	uint32_t       d_type; +        struct gf_stat d_stat; +	char           d_name[0];  } __attribute__((packed)); @@ -109,6 +111,8 @@ gf_dirent_serialize (gf_dirent_t *entries, char *buf, size_t buf_size)  			entry_nb->d_len  = hton32 (entry->d_len);  			entry_nb->d_type = hton32 (entry->d_type); +                        gf_stat_from_stat (&entry_nb->d_stat, &entry->d_stat); +  			strcpy (entry_nb->d_name, entry->d_name);  		}  		size += entry_size; @@ -151,6 +155,9 @@ gf_dirent_unserialize (gf_dirent_t *entries, const char *buf, size_t buf_size)  		entry->d_off  = ntoh64 (entry_nb->d_off);  		entry->d_len  = ntoh32 (entry_nb->d_len);  		entry->d_type = ntoh32 (entry_nb->d_type); + +                gf_stat_to_stat (&entry_nb->d_stat, &entry->d_stat); +  		strcpy (entry->d_name, entry_nb->d_name);  		list_add_tail (&entry->list, &entries->list); diff --git a/libglusterfs/src/gf-dirent.h b/libglusterfs/src/gf-dirent.h index e0165ef87a5..baf08a58b1f 100644 --- a/libglusterfs/src/gf-dirent.h +++ b/libglusterfs/src/gf-dirent.h @@ -48,6 +48,7 @@ struct _gf_dirent_t {  	uint64_t                             d_off;  	uint32_t                             d_len;  	uint32_t                             d_type; +        struct stat                          d_stat;  	char                                 d_name[0];  };  | 
