Whamcloud - gitweb
LU-14929 gss: detect libkeyutils dependency
[fs/lustre-release.git] / lustre / obdclass / integrity.c
index e6d6d85..e6528f1 100644 (file)
@@ -50,14 +50,15 @@ int obd_page_dif_generate_buffer(const char *obd_name, struct page *page,
                                 int *used_number, int sector_size,
                                 obd_dif_csum_fn *fn)
 {
-       unsigned int i;
+       unsigned int i = offset;
+       unsigned int end = offset + length;
        char *data_buf;
        __u16 *guard_buf = guard_start;
        unsigned int data_size;
        int used = 0;
 
        data_buf = kmap(page) + offset;
-       for (i = 0; i < length; i += sector_size) {
+       while (i < end) {
                if (used >= guard_number) {
                        CERROR("%s: unexpected used guard number of DIF %u/%u, "
                               "data length %u, sector size %u: rc = %d\n",
@@ -65,12 +66,11 @@ int obd_page_dif_generate_buffer(const char *obd_name, struct page *page,
                               sector_size, -E2BIG);
                        return -E2BIG;
                }
-               data_size = length - i;
-               if (data_size > sector_size)
-                       data_size = sector_size;
+               data_size = min(round_up(i + 1, sector_size), end) - i;
                *guard_buf = fn(data_buf, data_size);
                guard_buf++;
                data_buf += data_size;
+               i += data_size;
                used++;
        }
        kunmap(page);
@@ -227,10 +227,10 @@ static void obd_t10_performance_test(const char *obd_name,
        memset(buf, 0xAD, PAGE_SIZE);
        kunmap(page);
 
-       for (start = jiffies, end = start + msecs_to_jiffies(MSEC_PER_SEC / 4),
+       for (start = jiffies, end = start + cfs_time_seconds(1) / 4,
             bcount = 0; time_before(jiffies, end) && rc == 0; bcount++) {
                rc = __obd_t10_performance_test(obd_name, cksum_type, page,
-                                               buf_len / PAGE_SIZE);
+                                               buf_len >> PAGE_SHIFT);
                if (rc)
                        break;
        }