diff options
Diffstat (limited to 'mm/cleancache.c')
-rw-r--r-- | mm/cleancache.c | 6 |
1 files changed, 2 insertions, 4 deletions
diff --git a/mm/cleancache.c b/mm/cleancache.c index 5646c740f613..32e6f4136fa2 100644 --- a/mm/cleancache.c +++ b/mm/cleancache.c | |||
@@ -80,7 +80,7 @@ EXPORT_SYMBOL(__cleancache_init_shared_fs); | |||
80 | static int cleancache_get_key(struct inode *inode, | 80 | static int cleancache_get_key(struct inode *inode, |
81 | struct cleancache_filekey *key) | 81 | struct cleancache_filekey *key) |
82 | { | 82 | { |
83 | int (*fhfn)(struct dentry *, __u32 *fh, int *, int); | 83 | int (*fhfn)(struct inode *, __u32 *fh, int *, struct inode *); |
84 | int len = 0, maxlen = CLEANCACHE_KEY_MAX; | 84 | int len = 0, maxlen = CLEANCACHE_KEY_MAX; |
85 | struct super_block *sb = inode->i_sb; | 85 | struct super_block *sb = inode->i_sb; |
86 | 86 | ||
@@ -88,9 +88,7 @@ static int cleancache_get_key(struct inode *inode, | |||
88 | if (sb->s_export_op != NULL) { | 88 | if (sb->s_export_op != NULL) { |
89 | fhfn = sb->s_export_op->encode_fh; | 89 | fhfn = sb->s_export_op->encode_fh; |
90 | if (fhfn) { | 90 | if (fhfn) { |
91 | struct dentry d; | 91 | len = (*fhfn)(inode, &key->u.fh[0], &maxlen, NULL); |
92 | d.d_inode = inode; | ||
93 | len = (*fhfn)(&d, &key->u.fh[0], &maxlen, 0); | ||
94 | if (len <= 0 || len == 255) | 92 | if (len <= 0 || len == 255) |
95 | return -1; | 93 | return -1; |
96 | if (maxlen > CLEANCACHE_KEY_MAX) | 94 | if (maxlen > CLEANCACHE_KEY_MAX) |