On 7/25/2018 2:22 PM, Christoph Hellwig wrote:
+                       pmap = kmap_atomic(iv.bv_page) + iv.bv_offset;
+                       p = pmap;

Maybe:

                        pmap = p = kmap_atomic(iv.bv_page) + iv.bv_offset;

+                       for (j = 0; j < iv.bv_len; j += tuple_sz) {
+                               pi = (struct t10_pi_tuple *)p;

No need for the cast, also the pi declaration can be moved into the
inner scope:

                                struct t10_pi_tuple *pi = p;

+                       pmap = kmap_atomic(iv.bv_page) + iv.bv_offset;
+                       p = pmap;
+                       for (j = 0; j < iv.bv_len; j += tuple_sz) {
+                               if (intervals == 0) {
+                                       kunmap_atomic(pmap);
+                                       return;
+                               }
+                               pi = (struct t10_pi_tuple *)p;

Same here.

Also the intervals check would make sense in the for loop I think, e.g.:

                        pmap = p = kmap_atomic(iv.bv_page) + iv.bv_offset;
                        for (j = 0; j < iv.bv_len && intervals; j += tuple_sz) {
                                struct t10_pi_tuple *pi = p;



Yes it make sense, but we can do more iterations before we return but I guess it's rare and it's worth to have less lines of code.
I'll update it for the next version.

Reply via email to