X-Git-Url: https://err.no/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=fs%2Focfs2%2Ffile.c;h=eaf33caa0a1f8b73dad142387216bd837dda5add;hb=497992917edf03994088ec8757b8262e1d9f568a;hp=72ae9e3306f40dd6fc648e1117de7b061b52244f;hpb=123656d4cc8c946f578ebd18c2050f5251720428;p=linux-2.6 diff --git a/fs/ocfs2/file.c b/fs/ocfs2/file.c index 72ae9e3306..eaf33caa0a 100644 --- a/fs/ocfs2/file.c +++ b/fs/ocfs2/file.c @@ -23,6 +23,7 @@ * Boston, MA 021110-1307, USA. */ +#include #include #include #include @@ -492,7 +493,7 @@ restart_all: } /* blocks peope in read/write from reading our allocation - * until we're done changing it. We depend on i_sem to block + * until we're done changing it. We depend on i_mutex to block * other extend/truncate calls while we're here. Ordering wrt * start_trans is important here -- always do it before! */ down_write(&OCFS2_I(inode)->ip_alloc_sem); @@ -958,8 +959,8 @@ static ssize_t ocfs2_file_aio_write(struct kiocb *iocb, filp->f_flags &= ~O_DIRECT; #endif - down(&inode->i_sem); - /* to match setattr's i_sem -> i_alloc_sem -> rw_lock ordering */ + mutex_lock(&inode->i_mutex); + /* to match setattr's i_mutex -> i_alloc_sem -> rw_lock ordering */ if (filp->f_flags & O_DIRECT) { have_alloc_sem = 1; down_read(&inode->i_alloc_sem); @@ -1123,7 +1124,7 @@ out: up_read(&inode->i_alloc_sem); if (rw_level != -1) ocfs2_rw_unlock(inode, rw_level); - up(&inode->i_sem); + mutex_unlock(&inode->i_mutex); mlog_exit(ret); return ret;