Whamcloud - gitweb
LU-6142 lov: cleanup unneeded macros from lov_request.c 14/52014/2
authorTimothy Day <timday@amazon.com>
Sun, 20 Aug 2023 04:10:27 +0000 (04:10 +0000)
committerOleg Drokin <green@whamcloud.com>
Thu, 31 Aug 2023 06:19:15 +0000 (06:19 +0000)
One macro defines a custom U64_MAX. The other adds
together two numbers, capping the sum at U64_MAX.
These macros are only used in a couple places. The
logic would be clearer and more concise without them.

Also, fix an incorrect comment.

Test-Parameters: trivial
Signed-off-by: Timothy Day <timday@amazon.com>
Change-Id: I31012fbddba459df909c27cde8c59461f013c3be
Reviewed-on: https://review.whamcloud.com/c/fs/lustre-release/+/52014
Tested-by: jenkins <devops@whamcloud.com>
Tested-by: Maloo <maloo@whamcloud.com>
Reviewed-by: Andreas Dilger <adilger@whamcloud.com>
Reviewed-by: James Simmons <jsimmons@infradead.org>
Reviewed-by: Arshad Hussain <arshad.hussain@aeoncomputing.com>
Reviewed-by: Oleg Drokin <green@whamcloud.com>
lustre/lov/lov_request.c

index 511e423..76074ed 100644 (file)
@@ -142,15 +142,6 @@ out:
        return rc;
 }
 
-#define LOV_U64_MAX ((__u64)~0ULL)
-#define LOV_SUM_MAX(tot, add)                                           \
-       do {                                                            \
-               if ((tot) + (add) < (tot))                              \
-                       (tot) = LOV_U64_MAX;                            \
-               else                                                    \
-                       (tot) += (add);                                 \
-       } while (0)
-
 static int
 lov_fini_statfs(struct obd_device *obd, struct obd_statfs *osfs, int success)
 {
@@ -159,9 +150,9 @@ lov_fini_statfs(struct obd_device *obd, struct obd_statfs *osfs, int success)
        if (success) {
                __u32 expected_stripes = lov_get_stripe_count(&obd->u.lov,
                                                              LOV_MAGIC, 0);
-               if (osfs->os_files != LOV_U64_MAX)
+               if (osfs->os_files != U64_MAX)
                        lov_do_div64(osfs->os_files, expected_stripes);
-               if (osfs->os_ffree != LOV_U64_MAX)
+               if (osfs->os_ffree != U64_MAX)
                        lov_do_div64(osfs->os_ffree, expected_stripes);
 
                spin_lock(&obd->obd_osfs_lock);
@@ -256,12 +247,12 @@ lov_update_statfs(struct obd_statfs *osfs, struct obd_statfs *lov_sfs,
                 *   - could be sum if we stripe whole objects
                 *   - could be average, just to give a nice number
                 *
-                * To give a "reasonable" (if not wholly accurate)
-                * number, we divide the total number of free objects
-                * by expected stripe count (watch out for overflow).
+                * Currently using the sum capped at U64_MAX.
                 */
-               LOV_SUM_MAX(osfs->os_files, lov_sfs->os_files);
-               LOV_SUM_MAX(osfs->os_ffree, lov_sfs->os_ffree);
+               osfs->os_files = osfs->os_files + lov_sfs->os_files < osfs->os_files ?
+                       U64_MAX : osfs->os_files + lov_sfs->os_files;
+               osfs->os_ffree = osfs->os_ffree + lov_sfs->os_ffree < osfs->os_ffree ?
+                       U64_MAX : osfs->os_ffree + lov_sfs->os_ffree;
        }
 }