mirror of
https://github.com/Fishwaldo/linux-bl808.git
synced 2025-06-17 20:25:19 +00:00
->encode_fh() API change
pass inode + parent's inode or NULL instead of dentry + bool saying whether we want the parent or not. NOTE: that needs ceph fix folded in. Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
This commit is contained in:
parent
6d42e7e9f6
commit
b0b0382bb4
16 changed files with 93 additions and 139 deletions
|
@ -52,19 +52,18 @@ static int xfs_fileid_length(int fileid_type)
|
|||
|
||||
STATIC int
|
||||
xfs_fs_encode_fh(
|
||||
struct dentry *dentry,
|
||||
__u32 *fh,
|
||||
int *max_len,
|
||||
int connectable)
|
||||
struct inode *inode,
|
||||
__u32 *fh,
|
||||
int *max_len,
|
||||
struct inode *parent)
|
||||
{
|
||||
struct fid *fid = (struct fid *)fh;
|
||||
struct xfs_fid64 *fid64 = (struct xfs_fid64 *)fh;
|
||||
struct inode *inode = dentry->d_inode;
|
||||
int fileid_type;
|
||||
int len;
|
||||
|
||||
/* Directories don't need their parent encoded, they have ".." */
|
||||
if (S_ISDIR(inode->i_mode) || !connectable)
|
||||
if (!parent)
|
||||
fileid_type = FILEID_INO32_GEN;
|
||||
else
|
||||
fileid_type = FILEID_INO32_GEN_PARENT;
|
||||
|
@ -96,20 +95,16 @@ xfs_fs_encode_fh(
|
|||
|
||||
switch (fileid_type) {
|
||||
case FILEID_INO32_GEN_PARENT:
|
||||
spin_lock(&dentry->d_lock);
|
||||
fid->i32.parent_ino = XFS_I(dentry->d_parent->d_inode)->i_ino;
|
||||
fid->i32.parent_gen = dentry->d_parent->d_inode->i_generation;
|
||||
spin_unlock(&dentry->d_lock);
|
||||
fid->i32.parent_ino = XFS_I(parent)->i_ino;
|
||||
fid->i32.parent_gen = parent->i_generation;
|
||||
/*FALLTHRU*/
|
||||
case FILEID_INO32_GEN:
|
||||
fid->i32.ino = XFS_I(inode)->i_ino;
|
||||
fid->i32.gen = inode->i_generation;
|
||||
break;
|
||||
case FILEID_INO32_GEN_PARENT | XFS_FILEID_TYPE_64FLAG:
|
||||
spin_lock(&dentry->d_lock);
|
||||
fid64->parent_ino = XFS_I(dentry->d_parent->d_inode)->i_ino;
|
||||
fid64->parent_gen = dentry->d_parent->d_inode->i_generation;
|
||||
spin_unlock(&dentry->d_lock);
|
||||
fid64->parent_ino = XFS_I(parent)->i_ino;
|
||||
fid64->parent_gen = parent->i_generation;
|
||||
/*FALLTHRU*/
|
||||
case FILEID_INO32_GEN | XFS_FILEID_TYPE_64FLAG:
|
||||
fid64->ino = XFS_I(inode)->i_ino;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue