Lines Matching defs:dfh
85 static int fill_link_key(char *linkkey, fhandle_t *dfh, char *name);
105 static fhlist_ent *create_primary_struct(struct db_list *dbp, fhandle_t *dfh,
108 static fhlist_ent *db_add_primary(struct db_list *dbp, fhandle_t *dfh,
115 static void add_mc_path(struct db_list *dbp, fhandle_t *dfh, char *name,
117 static linkinfo_ent *create_link_struct(struct db_list *dbp, fhandle_t *dfh,
119 static int db_add_secondary(struct db_list *dbp, fhandle_t *dfh, char *name,
131 static int delete_link(struct db_list *dbp, fhandle_t *dfh, char *name,
153 * the full file handle and the secondary key (dfh-key,name)
155 * The secondary key is the pair (dfh-key,name) where dfh-key is
198 fill_link_key(char *linkkey, fhandle_t *dfh, char *name)
202 (void) memcpy(linkkey, &dfh->fh_data, dfh->fh_len);
203 (void) strcpy(&linkkey[dfh->fh_len], name);
204 linksize = dfh->fh_len + strlen(name) + 1;
409 debug_opaque_print(fp, (void *)&linkp->dfh, sizeof (linkp->dfh));
428 (void) fprintf(fp, "name '%s', dfh: ", fhrecp->name);
429 debug_opaque_print(fp, (void *)&fhrecp->dfh, sizeof (fhrecp->dfh));
656 create_primary_struct(struct db_list *dbp, fhandle_t *dfh, char *name,
675 (void) memcpy(&new_fhrecp->dfh, dfh, sizeof (*dfh));
677 if (dfh == &public_fh)
710 db_add_primary(struct db_list *dbp, fhandle_t *dfh, char *name, fhandle_t *fh,
733 new_fhrecp = create_primary_struct(dbp, dfh, name, fh, flags,
842 add_mc_path(struct db_list *dbp, fhandle_t *dfh, char *name,
850 linksize = fill_link_key(linkkey, &fhrecp->dfh, fhrecp->name);
871 linksize = fill_link_key(LN_PREV(linkp), &lastlinkp->dfh,
876 linksize = fill_link_key(linkkey, dfh, name);
887 len = fill_link_key(LN_NEXT(lastlinkp), dfh, name);
892 linksize = fill_link_key(linkkey, &lastlinkp->dfh, LN_NAME(lastlinkp));
899 * (dfh,name) is the secondary key, fhrec is the primary record for the file
905 create_link_struct(struct db_list *dbp, fhandle_t *dfh, char *name,
919 if (dfh == &public_fh)
923 (void) memcpy(&linkp->dfh, dfh, sizeof (*dfh));
928 /* name - component name (in directory dfh) */
940 if (memcmp(&fhrecp->dfh, dfh, sizeof (*dfh)) ||
943 if (dfh == &public_fh) {
948 add_mc_path(dbp, dfh, name, fhrecp, linkp,
958 len = fill_link_key(LN_NEXT(linkp), &fhrecp->dfh,
970 linksize = fill_link_key(linkkey, dfh, name);
990 db_add_secondary(struct db_list *dbp, fhandle_t *dfh, char *name,
1017 newlinkp = create_link_struct(dbp, dfh, name, new_fhrecp, &error);
1043 new_fhrecp = create_primary_struct(dbp, dfh, name, fh, fhflags,
1081 len = fill_link_key(LN_PREV(nextlinkp), dfh, name);
1241 fhandle_t *dfh;
1244 dfh = &dellinkp->dfh;
1247 if (memcmp(&fhrecp->dfh, dfh, sizeof (*dfh)) ||
1254 debug_opaque_print(stderr, (void *)dfh, sizeof (*dfh));
1256 debug_opaque_print(stderr, (void *)&fhrecp->dfh,
1257 sizeof (fhrecp->dfh));
1279 (void) memcpy(&fhrecp->dfh, &nextlinkp->dfh,
1280 sizeof (nextlinkp->dfh));
1297 * db_add - add record to the database. If dfh, fh and name are all here,
1305 db_add(char *fhpath, fhandle_t *dfh, char *name, fhandle_t *fh, uint_t flags)
1325 fhrecp = db_add_primary(dbp, dfh, name, fh, flags,
1330 if ((dfh == NULL) || (name == NULL)) {
1333 "db_add: dfh %p, name %p - invalid"),
1334 (void *)dfh, (void *)name);
1341 error = db_delete_link(fhpath, dfh,
1343 fhrecp = db_add_primary(dbp, dfh, name, fh,
1350 error = db_add_secondary(dbp, dfh, name, fh, fhrecp);
1395 * db_lookup_link - search the database for the file identified by (dfh,name).
1400 db_lookup_link(char *fhpath, fhandle_t *dfh, char *name, fhlist_ent *fhrecp,
1409 if ((fhpath == NULL) || (dfh == NULL) || (name == NULL) ||
1416 if (dfh == &public_fh) {
1419 dbp = db_get_db(fhpath, &dfh->fh_fsid, errorp, O_CREAT);
1426 linksize = fill_link_key(linkkey, dfh, name);
1484 * prev should be NULL, and fhrec's name/dfh are same
1550 delete_link(struct db_list *dbp, fhandle_t *dfh, char *name,
1557 *nextlinksizep = fill_link_key(nextlinkkey, dfh, name);
1564 linksize = fill_link_key(linkkey, dfh, name);
1579 db_delete_link(char *fhpath, fhandle_t *dfh, char *name)
1584 if ((fhpath == NULL) || (dfh == NULL) || (name == NULL)) {
1587 if (dfh == &public_fh) {
1590 dbp = db_get_db(fhpath, &dfh->fh_fsid, &error, O_CREAT);
1592 for (; dbp != NULL; dbp = ((dfh == &public_fh) ? dbp->next : NULL)) {
1593 (void) delete_link(dbp, dfh, name, NULL, NULL, &error,
1757 linksize = fill_link_key(linkkey, &pfe->dfh, pfe->name);
1892 &pfe->dfh, pfe->name, linkkey,