diff --git a/fs/afs/super.c b/fs/afs/super.c
index 95d713074dc8130125e55da2cd4e19b693682f8f..e95fb4cb4fcd23d9c3635684171c9f1ba996a791 100644
--- a/fs/afs/super.c
+++ b/fs/afs/super.c
@@ -407,6 +407,8 @@ static int afs_validate_fc(struct fs_context *fc)
 			return PTR_ERR(volume);
 
 		ctx->volume = volume;
+		if (volume->type != AFSVL_RWVOL)
+			ctx->flock_mode = afs_flock_mode_local;
 	}
 
 	return 0;