[pnfs] The Boundary issue
Iyer, Rahul
Rahul.Iyer at netapp.com
Thu Sep 28 18:43:56 EDT 2006
Hi Guys,
I was looking at the boundary issue. It seem rather simple to fix in the
read/write code paths. There seem to be 2 solutions:
1.
In both the read and write code paths, NFSPROTO(inode)->boundary(). This
pointer points to pnfs_getboundary(). This function checks whether there
is a layout. If there is one, it returns the stripesize present in the
file (via a call to the layout driver's getstripesize function). In the
absence of a layout pnfs_getboundary returns 0. In both the read and
write cases, pnfs_getboundary() is called prior to making the request
structs. So, we could call layoutget here and we'd be done.
2.
The other approach is similar to what Benny mentioned. Get the layout on
the write path (pnfs_file_write) rather than the flush path. Similarly
for the read. In fact, this call is alredy being done to handle the non
page cache I/O. All we need to do is move it further up in the function
before the calls for the page cache based I/O.
Regards
Rahul
More information about the pNFS
mailing list