X-Git-Url: https://git.whamcloud.com/?a=blobdiff_plain;f=lustre%2Futils%2Flfs_project.c;h=8471c6d6180b6794301b8766e09e8ddb82a035ff;hb=b57c88fe4b70392ca915c18e51d50ce90256ba69;hp=f16d825a4f2bbd63ea297220309b0c7436e2aa6f;hpb=ffef6e3271ad1136d3ab1c2ee229b4690a6722a0;p=fs%2Flustre-release.git diff --git a/lustre/utils/lfs_project.c b/lustre/utils/lfs_project.c index f16d825..8471c6d 100644 --- a/lustre/utils/lfs_project.c +++ b/lustre/utils/lfs_project.c @@ -51,9 +51,11 @@ #include "lfs_project.h" #include +const char *progname; + struct lfs_project_item { struct list_head lpi_list; - char lpi_pathname[PATH_MAX]; + char *lpi_pathname; }; static int @@ -69,8 +71,12 @@ lfs_project_item_alloc(struct list_head *head, const char *pathname) return -ENOMEM; } - strncpy(lpi->lpi_pathname, pathname, sizeof(lpi->lpi_pathname) - 1); - list_add_tail(&lpi->lpi_list, head); + lpi->lpi_pathname = strdup(pathname); + if (!lpi->lpi_pathname) { + free(lpi); + return -ENOMEM; + } else + list_add_tail(&lpi->lpi_list, head); return 0; } @@ -118,7 +124,7 @@ static int project_get_xattr(const char *pathname, struct fsxattr *fsx, return -errno; } - ret = ioctl(fd, LL_IOC_FSGETXATTR, fsx); + ret = ioctl(fd, FS_IOC_FSGETXATTR, fsx); if (ret) { fprintf(stderr, "%s: failed to get xattr for '%s': %s\n", progname, pathname, strerror(errno)); @@ -207,7 +213,7 @@ project_set_one(const char *pathname, struct project_handle_control *phc) if (phc->set_projid) fsx.fsx_projid = phc->projid; - ret = ioctl(fd, LL_IOC_FSSETXATTR, &fsx); + ret = ioctl(fd, FS_IOC_FSSETXATTR, &fsx); if (ret) fprintf(stderr, "%s: failed to set xattr for '%s': %s\n", progname, pathname, strerror(errno)); @@ -235,7 +241,7 @@ project_clear_one(const char *pathname, struct project_handle_control *phc) if (!phc->keep_projid) fsx.fsx_projid = 0; - ret = ioctl(fd, LL_IOC_FSSETXATTR, &fsx); + ret = ioctl(fd, FS_IOC_FSSETXATTR, &fsx); if (ret) fprintf(stderr, "%s: failed to set xattr for '%s': %s\n", progname, pathname, strerror(errno)); @@ -334,6 +340,7 @@ static int lfs_project_iterate(const char *pathname, phc, func); if (!ret && rc) ret = rc; + free(lpi->lpi_pathname); free(lpi); } @@ -341,26 +348,26 @@ static int lfs_project_iterate(const char *pathname, } -inline int lfs_project_check(const char *pathname, - struct project_handle_control *phc) +int lfs_project_check(const char *pathname, + struct project_handle_control *phc) { return lfs_project_iterate(pathname, phc, project_check_one); } -inline int lfs_project_clear(const char *pathname, - struct project_handle_control *phc) +int lfs_project_clear(const char *pathname, + struct project_handle_control *phc) { return lfs_project_iterate(pathname, phc, project_clear_one); } -inline int lfs_project_set(const char *pathname, - struct project_handle_control *phc) +int lfs_project_set(const char *pathname, + struct project_handle_control *phc) { return lfs_project_iterate(pathname, phc, project_set_one); } -inline int lfs_project_list(const char *pathname, - struct project_handle_control *phc) +int lfs_project_list(const char *pathname, + struct project_handle_control *phc) { return lfs_project_iterate(pathname, phc, project_list_one); }