http://oss.sgi.com/bugzilla/show_bug.cgi?id=263
Summary: unwritten extents hook in "TAKE - xfs iocore rework"
breaks db related executable
Product: Linux XFS
Version: Current
Platform: IA32
OS/Version: Linux
Status: NEW
Severity: normal
Priority: High
Component: XFS kernel code
AssignedTo: xfs-master@xxxxxxxxxxx
ReportedBy: erik.habbinga@xxxxxx
We have an application that uses the db database code. When we moved from an
older XFS CVS code drop to one newer than Dec 11, 2002, that application would
hang after running SPEC SFS NFS testing on the server. In the CVS take from Dec
11, 2002 labeled "TAKE - xfs iocore rework", three patch hunks are applied to
fs/xfs/linux/xfs_aops.c. Not performing the third hunk allows our application
to run without hanging through multiple SPEC SFS NFS tests. We are now using an
XFS CVS code drop from June 16, 2003 with the 2.4.21 kernel and still need to
patch XFS to remove that third hunk to allow our application to run without
hanging. Any ideas why we need to back out this part of the CVS take?
Erik Habbinga
Hewlett Packard
The original CVS TAKE message:
http://oss.sgi.com/projects/xfs/mail_archive/200212/msg00144.html
The CVS diff showing the changes to xfs_aops.c for that TAKE:
http://oss.sgi.com/cgi-bin/cvsweb.cgi/linux-2.4-xfs/linux/fs/xfs/linux/xfs_aops.c.diff?r1=1.15&r2=1.16
The patch we apply to recent XFS to allow our application to run:
--- linux/fs/xfs/linux/xfs_aops.c~ Wed Apr 23 12:49:47 2003
+++ linux/fs/xfs/linux/xfs_aops.c Wed Apr 23 12:52:10 2003
@@ -790,25 +787,14 @@
page_buf_daddr_t bn;
loff_t delta;
- /* For unwritten extents do not report a disk address on
- * the read case.
- */
- if (create || ((pbmap.pbm_flags & PBMF_UNWRITTEN) == 0)) {
- delta = offset - pbmap.pbm_offset;
- delta >>= inode->i_blkbits;
-
- bn = pbmap.pbm_bn >> (inode->i_blkbits - BBSHIFT);
- bn += delta;
-
- bh_result->b_blocknr = bn;
- set_bit(BH_Mapped, &bh_result->b_state);
- }
- if (pbmap.pbm_flags & PBMF_UNWRITTEN) {
- if (create)
- set_bit(BH_Mapped, &bh_result->b_state);
- set_bit(BH_Unwritten, &bh_result->b_state);
- set_bit(BH_Delay, &bh_result->b_state);
- }
+ delta = offset - pbmap.pbm_offset;
+ delta >>= inode->i_blkbits;
+
+ bn = pbmap.pbm_bn >> (inode->i_blkbits - BBSHIFT);
+ bn += delta;
+
+ bh_result->b_blocknr = bn;
+ set_bit(BH_Mapped, &bh_result->b_state);
}
/* If we previously allocated a block out beyond eof and
------- You are receiving this mail because: -------
You are the assignee for the bug, or are watching the assignee.
|