From 359e71d956dc912a9b548b3e40612b7f40ef94ea Mon Sep 17 00:00:00 2001 From: Volker Lendecke Date: Fri, 27 Nov 2009 12:57:43 +0100 Subject: s3: "disk_quotas" only looks at the devicenumber --- source3/smbd/quotas.c | 30 +++++++++++++----------------- 1 file changed, 13 insertions(+), 17 deletions(-) (limited to 'source3') diff --git a/source3/smbd/quotas.c b/source3/smbd/quotas.c index a424602d5f..8c443b6f60 100644 --- a/source3/smbd/quotas.c +++ b/source3/smbd/quotas.c @@ -224,7 +224,7 @@ bool disk_quotas(const char *path, uint64_t *bsize, uint64_t *dfree, uint64_t *d /* find the block device file */ - if ( sys_stat(path, &S, lp_fake_dir_create_times()) == -1 ) + if (sys_stat(path, &S, false) == -1 ) return(False) ; devno = S.st_ex_dev ; @@ -235,8 +235,7 @@ bool disk_quotas(const char *path, uint64_t *bsize, uint64_t *dfree, uint64_t *d found = False ; while ((mnt = getmntent(fp))) { - if ( sys_stat(mnt->mnt_dir, &S, lp_fake_dir_create_times()) - == -1 ) + if (sys_stat(mnt->mnt_dir, &S, false) == -1) continue ; if (S.st_ex_dev == devno) { @@ -318,7 +317,7 @@ bool disk_quotas(const char *path, uint64_t *bsize, uint64_t *dfree, uint64_t *d int quota_default = 0 ; bool found = false; - if (sys_stat(path, &sbuf, lp_fake_dir_create_times()) == -1) { + if (sys_stat(path, &sbuf, false) == -1) { return false; } @@ -329,8 +328,7 @@ bool disk_quotas(const char *path, uint64_t *bsize, uint64_t *dfree, uint64_t *d } while ((mnt = getmntent(fd)) != NULL) { - if (sys_stat(mnt->mnt_dir, &sbuf, lp_fake_dir_create_times()) - == -1) { + if (sys_stat(mnt->mnt_dir, &sbuf, false) { continue; } if (sbuf.st_ex_dev == devno) { @@ -601,7 +599,7 @@ bool disk_quotas(const char *path, euser_id = geteuid(); - if (sys_stat(path, &sbuf, lp_fake_dir_create_times()) == -1) { + if (sys_stat(path, &sbuf, false) { return false; } @@ -614,8 +612,7 @@ bool disk_quotas(const char *path, } while (getmntent(fd, &mnt) == 0) { - if (sys_stat(mnt.mnt_mountp, &sbuf, - lp_fake_dir_create_times()) == -1) { + if (sys_stat(mnt.mnt_mountp, &sbuf, false) == -1) { continue; } @@ -642,8 +639,7 @@ bool disk_quotas(const char *path, } while ((mnt = getmntent(fd)) != NULL) { - if (sys_stat(mnt->mnt_dir, &sbuf, - lp_fake_dir_create_times()) == -1) { + if (sys_stat(mnt->mnt_dir, &sbuf, false) == -1) { continue; } DEBUG(5,("disk_quotas: testing \"%s\" devno=%x\n", @@ -836,7 +832,7 @@ bool disk_quotas(const char *path, uint64_t *bsize, uint64_t *dfree, uint64_t *d /* find the block device file */ - if ( sys_stat(path, &S, lp_fake_dir_create_times()) == -1 ) { + if ( sys_stat(path, &S, false) == -1 ) { return(False) ; } @@ -846,7 +842,7 @@ bool disk_quotas(const char *path, uint64_t *bsize, uint64_t *dfree, uint64_t *d found = False ; while ((mnt = getmntent(fp))) { - if ( sys_stat(mnt->mnt_dir, &S, lp_fake_dir_create_times()) == -1 ) + if ( sys_stat(mnt->mnt_dir, &S, false) == -1 ) continue ; if (S.st_ex_dev == devno) { found = True ; @@ -1158,10 +1154,10 @@ bool disk_quotas(const char *path, uint64_t *bsize, uint64_t *dfree, uint64_t *d * to have a significant performance boost when * lstat calls on /dev access this function. */ - if ((sys_stat(path, &S, lp_fake_dir_create_times())<0) + if ((sys_stat(path, &S, false)<0) || (devnm(S_IFBLK, S.st_ex_dev, dev_disk, 256, 1)<0)) #else - if ((sys_stat(path, &S, lp_fake_dir_create_times())<0) + if ((sys_stat(path, &S, false)<0) || (devnm(S_IFBLK, S.st_ex_dev, dev_disk, 256, 0)<0)) return (False); #endif /* ifdef HPUX */ @@ -1189,7 +1185,7 @@ bool disk_quotas(const char *path, uint64_t *bsize, uint64_t *dfree, uint64_t *d SMB_STRUCT_STAT st; int mntsize, i; - if (sys_stat(path, &st, lp_fake_dir_create_times()) < 0) + if (sys_stat(path, &st, false) < 0) return False; devno = st.st_ex_dev; @@ -1198,7 +1194,7 @@ bool disk_quotas(const char *path, uint64_t *bsize, uint64_t *dfree, uint64_t *d return False; for (i = 0; i < mntsize; i++) { - if (sys_stat(mnts[i].f_mntonname, &st, lp_fake_dir_create_times()) < 0) + if (sys_stat(mnts[i].f_mntonname, &st, false) < 0) return False; if (st.st_ex_dev == devno) break; -- cgit