Lines Matching refs:res

47 metadata_read(struct hast_resource *res, bool openrw)  in metadata_read()  argument
63 if (res->hr_localfd == -1) { in metadata_read()
64 if (provinfo(res, openrw) == -1) { in metadata_read()
69 pjdlog_debug(1, "Obtained info about %s.", res->hr_localpath); in metadata_read()
71 if (flock(res->hr_localfd, LOCK_EX | LOCK_NB) == -1) { in metadata_read()
75 res->hr_localpath); in metadata_read()
79 res->hr_localpath); in metadata_read()
83 pjdlog_debug(1, "Locked %s.", res->hr_localpath); in metadata_read()
103 done = pread(res->hr_localfd, buf, METADATA_SIZE, 0); in metadata_read()
114 res->hr_localpath); in metadata_read()
120 if (str != NULL && strcmp(str, res->hr_name) != 0) { in metadata_read()
122 res->hr_localpath, res->hr_name); in metadata_read()
127 res->hr_datasize = nv_get_uint64(nv, "datasize"); in metadata_read()
128 res->hr_extentsize = (int)nv_get_uint32(nv, "extentsize"); in metadata_read()
129 res->hr_keepdirty = (int)nv_get_uint32(nv, "keepdirty"); in metadata_read()
130 res->hr_localoff = nv_get_uint64(nv, "offset"); in metadata_read()
131 res->hr_resuid = nv_get_uint64(nv, "resuid"); in metadata_read()
132 if (res->hr_role != HAST_ROLE_PRIMARY) { in metadata_read()
134 res->hr_secondary_localcnt = nv_get_uint64(nv, "localcnt"); in metadata_read()
135 res->hr_secondary_remotecnt = nv_get_uint64(nv, "remotecnt"); in metadata_read()
137 if (res->hr_role != HAST_ROLE_SECONDARY) { in metadata_read()
139 res->hr_primary_localcnt = nv_get_uint64(nv, "localcnt"); in metadata_read()
140 res->hr_primary_remotecnt = nv_get_uint64(nv, "remotecnt"); in metadata_read()
145 res->hr_previous_role = HAST_ROLE_PRIMARY; in metadata_read()
147 res->hr_previous_role = HAST_ROLE_SECONDARY; in metadata_read()
153 res->hr_localpath); in metadata_read()
161 close(res->hr_localfd); in metadata_read()
162 res->hr_localfd = -1; in metadata_read()
169 metadata_write(struct hast_resource *res) in metadata_write() argument
188 nv_add_string(nv, res->hr_name, "resource"); in metadata_write()
189 nv_add_uint64(nv, (uint64_t)res->hr_datasize, "datasize"); in metadata_write()
190 nv_add_uint32(nv, (uint32_t)res->hr_extentsize, "extentsize"); in metadata_write()
191 nv_add_uint32(nv, (uint32_t)res->hr_keepdirty, "keepdirty"); in metadata_write()
192 nv_add_uint64(nv, (uint64_t)res->hr_localoff, "offset"); in metadata_write()
193 nv_add_uint64(nv, res->hr_resuid, "resuid"); in metadata_write()
194 if (res->hr_role == HAST_ROLE_PRIMARY || in metadata_write()
195 res->hr_role == HAST_ROLE_INIT) { in metadata_write()
196 nv_add_uint64(nv, res->hr_primary_localcnt, "localcnt"); in metadata_write()
197 nv_add_uint64(nv, res->hr_primary_remotecnt, "remotecnt"); in metadata_write()
199 PJDLOG_ASSERT(res->hr_role == HAST_ROLE_SECONDARY); in metadata_write()
200 nv_add_uint64(nv, res->hr_secondary_localcnt, "localcnt"); in metadata_write()
201 nv_add_uint64(nv, res->hr_secondary_remotecnt, "remotecnt"); in metadata_write()
203 nv_add_string(nv, role2str(res->hr_role), "prevrole"); in metadata_write()
208 res->hr_previous_role = res->hr_role; in metadata_write()
215 done = pwrite(res->hr_localfd, buf, METADATA_SIZE, 0); in metadata_write()