Hello. >(They access the block device directly, completely >bypassing the page cache so you are breaking cache coherency and are 100% >broken by design.) Oh... I thought that start from 2.4.x there are no separate implementation of working with blocks and pages, when you read block, kernel read whole page, am I wrong? > They only way to help you > is to see your whole file system code If we need some handhold for discussion, lets talk about minix v.1 (my file system derive from this code). Lets suppose I want make algorigth of allocation blocks in fs/minix/bitmap.c: minix_new_block more inteligent. I should say that minix code use sb_bread/brelse and work with pages (for example fs/minix/dir.c). So instead of allocation one additional block, I want "realloc" blocks, so all file will occupy several consecutive blocks. And we stop on such code bh->b_blocknr = newblk; unmap_underlying_metadata(bh->b_bdev, bh->b_blocknr); mark_buffer_dirty (bh); And question how should I get this _bh_, if I can not use sb_bread? -- Kernelnewbies: Help each other learn about the Linux kernel. Archive: http://mail.nl.linux.org/kernelnewbies/ FAQ: http://kernelnewbies.org/faq/