From f0492a88897f589e26fd9fae61efa006d1622b59 Mon Sep 17 00:00:00 2001 From: yangsheng Date: Thu, 7 Aug 2008 02:57:59 +0000 Subject: [PATCH] Branch b1_8_gate b=16342 i=adilger, shadow Don't update obd_osfs_age for osc using the cached info. --- lustre/lov/lov_request.c | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) diff --git a/lustre/lov/lov_request.c b/lustre/lov/lov_request.c index e4c5bf8..3cdd12e 100644 --- a/lustre/lov/lov_request.c +++ b/lustre/lov/lov_request.c @@ -1467,7 +1467,7 @@ int lov_fini_statfs(struct obd_device *obd, struct obd_statfs *osfs,int success) spin_lock(&obd->obd_osfs_lock); memcpy(&obd->obd_osfs, osfs, sizeof(*osfs)); - obd->obd_osfs_age = get_jiffies_64(); + obd->obd_osfs_age = cfs_time_current_64(); spin_unlock(&obd->obd_osfs_lock); RETURN(0); } @@ -1494,15 +1494,11 @@ int lov_fini_statfs_set(struct lov_request_set *set) RETURN(rc); } -void lov_update_statfs(struct obd_device *obd, struct obd_statfs *osfs, - struct obd_statfs *lov_sfs, int success) +void lov_update_statfs(struct obd_statfs *osfs, struct obd_statfs *lov_sfs, + int success) { int shift = 0, quit = 0; __u64 tmp; - spin_lock(&obd->obd_osfs_lock); - memcpy(&obd->obd_osfs, lov_sfs, sizeof(*lov_sfs)); - obd->obd_osfs_age = get_jiffies_64(); - spin_unlock(&obd->obd_osfs_lock); if (success == 0) { memcpy(osfs, lov_sfs, sizeof(*lov_sfs)); @@ -1596,7 +1592,13 @@ static int cb_statfs_update(struct obd_info *oinfo, int rc) RETURN(rc); } - lov_update_statfs(obd, osfs, lov_sfs, success); + spin_lock(&obd->obd_osfs_lock); + memcpy(&obd->obd_osfs, lov_sfs, sizeof(*lov_sfs)); + if ((oinfo->oi_flags & OBD_STATFS_FROM_CACHE) == 0) + obd->obd_osfs_age = cfs_time_current_64(); + spin_unlock(&obd->obd_osfs_lock); + + lov_update_statfs(osfs, lov_sfs, success); qos_update(lov); RETURN(0); -- 1.8.3.1