Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 339418
b: refs/heads/master
c: fb59581
h: refs/heads/master
v: v3
  • Loading branch information
Dave Chinner authored and Ben Myers committed Nov 14, 2012
1 parent 4cbe6f3 commit 3074cf7
Show file tree
Hide file tree
Showing 7 changed files with 22 additions and 73 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: 4bc1ea6b8ddd4f2bd78944fbe5a1042ac14b1f5f
refs/heads/master: fb59581404ab7ec5075299065c22cb211a9262a9
1 change: 0 additions & 1 deletion trunk/fs/xfs/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,6 @@ xfs-y += xfs_aops.o \
xfs_file.o \
xfs_filestream.o \
xfs_fsops.o \
xfs_fs_subr.o \
xfs_globals.o \
xfs_icache.o \
xfs_ioctl.o \
Expand Down
10 changes: 4 additions & 6 deletions trunk/fs/xfs/xfs_dfrag.c
Original file line number Diff line number Diff line change
Expand Up @@ -246,12 +246,10 @@ xfs_swap_extents(
goto out_unlock;
}

if (VN_CACHED(VFS_I(tip)) != 0) {
error = xfs_flushinval_pages(tip, 0, -1,
FI_REMAPF_LOCKED);
if (error)
goto out_unlock;
}
error = -filemap_write_and_wait(VFS_I(ip)->i_mapping);
if (error)
goto out_unlock;
truncate_pagecache_range(VFS_I(ip), 0, -1);

/* Verify O_DIRECT for ftmp */
if (VN_CACHED(VFS_I(tip)) != 0) {
Expand Down
23 changes: 12 additions & 11 deletions trunk/fs/xfs/xfs_file.c
Original file line number Diff line number Diff line change
Expand Up @@ -255,15 +255,14 @@ xfs_file_aio_read(
xfs_buftarg_t *target =
XFS_IS_REALTIME_INODE(ip) ?
mp->m_rtdev_targp : mp->m_ddev_targp;
if ((iocb->ki_pos & target->bt_smask) ||
(size & target->bt_smask)) {
if (iocb->ki_pos == i_size_read(inode))
if ((pos & target->bt_smask) || (size & target->bt_smask)) {
if (pos == i_size_read(inode))
return 0;
return -XFS_ERROR(EINVAL);
}
}

n = mp->m_super->s_maxbytes - iocb->ki_pos;
n = mp->m_super->s_maxbytes - pos;
if (n <= 0 || size == 0)
return 0;

Expand All @@ -289,20 +288,21 @@ xfs_file_aio_read(
xfs_rw_ilock(ip, XFS_IOLOCK_EXCL);

if (inode->i_mapping->nrpages) {
ret = -xfs_flushinval_pages(ip,
(iocb->ki_pos & PAGE_CACHE_MASK),
-1, FI_REMAPF_LOCKED);
ret = -filemap_write_and_wait_range(
VFS_I(ip)->i_mapping,
pos, -1);
if (ret) {
xfs_rw_iunlock(ip, XFS_IOLOCK_EXCL);
return ret;
}
truncate_pagecache_range(VFS_I(ip), pos, -1);
}
xfs_rw_ilock_demote(ip, XFS_IOLOCK_EXCL);
}

trace_xfs_file_read(ip, size, iocb->ki_pos, ioflags);
trace_xfs_file_read(ip, size, pos, ioflags);

ret = generic_file_aio_read(iocb, iovp, nr_segs, iocb->ki_pos);
ret = generic_file_aio_read(iocb, iovp, nr_segs, pos);
if (ret > 0)
XFS_STATS_ADD(xs_read_bytes, ret);

Expand Down Expand Up @@ -670,10 +670,11 @@ xfs_file_dio_aio_write(
goto out;

if (mapping->nrpages) {
ret = -xfs_flushinval_pages(ip, (pos & PAGE_CACHE_MASK), -1,
FI_REMAPF_LOCKED);
ret = -filemap_write_and_wait_range(VFS_I(ip)->i_mapping,
pos, -1);
if (ret)
goto out;
truncate_pagecache_range(VFS_I(ip), pos, -1);
}

/*
Expand Down
46 changes: 0 additions & 46 deletions trunk/fs/xfs/xfs_fs_subr.c

This file was deleted.

11 changes: 5 additions & 6 deletions trunk/fs/xfs/xfs_vnodeops.c
Original file line number Diff line number Diff line change
Expand Up @@ -1958,12 +1958,11 @@ xfs_free_file_space(

rounding = max_t(uint, 1 << mp->m_sb.sb_blocklog, PAGE_CACHE_SIZE);
ioffset = offset & ~(rounding - 1);

if (VN_CACHED(VFS_I(ip)) != 0) {
error = xfs_flushinval_pages(ip, ioffset, -1, FI_REMAPF_LOCKED);
if (error)
goto out_unlock_iolock;
}
error = -filemap_write_and_wait_range(VFS_I(ip)->i_mapping,
ioffset, -1);
if (error)
goto out_unlock_iolock;
truncate_pagecache_range(VFS_I(ip), ioffset, -1);

/*
* Need to zero the stuff we're not freeing, on disk.
Expand Down
2 changes: 0 additions & 2 deletions trunk/fs/xfs/xfs_vnodeops.h
Original file line number Diff line number Diff line change
Expand Up @@ -48,8 +48,6 @@ int xfs_attr_set(struct xfs_inode *dp, const unsigned char *name,
int xfs_attr_remove(struct xfs_inode *dp, const unsigned char *name, int flags);
int xfs_attr_list(struct xfs_inode *dp, char *buffer, int bufsize,
int flags, struct attrlist_cursor_kern *cursor);
int xfs_flushinval_pages(struct xfs_inode *ip, xfs_off_t first,
xfs_off_t last, int fiopt);

int xfs_zero_eof(struct xfs_inode *, xfs_off_t, xfs_fsize_t);
int xfs_free_eofblocks(struct xfs_mount *, struct xfs_inode *, bool);
Expand Down

0 comments on commit 3074cf7

Please sign in to comment.