NFSv4.1: fix break condition in pnfs_find_lseg
authorBenny Halevy <benny@tonian.com>
Tue, 14 Jun 2011 20:30:16 +0000 (16:30 -0400)
committerTrond Myklebust <Trond.Myklebust@netapp.com>
Wed, 15 Jun 2011 15:24:31 +0000 (11:24 -0400)
The break condition to skip out of the loop got broken when cmp_layout
was change.  Essentially, we want to stop looking once we know no layout
on the remainder of the list can match the first byte of the looked-up
range.

Reported-by: Peng Tao <peng_tao@emc.com>
Signed-off-by: Benny Halevy <benny@tonian.com>
Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
fs/nfs/pnfs.c

index 25de6b27bdf40e0181f30d1f62dd31ae4da4b384..d066aad608add367f0669993228e40d016282a5e 100644 (file)
@@ -889,7 +889,7 @@ pnfs_find_lseg(struct pnfs_layout_hdr *lo,
                        ret = get_lseg(lseg);
                        break;
                }
-               if (cmp_layout(range, &lseg->pls_range) > 0)
+               if (lseg->pls_range.offset > range->offset)
                        break;
        }