From 0e041f5b170c02facf9a0b1c7e333c817f146e9c Mon Sep 17 00:00:00 2001 From: Steven Whitehouse Date: Wed, 5 Jul 2006 08:24:34 -0400 Subject: [PATCH] --- yaml --- r: 38734 b: refs/heads/master c: faac9bd0e3ce7cb0572ec66e0a426cacf6afa970 h: refs/heads/master v: v3 --- [refs] | 2 +- trunk/fs/gfs2/ops_address.c | 10 +++++++--- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/[refs] b/[refs] index c6a00e1f4d59..15015993b72e 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: b0dd9308b703310e9a988df70f6ed3e87cb55655 +refs/heads/master: faac9bd0e3ce7cb0572ec66e0a426cacf6afa970 diff --git a/trunk/fs/gfs2/ops_address.c b/trunk/fs/gfs2/ops_address.c index 26db3335d4b3..27ce30148e69 100644 --- a/trunk/fs/gfs2/ops_address.c +++ b/trunk/fs/gfs2/ops_address.c @@ -642,6 +642,7 @@ static ssize_t gfs2_direct_IO(int rw, struct kiocb *iocb, struct inode *inode = file->f_mapping->host; struct gfs2_inode *ip = GFS2_I(inode); struct gfs2_sbd *sdp = GFS2_SB(inode); + int ret; if (rw == WRITE) return gfs2_direct_IO_write(iocb, iov, offset, nr_segs); @@ -650,9 +651,12 @@ static ssize_t gfs2_direct_IO(int rw, struct kiocb *iocb, gfs2_assert_warn(sdp, !gfs2_is_stuffed(ip))) return -EINVAL; - return __blockdev_direct_IO(READ, iocb, inode, inode->i_sb->s_bdev, iov, - offset, nr_segs, gfs2_get_block, NULL, - DIO_OWN_LOCKING); + mutex_lock(&inode->i_mutex); + ret = __blockdev_direct_IO(READ, iocb, inode, inode->i_sb->s_bdev, iov, + offset, nr_segs, gfs2_get_block, NULL, + DIO_OWN_LOCKING); + mutex_unlock(&inode->i_mutex); + return ret; } const struct address_space_operations gfs2_file_aops = {