diff options
author | David Woodhouse <dwmw2@infradead.org> | 2008-05-01 18:47:17 +0100 |
---|---|---|
committer | David Woodhouse <dwmw2@infradead.org> | 2008-05-01 18:47:17 +0100 |
commit | 27c72b040c0be8f3704ed0b6b84c12cbba24a7e8 (patch) | |
tree | 0b84847120e817465d517d21fa4653d958222567 /fs/jffs2/readinode.c | |
parent | 1b690b48786229571e590dd22fe01ecc22a8746b (diff) | |
download | op-kernel-dev-27c72b040c0be8f3704ed0b6b84c12cbba24a7e8.zip op-kernel-dev-27c72b040c0be8f3704ed0b6b84c12cbba24a7e8.tar.gz |
[JFFS2] Track parent inode for directories (for NFS export)
To support NFS export, we need to know the parent inode of directories.
Rather than growing the jffs2_inode_cache structure, share space with
the nlink field -- which was always set to 1 for directories anyway.
Signed-off-by: David Woodhouse <dwmw2@infradead.org>
Diffstat (limited to 'fs/jffs2/readinode.c')
-rw-r--r-- | fs/jffs2/readinode.c | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/fs/jffs2/readinode.c b/fs/jffs2/readinode.c index 4cb4d76..9fc4833c 100644 --- a/fs/jffs2/readinode.c +++ b/fs/jffs2/readinode.c @@ -1123,7 +1123,8 @@ static int jffs2_do_read_inode_internal(struct jffs2_sb_info *c, size_t retlen; int ret; - dbg_readinode("ino #%u nlink is %d\n", f->inocache->ino, f->inocache->nlink); + dbg_readinode("ino #%u pino/nlink is %d\n", f->inocache->ino, + f->inocache->pino_nlink); memset(&rii, 0, sizeof(rii)); @@ -1358,7 +1359,7 @@ int jffs2_do_read_inode(struct jffs2_sb_info *c, struct jffs2_inode_info *f, } dbg_readinode("creating inocache for root inode\n"); memset(f->inocache, 0, sizeof(struct jffs2_inode_cache)); - f->inocache->ino = f->inocache->nlink = 1; + f->inocache->ino = f->inocache->pino_nlink = 1; f->inocache->nodes = (struct jffs2_raw_node_ref *)f->inocache; f->inocache->state = INO_STATE_READING; jffs2_add_ino_cache(c, f->inocache); @@ -1401,7 +1402,7 @@ void jffs2_do_clear_inode(struct jffs2_sb_info *c, struct jffs2_inode_info *f) jffs2_clear_acl(f); jffs2_xattr_delete_inode(c, f->inocache); mutex_lock(&f->sem); - deleted = f->inocache && !f->inocache->nlink; + deleted = f->inocache && !f->inocache->pino_nlink; if (f->inocache && f->inocache->state != INO_STATE_CHECKING) jffs2_set_inocache_state(c, f->inocache, INO_STATE_CLEARING); |