Lines Matching defs:xattr

32 #include <sys/xattr.h>
135 * Read xattr data off the cnode. Then, if conditions permit,
214 * b) we encountered an error setting the xattr above.
242 * we need to create a keyless xattr upon file / directory creation. When we have the inode value
320 * this blob has no keys and it has no backing xattr. We just know the
782 * - write out the xattr if it hasn't already been saved
925 /* write out the xattr if it's new */
1143 panic("Content Protection: cp_xattr called with xattr == NULL");
1208 * Stores new xattr data on the cnode.
1378 struct cp_root_xattr xattr;
1382 err = cp_getrootxattr (hfsmp, &xattr);
1385 hfsmp->hfs_running_cp_major_vers = xattr.major_version;
1452 * Initializes a new cprotect entry with xattr data from the cnode.
1475 struct cp_xattr_v4 *xattr = NULL;
1476 MALLOC (xattr, struct cp_xattr_v4*, sizeof(struct cp_xattr_v4), M_TEMP, M_WAITOK);
1477 if (xattr == NULL) {
1481 bzero(xattr, sizeof (struct cp_xattr_v4));
1482 attrsize = sizeof(*xattr);
1484 uio_addiov(auio, CAST_USER_ADDR_T(xattr), attrsize);
1489 FREE (xattr, M_TEMP);
1494 xattr->xattr_major_version = OSSwapLittleToHostInt16(xattr->xattr_major_version);
1495 xattr->xattr_minor_version = OSSwapLittleToHostInt16(xattr->xattr_minor_version);
1496 xattr->key_size = OSSwapLittleToHostInt32(xattr->key_size);
1497 xattr->flags = OSSwapLittleToHostInt32(xattr->flags);
1498 xattr->persistent_class = OSSwapLittleToHostInt32(xattr->persistent_class);
1500 if (xattr->xattr_major_version != hfsmp->hfs_running_cp_major_vers ) {
1501 printf("hfs: cp_getxattr: bad xattr version %d expecting %d\n",
1502 xattr->xattr_major_version, hfsmp->hfs_running_cp_major_vers);
1504 FREE (xattr, M_TEMP);
1513 if (xattr->key_size > CP_MAX_WRAPPEDKEYSIZE) {
1515 FREE (xattr, M_TEMP);
1528 /* set up entry with information from xattr */
1529 entry = cp_entry_alloc(xattr->key_size);
1531 FREE (xattr, M_TEMP);
1536 entry->cp_pclass = xattr->persistent_class;
1543 xattr->flags &= ~CP_NO_XATTR;
1545 entry->cp_flags = xattr->flags;
1546 if (xattr->xattr_major_version >= CP_NEW_MAJOR_VERS) {
1551 bcopy(xattr->persistent_key, entry->cp_persistent_key, xattr->key_size);
1554 FREE (xattr, M_TEMP);
1559 struct cp_xattr_v2 *xattr = NULL;
1560 MALLOC (xattr, struct cp_xattr_v2*, sizeof(struct cp_xattr_v2), M_TEMP, M_WAITOK);
1561 if (xattr == NULL) {
1565 bzero (xattr, sizeof (struct cp_xattr_v2));
1566 attrsize = sizeof(*xattr);
1568 uio_addiov(auio, CAST_USER_ADDR_T(xattr), attrsize);
1573 FREE (xattr, M_TEMP);
1578 xattr->xattr_major_version = OSSwapLittleToHostInt16(xattr->xattr_major_version);
1579 xattr->xattr_minor_version = OSSwapLittleToHostInt16(xattr->xattr_minor_version);
1580 xattr->key_size = OSSwapLittleToHostInt32(xattr->key_size);
1581 xattr->flags = OSSwapLittleToHostInt32(xattr->flags);
1582 xattr->persistent_class = OSSwapLittleToHostInt32(xattr->persistent_class);
1584 if (xattr->xattr_major_version != hfsmp->hfs_running_cp_major_vers) {
1585 printf("hfs: cp_getxattr: bad xattr version %d expecting %d\n",
1586 xattr->xattr_major_version, hfsmp->hfs_running_cp_major_vers);
1588 FREE (xattr, M_TEMP);
1597 if (xattr->key_size > CP_V2_WRAPPEDKEYSIZE) {
1599 FREE (xattr, M_TEMP);
1602 /* set up entry with information from xattr */
1603 entry = cp_entry_alloc(xattr->key_size);
1605 FREE (xattr, M_TEMP);
1609 entry->cp_pclass = xattr->persistent_class;
1616 xattr->flags &= ~CP_NO_XATTR;
1618 entry->cp_flags = xattr->flags;
1621 bcopy(xattr->persistent_key, entry->cp_persistent_key, xattr->key_size);
1624 FREE (xattr, M_TEMP);
2082 /* should already have an xattr by this point. */