Lines Matching refs:cfn
968 struct cache_file_node *cfn = NULL;
980 cfn = find_cfn(sbi, HMDFS_SERVER_CID, relative_path, true);
981 if (!cfn)
985 cfn->filp);
998 write_dentry_page(cfn->filp, ctx.page,
1000 hmdfs_unlock_file(cfn->filp, ipos, DENTRYGROUP_SIZE);
1003 release_cfn(cfn);
1204 static void free_cfn(struct cache_file_node *cfn)
1206 if (!IS_ERR_OR_NULL(cfn->filp))
1207 filp_close(cfn->filp, NULL);
1209 kfree(cfn->relative_path);
1210 kfree(cfn);
1225 static bool dentry_file_match(struct cache_file_node *cfn, const char *id,
1228 return (path_cmp(cfn->relative_path, path, cfn->sbi->s_case_sensitive) &&
1229 !strncmp((cfn)->cid, id, HMDFS_CFN_CID_SIZE - 1));
1235 struct cache_file_node *cfn = NULL;
1240 list_for_each_entry(cfn, head, list) {
1241 if (dentry_file_match(cfn, cid, path)) {
1242 refcount_inc(&cfn->ref);
1243 return cfn;
1252 struct cache_file_node *cfn = kzalloc(sizeof(*cfn), GFP_KERNEL);
1254 if (!cfn)
1257 cfn->relative_path = kstrdup(path, GFP_KERNEL);
1258 if (!cfn->relative_path)
1261 refcount_set(&cfn->ref, 1);
1262 strncpy(cfn->cid, cid, HMDFS_CFN_CID_SIZE - 1);
1263 cfn->cid[HMDFS_CFN_CID_SIZE - 1] = '\0';
1264 cfn->sbi = sbi;
1265 cfn->server = server;
1266 return cfn;
1268 free_cfn(cfn);
1276 struct cache_file_node *cfn = NULL;
1281 cfn = create_cfn(sbi, path, cid, server);
1282 if (!cfn)
1298 cfn->filp = filp;
1299 list_add_tail(&cfn->list, head);
1310 free_cfn(cfn);
1352 struct cache_file_node *cfn = NULL;
1363 cfn = find_cfn(con->sbi, cid, relative_path, server);
1364 if (cfn) {
1365 release_cfn(cfn);
1506 struct cache_file_node *cfn = NULL;
1509 list_for_each_entry_safe(cfn, n, head, list) {
1510 list_del_init(&cfn->list);
1511 release_cfn(cfn);
1526 struct cache_file_node *cfn = NULL;
1529 cfn = __find_cfn(sbi, cid, path, server);
1531 return cfn;
1534 void release_cfn(struct cache_file_node *cfn)
1536 if (refcount_dec_and_test(&cfn->ref))
1537 free_cfn(cfn);
1540 void remove_cfn(struct cache_file_node *cfn)
1542 struct hmdfs_sb_info *sbi = cfn->sbi;
1546 deleted = list_empty(&cfn->list);
1548 list_del_init(&cfn->list);
1551 delete_dentry_file(cfn->filp);
1552 release_cfn(cfn);
1691 void add_to_delete_list(struct hmdfs_sb_info *sbi, struct cache_file_node *cfn)
1694 list_add_tail(&cfn->list, &sbi->to_delete);
1701 struct cache_file_node *cfn = NULL;
1705 cfn = create_cfn(sbi, path, cid, server);
1706 if (!cfn)
1709 cfn->filp = filp_open(fullname, O_RDWR | O_LARGEFILE, 0);
1710 if (IS_ERR(cfn->filp)) {
1711 hmdfs_err("open fail %ld", PTR_ERR(cfn->filp));
1715 if (cache_get_dentry_count(sbi, cfn->filp) < sbi->dcache_threshold && strcmp(cid, CLOUD_CID)) {
1716 add_to_delete_list(sbi, cfn);
1720 if (!cache_check_case_sensitive(sbi, cfn->filp) && strcmp(cid, CLOUD_CID)) {
1721 add_to_delete_list(sbi, cfn);
1730 list_add_tail(&cfn->list, head);
1734 add_to_delete_list(sbi, cfn);
1741 free_cfn(cfn);
1916 struct cache_file_node *cfn = NULL;
1921 list_for_each_entry_safe(cfn, n, &sbi->to_delete, list) {
1922 delete_dentry_file(cfn->filp);
1923 list_del_init(&cfn->list);
1924 release_cfn(cfn);
1956 struct cache_file_node *cfn = NULL;
1959 list_for_each_entry_safe(cfn, n, head, list) {
1960 if (strcmp(path, cfn->relative_path) != 0)
1962 list_del_init(&cfn->list);
1963 delete_dentry_file(cfn->filp);
1964 release_cfn(cfn);
1982 struct cache_file_node *cfn;
1984 cfn = find_cfn(con->sbi, con->cid, relative_path, false);
1985 if (!cfn)
1988 remove_cfn(cfn);
1989 release_cfn(cfn);
2031 struct cache_file_node *cfn)
2033 struct file *file = cfn->filp;
2072 struct cache_file_node *cfn,
2078 file = read_header_and_revalidate(con, cfn->filp, relative_path);
2087 hmdfs_info("The cfn cache for dev:%llu is uptodate",
2090 add_cfn_to_item(dentry, con, cfn);
2094 /* OK, cfn is not uptodate, let's remove it and add the new file */
2095 remove_cfn(cfn);
2141 struct cache_file_node *cfn = NULL;
2169 cfn = find_cfn(sbi, con->cid, relative_path, false);
2170 if (cfn) {
2171 remote_file_revalidate_cfn(dentry, con, cfn, relative_path);
2172 release_cfn(cfn);