search for: ocfs2_direct_io_get_blocks

Displaying 8 results from an estimated 8 matches for "ocfs2_direct_io_get_blocks".

2008 Sep 02
1
[PATCH] ocfs2: Fix a bug in direct IO read.
...with bs=4k cs=4k and nosparse. 2. create a small file(say less than 100 bytes) and we will create the file which is allocated 1 cluster. 3. read 8196 bytes from the kernel using O_DIRECT which exceeds the limit. 4. The ocfs2 volume becomes read-only and dmesg shows: OCFS2: ERROR (device sda13): ocfs2_direct_IO_get_blocks: Inode 66010 has a hole at block 1 File system is now read-only due to the potential of on-disk corruption. Please run fsck.ocfs2 once the file system is unmounted. I have checked the code of 1.2 and copy the read check there. And actually I think even with sparse-enabled, this read check is ok....
2009 Jul 21
1
[PATCH 1/1] ocfs2: adds mlogs to aops.c -V2
..._entry("(block = %llu)\n", (unsigned long long)block); + mlog_entry("(0x%p, %llu)\n", mapping, (unsigned long long)block); /* We don't need to lock journal system files, since they aren't * accessed concurrently from multiple nodes. @@ -555,6 +589,10 @@ static int ocfs2_direct_IO_get_blocks(struct inode *inode, sector_t iblock, unsigned char blocksize_bits = inode->i_sb->s_blocksize_bits; unsigned long max_blocks = bh_result->b_size >> inode->i_blkbits; + mlog_entry("(%llu, %llu, 0x%p, %d)\n", + (unsigned long long)OCFS2_I(inode)->ip_blkno, +...
2008 Jun 04
1
OCFS2 and direct-io writes
...appen when the extents had previously been allocated with a RESVSP. It only to a couple of minor changes: file.c:ocfs2_prepare_inode_for_write() Don't disable direct_io if file is growing. file.c:ocfs2_check_range_for_holes() Don't treat unwritten extents as holes. aops.c:ocfs2_direct_IO_get_blocks() Map unwritten extents if they exists. With these changes, a single/local OCFS2 filesystem will allow me to write/create files using large, direct-io. All the write requests go straight through to the storage. And the write performance is very close to that of XFS. But, in a distributed e...
2009 Jul 13
1
[PATCH 1/1] adds mlogs to aops.c
...g_entry("(block = %llu)\n", (unsigned long long)block); + mlog_entry("(0x%p, %llu)\n", mapping, (unsigned long long)block); /* We don't need to lock journal system files, since they aren't * accessed concurrently from multiple nodes. @@ -555,6 +586,9 @@ static int ocfs2_direct_IO_get_blocks(struct inode *inode, sector_t iblock, unsigned char blocksize_bits = inode->i_sb->s_blocksize_bits; unsigned long max_blocks = bh_result->b_size >> inode->i_blkbits; + mlog_entry("(%llu, %llu, 0x%p, %d)\n", OCFS2_I(inode)->ip_blkno, + (unsigned long long)ibl...
2009 Jul 21
1
(no subject)
..._entry("(block = %llu)\n", (unsigned long long)block); + mlog_entry("(0x%p, %llu)\n", mapping, (unsigned long long)block); /* We don't need to lock journal system files, since they aren't * accessed concurrently from multiple nodes. @@ -555,6 +589,10 @@ static int ocfs2_direct_IO_get_blocks(struct inode *inode, sector_t iblock, unsigned char blocksize_bits = inode->i_sb->s_blocksize_bits; unsigned long max_blocks = bh_result->b_size >> inode->i_blkbits; + mlog_entry("(%llu, %llu, 0x%p, %d)\n", + (unsigned long long)OCFS2_I(inode)->ip_blkno, +...
2013 Oct 21
1
Kernel BUG in ocfs2_get_clusters_nocache
...fffa028b2be>] ocfs2_get_clusters+0x23e/0x3b0 [ocfs2] [Fri Oct 18 10:52:28 2013] [<ffffffff8109a9ad>] ? sched_clock_cpu+0xbd/0x110 [Fri Oct 18 10:52:28 2013] [<ffffffffa028b48a>] ocfs2_extent_map_get_blocks+0x5a/0x190 [ocfs2] [Fri Oct 18 10:52:28 2013] [<ffffffffa026eb3a>] ocfs2_direct_IO_get_blocks+0x5a/0x160 [ocfs2] [Fri Oct 18 10:52:28 2013] [<ffffffff811c87c1>] ? inode_dio_done+0x31/0x40 [Fri Oct 18 10:52:28 2013] [<ffffffff811ea90c>] do_blockdev_direct_IO+0xdfc/0x1fb0 [Fri Oct 18 10:52:28 2013] [<ffffffffa026eae0>] ? ocfs2_dio_end_io+0x110/0x110 [ocfs2] [Fri Oct 18...
2006 Dec 29
3
[git patches] ocfs2 fixes
...s2_should_update_atime() ocfs2: always unmap in ocfs2_data_convert_worker() Zhen Wei: ocfs2: export heartbeat thread pid via configfs diff --git a/fs/ocfs2/aops.c b/fs/ocfs2/aops.c index ef6cd30..93628b0 100644 --- a/fs/ocfs2/aops.c +++ b/fs/ocfs2/aops.c @@ -540,8 +540,7 @@ static int ocfs2_direct_IO_get_blocks(st struct buffer_head *bh_result, int create) { int ret; - u64 vbo_max; /* file offset, max_blocks from iblock */ - u64 p_blkno; + u64 p_blkno, inode_blocks; int contig_blocks; unsigned char blocksize_bits = inode->i_sb->s_blocksize_bits; unsigned long max_blocks = bh_resul...
2010 May 07
6
[PATCH 1/5] fs: allow short direct-io reads to be completed via buffered IO V2
V1->V2: Check to see if our current ppos is >= i_size after a short DIO read, just in case it was actually a short read and we need to just return. This is similar to what already happens in the write case. If we have a short read while doing O_DIRECT, instead of just returning, fallthrough and try to read the rest via buffered IO. BTRFS needs this because if we encounter a compressed or