nfs: fix DIO good bytes calculation
authorPeng Tao <tao.peng@primarydata.com>
Thu, 9 Apr 2015 15:02:16 +0000 (23:02 +0800)
committerTrond Myklebust <trond.myklebust@primarydata.com>
Thu, 23 Apr 2015 19:05:18 +0000 (15:05 -0400)
commit1ccbad9f9f9bd36db26a10f0b17fbaf12b3ae93a
tree6bf27072c4383cffc77e15c553d6b294394a472e
parentea96d1ecbe4fcb1df487d99309d3157b4ff5fc02
nfs: fix DIO good bytes calculation

For direct read that has IO size larger than rsize, we'll split
it into several READ requests and nfs_direct_good_bytes() would
count completed bytes incorrectly by eating last zero count reply.

Fix it by handling mirror and non-mirror cases differently such that
we only count mirrored writes differently.

This fixes 5fadeb47("nfs: count DIO good bytes correctly with mirroring").

Reported-by: Jean Spector <jean@primarydata.com>
Cc: <stable@vger.kernel.org> # v3.19+
Signed-off-by: Peng Tao <tao.peng@primarydata.com>
Signed-off-by: Trond Myklebust <trond.myklebust@primarydata.com>
fs/nfs/direct.c