Loading fs/ceph/inode.c +5 −0 Original line number Diff line number Diff line Loading @@ -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" Loading Loading @@ -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; } Loading Loading @@ -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; Loading fs/ceph/mds_client.c +2 −2 Original line number Diff line number Diff line Loading @@ -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) { Loading Loading @@ -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; Loading fs/ceph/mds_client.h +1 −0 Original line number Diff line number Diff line Loading @@ -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 Loading
fs/ceph/inode.c +5 −0 Original line number Diff line number Diff line Loading @@ -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" Loading Loading @@ -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; } Loading Loading @@ -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; Loading
fs/ceph/mds_client.c +2 −2 Original line number Diff line number Diff line Loading @@ -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) { Loading Loading @@ -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; Loading
fs/ceph/mds_client.h +1 −0 Original line number Diff line number Diff line Loading @@ -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