Messages in this thread | | | Date | Tue, 09 Sep 2008 13:54:39 +0200 | From | Cedric Le Goater <> | Subject | Re: [RFC][PATCH] sunrpc: fix oops in rpc_create() when the mount namespace is unshared |
| |
Eric W. Biederman wrote: > Cedric Le Goater <clg@fr.ibm.com> writes: > >> On a system with nfs mounts, if a task unshares its mount namespace, >> a oops can occur when the system is rebooted if the task is the last >> to unreference the nfs mount. It will try to create a rpc request >> using utsname() which has been invalidated by free_nsproxy(). >> >> The patch fixes the issue by using the global init_utsname() but at >> the same time, it breaks the capability of identifying rpc clients >> per uts namespace. >> >> Any better suggestions ? > > Can we push utsname into rpc_create_args and push the access > of utsname up the food chain?
struct rpc_create_args seems to be used only as a stack argument for rpc_create() it's not kept in any nfs or sunrpc objects.
> My gut feeling says we should capture the utsname or the > uts_ns when we mount the nfs filesystem so we stay in sync > for the life of the mount.
I see. It make sense but, looking at the code, the nfs and sunrpc will need some heavy changes ...
Thanks,
C.
| |