X-Git-Url: http://git.tuebingen.mpg.de/?p=adu.git;a=blobdiff_plain;f=create.c;h=022129bcb01a7e74d6427d2e60ba7af6f1c7e539;hp=638ba19d28dc5fe3258ea71eabb48514fe9bbb56;hb=a398d5009251fa41859006dae5c99afc6824fab2;hpb=1e723f61001e9f4448a465886b0b4ebcdadb388e diff --git a/create.c b/create.c index 638ba19..022129b 100644 --- a/create.c +++ b/create.c @@ -7,6 +7,7 @@ /** \file create.c The create mode of adu. */ #include /* readdir() */ +#include "format.h" #include "adu.h" #include "gcc-compat.h" #include "cmdline.h" @@ -30,8 +31,6 @@ static int write_uid(struct user_info *ui, void *data) static int write_uid_list(void) { char *buf, *p, *filename; - uint32_t count = 0; - struct user_info *ui; size_t size = num_uids * sizeof(uint32_t); int ret; @@ -133,7 +132,7 @@ static int scan_dir(char *dirname, uint64_t *parent_dir_num) } while ((entry = readdir(dir))) { mode_t m; - struct stat s; + struct stat64 s; uint32_t uid; uint64_t size; struct user_info *ui; @@ -142,9 +141,9 @@ static int scan_dir(char *dirname, uint64_t *parent_dir_num) continue; if (!strcmp(entry->d_name, "..")) continue; - if (lstat(entry->d_name, &s) == -1) { - WARNING_LOG("lstat error for %s/%s\n", dirname, - entry->d_name); + if (lstat64(entry->d_name, &s) == -1) { + WARNING_LOG("lstat64 error for %s/%s (%s)\n", + dirname, entry->d_name, strerror(errno)); continue; } m = s.st_mode; @@ -163,7 +162,7 @@ static int scan_dir(char *dirname, uint64_t *parent_dir_num) dir_size += size; dir_files++; uid = s.st_uid; - ret = search_uid(uid, CREATE_USER_TABLE | OPEN_USER_TABLE, &ui); + ret = search_uid(uid, NULL, CREATE_USER_TABLE | OPEN_USER_TABLE, &ui); if (ret < 0) goto out; ui->bytes += size; @@ -183,7 +182,7 @@ out: return ret; } -int com_create() +int com_create(void) { uint64_t zero = 0ULL; int ret;