]> git.karo-electronics.de Git - karo-tx-linux.git/commit
pnfs-obj: Remove redundant EOF from objlayout_io_state
authorBoaz Harrosh <bharrosh@panasas.com>
Sun, 2 Oct 2011 14:06:09 +0000 (16:06 +0200)
committerBoaz Harrosh <bharrosh@panasas.com>
Fri, 28 Oct 2011 18:52:59 +0000 (11:52 -0700)
commit64a6725b53fad1f199e9cafa5634573b392e9b01
tree9ab7aba24b9afeb048d4b23c7d21abc2ae9e6af9
parentf362f98e7c445643d27c610bb7a86b79727b592e
pnfs-obj: Remove redundant EOF from objlayout_io_state

The EOF calculation was done on .read_pagelist(), cached
in objlayout_io_state->eof, and set in objlayout_read_done()
into nfs_read_data->res.eof.

So set it directly into nfs_read_data->res.eof and avoid
the extra member.

This is a slight behaviour change because before eof was
*not* set on an error update at objlayout_read_done(). But
is that a problem? Is Generic layer so sensitive that it
will miss the error IO if eof was set? From my testing
I did not see such a problem.

Benny please review.

Which brings me to a more abstract problem. Why does the
LAYOUT driver needs to do this eof calculation? .i.e we
are inspecting generic i_size_read() and if spanned by
offset + count which is received from generic layer we set
eof. It looks like all this can/should be done in generic
layer and not at LD. Where does NFS and files-LD do it?
It looks like it can be promoted.

Signed-off-by: Boaz Harrosh <bharrosh@panasas.com>
fs/nfs/objlayout/objlayout.c
fs/nfs/objlayout/objlayout.h