]> git.proxmox.com Git - mirror_ubuntu-zesty-kernel.git/commit - include/linux/dcache.h
dcache: d_obtain_alias callers don't all want DISCONNECTED
authorJ. Bruce Fields <bfields@redhat.com>
Fri, 14 Feb 2014 22:35:37 +0000 (17:35 -0500)
committerAl Viro <viro@zeniv.linux.org.uk>
Thu, 7 Aug 2014 18:40:10 +0000 (14:40 -0400)
commit1a0a397e41cb1bf70cfe45fd0eeff08c7c501ec0
treec02c59997a3849bb1bfdcc3ac371bb1e4d2f81bc
parentda093a9b76efca0a7a217af538929e1ecb204466
dcache: d_obtain_alias callers don't all want DISCONNECTED

There are a few d_obtain_alias callers that are using it to get the
root of a filesystem which may already have an alias somewhere else.

This is not the same as the filehandle-lookup case, and none of them
actually need DCACHE_DISCONNECTED set.

It isn't really a serious problem, but it would really be clearer if we
reserved DCACHE_DISCONNECTED for those cases where it's actually needed.

In the btrfs case this was causing a spurious printk from
nfsd/nfsfh.c:fh_verify when it found an unexpected DCACHE_DISCONNECTED
dentry.  Josef worked around this by unsetting DCACHE_DISCONNECTED
manually in 3a0dfa6a12e "Btrfs: unset DCACHE_DISCONNECTED when mounting
default subvol", and this replaces that workaround.

Cc: Josef Bacik <jbacik@fb.com>
Signed-off-by: J. Bruce Fields <bfields@redhat.com>
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
fs/btrfs/super.c
fs/ceph/super.c
fs/dcache.c
fs/nfs/getroot.c
fs/nilfs2/super.c
include/linux/dcache.h