sb_start_pagefault(inode->i_sb);
- ret = gfs2_qa_get(ip);
- if (ret)
- goto out;
-
gfs2_holder_init(ip->i_gl, LM_ST_EXCLUSIVE, 0, &gh);
ret = gfs2_glock_nq(&gh);
if (ret)
out_unlock:
gfs2_glock_dq(&gh);
out_uninit:
- gfs2_qa_put(ip);
gfs2_holder_uninit(&gh);
if (ret == 0) {
set_page_dirty(page);
wait_for_stable_page(page);
}
-out:
sb_end_pagefault(inode->i_sb);
return block_page_mkwrite_return(ret);
}
struct gfs2_inode *ip = GFS2_I(inode);
ssize_t ret;
- ret = gfs2_qa_get(ip);
- if (ret)
- return ret;
-
gfs2_size_hint(file, iocb->ki_pos, iov_iter_count(from));
if (iocb->ki_flags & IOCB_APPEND) {
ret = gfs2_glock_nq_init(ip->i_gl, LM_ST_SHARED, 0, &gh);
if (ret)
- goto out;
+ return ret;
gfs2_glock_dq_uninit(&gh);
}
out_unlock:
inode_unlock(inode);
-out:
- gfs2_qa_put(ip);
return ret;
}
if (mode & FALLOC_FL_PUNCH_HOLE) {
ret = __gfs2_punch_hole(file, offset, len);
} else {
- ret = gfs2_qa_get(ip);
- if (ret)
- goto out_putw;
-
ret = __gfs2_fallocate(file, mode, offset, len);
-
if (ret)
gfs2_rs_deltree(&ip->i_res);
- gfs2_qa_put(ip);
}
-out_putw:
put_write_access(inode);
out_unlock:
gfs2_glock_dq(&gh);
struct file *out, loff_t *ppos,
size_t len, unsigned int flags)
{
- int error;
- struct gfs2_inode *ip = GFS2_I(out->f_mapping->host);
ssize_t ret;
- error = gfs2_qa_get(ip);
- if (error)
- return (ssize_t)error;
-
gfs2_size_hint(out, *ppos, len);
ret = iter_file_splice_write(pipe, out, ppos, len, flags);
- gfs2_qa_put(ip);
return ret;
}