[pnfs] [PATCH 04/10] pnfs: Use an enum for result of try_to_XXX functions
Dean Hildebrand
seattleplus at gmail.com
Tue Jul 8 17:54:00 EDT 2008
Signed-off-by: Dean Hildebrand <dhildeb at us.ibm.com>
---
fs/nfs/pnfs.c | 16 ++++++++--------
fs/nfs/pnfs.h | 18 ++++++++++++------
fs/nfs/read.c | 2 +-
fs/nfs/write.c | 4 ++--
4 files changed, 23 insertions(+), 17 deletions(-)
diff --git a/fs/nfs/pnfs.c b/fs/nfs/pnfs.c
index 96cf2e0..88a6fa7 100644
--- a/fs/nfs/pnfs.c
+++ b/fs/nfs/pnfs.c
@@ -1497,7 +1497,7 @@ pnfs_writepages(struct nfs_write_data *wdata, int how)
if (status) {
dprintk("%s: Updating layout failed (%d), retry with NFS \n",
__func__, status);
- status = 1; /* retry with nfs I/O */
+ status = PNFS_NOT_ATTEMPTED; /* retry with nfs I/O */
goto out;
}
@@ -1522,7 +1522,7 @@ pnfs_writepages(struct nfs_write_data *wdata, int how)
how,
wdata);
- BUG_ON(status < 0);
+ BUG_ON(status < PNFS_ATTEMPTED);
if (status)
wdata->pdata.pnfsflags &= ~PNFS_NO_RPC;
out:
@@ -1574,7 +1574,7 @@ pnfs_readpages(struct nfs_read_data *rdata)
if (status) {
dprintk("%s: ERROR %d from pnfs_update_layout\n",
__func__, status);
- status = 1;
+ status = PNFS_NOT_ATTEMPTED;
goto out;
}
@@ -1598,7 +1598,7 @@ pnfs_readpages(struct nfs_read_data *rdata)
(loff_t)args->offset,
args->count,
rdata);
- BUG_ON(status < 0);
+ BUG_ON(status < PNFS_ATTEMPTED);
if (status)
rdata->pdata.pnfsflags &= ~PNFS_NO_RPC;
out:
@@ -1617,7 +1617,7 @@ int _pnfs_try_to_read_data(struct nfs_read_data *data,
if (!pnfs_use_read(ino, data->args.count) ||
!nfss->pnfs_curr_ld->ld_io_ops->read_pagelist) {
dprintk("<-- %s: not using pnfs\n", __func__);
- return 1;
+ return PNFS_NOT_ATTEMPTED;
} else {
dprintk("%s: Utilizing pNFS I/O\n", __func__);
data->pdata.call_ops = call_ops;
@@ -1703,7 +1703,7 @@ int _pnfs_try_to_write_data(struct nfs_write_data *data,
if (!pnfs_use_write(ino, data->args.count) ||
!nfss->pnfs_curr_ld->ld_io_ops->write_pagelist) {
dprintk("<-- %s: not using pnfs\n", __func__);
- return 1;
+ return PNFS_NOT_ATTEMPTED;
} else {
dprintk("%s: Utilizing pNFS I/O\n", __func__);
data->pdata.call_ops = call_ops;
@@ -1720,7 +1720,7 @@ int _pnfs_try_to_commit(struct nfs_write_data *data,
if (!pnfs_use_write(inode, -1)) {
dprintk("%s: Not using pNFS I/O\n", __func__);
- return 1;
+ return PNFS_NOT_ATTEMPTED;
} else {
/* data->call_ops and data->how set in nfs_commit_rpcsetup */
dprintk("%s: Utilizing pNFS I/O\n", __func__);
@@ -1785,7 +1785,7 @@ pnfs_commit(struct nfs_write_data *data, int sync)
* and o_direct commit processing.
*/
dprintk("%s: no layout. Not using pNFS.\n", __func__);
- return 1;
+ return PNFS_NOT_ATTEMPTED;
}
dprintk("%s: Calling layout driver commit\n", __func__);
diff --git a/fs/nfs/pnfs.h b/fs/nfs/pnfs.h
index 340ebb3..e2e32d9 100644
--- a/fs/nfs/pnfs.h
+++ b/fs/nfs/pnfs.h
@@ -16,7 +16,13 @@
#include <linux/nfs_page.h>
#include <linux/nfs4_pnfs.h>
+enum pnfs_try_status {
+ PNFS_ATTEMPTED = 0,
+ PNFS_NOT_ATTEMPTED = 1,
+};
+
#ifdef CONFIG_PNFS
+
/* nfs4proc.c */
extern int nfs4_pnfs_getdevicelist(struct super_block *sb, struct nfs_fh *fh,
struct pnfs_devicelist *devlist);
@@ -92,7 +98,7 @@ static inline int pnfs_try_to_read_data(struct nfs_read_data *data,
if (PNFS_EXISTS_LDIO_OP(nfss, read_pagelist))
return _pnfs_try_to_read_data(data, call_ops);
- return 1;
+ return PNFS_NOT_ATTEMPTED;
}
static inline int pnfs_try_to_write_data(struct nfs_write_data *data,
@@ -106,7 +112,7 @@ static inline int pnfs_try_to_write_data(struct nfs_write_data *data,
if (PNFS_EXISTS_LDIO_OP(nfss, write_pagelist))
return _pnfs_try_to_write_data(data, call_ops, how);
- return 1;
+ return PNFS_NOT_ATTEMPTED;
}
static inline int pnfs_try_to_commit(struct nfs_write_data *data,
@@ -123,7 +129,7 @@ static inline int pnfs_try_to_commit(struct nfs_write_data *data,
if (PNFS_EXISTS_LDIO_OP(nfss, write_pagelist))
return _pnfs_try_to_commit(data, call_ops, how);
- return 1;
+ return PNFS_NOT_ATTEMPTED;
}
static inline int pnfs_write_begin(struct file *filp, struct page *page,
@@ -207,21 +213,21 @@ static inline int pnfs_return_layout(struct inode *ino,
static inline int pnfs_try_to_read_data(struct nfs_read_data *data,
const struct rpc_call_ops *call_ops)
{
- return 1;
+ return PNFS_NOT_ATTEMPTED;
}
static inline int pnfs_try_to_write_data(struct nfs_write_data *data,
const struct rpc_call_ops *call_ops,
int how)
{
- return 1;
+ return PNFS_NOT_ATTEMPTED;
}
static inline int pnfs_try_to_commit(struct nfs_write_data *data,
const struct rpc_call_ops *call_ops,
int how)
{
- return 1;
+ return PNFS_NOT_ATTEMPTED;
}
static inline int pnfs_do_flush(struct nfs_page *req, void *fsdata)
diff --git a/fs/nfs/read.c b/fs/nfs/read.c
index 31b4c40..6f96a53 100644
--- a/fs/nfs/read.c
+++ b/fs/nfs/read.c
@@ -224,7 +224,7 @@ static int nfs_read_rpcsetup(struct nfs_page *req, struct nfs_read_data *data,
ret = pnfs_try_to_read_data(data, call_ops);
#if defined(CONFIG_PNFS)
- if (ret == 0)
+ if (ret == PNFS_ATTEMPTED)
return data->pdata.pnfs_error;
#endif /* CONFIG_PNFS */
diff --git a/fs/nfs/write.c b/fs/nfs/write.c
index fbffb57..b5e046f 100644
--- a/fs/nfs/write.c
+++ b/fs/nfs/write.c
@@ -868,7 +868,7 @@ static int nfs_write_rpcsetup(struct nfs_page *req,
ret = pnfs_try_to_write_data(data, call_ops, how);
#if defined(CONFIG_PNFS)
- if (ret == 0)
+ if (ret == PNFS_ATTEMPTED)
return data->pdata.pnfs_error;
#endif /* CONFIG_PNFS */
@@ -1313,7 +1313,7 @@ static int nfs_commit_rpcsetup(struct list_head *head,
data->args.context = first->wb_context; /* used by commit done */
ret = pnfs_try_to_commit(data, &nfs_commit_ops, how);
- if (ret <= 0)
+ if (ret <= PNFS_ATTEMPTED)
return ret;
return nfs_initiate_commit(data, NFS_CLIENT(inode), how);
--
1.5.3.3
More information about the pNFS
mailing list