xfs
[Top] [All Lists]

[Bug 263] New: unwritten extents hook in "TAKE - xfs iocore rework" brea

To: xfs-master@xxxxxxxxxxx
Subject: [Bug 263] New: unwritten extents hook in "TAKE - xfs iocore rework" breaks db related executable
From: bugzilla-daemon@xxxxxxxxxxx
Date: Tue, 15 Jul 2003 14:25:59 -0700
Sender: linux-xfs-bounce@xxxxxxxxxxx
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.


<Prev in Thread] Current Thread [Next in Thread>
  • [Bug 263] New: unwritten extents hook in "TAKE - xfs iocore rework" breaks db related executable, bugzilla-daemon <=