ceph: fix encoding of ino only (not relative) paths
authorSage Weil <sage@newdream.net>
Mon, 15 Aug 2011 20:02:37 +0000 (13:02 -0700)
committerSage Weil <sage@newdream.net>
Mon, 15 Aug 2011 20:03:56 +0000 (13:03 -0700)
A 'path' consists of a starting ino and relative component.  Encode even
when there is no relative component.  This is primarily needed by the
NFS reexport code.

Signed-off-by: Sage Weil <sage@newdream.net>
fs/ceph/mds_client.c

index fee028b5332e0d802b26fdc94dab21057b41028a..86c59e16ba74e459ad0c3f29743ace6663f29206 100644 (file)
@@ -1595,7 +1595,7 @@ static int set_request_path_attr(struct inode *rinode, struct dentry *rdentry,
                r = build_dentry_path(rdentry, ppath, pathlen, ino, freepath);
                dout(" dentry %p %llx/%.*s\n", rdentry, *ino, *pathlen,
                     *ppath);
-       } else if (rpath) {
+       } else if (rpath || rino) {
                *ino = rino;
                *ppath = rpath;
                *pathlen = strlen(rpath);