Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 71991
b: refs/heads/master
c: 480b116
h: refs/heads/master
i:
  71989: 4313fff
  71987: 18b4870
  71983: f3af037
v: v3
  • Loading branch information
Christoph Hellwig authored and Linus Torvalds committed Oct 22, 2007
1 parent 247ac68 commit 66b835f
Show file tree
Hide file tree
Showing 2 changed files with 14 additions and 23 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: 905251a02eeccc59f8e1d743679b8edadc5f738b
refs/heads/master: 480b116c98344ca246f50aade6eb7aca98151a2f
35 changes: 13 additions & 22 deletions trunk/mm/shmem.c
Original file line number Diff line number Diff line change
Expand Up @@ -2020,33 +2020,25 @@ static int shmem_match(struct inode *ino, void *vfh)
return ino->i_ino == inum && fh[0] == ino->i_generation;
}

static struct dentry *shmem_get_dentry(struct super_block *sb, void *vfh)
static struct dentry *shmem_fh_to_dentry(struct super_block *sb,
struct fid *fid, int fh_len, int fh_type)
{
struct dentry *de = NULL;
struct inode *inode;
__u32 *fh = vfh;
__u64 inum = fh[2];
inum = (inum << 32) | fh[1];
struct dentry *dentry = NULL;
u64 inum = fid->raw[2];
inum = (inum << 32) | fid->raw[1];

if (fh_len < 3)
return NULL;

inode = ilookup5(sb, (unsigned long)(inum+fh[0]), shmem_match, vfh);
inode = ilookup5(sb, (unsigned long)(inum + fid->raw[0]),
shmem_match, fid->raw);
if (inode) {
de = d_find_alias(inode);
dentry = d_find_alias(inode);
iput(inode);
}

return de? de: ERR_PTR(-ESTALE);
}

static struct dentry *shmem_decode_fh(struct super_block *sb, __u32 *fh,
int len, int type,
int (*acceptable)(void *context, struct dentry *de),
void *context)
{
if (len < 3)
return ERR_PTR(-ESTALE);

return sb->s_export_op->find_exported_dentry(sb, fh, NULL, acceptable,
context);
return dentry;
}

static int shmem_encode_fh(struct dentry *dentry, __u32 *fh, int *len,
Expand Down Expand Up @@ -2081,9 +2073,8 @@ static int shmem_encode_fh(struct dentry *dentry, __u32 *fh, int *len,

static struct export_operations shmem_export_ops = {
.get_parent = shmem_get_parent,
.get_dentry = shmem_get_dentry,
.encode_fh = shmem_encode_fh,
.decode_fh = shmem_decode_fh,
.fh_to_dentry = shmem_fh_to_dentry,
};

static int shmem_parse_options(char *options, int *mode, uid_t *uid,
Expand Down

0 comments on commit 66b835f

Please sign in to comment.