mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2026-05-09 11:23:09 -04:00
Merge tag 'nfsd-4.7-3' of git://linux-nfs.org/~bfields/linux
Pull lockd/locks fixes from Bruce Fields: "One fix for lockd soft lookups in an error path, and one fix for file leases on overlayfs" * tag 'nfsd-4.7-3' of git://linux-nfs.org/~bfields/linux: locks: use file_inode() lockd: unregister notifier blocks if the service fails to come up completely
This commit is contained in:
@@ -335,12 +335,17 @@ static struct notifier_block lockd_inet6addr_notifier = {
|
||||
};
|
||||
#endif
|
||||
|
||||
static void lockd_svc_exit_thread(void)
|
||||
static void lockd_unregister_notifiers(void)
|
||||
{
|
||||
unregister_inetaddr_notifier(&lockd_inetaddr_notifier);
|
||||
#if IS_ENABLED(CONFIG_IPV6)
|
||||
unregister_inet6addr_notifier(&lockd_inet6addr_notifier);
|
||||
#endif
|
||||
}
|
||||
|
||||
static void lockd_svc_exit_thread(void)
|
||||
{
|
||||
lockd_unregister_notifiers();
|
||||
svc_exit_thread(nlmsvc_rqst);
|
||||
}
|
||||
|
||||
@@ -462,7 +467,7 @@ int lockd_up(struct net *net)
|
||||
* Note: svc_serv structures have an initial use count of 1,
|
||||
* so we exit through here on both success and failure.
|
||||
*/
|
||||
err_net:
|
||||
err_put:
|
||||
svc_destroy(serv);
|
||||
err_create:
|
||||
mutex_unlock(&nlmsvc_mutex);
|
||||
@@ -470,7 +475,9 @@ int lockd_up(struct net *net)
|
||||
|
||||
err_start:
|
||||
lockd_down_net(serv, net);
|
||||
goto err_net;
|
||||
err_net:
|
||||
lockd_unregister_notifiers();
|
||||
goto err_put;
|
||||
}
|
||||
EXPORT_SYMBOL_GPL(lockd_up);
|
||||
|
||||
|
||||
@@ -1628,7 +1628,7 @@ generic_add_lease(struct file *filp, long arg, struct file_lock **flp, void **pr
|
||||
{
|
||||
struct file_lock *fl, *my_fl = NULL, *lease;
|
||||
struct dentry *dentry = filp->f_path.dentry;
|
||||
struct inode *inode = dentry->d_inode;
|
||||
struct inode *inode = file_inode(filp);
|
||||
struct file_lock_context *ctx;
|
||||
bool is_deleg = (*flp)->fl_flags & FL_DELEG;
|
||||
int error;
|
||||
|
||||
Reference in New Issue
Block a user