Skip to content

Commit

Permalink
nfsd: only register cld pipe notifier when CONFIG_NFSD_V4 is enabled
Browse files Browse the repository at this point in the history
Otherwise, we get a warning or error similar to this when building with
CONFIG_NFSD_V4 disabled:

    ERROR: "nfsd4_cld_block" [fs/nfsd/nfsd.ko] undefined!

Fix this by wrapping the calls to rpc_pipefs_notifier_register and
..._unregister in another function and providing no-op replacements
when CONFIG_NFSD_V4 is disabled.

Reported-by: Paul Gortmaker <[email protected]>
Signed-off-by: Jeff Layton <[email protected]>
Signed-off-by: J. Bruce Fields <[email protected]>
  • Loading branch information
jtlayton authored and J. Bruce Fields committed Mar 29, 2012
1 parent 4ca1f87 commit 797a9d7
Show file tree
Hide file tree
Showing 4 changed files with 21 additions and 5 deletions.
1 change: 0 additions & 1 deletion fs/nfsd/netns.h
Original file line number Diff line number Diff line change
Expand Up @@ -31,5 +31,4 @@ struct nfsd_net {
};

extern int nfsd_net_id;
extern struct notifier_block nfsd4_cld_block;
#endif /* __NFSD_NETNS_H__ */
12 changes: 12 additions & 0 deletions fs/nfsd/nfs4recover.c
Original file line number Diff line number Diff line change
Expand Up @@ -1032,3 +1032,15 @@ rpc_pipefs_event(struct notifier_block *nb, unsigned long event, void *ptr)
struct notifier_block nfsd4_cld_block = {
.notifier_call = rpc_pipefs_event,
};

int
register_cld_notifier(void)
{
return rpc_pipefs_notifier_register(&nfsd4_cld_block);
}

void
unregister_cld_notifier(void)
{
rpc_pipefs_notifier_unregister(&nfsd4_cld_block);
}
6 changes: 3 additions & 3 deletions fs/nfsd/nfsctl.c
Original file line number Diff line number Diff line change
Expand Up @@ -1137,7 +1137,7 @@ static int __init init_nfsd(void)
int retval;
printk(KERN_INFO "Installing knfsd (copyright (C) 1996 [email protected]).\n");

retval = rpc_pipefs_notifier_register(&nfsd4_cld_block);
retval = register_cld_notifier();
if (retval)
return retval;
retval = register_pernet_subsys(&nfsd_net_ops);
Expand Down Expand Up @@ -1186,7 +1186,7 @@ static int __init init_nfsd(void)
out_unregister_pernet:
unregister_pernet_subsys(&nfsd_net_ops);
out_unregister_notifier:
rpc_pipefs_notifier_unregister(&nfsd4_cld_block);
unregister_cld_notifier();
return retval;
}

Expand All @@ -1203,7 +1203,7 @@ static void __exit exit_nfsd(void)
nfsd_fault_inject_cleanup();
unregister_filesystem(&nfsd_fs_type);
unregister_pernet_subsys(&nfsd_net_ops);
rpc_pipefs_notifier_unregister(&nfsd4_cld_block);
unregister_cld_notifier();
}

MODULE_AUTHOR("Olaf Kirch <[email protected]>");
Expand Down
7 changes: 6 additions & 1 deletion fs/nfsd/nfsd.h
Original file line number Diff line number Diff line change
Expand Up @@ -364,12 +364,17 @@ static inline u32 nfsd_suppattrs2(u32 minorversion)
NFSD_WRITEABLE_ATTRS_WORD2

extern int nfsd4_is_junction(struct dentry *dentry);
#else
extern int register_cld_notifier(void);
extern void unregister_cld_notifier(void);
#else /* CONFIG_NFSD_V4 */
static inline int nfsd4_is_junction(struct dentry *dentry)
{
return 0;
}

#define register_cld_notifier() 0
#define unregister_cld_notifier() do { } while(0)

#endif /* CONFIG_NFSD_V4 */

#endif /* LINUX_NFSD_NFSD_H */

0 comments on commit 797a9d7

Please sign in to comment.