]> git.karo-electronics.de Git - karo-tx-linux.git/commit
fuse: fix stat call on 32 bit platforms
authorPavel Shilovsky <piastry@etersoft.ru>
Thu, 10 May 2012 15:49:38 +0000 (19:49 +0400)
committerBen Hutchings <ben@decadent.org.uk>
Tue, 19 Jun 2012 22:18:05 +0000 (23:18 +0100)
commit02f26d8ffc65f1ce6935d67c71819de44c91e39d
treebced524b631fbf4ae5b9488675c8f498160629e9
parent5a8bd352510b04c0b499293e947424c782b0be8c
fuse: fix stat call on 32 bit platforms

commit 45c72cd73c788dd18c8113d4a404d6b4a01decf1 upstream.

Now we store attr->ino at inode->i_ino, return attr->ino at the
first time and then return inode->i_ino if the attribute timeout
isn't expired. That's wrong on 32 bit platforms because attr->ino
is 64 bit and inode->i_ino is 32 bit in this case.

Fix this by saving 64 bit ino in fuse_inode structure and returning
it every time we call getattr. Also squash attr->ino into inode->i_ino
explicitly.

Signed-off-by: Pavel Shilovsky <piastry@etersoft.ru>
Signed-off-by: Miklos Szeredi <mszeredi@suse.cz>
Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
fs/fuse/dir.c
fs/fuse/fuse_i.h
fs/fuse/inode.c