cache: assorted tidy ups
This commit is contained in:
parent
18bd02e2ce
commit
0439b00ea8
Notes:
svn2git
2020-12-20 02:59:44 +00:00
svn path=/head/; revision=363858
@ -1513,7 +1513,7 @@ cache_lookup(struct vnode *dvp, struct vnode **vpp, struct componentname *cnp,
|
||||
}
|
||||
vs = vget_prep_smr(*vpp);
|
||||
vfs_smr_exit();
|
||||
if (vs == VGET_NONE) {
|
||||
if (__predict_false(vs == VGET_NONE)) {
|
||||
*vpp = NULL;
|
||||
goto retry;
|
||||
}
|
||||
@ -3199,7 +3199,7 @@ cache_fplookup_partial_setup(struct cache_fpl *fpl)
|
||||
dvp_seqc = fpl->dvp_seqc;
|
||||
|
||||
dvs = vget_prep_smr(dvp);
|
||||
if (dvs == VGET_NONE) {
|
||||
if (__predict_false(dvs == VGET_NONE)) {
|
||||
cache_fpl_smr_exit(fpl);
|
||||
return (cache_fpl_aborted(fpl));
|
||||
}
|
||||
@ -3220,6 +3220,7 @@ cache_fplookup_partial_setup(struct cache_fpl *fpl)
|
||||
}
|
||||
|
||||
fpl->ndp->ni_startdir = dvp;
|
||||
|
||||
return (0);
|
||||
}
|
||||
|
||||
@ -3258,8 +3259,8 @@ cache_fplookup_final_child(struct cache_fpl *fpl, enum vgetstate tvs)
|
||||
static int __noinline
|
||||
cache_fplookup_final_withparent(struct cache_fpl *fpl)
|
||||
{
|
||||
enum vgetstate dvs, tvs;
|
||||
struct componentname *cnp;
|
||||
enum vgetstate dvs, tvs;
|
||||
struct vnode *dvp, *tvp;
|
||||
seqc_t dvp_seqc, tvp_seqc;
|
||||
int error;
|
||||
@ -3276,11 +3277,11 @@ cache_fplookup_final_withparent(struct cache_fpl *fpl)
|
||||
* This is less efficient than it can be for simplicity.
|
||||
*/
|
||||
dvs = vget_prep_smr(dvp);
|
||||
if (dvs == VGET_NONE) {
|
||||
if (__predict_false(dvs == VGET_NONE)) {
|
||||
return (cache_fpl_aborted(fpl));
|
||||
}
|
||||
tvs = vget_prep_smr(tvp);
|
||||
if (tvs == VGET_NONE) {
|
||||
if (__predict_false(tvs == VGET_NONE)) {
|
||||
cache_fpl_smr_exit(fpl);
|
||||
vget_abort(dvp, dvs);
|
||||
return (cache_fpl_aborted(fpl));
|
||||
@ -3342,7 +3343,7 @@ cache_fplookup_final(struct cache_fpl *fpl)
|
||||
return (cache_fplookup_final_withparent(fpl));
|
||||
|
||||
tvs = vget_prep_smr(tvp);
|
||||
if (tvs == VGET_NONE) {
|
||||
if (__predict_false(tvs == VGET_NONE)) {
|
||||
return (cache_fpl_partial(fpl));
|
||||
}
|
||||
|
||||
@ -3586,7 +3587,7 @@ cache_fplookup_parse(struct cache_fpl *fpl)
|
||||
for (cp = cnp->cn_nameptr; *cp != 0 && *cp != '/'; cp++)
|
||||
continue;
|
||||
cnp->cn_namelen = cp - cnp->cn_nameptr;
|
||||
if (cnp->cn_namelen > NAME_MAX) {
|
||||
if (__predict_false(cnp->cn_namelen > NAME_MAX)) {
|
||||
cache_fpl_smr_exit(fpl);
|
||||
return (cache_fpl_handled(fpl, ENAMETOOLONG));
|
||||
}
|
||||
@ -3779,6 +3780,7 @@ cache_fplookup_impl(struct vnode *dvp, struct cache_fpl *fpl)
|
||||
cache_fpl_smr_exit(fpl);
|
||||
return (CACHE_FPL_FAILED);
|
||||
case CACHE_FPL_STATUS_HANDLED:
|
||||
MPASS(error != CACHE_FPL_FAILED);
|
||||
cache_fpl_smr_assert_not_entered(fpl);
|
||||
if (__predict_false(error != 0)) {
|
||||
ndp->ni_dvp = NULL;
|
||||
|
Loading…
Reference in New Issue
Block a user