pnfs-obj: Bug when we are running out of bio
authorBoaz Harrosh <bharrosh@panasas.com>
Thu, 4 Aug 2011 04:54:33 +0000 (21:54 -0700)
committerTrond Myklebust <Trond.Myklebust@netapp.com>
Thu, 4 Aug 2011 15:54:38 +0000 (11:54 -0400)
commit20618b21da0796115e81906d24ff1601552701b7
tree11f544d34a9e27ff941597018dc9ba2ae74c845e
parent88c9e42196285a7c573e2abda11a4b5037c669bc
pnfs-obj: Bug when we are running out of bio

When we have a situation that the number of pages we want
to encode is bigger then the size of the bio. (Which can
currently happen only when all IO is going to a single device
.e.g group_width==1) then the IO is submitted short and we
report back only the amount of bytes we actually wrote/read
and all is fine. BUT ...

There was a bug that the current length counter was advanced
before the fail to add the extra page, and we come to a situation
that the CDB length was one-page longer then the actual bio size,
which is of course rejected by the osd-target.

While here also fix the bio size calculation, in the case
that we received more then one group of devices.

CC: Stable Tree <stable@kernel.org>
Signed-off-by: Boaz Harrosh <bharrosh@panasas.com>
Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
fs/nfs/objlayout/objio_osd.c