Displaying 8 results from an estimated 8 matches for "ocfs2_direct_io_get_block".
Did you mean:
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...
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)ib...
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_resu...
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