aboutsummaryrefslogtreecommitdiff
path: root/sys/ufs/ffs/ffs_suspend.c
diff options
context:
space:
mode:
Diffstat (limited to 'sys/ufs/ffs/ffs_suspend.c')
-rw-r--r--sys/ufs/ffs/ffs_suspend.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/sys/ufs/ffs/ffs_suspend.c b/sys/ufs/ffs/ffs_suspend.c
index e23e12cc8be4..3afbab82cba5 100644
--- a/sys/ufs/ffs/ffs_suspend.c
+++ b/sys/ufs/ffs/ffs_suspend.c
@@ -138,7 +138,8 @@ ffs_susp_rdwr(struct cdev *dev, struct uio *uio, int ioflag)
NOCRED, &bp);
if (error != 0)
goto out;
- if (uio->uio_rw == UIO_WRITE) {
+ switch (uio->uio_rw) {
+ case UIO_WRITE:
error = copyin(base, bp->b_data, len);
if (error != 0) {
bp->b_flags |= B_INVAL | B_NOCACHE;
@@ -148,11 +149,13 @@ ffs_susp_rdwr(struct cdev *dev, struct uio *uio, int ioflag)
error = bwrite(bp);
if (error != 0)
goto out;
- } else {
+ break;
+ case UIO_READ:
error = copyout(bp->b_data, base, len);
brelse(bp);
if (error != 0)
goto out;
+ break;
}
uio->uio_iov[i].iov_base =
(char *)uio->uio_iov[i].iov_base + len;