+ goto out;
+new_api:
+ strncpy(dname_path, pathname, PATH_MAX);
+ strncpy(bname_path, pathname, PATH_MAX);
+ dname = dirname(dname_path);
+ bname = basename(bname_path);
+ fd = open(dname, O_RDONLY | O_NOCTTY | O_NDELAY);
+ if (fd < 0) {
+ ret = -errno;
+ goto out;
+ }
+ lu_project.project_type = LU_PROJECT_GET;
+ if (bname) {
+ strncpy(lu_project.project_name, bname, NAME_MAX);
+ if (ret_bname)
+ strncpy(ret_bname, bname, NAME_MAX);
+ }
+ ret = ioctl(fd, LL_IOC_PROJECT, &lu_project);
+ if (ret) {
+ fprintf(stderr, "%s: failed to get xattr for '%s': %s\n",
+ progname, pathname, strerror(errno));
+ ret = -errno;
+ } else {
+ fsx->fsx_xflags = lu_project.project_xflags;
+ fsx->fsx_projid = lu_project.project_id;
+ }
+out:
+ if (ret && fd >= 0)
+ close(fd);
+ return ret ? ret : fd;