B_FREE
se_t se = (flags & (B_INVAL | B_FREE)) ? SE_EXCL : SE_SHARED;
ASSERT(fl == B_FREE || fl == B_INVAL);
if (fl == B_FREE)
(flags & (B_INVAL | B_FREE)) ?
(flags & B_FREE) ? SE_EXCL : SE_SHARED);
ASSERT(fl == B_FREE || fl == B_INVAL);
if (fl == B_FREE)
if (fl == B_FREE)
if (fl == B_FREE) {
if (fl == B_FREE)
flags = (flags & ~B_FREE) | B_INVAL | B_FORCE;
(flags & (B_INVAL | B_FREE)) ?
(flags & B_FREE) ? SE_EXCL : SE_SHARED);
ASSERT(fl == B_FREE || fl == B_INVAL);
if (fl == B_FREE)
if (fl == B_FREE)
if (fl == B_FREE) {
if (fl == B_FREE)
flags = (flags & ~B_FREE) | B_INVAL | B_FORCE;
(flags & (B_INVAL | B_FREE)) ?
(flags & B_FREE) ? SE_EXCL : SE_SHARED);
(flags & (B_INVAL | B_FREE)) ?
(flags & B_FREE) ? SE_EXCL : SE_SHARED);
flags = (flags & ~B_FREE) | B_INVAL | B_FORCE;
(flags & (B_INVAL | B_FREE)) ?
(flags & B_FREE) ? SE_EXCL : SE_SHARED);
(flags & (B_INVAL | B_FREE)) ?
(flags & B_FREE) ? SE_EXCL : SE_SHARED);
(B_ASYNC | B_FREE), kcred, NULL);
if (flags == (B_ASYNC | B_FREE) &&
arg->a_flags = B_ASYNC | B_FREE;
(flags & (B_ASYNC | B_FREE)) == B_FREE))
(flags & (B_FREE | B_INVAL)) ?
if (flags == (B_ASYNC | B_FREE) &&
arg->a_flags = B_ASYNC | B_FREE;
err = (flags == (B_ASYNC | B_FREE) ? ENOMEM : 0);
if (flags == (B_ASYNC | B_FREE))
se = (flags & B_FREE ? SE_EXCL : SE_SHARED);
if (flags != (B_ASYNC | B_FREE) && (flags & B_INVAL) == 0 &&
(flags & (B_INVAL | B_FREE)) ?
(flags & B_FREE) ? SE_EXCL : SE_SHARED);
(void) ud_syncip(ip, B_FREE | B_ASYNC, 0);
(flags & ~(B_ASYNC|B_DONTNEED|B_FREE)) == 0) {
(flags & (B_INVAL | B_FREE)) ?
(flags & B_FREE) ? SE_EXCL : SE_SHARED);
B_ASYNC | B_FREE, cr);
(B_DONTNEED | B_FREE | B_FORCE | B_ASYNC),
B_ASYNC | B_FREE, cr);
(flags & ~(B_ASYNC|B_DONTNEED|B_FREE)) == 0) {
(flags & (B_INVAL | B_FREE)) ?
(flags & B_FREE) ? SE_EXCL : SE_SHARED);
(flags & (B_INVAL | B_FREE)) ? SE_EXCL : SE_SHARED);
(flags & B_FREE) ? SE_EXCL : SE_SHARED);
(void) VOP_PUTPAGE(vp, 0, 0, B_FREE, credp, NULL);
(void) VOP_PUTPAGE(lsp->ls_vp, 0, 0, B_FREE, credp, NULL);
VN_DISPOSE(pp, B_FREE, 0, kcred);
arg->a_flags = B_ASYNC | B_FREE;
else if ((flag) == B_FREE) \
VN_DISPOSE(pp, B_FREE, 1, kcred);
B_ASYNC | B_FREE, kcred, NULL);
bflags |= B_FREE;
(B_DONTNEED|B_FREE|B_ASYNC),
VN_DISPOSE(pp, B_FREE, 0, kcred);
behav == MADV_FREE ? B_FREE : B_INVAL, 0, kcred);
VN_DISPOSE(pp, B_FREE, 0, kcred);
VN_DISPOSE(pp, B_FREE, 0, kcred);
B_ASYNC | B_FREE, kcred, NULL);
VN_DISPOSE(pp, B_FREE, 0, kcred);
if (flags & (B_FREE | B_INVAL))
flags |= B_FREE;
} else if (flags & B_FREE ||!hat_page_is_mapped(pp)) {
VN_DISPOSE(pp, B_FREE,
ASSERT((flags & (B_INVAL | B_FREE)) ?
if ((flags & (B_INVAL | B_FREE)) && !(flags & (B_TRUNC|B_FORCE)) &&
if (flags & (B_INVAL | B_FREE)) {
} else if (flags & B_FREE) {
VN_DISPOSE(pp, B_FREE, (flags & B_DONTNEED), kcred);
if (flags & B_FREE)
!(flags & (B_INVAL | B_FREE | B_TRUNC))) {
se = (flags & (B_INVAL | B_FREE)) ? SE_EXCL : SE_SHARED;
bflags |= B_FREE;
((bp->b_flags & (B_ASYNC|B_READ|B_FREE)) == B_ASYNC)) {