Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 2620
b: refs/heads/master
c: bd5a876
h: refs/heads/master
v: v3
  • Loading branch information
Christoph Hellwig authored and Nathan Scott committed Jun 21, 2005
1 parent 0727599 commit 3cffd9b
Show file tree
Hide file tree
Showing 5 changed files with 18 additions and 33 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: d130c14c0310edac5ea0c6327bef7e3715f9a083
refs/heads/master: bd5a876ac4c130e8e1986dcdbb21839ae4cd91c0
24 changes: 0 additions & 24 deletions trunk/fs/xfs/linux-2.6/xfs_lrw.c
Original file line number Diff line number Diff line change
Expand Up @@ -209,30 +209,6 @@ xfs_iozero(
return (-status);
}

/*
* xfs_inval_cached_pages
*
* This routine is responsible for keeping direct I/O and buffered I/O
* somewhat coherent. From here we make sure that we're at least
* temporarily holding the inode I/O lock exclusively and then call
* the page cache to flush and invalidate any cached pages. If there
* are no cached pages this routine will be very quick.
*/
void
xfs_inval_cached_pages(
vnode_t *vp,
xfs_iocore_t *io,
xfs_off_t offset,
int write,
int relock)
{
if (VN_CACHED(vp)) {
xfs_inval_cached_trace(io, offset, -1, ctooff(offtoct(offset)), -1);
VOP_FLUSHINVAL_PAGES(vp, ctooff(offtoct(offset)), -1, FI_REMAPF_LOCKED);
}

}

ssize_t /* bytes read, or (-) error */
xfs_read(
bhv_desc_t *bdp,
Expand Down
2 changes: 0 additions & 2 deletions trunk/fs/xfs/linux-2.6/xfs_lrw.h
Original file line number Diff line number Diff line change
Expand Up @@ -94,8 +94,6 @@ extern int xfs_bdstrat_cb(struct xfs_buf *);

extern int xfs_zero_eof(struct vnode *, struct xfs_iocore *, xfs_off_t,
xfs_fsize_t, xfs_fsize_t);
extern void xfs_inval_cached_pages(struct vnode *, struct xfs_iocore *,
xfs_off_t, int, int);
extern ssize_t xfs_read(struct bhv_desc *, struct kiocb *,
const struct iovec *, unsigned int,
loff_t *, int, struct cred *);
Expand Down
7 changes: 4 additions & 3 deletions trunk/fs/xfs/xfs_dfrag.c
Original file line number Diff line number Diff line change
Expand Up @@ -180,9 +180,10 @@ xfs_swapext(
goto error0;
}

if (VN_CACHED(tvp) != 0)
xfs_inval_cached_pages(XFS_ITOV(tip), &(tip->i_iocore),
(xfs_off_t)0, 0, 0);
if (VN_CACHED(tvp) != 0) {
xfs_inval_cached_trace(&tip->i_iocore, 0, -1, 0, -1);
VOP_FLUSHINVAL_PAGES(tvp, 0, -1, FI_REMAPF_LOCKED);
}

/* Verify O_DIRECT for ftmp */
if (VN_CACHED(tvp) != 0) {
Expand Down
16 changes: 13 additions & 3 deletions trunk/fs/xfs/xfs_vnodeops.c
Original file line number Diff line number Diff line change
Expand Up @@ -4329,6 +4329,7 @@ xfs_free_file_space(
xfs_off_t len,
int attr_flags)
{
vnode_t *vp;
int committed;
int done;
xfs_off_t end_dmi_offset;
Expand All @@ -4349,9 +4350,11 @@ xfs_free_file_space(
xfs_trans_t *tp;
int need_iolock = 1;

vn_trace_entry(XFS_ITOV(ip), __FUNCTION__, (inst_t *)__return_address);
vp = XFS_ITOV(ip);
mp = ip->i_mount;

vn_trace_entry(vp, __FUNCTION__, (inst_t *)__return_address);

if ((error = XFS_QM_DQATTACH(mp, ip, 0)))
return error;

Expand All @@ -4368,7 +4371,7 @@ xfs_free_file_space(
DM_EVENT_ENABLED(XFS_MTOVFS(mp), ip, DM_EVENT_WRITE)) {
if (end_dmi_offset > ip->i_d.di_size)
end_dmi_offset = ip->i_d.di_size;
error = XFS_SEND_DATA(mp, DM_EVENT_WRITE, XFS_ITOV(ip),
error = XFS_SEND_DATA(mp, DM_EVENT_WRITE, vp,
offset, end_dmi_offset - offset,
AT_DELAY_FLAG(attr_flags), NULL);
if (error)
Expand All @@ -4387,7 +4390,14 @@ xfs_free_file_space(
ioffset = offset & ~(rounding - 1);
if (ilen & (rounding - 1))
ilen = (ilen + rounding) & ~(rounding - 1);
xfs_inval_cached_pages(XFS_ITOV(ip), &(ip->i_iocore), ioffset, 0, 0);

if (VN_CACHED(vp) != 0) {
xfs_inval_cached_trace(&ip->i_iocore, ioffset, -1,
ctooff(offtoct(ioffset)), -1);
VOP_FLUSHINVAL_PAGES(vp, ctooff(offtoct(ioffset)),
-1, FI_REMAPF_LOCKED);
}

/*
* Need to zero the stuff we're not freeing, on disk.
* If its a realtime file & can't use unwritten extents then we
Expand Down

0 comments on commit 3cffd9b

Please sign in to comment.