[pnfs] [PATCH 13/21] pnfsblock: allow use of PG_owner_priv_1 flag
Benny Halevy
bhalevy at panasas.com
Mon Apr 14 05:03:05 EDT 2008
On Apr. 10, 2008, 17:07 +0300, Fred Isaman <iisaman at citi.umich.edu> wrote:
> There is currently no good way for pnfs to communicate problems. For
> example - the linux read code first tries to do readahead through
> nfs_readpages. Failure there is ignored, and it will later call
> nfs_readpage. Failure there is also ignored, except that the lack of
> PG_uptodate is communicated back via -EIO.
>
> With pnfs, it would be useful to be able to communicate to
> nfs_readpage that direct disk IO failed on readahead, and that it
> should failover to using the MDS.
>
> Making the page flag PG_owner_priv_1 available as PG_pnfserr is one
> way to do so. (An alternative would be to embed this in the layout,
> but then pg_test can't easily access the info.)
>
> This may be better as generic pnfs code, in which case it should be
> put in pnfs.h, or even page-flags.h
I agree. This is part of the infrastructure for the generic pnfs error/retry
handling.
Benny
>
> Signed-off-by: Fred Isaman <iisaman at citi.umich.edu>
> ---
> fs/nfs/blocklayout/blocklayout.h | 5 +++++
> 1 files changed, 5 insertions(+), 0 deletions(-)
>
> diff --git a/fs/nfs/blocklayout/blocklayout.h b/fs/nfs/blocklayout/blocklayout.h
> index fab9934..f804f02 100644
> --- a/fs/nfs/blocklayout/blocklayout.h
> +++ b/fs/nfs/blocklayout/blocklayout.h
> @@ -37,6 +37,11 @@
> #include <linux/nfs4_pnfs.h>
> #include <linux/dm-ioctl.h> /* Needed for struct dm_ioctl*/
>
> +#define PG_pnfserr PG_owner_priv_1
> +#define PagePnfsErr(page) test_bit(PG_pnfserr, &(page)->flags)
> +#define SetPagePnfsErr(page) set_bit(PG_pnfserr, &(page)->flags)
> +#define ClearPagePnfsErr(page) clear_bit(PG_pnfserr, &(page)->flags)
> +
> extern struct class shost_class; /* exported from drivers/scsi/hosts.c */
> extern int dm_dev_create(struct dm_ioctl *param); /* from dm-ioctl.c */
> extern int dm_dev_remove(struct dm_ioctl *param); /* from dm-ioctl.c */
More information about the pNFS
mailing list