mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2024-08-23 17:30:02 +00:00
ceph: add change_attr field to ceph_inode_info
Signed-off-by: Jeff Layton <jlayton@kernel.org> Reviewed-by: "Yan, Zheng" <zyan@redhat.com> Signed-off-by: Ilya Dryomov <idryomov@gmail.com>
This commit is contained in:
parent
441d367644
commit
a35ead314e
3 changed files with 8 additions and 2 deletions
|
@ -13,6 +13,7 @@
|
|||
#include <linux/posix_acl.h>
|
||||
#include <linux/random.h>
|
||||
#include <linux/sort.h>
|
||||
#include <linux/iversion.h>
|
||||
|
||||
#include "super.h"
|
||||
#include "mds_client.h"
|
||||
|
@ -42,6 +43,7 @@ static int ceph_set_ino_cb(struct inode *inode, void *data)
|
|||
{
|
||||
ceph_inode(inode)->i_vino = *(struct ceph_vino *)data;
|
||||
inode->i_ino = ceph_vino_to_ino(*(struct ceph_vino *)data);
|
||||
inode_set_iversion_raw(inode, 0);
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
@ -796,6 +798,9 @@ static int fill_inode(struct inode *inode, struct page *locked_page,
|
|||
le64_to_cpu(info->version) > (ci->i_version & ~1)))
|
||||
new_version = true;
|
||||
|
||||
/* Update change_attribute */
|
||||
inode_set_max_iversion_raw(inode, iinfo->change_attr);
|
||||
|
||||
__ceph_caps_issued(ci, &issued);
|
||||
issued |= __ceph_caps_dirty(ci);
|
||||
new_issued = ~issued & info_caps;
|
||||
|
|
|
@ -156,7 +156,7 @@ static int parse_reply_info_in(void **p, void *end,
|
|||
ceph_decode_copy(p, &info->btime, sizeof(info->btime));
|
||||
|
||||
/* change attribute */
|
||||
ceph_decode_skip_64(p, end, bad);
|
||||
ceph_decode_64_safe(p, end, info->change_attr, bad);
|
||||
|
||||
/* dir pin */
|
||||
if (struct_v >= 2) {
|
||||
|
@ -208,7 +208,7 @@ static int parse_reply_info_in(void **p, void *end,
|
|||
if (features & CEPH_FEATURE_FS_BTIME) {
|
||||
ceph_decode_need(p, end, sizeof(info->btime), bad);
|
||||
ceph_decode_copy(p, &info->btime, sizeof(info->btime));
|
||||
ceph_decode_skip_64(p, end, bad);
|
||||
ceph_decode_64_safe(p, end, info->change_attr, bad);
|
||||
}
|
||||
|
||||
info->dir_pin = -ENODATA;
|
||||
|
|
|
@ -71,6 +71,7 @@ struct ceph_mds_reply_info_in {
|
|||
s32 dir_pin;
|
||||
struct ceph_timespec btime;
|
||||
struct ceph_timespec snap_btime;
|
||||
u64 change_attr;
|
||||
};
|
||||
|
||||
struct ceph_mds_reply_dir_entry {
|
||||
|
|
Loading…
Reference in a new issue