[pnfs] [PATCH 24/37] pnfs: client layout cache: require layout driver {alloc, free}_lseg
Benny Halevy
bhalevy at panasas.com
Tue Jan 1 05:51:14 EST 2008
Signed-off-by: Benny Halevy <bhalevy at panasas.com>
---
fs/nfs/pnfs.c | 7 +++++++
1 files changed, 7 insertions(+), 0 deletions(-)
diff --git a/fs/nfs/pnfs.c b/fs/nfs/pnfs.c
index edc087c..dc272cf 100644
--- a/fs/nfs/pnfs.c
+++ b/fs/nfs/pnfs.c
@@ -256,12 +256,19 @@ struct pnfs_client_operations*
pnfs_register_layoutdriver(struct pnfs_layoutdriver_type *ld_type)
{
struct pnfs_module *pnfs_mod;
+ struct layoutdriver_io_operations *io_ops = ld_type->ld_io_ops;
if (!pnfs_initialized) {
printk(KERN_ERR "%s Registration failure. pNFS not initialized.\n", __FUNCTION__);
return NULL;
}
+ if (!io_ops || !io_ops->alloc_lseg || !io_ops->free_lseg) {
+ printk(KERN_ERR "%s Layout driver must provide "
+ "alloc_lseg and free_lseg.\n", __FUNCTION__);
+ return NULL;
+ }
+
pnfs_mod = kmalloc(sizeof(struct pnfs_module), GFP_KERNEL);
if (pnfs_mod != NULL) {
dprintk("%s Registering id:%u name:%s\n",
--
1.5.3.3
More information about the pNFS
mailing list