svn commit: r188598 - projects/quota64/lib/libutil
Kirk McKusick
mckusick at FreeBSD.org
Fri Feb 13 11:57:00 PST 2009
Author: mckusick
Date: Fri Feb 13 19:56:59 2009
New Revision: 188598
URL: http://svn.freebsd.org/changeset/base/188598
Log:
Make hasquota thread safe.
Modified:
projects/quota64/lib/libutil/libutil.h
projects/quota64/lib/libutil/quotafile.c
Modified: projects/quota64/lib/libutil/libutil.h
==============================================================================
--- projects/quota64/lib/libutil/libutil.h Fri Feb 13 19:49:51 2009 (r188597)
+++ projects/quota64/lib/libutil/libutil.h Fri Feb 13 19:56:59 2009 (r188598)
@@ -148,7 +148,7 @@ struct quotafile *quota_create(const cha
void quota_close(struct quotafile *);
int quota_read(struct quotafile *, struct dqblk *, int);
int quota_write(struct quotafile *, const struct dqblk *, int);
-int hasquota(struct fstab *, int, char **);
+int hasquota(struct fstab *, int, char *, int);
#endif
__END_DECLS
Modified: projects/quota64/lib/libutil/quotafile.c
==============================================================================
--- projects/quota64/lib/libutil/quotafile.c Fri Feb 13 19:49:51 2009 (r188597)
+++ projects/quota64/lib/libutil/quotafile.c Fri Feb 13 19:56:59 2009 (r188598)
@@ -280,13 +280,13 @@ quota_write(struct quotafile *qf, const
* Check to see if a particular quota is to be enabled.
*/
int
-hasquota(struct fstab *fs, int type, char **qfnamep)
+hasquota(struct fstab *fs, int type, char *qfnamep, int qfbufsize)
{
char *opt;
char *cp;
struct statfs sfb;
+ char buf[BUFSIZ];
static char initname, usrname[100], grpname[100];
- static char buf[BUFSIZ];
if (!initname) {
(void)snprintf(usrname, sizeof(usrname), "%s%s",
@@ -306,13 +306,6 @@ hasquota(struct fstab *fs, int type, cha
}
if (!opt)
return (0);
- if (cp)
- *qfnamep = cp;
- else {
- (void)snprintf(buf, sizeof(buf), "%s/%s.%s", fs->fs_file,
- QUOTAFILENAME, qfextension[type]);
- *qfnamep = buf;
- }
/*
* Ensure that the filesystem is mounted.
*/
@@ -320,5 +313,11 @@ hasquota(struct fstab *fs, int type, cha
strcmp(fs->fs_file, sfb.f_mntonname)) {
return (0);
}
+ if (cp) {
+ strncpy(qfnamep, cp, qfbufsize);
+ } else {
+ (void)snprintf(qfnamep, qfbufsize, "%s/%s.%s", fs->fs_file,
+ QUOTAFILENAME, qfextension[type]);
+ }
return (1);
}
More information about the svn-src-projects
mailing list