OSDN Git Service

orangefs: copy Orangefs-sized blocks into the pagecache if possible.
authorMike Marshall <hubcap@omnibond.com>
Mon, 25 Mar 2019 22:59:29 +0000 (18:59 -0400)
committerMike Marshall <hubcap@omnibond.com>
Fri, 3 May 2019 18:32:39 +0000 (14:32 -0400)
commitdd59a6475c4cf69afac2ade01ab732b7825a2a45
treea7e8b69bef478fed6ed5056df3cc58bb7697522e
parent4077a0f25b001926f86d35f6236351583bada9a4
orangefs: copy Orangefs-sized blocks into the pagecache if possible.

->readpage looks in file->private_data to try and find out how the
userspace program set "count" in read(2) or with "dd bs=" or whatever.

->readpage uses "count" and inode->i_size to calculate how much
data Orangefs should deposit in the Orangefs shared buffer, and
remembers which slot the data is in.

After copying data from the Orangefs shared buffer slot into
"the page", readpage tries to increment through the pagecache index
and fill as many pages as it can from the extra data in the shared
buffer. Hopefully these extra pages will soon be needed by the vfs,
and they'll be in the pagecache already.

Signed-off-by: Mike Marshall <hubcap@omnibond.com>
Signed-off-by: Martin Brandenburg <martin@omnibond.com>
fs/orangefs/file.c
fs/orangefs/inode.c
fs/orangefs/orangefs-bufmap.c
fs/orangefs/orangefs-bufmap.h
fs/orangefs/orangefs-debugfs.c