Lines Matching refs:cfn

969 	struct cache_file_node *cfn = NULL;
981 cfn = find_cfn(sbi, HMDFS_SERVER_CID, relative_path, true);
982 if (!cfn)
986 cfn->filp);
999 write_dentry_page(cfn->filp, ctx.page,
1001 hmdfs_unlock_file(cfn->filp, ipos, DENTRYGROUP_SIZE);
1004 release_cfn(cfn);
1205 static void free_cfn(struct cache_file_node *cfn)
1207 if (!IS_ERR_OR_NULL(cfn->filp))
1208 filp_close(cfn->filp, NULL);
1210 kfree(cfn->relative_path);
1211 kfree(cfn);
1226 static bool dentry_file_match(struct cache_file_node *cfn, const char *id,
1229 return (path_cmp(cfn->relative_path, path, cfn->sbi->s_case_sensitive) &&
1230 !strncmp((cfn)->cid, id, HMDFS_CFN_CID_SIZE - 1));
1236 struct cache_file_node *cfn = NULL;
1241 list_for_each_entry(cfn, head, list) {
1242 if (dentry_file_match(cfn, cid, path)) {
1243 refcount_inc(&cfn->ref);
1244 return cfn;
1253 struct cache_file_node *cfn = kzalloc(sizeof(*cfn), GFP_KERNEL);
1255 if (!cfn)
1258 cfn->relative_path = kstrdup(path, GFP_KERNEL);
1259 if (!cfn->relative_path)
1262 refcount_set(&cfn->ref, 1);
1263 strncpy(cfn->cid, cid, HMDFS_CFN_CID_SIZE - 1);
1264 cfn->cid[HMDFS_CFN_CID_SIZE - 1] = '\0';
1265 cfn->sbi = sbi;
1266 cfn->server = server;
1267 return cfn;
1269 free_cfn(cfn);
1277 struct cache_file_node *cfn = NULL;
1282 cfn = create_cfn(sbi, path, cid, server);
1283 if (!cfn)
1299 cfn->filp = filp;
1300 list_add_tail(&cfn->list, head);
1311 free_cfn(cfn);
1353 struct cache_file_node *cfn = NULL;
1364 cfn = find_cfn(con->sbi, cid, relative_path, server);
1365 if (cfn) {
1366 release_cfn(cfn);
1507 struct cache_file_node *cfn = NULL;
1510 list_for_each_entry_safe(cfn, n, head, list) {
1511 list_del_init(&cfn->list);
1512 release_cfn(cfn);
1527 struct cache_file_node *cfn = NULL;
1530 cfn = __find_cfn(sbi, cid, path, server);
1532 return cfn;
1535 void release_cfn(struct cache_file_node *cfn)
1537 if (refcount_dec_and_test(&cfn->ref))
1538 free_cfn(cfn);
1541 void remove_cfn(struct cache_file_node *cfn)
1543 struct hmdfs_sb_info *sbi = cfn->sbi;
1547 deleted = list_empty(&cfn->list);
1549 list_del_init(&cfn->list);
1552 delete_dentry_file(cfn->filp);
1553 release_cfn(cfn);
1692 void add_to_delete_list(struct hmdfs_sb_info *sbi, struct cache_file_node *cfn)
1695 list_add_tail(&cfn->list, &sbi->to_delete);
1702 struct cache_file_node *cfn = NULL;
1706 cfn = create_cfn(sbi, path, cid, server);
1707 if (!cfn)
1710 cfn->filp = filp_open(fullname, O_RDWR | O_LARGEFILE, 0);
1711 if (IS_ERR(cfn->filp)) {
1712 hmdfs_err("open fail %ld", PTR_ERR(cfn->filp));
1716 if (cache_get_dentry_count(sbi, cfn->filp) < sbi->dcache_threshold && strcmp(cid, CLOUD_CID)) {
1717 add_to_delete_list(sbi, cfn);
1721 if (!cache_check_case_sensitive(sbi, cfn->filp) && strcmp(cid, CLOUD_CID)) {
1722 add_to_delete_list(sbi, cfn);
1731 list_add_tail(&cfn->list, head);
1735 add_to_delete_list(sbi, cfn);
1742 free_cfn(cfn);
1917 struct cache_file_node *cfn = NULL;
1922 list_for_each_entry_safe(cfn, n, &sbi->to_delete, list) {
1923 delete_dentry_file(cfn->filp);
1924 list_del_init(&cfn->list);
1925 release_cfn(cfn);
1957 struct cache_file_node *cfn = NULL;
1960 list_for_each_entry_safe(cfn, n, head, list) {
1961 if (strcmp(path, cfn->relative_path) != 0)
1963 list_del_init(&cfn->list);
1964 delete_dentry_file(cfn->filp);
1965 release_cfn(cfn);
1983 struct cache_file_node *cfn;
1985 cfn = find_cfn(con->sbi, con->cid, relative_path, false);
1986 if (!cfn)
1989 remove_cfn(cfn);
1990 release_cfn(cfn);
2032 struct cache_file_node *cfn)
2034 struct file *file = cfn->filp;
2073 struct cache_file_node *cfn,
2079 file = read_header_and_revalidate(con, cfn->filp, relative_path);
2088 hmdfs_info("The cfn cache for dev:%llu is uptodate",
2091 add_cfn_to_item(dentry, con, cfn);
2095 /* OK, cfn is not uptodate, let's remove it and add the new file */
2096 remove_cfn(cfn);
2142 struct cache_file_node *cfn = NULL;
2170 cfn = find_cfn(sbi, con->cid, relative_path, false);
2171 if (cfn) {
2172 remote_file_revalidate_cfn(dentry, con, cfn, relative_path);
2173 release_cfn(cfn);