Error in __bread reading a 4K block from a SATA device

2007-11-02 Thread Thanos McAtos
Hello, I'm trying to read a 4KB block using __bread from a SATA device but I get the following error: __find_get_block_slow() failed. block=1, b_blocknr=0 b_state=0x0029, b_size=4096 If I try to read a 2K block (which is the hard sector size of the device), it works fine. Kernel version is

Block device request queue processing question

2007-06-10 Thread mcatos
I am developing a stacking block driver and so far the driver was accepting requests using the 'make_request' function (without a queue). When I switched to using a request queue, I noticed that the driver received much more reuquests in a single call, which is very good for me. The problem is th

Re: Error using the buffer cache

2007-05-04 Thread mcatos
I have isolated the problem a little bit. Here's what I do: struct buffer_head *bh; sector_t sector = 0; bh = __bread(bdev, sector, bdev_get_queue(bdev)->hardsect_size); brelse(bh); sector++; bh = __bread(bdev, sector, bdev_get_queue(bdev)->hardsect_size); brelse(bh); And I get this error: BUG:

Error using the buffer cache

2007-05-03 Thread mcatos
I've written a module that acts as a cache for fixed size objects but I'm getting a soft lockup using the buffer cache as backing storage. I've attached the code that reproduces the error. You need to supply the module with a valid block device, i.e. insmod disk_cache.ko devname="/dev/hda2". Th