]> git.kernelconcepts.de Git - karo-tx-linux.git/blobdiff - fs/exportfs/expfs.c
fs, exportfs: add exportfs_encode_inode_fh() helper
[karo-tx-linux.git] / fs / exportfs / expfs.c
index 10f137381ac7ec84ca13ea3332373f091cc58f81..606bb074c501842a1cf11df97464002e6d098f30 100644 (file)
@@ -341,10 +341,21 @@ static int export_encode_fh(struct inode *inode, struct fid *fid,
        return type;
 }
 
+int exportfs_encode_inode_fh(struct inode *inode, struct fid *fid,
+                            int *max_len, struct inode *parent)
+{
+       const struct export_operations *nop = inode->i_sb->s_export_op;
+
+       if (nop && nop->encode_fh)
+               return nop->encode_fh(inode, fid->raw, max_len, parent);
+
+       return export_encode_fh(inode, fid, max_len, parent);
+}
+EXPORT_SYMBOL_GPL(exportfs_encode_inode_fh);
+
 int exportfs_encode_fh(struct dentry *dentry, struct fid *fid, int *max_len,
                int connectable)
 {
-       const struct export_operations *nop = dentry->d_sb->s_export_op;
        int error;
        struct dentry *p = NULL;
        struct inode *inode = dentry->d_inode, *parent = NULL;
@@ -357,10 +368,8 @@ int exportfs_encode_fh(struct dentry *dentry, struct fid *fid, int *max_len,
                 */
                parent = p->d_inode;
        }
-       if (nop && nop->encode_fh)
-               error = nop->encode_fh(inode, fid->raw, max_len, parent);
-       else
-               error = export_encode_fh(inode, fid, max_len, parent);
+
+       error = exportfs_encode_inode_fh(inode, fid, max_len, parent);
        dput(p);
 
        return error;