projects
/
cascardo
/
linux.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Merge branch 'tracing-fixes-for-linus' of git://git.kernel.org/pub/scm/linux/kernel...
[cascardo/linux.git]
/
fs
/
ocfs2
/
file.c
diff --git
a/fs/ocfs2/file.c
b/fs/ocfs2/file.c
index
7efe937
..
e2570a3
100644
(file)
--- a/
fs/ocfs2/file.c
+++ b/
fs/ocfs2/file.c
@@
-247,8
+247,8
@@
int ocfs2_update_inode_atime(struct inode *inode,
mlog_entry_void();
handle = ocfs2_start_trans(osb, OCFS2_INODE_UPDATE_CREDITS);
mlog_entry_void();
handle = ocfs2_start_trans(osb, OCFS2_INODE_UPDATE_CREDITS);
- if (
handle == NULL
) {
- ret =
-ENOMEM
;
+ if (
IS_ERR(handle)
) {
+ ret =
PTR_ERR(handle)
;
mlog_errno(ret);
goto out;
}
mlog_errno(ret);
goto out;
}
@@
-312,8
+312,8
@@
static int ocfs2_simple_size_update(struct inode *inode,
handle_t *handle = NULL;
handle = ocfs2_start_trans(osb, OCFS2_INODE_UPDATE_CREDITS);
handle_t *handle = NULL;
handle = ocfs2_start_trans(osb, OCFS2_INODE_UPDATE_CREDITS);
- if (
handle == NULL
) {
- ret =
-ENOMEM
;
+ if (
IS_ERR(handle)
) {
+ ret =
PTR_ERR(handle)
;
mlog_errno(ret);
goto out;
}
mlog_errno(ret);
goto out;
}
@@
-1055,8
+1055,8
@@
static int __ocfs2_write_remove_suid(struct inode *inode,
(unsigned long long)OCFS2_I(inode)->ip_blkno, inode->i_mode);
handle = ocfs2_start_trans(osb, OCFS2_INODE_UPDATE_CREDITS);
(unsigned long long)OCFS2_I(inode)->ip_blkno, inode->i_mode);
handle = ocfs2_start_trans(osb, OCFS2_INODE_UPDATE_CREDITS);
- if (
handle == NULL
) {
- ret =
-ENOMEM
;
+ if (
IS_ERR(handle)
) {
+ ret =
PTR_ERR(handle)
;
mlog_errno(ret);
goto out;
}
mlog_errno(ret);
goto out;
}
@@
-1259,8
+1259,8
@@
static int __ocfs2_remove_inode_range(struct inode *inode,
}
handle = ocfs2_start_trans(osb, OCFS2_REMOVE_EXTENT_CREDITS);
}
handle = ocfs2_start_trans(osb, OCFS2_REMOVE_EXTENT_CREDITS);
- if (
handle == NULL
) {
- ret =
-ENOMEM
;
+ if (
IS_ERR(handle)
) {
+ ret =
PTR_ERR(handle)
;
mlog_errno(ret);
goto out;
}
mlog_errno(ret);
goto out;
}
@@
-1352,8
+1352,8
@@
static int ocfs2_zero_partial_clusters(struct inode *inode,
goto out;
handle = ocfs2_start_trans(osb, OCFS2_INODE_UPDATE_CREDITS);
goto out;
handle = ocfs2_start_trans(osb, OCFS2_INODE_UPDATE_CREDITS);
- if (
handle == NULL
) {
- ret =
-ENOMEM
;
+ if (
IS_ERR(handle)
) {
+ ret =
PTR_ERR(handle)
;
mlog_errno(ret);
goto out;
}
mlog_errno(ret);
goto out;
}
@@
-1866,6
+1866,13
@@
relock:
written = generic_file_direct_write(iocb, iov, &nr_segs, *ppos,
ppos, count, ocount);
if (written < 0) {
written = generic_file_direct_write(iocb, iov, &nr_segs, *ppos,
ppos, count, ocount);
if (written < 0) {
+ /*
+ * direct write may have instantiated a few
+ * blocks outside i_size. Trim these off again.
+ * Don't need i_size_read because we hold i_mutex.
+ */
+ if (*ppos + count > inode->i_size)
+ vmtruncate(inode, inode->i_size);
ret = written;
goto out_dio;
}
ret = written;
goto out_dio;
}