mirror of
https://github.com/freebsd/freebsd-src.git
synced 2024-11-28 04:43:32 +00:00
Call getmntinfo with MNT_NOWAIT to avoid hanging if any NFS servers
are down. Avoid trying to send RPCs to the pidXXX@machine names used in the special amd(8) mounts. PR: bin/6183 Submitted by: Petr Lampa <lampa@fee.vutbr.cz>
This commit is contained in:
parent
86a7fd100f
commit
ab5ff6a601
Notes:
svn2git
2020-12-20 02:59:44 +00:00
svn path=/head/; revision=97764
@ -449,7 +449,7 @@ getprivs(long id, int quotatype)
|
||||
|
||||
qup = quphead = (struct quotause *)0;
|
||||
|
||||
nfst = getmntinfo(&fst, MNT_WAIT);
|
||||
nfst = getmntinfo(&fst, MNT_NOWAIT);
|
||||
if (nfst == 0)
|
||||
errx(2, "no filesystems mounted!");
|
||||
setfsent();
|
||||
@ -597,6 +597,13 @@ getnfsquota(struct statfs *fst, struct quotause *qup, long id, int quotatype)
|
||||
return (0);
|
||||
}
|
||||
|
||||
/* Avoid attempting the RPC for special amd(8) filesystems. */
|
||||
if (strncmp(fst->f_mntfromname, "pid", 3) == 0 &&
|
||||
strchr(fst->f_mntfromname, '@') != NULL) {
|
||||
*cp = ':';
|
||||
return (0);
|
||||
}
|
||||
|
||||
gq_args.gqa_pathp = cp + 1;
|
||||
gq_args.gqa_uid = id;
|
||||
if (callaurpc(fst->f_mntfromname, RQUOTAPROG, RQUOTAVERS,
|
||||
|
Loading…
Reference in New Issue
Block a user