diff options
| author | Tao Ma <tao.ma@oracle.com> | 2010-08-11 22:27:14 -0400 |
|---|---|---|
| committer | Tao Ma <tao.ma@oracle.com> | 2010-08-11 22:39:52 -0400 |
| commit | b890823635e022467b924e3d9da8c5166a4e349c (patch) | |
| tree | 0fbd6c0051c51b0d03df82b8c7203dfc868b383a | |
| parent | 0378da0fda6edf5aaffda6f1248a78986bd955b5 (diff) | |
ocfs2: pass struct file* to ocfs2_prepare_inode_for_write.
struct file * has file_ra_state to store the readahead state
and data. So pass this to ocfs2_prepare_inode_for_write. so
that it can be used in ocfs2_refcount_cow.
Signed-off-by: Tao Ma <tao.ma@oracle.com>
| -rw-r--r-- | fs/ocfs2/file.c | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/fs/ocfs2/file.c b/fs/ocfs2/file.c index 81296b4e3646..5920159a421f 100644 --- a/fs/ocfs2/file.c +++ b/fs/ocfs2/file.c | |||
| @@ -2053,6 +2053,7 @@ out: | |||
| 2053 | } | 2053 | } |
| 2054 | 2054 | ||
| 2055 | static int ocfs2_prepare_inode_for_refcount(struct inode *inode, | 2055 | static int ocfs2_prepare_inode_for_refcount(struct inode *inode, |
| 2056 | struct file *file, | ||
| 2056 | loff_t pos, size_t count, | 2057 | loff_t pos, size_t count, |
| 2057 | int *meta_level) | 2058 | int *meta_level) |
| 2058 | { | 2059 | { |
| @@ -2078,7 +2079,7 @@ out: | |||
| 2078 | return ret; | 2079 | return ret; |
| 2079 | } | 2080 | } |
| 2080 | 2081 | ||
| 2081 | static int ocfs2_prepare_inode_for_write(struct dentry *dentry, | 2082 | static int ocfs2_prepare_inode_for_write(struct file *file, |
| 2082 | loff_t *ppos, | 2083 | loff_t *ppos, |
| 2083 | size_t count, | 2084 | size_t count, |
| 2084 | int appending, | 2085 | int appending, |
| @@ -2086,6 +2087,7 @@ static int ocfs2_prepare_inode_for_write(struct dentry *dentry, | |||
| 2086 | int *has_refcount) | 2087 | int *has_refcount) |
| 2087 | { | 2088 | { |
| 2088 | int ret = 0, meta_level = 0; | 2089 | int ret = 0, meta_level = 0; |
| 2090 | struct dentry *dentry = file->f_path.dentry; | ||
| 2089 | struct inode *inode = dentry->d_inode; | 2091 | struct inode *inode = dentry->d_inode; |
| 2090 | loff_t saved_pos, end; | 2092 | loff_t saved_pos, end; |
| 2091 | 2093 | ||
| @@ -2141,6 +2143,7 @@ static int ocfs2_prepare_inode_for_write(struct dentry *dentry, | |||
| 2141 | meta_level = -1; | 2143 | meta_level = -1; |
| 2142 | 2144 | ||
| 2143 | ret = ocfs2_prepare_inode_for_refcount(inode, | 2145 | ret = ocfs2_prepare_inode_for_refcount(inode, |
| 2146 | file, | ||
| 2144 | saved_pos, | 2147 | saved_pos, |
| 2145 | count, | 2148 | count, |
| 2146 | &meta_level); | 2149 | &meta_level); |
| @@ -2255,7 +2258,7 @@ relock: | |||
| 2255 | } | 2258 | } |
| 2256 | 2259 | ||
| 2257 | can_do_direct = direct_io; | 2260 | can_do_direct = direct_io; |
| 2258 | ret = ocfs2_prepare_inode_for_write(file->f_path.dentry, ppos, | 2261 | ret = ocfs2_prepare_inode_for_write(file, ppos, |
| 2259 | iocb->ki_left, appending, | 2262 | iocb->ki_left, appending, |
| 2260 | &can_do_direct, &has_refcount); | 2263 | &can_do_direct, &has_refcount); |
| 2261 | if (ret < 0) { | 2264 | if (ret < 0) { |
| @@ -2385,7 +2388,7 @@ static int ocfs2_splice_to_file(struct pipe_inode_info *pipe, | |||
| 2385 | { | 2388 | { |
| 2386 | int ret; | 2389 | int ret; |
| 2387 | 2390 | ||
| 2388 | ret = ocfs2_prepare_inode_for_write(out->f_path.dentry, &sd->pos, | 2391 | ret = ocfs2_prepare_inode_for_write(out, &sd->pos, |
| 2389 | sd->total_len, 0, NULL, NULL); | 2392 | sd->total_len, 0, NULL, NULL); |
| 2390 | if (ret < 0) { | 2393 | if (ret < 0) { |
| 2391 | mlog_errno(ret); | 2394 | mlog_errno(ret); |
