Loading lfs/src/adafs_ops/mdata_ops.cpp +2 −1 Original line number Diff line number Diff line Loading @@ -141,6 +141,7 @@ int get_attr(struct stat& attr, const fuse_ino_t inode) { if (err == 0) metadata_to_stat(md, attr); } else { // attr is filled in here for rpcs err = rpc_send_get_attr(recipient, inode, attr); } } else { // single node operation Loading @@ -161,7 +162,7 @@ void metadata_to_stat(const Metadata& md, struct stat& attr) { attr.st_uid = md.uid(); attr.st_gid = md.gid(); attr.st_size = md.size(); attr.st_blksize = ADAFS_DATA->blocksize(); attr.st_blksize = ADAFS_DATA->blocksize(); // globally set blocksize is used attr.st_blocks = md.blocks(); attr.st_atim.tv_sec = md.atime(); attr.st_mtim.tv_sec = md.mtime(); Loading lfs/src/rpc/client/c_metadata.cpp +2 −0 Original line number Diff line number Diff line Loading @@ -182,6 +182,7 @@ int rpc_send_get_attr(const size_t recipient, const fuse_ino_t inode, struct sta ret = HG_Get_output(handle, &out); ADAFS_DATA->spdlogger()->debug("Got response mode {}", out.mode); attr.st_ino = static_cast<uint64_t>(inode); attr.st_atim.tv_sec = static_cast<time_t>(out.atime); attr.st_mtim.tv_sec = static_cast<time_t>(out.mtime); attr.st_ctim.tv_sec = static_cast<time_t>(out.ctime); Loading @@ -190,6 +191,7 @@ int rpc_send_get_attr(const size_t recipient, const fuse_ino_t inode, struct sta attr.st_gid = static_cast<gid_t>(out.gid); attr.st_nlink = static_cast<nlink_t>(out.nlink); attr.st_size = static_cast<size_t>(out.size); attr.st_blksize = ADAFS_DATA->blocksize(); // globally set blocksize is used attr.st_blocks = static_cast<blkcnt_t>(out.blocks); /* clean up resources consumed by this rpc */ Loading lfs/src/rpc/server/s_metadata.cpp +12 −11 Original line number Diff line number Diff line Loading @@ -74,18 +74,19 @@ static hg_return_t rpc_srv_attr(hg_handle_t handle) { ADAFS_DATA->spdlogger()->info("Got get attr RPC with inode {}", in.inode); hgi = HG_Get_info(handle); auto mid = margo_hg_class_to_instance(hgi->hg_class); // get the metadata Metadata md{}; get_metadata(md, in.inode); out.atime = static_cast<uint64_t>(md.atime()); out.mtime = static_cast<uint64_t>(md.mtime()); out.ctime = static_cast<uint64_t>(md.ctime()); out.mode = static_cast<uint32_t>(md.mode()); out.uid = static_cast<uint32_t>(md.uid()); out.gid = static_cast<uint32_t>(md.gid()); out.nlink = static_cast<uint64_t>(md.link_count()); out.size = static_cast<uint64_t>(md.size()); out.blocks = static_cast<uint64_t>(md.blocks()); struct stat attr{}; get_attr(attr, in.inode); out.atime = attr.st_atim.tv_sec; out.mtime = attr.st_mtim.tv_sec; out.ctime = attr.st_ctim.tv_sec; out.mode = attr.st_mode; out.uid = attr.st_uid; out.gid = attr.st_gid; out.nlink = attr.st_nlink; out.size = attr.st_size; out.blocks = attr.st_blocks; ADAFS_DATA->spdlogger()->debug("Sending output mode {}", out.mode); auto hret = margo_respond(mid, handle, &out); assert(hret == HG_SUCCESS); Loading Loading
lfs/src/adafs_ops/mdata_ops.cpp +2 −1 Original line number Diff line number Diff line Loading @@ -141,6 +141,7 @@ int get_attr(struct stat& attr, const fuse_ino_t inode) { if (err == 0) metadata_to_stat(md, attr); } else { // attr is filled in here for rpcs err = rpc_send_get_attr(recipient, inode, attr); } } else { // single node operation Loading @@ -161,7 +162,7 @@ void metadata_to_stat(const Metadata& md, struct stat& attr) { attr.st_uid = md.uid(); attr.st_gid = md.gid(); attr.st_size = md.size(); attr.st_blksize = ADAFS_DATA->blocksize(); attr.st_blksize = ADAFS_DATA->blocksize(); // globally set blocksize is used attr.st_blocks = md.blocks(); attr.st_atim.tv_sec = md.atime(); attr.st_mtim.tv_sec = md.mtime(); Loading
lfs/src/rpc/client/c_metadata.cpp +2 −0 Original line number Diff line number Diff line Loading @@ -182,6 +182,7 @@ int rpc_send_get_attr(const size_t recipient, const fuse_ino_t inode, struct sta ret = HG_Get_output(handle, &out); ADAFS_DATA->spdlogger()->debug("Got response mode {}", out.mode); attr.st_ino = static_cast<uint64_t>(inode); attr.st_atim.tv_sec = static_cast<time_t>(out.atime); attr.st_mtim.tv_sec = static_cast<time_t>(out.mtime); attr.st_ctim.tv_sec = static_cast<time_t>(out.ctime); Loading @@ -190,6 +191,7 @@ int rpc_send_get_attr(const size_t recipient, const fuse_ino_t inode, struct sta attr.st_gid = static_cast<gid_t>(out.gid); attr.st_nlink = static_cast<nlink_t>(out.nlink); attr.st_size = static_cast<size_t>(out.size); attr.st_blksize = ADAFS_DATA->blocksize(); // globally set blocksize is used attr.st_blocks = static_cast<blkcnt_t>(out.blocks); /* clean up resources consumed by this rpc */ Loading
lfs/src/rpc/server/s_metadata.cpp +12 −11 Original line number Diff line number Diff line Loading @@ -74,18 +74,19 @@ static hg_return_t rpc_srv_attr(hg_handle_t handle) { ADAFS_DATA->spdlogger()->info("Got get attr RPC with inode {}", in.inode); hgi = HG_Get_info(handle); auto mid = margo_hg_class_to_instance(hgi->hg_class); // get the metadata Metadata md{}; get_metadata(md, in.inode); out.atime = static_cast<uint64_t>(md.atime()); out.mtime = static_cast<uint64_t>(md.mtime()); out.ctime = static_cast<uint64_t>(md.ctime()); out.mode = static_cast<uint32_t>(md.mode()); out.uid = static_cast<uint32_t>(md.uid()); out.gid = static_cast<uint32_t>(md.gid()); out.nlink = static_cast<uint64_t>(md.link_count()); out.size = static_cast<uint64_t>(md.size()); out.blocks = static_cast<uint64_t>(md.blocks()); struct stat attr{}; get_attr(attr, in.inode); out.atime = attr.st_atim.tv_sec; out.mtime = attr.st_mtim.tv_sec; out.ctime = attr.st_ctim.tv_sec; out.mode = attr.st_mode; out.uid = attr.st_uid; out.gid = attr.st_gid; out.nlink = attr.st_nlink; out.size = attr.st_size; out.blocks = attr.st_blocks; ADAFS_DATA->spdlogger()->debug("Sending output mode {}", out.mode); auto hret = margo_respond(mid, handle, &out); assert(hret == HG_SUCCESS); Loading