diff --git a/fs/afs/write.c b/fs/afs/write.c
index 67ae4dbf66b33793c04ed1b1763a688c7d81e480..28f37516c12600e682a1c78365bc67af6e6372f5 100644
--- a/fs/afs/write.c
+++ b/fs/afs/write.c
@@ -395,8 +395,9 @@ static int afs_write_back_from_locked_page(struct afs_writeback *wb,
 		if (n == 0)
 			goto no_more;
 		if (pages[0]->index != start) {
-			for (n--; n >= 0; n--)
-				put_page(pages[n]);
+			do {
+				put_page(pages[--n]);
+			} while (n > 0);
 			goto no_more;
 		}