| 4720 | } |
| 4721 | |
| 4722 | static int __noinline |
| 4723 | cache_fplookup_dot(struct cache_fpl *fpl) |
| 4724 | { |
| 4725 | int error; |
| 4726 | |
| 4727 | MPASS(!seqc_in_modify(fpl->dvp_seqc)); |
| 4728 | /* |
| 4729 | * Just re-assign the value. seqc will be checked later for the first |
| 4730 | * non-dot path component in line and/or before deciding to return the |
| 4731 | * vnode. |
| 4732 | */ |
| 4733 | fpl->tvp = fpl->dvp; |
| 4734 | fpl->tvp_seqc = fpl->dvp_seqc; |
| 4735 | |
| 4736 | counter_u64_add(dothits, 1); |
| 4737 | SDT_PROBE3(vfs, namecache, lookup, hit, fpl->dvp, ".", fpl->dvp); |
| 4738 | |
| 4739 | error = 0; |
| 4740 | if (cache_fplookup_is_mp(fpl)) { |
| 4741 | error = cache_fplookup_cross_mount(fpl); |
| 4742 | } |
| 4743 | return (error); |
| 4744 | } |
| 4745 | |
| 4746 | static int __noinline |
| 4747 | cache_fplookup_dotdot(struct cache_fpl *fpl) |
no test coverage detected