fs/buffer.c: make block-size be per-page and protected by the page lock
authorLinus Torvalds <torvalds@linux-foundation.org>
Thu, 29 Nov 2012 18:21:43 +0000 (10:21 -0800)
committerLinus Torvalds <torvalds@linux-foundation.org>
Thu, 29 Nov 2012 18:47:20 +0000 (10:47 -0800)
commit45bce8f3e3436bbe2e03dd2b076abdce79ffabb7
tree554d8cf7254eb58210e98f2a1053f531f68f024b
parent9489e9dcae718d5fde988e4a684a0f55b5f94d17
fs/buffer.c: make block-size be per-page and protected by the page lock

This makes the buffer size handling be a per-page thing, which allows us
to not have to worry about locking too much when changing the buffer
size.  If a page doesn't have buffers, we still need to read the block
size from the inode, but we can do that with ACCESS_ONCE(), so that even
if the size is changing, we get a consistent value.

This doesn't convert all functions - many of the buffer functions are
used purely by filesystems, which in turn results in the buffer size
being fixed at mount-time.  So they don't have the same consistency
issues that the raw device access can have.

Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
fs/buffer.c