diff options
| author | krishna <ksriniva@redhat.com> | 2012-02-09 12:08:07 +0530 | 
|---|---|---|
| committer | Vijay Bellur <vijay@gluster.com> | 2012-02-09 07:58:56 -0800 | 
| commit | b71c572df106f33cda0e4b90f174f6426f598741 (patch) | |
| tree | 0d89bc2192e39b034d2880730c525a7015d25d64 /xlators/cluster | |
| parent | f47558fc72bcb6d786b117061add384f9f6aa6d5 (diff) | |
support for nano second resolution for mtime,ctime,atime attributes.
Change-Id: Id5078f270d0fec280b53d4aa7b16bbaf42a2df05
BUG: 784095
Signed-off-by: krishna <ksriniva@redhat.com>
Reviewed-on: http://review.gluster.com/2730
Tested-by: Gluster Build System <jenkins@build.gluster.com>
Reviewed-by: Vijay Bellur <vijay@gluster.com>
Diffstat (limited to 'xlators/cluster')
| -rw-r--r-- | xlators/cluster/dht/src/dht-helper.c | 18 | 
1 files changed, 15 insertions, 3 deletions
diff --git a/xlators/cluster/dht/src/dht-helper.c b/xlators/cluster/dht/src/dht-helper.c index 65c03b62ffd..80de4d73802 100644 --- a/xlators/cluster/dht/src/dht-helper.c +++ b/xlators/cluster/dht/src/dht-helper.c @@ -466,6 +466,15 @@ out:                          (a) = (b);              \          } while (0) + +#define set_if_greater_time(a, an, b, bn) do {                          \ +                if (((a) < (b)) || (((a) == (b)) && ((an) < (bn)))){    \ +                        (a) = (b);                                      \ +                        (an) = (bn);                                    \ +                }                                                       \ +        } while (0)                                                     \ + +  int  dht_iatt_merge (xlator_t *this, struct iatt *to,                  struct iatt *from, xlator_t *subvol) @@ -489,9 +498,12 @@ dht_iatt_merge (xlator_t *this, struct iatt *to,          set_if_greater (to->ia_uid, from->ia_uid);          set_if_greater (to->ia_gid, from->ia_gid); -        set_if_greater (to->ia_atime, from->ia_atime); -        set_if_greater (to->ia_mtime, from->ia_mtime); -        set_if_greater (to->ia_ctime, from->ia_ctime); +        set_if_greater_time(to->ia_atime, to->ia_atime_nsec, +                            from->ia_atime, from->ia_atime_nsec); +        set_if_greater_time (to->ia_mtime, to->ia_mtime_nsec, +                             from->ia_mtime, from->ia_mtime_nsec); +        set_if_greater_time (to->ia_ctime, to->ia_ctime_nsec, +                             from->ia_ctime, from->ia_ctime_nsec);          return 0;  }  | 
