Changeset View
Changeset View
Standalone View
Standalone View
kern/vfs_vnops.c
Show First 20 Lines • Show All 2,269 Lines • ▼ Show 20 Lines | if (noneg && | ||||
break; | break; | ||||
} | } | ||||
offset += vattr.va_size; | offset += vattr.va_size; | ||||
break; | break; | ||||
case L_SET: | case L_SET: | ||||
break; | break; | ||||
case SEEK_DATA: | case SEEK_DATA: | ||||
error = fo_ioctl(fp, FIOSEEKDATA, &offset, cred, td); | error = fo_ioctl(fp, FIOSEEKDATA, &offset, cred, td); | ||||
if (error != 0 && error != ENXIO && error != EBADF && | |||||
error != EOVERFLOW && error != ESPIPE) | |||||
error = EINVAL; | |||||
break; | break; | ||||
case SEEK_HOLE: | case SEEK_HOLE: | ||||
error = fo_ioctl(fp, FIOSEEKHOLE, &offset, cred, td); | error = fo_ioctl(fp, FIOSEEKHOLE, &offset, cred, td); | ||||
if (error != 0 && error != ENXIO && error != EBADF && | |||||
error != EOVERFLOW && error != ESPIPE) | |||||
error = EINVAL; | |||||
break; | break; | ||||
default: | default: | ||||
error = EINVAL; | error = EINVAL; | ||||
} | } | ||||
if (error == 0 && noneg && offset < 0) | if (error == 0 && noneg && offset < 0) | ||||
error = EINVAL; | error = EINVAL; | ||||
if (error != 0) | if (error != 0) | ||||
goto drop; | goto drop; | ||||
▲ Show 20 Lines • Show All 802 Lines • Show Last 20 Lines |