Project

General

Profile

Actions

Bug #7750

closed

Attempting to mount a kNFS export of a sub-directory of a CephFS filesystem fails with -ESTALE

Added by David McBride about 10 years ago. Updated about 7 years ago.

Status:
Can't reproduce
Priority:
High
Assignee:
-
Category:
NFS (Linux Kernel)
Target version:
-
% Done:

0%

Source:
other
Tags:
Backport:
Regression:
Severity:
3 - minor
Reviewed:
Affected Versions:
ceph-qa-suite:
Component(FS):
Labels (FS):
Pull request ID:
Crash signature (v1):
Crash signature (v2):

Description

Hi,

I have run into the following issue when trying to export a subset of a CephFS filesystem via NFS:

Machine A:
  • mounts CephFS in e.g. /mnt/cephfs.
  • creates a subdirectory, e.g. /mnt/cephfs/nfs.
  • umounts CephFS.
  • mkdir /srv/nfs
  • mounts the nfs/ subdirectory in CephFS on /srv/nfs
  • exports /srv/nfs using kNFS.

This all succeeds; however, when an NFS client attempts to mount /srv/nfs:

# mount -v machine-a:/srv/nfs nfs -t nfs -o vers=3
mount.nfs: timeout set for Mon Mar 17 19:55:28 2014
mount.nfs: trying text-based options 'vers=3,addr=172.28.208.130'
mount.nfs: prog 100003, trying vers=3, prot=6
mount.nfs: trying 172.28.208.130 prog 100003 vers 3 prot TCP port 2049
mount.nfs: prog 100005, trying vers=3, prot=17
mount.nfs: trying 172.28.208.130 prog 100005 vers 3 prot UDP port 48472
mount.nfs: mount(2): Stale file handle

The client is always returned -ESTALE. This error does not occur if the root of CephFS, as opposed to some subdirectory of it, is exported.

I understand that the new stable-inode code relies on being able to follow backpointers back to the root of the CephFS hierarchy; while this seems to work when exporting the entire CephFS tree via NFS, it appears not to be successful when only exporting a subtree.

The server in this case is running:
  • Ubuntu 14.04 (pre-release)
  • kernel 3.13.0-5-generic
  • ceph version 0.72.2 (commit:a913ded2ff138aefb8cb84d347d72164099cfd60)
Actions

Also available in: Atom PDF