Lines Matching +full:lower +full:- +full:case
1 // SPDX-License-Identifier: GPL-2.0
5 * Copyright (c) 2020-2021 Huawei Device Co., Ltd.
22 * = DOMAIN {3} : lower's dev_id {29} : lower's ino_raw {32}
60 /* The lower inode of local/merge/root(part) inode */
76 * iget_test - whether or not the inode with matched hashval is the one we are
88 WARN_ON(ia->ino.domain < DOMAIN_ROOT || in iget_test()
89 ia->ino.domain >= DOMAIN_INVALID); in iget_test()
91 if (read_ino_domain(inode->i_ino) == DOMAIN_ROOT) in iget_test()
93 if (read_ino_domain(inode->i_ino) != ia->ino.domain) in iget_test()
96 switch (ia->ino.domain) { in iget_test()
97 case DOMAIN_MERGE_VIEW: in iget_test()
98 case DOMAIN_CLOUD_MERGE_VIEW: in iget_test()
99 res = (ia->lo_i == hii->lower_inode); in iget_test()
101 case DOMAIN_DEVICE_LOCAL: in iget_test()
102 res = (ia->lo_i == hii->lower_inode); in iget_test()
104 case DOMAIN_DEVICE_REMOTE: in iget_test()
105 res = (ia->peer == hii->conn && in iget_test()
106 ia->remote_ino == hii->remote_ino); in iget_test()
108 case DOMAIN_DEVICE_CLOUD: in iget_test()
109 res = (ia->cloud_record_id && in iget_test()
110 (memcmp(ia->cloud_record_id, hii->cloud_record_id, in iget_test()
112 (ia->reserved[0] == hii->reserved[0])); in iget_test()
120 * iget_set - initialize a inode with iget_args
130 inode->i_ino = ia->ino.ino_output; in iget_set()
133 hii->conn = ia->peer; in iget_set()
134 hii->remote_ino = ia->remote_ino; in iget_set()
135 hii->lower_inode = ia->lo_i; in iget_set()
137 if (ia->cloud_record_id) { in iget_set()
138 memcpy(hii->cloud_record_id, ia->cloud_record_id, CLOUD_RECORD_ID_LEN); in iget_set()
139 memcpy(hii->reserved, ia->reserved, CLOUD_DENTRY_RESERVED_LENGTH); in iget_set()
159 * hmdfs_iget5_locked_merge - obtain an inode for the merge-view
162 * @fst_lo_i: the lower inode of it's first comrade
164 * Simply replace the lower's domain for a new ino.
178 hmdfs_err("Received a invalid lower inode"); in hmdfs_iget5_locked_merge()
186 ia.ino.ino_raw = d_inode(fst_lo_d)->i_ino; in hmdfs_iget5_locked_merge()
187 ia.ino.dev_id = hmdfs_d(fst_lo_d)->device_id; in hmdfs_iget5_locked_merge()
204 hmdfs_err("Received a invalid lower inode"); in hmdfs_iget5_locked_cloud_merge()
212 ia.ino.ino_raw = d_inode(fst_lo_d)->i_ino; in hmdfs_iget5_locked_cloud_merge()
213 ia.ino.dev_id = hmdfs_d(fst_lo_d)->device_id; in hmdfs_iget5_locked_cloud_merge()
219 * hmdfs_iget5_locked_local - obtain an inode for the local-dev-view
222 * @lo_i: the lower inode from local filesystem
239 hmdfs_err("Received a invalid lower inode"); in hmdfs_iget5_locked_local()
242 ia.ino.ino_raw = make_ino_raw_dev_local(lo_i->i_ino); in hmdfs_iget5_locked_local()
249 * hmdfs_iget5_locked_remote - obtain an inode for the remote-dev-view
279 ia.ino.dev_id = peer->device_id; in hmdfs_iget5_locked_remote()
285 * hmdfs_iget5_locked_cloud - obtain an inode for the cloud-dev-view
305 .cloud_record_id = res->record_id, in hmdfs_iget5_locked_cloud()
306 .reserved = res->reserved, in hmdfs_iget5_locked_cloud()
315 ia.ino.ino_raw = make_ino_raw_cloud(res->record_id) + res->reserved[0]; in hmdfs_iget5_locked_cloud()
316 ia.ino.dev_id = peer->device_id; in hmdfs_iget5_locked_cloud()
331 .ino.dev_id = peer ? peer->device_id : 0, in hmdfs_iget_locked_root()
350 loff_t upper_size = i_size_read(upper_file->f_inode); in hmdfs_update_upper_file()
351 loff_t lower_size = i_size_read(lower_file->f_inode); in hmdfs_update_upper_file()
353 if (upper_file->f_inode->i_mapping && upper_size != lower_size) { in hmdfs_update_upper_file()
354 i_size_write(upper_file->f_inode, lower_size); in hmdfs_update_upper_file()
355 truncate_inode_pages(upper_file->f_inode->i_mapping, 0); in hmdfs_update_upper_file()