From bounce@client5.aanyainfotech.com Tue Jul 1 00:48:56 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: ** X-Spam-Status: No, score=2.4 required=5.0 tests=HTML_IMAGE_RATIO_02, HTML_MESSAGE,NORMAL_HTTP_TO_IP autolearn=no version=3.3.1 X-Original-To: xfs@oss.sgi.com Delivered-To: xfs@oss.sgi.com Received: from relay.sgi.com (relay3.corp.sgi.com [198.149.34.15]) by oss.sgi.com (Postfix) with ESMTP id AA98E7F66 for ; Tue, 1 Jul 2014 00:48:56 -0500 (CDT) Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by relay3.corp.sgi.com (Postfix) with ESMTP id 43EAEAC003 for ; Mon, 30 Jun 2014 22:48:52 -0700 (PDT) X-ASG-Debug-ID: 1404193726-04bdf0566972fc60001-NocioJ Received: from server5.aanyainfotech.com (server5.aanyainfotech.com [65.181.118.124]) by cuda.sgi.com with ESMTP id BCBxAjiI3DHu6GP7 (version=TLSv1 cipher=AES256-SHA bits=256 verify=NO) for ; Mon, 30 Jun 2014 22:48:46 -0700 (PDT) X-Barracuda-Envelope-From: bounce@client5.aanyainfotech.com X-Barracuda-Apparent-Source-IP: 65.181.118.124 Received: from client5a by server5.aanyainfotech.com with local (Exim 4.82) (envelope-from ) id 1X1qvt-0004tn-HF for xfs@oss.sgi.com; Tue, 01 Jul 2014 01:48:45 -0400 To: xfs@oss.sgi.com Subject: Best ever Jewellery accessories for you from Amazon !!! Message-ID: <25d9d539df760addb0beca3743d0a7b6@65.181.118.124> X-ASG-Orig-Subj: Best ever Jewellery accessories for you from Amazon !!! Date: Tue, 01 Jul 2014 05:15:05 +0000 From: "Mohini Sharma" Reply-To: noreply@client5.aanyainfotech.com MIME-Version: 1.0 X-Mailer-LID: 9,10 List-Unsubscribe: X-Mailer-SID: 20 X-Mailer-Sent-By: 1 Content-Type: multipart/alternative; charset="UTF-8"; boundary="b1_22d11c7f2468b4c177e9d247728e28bd" Content-Transfer-Encoding: 8bit X-AntiAbuse: This header was added to track abuse, please include it with any abuse report X-AntiAbuse: Primary Hostname - server5.aanyainfotech.com X-AntiAbuse: Original Domain - oss.sgi.com X-AntiAbuse: Originator/Caller UID/GID - [501 501] / [47 12] X-AntiAbuse: Sender Address Domain - client5.aanyainfotech.com X-Get-Message-Sender-Via: server5.aanyainfotech.com: authenticated_id: client5a/from_h X-Source: /usr/bin/php X-Source-Args: /usr/bin/php -f /home/client5a/public_html/admin/cron/cron.php X-Source-Dir: client5.aanyainfotech.com:/public_html/admin/cron X-Barracuda-Connect: server5.aanyainfotech.com[65.181.118.124] X-Barracuda-Start-Time: 1404193726 X-Barracuda-Encrypted: AES256-SHA X-Barracuda-URL: http://192.48.157.11:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 X-Barracuda-Spam-Score: 1.01 X-Barracuda-Spam-Status: No, SCORE=1.01 using per-user scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.7 tests=HTML_IMAGE_RATIO_02, HTML_MESSAGE, NORMAL_HTTP_TO_IP, PLING_PLING X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.7129 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.00 NORMAL_HTTP_TO_IP URI: Uses a dotted-decimal IP address in URL 0.55 HTML_IMAGE_RATIO_02 BODY: HTML has a low ratio of text to image area 0.00 HTML_MESSAGE BODY: HTML included in message 0.46 PLING_PLING Subject has lots of exclamation marks --b1_22d11c7f2468b4c177e9d247728e28bd Content-Type: text/plain; format=flowed; charset="UTF-8" Content-Transfer-Encoding: 8bit Your email client cannot read this email. To view it online, please go here: http://65.181.118.124/~client5a/display.php?M=1172971&C=99812448861710c68fe65a48f37ca99b&S=20&L=9&N=3 To stop receiving these emails:http://65.181.118.124/~client5a/unsubscribe.php?M=1172971&C=99812448861710c68fe65a48f37ca99b&L=9&N=20 --b1_22d11c7f2468b4c177e9d247728e28bd Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: 8bit
To view it online, please go here: click here


To unsubscribe from list, please go here: click here
--b1_22d11c7f2468b4c177e9d247728e28bd-- From cardaniuc@gmail.com Tue Jul 1 01:44:49 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=FREEMAIL_FROM,HTML_MESSAGE, T_DKIM_INVALID autolearn=ham version=3.3.1 X-Original-To: xfs@oss.sgi.com Delivered-To: xfs@oss.sgi.com Received: from relay.sgi.com (relay1.corp.sgi.com [137.38.102.111]) by oss.sgi.com (Postfix) with ESMTP id 46C3E7F6B for ; Tue, 1 Jul 2014 01:44:49 -0500 (CDT) Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by relay1.corp.sgi.com (Postfix) with ESMTP id 36C798F8039 for ; Mon, 30 Jun 2014 23:44:49 -0700 (PDT) X-ASG-Debug-ID: 1404197086-04cb6c76d03bbdd0001-NocioJ Received: from mail-we0-f172.google.com (mail-we0-f172.google.com [74.125.82.172]) by cuda.sgi.com with ESMTP id LUJpkxJWsgdnWJBj (version=TLSv1 cipher=RC4-SHA bits=128 verify=NO) for ; Mon, 30 Jun 2014 23:44:47 -0700 (PDT) X-Barracuda-Envelope-From: cardaniuc@gmail.com X-Barracuda-Apparent-Source-IP: 74.125.82.172 Received: by mail-we0-f172.google.com with SMTP id u57so9197765wes.31 for ; Mon, 30 Jun 2014 23:44:45 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:date:message-id:subject:from:to:cc:content-type; bh=rBtF8cXEUQP9a4T9dtSsByh2Ao39JYScJWLA1JZQvno=; b=bi/0Xd1vWkoWkviDoYERunheaWj6m216y1gn0ZtbpsgQCstebKrx7287t9Wc6KClCd SeubZLOvsXsqxBXs7krluiX0kCGFfgET3pQg7FGsYvcB0Jz5kaoiyM6hJN8WyZkseISU ZyLrF1yuLPbygyfgKPPZ916lJn4sx965r/08u8zNNdjSNwDhl4iFfkdIm5Lhs2iK3tZQ WQs8P8nvY9KoXC7qOLWw9PH2vWGAjDxngE7Umnw52dPWjPjANWq+xWTDDkxYUNVxDJ2g 6zo9QH8P8lnkQ+5kf8DVN/L63rGskUFPCDh91yQ7g2qZzANp53btbjY5h4EOAERxEDZz KA4w== MIME-Version: 1.0 X-Received: by 10.194.1.164 with SMTP id 4mr49122261wjn.17.1404197085699; Mon, 30 Jun 2014 23:44:45 -0700 (PDT) Received: by 10.194.79.2 with HTTP; Mon, 30 Jun 2014 23:44:45 -0700 (PDT) Date: Mon, 30 Jun 2014 23:44:45 -0700 Message-ID: Subject: corruption of in-memory data detected From: Alexandru Cardaniuc X-ASG-Orig-Subj: corruption of in-memory data detected To: xfs@oss.sgi.com Cc: Alexandru Cardaniuc Content-Type: multipart/alternative; boundary=047d7b3a81767ce45804fd1c1ccd X-Barracuda-Connect: mail-we0-f172.google.com[74.125.82.172] X-Barracuda-Start-Time: 1404197087 X-Barracuda-Encrypted: RC4-SHA X-Barracuda-URL: http://192.48.176.15:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 X-Barracuda-Spam-Score: 0.00 X-Barracuda-Spam-Status: No, SCORE=0.00 using per-user scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.7 tests=DKIM_SIGNED, DKIM_VERIFIED, HTML_MESSAGE X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.7130 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- -0.00 DKIM_VERIFIED Domain Keys Identified Mail: signature passes verification 0.00 DKIM_SIGNED Domain Keys Identified Mail: message has a signature 0.00 HTML_MESSAGE BODY: HTML included in message --047d7b3a81767ce45804fd1c1ccd Content-Type: text/plain; charset=UTF-8 Hi All, I am having an issue with an XFS filesystem shutting down under high load with very many small files. Basically, I have around 3.5 - 4 million files on this filesystem. New files are being written to the FS all the time, until I get to 9-11 mln small files (35k on average). at some point I get the following in dmesg: [2870477.695512] Filesystem "sda5": XFS internal error xfs_trans_cancel at line 1138 of file fs/xfs/xfs_trans.c. Caller 0xffffffff8826bb7d [2870477.695558] [2870477.695559] Call Trace: [2870477.695611] [] :xfs:xfs_trans_cancel+0x5b/0xfe [2870477.695643] [] :xfs:xfs_mkdir+0x57c/0x5d7 [2870477.695673] [] :xfs:xfs_attr_get+0xbf/0xd2 [2870477.695707] [] :xfs:xfs_vn_mknod+0x1e1/0x3bb [2870477.695726] [] _spin_lock_irqsave+0x9/0x14 [2870477.695736] [] __up_read+0x19/0x7f [2870477.695764] [] :xfs:xfs_iunlock+0x57/0x79 [2870477.695776] [] _spin_lock_irqsave+0x9/0x14 [2870477.695784] [] __up_read+0x19/0x7f [2870477.695791] [] __d_lookup+0xb0/0xff [2870477.695803] [] _atomic_dec_and_lock+0x39/0x57 [2870477.695814] [] mntput_no_expire+0x19/0x89 [2870477.695829] [] _spin_lock_irqsave+0x9/0x14 [2870477.695837] [] __up_read+0x19/0x7f [2870477.695861] [] :xfs:xfs_iunlock+0x57/0x79 [2870477.695887] [] :xfs:xfs_access+0x3d/0x46 [2870477.695899] [] _spin_lock_irqsave+0x9/0x14 [2870477.695923] [] vfs_mkdir+0xe3/0x152 [2870477.695933] [] sys_mkdirat+0xa3/0xe4 [2870477.695953] [] tracesys+0x47/0xb6 [2870477.695963] [] tracesys+0xab/0xb6 [2870477.695977] [2870477.695985] xfs_force_shutdown(sda5,0x8) called from line 1139 of file fs/xfs/xfs_trans.c. Return address = 0xffffffff88262c46 [2870477.696452] Filesystem "sda5": Corruption of in-memory data detected. Shutting down filesystem: sda5 [2870477.696464] Please umount the filesystem, and rectify the problem(s) # ls -l /store ls: /store: Input/output error ?--------- 0 root root 0 Jan 1 1970 /store Filesystems is ~1T in size # df -hT /store Filesystem Type Size Used Avail Use% Mounted on /dev/sda5 xfs 910G 142G 769G 16% /store Using CentOS 5.9 with kernel 2.6.18-348.el5xen The filesystem is in a virtual machine (Xen) and on top of LVM. Filesystem was created using mkfs.xfs defaults with xfsprogs-2.9.4-1.el5.centos (that's the one that comes with CentOS 5.x by default.) These are the defaults with which the filesystem was created: # xfs_info /store meta-data=/dev/sda5 isize=256 agcount=32, agsize=7454720 blks = sectsz=512 attr=0 data = bsize=4096 blocks=238551040, imaxpct=25 = sunit=0 swidth=0 blks, unwritten=1 naming =version 2 bsize=4096 log =internal bsize=4096 blocks=32768, version=1 = sectsz=512 sunit=0 blks, lazy-count=0 realtime =none extsz=4096 blocks=0, rtextents=0 The problem is reproducible and I don't think it's hardware related. The problem was reproduced on multiple servers of the same type. So, I doubt it's a memory issue or something like that. Is that a known issue? If it is then what's the fix? I went through the kernel updates for CentOS 5.10 (newer kernel), but didn't see any xfs related fixes since CentOS 5.9 Any help will be greatly appreciated... -- Sincerely yours, Alexandru Cardaniuc --047d7b3a81767ce45804fd1c1ccd Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: quoted-printable
Hi All,

I am having an is= sue with an XFS filesystem shutting down under high load with very many sma= ll files.
Basically, I have around 3.5 - 4 million files on this f= ilesystem. New files are being written to the FS all the time, until I get = to 9-11 mln small files (35k on average).

at some point I get the following in dmesg:

[2870477.69551= 2] Filesystem "sda5": XFS internal error xfs_trans_cancel at line= 1138 of file fs/xfs/xfs_trans.c.=C2=A0 Caller 0xffffffff8826bb7d
[28704= 77.695558]
[2870477.695559] Call Trace:
[2870477.695611]=C2=A0 [<ffffffff88262c2= 8>] :xfs:xfs_trans_cancel+0x5b/0xfe
[2870477.695643]=C2=A0 [<fffff= fff8826bb7d>] :xfs:xfs_mkdir+0x57c/0x5d7
[2870477.695673]=C2=A0 [<= ffffffff8822f3f8>] :xfs:xfs_attr_get+0xbf/0xd2
[2870477.695707]=C2=A0 [<ffffffff88273326>] :xfs:xfs_vn_mknod+0x1e1/0= x3bb
[2870477.695726]=C2=A0 [<ffffffff80264929>] _spin_lock_irqsav= e+0x9/0x14
[2870477.695736]=C2=A0 [<ffffffff802230e6>] __up_read+0= x19/0x7f
[2870477.695764]=C2=A0 [<ffffffff8824f8f4>] :xfs:xfs_iunlock+0x57/0x7= 9
[2870477.695776]=C2=A0 [<ffffffff80264929>] _spin_lock_irqsave+0= x9/0x14
[2870477.695784]=C2=A0 [<ffffffff802230e6>] __up_read+0x19= /0x7f
[2870477.695791]=C2=A0 [<ffffffff80209f4c>] __d_lookup+0xb0/= 0xff
[2870477.695803]=C2=A0 [<ffffffff8020cd4a>] _atomic_dec_and_lock+0x39= /0x57
[2870477.695814]=C2=A0 [<ffffffff8022d6db>] mntput_no_expire= +0x19/0x89
[2870477.695829]=C2=A0 [<ffffffff80264929>] _spin_lock_= irqsave+0x9/0x14
[2870477.695837]=C2=A0 [<ffffffff802230e6>] __up_read+0x19/0x7f
[2= 870477.695861]=C2=A0 [<ffffffff8824f8f4>] :xfs:xfs_iunlock+0x57/0x79<= br>[2870477.695887]=C2=A0 [<ffffffff882680af>] :xfs:xfs_access+0x3d/0= x46
[2870477.695899]=C2=A0 [<ffffffff80264929>] _spin_lock_irqsave= +0x9/0x14
[2870477.695923]=C2=A0 [<ffffffff802df4a3>] vfs_mkdir+0xe3/0x152
[= 2870477.695933]=C2=A0 [<ffffffff802dfa79>] sys_mkdirat+0xa3/0xe4
[= 2870477.695953]=C2=A0 [<ffffffff80260295>] tracesys+0x47/0xb6
[287= 0477.695963]=C2=A0 [<ffffffff802602f9>] tracesys+0xab/0xb6
[2870477.695977]
[2870477.695985] xfs_force_shutdown(sda5,0x8) called fr= om line 1139 of file fs/xfs/xfs_trans.c.=C2=A0 Return address =3D 0xfffffff= f88262c46
[2870477.696452] Filesystem "sda5": Corruption of in= -memory data detected.=C2=A0 Shutting down filesystem: sda5
[2870477.696464] Please umount the filesystem, and rectify the problem(s)
# ls -l /store
ls: /store: Input/output error
?--------- 0 root= root 0 Jan=C2=A0 1=C2=A0 1970 /store

Filesystems is ~1T = in size
# df -hT /store
Filesystem=C2=A0=C2=A0=C2=A0 Type=C2=A0=C2=A0=C2= =A0 Size=C2=A0 Used Avail Use% Mounted on
/dev/sda5=C2=A0=C2=A0=C2=A0=C2= =A0=C2=A0 xfs=C2=A0=C2=A0=C2=A0 910G=C2=A0 142G=C2=A0 769G=C2=A0 16% /store=


Using CentOS 5.9 with kernel 2.6.18-34= 8.el5xen

The filesystem is in a virtual machine (Xen) and on top of LVM.<= br>
Filesystem was created using mkfs.xfs defaults with xfspr= ogs-2.9.4-1.el5.centos (that's the one that comes with CentOS 5.x by de= fault.)

These are the defaults with which the filesystem was created= :
# xfs_info /store
meta-data=3D/dev/sda5=C2=A0=C2=A0=C2=A0=C2=A0=C2= =A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 isize=3D256=C2=A0=C2=A0= =C2=A0 agcount=3D32, agsize=3D7454720 blks
=C2=A0=C2=A0=C2=A0=C2=A0=C2= =A0=C2=A0=C2=A0=C2=A0 =3D=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0= =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2= =A0=C2=A0 sectsz=3D512=C2=A0=C2=A0 attr=3D0
data=C2=A0=C2=A0=C2=A0=C2=A0 =3D=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0= =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2= =A0=C2=A0=C2=A0 bsize=3D4096=C2=A0=C2=A0 blocks=3D238551040, imaxpct=3D25=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 =3D=C2=A0=C2=A0=C2=A0=C2= =A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0= =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 sunit=3D0=C2=A0=C2=A0=C2=A0=C2=A0=C2= =A0 swidth=3D0 blks, unwritten=3D1
naming=C2=A0=C2=A0 =3Dversion 2=C2=A0= =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 bs= ize=3D4096
log=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 =3Dinternal=C2=A0=C2=A0=C2= =A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 bsize= =3D4096=C2=A0=C2=A0 blocks=3D32768, version=3D1
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 =3D=C2=A0=C2=A0=C2=A0=C2= =A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0= =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 sectsz=3D512=C2=A0=C2=A0 sunit=3D0 blk= s, lazy-count=3D0
realtime =3Dnone=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0= =C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 ex= tsz=3D4096=C2=A0=C2=A0 blocks=3D0, rtextents=3D0


The problem is reproducible and I don't = think it's hardware related. The problem was reproduced on multiple ser= vers of the same type. So, I doubt it's a memory issue or something lik= e that.


Is that a known issue? If it is then what's the fix?= I went through the kernel updates for CentOS 5.10 (newer kernel), but didn= 't see any xfs related fixes since CentOS 5.9

Any help will be greatly appreciated...

--
Since= rely yours,
Alexandru Cardaniuc
--047d7b3a81767ce45804fd1c1ccd-- From david@fromorbit.com Tue Jul 1 02:03:10 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: xfs@oss.sgi.com Delivered-To: xfs@oss.sgi.com Received: from relay.sgi.com (relay2.corp.sgi.com [137.38.102.29]) by oss.sgi.com (Postfix) with ESMTP id 53D597F74 for ; Tue, 1 Jul 2014 02:03:10 -0500 (CDT) Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by relay2.corp.sgi.com (Postfix) with ESMTP id 304CE30405F for ; Tue, 1 Jul 2014 00:03:07 -0700 (PDT) X-ASG-Debug-ID: 1404198184-04bdf05669731ba0001-NocioJ Received: from ipmail07.adl2.internode.on.net (ipmail07.adl2.internode.on.net [150.101.137.131]) by cuda.sgi.com with ESMTP id nYQdmmZPGrGhrjbg for ; Tue, 01 Jul 2014 00:03:04 -0700 (PDT) X-Barracuda-Envelope-From: david@fromorbit.com X-Barracuda-Apparent-Source-IP: 150.101.137.131 X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: Ah4HAMhcslN5LHZ8/2dsb2JhbABagw2DSakJAQEBAQEBBpo6AYEIF3WEAwEBBAEeHBwjBQsIAxgJJQ8FJQMhE4g6B8d0FxeFTYkjB4RDBZpglACDVCs Received: from ppp121-44-118-124.lns20.syd6.internode.on.net (HELO dastard) ([121.44.118.124]) by ipmail07.adl2.internode.on.net with ESMTP; 01 Jul 2014 16:32:44 +0930 Received: from dave by dastard with local (Exim 4.80) (envelope-from ) id 1X1s5H-0006FJ-0q; Tue, 01 Jul 2014 17:02:31 +1000 Date: Tue, 1 Jul 2014 17:02:30 +1000 From: Dave Chinner To: Alexandru Cardaniuc Cc: xfs@oss.sgi.com Subject: Re: corruption of in-memory data detected Message-ID: <20140701070230.GG4453@dastard> X-ASG-Orig-Subj: Re: corruption of in-memory data detected References: MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.5.21 (2010-09-15) X-Barracuda-Connect: ipmail07.adl2.internode.on.net[150.101.137.131] X-Barracuda-Start-Time: 1404198184 X-Barracuda-URL: http://192.48.157.11:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 X-Barracuda-Spam-Score: 0.00 X-Barracuda-Spam-Status: No, SCORE=0.00 using per-user scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.7 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.7131 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- On Mon, Jun 30, 2014 at 11:44:45PM -0700, Alexandru Cardaniuc wrote: > Hi All, > > I am having an issue with an XFS filesystem shutting down under high load > with very many small files. > Basically, I have around 3.5 - 4 million files on this filesystem. New > files are being written to the FS all the time, until I get to 9-11 mln > small files (35k on average). > > at some point I get the following in dmesg: > > [2870477.695512] Filesystem "sda5": XFS internal error xfs_trans_cancel at > line 1138 of file fs/xfs/xfs_trans.c. Caller 0xffffffff8826bb7d > [2870477.695558] > [2870477.695559] Call Trace: > [2870477.695611] [] :xfs:xfs_trans_cancel+0x5b/0xfe > [2870477.695643] [] :xfs:xfs_mkdir+0x57c/0x5d7 > [2870477.695673] [] :xfs:xfs_attr_get+0xbf/0xd2 > [2870477.695707] [] :xfs:xfs_vn_mknod+0x1e1/0x3bb > [2870477.695726] [] _spin_lock_irqsave+0x9/0x14 > [2870477.695736] [] __up_read+0x19/0x7f > [2870477.695764] [] :xfs:xfs_iunlock+0x57/0x79 > [2870477.695776] [] _spin_lock_irqsave+0x9/0x14 > [2870477.695784] [] __up_read+0x19/0x7f > [2870477.695791] [] __d_lookup+0xb0/0xff > [2870477.695803] [] _atomic_dec_and_lock+0x39/0x57 > [2870477.695814] [] mntput_no_expire+0x19/0x89 > [2870477.695829] [] _spin_lock_irqsave+0x9/0x14 > [2870477.695837] [] __up_read+0x19/0x7f > [2870477.695861] [] :xfs:xfs_iunlock+0x57/0x79 > [2870477.695887] [] :xfs:xfs_access+0x3d/0x46 > [2870477.695899] [] _spin_lock_irqsave+0x9/0x14 > [2870477.695923] [] vfs_mkdir+0xe3/0x152 > [2870477.695933] [] sys_mkdirat+0xa3/0xe4 > [2870477.695953] [] tracesys+0x47/0xb6 > [2870477.695963] [] tracesys+0xab/0xb6 > [2870477.695977] > [2870477.695985] xfs_force_shutdown(sda5,0x8) called from line 1139 of file > fs/xfs/xfs_trans.c. Return address = 0xffffffff88262c46 > [2870477.696452] Filesystem "sda5": Corruption of in-memory data detected. > Shutting down filesystem: sda5 > [2870477.696464] Please umount the filesystem, and rectify the problem(s) You've probably fragmented free space to the point where inodes cannot be allocated anymore, and then it's shutdown because it got enospc with a dirty inode allocation transaction. xfs_db -c "freespc -s" should tell us whether this is the case or not. > Using CentOS 5.9 with kernel 2.6.18-348.el5xen The "enospc with dirty transaction" shutdown bugs have been fixed in more recent kernels than RHEL5. > The problem is reproducible and I don't think it's hardware related. The > problem was reproduced on multiple servers of the same type. So, I doubt > it's a memory issue or something like that. Nope, it's not hardware, it's buggy software that has been fixed in the years since 2.6.18.... > Is that a known issue? Yes. > If it is then what's the fix? If you've fragmented free space, then your ony options are: - dump/mkfs/restore - remove a large number of files from the filesystem so free space defragments. If you simply want to avoid the shutdown, then upgrade to a more recent kernel (3.x of some kind) where all the known issues have been fixed. > I went through the > kernel updates for CentOS 5.10 (newer kernel), but didn't see any xfs > related fixes since CentOS 5.9 That's something you need to talk to your distro maintainers about.... Cheers, Dave. -- Dave Chinner david@fromorbit.com From cardaniuc@gmail.com Tue Jul 1 03:29:41 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=FREEMAIL_FROM,T_DKIM_INVALID autolearn=ham version=3.3.1 X-Original-To: xfs@oss.sgi.com Delivered-To: xfs@oss.sgi.com Received: from relay.sgi.com (relay2.corp.sgi.com [137.38.102.29]) by oss.sgi.com (Postfix) with ESMTP id A8AA57F74 for ; Tue, 1 Jul 2014 03:29:41 -0500 (CDT) Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by relay2.corp.sgi.com (Postfix) with ESMTP id A365B30406A for ; Tue, 1 Jul 2014 01:29:41 -0700 (PDT) X-ASG-Debug-ID: 1404203377-04cb6c76d23be710001-NocioJ Received: from mail-ig0-f178.google.com (mail-ig0-f178.google.com [209.85.213.178]) by cuda.sgi.com with ESMTP id ZDoa37e2mUoHqCuL (version=TLSv1 cipher=RC4-SHA bits=128 verify=NO) for ; Tue, 01 Jul 2014 01:29:37 -0700 (PDT) X-Barracuda-Envelope-From: cardaniuc@gmail.com X-Barracuda-Apparent-Source-IP: 209.85.213.178 X-Barracuda-IPDD: Level1 [gmail.com/209.85.213.178] Received: by mail-ig0-f178.google.com with SMTP id hn18so5187137igb.5 for ; Tue, 01 Jul 2014 01:29:37 -0700 (PDT) X-Barracuda-IPDD: Level1 [gmail.com/209.85.213.178] X-Barracuda-IPDD: Level1 [gmail.com/209.85.213.178] DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=from:to:cc:subject:references:date:in-reply-to:message-id :user-agent:mime-version:content-type; bh=+cBtw+nWG+9UeJ0Uv+zRB9DEB3ohaH/WlYzQF/vgpYM=; b=f6CL5V/O3znqBytfFPOtg0ys81dtFHj3XBhS4pJWrDflF9FD94kz/jbHKV6b4NffBl GfVYR8EvPLXL8rfS9vejMu51EuSp5uO9aHQVzxXCPO13Qaa6PW9XfVXSiqlxWF3pN2CN HpSLyjK+JLt1vsDoWEHjKCzHI9UVzij/qmlxefkQlfi4mwJAd0kblUOTqRMJzNlexQ4U KTHlMP+0wmXC0Hsd85wrNrlCQwM59Rve8NhPE9Ov6EizyreNO/mz51USWdckf2cGnb+v TyLz9VIM9jSKRrsRz5Ot6yvG10Rtqus9aT2Cmh0TRcv3S9ckfB8zgVETuQe5pjOYEeEZ BFXQ== X-Received: by 10.42.39.199 with SMTP id i7mr8491966ice.23.1404203377042; Tue, 01 Jul 2014 01:29:37 -0700 (PDT) Received: from sonata (adsl-76-254-71-112.dsl.pltn13.sbcglobal.net. [76.254.71.112]) by mx.google.com with ESMTPSA id n10sm32312662igv.21.2014.07.01.01.29.35 for (version=TLSv1.2 cipher=RC4-SHA bits=128/128); Tue, 01 Jul 2014 01:29:36 -0700 (PDT) From: Alexandru Cardaniuc To: Dave Chinner Cc: xfs@oss.sgi.com Subject: Re: corruption of in-memory data detected References: <20140701070230.GG4453@dastard> X-ASG-Orig-Subj: Re: corruption of in-memory data detected Date: Tue, 01 Jul 2014 01:29:35 -0700 In-Reply-To: <20140701070230.GG4453@dastard> (Dave Chinner's message of "Tue, 1 Jul 2014 17:02:30 +1000") Message-ID: <87vbrh1nyo.fsf@gmail.com> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/23.4 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii X-Barracuda-Connect: mail-ig0-f178.google.com[209.85.213.178] X-Barracuda-Start-Time: 1404203377 X-Barracuda-Encrypted: RC4-SHA X-Barracuda-URL: http://192.48.176.15:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 X-Barracuda-Spam-Score: 0.00 X-Barracuda-Spam-Status: No, SCORE=0.00 using per-user scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.7 tests=DKIM_SIGNED, DKIM_VERIFIED X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.7133 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- -0.00 DKIM_VERIFIED Domain Keys Identified Mail: signature passes verification 0.00 DKIM_SIGNED Domain Keys Identified Mail: message has a signature Dave Chinner writes: > On Mon, Jun 30, 2014 at 11:44:45PM -0700, Alexandru Cardaniuc wrote: >> Hi All, >> I am having an issue with an XFS filesystem shutting down under high >> load with very many small files. Basically, I have around 3.5 - 4 >> million files on this filesystem. New files are being written to the >> FS all the time, until I get to 9-11 mln small files (35k on >> average). >> >> at some point I get the following in dmesg: >> >> [2870477.695512] Filesystem "sda5": XFS internal error >> xfs_trans_cancel at line 1138 of file fs/xfs/xfs_trans.c. Caller >> 0xffffffff8826bb7d [2870477.695558] [2870477.695559] Call Trace: >> [2870477.695611] [] >> :xfs:xfs_trans_cancel+0x5b/0xfe [2870477.695643] >> [] :xfs:xfs_mkdir+0x57c/0x5d7 [2870477.695673] >> [] :xfs:xfs_attr_get+0xbf/0xd2 [2870477.695707] >> [] :xfs:xfs_vn_mknod+0x1e1/0x3bb [2870477.695726] >> [] _spin_lock_irqsave+0x9/0x14 [2870477.695736] >> [] __up_read+0x19/0x7f [2870477.695764] >> [] :xfs:xfs_iunlock+0x57/0x79 [2870477.695776] >> [] _spin_lock_irqsave+0x9/0x14 [2870477.695784] >> [] __up_read+0x19/0x7f [2870477.695791] >> [] __d_lookup+0xb0/0xff [2870477.695803] >> [] _atomic_dec_and_lock+0x39/0x57 [2870477.695814] >> [] mntput_no_expire+0x19/0x89 [2870477.695829] >> [] _spin_lock_irqsave+0x9/0x14 [2870477.695837] >> [] __up_read+0x19/0x7f [2870477.695861] >> [] :xfs:xfs_iunlock+0x57/0x79 [2870477.695887] >> [] :xfs:xfs_access+0x3d/0x46 [2870477.695899] >> [] _spin_lock_irqsave+0x9/0x14 [2870477.695923] >> [] vfs_mkdir+0xe3/0x152 [2870477.695933] >> [] sys_mkdirat+0xa3/0xe4 [2870477.695953] >> [] tracesys+0x47/0xb6 [2870477.695963] >> [] tracesys+0xab/0xb6 [2870477.695977] >> [2870477.695985] xfs_force_shutdown(sda5,0x8) called from line 1139 >> of file fs/xfs/xfs_trans.c. Return address = 0xffffffff88262c46 >> [2870477.696452] Filesystem "sda5": Corruption of in-memory data >> detected. Shutting down filesystem: sda5 [2870477.696464] Please >> umount the filesystem, and rectify the problem(s) > > You've probably fragmented free space to the point where inodes cannot > be allocated anymore, and then it's shutdown because it got enospc > with a dirty inode allocation transaction. > xfs_db -c "freespc -s" > should tell us whether this is the case or not. This is what I have # xfs_db -c "freesp -s" /dev/sda5 from to extents blocks pct 1 1 657 657 0.00 2 3 264 607 0.00 4 7 29 124 0.00 8 15 13 143 0.00 16 31 41 752 0.00 32 63 8 293 0.00 64 127 12 1032 0.00 128 255 8 1565 0.00 256 511 10 4044 0.00 512 1023 7 5750 0.00 1024 2047 10 16061 0.01 2048 4095 5 16948 0.01 4096 8191 7 43312 0.02 8192 16383 9 115578 0.06 16384 32767 6 159576 0.08 32768 65535 3 104586 0.05 262144 524287 1 507710 0.25 4194304 7454720 28 200755934 99.51 total free extents 1118 total free blocks 201734672 average free extent size 180442 >> Using CentOS 5.9 with kernel 2.6.18-348.el5xen > > The "enospc with dirty transaction" shutdown bugs have been fixed in > more recent kernels than RHEL5. These fixes were not backported to RHEL5 kernels? >> The problem is reproducible and I don't think it's hardware related. >> The problem was reproduced on multiple servers of the same type. So, >> I doubt it's a memory issue or something like that. > Nope, it's not hardware, it's buggy software that has been fixed in > the years since 2.6.18.... I would hope these fixes would be backported to RHEL5 (CentOS 5) kernels... >> Is that a known issue? > Yes. Well at least that's a good thing :) >> If it is then what's the fix? > If you've fragmented free space, then your ony options are: > - dump/mkfs/restore - remove a large number of files from the > filesystem so free space defragments. That wouldn't be fixed automagically using xfs_repair, wouldn't it? > If you simply want to avoid the shutdown, then upgrade to a more > recent kernel (3.x of some kind) where all the known issues have been > fixed. How about 2.6.32? That's the kernel that comes with RHEL 6.x >> I went through the kernel updates for CentOS 5.10 (newer kernel), >> but didn't see any xfs related fixes since CentOS 5.9 > That's something you need to talk to your distro maintainers about.... I was worried you gonna say that :) What are my options at this point? Am I correct to assume that the issue is related to the load and if I manage to decrease the load, the issue is not going to reproduce itself? We have been using XFS on RHEL 5 kernels for years and didn't see this issue. Now, the issue happens consistently, but seems to be related to high load... We have hundreds of these servers deployed in production right now, so some way to address the current situation would be very welcomed. thanks for help :) > Cheers, > Dave. -- "Every problem that I solved became a rule which served afterwards to solve other problems." - Descartes From david@fromorbit.com Tue Jul 1 04:38:41 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: xfs@oss.sgi.com Delivered-To: xfs@oss.sgi.com Received: from relay.sgi.com (relay2.corp.sgi.com [137.38.102.29]) by oss.sgi.com (Postfix) with ESMTP id 926957F7C for ; Tue, 1 Jul 2014 04:38:41 -0500 (CDT) Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by relay2.corp.sgi.com (Postfix) with ESMTP id 6EF2E30405F for ; Tue, 1 Jul 2014 02:38:41 -0700 (PDT) X-ASG-Debug-ID: 1404207518-04cb6c76d03c00d0001-NocioJ Received: from ipmail07.adl2.internode.on.net (ipmail07.adl2.internode.on.net [150.101.137.131]) by cuda.sgi.com with ESMTP id Fa5Gf1a6S5qZEbKa for ; Tue, 01 Jul 2014 02:38:39 -0700 (PDT) X-Barracuda-Envelope-From: david@fromorbit.com X-Barracuda-Apparent-Source-IP: 150.101.137.131 X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: Ah4HAEuBslN5LHZ8/2dsb2JhbABXA4MNg0mpBgEBAQEBAQaaOgGBCBd1hAMBAQQBOhwjBQsIAxgJJQ8FJQMhE4g6B8d/FxeFTYkTEAcRhDIFmmCUAINUKw Received: from ppp121-44-118-124.lns20.syd6.internode.on.net (HELO dastard) ([121.44.118.124]) by ipmail07.adl2.internode.on.net with ESMTP; 01 Jul 2014 19:08:16 +0930 Received: from dave by dastard with local (Exim 4.80) (envelope-from ) id 1X1uVn-0006bp-3u; Tue, 01 Jul 2014 19:38:03 +1000 Date: Tue, 1 Jul 2014 19:38:03 +1000 From: Dave Chinner To: Alexandru Cardaniuc Cc: xfs@oss.sgi.com Subject: Re: corruption of in-memory data detected Message-ID: <20140701093803.GH4453@dastard> X-ASG-Orig-Subj: Re: corruption of in-memory data detected References: <20140701070230.GG4453@dastard> <87vbrh1nyo.fsf@gmail.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <87vbrh1nyo.fsf@gmail.com> User-Agent: Mutt/1.5.21 (2010-09-15) X-Barracuda-Connect: ipmail07.adl2.internode.on.net[150.101.137.131] X-Barracuda-Start-Time: 1404207518 X-Barracuda-URL: http://192.48.176.15:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 X-Barracuda-Spam-Score: 0.00 X-Barracuda-Spam-Status: No, SCORE=0.00 using per-user scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.7 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.7134 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- On Tue, Jul 01, 2014 at 01:29:35AM -0700, Alexandru Cardaniuc wrote: > Dave Chinner writes: > > > On Mon, Jun 30, 2014 at 11:44:45PM -0700, Alexandru Cardaniuc wrote: > >> Hi All, > > >> I am having an issue with an XFS filesystem shutting down under high > >> load with very many small files. Basically, I have around 3.5 - 4 > >> million files on this filesystem. New files are being written to the > >> FS all the time, until I get to 9-11 mln small files (35k on > >> average). .... > > You've probably fragmented free space to the point where inodes cannot > > be allocated anymore, and then it's shutdown because it got enospc > > with a dirty inode allocation transaction. > > > xfs_db -c "freespc -s" > > > should tell us whether this is the case or not. > > This is what I have > > # xfs_db -c "freesp -s" /dev/sda5 > from to extents blocks pct > 1 1 657 657 0.00 > 2 3 264 607 0.00 > 4 7 29 124 0.00 > 8 15 13 143 0.00 > 16 31 41 752 0.00 > 32 63 8 293 0.00 > 64 127 12 1032 0.00 > 128 255 8 1565 0.00 > 256 511 10 4044 0.00 > 512 1023 7 5750 0.00 > 1024 2047 10 16061 0.01 > 2048 4095 5 16948 0.01 > 4096 8191 7 43312 0.02 > 8192 16383 9 115578 0.06 > 16384 32767 6 159576 0.08 > 32768 65535 3 104586 0.05 > 262144 524287 1 507710 0.25 > 4194304 7454720 28 200755934 99.51 > total free extents 1118 > total free blocks 201734672 > average free extent size 180442 So it's not freespace fragmentation, but that was just the most likely cause. Most likely it's a transient condition where an AG is out of space but in determining that condition the AGF was modified. We've fixed several bugs in that area over the past few years.... > >> Using CentOS 5.9 with kernel 2.6.18-348.el5xen > > > > The "enospc with dirty transaction" shutdown bugs have been fixed in > > more recent kernels than RHEL5. > > These fixes were not backported to RHEL5 kernels? No. > >> The problem is reproducible and I don't think it's hardware related. > >> The problem was reproduced on multiple servers of the same type. So, > >> I doubt it's a memory issue or something like that. > > > Nope, it's not hardware, it's buggy software that has been fixed in > > the years since 2.6.18.... > > I would hope these fixes would be backported to RHEL5 (CentOS 5) kernels... TANSTAAFL. > > If you've fragmented free space, then your ony options are: > > > - dump/mkfs/restore - remove a large number of files from the > > filesystem so free space defragments. > > That wouldn't be fixed automagically using xfs_repair, wouldn't it? No. > > If you simply want to avoid the shutdown, then upgrade to a more > > recent kernel (3.x of some kind) where all the known issues have been > > fixed. > > How about 2.6.32? That's the kernel that comes with RHEL 6.x It might, but I don't know the exact root cause of your problem so I couldn't say for sure. > >> I went through the kernel updates for CentOS 5.10 (newer kernel), > >> but didn't see any xfs related fixes since CentOS 5.9 > > > That's something you need to talk to your distro maintainers about.... > > I was worried you gonna say that :) Theres only so much that upstream can do to support heavily patched, 6 year old distro kernels. > What are my options at this point? Am I correct to assume that the issue > is related to the load and if I manage to decrease the load, the issue > is not going to reproduce itself? It's more likely related to the layout of data and metadata on disk. > We have been using XFS on RHEL 5 > kernels for years and didn't see this issue. Now, the issue happens > consistently, but seems to be related to high load... There are several different potential causes - high load just iterates the problem space faster. > We have hundreds of these servers deployed in production right now, so > some way to address the current situation would be very welcomed. I'd suggest talking to Red Hat about what they can do to help you, especially as CentOS is a now RH distro.... Cheers, Dave. -- Dave Chinner david@fromorbit.com From dave@fromorbit.com Tue Jul 1 07:55:06 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: xfs@oss.sgi.com Delivered-To: xfs@oss.sgi.com Received: from relay.sgi.com (relay1.corp.sgi.com [137.38.102.111]) by oss.sgi.com (Postfix) with ESMTP id E7DA87F88 for ; Tue, 1 Jul 2014 07:55:05 -0500 (CDT) Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by relay1.corp.sgi.com (Postfix) with ESMTP id DE15C8F8052 for ; Tue, 1 Jul 2014 05:55:05 -0700 (PDT) X-ASG-Debug-ID: 1404219302-04cbb065361fb4d0002-NocioJ Received: from ipmail06.adl2.internode.on.net (ipmail06.adl2.internode.on.net [150.101.137.129]) by cuda.sgi.com with ESMTP id l1qweukYD8V5DYWC for ; Tue, 01 Jul 2014 05:55:04 -0700 (PDT) X-Barracuda-Envelope-From: dave@fromorbit.com X-Barracuda-Apparent-Source-IP: 150.101.137.129 X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: ApJPAIWuslN5LHZ8PGdsb2JhbABagw2sXQEBAQEBBptPFwQBAQEBODWEAwEBBScvIxAIGDE5AwcUGYhByEaFb4lNhC0Fsjwr Received: from ppp121-44-118-124.lns20.syd6.internode.on.net (HELO dastard) ([121.44.118.124]) by ipmail06.adl2.internode.on.net with ESMTP; 01 Jul 2014 22:25:01 +0930 Received: from disappointment.disaster.area ([192.168.1.110] helo=disappointment) by dastard with esmtp (Exim 4.80) (envelope-from ) id 1X1xaN-00071i-AF; Tue, 01 Jul 2014 22:54:59 +1000 Received: from dave by disappointment with local (Exim 4.82_1-5b7a7c0-XX) (envelope-from ) id 1X1xaN-0007dm-9D; Tue, 01 Jul 2014 22:54:59 +1000 From: Dave Chinner To: xfs@oss.sgi.com Cc: arekm@maven.pl Subject: [PATCH 1/4] repair: handle directory block corruption in phase 6 Date: Tue, 1 Jul 2014 22:54:53 +1000 X-ASG-Orig-Subj: [PATCH 1/4] repair: handle directory block corruption in phase 6 Message-Id: <1404219296-29302-2-git-send-email-david@fromorbit.com> X-Mailer: git-send-email 2.0.0 In-Reply-To: <1404219296-29302-1-git-send-email-david@fromorbit.com> References: <1404219296-29302-1-git-send-email-david@fromorbit.com> X-Barracuda-Connect: ipmail06.adl2.internode.on.net[150.101.137.129] X-Barracuda-Start-Time: 1404219303 X-Barracuda-URL: http://192.48.176.25:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 X-Barracuda-Spam-Score: 0.00 X-Barracuda-Spam-Status: No, SCORE=0.00 using per-user scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.7 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.7139 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- From: Dave Chinner This should only occur in no-modify mode, but when we fail to find the last extent in a directory btree due to corruption we need to trash the directory if it's the first data block we find the error on. That is because there is nothing to recover from the directory, and if we try to scan it xfs_reapir segv's because nothing has been read from disk. Also catch a memory allocation failure in this code, too. Signed-off-by: Dave Chinner --- repair/phase6.c | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) diff --git a/repair/phase6.c b/repair/phase6.c index 9b10f16..47ecad4 100644 --- a/repair/phase6.c +++ b/repair/phase6.c @@ -2179,7 +2179,7 @@ longform_dir2_entry_check(xfs_mount_t *mp, freetab = malloc(FREETAB_SIZE(ip->i_d.di_size / mp->m_dirblksize)); if (!freetab) { do_error( - _("malloc failed in longform_dir2_entry_check (%" PRId64 " bytes)\n"), +_("malloc failed in longform_dir2_entry_check (%" PRId64 " bytes)\n"), FREETAB_SIZE(ip->i_d.di_size / mp->m_dirblksize)); exit(1); } @@ -2191,6 +2191,11 @@ longform_dir2_entry_check(xfs_mount_t *mp, } num_bps = freetab->naents; bplist = calloc(num_bps, sizeof(struct xfs_buf*)); + if (!bplist) + do_error( +_("calloc failed in longform_dir2_entry_check (%zu bytes)\n"), + num_bps * sizeof(struct xfs_buf*)); + /* is this a block, leaf, or node directory? */ libxfs_dir2_isblock(NULL, ip, &isblock); libxfs_dir2_isleaf(NULL, ip, &isleaf); @@ -2203,8 +2208,18 @@ longform_dir2_entry_check(xfs_mount_t *mp, int error; next_da_bno = da_bno + mp->m_dirblkfsbs - 1; - if (bmap_next_offset(NULL, ip, &next_da_bno, XFS_DATA_FORK)) + if (bmap_next_offset(NULL, ip, &next_da_bno, XFS_DATA_FORK)) { + /* + * if this is the first block, there isn't anything we + * can recover so we just trash it. + */ + if (da_bno == 0) { + fixit++; + goto out_fix; + } break; + } + db = xfs_dir2_da_to_db(mp, da_bno); if (db >= num_bps) { /* more data blocks than expected */ -- 2.0.0 From dave@fromorbit.com Tue Jul 1 07:55:07 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: xfs@oss.sgi.com Delivered-To: xfs@oss.sgi.com Received: from relay.sgi.com (relay2.corp.sgi.com [137.38.102.29]) by oss.sgi.com (Postfix) with ESMTP id EE9D87F88 for ; Tue, 1 Jul 2014 07:55:07 -0500 (CDT) Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by relay2.corp.sgi.com (Postfix) with ESMTP id EDC7D304064 for ; Tue, 1 Jul 2014 05:55:04 -0700 (PDT) X-ASG-Debug-ID: 1404219302-04cbb065361fb4d0001-NocioJ Received: from ipmail06.adl2.internode.on.net (ipmail06.adl2.internode.on.net [150.101.137.129]) by cuda.sgi.com with ESMTP id AhNcBhj2OQFGMAA1 for ; Tue, 01 Jul 2014 05:55:03 -0700 (PDT) X-Barracuda-Envelope-From: dave@fromorbit.com X-Barracuda-Apparent-Source-IP: 150.101.137.129 X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: ApJPAIWuslN5LHZ8PGdsb2JhbABagw2sXQEBAQEBBpcshCMXBAEBAQE4NYRgIxiBAgMHiG7IRoVviU2ELQWyPCs Received: from ppp121-44-118-124.lns20.syd6.internode.on.net (HELO dastard) ([121.44.118.124]) by ipmail06.adl2.internode.on.net with ESMTP; 01 Jul 2014 22:25:01 +0930 Received: from disappointment.disaster.area ([192.168.1.110] helo=disappointment) by dastard with esmtp (Exim 4.80) (envelope-from ) id 1X1xaN-00071h-AF; Tue, 01 Jul 2014 22:54:59 +1000 Received: from dave by disappointment with local (Exim 4.82_1-5b7a7c0-XX) (envelope-from ) id 1X1xaN-0007dj-8e; Tue, 01 Jul 2014 22:54:59 +1000 From: Dave Chinner To: xfs@oss.sgi.com Cc: arekm@maven.pl Subject: [PATCH 0/4] repair: fixes for 3.2 Date: Tue, 1 Jul 2014 22:54:52 +1000 X-ASG-Orig-Subj: [PATCH 0/4] repair: fixes for 3.2 Message-Id: <1404219296-29302-1-git-send-email-david@fromorbit.com> X-Mailer: git-send-email 2.0.0 X-Barracuda-Connect: ipmail06.adl2.internode.on.net[150.101.137.129] X-Barracuda-Start-Time: 1404219302 X-Barracuda-URL: http://192.48.176.25:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 X-Barracuda-Spam-Score: 0.00 X-Barracuda-Spam-Status: No, SCORE=0.00 using per-user scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.7 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.7139 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- Hi Arkadiusz, These are the fixes I have so far from working through the metadumps you supplied me with. The unobfuscated metadump repairs cleanly with these patches, but the obfuscated one still has a directory rebuild issue that I haven't got to the bottom of yet. That results in an error in phase 6 like: Metadata corruption detected at block 0x2af84770/0x1000 name create failed in ino 2306912354 (117), filesystem may be out of space It appears that a read verifier is on a recently created directory leaf block and that is failing. I'm not yet sure why the leaf block is corrupt, nor why the verifier is even being run on it seeing as it was only allocated and initialised during the directory rebuild. That directory rebuil dfailure is the reason for all the disconected inode that end up in lost+found, and I think it's the only remaining issue that I need to solve. Can you test the patches on you machine and see if you get the same results? Cheers, Dave. From dave@fromorbit.com Tue Jul 1 07:55:08 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: xfs@oss.sgi.com Delivered-To: xfs@oss.sgi.com Received: from relay.sgi.com (relay2.corp.sgi.com [137.38.102.29]) by oss.sgi.com (Postfix) with ESMTP id AD6FC7F90 for ; Tue, 1 Jul 2014 07:55:08 -0500 (CDT) Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by relay2.corp.sgi.com (Postfix) with ESMTP id 87E13304067 for ; Tue, 1 Jul 2014 05:55:08 -0700 (PDT) X-ASG-Debug-ID: 1404219302-04cbb065361fb4d0003-NocioJ Received: from ipmail06.adl2.internode.on.net (ipmail06.adl2.internode.on.net [150.101.137.129]) by cuda.sgi.com with ESMTP id U7GCoXT625VLCx7l for ; Tue, 01 Jul 2014 05:55:05 -0700 (PDT) X-Barracuda-Envelope-From: dave@fromorbit.com X-Barracuda-Apparent-Source-IP: 150.101.137.129 X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: ApJPAIWuslN5LHZ8PGdsb2JhbABagw2sXQEBAQEBBptPFwQBAQEBODWEAwEBBScvIxAIGDE5AwcUGYhByEaFb416BbI8Kw Received: from ppp121-44-118-124.lns20.syd6.internode.on.net (HELO dastard) ([121.44.118.124]) by ipmail06.adl2.internode.on.net with ESMTP; 01 Jul 2014 22:25:01 +0930 Received: from disappointment.disaster.area ([192.168.1.110] helo=disappointment) by dastard with esmtp (Exim 4.80) (envelope-from ) id 1X1xaN-00071l-Bp; Tue, 01 Jul 2014 22:54:59 +1000 Received: from dave by disappointment with local (Exim 4.82_1-5b7a7c0-XX) (envelope-from ) id 1X1xaN-0007e1-Ax; Tue, 01 Jul 2014 22:54:59 +1000 From: Dave Chinner To: xfs@oss.sgi.com Cc: arekm@maven.pl Subject: [PATCH 4/4] repair: get rid of BADFSINO Date: Tue, 1 Jul 2014 22:54:56 +1000 X-ASG-Orig-Subj: [PATCH 4/4] repair: get rid of BADFSINO Message-Id: <1404219296-29302-5-git-send-email-david@fromorbit.com> X-Mailer: git-send-email 2.0.0 In-Reply-To: <1404219296-29302-1-git-send-email-david@fromorbit.com> References: <1404219296-29302-1-git-send-email-david@fromorbit.com> X-Barracuda-Connect: ipmail06.adl2.internode.on.net[150.101.137.129] X-Barracuda-Start-Time: 1404219305 X-Barracuda-URL: http://192.48.176.25:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 X-Barracuda-Spam-Score: 0.00 X-Barracuda-Spam-Status: No, SCORE=0.00 using per-user scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.7 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.7139 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- From: Dave Chinner When we find a bad dirent, we "clear" the inode the inode number by writing BADFSINO to the inode number in the entry: #define BADFSINO ((xfs_ino_t)0xfeffffffffffffffULL) We then capture this bad inode number later in the same function either in the same pass or in a later phase and junk the entry. When we junk the entry, we write a "/" over the first character of the dirent name, which is then detected up later by the directory rebuild and ignored. The issue with this is that the directory buffer can be written to disk between the dirent being marked with BADFSINO and the directory rebuild processing in phase 6, resulting in the directory block verifier firing this error: Invalid inode number 0xfeffffffffffffff xfs_dir_ino_validate: XFS_ERROR_REPORT Metadata corruption detected at block 0x11fbb698/0x1000 libxfs_writebufr: write verifer failed on bno 0x11fbb698/0x1000 And so will not write the *corrupt block* to disk. The result is that we don't repair a corruption in the directory block correctly and subsequent repair runs continue to find problems with the directory. We really don't need both BADFSINO *and* overwriting the dirent name with "/" to mark an entry as junked. They both mean exactly the same thing, so get rid of BADFSINO and only use the name junking to mark dirents as bad. This prevents the directory data block verifier from triggering on bad inode numbers, and so the later reread of the block will find the junked entries correctly. Signed-off-by: Dave Chinner --- repair/dir2.c | 18 +++++------------- 1 file changed, 5 insertions(+), 13 deletions(-) diff --git a/repair/dir2.c b/repair/dir2.c index 14c1435..ef0d377 100644 --- a/repair/dir2.c +++ b/repair/dir2.c @@ -28,13 +28,6 @@ #include "progress.h" /* - * Tag bad directory entries with this. - * We can't tag them with -1 since that will look like a - * data_unused_t instead of a data_entry_t. - */ -#define BADFSINO ((xfs_ino_t)0xfeffffffffffffffULL) - -/* * Known bad inode list. These are seen when the leaf and node * block linkages are incorrect. */ @@ -1314,7 +1307,7 @@ process_dir2_data( * Conditions must either set clearino to zero or set * clearreason why it's being cleared. */ - if (!ino_discovery && ent_ino == BADFSINO) { + if (!ino_discovery && dep->name[0] == '/') { /* * Don't do a damned thing. We already found this * (or did it ourselves) during phase 3. @@ -1401,8 +1394,7 @@ _("entry at block %u offset %" PRIdPTR " in directory inode %" PRIu64 do_warn( _("\tclearing inode number in entry at offset %" PRIdPTR "...\n"), (intptr_t)ptr - (intptr_t)d); - dep->inumber = cpu_to_be64(BADFSINO); - ent_ino = BADFSINO; + dep->name[0] = '/'; *dirty = 1; } else { do_warn( @@ -1415,7 +1407,7 @@ _("\twould clear inode number in entry at offset %" PRIdPTR "...\n"), * discovery is turned on). Otherwise, we'd complain a lot * during phase 4. */ - junkit = ent_ino == BADFSINO; + junkit = dep->name[0] == '/'; nm_illegal = namecheck((char *)dep->name, dep->namelen); if (ino_discovery && nm_illegal) { do_warn( @@ -1427,11 +1419,11 @@ _("entry at block %u offset %" PRIdPTR " in directory inode %" PRIu64 " has ille /* * Now we can mark entries with BADFSINO's bad. */ - if (!no_modify && ent_ino == BADFSINO) { - dep->name[0] = '/'; + if (!no_modify && dep->name[0] == '/') { *dirty = 1; junkit = 0; } + /* * Special .. entry processing. */ -- 2.0.0 From dave@fromorbit.com Tue Jul 1 07:55:08 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: xfs@oss.sgi.com Delivered-To: xfs@oss.sgi.com Received: from relay.sgi.com (relay1.corp.sgi.com [137.38.102.111]) by oss.sgi.com (Postfix) with ESMTP id AE8C47F91 for ; Tue, 1 Jul 2014 07:55:08 -0500 (CDT) Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by relay1.corp.sgi.com (Postfix) with ESMTP id 8E8AF8F8052 for ; Tue, 1 Jul 2014 05:55:08 -0700 (PDT) X-ASG-Debug-ID: 1404219305-04cbb065351fb4d0001-NocioJ Received: from ipmail06.adl2.internode.on.net (ipmail06.adl2.internode.on.net [150.101.137.129]) by cuda.sgi.com with ESMTP id QWiQ0bMMBSQJsBVB for ; Tue, 01 Jul 2014 05:55:06 -0700 (PDT) X-Barracuda-Envelope-From: dave@fromorbit.com X-Barracuda-Apparent-Source-IP: 150.101.137.129 X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: Ap1PAIWuslN5LHZ8PGdsb2JhbABagw2sXQEBAQEBBppFgQoXBAEBAQE4NYQDAQEFJy8jEAgYMTkDBxQZiEHIRoVviGNChFUFsjwrgTI Received: from ppp121-44-118-124.lns20.syd6.internode.on.net (HELO dastard) ([121.44.118.124]) by ipmail06.adl2.internode.on.net with ESMTP; 01 Jul 2014 22:25:01 +0930 Received: from disappointment.disaster.area ([192.168.1.110] helo=disappointment) by dastard with esmtp (Exim 4.80) (envelope-from ) id 1X1xaN-00071k-BG; Tue, 01 Jul 2014 22:54:59 +1000 Received: from dave by disappointment with local (Exim 4.82_1-5b7a7c0-XX) (envelope-from ) id 1X1xaN-0007dw-AJ; Tue, 01 Jul 2014 22:54:59 +1000 From: Dave Chinner To: xfs@oss.sgi.com Cc: arekm@maven.pl Subject: [PATCH 3/4] repair: fix quota inode handling in secondary superblocks Date: Tue, 1 Jul 2014 22:54:55 +1000 X-ASG-Orig-Subj: [PATCH 3/4] repair: fix quota inode handling in secondary superblocks Message-Id: <1404219296-29302-4-git-send-email-david@fromorbit.com> X-Mailer: git-send-email 2.0.0 In-Reply-To: <1404219296-29302-1-git-send-email-david@fromorbit.com> References: <1404219296-29302-1-git-send-email-david@fromorbit.com> X-Barracuda-Connect: ipmail06.adl2.internode.on.net[150.101.137.129] X-Barracuda-Start-Time: 1404219305 X-Barracuda-URL: http://192.48.176.25:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 X-Barracuda-Spam-Score: 0.00 X-Barracuda-Spam-Status: No, SCORE=0.00 using per-user scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.7 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.7139 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- From: Dave Chinner Changes to support separate project quota inodes changed the way quota inodes got written to the superblock. The current code is tailored for the needs to the kernel, where the inodes should only be written if certain falgs are set saying a quota type is enabled. Unfortunately, when recovering a corrupt secondary superblock, we need to unconditionally write the quota inode fields after we unconditionally zero the quota flags field. The result of this bug is that the bad quota inode fields cannot be cleared and hence always are reported by bad by repair in subsequent runs. Fix this by directly clearing the quota inodes in the superblock buffers so that we do need to set special flags to get xfs_sb_to_disk() to do the right thing as setting flags leave bad flag values in the superblock instead of bad inode numbers.... Also, when clearing the inode numbers, write them as NULLFSINO rather than 0 as this is what the kernel will write them as if quota is turned off. Signed-off-by: Dave Chinner --- include/libxfs.h | 1 + libxfs/rdwr.c | 4 ++-- repair/agheader.c | 52 ++++++++++++++++++++++++++++++++++------------------ repair/sb.c | 2 ++ repair/scan.c | 1 + repair/xfs_repair.c | 1 + 6 files changed, 41 insertions(+), 20 deletions(-) diff --git a/include/libxfs.h b/include/libxfs.h index 7203d79..45a924f 100644 --- a/include/libxfs.h +++ b/include/libxfs.h @@ -759,6 +759,7 @@ bool xfs_dinode_verify(struct xfs_mount *mp, xfs_ino_t ino, /* xfs_sb.h */ #define libxfs_mod_sb xfs_mod_sb #define libxfs_sb_from_disk xfs_sb_from_disk +#define libxfs_sb_quota_from_disk xfs_sb_quota_from_disk #define libxfs_sb_to_disk xfs_sb_to_disk /* xfs_symlink.h */ diff --git a/libxfs/rdwr.c b/libxfs/rdwr.c index 28f8f36..88f84ac 100644 --- a/libxfs/rdwr.c +++ b/libxfs/rdwr.c @@ -907,10 +907,10 @@ libxfs_writebufr(xfs_buf_t *bp) } #ifdef IO_DEBUG - printf("%lx: %s: wrote %u bytes, blkno=%llu(%llu), %p\n", + printf("%lx: %s: wrote %u bytes, blkno=%llu(%llu), %p, error %d\n", pthread_self(), __FUNCTION__, bp->b_bcount, (long long)LIBXFS_BBTOOFF64(bp->b_bn), - (long long)bp->b_bn, bp); + (long long)bp->b_bn, bp, error); #endif if (!error) { bp->b_flags |= LIBXFS_B_UPTODATE; diff --git a/repair/agheader.c b/repair/agheader.c index fc5dac9..2b84aab 100644 --- a/repair/agheader.c +++ b/repair/agheader.c @@ -245,13 +245,17 @@ compare_sb(xfs_mount_t *mp, xfs_sb_t *sb) * superblocks, not just the secondary superblocks. */ static int -secondary_sb_wack(xfs_mount_t *mp, xfs_buf_t *sbuf, xfs_sb_t *sb, - xfs_agnumber_t i) +secondary_sb_wack( + struct xfs_mount *mp, + struct xfs_buf *sbuf, + struct xfs_sb *sb, + xfs_agnumber_t i) { - int do_bzero; - int size; - char *ip; - int rval; + struct xfs_dsb *dsb = XFS_BUF_TO_SBP(sbuf); + int do_bzero = 0; + int size; + char *ip; + int rval = 0;; rval = do_bzero = 0; @@ -334,14 +338,22 @@ secondary_sb_wack(xfs_mount_t *mp, xfs_buf_t *sbuf, xfs_sb_t *sb, } /* - * quota inodes and flags in secondary superblocks - * are never set by mkfs. However, they could be set - * in a secondary if a fs with quotas was growfs'ed since - * growfs copies the new primary into the secondaries. + * quota inodes and flags in secondary superblocks are never set by + * mkfs. However, they could be set in a secondary if a fs with quotas + * was growfs'ed since growfs copies the new primary into the + * secondaries. Also, the kernel now writes the quota inodes when unused + * as NULLFSINO rather than zero, so rewrite the inodes if they are not + * NULLFSINO and inprogress is set. + * + * Finally, the in-core inode flags now have different meaning to the + * on-disk flags, and so libxfs_sb_to_disk cannot directly write the + * sb_gquotino/sb_pquotino fields without specific sb_qflags being set. + * Hence we need to zero it directly in the sb buffer here. */ - if (sb->sb_inprogress == 1 && sb->sb_uquotino) { + + if (sb->sb_inprogress == 1 && sb->sb_uquotino != NULLFSINO) { if (!no_modify) - sb->sb_uquotino = 0; + sb->sb_uquotino = NULLFSINO; if (sb->sb_versionnum & XR_PART_SECSB_VNMASK || !do_bzero) { rval |= XR_AG_SB; do_warn( @@ -352,9 +364,11 @@ secondary_sb_wack(xfs_mount_t *mp, xfs_buf_t *sbuf, xfs_sb_t *sb, rval |= XR_AG_SB_SEC; } - if (sb->sb_inprogress == 1 && sb->sb_gquotino) { - if (!no_modify) - sb->sb_gquotino = 0; + if (sb->sb_inprogress == 1 && sb->sb_gquotino != NULLFSINO) { + if (!no_modify) { + sb->sb_gquotino = NULLFSINO; + dsb->sb_gquotino = cpu_to_be64(NULLFSINO); + } if (sb->sb_versionnum & XR_PART_SECSB_VNMASK || !do_bzero) { rval |= XR_AG_SB; do_warn( @@ -365,9 +379,11 @@ secondary_sb_wack(xfs_mount_t *mp, xfs_buf_t *sbuf, xfs_sb_t *sb, rval |= XR_AG_SB_SEC; } - if (sb->sb_inprogress == 1 && sb->sb_pquotino) { - if (!no_modify) - sb->sb_pquotino = 0; + if (sb->sb_inprogress == 1 && sb->sb_pquotino != NULLFSINO) { + if (!no_modify) { + sb->sb_pquotino = NULLFSINO; + dsb->sb_pquotino = cpu_to_be64(NULLFSINO); + } if (sb->sb_versionnum & XR_PART_SECSB_VNMASK || !do_bzero) { rval |= XR_AG_SB; do_warn( diff --git a/repair/sb.c b/repair/sb.c index 5e0b0f2..bc421cc 100644 --- a/repair/sb.c +++ b/repair/sb.c @@ -138,6 +138,7 @@ find_secondary_sb(xfs_sb_t *rsb) for (i = 0; !done && i < bsize; i += BBSIZE) { c_bufsb = (char *)sb + i; libxfs_sb_from_disk(&bufsb, (xfs_dsb_t *)c_bufsb); + libxfs_sb_quota_from_disk(&bufsb); if (verify_sb(c_bufsb, &bufsb, 0) != XR_OK) continue; @@ -538,6 +539,7 @@ get_sb(xfs_sb_t *sbp, xfs_off_t off, int size, xfs_agnumber_t agno) do_error("%s\n", strerror(error)); } libxfs_sb_from_disk(sbp, buf); + libxfs_sb_quota_from_disk(sbp); rval = verify_sb((char *)buf, sbp, agno == 0); free(buf); diff --git a/repair/scan.c b/repair/scan.c index 1b64d8b..f29ff8d 100644 --- a/repair/scan.c +++ b/repair/scan.c @@ -1496,6 +1496,7 @@ scan_ag( goto out_free_sb; } libxfs_sb_from_disk(sb, XFS_BUF_TO_SBP(sbbuf)); + libxfs_sb_quota_from_disk(sb); agfbuf = libxfs_readbuf(mp->m_dev, XFS_AG_DADDR(mp, agno, XFS_AGF_DADDR(mp)), diff --git a/repair/xfs_repair.c b/repair/xfs_repair.c index 9eb2fa4..8a3e825 100644 --- a/repair/xfs_repair.c +++ b/repair/xfs_repair.c @@ -782,6 +782,7 @@ main(int argc, char **argv) /* make sure the per-ag freespace maps are ok so we can mount the fs */ phase2(mp, phase2_threads); timestamp(PHASE_END, 2, NULL); + libxfs_bcache_flush(); if (do_prefetch) init_prefetch(mp); -- 2.0.0 From dave@fromorbit.com Tue Jul 1 07:55:09 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: xfs@oss.sgi.com Delivered-To: xfs@oss.sgi.com Received: from relay.sgi.com (relay2.corp.sgi.com [137.38.102.29]) by oss.sgi.com (Postfix) with ESMTP id 7D20D7F90 for ; Tue, 1 Jul 2014 07:55:09 -0500 (CDT) Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by relay2.corp.sgi.com (Postfix) with ESMTP id 7CB2D304067 for ; Tue, 1 Jul 2014 05:55:09 -0700 (PDT) X-ASG-Debug-ID: 1404219304-04cb6c76cf3c5300001-NocioJ Received: from ipmail06.adl2.internode.on.net (ipmail06.adl2.internode.on.net [150.101.137.129]) by cuda.sgi.com with ESMTP id z56iQ5VNokTuhNp8 for ; Tue, 01 Jul 2014 05:55:05 -0700 (PDT) X-Barracuda-Envelope-From: dave@fromorbit.com X-Barracuda-Apparent-Source-IP: 150.101.137.129 X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: ApJPAIWuslN5LHZ8PGdsb2JhbABagw2sXQEBAQEBBptPFwQBAQEBODWEAwEBBScvIxAIGDE5AwcUGYhByEaFb4lNhC0Fsjwr Received: from ppp121-44-118-124.lns20.syd6.internode.on.net (HELO dastard) ([121.44.118.124]) by ipmail06.adl2.internode.on.net with ESMTP; 01 Jul 2014 22:25:01 +0930 Received: from disappointment.disaster.area ([192.168.1.110] helo=disappointment) by dastard with esmtp (Exim 4.80) (envelope-from ) id 1X1xaN-00071j-Ai; Tue, 01 Jul 2014 22:54:59 +1000 Received: from dave by disappointment with local (Exim 4.82_1-5b7a7c0-XX) (envelope-from ) id 1X1xaN-0007dr-9o; Tue, 01 Jul 2014 22:54:59 +1000 From: Dave Chinner To: xfs@oss.sgi.com Cc: arekm@maven.pl Subject: [PATCH 2/4] libxfs: buffers aren't stale once written Date: Tue, 1 Jul 2014 22:54:54 +1000 X-ASG-Orig-Subj: [PATCH 2/4] libxfs: buffers aren't stale once written Message-Id: <1404219296-29302-3-git-send-email-david@fromorbit.com> X-Mailer: git-send-email 2.0.0 In-Reply-To: <1404219296-29302-1-git-send-email-david@fromorbit.com> References: <1404219296-29302-1-git-send-email-david@fromorbit.com> X-Barracuda-Connect: ipmail06.adl2.internode.on.net[150.101.137.129] X-Barracuda-Start-Time: 1404219304 X-Barracuda-URL: http://192.48.176.15:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 X-Barracuda-Spam-Score: 0.00 X-Barracuda-Spam-Status: No, SCORE=0.00 using per-user scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.7 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.7139 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- From: Dave Chinner When rebuilding a bad directory, repair first truncates away all the blocks in the directory. This removes blocks from the bmap btree, and when those blocks are freed the bmap btree code invalidates them. This marks the buffers LIBXFS_B_STALE so that we don't try to write stale data from that buffer at a later time. However, when rebuilding the directory, the block gets reallocated and new metadata gets written into it. however, it is still marked stale and hence the new, corrected metadata is never written. Hence if we write new metadata to a stale buffer, we have to clear the LIBXFS_B_STALE flag to ensure that the new data gets written. Note that this can affect more than just bmap btree buffers - there are several different places in the libxfs code that mark buffers stale via xfs_trans_binval() during repair operations. Signed-off-by: Dave Chinner --- libxfs/rdwr.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/libxfs/rdwr.c b/libxfs/rdwr.c index 981f2ba..28f8f36 100644 --- a/libxfs/rdwr.c +++ b/libxfs/rdwr.c @@ -928,6 +928,7 @@ libxfs_writebuf_int(xfs_buf_t *bp, int flags) * subsequent reads after this write from seeing stale errors. */ bp->b_error = 0; + bp->b_flags &= ~LIBXFS_B_STALE; bp->b_flags |= (LIBXFS_B_DIRTY | flags); return 0; } @@ -946,6 +947,7 @@ libxfs_writebuf(xfs_buf_t *bp, int flags) * subsequent reads after this write from seeing stale errors. */ bp->b_error = 0; + bp->b_flags &= ~LIBXFS_B_STALE; bp->b_flags |= (LIBXFS_B_DIRTY | flags); libxfs_putbuf(bp); return 0; -- 2.0.0 From arekm@maven.pl Tue Jul 1 08:41:08 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=T_DKIM_INVALID autolearn=ham version=3.3.1 X-Original-To: xfs@oss.sgi.com Delivered-To: xfs@oss.sgi.com Received: from relay.sgi.com (relay1.corp.sgi.com [137.38.102.111]) by oss.sgi.com (Postfix) with ESMTP id D02D77F93 for ; Tue, 1 Jul 2014 08:41:08 -0500 (CDT) Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by relay1.corp.sgi.com (Postfix) with ESMTP id B29378F8033 for ; Tue, 1 Jul 2014 06:41:05 -0700 (PDT) X-ASG-Debug-ID: 1404222062-04cb6c76cf3c6c70001-NocioJ Received: from mail-we0-f169.google.com (mail-we0-f169.google.com [74.125.82.169]) by cuda.sgi.com with ESMTP id 8HHE6vklwj9SrtB2 (version=TLSv1 cipher=RC4-SHA bits=128 verify=NO) for ; Tue, 01 Jul 2014 06:41:03 -0700 (PDT) X-Barracuda-Envelope-From: arekm@maven.pl X-Barracuda-Apparent-Source-IP: 74.125.82.169 Received: by mail-we0-f169.google.com with SMTP id t60so9766537wes.14 for ; Tue, 01 Jul 2014 06:41:02 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=maven.pl; s=maven; h=from:to:subject:date:user-agent:cc:references:in-reply-to :mime-version:content-type:content-transfer-encoding:message-id; bh=NbFhqlFJaKyN+u51IVPT7I2pN+ADxVrio6HaKZAc53c=; b=HPL6gKd3wKjJKjQ4/mO3uBzt5Rfbao/dVY5ddEe3V2b0J9q3GqdZ8t3hIJzJ+OOXsI IGTZiCbiC+VqYY/d7c0V9pybPWa2oAWJC4Gl1wlb4dnuHiNJfVYEcwHoLV88l4f8aVVf ZWIdcOebbO+PQ2DTUaT7k0dq2KjVsOCNZnqKI= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:from:to:subject:date:user-agent:cc:references :in-reply-to:mime-version:content-type:content-transfer-encoding :message-id; bh=NbFhqlFJaKyN+u51IVPT7I2pN+ADxVrio6HaKZAc53c=; b=Iaa87luMd3D+98EkGgRW/YoX3bE1NLdH4o7dv4KekKVIvYFfD5/UMbKnLSmxfaXHk5 QMTedcPch7mj6g0NGa+WoqFQmuIUL7qils/W9vS4uUieMUdjqSlJHBOgHRF7vwsChoyI 604IpRsiC/rVX82epyTUl46Ez+NKMvmsryz3/kYuZBUHzbVlx7Snt6QVr+me3PoIgSXJ gdq6ZxWMcmzAg+Xt371QS2U/Zcol8S5ozzBVzZpTq+grLotH//Ivc54wntMuWR3xe5vl ptVreQlwkOt6L1oTUzRFADEKdfx2LfugScVi+3c7tSqIdAgENkexCllMR0+S4C4bEAbf ZcWw== X-Gm-Message-State: ALoCoQlyrY761GgY2rgTaZht72UX4k73NPo7UiA8mRQi653IytWAYMNI3DkAGWZo+LWoiqV/EQQb X-Received: by 10.194.83.39 with SMTP id n7mr53105184wjy.58.1404222059149; Tue, 01 Jul 2014 06:40:59 -0700 (PDT) Received: from t400.localnet ([91.234.176.246]) by mx.google.com with ESMTPSA id oy4sm48256273wjb.41.2014.07.01.06.40.58 for (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Tue, 01 Jul 2014 06:40:58 -0700 (PDT) From: Arkadiusz =?utf-8?q?Mi=C5=9Bkiewicz?= To: Dave Chinner Subject: Re: [PATCH 0/4] repair: fixes for 3.2 Date: Tue, 1 Jul 2014 15:40:56 +0200 X-ASG-Orig-Subj: Re: [PATCH 0/4] repair: fixes for 3.2 User-Agent: KMail/1.13.7 (Linux/3.16.0-rc3-00006-g16874b2; KDE/4.13.2; x86_64; ; ) Cc: xfs@oss.sgi.com References: <1404219296-29302-1-git-send-email-david@fromorbit.com> In-Reply-To: <1404219296-29302-1-git-send-email-david@fromorbit.com> MIME-Version: 1.0 Content-Type: Text/Plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <201407011540.57511.arekm@maven.pl> X-Barracuda-Connect: mail-we0-f169.google.com[74.125.82.169] X-Barracuda-Start-Time: 1404222063 X-Barracuda-Encrypted: RC4-SHA X-Barracuda-URL: http://192.48.176.15:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 X-Barracuda-Spam-Score: 0.00 X-Barracuda-Spam-Status: No, SCORE=0.00 using per-user scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.7 tests=DKIM_SIGNED, DKIM_VERIFIED X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.7139 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- -0.00 DKIM_VERIFIED Domain Keys Identified Mail: signature passes verification 0.00 DKIM_SIGNED Domain Keys Identified Mail: message has a signature On Tuesday 01 of July 2014, Dave Chinner wrote: > Hi Arkadiusz, >=20 > These are the fixes I have so far from working through the metadumps > you supplied me with. The unobfuscated metadump repairs cleanly with > these patches, but the obfuscated one still has a directory rebuild > issue that I haven't got to the bottom of yet. That results in > an error in phase 6 like: >=20 > Metadata corruption detected at block 0x2af84770/0x1000 > name create failed in ino 2306912354 (117), filesystem may be out of space >=20 > It appears that a read verifier is on a recently created > directory leaf block and that is failing. I'm not yet sure why the > leaf block is corrupt, nor why the verifier is even being run on it > seeing as it was only allocated and initialised during the directory > rebuild. That directory rebuil dfailure is the reason for all the > disconected inode that end up in lost+found, and I think it's the > only remaining issue that I need to solve. >=20 > Can you test the patches on you machine and see if you get the same > results? Testing on non obfuscated image here. Most of issues got fixed, first xfs_repair run: http://ixion.pld-linux.org/~arekm/p2/x1/repair-3.2-dchinner1-4patches-run1.= txt=20 second xfs_repair run (reports no problems): http://ixion.pld-linux.org/~arekm/p2/x1/repair-3.2-dchinner1-4patches-run2.= txt When trying to mount "XFS (loop0): Failed to initialize disk quotas." so this issue left. Question: Phase 2 - using internal log - zero log... zero_log: head block 2 tail block 2 - scan filesystem freespace and inode maps... Metadata CRC error detected at block 0x0/0x200 Is "Metadata CRC error detected at block" expected here? I mean v4 fs, so n= o=20 CRC. Thanks a lot for the fixes. > Cheers, >=20 > Dave. =2D-=20 Arkadiusz Mi=C5=9Bkiewicz, arekm / maven.pl From arekm@maven.pl Tue Jul 1 08:44:02 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=T_DKIM_INVALID autolearn=ham version=3.3.1 X-Original-To: xfs@oss.sgi.com Delivered-To: xfs@oss.sgi.com Received: from relay.sgi.com (relay2.corp.sgi.com [137.38.102.29]) by oss.sgi.com (Postfix) with ESMTP id 1A1D27F96 for ; Tue, 1 Jul 2014 08:44:02 -0500 (CDT) Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by relay2.corp.sgi.com (Postfix) with ESMTP id F25C230407A for ; Tue, 1 Jul 2014 06:43:58 -0700 (PDT) X-ASG-Debug-ID: 1404222236-04cbb065361fcf60001-NocioJ Received: from mail-wi0-f172.google.com (mail-wi0-f172.google.com [209.85.212.172]) by cuda.sgi.com with ESMTP id Eet8AHqTr7djaMHF (version=TLSv1 cipher=RC4-SHA bits=128 verify=NO) for ; Tue, 01 Jul 2014 06:43:57 -0700 (PDT) X-Barracuda-Envelope-From: arekm@maven.pl X-Barracuda-Apparent-Source-IP: 209.85.212.172 Received: by mail-wi0-f172.google.com with SMTP id hi2so7874469wib.5 for ; Tue, 01 Jul 2014 06:43:51 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=maven.pl; s=maven; h=from:to:subject:date:user-agent:cc:references:in-reply-to :mime-version:content-type:content-transfer-encoding:message-id; bh=zQC1jaS/na4Klqx3FgKdmaRS7KlsqdRWI75rb2PALpg=; b=ldPmh2M249sIKLg3XdP4AG7FNC5vzSKiootZLxCQI13LQU1PotHTwH2hvHHny5GgnL MQQBO0eQxwNfm6/25OxYQFCgETc49hNW2o/hDl+DyxskqxVfY4eLkp9BKEJa5xypkVdP RebJ1rg5YilKEI+FHUoq7NYeT33Hb6NH5HrEc= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:from:to:subject:date:user-agent:cc:references :in-reply-to:mime-version:content-type:content-transfer-encoding :message-id; bh=zQC1jaS/na4Klqx3FgKdmaRS7KlsqdRWI75rb2PALpg=; b=GgM1KDKXZzITUR9U4+ka7jQdmsg+fJE1GI3EkifriYLqofvuvjwABXvdHi2tFArwIS TkI4MHXGL831tG8PjFQwo+PIQLQa81vaG74H0nAUpLhep/yW2Fi7/mxuKOtIhIEpvEXV 92p0jBV7H/7Pv/EBS0Aq/Dt+15lD6MOh9iYWzLW4MJi/WyRQaBN0Ce4BqzHRyw2eikq2 ovErytsepvbT6Hith0iNXsT9VAU79hu6EVdS2JqFvpv+PFs0In7iXKRRObz+I+sdJAik 1zBSHP2pfW8qkuK18kHnbyFvaG0doGq4+ZXgrSHvFnKndTviaHrObmnA8nC3Ha7mknmE 6y5w== X-Gm-Message-State: ALoCoQmM7/KyG+qzp8adBUovcKx+ypkfomp/uU8IkXiCyG+529gs+Lwe/Y2/+zwUzxxu9I17pxwf X-Received: by 10.180.73.230 with SMTP id o6mr36099226wiv.30.1404222231452; Tue, 01 Jul 2014 06:43:51 -0700 (PDT) Received: from t400.localnet ([91.234.176.246]) by mx.google.com with ESMTPSA id wu6sm48264979wjb.46.2014.07.01.06.43.50 for (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Tue, 01 Jul 2014 06:43:50 -0700 (PDT) From: Arkadiusz =?utf-8?q?Mi=C5=9Bkiewicz?= To: Dave Chinner Subject: Re: [PATCH 4/4] repair: get rid of BADFSINO Date: Tue, 1 Jul 2014 15:43:49 +0200 X-ASG-Orig-Subj: Re: [PATCH 4/4] repair: get rid of BADFSINO User-Agent: KMail/1.13.7 (Linux/3.16.0-rc3-00006-g16874b2; KDE/4.13.2; x86_64; ; ) Cc: xfs@oss.sgi.com References: <1404219296-29302-1-git-send-email-david@fromorbit.com> <1404219296-29302-5-git-send-email-david@fromorbit.com> In-Reply-To: <1404219296-29302-5-git-send-email-david@fromorbit.com> MIME-Version: 1.0 Content-Type: Text/Plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <201407011543.49828.arekm@maven.pl> X-Barracuda-Connect: mail-wi0-f172.google.com[209.85.212.172] X-Barracuda-Start-Time: 1404222237 X-Barracuda-Encrypted: RC4-SHA X-Barracuda-URL: http://192.48.176.25:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 X-Barracuda-Spam-Score: 0.00 X-Barracuda-Spam-Status: No, SCORE=0.00 using per-user scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.7 tests=DKIM_SIGNED, DKIM_VERIFIED X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.7140 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- -0.00 DKIM_VERIFIED Domain Keys Identified Mail: signature passes verification 0.00 DKIM_SIGNED Domain Keys Identified Mail: message has a signature On Tuesday 01 of July 2014, Dave Chinner wrote: > From: Dave Chinner > so get rid of BADFSINO and only use the name junking to mark > dirents as bad. This prevents the directory data block verifier from > triggering on bad inode numbers, and so the later reread of the > block will find the junked entries correctly. >=20 > Signed-off-by: Dave Chinner > --- > repair/dir2.c | 18 +++++------------- > 1 file changed, 5 insertions(+), 13 deletions(-) > @@ -1427,11 +1419,11 @@ _("entry at block %u offset %" PRIdPTR " in > directory inode %" PRIu64 " has ille /* > * Now we can mark entries with BADFSINO's bad. > */ Comment above needs update. > - if (!no_modify && ent_ino =3D=3D BADFSINO) { > - dep->name[0] =3D '/'; > + if (!no_modify && dep->name[0] =3D=3D '/') { > *dirty =3D 1; > junkit =3D 0; > } > + > /* > * Special .. entry processing. > */ =2D-=20 Arkadiusz Mi=C5=9Bkiewicz, arekm / maven.pl From alex@zadarastorage.com Tue Jul 1 10:06:48 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: **** X-Spam-Status: No, score=4.9 required=5.0 tests=STOX_REPLY_TYPE, STOX_REPLY_TYPE_WITHOUT_QUOTES autolearn=no version=3.3.1 X-Original-To: xfs@oss.sgi.com Delivered-To: xfs@oss.sgi.com Received: from relay.sgi.com (relay2.corp.sgi.com [137.38.102.29]) by oss.sgi.com (Postfix) with ESMTP id 2945C7FA5 for ; Tue, 1 Jul 2014 10:06:48 -0500 (CDT) Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by relay2.corp.sgi.com (Postfix) with ESMTP id E3BD530404E for ; Tue, 1 Jul 2014 08:06:44 -0700 (PDT) X-ASG-Debug-ID: 1404227199-04cb6c76d03ca450001-NocioJ Received: from mail-we0-f176.google.com (mail-we0-f176.google.com [74.125.82.176]) by cuda.sgi.com with ESMTP id uyxQZMJR3N4Em0BF (version=TLSv1 cipher=RC4-SHA bits=128 verify=NO) for ; Tue, 01 Jul 2014 08:06:40 -0700 (PDT) X-Barracuda-Envelope-From: alex@zadarastorage.com X-Barracuda-Apparent-Source-IP: 74.125.82.176 Received: by mail-we0-f176.google.com with SMTP id u56so9969214wes.35 for ; Tue, 01 Jul 2014 08:06:38 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:message-id:from:to:references:in-reply-to :subject:date:mime-version:content-type:content-transfer-encoding :importance; bh=gv/yg+7oYj3ry8LSvG6TOMYF9g3bwVozAWjrHtqAllc=; b=C8PnOOdAjScOzrpfr07Pf8mgItrqOg1+949DtMYDOMnCnre6wED29UeHybT9VDWHhr URJcZP/EyuKRSZpCvxQVYN1hzcc8hsxBrGNzVe31Dc5CskL7QdKS347O9ZJUGlACQMC/ k+u2KQcmwN+mE+nbE1Et3Gyb8gD6v/aC5wA9ksdYY2yzw+jhcpiB0D9HhchZy+CeQi1z DvpDA6c+X5pGYGZCjR+bDMJnp/ruUaDvBfTvgoaeJi88kFItZuz3EP6gw/6MVN6JI0C2 MfcjFUErYYXj3Rl7LdAR0AZABlf6bmRvXg/mjJXSMoBrejMA0dxTy6GCc7tG7wjvZKHa joaQ== X-Gm-Message-State: ALoCoQmKw/OzydBUKMEiphyS/PUYm1lsgkvu8po43kFCSMqV9eLoM34S7JFRzN6xH+GR8QXpMseK X-Received: by 10.180.188.144 with SMTP id ga16mr38002207wic.72.1404227197020; Tue, 01 Jul 2014 08:06:37 -0700 (PDT) Received: from alyakaslap ([212.143.144.103]) by mx.google.com with ESMTPSA id hc4sm48686908wjc.38.2014.07.01.08.06.35 for (version=TLSv1 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Tue, 01 Jul 2014 08:06:36 -0700 (PDT) Message-ID: <4B2A412C75324EE9880358513C069476@alyakaslap> From: "Alex Lyakas" To: References: <20131219105513.GZ31386@dastard> <8155F3F9D6094F40B4DA71BD561D2DE8@alyakaslap> <20131226230018.GJ20579@dastard> <20140113030230.GF3469@dastard> <20140113204314.GJ3469@dastard> <20140115014503.GQ3469@dastard> <20140119231745.GF18112@dastard> In-Reply-To: <20140119231745.GF18112@dastard> Subject: xfs_growfs_data_private memory leak Date: Tue, 1 Jul 2014 18:06:38 +0300 X-ASG-Orig-Subj: xfs_growfs_data_private memory leak MIME-Version: 1.0 Content-Type: text/plain; format=flowed; charset="iso-8859-1"; reply-type=original Content-Transfer-Encoding: 7bit X-Priority: 3 X-MSMail-Priority: Normal Importance: Normal X-Mailer: Microsoft Windows Live Mail 15.4.3555.308 X-MimeOLE: Produced By Microsoft MimeOLE V15.4.3555.308 X-Barracuda-Connect: mail-we0-f176.google.com[74.125.82.176] X-Barracuda-Start-Time: 1404227200 X-Barracuda-Encrypted: RC4-SHA X-Barracuda-URL: http://192.48.176.15:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 X-Barracuda-Spam-Score: 0.00 X-Barracuda-Spam-Status: No, SCORE=0.00 using per-user scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.7 tests=STOX_REPLY_TYPE X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.7141 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.00 STOX_REPLY_TYPE STOX_REPLY_TYPE Greetings, It appears that if xfs_growfs_data_private fails during the "new AG headers" loop, it does not free all the per-AG structures for the new AGs. When XFS is unmounted later, they are not freed as well, because xfs_growfs_data_private did not update the "sb_agcount" field, so xfs_free_perag will not free them. This happens on 3.8.13, but looking at the latest master branch, it seems to have the same issue. Code like [1] in xfs_growfs_data, seems to fix the issue. A follow-up question: if xfs_grows_data_private fails during the loop that updates all the secondary superblocks, what is the consequence? (I am aware that in the latest master branch, the loop is not broken on first error, but attempts to initialize whatever possible). When these secondary superblocks will get updated? Is there a way to force-update them? Otherwise, what can be the consequence of leaving them not updated? Thanks, Alex. [1] /* * If we had an error, we might have allocated * PAGs, which are >=sb_agcount. We need to free * those, because they will not get freed in * xfs_free_perag(). */ if (error) { unsigned int n_pags = 0; xfs_perag_t* pags[16] = {0}; xfs_agnumber_t start_agno = mp->m_sb.sb_agcount; do { unsigned int pag_idx = 0; spin_lock(&mp->m_perag_lock); n_pags = radix_tree_gang_lookup(&mp->m_perag_tree, (void**)pags, start_agno, ARRAY_SIZE(pags)); for (pag_idx = 0; pag_idx < n_pags; ++pag_idx) { xfs_perag_t *deleted = NULL; /* for next lookup */ start_agno = pags[pag_idx]->pag_agno + 1; /* nobody should really be touching these AGs...*/ if (WARN_ON(atomic_read(&pags[pag_idx]->pag_ref) > 0)) { pags[pag_idx] = NULL; continue; } deleted = radix_tree_delete(&mp->m_perag_tree, pags[pag_idx]->pag_agno); ASSERT(deleted == pags[pag_idx]); } spin_unlock(&mp->m_perag_lock); /* now delete all those still marked for deletion */ for (pag_idx = 0; pag_idx < n_pags; ++pag_idx) { if (pags[pag_idx]) call_rcu(&pags[pag_idx]->rcu_head, xfs_free_perag_rcu_cb); } } while (n_pags > 0); } xfs_free_perag_rcu_cb is similar to __xfs_free_perag, but can be called from other files. From david@fromorbit.com Tue Jul 1 15:03:58 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: xfs@oss.sgi.com Delivered-To: xfs@oss.sgi.com Received: from relay.sgi.com (relay1.corp.sgi.com [137.38.102.111]) by oss.sgi.com (Postfix) with ESMTP id CBB0D7F93 for ; Tue, 1 Jul 2014 15:03:58 -0500 (CDT) Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by relay1.corp.sgi.com (Postfix) with ESMTP id B8E118F8035 for ; Tue, 1 Jul 2014 13:03:55 -0700 (PDT) X-ASG-Debug-ID: 1404245032-04cb6c76d23d6840001-NocioJ Received: from ipmail06.adl2.internode.on.net (ipmail06.adl2.internode.on.net [150.101.137.129]) by cuda.sgi.com with ESMTP id 6D6vIqrnnEli4VqS for ; Tue, 01 Jul 2014 13:03:53 -0700 (PDT) X-Barracuda-Envelope-From: david@fromorbit.com X-Barracuda-Apparent-Source-IP: 150.101.137.129 X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: AkJWAMoTs1N5LHZ8PGdsb2JhbABaFoJ3UoJ3UahJBppJAYEOFwQBAQEBODWEAwEBBAEjDwEjIwULCAMYAgIFIQICDwUlAwcaE4g6Bw6sd5tnFxeBFIREiTAHgnc2gRYFmmWBSZYPKy8B Received: from ppp121-44-118-124.lns20.syd6.internode.on.net (HELO dastard) ([121.44.118.124]) by ipmail06.adl2.internode.on.net with ESMTP; 02 Jul 2014 05:33:33 +0930 Received: from dave by dastard with local (Exim 4.80) (envelope-from ) id 1X24H5-00087q-Q4; Wed, 02 Jul 2014 06:03:31 +1000 Date: Wed, 2 Jul 2014 06:03:31 +1000 From: Dave Chinner To: Arkadiusz =?utf-8?Q?Mi=C5=9Bkiewicz?= Cc: xfs@oss.sgi.com Subject: Re: [PATCH 0/4] repair: fixes for 3.2 Message-ID: <20140701200331.GC9508@dastard> X-ASG-Orig-Subj: Re: [PATCH 0/4] repair: fixes for 3.2 References: <1404219296-29302-1-git-send-email-david@fromorbit.com> <201407011540.57511.arekm@maven.pl> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: <201407011540.57511.arekm@maven.pl> User-Agent: Mutt/1.5.21 (2010-09-15) X-Barracuda-Connect: ipmail06.adl2.internode.on.net[150.101.137.129] X-Barracuda-Start-Time: 1404245032 X-Barracuda-URL: http://192.48.176.15:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 X-Barracuda-Spam-Score: 0.00 X-Barracuda-Spam-Status: No, SCORE=0.00 using per-user scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.7 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.7150 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- On Tue, Jul 01, 2014 at 03:40:56PM +0200, Arkadiusz MiÅ›kiewicz wrote: > On Tuesday 01 of July 2014, Dave Chinner wrote: > > Hi Arkadiusz, > > > > These are the fixes I have so far from working through the metadumps > > you supplied me with. The unobfuscated metadump repairs cleanly with > > these patches, but the obfuscated one still has a directory rebuild > > issue that I haven't got to the bottom of yet. That results in > > an error in phase 6 like: > > > > Metadata corruption detected at block 0x2af84770/0x1000 > > name create failed in ino 2306912354 (117), filesystem may be out of space > > > > It appears that a read verifier is on a recently created > > directory leaf block and that is failing. I'm not yet sure why the > > leaf block is corrupt, nor why the verifier is even being run on it > > seeing as it was only allocated and initialised during the directory > > rebuild. That directory rebuil dfailure is the reason for all the > > disconected inode that end up in lost+found, and I think it's the > > only remaining issue that I need to solve. > > > > Can you test the patches on you machine and see if you get the same > > results? > > Testing on non obfuscated image here. > > Most of issues got fixed, first xfs_repair run: > http://ixion.pld-linux.org/~arekm/p2/x1/repair-3.2-dchinner1-4patches-run1.txt > > second xfs_repair run (reports no problems): > http://ixion.pld-linux.org/~arekm/p2/x1/repair-3.2-dchinner1-4patches-run2.txt > > When trying to mount > "XFS (loop0): Failed to initialize disk quotas." > so this issue left. Yeah, I haven't got that far yet.... > Question: > > Phase 2 - using internal log > - zero log... > zero_log: head block 2 tail block 2 > - scan filesystem freespace and inode maps... > Metadata CRC error detected at block 0x0/0x200 > > Is "Metadata CRC error detected at block" expected here? I mean v4 fs, so no > CRC. Given that it was followed by: zeroing unused portion of primary superblock (AG #0) Then there was garbage in the superblock that made the verifier think that maybe it was missing a feature bit. It didn't come up the second time, so everything is fine.... Cheers, Dave. -- Dave Chinner david@fromorbit.com From cardaniuc@gmail.com Tue Jul 1 15:13:25 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=FREEMAIL_FROM,T_DKIM_INVALID autolearn=ham version=3.3.1 X-Original-To: xfs@oss.sgi.com Delivered-To: xfs@oss.sgi.com Received: from relay.sgi.com (relay1.corp.sgi.com [137.38.102.111]) by oss.sgi.com (Postfix) with ESMTP id DAD657FA3 for ; Tue, 1 Jul 2014 15:13:25 -0500 (CDT) Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by relay1.corp.sgi.com (Postfix) with ESMTP id 9AF038F8065 for ; Tue, 1 Jul 2014 13:13:25 -0700 (PDT) X-ASG-Debug-ID: 1404245602-04cbb0653820cd70001-NocioJ Received: from mail-ie0-f182.google.com (mail-ie0-f182.google.com [209.85.223.182]) by cuda.sgi.com with ESMTP id z9OjvHG4pnl7jSv6 (version=TLSv1 cipher=RC4-SHA bits=128 verify=NO) for ; Tue, 01 Jul 2014 13:13:23 -0700 (PDT) X-Barracuda-Envelope-From: cardaniuc@gmail.com X-Barracuda-Apparent-Source-IP: 209.85.223.182 X-Barracuda-IPDD: Level1 [gmail.com/209.85.223.182] Received: by mail-ie0-f182.google.com with SMTP id rp18so8761995iec.13 for ; Tue, 01 Jul 2014 13:13:22 -0700 (PDT) X-Barracuda-IPDD: Level1 [gmail.com/209.85.223.182] X-Barracuda-IPDD: Level1 [gmail.com/209.85.223.182] DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=from:to:subject:references:date:in-reply-to:message-id:user-agent :mime-version:content-type; bh=k1uC4tFRV9lyZ1GIyWmQhc1KNFOaJc/SRH254oLRouU=; b=S3rT4Y7Um85djfgaUiddX8rXtrMu8iZJEtareX5EpW9P9oaha0s+W+5/OvutW2kUi0 zZOLSygbtcB0YSY45cxVS6ERVdr0UEmAtDh2TavkmyG/FlRtzCzV5bqckmUmD9xuwqye vet9NmcbAfGXlc+AQA88QPvh6TrhAlKTL65fSfZBokcH9CoVFKeFgn+yvHRbziXlpDvO mp9o7xRdZ0XEpZAjg9kwapZyjRrWmJnDPTiCHAWFg+d0atSMjVF9gxA9RRMyi2fJ2gMK 9RICVQFOk4MjTNGjuPxVAyghHAop5bucweZKKQY9XZj2HDGRvucAEE1s0TTupHoOLwdY 8ZvA== X-Received: by 10.50.107.42 with SMTP id gz10mr43026998igb.15.1404245602740; Tue, 01 Jul 2014 13:13:22 -0700 (PDT) Received: from sonata (adsl-76-254-71-112.dsl.pltn13.sbcglobal.net. [76.254.71.112]) by mx.google.com with ESMTPSA id t1sm36893279igh.9.2014.07.01.13.13.20 for (version=TLSv1.2 cipher=RC4-SHA bits=128/128); Tue, 01 Jul 2014 13:13:21 -0700 (PDT) From: Alexandru Cardaniuc To: xfs@oss.sgi.com Subject: Re: corruption of in-memory data detected References: <20140701070230.GG4453@dastard> <87vbrh1nyo.fsf@gmail.com> <20140701093803.GH4453@dastard> X-ASG-Orig-Subj: Re: corruption of in-memory data detected Date: Tue, 01 Jul 2014 13:13:19 -0700 In-Reply-To: <20140701093803.GH4453@dastard> (Dave Chinner's message of "Tue, 1 Jul 2014 19:38:03 +1000") Message-ID: <878uoc25y8.fsf@gmail.com> User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/23.4 (gnu/linux) MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii X-Barracuda-Connect: mail-ie0-f182.google.com[209.85.223.182] X-Barracuda-Start-Time: 1404245603 X-Barracuda-Encrypted: RC4-SHA X-Barracuda-URL: http://192.48.176.25:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 X-Barracuda-Spam-Score: 0.00 X-Barracuda-Spam-Status: No, SCORE=0.00 using per-user scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.7 tests=DKIM_SIGNED, DKIM_VERIFIED X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.7150 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- -0.00 DKIM_VERIFIED Domain Keys Identified Mail: signature passes verification 0.00 DKIM_SIGNED Domain Keys Identified Mail: message has a signature Dave Chinner writes: > On Tue, Jul 01, 2014 at 01:29:35AM -0700, Alexandru Cardaniuc wrote: >> Dave Chinner writes: >> >> > On Mon, Jun 30, 2014 at 11:44:45PM -0700, Alexandru Cardaniuc >> > wrote: >> >> Hi All, >> >> >> I am having an issue with an XFS filesystem shutting down under >> >> high load with very many small files. Basically, I have around >> >> 3.5 - 4 million files on this filesystem. New files are being >> >> written to the FS all the time, until I get to 9-11 mln small >> >> files (35k on average). > .... >> > You've probably fragmented free space to the point where inodes >> > cannot be allocated anymore, and then it's shutdown because it got >> > enospc with a dirty inode allocation transaction. >> >> > xfs_db -c "freespc -s" >> >> > should tell us whether this is the case or not. >> This is what I have >> >> # xfs_db -c "freesp -s" /dev/sda5 from to extents blocks pct 1 1 657 >> 657 0.00 2 3 264 607 0.00 4 7 29 124 0.00 8 15 13 143 0.00 16 31 41 >> 752 0.00 32 63 8 293 0.00 64 127 12 1032 0.00 128 255 8 1565 0.00 >> 256 511 10 4044 0.00 512 1023 7 5750 0.00 1024 2047 10 16061 0.01 >> 2048 4095 5 16948 0.01 4096 8191 7 43312 0.02 8192 16383 9 115578 >> 0.06 16384 32767 6 159576 0.08 32768 65535 3 104586 0.05 262144 >> 524287 1 507710 0.25 4194304 7454720 28 200755934 99.51 total free >> extents 1118 total free blocks 201734672 average free extent size >> 180442 > > So it's not freespace fragmentation, but that was just the most likely > cause. Most likely it's a transient condition where an AG is out of > space but in determining that condition the AGF was modified. We've > fixed several bugs in that area over the past few years.... I still have the FS available. Any other information I can assemble to help you identify the issue? >> >> Using CentOS 5.9 with kernel 2.6.18-348.el5xen >> > The "enospc with dirty transaction" shutdown bugs have been fixed >> > in more recent kernels than RHEL5. >> These fixes were not backported to RHEL5 kernels? > No. I assume I wouldn't just be able to take the source for XFS kernel module and compile it against the 2.6.18 kernel in CentOS 5.x? >> >> The problem is reproducible and I don't think it's hardware >> >> related. The problem was reproduced on multiple servers of the >> >> same type. So, I doubt it's a memory issue or something like >> >> that. >> >> > Nope, it's not hardware, it's buggy software that has been fixed >> > in the years since 2.6.18.... >> I would hope these fixes would be backported to RHEL5 (CentOS 5) >> kernels... > > TANSTAAFL. >> > If you've fragmented free space, then your ony options are: >> >> > - dump/mkfs/restore - remove a large number of files from the >> > filesystem so free space defragments. >> That wouldn't be fixed automagically using xfs_repair, wouldn't it? > No. >> > If you simply want to avoid the shutdown, then upgrade to a more >> > recent kernel (3.x of some kind) where all the known issues have >> > been fixed. >> How about 2.6.32? That's the kernel that comes with RHEL 6.x > > It might, but I don't know the exact root cause of your problem so I > couldn't say for sure. >> >> I went through the kernel updates for CentOS 5.10 (newer kernel), >> >> but didn't see any xfs related fixes since CentOS 5.9 >> >> > That's something you need to talk to your distro maintainers >> > about.... >> I was worried you gonna say that :) > > Theres only so much that upstream can do to support heavily patched, 6 > year old distro kernels. >> What are my options at this point? Am I correct to assume that the >> issue is related to the load and if I manage to decrease the load, >> the issue is not going to reproduce itself? > It's more likely related to the layout of data and metadata on disk. >> We have been using XFS on RHEL 5 kernels for years and didn't see >> this issue. Now, the issue happens consistently, but seems to be >> related to high load... > There are several different potential causes - high load just iterates > the problem space faster. >> We have hundreds of these servers deployed in production right now, >> so some way to address the current situation would be very welcomed. > I'd suggest talking to Red Hat about what they can do to help you, > especially as CentOS is a now RH distro.... I will try that. Thanks. -- "It's very well to be thrifty, but don't amass a hoard of regrets." - Charles D'Orleans From david@fromorbit.com Tue Jul 1 16:43:25 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: xfs@oss.sgi.com Delivered-To: xfs@oss.sgi.com Received: from relay.sgi.com (relay3.corp.sgi.com [198.149.34.15]) by oss.sgi.com (Postfix) with ESMTP id 073EA7F83 for ; Tue, 1 Jul 2014 16:43:25 -0500 (CDT) Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by relay3.corp.sgi.com (Postfix) with ESMTP id 96958AC00E for ; Tue, 1 Jul 2014 14:43:21 -0700 (PDT) X-ASG-Debug-ID: 1404250998-04bdf056687531b0001-NocioJ Received: from ipmail06.adl2.internode.on.net (ipmail06.adl2.internode.on.net [150.101.137.129]) by cuda.sgi.com with ESMTP id ffr1yQVj1apVshFr for ; Tue, 01 Jul 2014 14:43:18 -0700 (PDT) X-Barracuda-Envelope-From: david@fromorbit.com X-Barracuda-Apparent-Source-IP: 150.101.137.129 X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: AiNWAMwps1N5LHZ8PGdsb2JhbABQBwODDYNJhQikEgaaSQGBDhcEAQEBATg1hAMBAQU6HCMQCAMYCSUPBSUDBxoTiEHIGBcXhViIVEwQBxGDHIEWBZpll1gr Received: from ppp121-44-118-124.lns20.syd6.internode.on.net (HELO dastard) ([121.44.118.124]) by ipmail06.adl2.internode.on.net with ESMTP; 02 Jul 2014 07:13:17 +0930 Received: from dave by dastard with local (Exim 4.80) (envelope-from ) id 1X25pb-0008OS-Me; Wed, 02 Jul 2014 07:43:15 +1000 Date: Wed, 2 Jul 2014 07:43:15 +1000 From: Dave Chinner To: Alexandru Cardaniuc Cc: xfs@oss.sgi.com Subject: Re: corruption of in-memory data detected Message-ID: <20140701214315.GD9508@dastard> X-ASG-Orig-Subj: Re: corruption of in-memory data detected References: <20140701070230.GG4453@dastard> <87vbrh1nyo.fsf@gmail.com> <20140701093803.GH4453@dastard> <878uoc25y8.fsf@gmail.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <878uoc25y8.fsf@gmail.com> User-Agent: Mutt/1.5.21 (2010-09-15) X-Barracuda-Connect: ipmail06.adl2.internode.on.net[150.101.137.129] X-Barracuda-Start-Time: 1404250998 X-Barracuda-URL: http://192.48.157.11:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 X-Barracuda-Spam-Score: 0.00 X-Barracuda-Spam-Status: No, SCORE=0.00 using per-user scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.7 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.7153 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- On Tue, Jul 01, 2014 at 01:13:19PM -0700, Alexandru Cardaniuc wrote: > Dave Chinner writes: > > > On Tue, Jul 01, 2014 at 01:29:35AM -0700, Alexandru Cardaniuc wrote: > >> Dave Chinner writes: > >> > >> > On Mon, Jun 30, 2014 at 11:44:45PM -0700, Alexandru Cardaniuc > >> > wrote: > >> >> Hi All, > >> > >> >> I am having an issue with an XFS filesystem shutting down under > >> >> high load with very many small files. Basically, I have around > >> >> 3.5 - 4 million files on this filesystem. New files are being > >> >> written to the FS all the time, until I get to 9-11 mln small > >> >> files (35k on average). > > .... > >> > You've probably fragmented free space to the point where inodes > >> > cannot be allocated anymore, and then it's shutdown because it got > >> > enospc with a dirty inode allocation transaction. > >> > >> > xfs_db -c "freespc -s" > >> > >> > should tell us whether this is the case or not. > >> This is what I have > >> > >> # xfs_db -c "freesp -s" /dev/sda5 from to extents blocks pct 1 1 657 > >> 657 0.00 2 3 264 607 0.00 4 7 29 124 0.00 8 15 13 143 0.00 16 31 41 > >> 752 0.00 32 63 8 293 0.00 64 127 12 1032 0.00 128 255 8 1565 0.00 > >> 256 511 10 4044 0.00 512 1023 7 5750 0.00 1024 2047 10 16061 0.01 > >> 2048 4095 5 16948 0.01 4096 8191 7 43312 0.02 8192 16383 9 115578 > >> 0.06 16384 32767 6 159576 0.08 32768 65535 3 104586 0.05 262144 > >> 524287 1 507710 0.25 4194304 7454720 28 200755934 99.51 total free > >> extents 1118 total free blocks 201734672 average free extent size > >> 180442 > > > > So it's not freespace fragmentation, but that was just the most likely > > cause. Most likely it's a transient condition where an AG is out of > > space but in determining that condition the AGF was modified. We've > > fixed several bugs in that area over the past few years.... > > I still have the FS available. Any other information I can assemble to > help you identify the issue? Not really. Historically the only way to work out the exact problem causing the transaction failure is to be able to reproduce the problem on demand in a controlled environment. Unfortunately, I don't scale to doing this for everyone who has a problem because it can take days to build an equivalent environment and reproduce the problem and refine it to something that can be used to debug the issue. However, if you can reproduce the problem on a current upstream kernel with a metadump image and a script that runs on the image, then I'll definitely look at it. i.e. if you can make it 5 minutes work for me to reproduce the problem on an upstream kernel, then I should be able find and solve the problem pretty quickly. > >> >> Using CentOS 5.9 with kernel 2.6.18-348.el5xen > >> > The "enospc with dirty transaction" shutdown bugs have been fixed > >> > in more recent kernels than RHEL5. > >> These fixes were not backported to RHEL5 kernels? > > > No. > > I assume I wouldn't just be able to take the source for XFS kernel module > and compile it against the 2.6.18 kernel in CentOS 5.x? You could try, but you'd only be digging a deeper hole. Triaging and solving a bug like this bug is a walk in the park compared to the issues that typically arise(*) during large scale backports to older kernels. Cheers, Dave. (*) speaking as a RH engineer who has done multiple large (several hundred commit) XFS backports for RHEL. -- Dave Chinner david@fromorbit.com From david@fromorbit.com Tue Jul 1 16:56:35 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: xfs@oss.sgi.com Delivered-To: xfs@oss.sgi.com Received: from relay.sgi.com (relay2.corp.sgi.com [137.38.102.29]) by oss.sgi.com (Postfix) with ESMTP id 1A5B97F90 for ; Tue, 1 Jul 2014 16:56:35 -0500 (CDT) Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by relay2.corp.sgi.com (Postfix) with ESMTP id ECA17304067 for ; Tue, 1 Jul 2014 14:56:31 -0700 (PDT) X-ASG-Debug-ID: 1404251789-04cbb0653720fc70001-NocioJ Received: from ipmail06.adl2.internode.on.net (ipmail06.adl2.internode.on.net [150.101.137.129]) by cuda.sgi.com with ESMTP id 4IhTUhAKQsneTFB7 for ; Tue, 01 Jul 2014 14:56:29 -0700 (PDT) X-Barracuda-Envelope-From: david@fromorbit.com X-Barracuda-Apparent-Source-IP: 150.101.137.129 X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: AiVWAMIts1N5LHZ8PGdsb2JhbABagw2DSYUIpBIGmkkBgQ4XBAEBAQE4NYQDAQEEAScTHCMFCwgDGAklDwUlAwcaE4g6B8cSFxeFWIkwB4MtgRYFmmWLRowSKw Received: from ppp121-44-118-124.lns20.syd6.internode.on.net (HELO dastard) ([121.44.118.124]) by ipmail06.adl2.internode.on.net with ESMTP; 02 Jul 2014 07:26:28 +0930 Received: from dave by dastard with local (Exim 4.80) (envelope-from ) id 1X262M-0008R5-V8; Wed, 02 Jul 2014 07:56:26 +1000 Date: Wed, 2 Jul 2014 07:56:26 +1000 From: Dave Chinner To: Alex Lyakas Cc: xfs@oss.sgi.com Subject: Re: xfs_growfs_data_private memory leak Message-ID: <20140701215626.GE9508@dastard> X-ASG-Orig-Subj: Re: xfs_growfs_data_private memory leak References: <20131226230018.GJ20579@dastard> <20140113030230.GF3469@dastard> <20140113204314.GJ3469@dastard> <20140115014503.GQ3469@dastard> <20140119231745.GF18112@dastard> <4B2A412C75324EE9880358513C069476@alyakaslap> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <4B2A412C75324EE9880358513C069476@alyakaslap> User-Agent: Mutt/1.5.21 (2010-09-15) X-Barracuda-Connect: ipmail06.adl2.internode.on.net[150.101.137.129] X-Barracuda-Start-Time: 1404251789 X-Barracuda-URL: http://192.48.176.25:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 X-Barracuda-Spam-Score: 0.00 X-Barracuda-Spam-Status: No, SCORE=0.00 using per-user scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.7 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.7153 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- On Tue, Jul 01, 2014 at 06:06:38PM +0300, Alex Lyakas wrote: > Greetings, > > It appears that if xfs_growfs_data_private fails during the "new AG > headers" loop, it does not free all the per-AG structures for the > new AGs. When XFS is unmounted later, they are not freed as well, > because xfs_growfs_data_private did not update the "sb_agcount" > field, so xfs_free_perag will not free them. This happens on 3.8.13, > but looking at the latest master branch, it seems to have the same > issue. > > Code like [1] in xfs_growfs_data, seems to fix the issue. Why not just do this in the appropriate error stack, like is done inside xfs_initialize_perag() on error? for (i = oagcount; i < nagcount; i++) { pag = radix_tree_delete(&mp->m_perag_tree, index); kmem_free(pag); } (though it might need RCU freeing) When you have a fix, can you send a proper patch with a sign-off on it? > A follow-up question: if xfs_grows_data_private fails during the > loop that updates all the secondary superblocks, what is the > consequence? (I am aware that in the latest master branch, the loop > is not broken on first error, but attempts to initialize whatever > possible). When these secondary superblocks will get updated? Is > there a way to force-update them? Otherwise, what can be the > consequence of leaving them not updated? The consequence is documented in mainline tree - if we don't update them all, then repair will do the wrong thing. Repair requires a majority iof identical secondaries to determine if the primary is correct or out of date. The old behaviour of not updating after the first error meant that the majority were old superblocks and so at some time in the future repair could decide your filesystem is smaller than it really is and hence truncate away the grown section of the filesystem. i.e. trigger catastrophic, unrecoverable data loss. Hence it's far better to write every seconday we can than to leave a majority in a bad state.... Cheers, Dave. -- Dave Chinner david@fromorbit.com From mlsemon35@gmail.com Tue Jul 1 17:27:35 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.3 required=5.0 tests=FREEMAIL_ENVFROM_END_DIGIT, FREEMAIL_FROM,T_DKIM_INVALID autolearn=no version=3.3.1 X-Original-To: xfs@oss.sgi.com Delivered-To: xfs@oss.sgi.com Received: from relay.sgi.com (relay1.corp.sgi.com [137.38.102.111]) by oss.sgi.com (Postfix) with ESMTP id EA73C7F95 for ; Tue, 1 Jul 2014 17:27:35 -0500 (CDT) Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by relay1.corp.sgi.com (Postfix) with ESMTP id DE3EA8F8035 for ; Tue, 1 Jul 2014 15:27:32 -0700 (PDT) X-ASG-Debug-ID: 1404253650-04cbb065382107f0001-NocioJ Received: from mail-qg0-f49.google.com (mail-qg0-f49.google.com [209.85.192.49]) by cuda.sgi.com with ESMTP id VwJ7QuNDvDVbZNiB (version=TLSv1 cipher=RC4-SHA bits=128 verify=NO) for ; Tue, 01 Jul 2014 15:27:31 -0700 (PDT) X-Barracuda-Envelope-From: mlsemon35@gmail.com X-Barracuda-Apparent-Source-IP: 209.85.192.49 X-Barracuda-IPDD: Level1 [gmail.com/209.85.192.49] Received: by mail-qg0-f49.google.com with SMTP id f51so3927729qge.36 for ; Tue, 01 Jul 2014 15:27:30 -0700 (PDT) X-Barracuda-IPDD: Level1 [gmail.com/209.85.192.49] X-Barracuda-IPDD: Level1 [gmail.com/209.85.192.49] DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=message-id:date:from:user-agent:mime-version:to:cc:subject :references:in-reply-to:content-type:content-transfer-encoding; bh=gbItVU8hR4YFAg6kmE5CaskCrahA7Cmmze3cFG8mWWs=; b=TVY2u5desv18kJerBMXxHYweCZxap+PvlwZCwrpG0z7FfEz943Z7+UrLlBln2wnqcI +gWpm/khxKNfpirUNa4rUUVZqkF4K2N8VtJ2sCsrN31NmE0+Kw73MJXBs1a7F5XCRFRU hRsx/4su/BM4aHFewuS9clAPA7f3KskahNxePQZc9HV81i61uOSj75oEf4Uvy7PWU8L/ /b6nKA9Mo8CYd5UmjmwiRM7XChIcJMaUgxx2L2EQg2FG7XR6NSrIBEj/p3nJKL3RULf9 YgoLqCe9JmUUs2plYXary3ITKNNYYRRMC3BNuJQn4Me5ZbbEnUWOZTCjrhO9VdZcUtcx Nj5A== X-Received: by 10.224.79.11 with SMTP id n11mr77325077qak.40.1404253650852; Tue, 01 Jul 2014 15:27:30 -0700 (PDT) Received: from [192.168.0.129] (rrcs-97-79-21-178.se.biz.rr.com. [97.79.21.178]) by mx.google.com with ESMTPSA id q46sm10292600qga.0.2014.07.01.15.27.30 for (version=TLSv1 cipher=ECDHE-RSA-RC4-SHA bits=128/128); Tue, 01 Jul 2014 15:27:30 -0700 (PDT) Message-ID: <53B335D1.2010709@gmail.com> Date: Tue, 01 Jul 2014 18:27:29 -0400 From: "Michael L. Semon" User-Agent: Mozilla/5.0 (X11; Linux i686; rv:24.0) Gecko/20100101 Thunderbird/24.6.0 MIME-Version: 1.0 To: Dave Chinner CC: Mark Tinguely , xfs@oss.sgi.com Subject: Re: Null pointer dereference while at ACL limit on v5 XFS References: <53A8A0AF.9070009@gmail.com> <53A8A578.4070005@sgi.com> <53A8A676.80305@sgi.com> <53A8F1AC.90109@gmail.com> <20140624040434.GC9508@dastard> X-ASG-Orig-Subj: Re: Null pointer dereference while at ACL limit on v5 XFS In-Reply-To: <20140624040434.GC9508@dastard> Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit X-Barracuda-Connect: mail-qg0-f49.google.com[209.85.192.49] X-Barracuda-Start-Time: 1404253651 X-Barracuda-Encrypted: RC4-SHA X-Barracuda-URL: http://192.48.176.25:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 X-Barracuda-Spam-Score: 0.00 X-Barracuda-Spam-Status: No, SCORE=0.00 using per-user scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.7 tests=DKIM_SIGNED, DKIM_VERIFIED X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.7154 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- -0.00 DKIM_VERIFIED Domain Keys Identified Mail: signature passes verification 0.00 DKIM_SIGNED Domain Keys Identified Mail: message has a signature On 06/24/2014 12:04 AM, Dave Chinner wrote: > On Mon, Jun 23, 2014 at 11:34:04PM -0400, Michael L. Semon wrote: >> [ 1068.431391] ------------[ cut here ]------------ >> [ 1068.431566] WARNING: CPU: 0 PID: 41 at lib/list_debug.c:59 __list_del_entry+0xce/0x110() >> [ 1068.431596] list_del corruption. prev->next should be db5bf580, but was (null) > > Ok, so the current log item points to a log item that has > null pointers (i.e. not on the list). > >> [ 1068.431629] CPU: 0 PID: 41 Comm: kworker/0:1H Not tainted 3.16.0-rc1+ #3 >> [ 1068.431656] Hardware name: Dell Computer Corporation L733r /CA810E , BIOS A14 09/05/2001 >> [ 1068.431697] Workqueue: xfslogd xfs_buf_iodone_work >> [ 1068.431738] 00000000 00000000 de92fc24 c15d4e76 de92fc68 de92fc58 c103ca33 c1737648 >> [ 1068.431891] de92fc84 00000029 c173705a 0000003b c13c3e9e 0000003b c13c3e9e 0000003b >> [ 1068.432115] db5bf580 00000001 de92fc70 c103cab3 00000009 de92fc68 c1737648 de92fc84 >> [ 1068.432267] Call Trace: >> [ 1068.432329] [] dump_stack+0x48/0x60 >> [ 1068.432386] [] warn_slowpath_common+0x83/0xa0 >> [ 1068.432433] [] ? __list_del_entry+0xce/0x110 >> [ 1068.432478] [] ? __list_del_entry+0xce/0x110 >> [ 1068.432524] [] warn_slowpath_fmt+0x33/0x40 >> [ 1068.432569] [] __list_del_entry+0xce/0x110 >> [ 1068.432615] [] list_del+0xb/0x20 >> [ 1068.432674] [] xfs_ail_delete+0x1d/0x60 > .... >> [ 1068.433567] ---[ end trace 60289514948e4bd7 ]--- >> [ 1068.433603] BUG: unable to handle kernel NULL pointer dereference at 0000000c >> [ 1068.433795] IP: [] xfs_ail_check+0x58/0xc0 > > And that's trying to dereference a pointer from an item that is not > on the list.... > > So there's linked list corruption occurring here. > >> I can reproduce the oops in kernel 3.15.0, perhaps with xfs-oss/for-next >> merged, but there's no vmlinux to go with the kernel. Therefore, I'll have >> to resort to other means (rebuilt kernel with netconsole, re-attaching the >> serial cable, etc.) to get the full crash log. > > How far back can you reproduce it? If it's a recent occurrence, can > you bisect it? > > Cheers, > > Dave. I've had terrible luck with bisects this week due to PEBKAC errors. With 3 commits left to try--one slow, full build (thanks, ARM!) and hopefully 2 minor builds--this commit is staring me in the face: commit bba719b5004234e55737e7074b81b337210c511d Author: Jie Liu Date: Wed Jan 1 19:28:03 2014 +0800 xfs: fix off-by-one error in xfs_attr3_rmt_verify In particular, one kernel had this as the most recent commit and showed the current problem behavior. That is about as far back as I can go before attr3_rmt issues corrupt filesystems and cause a "Structure needs cleaning" message during the setfacl part of the test. Certianly, Jeff has improved matters with this patch. On the normal kernel git, this may correspond to kernel v3.13.0-rc7 or -rc8, certainly no earlier than -rc2. git was bouncing the version numbers around quite a bit. Before Jeff worked his wonders here, efforts to getfacl a directory with max ACLs (on a remounted, corrupt filesystem) ended like this... [ 84.819306] XFS: Assertion failed: args->op_flags & XFS_DA_OP_OKNOENT, file: fs/xfs/xfs_da_btree.c, line: 1894 [ 84.819500] ------------[ cut here ]------------ [ 84.819573] kernel BUG at fs/xfs/xfs_message.c:108! [ 84.819646] invalid opcode: 0000 [#1] SMP DEBUG_PAGEALLOC [ 84.819826] CPU: 0 PID: 204 Comm: getfacl Not tainted 3.12.0+ #2 [ 84.819901] Hardware name: Dell Computer Corporation L733r /CA810E , BIOS A14 09/05/2001 [ 84.820015] task: ddc7a960 ti: ddc52000 task.ti: ddc52000 [ 84.820025] EIP: 0060:[] EFLAGS: 00010296 CPU: 0 [ 84.820025] EIP is at assfail+0x2c/0x30 [ 84.820025] EAX: 00000062 EBX: 00000000 ECX: 00000007 EDX: 00000000 [ 84.820025] ESI: ddc53d4c EDI: ffffffff EBP: ddc53c88 ESP: ddc53c74 [ 84.820025] DS: 007b ES: 007b FS: 00d8 GS: 0033 SS: 0068 [ 84.820025] CR0: 8005003b CR2: b7632fd0 CR3: 1dc75000 CR4: 000007d0 [ 84.820025] Stack: [ 84.820025] 00000000 c160833c c160c854 c15fa532 00000766 ddc53cd0 c1290854 00000001 [ 84.820025] 00000002 00000008 275b19c4 ddc53d4c 00000000 ddc74010 00000001 0fe80018 [ 84.820025] 00580000 00000f90 00000000 00000000 ddc74010 ddc74014 ddc53d4c ddc53d28 [ 84.820025] Call Trace: [ 84.820025] [] xfs_da3_path_shift+0x264/0x470 [ 84.820025] [] xfs_da3_node_lookup_int+0x259/0x420 [ 84.820025] [] ? kmem_zone_alloc+0x66/0xe0 [ 84.820025] [] ? kmem_zone_zalloc+0x11/0xd0 [ 84.820025] [] xfs_attr_node_get+0x47/0x200 [ 84.820025] [] xfs_attr_get_int+0xd5/0xf0 [ 84.820025] [] xfs_attr_get+0x91/0xb0 [ 84.820025] [] xfs_get_acl+0x123/0x2c0 [ 84.820025] [] xfs_xattr_acl_get+0x1a/0x70 [ 84.820025] [] generic_getxattr+0x49/0x70 [ 84.820025] [] ? SyS_fremovexattr+0xa0/0xa0 [ 84.820025] [] vfs_getxattr+0x6a/0xa0 [ 84.820025] [] getxattr+0x83/0x1d0 [ 84.820025] [] ? complete_walk+0x94/0x260 [ 84.820025] [] ? path_lookupat+0x8c/0xba0 [ 84.820025] [] ? kmem_cache_alloc+0x4f/0x280 [ 84.820025] [] ? final_putname+0x1d/0x40 [ 84.820025] [] ? user_path_at_empty+0x4f/0x90 [ 84.820025] [] ? SyS_lstat64+0x34/0x40 [ 84.820025] [] ? user_path_at+0x1d/0x30 [ 84.820025] [] SyS_getxattr+0x58/0xa0 [ 84.820025] [] sysenter_do_call+0x12/0x36 [ 84.820025] Code: 89 e5 83 ec 14 3e 8d 74 26 00 89 44 24 08 b8 3c 83 60 c1 89 4c 24 10 89 54 24 0c 89 44 24 04 c7 04 24 00 00 00 00 e8 94 fd ff ff <0f> 0b 66 90 55 89 e5 83 ec 14 3e 8d 74 26 00 b9 01 00 00 00 89 [ 84.820025] EIP: [] assfail+0x2c/0x30 SS:ESP 0068:ddc53c74 ...and there was no real variation going back to 3.11-rc. That was about as far back as this particular glibc (built against 3.10.32) would let Linux boot. I'm happy to continue the bisect for your benefit, just running behind schedule on completing it. Thanks! Michael From robin.listas@gmail.com Wed Jul 2 04:57:39 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=FREEMAIL_FROM,T_DKIM_INVALID autolearn=ham version=3.3.1 X-Original-To: xfs@oss.sgi.com Delivered-To: xfs@oss.sgi.com Received: from relay.sgi.com (relay3.corp.sgi.com [198.149.34.15]) by oss.sgi.com (Postfix) with ESMTP id E73DB7F5D for ; Wed, 2 Jul 2014 04:57:38 -0500 (CDT) Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by relay3.corp.sgi.com (Postfix) with ESMTP id 928A0AC00D for ; Wed, 2 Jul 2014 02:57:35 -0700 (PDT) X-ASG-Debug-ID: 1404295049-04bdf05666766fe0001-NocioJ Received: from mail-wi0-f181.google.com (mail-wi0-f181.google.com [209.85.212.181]) by cuda.sgi.com with ESMTP id tB2Fbcfc4DHBTeCD (version=TLSv1 cipher=RC4-SHA bits=128 verify=NO) for ; Wed, 02 Jul 2014 02:57:30 -0700 (PDT) X-Barracuda-Envelope-From: robin.listas@gmail.com X-Barracuda-Apparent-Source-IP: 209.85.212.181 X-Barracuda-IPDD: Level1 [gmail.com/209.85.212.181] Received: by mail-wi0-f181.google.com with SMTP id n3so158374wiv.2 for ; Wed, 02 Jul 2014 02:57:29 -0700 (PDT) X-Barracuda-IPDD: Level1 [gmail.com/209.85.212.181] X-Barracuda-IPDD: Level1 [gmail.com/209.85.212.181] DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=sender:date:from:to:subject:message-id:user-agent:mime-version :content-type; bh=XvN1Ny83w4seD6EEnrseITmipmGvujk1Dl3P2e8MvaU=; b=CM+s+ylmp73Kt19v8xB3aMIrRYP26ng+tMeyuKfpR/A0LaU4P+EcDFzma8YJZVzd/p TnPneHc6NJTuI9TFh8pF/FiyjbZhMbKxvxLN3lrb90ElY0xB9apn3+NJpcMg7feIqGOc tQ5Fis0Dy1RrddyUIlU9jXu+l8d3jZAQZjNt4fsGnmk8dqw9vaKJnB50NcqIzlIElw8V WslJBI841cCz0ggAEaeM0yf4qg60GU5v0MplcPA3Wzu37YEEZVxHEBg9T8sjlVQla0Ga PHqsUL53ZmMHufovo2t8ZQXaUhpXwAZgNSTjKBu4Gaghp5OJPF+iawmVlzjtSOKGitxg TK2w== X-Received: by 10.181.11.232 with SMTP id el8mr3371296wid.57.1404295049029; Wed, 02 Jul 2014 02:57:29 -0700 (PDT) Received: from Telcontar.valinor (90.Red-79-150-228.dynamicIP.rima-tde.net. [79.150.228.90]) by mx.google.com with ESMTPSA id d12sm20471233wjx.0.2014.07.02.02.57.27 for (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Wed, 02 Jul 2014 02:57:28 -0700 (PDT) Sender: Carlos Robinson Received: from localhost (localhost [127.0.0.1]) by Telcontar.valinor (Postfix) with ESMTP id F26746072A for ; Wed, 2 Jul 2014 11:57:25 +0200 (CEST) X-Virus-Scanned: amavisd-new at valinor Received: from Telcontar.valinor ([127.0.0.1]) by localhost (Telcontar.valinor [127.0.0.1]) (amavisd-new, port 10024) with LMTP id VbaTfcgKA3RN for ; Wed, 2 Jul 2014 11:57:25 +0200 (CEST) Received: from localhost (localhost [127.0.0.1]) by Telcontar.valinor (Postfix) with ESMTP id CB562604A0 for ; Wed, 2 Jul 2014 11:57:25 +0200 (CEST) Date: Wed, 2 Jul 2014 11:57:25 +0200 (CEST) From: "Carlos E. R." X-X-Sender: cer@Telcontar.valinor To: XFS mail list Subject: Got "Internal error XFS_WANT_CORRUPTED_GOTO". Filesystem needs reformatting to correct issue. Message-ID: X-ASG-Orig-Subj: Got "Internal error XFS_WANT_CORRUPTED_GOTO". Filesystem needs reformatting to correct issue. User-Agent: Alpine 2.11 (LSU 23 2013-08-11) MIME-Version: 1.0 Content-Type: TEXT/PLAIN; format=flowed; charset=US-ASCII X-Barracuda-Connect: mail-wi0-f181.google.com[209.85.212.181] X-Barracuda-Start-Time: 1404295050 X-Barracuda-Encrypted: RC4-SHA X-Barracuda-URL: http://192.48.157.11:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 X-Barracuda-Spam-Score: 0.00 X-Barracuda-Spam-Status: No, SCORE=0.00 using per-user scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.7 tests=DKIM_SIGNED, DKIM_VERIFIED X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.7170 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- -0.00 DKIM_VERIFIED Domain Keys Identified Mail: signature passes verification 0.00 DKIM_SIGNED Domain Keys Identified Mail: message has a signature -----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 Hi, I got this error: <0.6> 2014-06-29 12:32:18 Telcontar kernel - - - [212890.186436] r8169 0000:06:00.0 eth0: link up <0.6> 2014-06-29 12:32:18 Telcontar kernel - - - [212890.615073] PM: restore of devices complete after 2735.034 msecs <0.1> 2014-06-29 12:32:18 Telcontar kernel - - - [212890.626346] XFS: Internal error XFS_WANT_CORRUPTED_GOTO at line 1602 of file /home/abuild/rpmbuild/BUILD/kernel-desktop-3.11.10/linux-3.11/fs/xfs/xfs_alloc.c. Caller 0xffffffffa0c39fe9 <0.1> 2014-06-29 12:32:18 Telcontar kernel - - - [212890.626346] <0.4> 2014-06-29 12:32:18 Telcontar kernel - - - [212890.626348] CPU: 0 PID: 28875 Comm: kworker/0:2 Tainted: P O 3.11.10-11-desktop #1 <0.4> 2014-06-29 12:32:18 Telcontar kernel - - - [212890.626348] Hardware name: MICRO-STAR INTERNATIONAL CO.,LTD MS-7516/MS-7516, BIOS V1.5 10/10/2008 <0.4> 2014-06-29 12:32:18 Telcontar kernel - - - [212890.626388] Workqueue: xfs-eofblocks/sde5 xfs_eofblocks_worker [xfs] <0.4> 2014-06-29 12:32:18 Telcontar kernel - - - [212890.626390] 0000000000000002 ffffffff815a0252 00000000002a61c2 ffffffffa0c38996 <0.4> 2014-06-29 12:32:18 Telcontar kernel - - - [212890.626391] ffff8800b7025680 ffff88022eb74180 ffff880121c3fe50 0000000000000002 <0.4> 2014-06-29 12:32:18 Telcontar kernel - - - [212890.626393] 0000000000000000 0000000100000000 0000000000000000 0000000000000001 <0.4> 2014-06-29 12:32:18 Telcontar kernel - - - [212890.626393] Call Trace: <0.4> 2014-06-29 12:32:18 Telcontar kernel - - - [212890.626403] [] dump_trace+0x88/0x310 <0.4> 2014-06-29 12:32:18 Telcontar kernel - - - [212890.626406] [] show_stack_log_lvl+0xd0/0x1d0 <0.4> 2014-06-29 12:32:18 Telcontar kernel - - - [212890.626408] [] show_stack+0x1c/0x50 <0.4> 2014-06-29 12:32:18 Telcontar kernel - - - [212890.626411] [] dump_stack+0x50/0x89 <0.4> 2014-06-29 12:32:18 Telcontar kernel - - - [212890.626425] [] xfs_free_ag_extent+0x226/0x860 [xfs] <0.4> 2014-06-29 12:32:18 Telcontar kernel - - - [212890.626468] [] xfs_free_extent+0xb9/0xf0 [xfs] <0.4> 2014-06-29 12:32:18 Telcontar kernel - - - [212890.626510] [] xfs_bmap_finish+0x11e/0x170 [xfs] <0.4> 2014-06-29 12:32:18 Telcontar kernel - - - [212890.626560] [] xfs_itruncate_extents+0x190/0x340 [xfs] <0.4> 2014-06-29 12:32:18 Telcontar kernel - - - [212890.626623] [] xfs_free_eofblocks+0x1e3/0x260 [xfs] <0.4> 2014-06-29 12:32:18 Telcontar kernel - - - [212890.626659] [] xfs_inode_free_eofblocks+0x6f/0x150 [xfs] <0.4> 2014-06-29 12:32:18 Telcontar kernel - - - [212890.626688] [] xfs_inode_ag_walk.isra.10+0x1c2/0x310 [xfs] <0.4> 2014-06-29 12:32:18 Telcontar kernel - - - [212890.626716] [] xfs_inode_ag_iterator_tag+0x6e/0xb0 [xfs] <0.4> 2014-06-29 12:32:18 Telcontar kernel - - - [212890.626744] [] xfs_eofblocks_worker+0x12/0x20 [xfs] <0.4> 2014-06-29 12:32:18 Telcontar kernel - - - [212890.626763] [] process_one_work+0x168/0x490 <0.4> 2014-06-29 12:32:18 Telcontar kernel - - - [212890.626765] [] worker_thread+0x114/0x3a0 <0.4> 2014-06-29 12:32:18 Telcontar kernel - - - [212890.626768] [] kthread+0xaf/0xc0 <0.4> 2014-06-29 12:32:18 Telcontar kernel - - - [212890.626771] [] ret_from_fork+0x7c/0xb0 <0.5> 2014-06-29 12:32:18 Telcontar kernel - - - [212890.626776] XFS (sde5): xfs_do_force_shutdown(0x8) called from line 916 of file /home/abuild/rpmbuild/BUILD/kernel-desktop-3.11.10/linux-3.11/fs/xfs/xfs_bmap.c. Return address = 0xffffffffa0c4c3d8 <0.1> 2014-06-29 12:32:18 Telcontar kernel - - - [212890.706440] XFS (sde5): Corruption of in-memory data detected. Shutting down filesystem <0.1> 2014-06-29 12:32:18 Telcontar kernel - - - [212890.706440] XFS (sde5): Please umount the filesystem and rectify the problem(s) Brief description: * It happens only on restore from hibernation. * It happens randomly, spaced a month or two. * It happens always on the same partition, the one that holds /home (I have 10 XFS partitions spread on 4 internal hard disks, and a few more external). It is a new disk, 2 TB, traditional MBR partitions. * Disk has no defects, or at least so says smartctl long test. * When it happens, recovery is impossible: xfs_repair does not seem to find anything, or maybe it does, silently; but on system reuse, it crashes again, fast. * Thus recovery procedure is to use "xfsdump" to get a backup copy, reformat the partition, and recover the files with xfsrestore. The worst issue for me is that "xfs_repair" fails to repair it. I do not have more info than what appears on the logs, but four times (two different kernels): cer@Telcontar:~> zgrep XFS_WANT_CORRUPTED_GOTO /var/log/messages*xz /var/log/messages-20140402.xz:<0.1> 2014-03-15 03:35:17 Telcontar kernel - - - [37685.111787] XFS: Internal error XFS_WANT_CORRUPTED_GOTO at line 1629 of file /home/abuild/rpmbuild/BUILD/kernel-desktop-3.11.10/linux-3.11/fs/xfs/xfs_alloc.c. Caller 0xffffffffa0c54fe9 /var/log/messages-20140402.xz:<0.1> 2014-03-15 22:20:34 Telcontar kernel - - - [20151.298345] XFS: Internal error XFS_WANT_CORRUPTED_GOTO at line 1602 of file /home/abuild/rpmbuild/BUILD/kernel-desktop-3.11.10/linux-3.11/fs/xfs/xfs_alloc.c. Caller 0xffffffffa0c54fe9 /var/log/messages-20140506.xz:<0.1> 2014-04-17 22:47:08 Telcontar kernel - - - [280271.851374] XFS: Internal error XFS_WANT_CORRUPTED_GOTO at line 1602 of file /home/abuild/rpmbuild/BUILD/kernel-desktop-3.11.10/linux-3.11/fs/xfs/xfs_alloc.c. Caller 0xffffffffa0c54fe9 /var/log/messages-20140629.xz:<0.1> 2014-06-29 12:32:18 Telcontar kernel - - - [212890.626346] XFS: Internal error XFS_WANT_CORRUPTED_GOTO at line 1602 of file /home/abuild/rpmbuild/BUILD/kernel-desktop-3.11.10/linux-3.11/fs/xfs/xfs_alloc.c. Caller 0xffffffffa0c39fe9 cer@Telcontar:~> The first time that this happened I used a rescue usb stick (openSUSE 13.1 xfce). xfs_repair said to mount the partition to force re-play the log. When I did, mount hung. It was unkillable. Reboot of system hung. I then used "xfs_repair -L" on that disk, which succeeded with no error report. On reuse, the system crashed soon: you can see above two entries on the same day. This last time, I simply rebooted to runlevel 3, logon as root, perform the backup, format, restore. No testing, I was in a real hurry, and even so took hours. I suppose that to diagnose this further you will want data extracted from the filesystem: you have to tell me what operations to perform to obtain that data the next time it happens, without me having to ask here for your help. It may happen tomorrow, or in two months time, so I have to be prepared for it. And as usual, it may happen at the worst time, when I have work to be done in a hurry, as this last time (or I would have asked you). The only data I have is the system logs. I don't suppose that the "xfs_dump" archive contains anything of interest? - From what I have googled, one suspect is something wrong in that partition. It was created using gparted, as the rest of the disk. This last time I used "YaST" to reformat it, not mkfs.xfs. Wait! I have a "dd" copy of the entire partition (500 GB), made on March 16th, 5 AM, so hard data could be obtained from there. I had forgotten. I'll get something for you now: Telcontar:/data/storage_d/old_backup # xfs_info xfs_copy_home meta-data=/dev/sdf2 isize=256 agcount=4, agsize=122341568 blks = sectsz=512 attr=2 data = bsize=4096 blocks=489366272, imaxpct=5 = sunit=0 swidth=0 blks naming =version 2 bsize=4096 ascii-ci=0 log =internal bsize=4096 blocks=238948, version=2 = sectsz=512 sunit=0 blks, lazy-count=1 realtime =none extsz=4096 blocks=0, rtextents=0 Telcontar:/data/storage_d/old_backup # I could do a "xfs_metadump" on it - just tell me what options to use, and where can the result be uploaded to, if big. Current versions: Linux Telcontar 3.11.10-11-desktop #1 SMP PREEMPT Mon May 12 13:37:06 UTC 2014 (3d22b5f) x86_64 x86_64 x86_64 GNU/Linux xfs_repair version 3.1.11 CPU: Intel(R) Core(TM)2 Quad CPU Q9550 @ 2.83GHz System: openSUSE Linux 13.1, 64 bit. - -- Cheers Carlos E. R. (from 13.1 x86_64 "Bottle" at Telcontar) -----BEGIN PGP SIGNATURE----- Version: GnuPG v2.0.22 (GNU/Linux) iEYEARECAAYFAlOz14UACgkQtTMYHG2NR9XWLgCfRXInLwE/FrToinuYjpgWQyu6 dA4AnjAP0DdUvOnsdZfLVaI7wm+c7U0N =vxuS -----END PGP SIGNATURE----- From bfoster@redhat.com Wed Jul 2 07:04:53 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: xfs@oss.sgi.com Delivered-To: xfs@oss.sgi.com Received: from relay.sgi.com (relay2.corp.sgi.com [137.38.102.29]) by oss.sgi.com (Postfix) with ESMTP id 716B67F54 for ; Wed, 2 Jul 2014 07:04:53 -0500 (CDT) Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by relay2.corp.sgi.com (Postfix) with ESMTP id 629DF304053 for ; Wed, 2 Jul 2014 05:04:50 -0700 (PDT) X-ASG-Debug-ID: 1404302688-04cb6c76d13efd80001-NocioJ Received: from mx1.redhat.com (mx1.redhat.com [209.132.183.28]) by cuda.sgi.com with ESMTP id 4FFm6BCJ4bTJqRxg (version=TLSv1 cipher=AES256-SHA bits=256 verify=NO) for ; Wed, 02 Jul 2014 05:04:49 -0700 (PDT) X-Barracuda-Envelope-From: bfoster@redhat.com X-Barracuda-Apparent-Source-IP: 209.132.183.28 X-ASG-Whitelist: Client Received: from int-mx09.intmail.prod.int.phx2.redhat.com (int-mx09.intmail.prod.int.phx2.redhat.com [10.5.11.22]) by mx1.redhat.com (8.14.4/8.14.4) with ESMTP id s62C4ixN025809 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 2 Jul 2014 08:04:45 -0400 Received: from bfoster.bfoster ([10.18.41.237]) by int-mx09.intmail.prod.int.phx2.redhat.com (8.14.4/8.14.4) with ESMTP id s62C4iSq008299; Wed, 2 Jul 2014 08:04:44 -0400 Received: by bfoster.bfoster (Postfix, from userid 1000) id 40C7B120188; Wed, 2 Jul 2014 08:04:43 -0400 (EDT) Date: Wed, 2 Jul 2014 08:04:43 -0400 From: Brian Foster To: "Carlos E. R." Cc: XFS mail list Subject: Re: Got "Internal error XFS_WANT_CORRUPTED_GOTO". Filesystem needs reformatting to correct issue. Message-ID: <20140702120441.GA51757@bfoster.bfoster> X-ASG-Orig-Subj: Re: Got "Internal error XFS_WANT_CORRUPTED_GOTO". Filesystem needs reformatting to correct issue. References: MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.5.23 (2014-03-12) X-Scanned-By: MIMEDefang 2.68 on 10.5.11.22 X-Barracuda-Connect: mx1.redhat.com[209.132.183.28] X-Barracuda-Start-Time: 1404302688 X-Barracuda-Encrypted: AES256-SHA X-Barracuda-URL: http://192.48.176.15:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 On Wed, Jul 02, 2014 at 11:57:25AM +0200, Carlos E. R. wrote: > -----BEGIN PGP SIGNED MESSAGE----- > Hash: SHA1 > > > > Hi, > > I got this error: > > > <0.6> 2014-06-29 12:32:18 Telcontar kernel - - - [212890.186436] r8169 0000:06:00.0 eth0: link up > <0.6> 2014-06-29 12:32:18 Telcontar kernel - - - [212890.615073] PM: restore of devices complete after 2735.034 msecs > <0.1> 2014-06-29 12:32:18 Telcontar kernel - - - [212890.626346] XFS: Internal error XFS_WANT_CORRUPTED_GOTO at line 1602 of file /home/abuild/rpmbuild/BUILD/kernel-desktop-3.11.10/linux-3.11/fs/xfs/xfs_alloc.c. Caller 0xffffffffa0c39fe9 > <0.1> 2014-06-29 12:32:18 Telcontar kernel - - - [212890.626346] <0.4> > 2014-06-29 12:32:18 Telcontar kernel - - - [212890.626348] CPU: 0 PID: 28875 > Comm: kworker/0:2 Tainted: P O 3.11.10-11-desktop #1 > <0.4> 2014-06-29 12:32:18 Telcontar kernel - - - [212890.626348] Hardware name: MICRO-STAR INTERNATIONAL CO.,LTD MS-7516/MS-7516, BIOS V1.5 10/10/2008 > <0.4> 2014-06-29 12:32:18 Telcontar kernel - - - [212890.626388] Workqueue: xfs-eofblocks/sde5 xfs_eofblocks_worker [xfs] > <0.4> 2014-06-29 12:32:18 Telcontar kernel - - - [212890.626390] 0000000000000002 ffffffff815a0252 00000000002a61c2 ffffffffa0c38996 > <0.4> 2014-06-29 12:32:18 Telcontar kernel - - - [212890.626391] ffff8800b7025680 ffff88022eb74180 ffff880121c3fe50 0000000000000002 > <0.4> 2014-06-29 12:32:18 Telcontar kernel - - - [212890.626393] 0000000000000000 0000000100000000 0000000000000000 0000000000000001 > <0.4> 2014-06-29 12:32:18 Telcontar kernel - - - [212890.626393] Call Trace: > <0.4> 2014-06-29 12:32:18 Telcontar kernel - - - [212890.626403] [] dump_trace+0x88/0x310 > <0.4> 2014-06-29 12:32:18 Telcontar kernel - - - [212890.626406] [] show_stack_log_lvl+0xd0/0x1d0 > <0.4> 2014-06-29 12:32:18 Telcontar kernel - - - [212890.626408] [] show_stack+0x1c/0x50 > <0.4> 2014-06-29 12:32:18 Telcontar kernel - - - [212890.626411] [] dump_stack+0x50/0x89 > <0.4> 2014-06-29 12:32:18 Telcontar kernel - - - [212890.626425] [] xfs_free_ag_extent+0x226/0x860 [xfs] > <0.4> 2014-06-29 12:32:18 Telcontar kernel - - - [212890.626468] [] xfs_free_extent+0xb9/0xf0 [xfs] > <0.4> 2014-06-29 12:32:18 Telcontar kernel - - - [212890.626510] [] xfs_bmap_finish+0x11e/0x170 [xfs] > <0.4> 2014-06-29 12:32:18 Telcontar kernel - - - [212890.626560] [] xfs_itruncate_extents+0x190/0x340 [xfs] > <0.4> 2014-06-29 12:32:18 Telcontar kernel - - - [212890.626623] [] xfs_free_eofblocks+0x1e3/0x260 [xfs] > <0.4> 2014-06-29 12:32:18 Telcontar kernel - - - [212890.626659] [] xfs_inode_free_eofblocks+0x6f/0x150 [xfs] > <0.4> 2014-06-29 12:32:18 Telcontar kernel - - - [212890.626688] [] xfs_inode_ag_walk.isra.10+0x1c2/0x310 [xfs] > <0.4> 2014-06-29 12:32:18 Telcontar kernel - - - [212890.626716] [] xfs_inode_ag_iterator_tag+0x6e/0xb0 [xfs] > <0.4> 2014-06-29 12:32:18 Telcontar kernel - - - [212890.626744] [] xfs_eofblocks_worker+0x12/0x20 [xfs] > <0.4> 2014-06-29 12:32:18 Telcontar kernel - - - [212890.626763] [] process_one_work+0x168/0x490 > <0.4> 2014-06-29 12:32:18 Telcontar kernel - - - [212890.626765] [] worker_thread+0x114/0x3a0 > <0.4> 2014-06-29 12:32:18 Telcontar kernel - - - [212890.626768] [] kthread+0xaf/0xc0 > <0.4> 2014-06-29 12:32:18 Telcontar kernel - - - [212890.626771] [] ret_from_fork+0x7c/0xb0 > <0.5> 2014-06-29 12:32:18 Telcontar kernel - - - [212890.626776] XFS (sde5): xfs_do_force_shutdown(0x8) called from line 916 of file /home/abuild/rpmbuild/BUILD/kernel-desktop-3.11.10/linux-3.11/fs/xfs/xfs_bmap.c. Return address = 0xffffffffa0c4c3d8 > <0.1> 2014-06-29 12:32:18 Telcontar kernel - - - [212890.706440] XFS (sde5): Corruption of in-memory data detected. Shutting down filesystem > <0.1> 2014-06-29 12:32:18 Telcontar kernel - - - [212890.706440] XFS (sde5): Please umount the filesystem and rectify the problem(s) > This is the background eofblocks scanner attempting to free preallocated space on a file. The scanner looks for files that have been recently grown and since been flushed to disk (i.e., no longer concurrently being written to) and trims the post-eof preallocation that comes along with growing files. The corruption errors at xfs_alloc.c:1602,1629 on v3.11 fire if the extent we are attempting to free is already accounted for in the by-block allocation btree. IOW, this is attempting to free an extent that the allocation metadata thinks is already free. > > Brief description: > > > * It happens only on restore from hibernation. Interesting, could you elaborate a bit more on the behavior this system is typically subjected to? i.e., is this a server that sees a constant workload that is also frequently hibernated/awakened? > * It happens randomly, spaced a month or two. > * It happens always on the same partition, the one that holds /home > (I have 10 XFS partitions spread on 4 internal hard disks, and a few > more external). It is a new disk, 2 TB, traditional MBR partitions. > * Disk has no defects, or at least so says smartctl long test. > * When it happens, recovery is impossible: xfs_repair does not seem to > find anything, or maybe it does, silently; but on system reuse, > it crashes again, fast. > * Thus recovery procedure is to use "xfsdump" to get a backup copy, > reformat the partition, and recover the files with xfsrestore. > > > The worst issue for me is that "xfs_repair" fails to repair it. > > I do not have more info than what appears on the logs, but four times (two > different kernels): > > cer@Telcontar:~> zgrep XFS_WANT_CORRUPTED_GOTO /var/log/messages*xz > /var/log/messages-20140402.xz:<0.1> 2014-03-15 03:35:17 Telcontar kernel - - - [37685.111787] XFS: Internal error XFS_WANT_CORRUPTED_GOTO at line 1629 of file /home/abuild/rpmbuild/BUILD/kernel-desktop-3.11.10/linux-3.11/fs/xfs/xfs_alloc.c. Caller 0xffffffffa0c54fe9 > /var/log/messages-20140402.xz:<0.1> 2014-03-15 22:20:34 Telcontar kernel - - - [20151.298345] XFS: Internal error XFS_WANT_CORRUPTED_GOTO at line 1602 of file /home/abuild/rpmbuild/BUILD/kernel-desktop-3.11.10/linux-3.11/fs/xfs/xfs_alloc.c. Caller 0xffffffffa0c54fe9 > /var/log/messages-20140506.xz:<0.1> 2014-04-17 22:47:08 Telcontar kernel - - - [280271.851374] XFS: Internal error XFS_WANT_CORRUPTED_GOTO at line 1602 of file /home/abuild/rpmbuild/BUILD/kernel-desktop-3.11.10/linux-3.11/fs/xfs/xfs_alloc.c. Caller 0xffffffffa0c54fe9 > /var/log/messages-20140629.xz:<0.1> 2014-06-29 12:32:18 Telcontar kernel - - - [212890.626346] XFS: Internal error XFS_WANT_CORRUPTED_GOTO at line 1602 of file /home/abuild/rpmbuild/BUILD/kernel-desktop-3.11.10/linux-3.11/fs/xfs/xfs_alloc.c. Caller 0xffffffffa0c39fe9 > cer@Telcontar:~> > > > The first time that this happened I used a rescue usb stick (openSUSE 13.1 > xfce). xfs_repair said to mount the partition to force re-play the log. When > I did, mount hung. It was unkillable. Reboot of system hung. I then used > "xfs_repair -L" on that disk, which succeeded with no error report. On > reuse, the system crashed soon: you can see above two entries on the same > day. > > This last time, I simply rebooted to runlevel 3, logon as root, perform the > backup, format, restore. No testing, I was in a real hurry, and even so took > hours. > So you have reproduced this, reformatted with mkfs, restored from backups and continued to reproduce the problem? And still only on this particular partition? This is interesting because the corruption appears to be associated with post-eof space, which is generally transient. The worst case is that this space is trimmed off files when they are evicted from cache, such as during a umount. To me, that seems to correlate with a more recent/runtime problem rather than something that might be lingering on disk, but we don't really know for sure. > > I suppose that to diagnose this further you will want data extracted from > the filesystem: you have to tell me what operations to perform to obtain > that data the next time it happens, without me having to ask here for your > help. It may happen tomorrow, or in two months time, so I have to be > prepared for it. And as usual, it may happen at the worst time, when I have > work to be done in a hurry, as this last time (or I would have asked you). > > The only data I have is the system logs. > > I don't suppose that the "xfs_dump" archive contains anything of interest? > > - From what I have googled, one suspect is something wrong in that > partition. It was created using gparted, as the rest of the disk. This last > time I used "YaST" to reformat it, not mkfs.xfs. > > > > Wait! I have a "dd" copy of the entire partition (500 GB), made on March > 16th, 5 AM, so hard data could be obtained from there. I had forgotten. I'll > get something for you now: > > > Telcontar:/data/storage_d/old_backup # xfs_info xfs_copy_home > meta-data=/dev/sdf2 isize=256 agcount=4, agsize=122341568 > blks > = sectsz=512 attr=2 > data = bsize=4096 blocks=489366272, imaxpct=5 > = sunit=0 swidth=0 blks > naming =version 2 bsize=4096 ascii-ci=0 > log =internal bsize=4096 blocks=238948, version=2 > = sectsz=512 sunit=0 blks, lazy-count=1 > realtime =none extsz=4096 blocks=0, rtextents=0 > Telcontar:/data/storage_d/old_backup # > > > I could do a "xfs_metadump" on it - just tell me what options to use, and > where can the result be uploaded to, if big. > A metadump would be helpful, though that only gives us the on-disk state. What was the state of this fs at the time the dd image was created? I'm curious if something like an 'rm -rf *' on the metadump would catch any other corruptions or if this is indeed limited to something associated with recent (pre)allocations. Run 'xfs_metadump ' to create a metadump that will obfuscate filenames by default. It should also be compressible. In the future, it's probably worth grabbing a metadump as a first step (before repair, zeroing the log, etc.) so we can look at the fs in the state most recent to the crash. Brian > > > Current versions: > > Linux Telcontar 3.11.10-11-desktop #1 SMP PREEMPT Mon May 12 13:37:06 UTC 2014 (3d22b5f) x86_64 x86_64 x86_64 GNU/Linux > > xfs_repair version 3.1.11 > > CPU: Intel(R) Core(TM)2 Quad CPU Q9550 @ 2.83GHz > > System: openSUSE Linux 13.1, 64 bit. > > > - -- Cheers > Carlos E. R. > > (from 13.1 x86_64 "Bottle" at Telcontar) > -----BEGIN PGP SIGNATURE----- > Version: GnuPG v2.0.22 (GNU/Linux) > > iEYEARECAAYFAlOz14UACgkQtTMYHG2NR9XWLgCfRXInLwE/FrToinuYjpgWQyu6 > dA4AnjAP0DdUvOnsdZfLVaI7wm+c7U0N > =vxuS > -----END PGP SIGNATURE----- > > _______________________________________________ > xfs mailing list > xfs@oss.sgi.com > http://oss.sgi.com/mailman/listinfo/xfs From alex@zadarastorage.com Wed Jul 2 07:27:33 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: * X-Spam-Status: No, score=1.9 required=5.0 tests=STOX_REPLY_TYPE autolearn=no version=3.3.1 X-Original-To: xfs@oss.sgi.com Delivered-To: xfs@oss.sgi.com Received: from relay.sgi.com (relay1.corp.sgi.com [137.38.102.111]) by oss.sgi.com (Postfix) with ESMTP id 8319C7F54 for ; Wed, 2 Jul 2014 07:27:33 -0500 (CDT) Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by relay1.corp.sgi.com (Postfix) with ESMTP id 6A6378F8040 for ; Wed, 2 Jul 2014 05:27:30 -0700 (PDT) X-ASG-Debug-ID: 1404304047-04cbb06536226890001-NocioJ Received: from mail-wi0-f180.google.com (mail-wi0-f180.google.com [209.85.212.180]) by cuda.sgi.com with ESMTP id Df2aD4MCGhz3f2FT (version=TLSv1 cipher=RC4-SHA bits=128 verify=NO) for ; Wed, 02 Jul 2014 05:27:28 -0700 (PDT) X-Barracuda-Envelope-From: alex@zadarastorage.com X-Barracuda-Apparent-Source-IP: 209.85.212.180 Received: by mail-wi0-f180.google.com with SMTP id hi2so371252wib.13 for ; Wed, 02 Jul 2014 05:27:22 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:message-id:from:to:cc:references:in-reply-to :subject:date:mime-version:content-type:content-transfer-encoding :importance; bh=7wy1/GA7rZ4prUTTRhrGJW7K+puQXL3dYS1fsMMxgPg=; b=c3iXbReYdmO8XZppaLwJfgFgbZ667x85Vp4LTNRraIKz4bfHmv/tv5pSVhkGK2ft+a YN15lVzNCtc/kj3zT2rA8arqd1GqWyqOTq4r7TinvMX68rt3MEYcpMkI8dMaarl2iEVq bqqgiMH0GxrYQdIEX7ATEUK5uUAO+oltgiCpb45f7yO272jvByS7T+CcyqOE+z0HTAT2 d85WROCjCfBozAJzbzH0yEV0ZPpKInkvuHg3409f2DY3EdIX3XnxrnXSLoKL3F8xa6od d9AQdAKlQwnMcnBom0ps0nqdiDl7OlvhUdfoP9j6JZU9bLEvfhvd2tjJdr5HSbqq98Ox Bgyw== X-Gm-Message-State: ALoCoQmjykNHy/+l3lGnZm1R6khNsitZVdU9WK2yYnMJYhiUzU1httB/zNeFIQkwglUjxAX+6I3B X-Received: by 10.180.108.103 with SMTP id hj7mr43830425wib.82.1404304042273; Wed, 02 Jul 2014 05:27:22 -0700 (PDT) Received: from alyakaslap ([212.143.144.103]) by mx.google.com with ESMTPSA id pq9sm54787708wjc.35.2014.07.02.05.27.20 for (version=TLSv1 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Wed, 02 Jul 2014 05:27:21 -0700 (PDT) Message-ID: From: "Alex Lyakas" To: "Dave Chinner" Cc: References: <20131226230018.GJ20579@dastard> <20140113030230.GF3469@dastard> <20140113204314.GJ3469@dastard> <20140115014503.GQ3469@dastard> <20140119231745.GF18112@dastard> <4B2A412C75324EE9880358513C069476@alyakaslap> <20140701215626.GE9508@dastard> In-Reply-To: <20140701215626.GE9508@dastard> Subject: Re: xfs_growfs_data_private memory leak Date: Wed, 2 Jul 2014 15:27:25 +0300 X-ASG-Orig-Subj: Re: xfs_growfs_data_private memory leak MIME-Version: 1.0 Content-Type: text/plain; format=flowed; charset="iso-8859-1"; reply-type=original Content-Transfer-Encoding: 7bit X-Priority: 3 X-MSMail-Priority: Normal Importance: Normal X-Mailer: Microsoft Windows Live Mail 15.4.3555.308 X-MimeOLE: Produced By Microsoft MimeOLE V15.4.3555.308 X-Barracuda-Connect: mail-wi0-f180.google.com[209.85.212.180] X-Barracuda-Start-Time: 1404304047 X-Barracuda-Encrypted: RC4-SHA X-Barracuda-URL: http://192.48.176.25:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 X-Barracuda-Spam-Score: 0.00 X-Barracuda-Spam-Status: No, SCORE=0.00 using per-user scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.7 tests=BSF_SC0_MISMATCH_TO, STOX_REPLY_TYPE X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.7173 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.00 STOX_REPLY_TYPE STOX_REPLY_TYPE 0.00 BSF_SC0_MISMATCH_TO Envelope rcpt doesn't match header Hi Dave, Thank you for your comments. I realize that secondary superblocks are needed mostly for repairing a broken filesystem. However, I don't see that they get updated regularly, i.e., during normal operation they don't seem to get updated at all. I put a print in xfs_sb_write_verify, and it gets called only with: bp->b_bn==XFS_SB_DADDR. So do I understand correctly (also from comments in xfs_growfs_data_private), that it is safe to operate a filesystem while having broken secondary superblocks? For me, it appears to mount properly, and all the data seems to be there, but xfs_check complains like: bad sb magic # 0xc2a4baf2 in ag 6144 bad sb version # 0x4b5d in ag 6144 blocks 6144/65536..2192631388 out of range blocks 6144/65536..2192631388 claimed by block 6144/0 bad sb magic # 0xb20f3079 in ag 6145 bad sb version # 0x6505 in ag 6145 blocks 6145/65536..3530010017 out of range blocks 6145/65536..3530010017 claimed by block 6145/0 ... Also, if secondary superblocks do not get updated regularly, and there is no way to ask an operational XFS to update them, then during repair we may not find a good secondary superblock. As for the patch, I cannot post a patch against the upstream kernel, because I am running an older kernel. Unfortunately, I cannot qualify an upstream patch properly in a reasonable time. Is there a value in posting a patch against 3.8.13? Otherwise, it's fine by me if somebody else posts it and takes the credit. Thanks, Alex. -----Original Message----- From: Dave Chinner Sent: 02 July, 2014 12:56 AM To: Alex Lyakas Cc: xfs@oss.sgi.com Subject: Re: xfs_growfs_data_private memory leak On Tue, Jul 01, 2014 at 06:06:38PM +0300, Alex Lyakas wrote: > Greetings, > > It appears that if xfs_growfs_data_private fails during the "new AG > headers" loop, it does not free all the per-AG structures for the > new AGs. When XFS is unmounted later, they are not freed as well, > because xfs_growfs_data_private did not update the "sb_agcount" > field, so xfs_free_perag will not free them. This happens on 3.8.13, > but looking at the latest master branch, it seems to have the same > issue. > > Code like [1] in xfs_growfs_data, seems to fix the issue. Why not just do this in the appropriate error stack, like is done inside xfs_initialize_perag() on error? for (i = oagcount; i < nagcount; i++) { pag = radix_tree_delete(&mp->m_perag_tree, index); kmem_free(pag); } (though it might need RCU freeing) When you have a fix, can you send a proper patch with a sign-off on it? > A follow-up question: if xfs_grows_data_private fails during the > loop that updates all the secondary superblocks, what is the > consequence? (I am aware that in the latest master branch, the loop > is not broken on first error, but attempts to initialize whatever > possible). When these secondary superblocks will get updated? Is > there a way to force-update them? Otherwise, what can be the > consequence of leaving them not updated? The consequence is documented in mainline tree - if we don't update them all, then repair will do the wrong thing. Repair requires a majority iof identical secondaries to determine if the primary is correct or out of date. The old behaviour of not updating after the first error meant that the majority were old superblocks and so at some time in the future repair could decide your filesystem is smaller than it really is and hence truncate away the grown section of the filesystem. i.e. trigger catastrophic, unrecoverable data loss. Hence it's far better to write every seconday we can than to leave a majority in a bad state.... Cheers, Dave. -- Dave Chinner david@fromorbit.com From tinguely@sgi.com Wed Jul 2 08:07:59 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=RP_MATCHES_RCVD autolearn=ham version=3.3.1 X-Original-To: xfs@oss.sgi.com Delivered-To: xfs@oss.sgi.com Received: from relay.sgi.com (relay1.corp.sgi.com [137.38.102.111]) by oss.sgi.com (Postfix) with ESMTP id 6C6BD7F54 for ; Wed, 2 Jul 2014 08:07:59 -0500 (CDT) Received: from eagdhcp-232-174.americas.sgi.com (eagdhcp-232-174.americas.sgi.com [128.162.232.174]) by relay1.corp.sgi.com (Postfix) with ESMTP id 3B6D18F8059; Wed, 2 Jul 2014 06:07:55 -0700 (PDT) Message-ID: <53B40427.6060302@sgi.com> Date: Wed, 02 Jul 2014 08:07:51 -0500 From: Mark Tinguely User-Agent: Mozilla/5.0 (X11; FreeBSD amd64; rv:9.0) Gecko/20120122 Thunderbird/9.0 MIME-Version: 1.0 To: Brian Foster CC: "Carlos E. R." , XFS mail list Subject: Re: Got "Internal error XFS_WANT_CORRUPTED_GOTO". Filesystem needs reformatting to correct issue. References: <20140702120441.GA51757@bfoster.bfoster> In-Reply-To: <20140702120441.GA51757@bfoster.bfoster> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit On 07/02/14 07:04, Brian Foster wrote: > On Wed, Jul 02, 2014 at 11:57:25AM +0200, Carlos E. R. wrote: >> -----BEGIN PGP SIGNED MESSAGE----- >> Hash: SHA1 >> >> >> >> Hi, >> >> I got this error: >> >> >> <0.6> 2014-06-29 12:32:18 Telcontar kernel - - - [212890.186436] r8169 0000:06:00.0 eth0: link up >> <0.6> 2014-06-29 12:32:18 Telcontar kernel - - - [212890.615073] PM: restore of devices complete after 2735.034 msecs >> <0.1> 2014-06-29 12:32:18 Telcontar kernel - - - [212890.626346] XFS: Internal error XFS_WANT_CORRUPTED_GOTO at line 1602 of file /home/abuild/rpmbuild/BUILD/kernel-desktop-3.11.10/linux-3.11/fs/xfs/xfs_alloc.c. Caller 0xffffffffa0c39fe9 >> <0.1> 2014-06-29 12:32:18 Telcontar kernel - - - [212890.626346]<0.4> >> 2014-06-29 12:32:18 Telcontar kernel - - - [212890.626348] CPU: 0 PID: 28875 >> Comm: kworker/0:2 Tainted: P O 3.11.10-11-desktop #1 >> <0.4> 2014-06-29 12:32:18 Telcontar kernel - - - [212890.626348] Hardware name: MICRO-STAR INTERNATIONAL CO.,LTD MS-7516/MS-7516, BIOS V1.5 10/10/2008 >> <0.4> 2014-06-29 12:32:18 Telcontar kernel - - - [212890.626388] Workqueue: xfs-eofblocks/sde5 xfs_eofblocks_worker [xfs] >> <0.4> 2014-06-29 12:32:18 Telcontar kernel - - - [212890.626390] 0000000000000002 ffffffff815a0252 00000000002a61c2 ffffffffa0c38996 >> <0.4> 2014-06-29 12:32:18 Telcontar kernel - - - [212890.626391] ffff8800b7025680 ffff88022eb74180 ffff880121c3fe50 0000000000000002 >> <0.4> 2014-06-29 12:32:18 Telcontar kernel - - - [212890.626393] 0000000000000000 0000000100000000 0000000000000000 0000000000000001 >> <0.4> 2014-06-29 12:32:18 Telcontar kernel - - - [212890.626393] Call Trace: >> <0.4> 2014-06-29 12:32:18 Telcontar kernel - - - [212890.626403] [] dump_trace+0x88/0x310 >> <0.4> 2014-06-29 12:32:18 Telcontar kernel - - - [212890.626406] [] show_stack_log_lvl+0xd0/0x1d0 >> <0.4> 2014-06-29 12:32:18 Telcontar kernel - - - [212890.626408] [] show_stack+0x1c/0x50 >> <0.4> 2014-06-29 12:32:18 Telcontar kernel - - - [212890.626411] [] dump_stack+0x50/0x89 >> <0.4> 2014-06-29 12:32:18 Telcontar kernel - - - [212890.626425] [] xfs_free_ag_extent+0x226/0x860 [xfs] >> <0.4> 2014-06-29 12:32:18 Telcontar kernel - - - [212890.626468] [] xfs_free_extent+0xb9/0xf0 [xfs] >> <0.4> 2014-06-29 12:32:18 Telcontar kernel - - - [212890.626510] [] xfs_bmap_finish+0x11e/0x170 [xfs] >> <0.4> 2014-06-29 12:32:18 Telcontar kernel - - - [212890.626560] [] xfs_itruncate_extents+0x190/0x340 [xfs] >> <0.4> 2014-06-29 12:32:18 Telcontar kernel - - - [212890.626623] [] xfs_free_eofblocks+0x1e3/0x260 [xfs] >> <0.4> 2014-06-29 12:32:18 Telcontar kernel - - - [212890.626659] [] xfs_inode_free_eofblocks+0x6f/0x150 [xfs] >> <0.4> 2014-06-29 12:32:18 Telcontar kernel - - - [212890.626688] [] xfs_inode_ag_walk.isra.10+0x1c2/0x310 [xfs] >> <0.4> 2014-06-29 12:32:18 Telcontar kernel - - - [212890.626716] [] xfs_inode_ag_iterator_tag+0x6e/0xb0 [xfs] >> <0.4> 2014-06-29 12:32:18 Telcontar kernel - - - [212890.626744] [] xfs_eofblocks_worker+0x12/0x20 [xfs] >> <0.4> 2014-06-29 12:32:18 Telcontar kernel - - - [212890.626763] [] process_one_work+0x168/0x490 >> <0.4> 2014-06-29 12:32:18 Telcontar kernel - - - [212890.626765] [] worker_thread+0x114/0x3a0 >> <0.4> 2014-06-29 12:32:18 Telcontar kernel - - - [212890.626768] [] kthread+0xaf/0xc0 >> <0.4> 2014-06-29 12:32:18 Telcontar kernel - - - [212890.626771] [] ret_from_fork+0x7c/0xb0 >> <0.5> 2014-06-29 12:32:18 Telcontar kernel - - - [212890.626776] XFS (sde5): xfs_do_force_shutdown(0x8) called from line 916 of file /home/abuild/rpmbuild/BUILD/kernel-desktop-3.11.10/linux-3.11/fs/xfs/xfs_bmap.c. Return address = 0xffffffffa0c4c3d8 >> <0.1> 2014-06-29 12:32:18 Telcontar kernel - - - [212890.706440] XFS (sde5): Corruption of in-memory data detected. Shutting down filesystem >> <0.1> 2014-06-29 12:32:18 Telcontar kernel - - - [212890.706440] XFS (sde5): Please umount the filesystem and rectify the problem(s) >> > > This is the background eofblocks scanner attempting to free preallocated > space on a file. The scanner looks for files that have been recently > grown and since been flushed to disk (i.e., no longer concurrently being > written to) and trims the post-eof preallocation that comes along with > growing files. > > The corruption errors at xfs_alloc.c:1602,1629 on v3.11 fire if the > extent we are attempting to free is already accounted for in the > by-block allocation btree. IOW, this is attempting to free an extent > that the allocation metadata thinks is already free. > >> >> Brief description: >> >> >> * It happens only on restore from hibernation. > > Interesting, could you elaborate a bit more on the behavior this system > is typically subjected to? i.e., is this a server that sees a constant > workload that is also frequently hibernated/awakened? > >> * It happens randomly, spaced a month or two. >> * It happens always on the same partition, the one that holds /home >> (I have 10 XFS partitions spread on 4 internal hard disks, and a few >> more external). It is a new disk, 2 TB, traditional MBR partitions. >> * Disk has no defects, or at least so says smartctl long test. >> * When it happens, recovery is impossible: xfs_repair does not seem to >> find anything, or maybe it does, silently; but on system reuse, >> it crashes again, fast. >> * Thus recovery procedure is to use "xfsdump" to get a backup copy, >> reformat the partition, and recover the files with xfsrestore. >> >> >> The worst issue for me is that "xfs_repair" fails to repair it. what version of xfs_repair? Did you try to mount to replay the log before repair? Besides Brian's good advice, is kdump configured to dump vmcore? --Mark. From sean.zhang@yiguandns.com.cn Wed Jul 2 08:13:52 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=HTML_MESSAGE autolearn=ham version=3.3.1 X-Original-To: xfs@oss.sgi.com Delivered-To: xfs@oss.sgi.com Received: from relay.sgi.com (relay2.corp.sgi.com [137.38.102.29]) by oss.sgi.com (Postfix) with ESMTP id 5FA507F55 for ; Wed, 2 Jul 2014 08:13:52 -0500 (CDT) Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by relay2.corp.sgi.com (Postfix) with ESMTP id 4F18C304070 for ; Wed, 2 Jul 2014 06:13:48 -0700 (PDT) X-ASG-Debug-ID: 1404306823-04cbb06537227e10001-NocioJ Received: from lucky1.263.net (lucky1.263xmail.com [211.157.147.132]) by cuda.sgi.com with ESMTP id 03pOlNnleA8UmsH2 (version=TLSv1 cipher=AES256-SHA bits=256 verify=NO) for ; Wed, 02 Jul 2014 06:13:44 -0700 (PDT) X-Barracuda-Envelope-From: sean.zhang@yiguandns.com.cn X-Barracuda-Apparent-Source-IP: 211.157.147.132 Received: from sean.zhang?yiguandns.com.cn (unknown [192.168.195.82]) by lucky1.263.net (Postfix) with SMTP id 218D8207AD for ; Wed, 2 Jul 2014 21:13:40 +0800 (CST) X-263anti-spam:BIG:0;KSV:0; X-MAIL-GRAY:1 X-MAIL-DELIVERY:0 X-ABS-CHECKED:1 X-KSVirus-check:0 Received: from yiguandns.com.cn (localhost.localdomain [127.0.0.1]) by smtp.263.net (Postfix) with SMTP id 5AF9E422 for ; Wed, 2 Jul 2014 21:13:39 +0800 (CST) X-RL-SENDER:sean.zhang@yiguandns.com.cn X-FST-TO:xfs@oss.sgi.com X-SENDER-IP:222.64.109.165 X-LOGIN-NAME:sean.zhang@yiguandns.com.cn X-UNIQUE-TAG: X-ATTACHMENT-NUM:0 X-SENDER:sean.zhang@yiguandns.com.cn X-DNS-TYPE:7 Received: from yiguandns.com.cn (165.109.64.222.broad.xw.sh.dynamic.163data.com.cn [222.64.109.165]) by smtp.263.net (Postfix) whith SMTP id 2095S791HC; Wed, 02 Jul 2014 21:13:39 +0800 (CST) Date: Wed, 02 Jul 2014 21:13:22 +0800 From: =?gb2312?B?U2VhbiBaaGFuZw==?= To: Subject: =?gb2312?B?eGZzIGRvbWFpbiBhbmQga2V5d29yZCBpbiBDTg==?= Mime-Version: 1.0 X-ASG-Orig-Subj: =?gb2312?B?eGZzIGRvbWFpbiBhbmQga2V5d29yZCBpbiBDTg==?= Content-Type: multipart/alternative; boundary="----=_NextPart_001_00C5_01CA2C7D.036CC4EE" X-Priority: 3 X-MSMail-Priority: Normal X-Mailer: Microsoft Outlook Express X-MimeOLE: Produced By Microsoft MimeOLE Message-Id: <20140702131339.5AF9E422@smtp.263.net> X-Barracuda-Connect: lucky1.263xmail.com[211.157.147.132] X-Barracuda-Start-Time: 1404306824 X-Barracuda-Encrypted: AES256-SHA X-Barracuda-URL: http://192.48.176.25:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 X-Barracuda-Spam-Score: 1.06 X-Barracuda-Spam-Status: No, SCORE=1.06 using per-user scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.7 tests=FROM_EXCESS_BASE64, FROM_EXCESS_BASE64_2, HTML_MESSAGE X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.7173 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.00 HTML_MESSAGE BODY: HTML included in message 0.01 FROM_EXCESS_BASE64 From: base64 encoded unnecessarily 1.05 FROM_EXCESS_BASE64_2 From: base64 encoded unnecessarily This is a multi-part message in MIME format. ------=_NextPart_001_00C5_01CA2C7D.036CC4EE Content-Type: text/plain; charset="GB2312" Content-Transfer-Encoding: base64 KFBsZWFzZSBmb3J3YXJkIHRoaXMgdG8geW91ciBDRU8sIGJlY2F1c2UgdGhpcyBpcyB1cmdlbnQu IFRoYW5rcykNCg0KV2UgYXJlIGEgTmV0d29yayBTZXJ2aWNlIENvbXBhbnkgd2hpY2ggaXMgdGhl IGRvbWFpbiBuYW1lIHJlZ2lzdHJhdGlvbiBjZW50ZXIgaW4gU2hhbmdoYWksIENoaW5hLiBPbiBK dWx5IDEsIDIwMTQsIHdlIHJlY2VpdmVkIGFuIGFwcGxpY2F0aW9uIGZyb20gSHVhZmkgSG9sZGlu Z3MgTHRkIHJlcXVlc3RlZCAieGZzIiBhcyB0aGVpciBpbnRlcm5ldCBrZXl3b3JkIGFuZCBDaGlu YSAoQ04pIGRvbWFpbiBuYW1lcy4gQnV0IGFmdGVyIGNoZWNraW5nIGl0LCB3ZSBmaW5kIHRoaXMg bmFtZSBjb25mbGljdCB3aXRoIHlvdXIgY29tcGFueSBuYW1lIG9yIHRyYWRlbWFyay4gSW4gb3Jk ZXIgdG8gZGVhbCB3aXRoIHRoaXMgbWF0dGVyIGJldHRlciwgaXQncyBuZWNlc3NhcnkgdG8gc2Vu ZCBlbWFpbCB0byB5b3UgYW5kIGNvbmZpcm0gd2hldGhlciB0aGlzIGNvbXBhbnkgaXMgeW91ciBk aXN0cmlidXRvciBvciBidXNpbmVzcyBwYXJ0bmVyIGluIENoaW5hPyANCg0KDQpLaW5kIHJlZ2Fy ZHMNCg0KU2VhbiBaaGFuZw0KR2VuZXJhbCBNYW5hZ2VyDQpTaGFuZ2hhaSBPZmZpY2UgKEhlYWRx dWFydGVycykNCkIwNiwgWXVqaW5nIEJ1aWxkaW5nLCBOby4xIEppaGUgUm9hZCwNClNoYW5naGFp IDIwMTEwNywgQ2hpbmENClRlbDogKzg2IDIxIDYxOTEgODY5Ng0KTW9iaWxlOiArODYgMTM4IDE2 NDIgODY3MQ0KRmF4OiArODYgMjEgNjE5MSA4Njk3DQpXZWI6IHd3dy55aWd1YW5kbnMuY29tLmNu ------=_NextPart_001_00C5_01CA2C7D.036CC4EE Content-Type: text/html; charset="GB2312" Content-Transfer-Encoding: base64 PEhUTUw+PEhFQUQ+PFRJVExFPnhmcyBkb21haW4gYW5kIGtleXdvcmQgaW4gQ048L1RJVExFPg0K PE1FVEEgbmFtZT1HRU5FUkFUT1IgY29udGVudD0iTVNIVE1MIDEwLjAwLjkyMDAuMTY5MjEiPjwv SEVBRD4NCjxCT0RZPg0KPERJVj4NCjxESVY+PEZPTlQgY29sb3I9ZGFya2JsdWUgc2l6ZT0yPjwv Rk9OVD4NCjxESVY+PEZPTlQgY29sb3I9ZGFya2JsdWUgc2l6ZT0yPjxGT05UIGNvbG9yPWJsYWNr PjxGT05UIHNpemU9KzA+PEZPTlQgc2l6ZT0yPjxTUEFOIHN0eWxlPSJGT05ULVNJWkU6IDEwcHQ7 IEZPTlQtRkFNSUxZOiAnQXJpYWwnLCdzYW5zLXNlcmlmJzsgQ09MT1I6IGJsYWNrIj48U1BBTiBz dHlsZT0iRk9OVC1TSVpFOiAxMHB0OyBGT05ULUZBTUlMWTogJ0FyaWFsJywnc2Fucy1zZXJpZic7 IENPTE9SOiBibGFjayI+PEZPTlQgY29sb3I9ZGFya2JsdWU+PFNQQU4gc3R5bGU9IkZPTlQtU0la RTogMTBwdDsgRk9OVC1GQU1JTFk6ICdBcmlhbCcsJ3NhbnMtc2VyaWYnOyBDT0xPUjogYmxhY2si PjxGT05UIGNvbG9yPWRhcmtibHVlPjxGT05UIGNvbG9yPWRhcmtibHVlPjwvRk9OVD48L0ZPTlQ+ PC9TUEFOPjwvRk9OVD48L1NQQU4+PC9TUEFOPjwvRk9OVD48L0ZPTlQ+PC9GT05UPjwvRk9OVD4N CjxESVY+PEZPTlQgY29sb3I9ZGFya2JsdWUgc2l6ZT0yPjxGT05UIHNpemU9KzA+PEZPTlQgc2l6 ZT0yPjxGT05UIGNvbG9yPWRhcmtibHVlPjxGT05UIGNvbG9yPWRhcmtibHVlPjxGT05UIGNvbG9y PWRhcmtibHVlPjwvRk9OVD48L0ZPTlQ+PC9GT05UPjwvRk9OVD48L0ZPTlQ+PC9GT05UPg0KPERJ Vj48Rk9OVCBjb2xvcj1kYXJrYmx1ZSBzaXplPTI+PEZPTlQgc2l6ZT0rMD48Rk9OVCBzaXplPTI+ PEZPTlQgY29sb3I9ZGFya2JsdWU+PEZPTlQgY29sb3I9ZGFya2JsdWU+PEZPTlQgY29sb3I9ZGFy a2JsdWU+PC9GT05UPjwvRk9OVD48L0ZPTlQ+PC9GT05UPjwvRk9OVD48L0ZPTlQ+DQo8RElWPjxG T05UIGNvbG9yPWRhcmtibHVlIHNpemU9Mj48Rk9OVCBzaXplPSswPjxGT05UIHNpemU9Mj48Rk9O VCBjb2xvcj1kYXJrYmx1ZT48Rk9OVCBjb2xvcj1kYXJrYmx1ZT48Rk9OVCBjb2xvcj1kYXJrYmx1 ZT48L0ZPTlQ+PC9GT05UPjwvRk9OVD48L0ZPTlQ+PC9GT05UPjwvRk9OVD4NCjxESVY+PEZPTlQg Y29sb3I9ZGFya2JsdWUgc2l6ZT0yPjxGT05UIHNpemU9KzA+PEZPTlQgc2l6ZT0yPjxGT05UIGNv bG9yPWRhcmtibHVlPjxGT05UIGNvbG9yPWRhcmtibHVlPjxGT05UIGNvbG9yPWRhcmtibHVlPjwv Rk9OVD48L0ZPTlQ+PC9GT05UPjwvRk9OVD48L0ZPTlQ+PC9GT05UPg0KPERJVj48Rk9OVCBjb2xv cj1kYXJrYmx1ZSBzaXplPTI+PEZPTlQgc2l6ZT0rMD48Rk9OVCBzaXplPTI+PEZPTlQgY29sb3I9 ZGFya2JsdWU+PEZPTlQgY29sb3I9ZGFya2JsdWU+PEZPTlQgY29sb3I9ZGFya2JsdWU+PC9GT05U PjwvRk9OVD48L0ZPTlQ+PC9GT05UPjwvRk9OVD48L0ZPTlQ+DQo8RElWPjxGT05UIGNvbG9yPWRh cmtibHVlIHNpemU9Mj48Rk9OVCBzaXplPSswPjxGT05UIHNpemU9Mj48Rk9OVCBjb2xvcj1kYXJr Ymx1ZT48Rk9OVCBjb2xvcj1kYXJrYmx1ZT48Rk9OVCBjb2xvcj1kYXJrYmx1ZT4NCjxESVY+PEZP TlQgY29sb3I9IzAwMDAwMCBmYWNlPUFyaWFsPg0KPERJVj48Rk9OVCBjb2xvcj0jMDAwMDAwPg0K PERJVj48Rk9OVCBjb2xvcj0jMDAwMDAwIGZhY2U9QXJpYWw+DQo8RElWPjxGT05UIGNvbG9yPSMw MDQwODAgc2l6ZT0zIGZhY2U9Q2FsaWJyaT4oUGxlYXNlIGZvcndhcmQgdGhpcyB0byB5b3VyIENF TywgYmVjYXVzZSB0aGlzIGlzIHVyZ2VudC4gVGhhbmtzKTxCUj48QlI+V2UgYXJlIGEgTmV0d29y ayBTZXJ2aWNlIENvbXBhbnkgd2hpY2ggaXMgdGhlIGRvbWFpbiBuYW1lIHJlZ2lzdHJhdGlvbiBj ZW50ZXIgaW4gU2hhbmdoYWksIENoaW5hLiBPbiBKdWx5Jm5ic3A7MSwgMjAxNCwgd2UgcmVjZWl2 ZWQgYW4gYXBwbGljYXRpb24gZnJvbSBIdWFmaSBIb2xkaW5ncyBMdGQgcmVxdWVzdGVkICJ4ZnMi IGFzIHRoZWlyIGludGVybmV0IGtleXdvcmQgYW5kIENoaW5hIChDTikgZG9tYWluIG5hbWVzLiBC dXQgYWZ0ZXIgY2hlY2tpbmcgaXQsIHdlIGZpbmQgdGhpcyBuYW1lIGNvbmZsaWN0IHdpdGggeW91 ciBjb21wYW55IG5hbWUgb3IgdHJhZGVtYXJrLiBJbiBvcmRlciB0byBkZWFsIHdpdGggdGhpcyBt YXR0ZXIgYmV0dGVyLCBpdCdzIG5lY2Vzc2FyeSB0byBzZW5kIGVtYWlsIHRvIHlvdSBhbmQgY29u ZmlybSB3aGV0aGVyIHRoaXMgY29tcGFueSBpcyB5b3VyIGRpc3RyaWJ1dG9yIG9yIGJ1c2luZXNz IHBhcnRuZXIgaW4gQ2hpbmE/IDxCUj48QlI+PC9GT05UPjwvRElWPg0KPERJVj48Rk9OVCBjb2xv cj0jMDA0MDgwIHNpemU9MyBmYWNlPUNhbGlicmk+S2luZCByZWdhcmRzPEJSPjxCUj48L0ZPTlQ+ PEZPTlQgZmFjZT1DYWxpYnJpPjxGT05UIHNpemU9Mz48Rk9OVCBjb2xvcj0jMDA0MDgwPjxTVFJP Tkc+U2VhbiBaaGFuZzxCUj48L1NUUk9ORz5HZW5lcmFsIE1hbmFnZXI8QlI+PC9GT05UPjwvRk9O VD48L0ZPTlQ+PEZPTlQgZmFjZT1DYWxpYnJpPjxGT05UIHNpemU9Mz48Rk9OVCBjb2xvcj0jMDA0 MDgwPjxTVFJPTkc+U2hhbmdoYWkgT2ZmaWNlIChIZWFkcXVhcnRlcnMpPEJSPjwvU1RST05HPkIw NiwgWXVqaW5nIEJ1aWxkaW5nLCBOby4xIEppaGUgUm9hZCw8QlI+U2hhbmdoYWkgMjAxMTA3LCBD aGluYTxCUj5UZWw6ICs4NiAyMSA2MTkxIDg2OTY8QlI+TW9iaWxlOiArODYgMTM4IDE2NDIgODY3 MTxCUj5GYXg6ICs4NiAyMSA2MTkxIDg2OTc8QlI+V2ViOiA8L0ZPTlQ+PEZPTlQgY29sb3I9IzAw NDA4MD48QSBocmVmPSJodHRwOi8vd3d3LnlpZ3VhbmRucy5jb20uY24iPnd3dy55aWd1YW5kbnMu Y29tLmNuPC9BPjwvRk9OVD48L0ZPTlQ+PC9GT05UPjxGT05UIGNvbG9yPWJsYWNrPjxCUj48L0ZP TlQ+PC9ESVY+PC9GT05UPjwvRElWPjwvRk9OVD48L0RJVj48L0ZPTlQ+PC9ESVY+PC9GT05UPjwv Rk9OVD48L0ZPTlQ+PC9GT05UPjwvRk9OVD48L0ZPTlQ+PC9ESVY+PC9ESVY+PC9ESVY+PC9ESVY+ PC9ESVY+PC9ESVY+PC9ESVY+PC9ESVY+PC9ESVY+PC9CT0RZPjwvSFRNTD4= ------=_NextPart_001_00C5_01CA2C7D.036CC4EE-- From tinguely@eagdhcp-232-174.americas.sgi.com Wed Jul 2 09:52:19 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=RP_MATCHES_RCVD autolearn=ham version=3.3.1 X-Original-To: xfs@oss.sgi.com Delivered-To: xfs@oss.sgi.com Received: from relay.sgi.com (relay1.corp.sgi.com [137.38.102.111]) by oss.sgi.com (Postfix) with ESMTP id B6A647F55 for ; Wed, 2 Jul 2014 09:52:19 -0500 (CDT) Received: from eagdhcp-232-174.americas.sgi.com (eagdhcp-232-174.americas.sgi.com [128.162.232.174]) by relay1.corp.sgi.com (Postfix) with ESMTP id 7D6478F8049 for ; Wed, 2 Jul 2014 07:52:19 -0700 (PDT) Received: from eagdhcp-232-174.americas.sgi.com (localhost [127.0.0.1]) by eagdhcp-232-174.americas.sgi.com (8.14.5/8.14.5) with ESMTP id s62EqFer005637 for ; Wed, 2 Jul 2014 09:52:15 -0500 (CDT) (envelope-from tinguely@eagdhcp-232-174.americas.sgi.com) Received: (from tinguely@localhost) by eagdhcp-232-174.americas.sgi.com (8.14.5/8.14.5/Submit) id s62EqFmS005636; Wed, 2 Jul 2014 09:52:15 -0500 (CDT) (envelope-from tinguely) Message-Id: <20140702144139.894251516@sgi.com> User-Agent: quilt/0.51-1 Date: Wed, 02 Jul 2014 09:32:10 -0500 From: Mark Tinguely To: xfs@oss.sgi.com Subject: [PATCH 4/5] xfs: free inodes on log recovery error References: <20140702143206.438456679@sgi.com> Content-Disposition: inline; filename=xfs-reclaim-inodes-on-recovery-fail.patch Recovery may free inodes that end up on the inode reclaim RCU. If recovery fails, we leak these inodes. The filesystem should be in forced shutdown at this point, so a call to xfs_reclaim_inode is a fast path to freeing the inodes and RCU entries. Signed-off-by: Mark Tinguely --- fs/xfs/xfs_log.c | 2 ++ fs/xfs/xfs_mount.c | 1 + 2 files changed, 3 insertions(+) Index: b/fs/xfs/xfs_log.c =================================================================== --- a/fs/xfs/xfs_log.c +++ b/fs/xfs/xfs_log.c @@ -31,6 +31,7 @@ #include "xfs_log_priv.h" #include "xfs_log_recover.h" #include "xfs_inode.h" +#include "xfs_icache.h" #include "xfs_trace.h" #include "xfs_fsops.h" #include "xfs_cksum.h" @@ -720,6 +721,7 @@ xfs_log_mount( return 0; out_destroy_ail: + xfs_reclaim_inodes(mp, SYNC_WAIT); xfs_trans_ail_destroy(mp); out_free_log: xlog_dealloc_log(mp->m_log); Index: b/fs/xfs/xfs_mount.c =================================================================== --- a/fs/xfs/xfs_mount.c +++ b/fs/xfs/xfs_mount.c @@ -980,6 +980,7 @@ xfs_mountfs( out_log_dealloc: xfs_log_unmount(mp); out_fail_wait: + xfs_reclaim_inodes(mp, SYNC_WAIT); if (mp->m_logdev_targp && mp->m_logdev_targp != mp->m_ddev_targp) xfs_wait_buftarg(mp->m_logdev_targp); xfs_wait_buftarg(mp->m_ddev_targp); From tinguely@eagdhcp-232-174.americas.sgi.com Wed Jul 2 09:52:19 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=RP_MATCHES_RCVD autolearn=ham version=3.3.1 X-Original-To: xfs@oss.sgi.com Delivered-To: xfs@oss.sgi.com Received: from relay.sgi.com (relay2.corp.sgi.com [137.38.102.29]) by oss.sgi.com (Postfix) with ESMTP id C75097F56 for ; Wed, 2 Jul 2014 09:52:19 -0500 (CDT) Received: from eagdhcp-232-174.americas.sgi.com (eagdhcp-232-174.americas.sgi.com [128.162.232.174]) by relay2.corp.sgi.com (Postfix) with ESMTP id 9B9CA304062 for ; Wed, 2 Jul 2014 07:52:19 -0700 (PDT) Received: from eagdhcp-232-174.americas.sgi.com (localhost [127.0.0.1]) by eagdhcp-232-174.americas.sgi.com (8.14.5/8.14.5) with ESMTP id s62EqFgF005641 for ; Wed, 2 Jul 2014 09:52:15 -0500 (CDT) (envelope-from tinguely@eagdhcp-232-174.americas.sgi.com) Received: (from tinguely@localhost) by eagdhcp-232-174.americas.sgi.com (8.14.5/8.14.5/Submit) id s62EqFTb005640; Wed, 2 Jul 2014 09:52:15 -0500 (CDT) (envelope-from tinguely) Message-Id: <20140702144139.978978390@sgi.com> User-Agent: quilt/0.51-1 Date: Wed, 02 Jul 2014 09:32:11 -0500 From: Mark Tinguely To: xfs@oss.sgi.com Subject: [PATCH 5/5] xfs: fix cil push sequence after log recovery References: <20140702143206.438456679@sgi.com> Content-Disposition: inline; filename=xfs-fix-cil-push-seq-after-recovery.patch The CIL pushes are marked complete with transaction tickets and should be in the the correct sequence order. The back end of the cil push code uses the ctx->commit_lsn to make sure all previous pushes are complete before adding the commit ticket for the current cil push. Because xlog_cil_init_post_recovery sets the ctx->commit_lsn, the later pushes can incorrectly think that the first sequence push is complete and allow out of order cil completion records to be written to the log. If the system crashes, the log will be replayed in the wrong order. Signed-off-by: Mark Tinguely --- fs/xfs/xfs_log_cil.c | 2 -- 1 file changed, 2 deletions(-) Index: b/fs/xfs/xfs_log_cil.c =================================================================== --- a/fs/xfs/xfs_log_cil.c +++ b/fs/xfs/xfs_log_cil.c @@ -78,8 +78,6 @@ xlog_cil_init_post_recovery( { log->l_cilp->xc_ctx->ticket = xlog_cil_ticket_alloc(log); log->l_cilp->xc_ctx->sequence = 1; - log->l_cilp->xc_ctx->commit_lsn = xlog_assign_lsn(log->l_curr_cycle, - log->l_curr_block); } /* From tinguely@eagdhcp-232-174.americas.sgi.com Wed Jul 2 09:52:22 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=RP_MATCHES_RCVD autolearn=ham version=3.3.1 X-Original-To: xfs@oss.sgi.com Delivered-To: xfs@oss.sgi.com Received: from relay.sgi.com (relay1.corp.sgi.com [137.38.102.111]) by oss.sgi.com (Postfix) with ESMTP id 66D737F61 for ; Wed, 2 Jul 2014 09:52:22 -0500 (CDT) Received: from eagdhcp-232-174.americas.sgi.com (eagdhcp-232-174.americas.sgi.com [128.162.232.174]) by relay1.corp.sgi.com (Postfix) with ESMTP id 3CE428F8049 for ; Wed, 2 Jul 2014 07:52:19 -0700 (PDT) Received: from eagdhcp-232-174.americas.sgi.com (localhost [127.0.0.1]) by eagdhcp-232-174.americas.sgi.com (8.14.5/8.14.5) with ESMTP id s62EqEoS005629 for ; Wed, 2 Jul 2014 09:52:14 -0500 (CDT) (envelope-from tinguely@eagdhcp-232-174.americas.sgi.com) Received: (from tinguely@localhost) by eagdhcp-232-174.americas.sgi.com (8.14.5/8.14.5/Submit) id s62EqEpf005628; Wed, 2 Jul 2014 09:52:14 -0500 (CDT) (envelope-from tinguely) Message-Id: <20140702144139.705337423@sgi.com> User-Agent: quilt/0.51-1 Date: Wed, 02 Jul 2014 09:32:08 -0500 From: Mark Tinguely To: xfs@oss.sgi.com Subject: [PATCH 2/5] xfs: free the EFI entries from AIL on forced shutdown References: <20140702143206.438456679@sgi.com> Content-Disposition: inline; filename=xfs-fix-efi-on-filesystem-errors.patch The extent free intention (EFI) entry and extent free done (EFD) log items are in separate transactions. It is possible that the EFI can be pushed to the AIL before a forced shutdown where it gets stuck on the AIL and requires a reboot in the following places: 1) xfs_bmap_finish: The EFD is not in the transaction. This can happen if the transaction in xfs_bmap_finish() fails to reserve space. The EFD will not be dirty in the transaction if the error happened while freeing the first extent in the list. 2) EFD IOP Abort processing: If xfs_trans_cancel() is called with an abort flag, or if the xfs_trans_commit() is called when the file system is in forced shutdown or if the log buffer write fails. Do not free the EFI structure immediately on forced shutdowns, but instead use the IOP calls to match the EFI/EFD entries. A small wrinkle in the mix is the EFI is not automatically placed on the AIL by the IOP routines in the cases but may have made it to the AIL before the abort. We now have to check if the EFI is on the AIL in the abort IOP cases. Remove the debug code, because the EFD could be in the log item list on a xfs_trans_cancel. Signed-off-by: Mark Tinguely --- fs/xfs/xfs_bmap_util.c | 36 ++++++++++++++++++------------------ fs/xfs/xfs_trans.c | 8 -------- 2 files changed, 18 insertions(+), 26 deletions(-) Index: b/fs/xfs/xfs_bmap_util.c =================================================================== --- a/fs/xfs/xfs_bmap_util.c +++ b/fs/xfs/xfs_bmap_util.c @@ -79,7 +79,6 @@ xfs_bmap_finish( int error; /* error return value */ xfs_bmap_free_item_t *free; /* free extent item */ struct xfs_trans_res tres; /* new log reservation */ - xfs_mount_t *mp; /* filesystem mount structure */ xfs_bmap_free_item_t *next; /* next item on free list */ xfs_trans_t *ntp; /* new transaction pointer */ @@ -115,31 +114,32 @@ xfs_bmap_finish( xfs_log_ticket_put(ntp->t_ticket); error = xfs_trans_reserve(ntp, &tres, 0, 0); - if (error) + if (error) { + /* + * EFD is not in the transaction. Manually release the EFI + * and remove it from AIL if necessary. + */ + xfs_efi_release(efi, efi->efi_format.efi_nextents); return error; + } + efd = xfs_trans_get_efd(ntp, efi, flist->xbf_count); for (free = flist->xbf_first; free != NULL; free = next) { next = free->xbfi_next; - if ((error = xfs_free_extent(ntp, free->xbfi_startblock, - free->xbfi_blockcount))) { + error = xfs_free_extent(ntp, free->xbfi_startblock, + free->xbfi_blockcount); + xfs_trans_log_efd_extent(ntp, efd, free->xbfi_startblock, + free->xbfi_blockcount); + if (error) { /* - * The bmap free list will be cleaned up at a - * higher level. The EFI will be canceled when - * this transaction is aborted. - * Need to force shutdown here to make sure it - * happens, since this transaction may not be - * dirty yet. + * Encountered an error while freeing the extent. + * The bmap free list will be cleaned up at a higher + * level. The caller will call xfs_trans_cancel on + * error, the filesystem will be shutdown and the + * EFI and EFD will be freed. */ - mp = ntp->t_mountp; - if (!XFS_FORCED_SHUTDOWN(mp)) - xfs_force_shutdown(mp, - (error == EFSCORRUPTED) ? - SHUTDOWN_CORRUPT_INCORE : - SHUTDOWN_META_IO_ERROR); return error; } - xfs_trans_log_efd_extent(ntp, efd, free->xbfi_startblock, - free->xbfi_blockcount); xfs_bmap_del_free(flist, NULL, free); } return 0; Index: b/fs/xfs/xfs_trans.c =================================================================== --- a/fs/xfs/xfs_trans.c +++ b/fs/xfs/xfs_trans.c @@ -958,14 +958,6 @@ xfs_trans_cancel( XFS_ERROR_REPORT("xfs_trans_cancel", XFS_ERRLEVEL_LOW, mp); xfs_force_shutdown(mp, SHUTDOWN_CORRUPT_INCORE); } -#ifdef DEBUG - if (!(flags & XFS_TRANS_ABORT) && !XFS_FORCED_SHUTDOWN(mp)) { - struct xfs_log_item_desc *lidp; - - list_for_each_entry(lidp, &tp->t_items, lid_trans) - ASSERT(!(lidp->lid_item->li_type == XFS_LI_EFD)); - } -#endif xfs_trans_unreserve_and_mod_sb(tp); xfs_trans_unreserve_and_mod_dquots(tp); From tinguely@eagdhcp-232-174.americas.sgi.com Wed Jul 2 09:52:22 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=RP_MATCHES_RCVD autolearn=ham version=3.3.1 X-Original-To: xfs@oss.sgi.com Delivered-To: xfs@oss.sgi.com Received: from relay.sgi.com (relay1.corp.sgi.com [137.38.102.111]) by oss.sgi.com (Postfix) with ESMTP id 6E8D07F62 for ; Wed, 2 Jul 2014 09:52:22 -0500 (CDT) Received: from eagdhcp-232-174.americas.sgi.com (eagdhcp-232-174.americas.sgi.com [128.162.232.174]) by relay1.corp.sgi.com (Postfix) with ESMTP id 2C8A78F8039 for ; Wed, 2 Jul 2014 07:52:19 -0700 (PDT) Received: from eagdhcp-232-174.americas.sgi.com (localhost [127.0.0.1]) by eagdhcp-232-174.americas.sgi.com (8.14.5/8.14.5) with ESMTP id s62EqEDo005625 for ; Wed, 2 Jul 2014 09:52:14 -0500 (CDT) (envelope-from tinguely@eagdhcp-232-174.americas.sgi.com) Received: (from tinguely@localhost) by eagdhcp-232-174.americas.sgi.com (8.14.5/8.14.5/Submit) id s62EqE1m005624; Wed, 2 Jul 2014 09:52:14 -0500 (CDT) (envelope-from tinguely) Message-Id: <20140702144139.620473576@sgi.com> User-Agent: quilt/0.51-1 Date: Wed, 02 Jul 2014 09:32:07 -0500 From: Mark Tinguely To: xfs@oss.sgi.com Subject: [PATCH 1/5] xfs: remove efi from AIL in log recovery References: <20140702143206.438456679@sgi.com> Content-Disposition: inline; filename=xfs-fix-efi-in-log-recovery-error.patch The log recovery functions xlog_recover_process_efi{s} are responsible for freeing extents that did not complete in xfs_bmap_finish before a forced shutdown or system crash. If the extent removal fails in log recovery, then the EFI will stay on the AIL and is will hang the filesystem requiring a system reboot. This patch removes the special log recovery flag, XFS_EFI_RECOVERED. That flag used to be used to decrement the EFI/EFD counter. Instead call the decrement function just like we do in the log IOP sequence. Remove all other unprocessed EFIs from the log recovery AIL when one is discovered in error. Signed-off-by: Mark Tinguely --- fs/xfs/xfs_extfree_item.c | 54 +++++++++++++++++++++++-------------- fs/xfs/xfs_extfree_item.h | 5 --- fs/xfs/xfs_log_recover.c | 67 ++++++++++++++++++++++++++-------------------- fs/xfs/xfs_trans.h | 1 4 files changed, 73 insertions(+), 54 deletions(-) Index: b/fs/xfs/xfs_extfree_item.c =================================================================== --- a/fs/xfs/xfs_extfree_item.c +++ b/fs/xfs/xfs_extfree_item.c @@ -62,9 +62,15 @@ __xfs_efi_release( if (atomic_dec_and_test(&efip->efi_refcount)) { spin_lock(&ailp->xa_lock); - /* xfs_trans_ail_delete() drops the AIL lock. */ - xfs_trans_ail_delete(ailp, &efip->efi_item, - SHUTDOWN_LOG_IO_ERROR); + /* + * The EFI may not be on the AIL on abort. + * xfs_trans_ail_delete() drops the AIL lock. + */ + if (efip->efi_item.li_flags & XFS_LI_IN_AIL) + xfs_trans_ail_delete(ailp, &efip->efi_item, + SHUTDOWN_LOG_IO_ERROR); + else + spin_unlock(&ailp->xa_lock); xfs_efi_item_free(efip); } } @@ -134,9 +140,10 @@ xfs_efi_item_pin( * remove the EFI it's because the transaction has been cancelled and by * definition that means the EFI cannot be in the AIL so remove it from the * transaction and free it. Otherwise coordinate with xfs_efi_release() - * to determine who gets to free the EFI. + * to determine who gets to free the EFI. Call from log recovery of EFI + * entries so the EFD or error handling will remove the entry. */ -STATIC void +void xfs_efi_item_unpin( struct xfs_log_item *lip, int remove) @@ -147,8 +154,6 @@ xfs_efi_item_unpin( ASSERT(!(lip->li_flags & XFS_LI_IN_AIL)); if (lip->li_desc) xfs_trans_del_item(lip); - xfs_efi_item_free(efip); - return; } __xfs_efi_release(efip); } @@ -168,12 +173,17 @@ xfs_efi_item_push( return XFS_ITEM_PINNED; } +/* + * Remove EFI entry on abort. + */ STATIC void xfs_efi_item_unlock( struct xfs_log_item *lip) { - if (lip->li_flags & XFS_LI_ABORTED) - xfs_efi_item_free(EFI_ITEM(lip)); + if (lip->li_flags & XFS_LI_ABORTED) { + ASSERT(!(lip->li_flags & XFS_LI_IN_AIL)); + __xfs_efi_release(EFI_ITEM(lip)); + } } /* @@ -313,10 +323,6 @@ xfs_efi_release(xfs_efi_log_item_t *efip { ASSERT(atomic_read(&efip->efi_next_extent) >= nextents); if (atomic_sub_and_test(nextents, &efip->efi_next_extent)) { - /* recovery needs us to drop the EFI reference, too */ - if (test_bit(XFS_EFI_RECOVERED, &efip->efi_flags)) - __xfs_efi_release(efip); - __xfs_efi_release(efip); /* efip may now have been freed, do not reference it again. */ } @@ -420,8 +426,17 @@ STATIC void xfs_efd_item_unlock( struct xfs_log_item *lip) { - if (lip->li_flags & XFS_LI_ABORTED) - xfs_efd_item_free(EFD_ITEM(lip)); + struct xfs_efd_log_item *efdp = EFD_ITEM(lip); + + if (!(lip->li_flags & XFS_LI_ABORTED)) + return; + + /* Free the EFI when aborting a commit. The EFI will be either + * added to the AIL in a CIL push before this abort or unlocked + * before the EFD unlock. + */ + xfs_efi_release(efdp->efd_efip, efdp->efd_format.efd_nextents); + xfs_efd_item_free(efdp); } /* @@ -439,12 +454,11 @@ xfs_efd_item_committed( struct xfs_efd_log_item *efdp = EFD_ITEM(lip); /* - * If we got a log I/O error, it's always the case that the LR with the - * EFI got unpinned and freed before the EFD got aborted. + * EFI and EFDs can be in different CIL pushes. Therefore the EFI could + * be on the AIL when an abort occurs, so try to release the EFI in + * all cases. */ - if (!(lip->li_flags & XFS_LI_ABORTED)) - xfs_efi_release(efdp->efd_efip, efdp->efd_format.efd_nextents); - + xfs_efi_release(efdp->efd_efip, efdp->efd_format.efd_nextents); xfs_efd_item_free(efdp); return (xfs_lsn_t)-1; } Index: b/fs/xfs/xfs_extfree_item.h =================================================================== --- a/fs/xfs/xfs_extfree_item.h +++ b/fs/xfs/xfs_extfree_item.h @@ -29,11 +29,6 @@ struct kmem_zone; #define XFS_EFI_MAX_FAST_EXTENTS 16 /* - * Define EFI flag bits. Manipulated by set/clear/test_bit operators. - */ -#define XFS_EFI_RECOVERED 1 - -/* * This is the "extent free intention" log item. It is used to log the fact * that some extents need to be free. It is used in conjunction with the * "extent free done" log item described below. Index: b/fs/xfs/xfs_log_recover.c =================================================================== --- a/fs/xfs/xfs_log_recover.c +++ b/fs/xfs/xfs_log_recover.c @@ -3093,6 +3093,12 @@ xlog_recover_efi_pass2( * xfs_trans_ail_update() drops the AIL lock. */ xfs_trans_ail_update(log->l_ailp, &efip->efi_item, lsn); + + /* + * Decrement the EFI/EFD counter so the EFI is removed after + * processing the EFD or error handling in the caller. + */ + xfs_efi_item_unpin(&efip->efi_item, 0); return 0; } @@ -3635,6 +3641,8 @@ xlog_recover_process_data( /* * Process an extent free intent item that was recovered from * the log. We need to free the extents that it describes. + * The processing of the EFD will free the EFI and remove it from the AIL. + * The caller will remove any other EFIs on the the AIL. */ STATIC int xlog_recover_process_efi( @@ -3648,8 +3656,6 @@ xlog_recover_process_efi( xfs_extent_t *extp; xfs_fsblock_t startblock_fsb; - ASSERT(!test_bit(XFS_EFI_RECOVERED, &efip->efi_flags)); - /* * First check the validity of the extents described by the * EFI. If any are bad, then assume that all are bad and @@ -3663,13 +3669,8 @@ xlog_recover_process_efi( (extp->ext_len == 0) || (startblock_fsb >= mp->m_sb.sb_dblocks) || (extp->ext_len >= mp->m_sb.sb_agblocks)) { - /* - * This will pull the EFI from the AIL and - * free the memory associated with it. - */ - set_bit(XFS_EFI_RECOVERED, &efip->efi_flags); - xfs_efi_release(efip, efip->efi_format.efi_nextents); - return XFS_ERROR(EIO); + error = XFS_ERROR(EIO); + goto return_free; } } @@ -3682,45 +3683,58 @@ xlog_recover_process_efi( for (i = 0; i < efip->efi_format.efi_nextents; i++) { extp = &(efip->efi_format.efi_extents[i]); error = xfs_free_extent(tp, extp->ext_start, extp->ext_len); - if (error) - goto abort_error; xfs_trans_log_efd_extent(tp, efdp, extp->ext_start, extp->ext_len); + if (error) { + /* The error may be the first extent or there may the + * EFD may be dirty on the transaction by another + * extent. Make the EFD dirty on the transactions + * so the xfs_trans_cancel frees EFI/EFD and removes + * EFI from AIL. + */ + xfs_trans_cancel(tp, XFS_TRANS_ABORT); + return error; + } } - set_bit(XFS_EFI_RECOVERED, &efip->efi_flags); error = xfs_trans_commit(tp, 0); - return error; + if (error) + goto return_free; + return 0; abort_error: xfs_trans_cancel(tp, XFS_TRANS_ABORT); +return_free: + xfs_efi_release(efip, efip->efi_format.efi_nextents); return error; } /* * When this is called, all of the EFIs which did not have - * corresponding EFDs should be in the AIL. What we do now - * is free the extents associated with each one. + * corresponding EFDs should be in the AIL. The initial decrement + * on the EFI/EFD sequence counter has been done when the EFI is placed + * on the AIL. What we do now is free the extents associated with each one. * * Since we process the EFIs in normal transactions, they * will be removed at some point after the commit. This prevents * us from just walking down the list processing each one. - * We'll use a flag in the EFI to skip those that we've already - * processed and use the AIL iteration mechanism's generation - * count to try to speed this up at least a bit. * * When we start, we know that the EFIs are the only things in * the AIL. As we process them, however, other items are added * to the AIL. Since everything added to the AIL must come after * everything already in the AIL, we stop processing as soon as * we see something other than an EFI in the AIL. + * + * If an error is detected while freeing extents in the EFI, discard all + * future EFI on the AIL. This is done by the xfs_efi_release() which is + * the same processing as a successful EFD completion processing. */ STATIC int xlog_recover_process_efis( struct xlog *log) { - xfs_log_item_t *lip; - xfs_efi_log_item_t *efip; + struct xfs_log_item *lip; + struct xfs_efi_log_item *efip; int error = 0; struct xfs_ail_cursor cur; struct xfs_ail *ailp; @@ -3745,19 +3759,14 @@ xlog_recover_process_efis( * Skip EFIs that we've already processed. */ efip = (xfs_efi_log_item_t *)lip; - if (test_bit(XFS_EFI_RECOVERED, &efip->efi_flags)) { - lip = xfs_trans_ail_cursor_next(ailp, &cur); - continue; - } - spin_unlock(&ailp->xa_lock); - error = xlog_recover_process_efi(log->l_mp, efip); + if (!error) + error = xlog_recover_process_efi(log->l_mp, efip); + else + xfs_efi_release(efip, efip->efi_format.efi_nextents); spin_lock(&ailp->xa_lock); - if (error) - goto out; lip = xfs_trans_ail_cursor_next(ailp, &cur); } -out: xfs_trans_ail_cursor_done(&cur); spin_unlock(&ailp->xa_lock); return error; Index: b/fs/xfs/xfs_trans.h =================================================================== --- a/fs/xfs/xfs_trans.h +++ b/fs/xfs/xfs_trans.h @@ -216,6 +216,7 @@ void xfs_trans_ijoin(struct xfs_trans * void xfs_trans_log_buf(xfs_trans_t *, struct xfs_buf *, uint, uint); void xfs_trans_log_inode(xfs_trans_t *, struct xfs_inode *, uint); struct xfs_efi_log_item *xfs_trans_get_efi(xfs_trans_t *, uint); +void xfs_efi_item_unpin(struct xfs_log_item *, int); void xfs_efi_release(struct xfs_efi_log_item *, uint); void xfs_trans_log_efi_extent(xfs_trans_t *, struct xfs_efi_log_item *, From tinguely@eagdhcp-232-174.americas.sgi.com Wed Jul 2 09:52:22 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=RP_MATCHES_RCVD autolearn=ham version=3.3.1 X-Original-To: xfs@oss.sgi.com Delivered-To: xfs@oss.sgi.com Received: from relay.sgi.com (relay2.corp.sgi.com [137.38.102.29]) by oss.sgi.com (Postfix) with ESMTP id 7FA557F63 for ; Wed, 2 Jul 2014 09:52:22 -0500 (CDT) Received: from eagdhcp-232-174.americas.sgi.com (eagdhcp-232-174.americas.sgi.com [128.162.232.174]) by relay2.corp.sgi.com (Postfix) with ESMTP id 4D0AA304071 for ; Wed, 2 Jul 2014 07:52:19 -0700 (PDT) Received: from eagdhcp-232-174.americas.sgi.com (localhost [127.0.0.1]) by eagdhcp-232-174.americas.sgi.com (8.14.5/8.14.5) with ESMTP id s62EqF4a005633 for ; Wed, 2 Jul 2014 09:52:15 -0500 (CDT) (envelope-from tinguely@eagdhcp-232-174.americas.sgi.com) Received: (from tinguely@localhost) by eagdhcp-232-174.americas.sgi.com (8.14.5/8.14.5/Submit) id s62EqFbE005632; Wed, 2 Jul 2014 09:52:15 -0500 (CDT) (envelope-from tinguely) Message-Id: <20140702144139.790241031@sgi.com> User-Agent: quilt/0.51-1 Date: Wed, 02 Jul 2014 09:32:09 -0500 From: Mark Tinguely To: xfs@oss.sgi.com Subject: [PATCH 3/5] xfs: free the list of recovery items on error References: <20140702143206.438456679@sgi.com> Content-Disposition: inline; filename=xfs-fix-log-recovery-leaks.patch Recovery builds a list of items on the transaction's r_itemq head. Normally these items are committed and freed. But in the event of a recovery error, these allocations are leaked. If the error occurs during item reordering, then reconstruct the r_itemq list before deleting the list to avoid leaking the entries that were on one of the temporary lists. Fix potential use-after-free of the trans structure by ensuring they are removed from the transaction recoovery-in-progress hash table before they are freed. History: My first version corrected the xlog_recover_free_trans for the error path of xlog_recover_commit_trans. Dave Chinner removed most of the XFS_ERROR(), changed messages in xlog_recover_process_data and pushed the xlog_recover_free_trans calls into the lower layers. This has all those patches plus suggestions from Christoph Hellwig. Signed-off-by: Mark Tinguely Signed-off-by: Dave Chinner Signed-off-by: Mark Tinguely --- fs/xfs/xfs_log_recover.c | 88 ++++++++++++++++++++++++----------------------- 1 file changed, 45 insertions(+), 43 deletions(-) Index: b/fs/xfs/xfs_log_recover.c =================================================================== --- a/fs/xfs/xfs_log_recover.c +++ b/fs/xfs/xfs_log_recover.c @@ -539,7 +539,7 @@ xlog_find_verify_log_record( xfs_warn(log->l_mp, "Log inconsistent (didn't find previous header)"); ASSERT(0); - error = XFS_ERROR(EIO); + error = EIO; goto out; } @@ -961,7 +961,7 @@ xlog_find_tail( xfs_warn(log->l_mp, "%s: couldn't find sync record", __func__); xlog_put_bp(bp); ASSERT(0); - return XFS_ERROR(EIO); + return EIO; } /* find blk_no of tail of log */ @@ -1551,7 +1551,7 @@ xlog_recover_add_to_trans( xfs_warn(log->l_mp, "%s: bad header magic number", __func__); ASSERT(0); - return XFS_ERROR(EIO); + return EIO; } if (len == sizeof(xfs_trans_header_t)) xlog_recover_add_item(&trans->r_itemq); @@ -1581,7 +1581,7 @@ xlog_recover_add_to_trans( in_f->ilf_size); ASSERT(0); kmem_free(ptr); - return XFS_ERROR(EIO); + return EIO; } item->ri_total = in_f->ilf_size; @@ -1702,7 +1702,7 @@ xlog_recover_reorder_trans( */ if (!list_empty(&sort_list)) list_splice_init(&sort_list, &trans->r_itemq); - error = XFS_ERROR(EIO); + error = EIO; goto out; } } @@ -3395,7 +3395,7 @@ xlog_recover_commit_pass1( xfs_warn(log->l_mp, "%s: invalid item type (%d)", __func__, ITEM_TYPE(item)); ASSERT(0); - return XFS_ERROR(EIO); + return EIO; } } @@ -3431,7 +3431,7 @@ xlog_recover_commit_pass2( xfs_warn(log->l_mp, "%s: invalid item type (%d)", __func__, ITEM_TYPE(item)); ASSERT(0); - return XFS_ERROR(EIO); + return EIO; } } @@ -3478,7 +3478,7 @@ xlog_recover_commit_trans( #define XLOG_RECOVER_COMMIT_QUEUE_MAX 100 - hlist_del(&trans->r_list); + hlist_del_init(&trans->r_list); error = xlog_recover_reorder_trans(log, trans, pass); if (error) @@ -3503,13 +3503,14 @@ xlog_recover_commit_trans( break; default: ASSERT(0); + error = ERANGE; + break; } if (error) - goto out; + break; } -out: if (!list_empty(&ra_list)) { if (!error) error = xlog_recover_items_pass2(log, trans, @@ -3520,21 +3521,10 @@ out: if (!list_empty(&done_list)) list_splice_init(&done_list, &trans->r_itemq); - xlog_recover_free_trans(trans); - error2 = xfs_buf_delwri_submit(&buffer_list); return error ? error : error2; } -STATIC int -xlog_recover_unmount_trans( - struct xlog *log) -{ - /* Do nothing now */ - xfs_warn(log->l_mp, "%s: Unmount LR", __func__); - return 0; -} - /* * There are two valid states of the r_state field. 0 indicates that the * transaction structure is in a normal state. We have either seen the @@ -3555,9 +3545,9 @@ xlog_recover_process_data( xfs_caddr_t lp; int num_logops; xlog_op_header_t *ohead; - xlog_recover_t *trans; + xlog_recover_t *trans = NULL; xlog_tid_t tid; - int error; + int error = 0; unsigned long hash; uint flags; @@ -3566,7 +3556,7 @@ xlog_recover_process_data( /* check the log format matches our own - else we can't recover */ if (xlog_header_check_recover(log->l_mp, rhead)) - return (XFS_ERROR(EIO)); + return XFS_ERROR(EIO); while ((dp < lp) && num_logops) { ASSERT(dp + sizeof(xlog_op_header_t) <= lp); @@ -3574,10 +3564,12 @@ xlog_recover_process_data( dp += sizeof(xlog_op_header_t); if (ohead->oh_clientid != XFS_TRANSACTION && ohead->oh_clientid != XFS_LOG) { - xfs_warn(log->l_mp, "%s: bad clientid 0x%x", + xfs_warn(log->l_mp, + "%s: bad bad transaction opheader clientid 0x%x", __func__, ohead->oh_clientid); ASSERT(0); - return (XFS_ERROR(EIO)); + error = EIO; + goto out_error; } tid = be32_to_cpu(ohead->oh_tid); hash = XLOG_RHASH(tid); @@ -3588,10 +3580,12 @@ xlog_recover_process_data( be64_to_cpu(rhead->h_lsn)); } else { if (dp + be32_to_cpu(ohead->oh_len) > lp) { - xfs_warn(log->l_mp, "%s: bad length 0x%x", + xfs_warn(log->l_mp, + "%s: bad bad transaction opheader length 0x%x", __func__, be32_to_cpu(ohead->oh_len)); WARN_ON(1); - return (XFS_ERROR(EIO)); + error = XFS_ERROR(EIO); + goto out_error; } flags = ohead->oh_flags & ~XLOG_END_TRANS; if (flags & XLOG_WAS_CONT_TRANS) @@ -3600,42 +3594,50 @@ xlog_recover_process_data( case XLOG_COMMIT_TRANS: error = xlog_recover_commit_trans(log, trans, pass); - break; - case XLOG_UNMOUNT_TRANS: - error = xlog_recover_unmount_trans(log); + if (error) + goto out_error; + /* + * xlog_recover_commit_trans removed the trans + * structure from the hash, so nobody else will + * ever find this structure again. Hence we + * must free it here. + */ + xlog_recover_free_trans(trans); break; case XLOG_WAS_CONT_TRANS: error = xlog_recover_add_to_cont_trans(log, trans, dp, be32_to_cpu(ohead->oh_len)); break; - case XLOG_START_TRANS: - xfs_warn(log->l_mp, "%s: bad transaction", - __func__); - ASSERT(0); - error = XFS_ERROR(EIO); - break; case 0: case XLOG_CONTINUE_TRANS: error = xlog_recover_add_to_trans(log, trans, dp, be32_to_cpu(ohead->oh_len)); break; + case XLOG_UNMOUNT_TRANS: + xfs_warn(log->l_mp, "%s: Unmount LR", __func__); + break; + case XLOG_START_TRANS: default: - xfs_warn(log->l_mp, "%s: bad flag 0x%x", + xfs_warn(log->l_mp, + "%s: bad bad transaction opheader flag 0x%x", __func__, flags); ASSERT(0); - error = XFS_ERROR(EIO); + error = EIO; break; } - if (error) { - xlog_recover_free_trans(trans); - return error; - } + if (error) + goto out_error; } dp += be32_to_cpu(ohead->oh_len); num_logops--; } return 0; + + out_error: + if (trans) + xlog_recover_free_trans(trans); + return error; } /* From tinguely@eagdhcp-232-174.americas.sgi.com Wed Jul 2 09:52:23 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=RP_MATCHES_RCVD autolearn=ham version=3.3.1 X-Original-To: xfs@oss.sgi.com Delivered-To: xfs@oss.sgi.com Received: from relay.sgi.com (relay3.corp.sgi.com [198.149.34.15]) by oss.sgi.com (Postfix) with ESMTP id C85F87F66 for ; Wed, 2 Jul 2014 09:52:22 -0500 (CDT) Received: from eagdhcp-232-174.americas.sgi.com (eagdhcp-232-174.americas.sgi.com [128.162.232.174]) by relay3.corp.sgi.com (Postfix) with ESMTP id 4DFB4AC001 for ; Wed, 2 Jul 2014 07:52:19 -0700 (PDT) Received: from eagdhcp-232-174.americas.sgi.com (localhost [127.0.0.1]) by eagdhcp-232-174.americas.sgi.com (8.14.5/8.14.5) with ESMTP id s62EqELX005621 for ; Wed, 2 Jul 2014 09:52:14 -0500 (CDT) (envelope-from tinguely@eagdhcp-232-174.americas.sgi.com) Received: (from tinguely@localhost) by eagdhcp-232-174.americas.sgi.com (8.14.5/8.14.5/Submit) id s62EqESu005620; Wed, 2 Jul 2014 09:52:14 -0500 (CDT) (envelope-from tinguely) Message-Id: <20140702143206.438456679@sgi.com> User-Agent: quilt/0.51-1 Date: Wed, 02 Jul 2014 09:32:06 -0500 From: Mark Tinguely To: xfs@oss.sgi.com Subject: [PATCH 0/5] Misc controversial patches Here is a repost of these patches. Patch one and two deal with EFIs getting stuck on the AIL and hanging unmount. First deals with log recovery the other xfs_bmap_finish and log write errors: xfs-fix-efi-in-log-recovery-error.patch xfs-fix-efi-on-filesystem-errors.patch Patch three and four deal with resource leaks in failed log recoveries. The first is a rewrite of Dave's rewrite of my patch with ideas from Christoph. The second is taking care of leaked inode pointers: xfs-fix-log-recovery-leaks.patch xfs-reclaim-inodes-on-recovery-fail.patch Lastly is the CIL sequence error. The setting of ctx->commit_lsn in xlog_cil_init_post_recovery allows smaller cil push sequences finish out of order: xfs-fix-cil-push-seq-after-recovery.patch --Mark. From robin.listas@gmail.com Wed Jul 2 21:54:54 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=FREEMAIL_FROM,T_DKIM_INVALID autolearn=ham version=3.3.1 X-Original-To: xfs@oss.sgi.com Delivered-To: xfs@oss.sgi.com Received: from relay.sgi.com (relay3.corp.sgi.com [198.149.34.15]) by oss.sgi.com (Postfix) with ESMTP id 9BAF97F54 for ; Wed, 2 Jul 2014 21:54:54 -0500 (CDT) Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by relay3.corp.sgi.com (Postfix) with ESMTP id 35E76AC001 for ; Wed, 2 Jul 2014 19:54:51 -0700 (PDT) X-ASG-Debug-ID: 1404356085-04bdf0566678adb0001-NocioJ Received: from mail-wi0-f178.google.com (mail-wi0-f178.google.com [209.85.212.178]) by cuda.sgi.com with ESMTP id h1Qie1APXpG4gyDw (version=TLSv1 cipher=RC4-SHA bits=128 verify=NO) for ; Wed, 02 Jul 2014 19:54:46 -0700 (PDT) X-Barracuda-Envelope-From: robin.listas@gmail.com X-Barracuda-Apparent-Source-IP: 209.85.212.178 X-Barracuda-IPDD: Level1 [gmail.com/209.85.212.178] Received: by mail-wi0-f178.google.com with SMTP id n15so1443606wiw.5 for ; Wed, 02 Jul 2014 19:54:45 -0700 (PDT) X-Barracuda-IPDD: Level1 [gmail.com/209.85.212.178] X-Barracuda-IPDD: Level1 [gmail.com/209.85.212.178] DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=sender:date:from:to:subject:in-reply-to:message-id:references :user-agent:mime-version:content-type; bh=rdtnp2ji2/7NY2EuI8YojyedcGchhHiwmXGP6GW6CpI=; b=N0PAi5EYSJVbOC/mLmA5AU/TzXgoGkymxLvMUmrWFwcn9rc6pu8jBD4BDTzsYEZ7tp gepLT3UzT/Oijxlf8WdBGt/9hefkFr6zMIg0QUMj8F/CVVmKFBMOqH1a9LggjWkFHzzS 0vk7kCv22u++fPFlJfoliNuvc5v8JDh0wFJnmhBOV+hK1ks3rrPPffRJ6b0CGBy5OeZ1 EDkTQR/iBI2Q9DXTX6yZefkP3CfyPBXGTeDb1dfrRrPA/nzfL1KjIEjW3JxH5fyM7NUV E9nYTXst0+wskn2ziaT5ZVM1tY8No3cyHG7xB+7UfaLYwKxKVa5jcbIwf51mq3FkqY4T /50A== X-Received: by 10.180.73.106 with SMTP id k10mr46051817wiv.11.1404356085099; Wed, 02 Jul 2014 19:54:45 -0700 (PDT) Received: from Telcontar.valinor (90.Red-79-150-228.dynamicIP.rima-tde.net. [79.150.228.90]) by mx.google.com with ESMTPSA id o2sm61839674wia.16.2014.07.02.19.54.43 for (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Wed, 02 Jul 2014 19:54:44 -0700 (PDT) Sender: Carlos Robinson Received: from localhost (localhost [127.0.0.1]) by Telcontar.valinor (Postfix) with ESMTP id 67AF06072A for ; Thu, 3 Jul 2014 04:54:41 +0200 (CEST) X-Virus-Scanned: amavisd-new at valinor Received: from Telcontar.valinor ([127.0.0.1]) by localhost (Telcontar.valinor [127.0.0.1]) (amavisd-new, port 10024) with LMTP id 1R_jLpbDTBop for ; Thu, 3 Jul 2014 04:54:38 +0200 (CEST) Received: from localhost (localhost [127.0.0.1]) by Telcontar.valinor (Postfix) with ESMTP id E207D604A0 for ; Thu, 3 Jul 2014 04:54:36 +0200 (CEST) Date: Thu, 3 Jul 2014 04:54:26 +0200 (CEST) From: "Carlos E. R." X-X-Sender: cer@Telcontar.valinor To: XFS mailing list Subject: Re: Got "Internal error XFS_WANT_CORRUPTED_GOTO". Filesystem needs reformatting to correct issue. In-Reply-To: <53B40427.6060302@sgi.com> X-ASG-Orig-Subj: Re: Got "Internal error XFS_WANT_CORRUPTED_GOTO". Filesystem needs reformatting to correct issue. Message-ID: References: <20140702120441.GA51757@bfoster.bfoster> <53B40427.6060302@sgi.com> User-Agent: Alpine 2.11 (LSU 23 2013-08-11) MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII; format=flowed X-Barracuda-Connect: mail-wi0-f178.google.com[209.85.212.178] X-Barracuda-Start-Time: 1404356086 X-Barracuda-Encrypted: RC4-SHA X-Barracuda-URL: http://192.48.157.11:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 X-Barracuda-Spam-Score: 0.00 X-Barracuda-Spam-Status: No, SCORE=0.00 using per-user scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.7 tests=DKIM_SIGNED, DKIM_VERIFIED X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.7194 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- -0.00 DKIM_VERIFIED Domain Keys Identified Mail: signature passes verification 0.00 DKIM_SIGNED Domain Keys Identified Mail: message has a signature -----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 On Wednesday, 2014-07-02 at 08:07 -0500, Mark Tinguely wrote: > On 07/02/14 07:04, Brian Foster wrote: >>> The worst issue for me is that "xfs_repair" fails to repair it. > > what version of xfs_repair? xfs_repair version 3.1.11 which what comes with openSUSE 13.1 > Did you try to mount to replay the log before > repair? Sure. This last time, I first tried "umount" the partition, which initially failed, because despite being read only, some applications thought they had opened files on it (I was already in runlevel 1). I found them with lsof, killed them, umounted, mounted, system crash. Had to hit reset button on machine. Reboot machine, and partition is automatically mounted, so the log replayed here. umount, repair (finds nothing, as far as I can see), backup, format, restore. > Besides Brian's good advice, is kdump configured to dump vmcore? I'm not sure I understand the question :-? If you want me to run the system for a month, waiting for this to happen again, in some special kernel debug mode... I don't know if that will be feasible :-} - -- Cheers, Carlos E. R. (from 13.1 x86_64 "Bottle" at Telcontar) -----BEGIN PGP SIGNATURE----- Version: GnuPG v2.0.22 (GNU/Linux) iEYEARECAAYFAlO0xewACgkQtTMYHG2NR9WYsQCfTWjvcHB8IJfyXN4jVzHTnh5Q lOEAn0TPwL03enbn8zrXbIQ9yMfknPi2 =39NE -----END PGP SIGNATURE----- From robin.listas@gmail.com Wed Jul 2 22:01:10 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=FREEMAIL_FROM,T_DKIM_INVALID autolearn=ham version=3.3.1 X-Original-To: xfs@oss.sgi.com Delivered-To: xfs@oss.sgi.com Received: from relay.sgi.com (relay3.corp.sgi.com [198.149.34.15]) by oss.sgi.com (Postfix) with ESMTP id 304DA7F58 for ; Wed, 2 Jul 2014 22:01:10 -0500 (CDT) Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by relay3.corp.sgi.com (Postfix) with ESMTP id 72F9AAC004 for ; Wed, 2 Jul 2014 20:01:06 -0700 (PDT) X-ASG-Debug-ID: 1404356458-04cb6c76cf40f4f0001-NocioJ Received: from mail-we0-f176.google.com (mail-we0-f176.google.com [74.125.82.176]) by cuda.sgi.com with ESMTP id efToCKimFq1h5bug (version=TLSv1 cipher=RC4-SHA bits=128 verify=NO) for ; Wed, 02 Jul 2014 20:00:59 -0700 (PDT) X-Barracuda-Envelope-From: robin.listas@gmail.com X-Barracuda-Apparent-Source-IP: 74.125.82.176 Received: by mail-we0-f176.google.com with SMTP id u56so11919829wes.21 for ; Wed, 02 Jul 2014 20:00:57 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=sender:date:from:to:subject:in-reply-to:message-id:references :user-agent:mime-version:content-type; bh=zBJnf1oE5ZxENNIcOrjewCSQKL5QVzH1EPsjT5wGwU4=; b=wi6qCduuQ9Kq/28PXXcxT8VPg4AO6uHMjPPLyUw9LXHriCKPY4TOLllqadD+vUMhg5 O1Vh9NSdjvlHkSNG7MBevfsfRQWzeP506OziwQrAxnbYJMYt77EDscWyFzs1svasC1Yn z6AxSWc5z+enxgmBNMUWrt3FNer11UdteeOlI2hzKoSSTFDT1Vyjt4d8NBZsuqUMnqMQ AqKGIpkdveJ0FdVopiQgjpqANeaK7IcY4HiqnZF1b5iJT8tYMBgx1hkEHVqcq6SWrlRC BQ0yu7+FVkm+VLp0jUIpISdTtPl2ruTokulUpyXdBucQlYlTfovuOBGplPaio0cNVyi6 bTgw== X-Received: by 10.194.87.134 with SMTP id ay6mr1726933wjb.84.1404356457827; Wed, 02 Jul 2014 20:00:57 -0700 (PDT) Received: from Telcontar.valinor (90.Red-79-150-228.dynamicIP.rima-tde.net. [79.150.228.90]) by mx.google.com with ESMTPSA id nb8sm61843318wic.18.2014.07.02.20.00.51 for (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Wed, 02 Jul 2014 20:00:57 -0700 (PDT) Sender: Carlos Robinson Received: from localhost (localhost [127.0.0.1]) by Telcontar.valinor (Postfix) with ESMTP id 381AA6072A for ; Thu, 3 Jul 2014 05:00:50 +0200 (CEST) X-Virus-Scanned: amavisd-new at valinor Received: from Telcontar.valinor ([127.0.0.1]) by localhost (Telcontar.valinor [127.0.0.1]) (amavisd-new, port 10024) with LMTP id 1ebquqKMT-vI for ; Thu, 3 Jul 2014 05:00:48 +0200 (CEST) Received: from localhost (localhost [127.0.0.1]) by Telcontar.valinor (Postfix) with ESMTP id 5F7F1604A0 for ; Thu, 3 Jul 2014 05:00:47 +0200 (CEST) Date: Thu, 3 Jul 2014 05:00:47 +0200 (CEST) From: "Carlos E. R." X-X-Sender: cer@Telcontar.valinor To: XFS mailing list Subject: Re: Got "Internal error XFS_WANT_CORRUPTED_GOTO". Filesystem needs reformatting to correct issue. In-Reply-To: <20140702120441.GA51757@bfoster.bfoster> X-ASG-Orig-Subj: Re: Got "Internal error XFS_WANT_CORRUPTED_GOTO". Filesystem needs reformatting to correct issue. Message-ID: References: <20140702120441.GA51757@bfoster.bfoster> User-Agent: Alpine 2.11 (LSU 23 2013-08-11) MIME-Version: 1.0 Content-Type: TEXT/PLAIN; format=flowed; charset=US-ASCII X-Barracuda-Connect: mail-we0-f176.google.com[74.125.82.176] X-Barracuda-Start-Time: 1404356458 X-Barracuda-Encrypted: RC4-SHA X-Barracuda-URL: http://192.48.176.15:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 X-Barracuda-Spam-Score: 0.32 X-Barracuda-Spam-Status: No, SCORE=0.32 using per-user scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.7 tests=DKIM_SIGNED, DKIM_VERIFIED, URI_HEX X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.7194 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- -0.00 DKIM_VERIFIED Domain Keys Identified Mail: signature passes verification 0.00 DKIM_SIGNED Domain Keys Identified Mail: message has a signature 0.32 URI_HEX URI: URI hostname has long hexadecimal sequence -----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 On Wednesday, 2014-07-02 at 08:04 -0400, Brian Foster wrote: > On Wed, Jul 02, 2014 at 11:57:25AM +0200, Carlos E. R. wrote: ... > This is the background eofblocks scanner attempting to free preallocated > space on a file. The scanner looks for files that have been recently > grown and since been flushed to disk (i.e., no longer concurrently being > written to) and trims the post-eof preallocation that comes along with > growing files. > > The corruption errors at xfs_alloc.c:1602,1629 on v3.11 fire if the > extent we are attempting to free is already accounted for in the > by-block allocation btree. IOW, this is attempting to free an extent > that the allocation metadata thinks is already free. > >> >> Brief description: >> >> >> * It happens only on restore from hibernation. > > Interesting, could you elaborate a bit more on the behavior this system > is typically subjected to? i.e., is this a server that sees a constant > workload that is also frequently hibernated/awakened? It is a desktop machine I use for work at home. I typically have many applications opened on diferent workspaces in XFCE. Say one has terminals, another has Thunderbird/Pine, another Firefox, another LibreOffice; another may have gimp, another may be kbabel or lokalize, another may have vmplayer, etc, whatever. When I go out or go to sleep, I hibernate the machine, instead of powering down, because it is much faster than reboot, login, and start the wanted applications, and I want to conserve some electricity. I also use the machine for testing configurations, but these I try to do on virtual machines, instead of my work partition. The machine may be used anywhere from 4 to 16 hours a day, and hibernated at least once a day, perhaps three times if I have to go out several times. It makes no sense to me to leave the machine powered doing nothing, if hibernating is so easy and reliable - till now. If I have to leave for more than a week, I tend to do a full "halt". By the way, this started hapening when I replaced an old 500 GB hard disk (Seagate ST3500418AS) with a 2 TB new unit (Seagate ST2000DM001-1CH164). Smartctl long test says fine (and seatools from Windows, too). >> I do not have more info than what appears on the logs, but four times (two >> different kernels): >> >> cer@Telcontar:~> zgrep XFS_WANT_CORRUPTED_GOTO /var/log/messages*xz >> /var/log/messages-20140402.xz:<0.1> 2014-03-15 03:35:17 Telcontar kernel - - - [37685.111787] XFS: Internal error XFS_WANT_CORRUPTED_GOTO at line 1629 of file /home/abuild/rpmbuild/BUILD/kernel-desktop-3.11.10/linux-3.11/fs/xfs/xfs_alloc.c. Caller 0xffffffffa0c54fe9 >> /var/log/messages-20140402.xz:<0.1> 2014-03-15 22:20:34 Telcontar kernel - - - [20151.298345] XFS: Internal error XFS_WANT_CORRUPTED_GOTO at line 1602 of file /home/abuild/rpmbuild/BUILD/kernel-desktop-3.11.10/linux-3.11/fs/xfs/xfs_alloc.c. Caller 0xffffffffa0c54fe9 >> /var/log/messages-20140506.xz:<0.1> 2014-04-17 22:47:08 Telcontar kernel - - - [280271.851374] XFS: Internal error XFS_WANT_CORRUPTED_GOTO at line 1602 of file /home/abuild/rpmbuild/BUILD/kernel-desktop-3.11.10/linux-3.11/fs/xfs/xfs_alloc.c. Caller 0xffffffffa0c54fe9 >> /var/log/messages-20140629.xz:<0.1> 2014-06-29 12:32:18 Telcontar kernel - - - [212890.626346] XFS: Internal error XFS_WANT_CORRUPTED_GOTO at line 1602 of file /home/abuild/rpmbuild/BUILD/kernel-desktop-3.11.10/linux-3.11/fs/xfs/xfs_alloc.c. Caller 0xffffffffa0c39fe9 >> cer@Telcontar:~> > So you have reproduced this, reformatted with mkfs, restored from > backups and continued to reproduce the problem? And still only on this > particular partition? Right. Exactly that. Only that I can not reproduce the issue at will, but about once a month, randomly. AFAIK, xfsdump can not carry over a filesystem corruption, right? **** LONG DESCRIPTION and LOGS start here ******** The first time was on 2014-03-15 03:35:17, instantly after thawing: <0.7> 2014-03-15 03:35:14 Telcontar kernel - - - [37682.109726] PM: Basic memory bitmaps freed <3.6> 2014-03-15 03:35:14 Telcontar systemd 1 - - Time has been changed <3.4> 2014-03-15 03:35:14 Telcontar rtkit-daemon 4169 - - The canary thread is apparently starving. Taking action. <3.6> 2014-03-15 03:35:14 Telcontar rtkit-daemon 4169 - - Demoting known real-time threads. <3.5> 2014-03-15 03:35:14 Telcontar rtkit-daemon 4169 - - Successfully demoted thread 4175 of process 4168 (/usr/bin/pulseaudio). <3.5> 2014-03-15 03:35:14 Telcontar rtkit-daemon 4169 - - Successfully demoted thread 4174 of process 4168 (/usr/bin/pulseaudio). <3.5> 2014-03-15 03:35:14 Telcontar rtkit-daemon 4169 - - Successfully demoted thread 4168 of process 4168 (/usr/bin/pulseaudio). <3.5> 2014-03-15 03:35:14 Telcontar rtkit-daemon 4169 - - Demoted 3 threads. <3.6> 2014-03-15 03:35:16 Telcontar acpid - - - 1 client rule loaded <0.1> 2014-03-15 03:35:17 Telcontar kernel - - - [37685.111787] XFS: Internal error XFS_WANT_CORRUPTED_GOTO at line 1629 of file /home/abuild/rpmbuild/BUILD/kernel-desktop-3.11.10/linux-3.11/fs/xfs/xfs_allo <0.1> 2014-03-15 03:35:17 Telcontar kernel - - - [37685.111787] <0.4> 2014-03-15 03:35:17 Telcontar kernel - - - [37685.111792] CPU: 1 PID: 5245 Comm: thunderbird-bin Tainted: P O 3.11.10-7-desktop #1 <0.4> 2014-03-15 03:35:17 Telcontar kernel - - - [37685.111793] Hardware name: MICRO-STAR INTERNATIONAL CO.,LTD MS-7516/MS-7516, BIOS V1.5 10/10/2008 <0.4> 2014-03-15 03:35:17 Telcontar kernel - - - [37685.111795] 0000000000000002 ffffffff8159ff82 000000000027610d ffffffffa0c53996 <0.4> 2014-03-15 03:35:17 Telcontar kernel - - - [37685.111799] ffff8802303533c0 ffff8802344e4300 ffff8802263a1f20 0000000000000002 <0.4> 2014-03-15 03:35:17 Telcontar kernel - - - [37685.111801] 0000000000000000 ffff8801a08bfa8c 0000000000000000 0027611300000001 <0.4> 2014-03-15 03:35:17 Telcontar kernel - - - [37685.111804] Call Trace: <0.4> 2014-03-15 03:35:17 Telcontar kernel - - - [37685.111815] [] dump_trace+0x88/0x310 <0.4> 2014-03-15 03:35:17 Telcontar kernel - - - [37685.111818] [] show_stack_log_lvl+0xd0/0x1d0 <0.4> 2014-03-15 03:35:17 Telcontar kernel - - - [37685.111821] [] show_stack+0x1c/0x50 <0.4> 2014-03-15 03:35:17 Telcontar kernel - - - [37685.111825] [] dump_stack+0x50/0x89 <0.4> 2014-03-15 03:35:17 Telcontar kernel - - - [37685.111861] [] xfs_free_ag_extent+0x226/0x860 [xfs] <0.4> 2014-03-15 03:35:17 Telcontar kernel - - - [37685.111905] [] xfs_free_extent+0xb9/0xf0 [xfs] <0.4> 2014-03-15 03:35:17 Telcontar kernel - - - [37685.111948] [] xfs_bmap_finish+0x11e/0x170 [xfs] <0.4> 2014-03-15 03:35:17 Telcontar kernel - - - [37685.111999] [] xfs_itruncate_extents+0x190/0x340 [xfs] <0.4> 2014-03-15 03:35:17 Telcontar kernel - - - [37685.112073] [] xfs_setattr_size+0x41b/0x4a0 [xfs] <0.4> 2014-03-15 03:35:17 Telcontar kernel - - - [37685.112107] [] xfs_vn_setattr+0x2e/0x40 [xfs] <0.4> 2014-03-15 03:35:17 Telcontar kernel - - - [37685.112130] [] notify_change+0x1dc/0x360 <0.4> 2014-03-15 03:35:17 Telcontar kernel - - - [37685.112135] [] do_truncate+0x5e/0x90 <0.4> 2014-03-15 03:35:17 Telcontar kernel - - - [37685.112139] [] do_last+0x253/0xec0 <0.4> 2014-03-15 03:35:17 Telcontar kernel - - - [37685.112142] [] path_openat+0xb6/0x670 <0.4> 2014-03-15 03:35:17 Telcontar kernel - - - [37685.112145] [] do_filp_open+0x35/0x80 <0.4> 2014-03-15 03:35:17 Telcontar kernel - - - [37685.112147] [] do_sys_open+0x129/0x210 <0.4> 2014-03-15 03:35:17 Telcontar kernel - - - [37685.112151] [] system_call_fastpath+0x1a/0x1f <0.4> 2014-03-15 03:35:17 Telcontar kernel - - - [37685.112157] [<00007f6ec359078d>] 0x7f6ec359078c <0.5> 2014-03-15 03:35:17 Telcontar kernel - - - [37685.112976] XFS (sdd5): xfs_do_force_shutdown(0x8) called from line 916 of file /home/abuild/rpmbuild/BUILD/kernel-desktop-3.11.10/linux-3.11/fs/xfs/xfs_b <0.1> 2014-03-15 03:35:17 Telcontar kernel - - - [37685.163643] XFS (sdd5): Corruption of in-memory data detected. Shutting down filesystem <0.1> 2014-03-15 03:35:17 Telcontar kernel - - - [37685.163648] XFS (sdd5): Please umount the filesystem and rectify the problem(s) <0.4> 2014-03-15 03:35:18 Telcontar kernel - - - [37686.496013] XFS (sdd5): xfs_log_force: error 5 returned. <3.5> 2014-03-15 03:35:18 Telcontar dbus 1005 - - [system] Activating service name='org.freedesktop.PackageKit' (using servicehelper) <5.4> 2014-03-15 03:35:18 Telcontar pm-utils - - - Thawing (95)... <1.5> 2014-03-15 03:35:22 Telcontar network 11556 - - redirecting to "systemctl restart network.service" I managed to halt somehow, and booted. The log says that the partition passes automatic boot tests (excerpted): <0.5> 2014-03-15 03:49:42 Telcontar kernel - - - [ 19.173599] XFS (sdd5): Mounting Filesystem <0.5> 2014-03-15 03:49:42 Telcontar kernel - - - [ 19.377918] XFS (sdd5): Starting recovery (logdev: internal) <0.5> 2014-03-15 03:49:42 Telcontar kernel - - - [ 19.747914] XFS (sdd5): Ending recovery (logdev: internal) But soon after, it oopses: <3.6> 2014-03-15 03:53:01 Telcontar systemd 4987 - - Starting Default. <3.6> 2014-03-15 03:53:01 Telcontar systemd 4987 - - Reached target Default. <3.6> 2014-03-15 03:53:01 Telcontar systemd 4987 - - Startup finished in 57ms. <3.6> 2014-03-15 03:53:01 Telcontar systemd 1 - - Started User Manager for 9. <0.1> 2014-03-15 03:53:47 Telcontar kernel - - - [ 301.857523] XFS: Internal error XFS_WANT_CORRUPTED_RETURN at line 350 of file /home/abuild/rpmbuild/BUILD/kernel-desktop-3.11.10/linux-3.11/fs/xfs/xfs_all <0.1> 2014-03-15 03:53:47 Telcontar kernel - - - [ 301.857523] <0.4> 2014-03-15 03:53:47 Telcontar kernel - - - [ 301.857530] CPU: 3 PID: 57 Comm: kworker/3:1 Tainted: P O 3.11.10-7-desktop #1 <0.4> 2014-03-15 03:53:47 Telcontar kernel - - - [ 301.857532] Hardware name: MICRO-STAR INTERNATIONAL CO.,LTD MS-7516/MS-7516, BIOS V1.5 10/10/2008 <0.4> 2014-03-15 03:53:47 Telcontar kernel - - - [ 301.857570] Workqueue: xfsalloc xfs_bmapi_allocate_worker [xfs] <0.4> 2014-03-15 03:53:47 Telcontar kernel - - - [ 301.857572] 0000000000000000 ffffffff8159ff82 ffff880192c89080 ffffffffa0c50ee9 <0.4> 2014-03-15 03:53:47 Telcontar kernel - - - [ 301.857576] 0000003d30691240 00000000a0c55781 ffff880234917d58 ffff880192c89080 <0.4> 2014-03-15 03:53:47 Telcontar kernel - - - [ 301.857579] 000000000000003d 000000000000003d 0000000000000002 0000000000022dab <0.4> 2014-03-15 03:53:47 Telcontar kernel - - - [ 301.857583] Call Trace: <0.4> 2014-03-15 03:53:47 Telcontar kernel - - - [ 301.857583] Call Trace: <0.4> 2014-03-15 03:53:47 Telcontar kernel - - - [ 301.857596] [] dump_trace+0x88/0x310 <0.4> 2014-03-15 03:53:47 Telcontar kernel - - - [ 301.857600] [] show_stack_log_lvl+0xd0/0x1d0 <0.4> 2014-03-15 03:53:47 Telcontar kernel - - - [ 301.857604] [] show_stack+0x1c/0x50 <0.4> 2014-03-15 03:53:47 Telcontar kernel - - - [ 301.857609] [] dump_stack+0x50/0x89 <0.4> 2014-03-15 03:53:47 Telcontar kernel - - - [ 301.857630] [] xfs_alloc_fixup_trees+0x1f9/0x340 [xfs] <0.4> 2014-03-15 03:53:47 Telcontar kernel - - - [ 301.857689] [] xfs_alloc_ag_vextent_near+0x9ee/0xcd0 [xfs] <0.4> 2014-03-15 03:53:47 Telcontar kernel - - - [ 301.857751] [] xfs_alloc_ag_vextent+0xbd/0x100 [xfs] <0.4> 2014-03-15 03:53:47 Telcontar kernel - - - [ 301.857810] [] xfs_alloc_vextent+0x4e6/0x740 [xfs] <0.4> 2014-03-15 03:53:47 Telcontar kernel - - - [ 301.857870] [] xfs_bmap_btalloc+0x2a7/0x7a0 [xfs] <0.4> 2014-03-15 03:53:47 Telcontar kernel - - - [ 301.857937] [] __xfs_bmapi_allocate+0xbd/0x2d0 [xfs] <0.4> 2014-03-15 03:53:47 Telcontar kernel - - - [ 301.858002] [] xfs_bmapi_allocate_worker+0x27/0x50 [xfs] <0.4> 2014-03-15 03:53:47 Telcontar kernel - - - [ 301.858069] [] process_one_work+0x168/0x490 <0.4> 2014-03-15 03:53:47 Telcontar kernel - - - [ 301.858074] [] worker_thread+0x114/0x3a0 <0.4> 2014-03-15 03:53:47 Telcontar kernel - - - [ 301.858079] [] kthread+0xaf/0xc0 <0.4> 2014-03-15 03:53:47 Telcontar kernel - - - [ 301.858084] [] ret_from_fork+0x7c/0xb0 <0.1> 2014-03-15 03:53:47 Telcontar kernel - - - [ 301.858095] XFS (sdd5): page discard on page ffffea0005357d98, inode 0x602084fd, offset 339968. <0.1> 2014-03-15 03:54:12 Telcontar kernel - - - [ 326.896051] XFS: Internal error XFS_WANT_CORRUPTED_RETURN at line 350 of file /home/abuild/rpmbuild/BUILD/kernel-desktop-3.11.10/linux-3.11/fs/xfs/xfs_all <0.1> 2014-03-15 03:54:12 Telcontar kernel - - - [ 326.896051] <0.4> 2014-03-15 03:54:12 Telcontar kernel - - - [ 326.896056] CPU: 2 PID: 56 Comm: kworker/2:1 Tainted: P O 3.11.10-7-desktop #1 <0.4> 2014-03-15 03:54:12 Telcontar kernel - - - [ 326.896057] Hardware name: MICRO-STAR INTERNATIONAL CO.,LTD MS-7516/MS-7516, BIOS V1.5 10/10/2008 <0.4> 2014-03-15 03:54:12 Telcontar kernel - - - [ 326.896091] Workqueue: xfsalloc xfs_bmapi_allocate_worker [xfs] <0.4> 2014-03-15 03:54:12 Telcontar kernel - - - [ 326.896093] 0000000000000000 ffffffff8159ff82 ffff880192c89150 ffffffffa0c50ee9 <0.4> 2014-03-15 03:54:12 Telcontar kernel - - - [ 326.896096] 0000003c30691240 00000000a0c55781 ffff88023490fd58 ffff880192c89150 <0.4> 2014-03-15 03:54:12 Telcontar kernel - - - [ 326.896098] 000000000000003c 000000000000003c 0000000000000002 0000000000022dab <0.4> 2014-03-15 03:54:12 Telcontar kernel - - - [ 326.896100] Call Trace: and pages and pages of log entries (which I'm unsure I saw at the time) Aparently, I logged in text mode, without reboot, and mounted home again (perhaps systemd mounted it automatically, I do not remember). It is possible that I did an xfs repair in the interval, it is not logged. <0.4> 2014-03-15 04:06:09 Telcontar kernel - - - [ 1044.485279] [] ret_from_fork+0x7c/0xb0 <0.1> 2014-03-15 04:06:09 Telcontar kernel - - - [ 1044.486104] XFS (sdd5): page discard on page ffffea00053b68e0, inode 0x602084fd, offset 749568. <3.6> 2014-03-15 04:07:39 Telcontar systemd 1 - - Starting Session 9 of user root. <4.6> 2014-03-15 04:07:39 Telcontar systemd-logind 1002 - - New session 9 of user root. <10.5> 2014-03-15 04:07:39 Telcontar login - - - ROOT LOGIN ON tty2 <3.6> 2014-03-15 04:08:01 Telcontar systemd 1 - - Starting Session 10 of user news. <0.5> 2014-03-15 04:09:55 Telcontar kernel - - - [ 1270.594691] XFS (sdd5): Mounting Filesystem <0.6> 2014-03-15 04:09:55 Telcontar kernel - - - [ 1270.681282] XFS (sdd5): Ending clean mount <3.6> 2014-03-15 04:10:02 Telcontar acpid - - - 1 client rule loaded <3.6> 2014-03-15 04:11:41 Telcontar acpid - - - 1 client rule loaded <3.6> 2014-03-15 04:11:47 Telcontar systemd 1 - - Starting Session 11 of user cer. <4.6> 2014-03-15 04:11:47 Telcontar systemd-logind 1002 - - New session 11 of user cer. <4.6> 2014-03-15 04:11:47 Telcontar systemd-logind 1002 - - Linked /tmp/.X11-unix/X0 to /run/user/1000/X11-display. <3.4> 2014-03-15 04:11:47 Telcontar kdm - - - :0 '[5904]: Cannot update authorization file in home dir /home/cer <3.3> 2014-03-15 04:11:47 Telcontar kdm - - - :0 '[5904]: Cannot chdir to cer's home /home/cer: No such file or directory But as you can see, despite it saying that it was a "clean mount", my "/home/cer/", ie, my HOME, is not visible. <0.5> 2014-03-15 04:12:03 Telcontar kernel - - - [ 1397.853848] XFS (sdd5): Mounting Filesystem <0.6> 2014-03-15 04:12:03 Telcontar kernel - - - [ 1397.932327] XFS (sdd5): Ending clean mount <3.6> 2014-03-15 04:12:25 Telcontar systemd 1 - - Starting Getty on tty3... <3.6> 2014-03-15 04:12:25 Telcontar systemd 1 - - Started Getty on tty3. <3.6> 2014-03-15 04:12:29 Telcontar systemd 1 - - Starting Session 12 of user cer. <4.6> 2014-03-15 04:12:29 Telcontar systemd-logind 1002 - - New session 12 of user cer. <10.6> 2014-03-15 04:12:29 Telcontar login - - - LOGIN ON tty3 BY cer and this time I apparently managed to log in graphical mode: <3.6> 2014-03-15 04:13:24 Telcontar systemd 1 - - Starting Session 14 of user cer. <4.6> 2014-03-15 04:13:24 Telcontar systemd-logind 1002 - - New session 14 of user cer. <4.6> 2014-03-15 04:13:24 Telcontar systemd-logind 1002 - - Linked /tmp/.X11-unix/X0 to /run/user/1000/X11-display. <23.4> 2014-03-15 04:13:24 Telcontar checkproc - - - checkproc: can not get session id for process 4131! <4.5> 2014-03-15 04:13:25 Telcontar gnome-keyring-daemon 6210 - - Gkm: using old keyring directory: /home/cer/.gnome2/keyrings <4.5> 2014-03-15 04:13:25 Telcontar gnome-keyring-daemon 6210 - - Gkm: using old keyring directory: /home/cer/.gnome2/keyrings Being late, and confident that the issue was solved (which was wrong, I maybe did not see those XFS_WANT_CORRUPTED_RETURN above), I hibernated: <5.4> 2014-03-15 04:23:41 Telcontar pm-utils - - - Hibernating (1)... <1.5> 2014-03-15 04:23:41 Telcontar network 7779 - - redirecting to "systemctl --signal=9 kill network.service" ... next morning: <5.4> 2014-03-15 13:23:41 Telcontar pm-utils - - - Thawing (95)... ... afternoon: <5.4> 2014-03-15 17:50:45 Telcontar pm-utils - - - Hibernating (1)... ... <5.4> 2014-03-15 19:47:58 Telcontar pm-utils - - - Thawing (95)... ... again once more, and crash! <5.4> 2014-03-15 20:20:56 Telcontar pm-utils - - - Hibernating (1)... ... <5.4> 2014-03-15 22:20:21 Telcontar pm-utils - - - Thawing (95)... <5.4> 2014-03-15 22:20:32 Telcontar pm-utils - - - Thawing (1)... <0.1> 2014-03-15 22:20:34 Telcontar kernel - - - [20151.298345] XFS: Internal error XFS_WANT_CORRUPTED_GOTO at line 1602 of file /home/abuild/rpmbuild/BUILD/kernel-desktop-3.11.10/linux-3.11/fs/xfs/xfs_allo <0.1> 2014-03-15 22:20:34 Telcontar kernel - - - [20151.298345] <0.4> 2014-03-15 22:20:34 Telcontar kernel - - - [20151.298351] CPU: 0 PID: 28877 Comm: kworker/0:7 Tainted: P O 3.11.10-7-desktop #1 <0.4> 2014-03-15 22:20:34 Telcontar kernel - - - [20151.298353] Hardware name: MICRO-STAR INTERNATIONAL CO.,LTD MS-7516/MS-7516, BIOS V1.5 10/10/2008 <0.4> 2014-03-15 22:20:34 Telcontar kernel - - - [20151.298388] Workqueue: xfs-eofblocks/sdd5 xfs_eofblocks_worker [xfs] <0.4> 2014-03-15 22:20:34 Telcontar kernel - - - [20151.298391] 0000000000000000 ffffffff8159ff82 0000000000007121 ffffffffa0c53996 <0.4> 2014-03-15 22:20:34 Telcontar kernel - - - [20151.298395] ffff880151e21cc0 ffff880234093600 ffff88023016bbe0 0000000000000000 <0.4> 2014-03-15 22:20:34 Telcontar kernel - - - [20151.298398] 0000000000000000 0000000100000000 0000000000000000 0000000000000001 <0.4> 2014-03-15 22:20:34 Telcontar kernel - - - [20151.298402] Call Trace: <0.4> 2014-03-15 22:20:34 Telcontar kernel - - - [20151.298415] [] dump_trace+0x88/0x310 <0.4> 2014-03-15 22:20:34 Telcontar kernel - - - [20151.298419] [] show_stack_log_lvl+0xd0/0x1d0 <0.4> 2014-03-15 22:20:34 Telcontar kernel - - - [20151.298423] [] show_stack+0x1c/0x50 <0.4> 2014-03-15 22:20:34 Telcontar kernel - - - [20151.298428] [] dump_stack+0x50/0x89 <0.4> 2014-03-15 22:20:34 Telcontar kernel - - - [20151.298449] [] xfs_free_ag_extent+0x226/0x860 [xfs] <0.4> 2014-03-15 22:20:34 Telcontar kernel - - - [20151.298511] [] xfs_free_extent+0xb9/0xf0 [xfs] <0.4> 2014-03-15 22:20:34 Telcontar kernel - - - [20151.298571] [] xfs_bmap_finish+0x11e/0x170 [xfs] <0.4> 2014-03-15 22:20:34 Telcontar kernel - - - [20151.298643] [] xfs_itruncate_extents+0x190/0x340 [xfs] <0.4> 2014-03-15 22:20:34 Telcontar kernel - - - [20151.298734] [] xfs_free_eofblocks+0x1e3/0x260 [xfs] <0.4> 2014-03-15 22:20:34 Telcontar kernel - - - [20151.298786] [] xfs_inode_free_eofblocks+0x6f/0x150 [xfs] <0.4> 2014-03-15 22:20:34 Telcontar kernel - - - [20151.298828] [] xfs_inode_ag_walk.isra.10+0x1c2/0x310 [xfs] <0.4> 2014-03-15 22:20:34 Telcontar kernel - - - [20151.298868] [] xfs_inode_ag_iterator_tag+0x6e/0xb0 [xfs] <0.4> 2014-03-15 22:20:34 Telcontar kernel - - - [20151.298909] [] xfs_eofblocks_worker+0x12/0x20 [xfs] <0.4> 2014-03-15 22:20:34 Telcontar kernel - - - [20151.298937] [] process_one_work+0x168/0x490 <0.4> 2014-03-15 22:20:34 Telcontar kernel - - - [20151.298942] [] worker_thread+0x114/0x3a0 <0.4> 2014-03-15 22:20:34 Telcontar kernel - - - [20151.298946] [] kthread+0xaf/0xc0 <0.4> 2014-03-15 22:20:34 Telcontar kernel - - - [20151.298952] [] ret_from_fork+0x7c/0xb0 <0.5> 2014-03-15 22:20:34 Telcontar kernel - - - [20151.298959] XFS (sdd5): xfs_do_force_shutdown(0x8) called from line 916 of file /home/abuild/rpmbuild/BUILD/kernel-desktop-3.11.10/linux-3.11/fs/xfs/xfs_b <0.1> 2014-03-15 22:20:34 Telcontar kernel - - - [20151.331745] XFS (sdd5): Corruption of in-memory data detected. Shutting down filesystem <0.1> 2014-03-15 22:20:34 Telcontar kernel - - - [20151.331748] XFS (sdd5): Please umount the filesystem and rectify the problem(s) <4.5> 2014-03-15 22:20:40 Telcontar gnome-keyring-daemon 6210 - - Gkm: couldn't stat directory: /home/cer/.gnome2/keyrings: Input/output error <4.4> 2014-03-15 22:20:40 Telcontar gnome-keyring-daemon 6210 - - GLib-GObject: invalid unclassed pointer in cast to 'GkmObject' <4.3> 2014-03-15 22:20:40 Telcontar gnome-keyring-daemon 6210 - - Gkm: gkm_object_expose_full: assertion 'GKM_IS_OBJECT (self)' failed <4.5> 2014-03-15 22:20:40 Telcontar gnome-keyring-daemon 6210 - - Gkm: couldn't stat directory: /home/cer/.gnome2/keyrings: Input/output error <4.5> 2014-03-15 22:20:40 Telcontar gnome-keyring-daemon 6210 - - Gkm: couldn't stat directory: /home/cer/.gnome2/keyrings: Input/output error <4.4> 2014-03-15 22:20:40 Telcontar gnome-keyring-daemon 6210 - - Gkm: couldn't create temporary file for: /home/cer/.gnome2/keyrings/login_1.keyring: Input/output error <4.4> 2014-03-15 22:20:40 Telcontar gnome-keyring-daemon 6210 - - couldn't create login keyring: An error occurred on the device <10.3> 2014-03-15 22:20:40 Telcontar unix2_chkpwd - - - gkr-pam: the password for the login keyring was invalid. <0.4> 2014-03-15 22:20:50 Telcontar kernel - - - [20168.032019] XFS (sdd5): xfs_log_force: error 5 returned. <5.4> 2014-03-15 22:20:57 Telcontar router - - - (Thawing 1) Logging the current IP= 83.41.119.142 <0.4> 2014-03-15 22:21:20 Telcontar kernel - - - [20198.112018] XFS (sdd5): xfs_log_force: error 5 returned. <0.4> 2014-03-15 22:21:50 Telcontar kernel - - - [20228.192016] XFS (sdd5): xfs_log_force: error 5 returned. <0.4> 2014-03-15 22:22:21 Telcontar kernel - - - [20258.272013] XFS (sdd5): xfs_log_force: error 5 returned. <10.5> 2014-03-15 22:22:31 Telcontar polkitd 4115 - - Unregistered Authentication Agent for unix-session:14 (system bus name :1.93, object path /org/gnome/PolicyKit1/AuthenticationAgent, locale en_US.UTF-8 <3.3> 2014-03-15 22:22:37 Telcontar kdm 3931 - - X server for display :0 terminated unexpectedly <3.4> 2014-03-15 22:22:37 Telcontar kdm - - - :0[31291]: Cannot update authorization file in home dir /home/cer <0.7> 2014-03-15 22:22:37 Telcontar kernel - - - [20275.208508] nvidia 0000:01:00.0: irq 48 for MSI/MSI-X <3.6> 2014-03-15 22:22:38 Telcontar acpid - - - 1 client rule loaded <0.4> 2014-03-15 22:22:51 Telcontar kernel - - - [20288.352018] XFS (sdd5): xfs_log_force: error 5 returned. <3.6> 2014-03-15 22:23:01 Telcontar systemd 1 - - Starting Session 126 of user news. <0.4> 2014-03-15 22:23:21 Telcontar kernel - - - [20318.432014] XFS (sdd5): xfs_log_force: error 5 returned. <0.4> 2014-03-15 22:23:51 Telcontar kernel - - - [20348.512013] XFS (sdd5): xfs_log_force: error 5 returned. <0.4> 2014-03-15 22:24:21 Telcontar kernel - - - [20378.592014] XFS (sdd5): xfs_log_force: error 5 returned. <0.4> 2014-03-15 22:24:51 Telcontar kernel - - - [20408.672014] XFS (sdd5): xfs_log_force: error 5 returned. <3.6> 2014-03-15 22:25:19 Telcontar systemd 1 - - Stopping User Manager for 9... <3.6> 2014-03-15 22:25:19 Telcontar systemd 1 - - Stopping Disk Manager... <3.6> 2014-03-15 22:25:19 Telcontar systemd 1 - - Stopping Daemon for power management... <3.6> 2014-03-15 22:25:19 Telcontar systemd 1 - - Stopping Bluetooth service... I was attemtping to go to reboot, I think. <3.6> 2014-03-15 22:25:20 Telcontar systemd 1 - - Starting Rescue Shell... <3.6> 2014-03-15 22:25:20 Telcontar systemd 1 - - Started Rescue Shell. <3.6> 2014-03-15 22:20:19 Telcontar systemd 3976 - - message repeated 3 times: [ Time has been changed] <3.6> 2014-03-15 22:25:20 Telcontar systemd 3976 - - Stopping Default. <3.6> 2014-03-15 22:20:19 Telcontar systemd 4987 - - message repeated 3 times: [ Time has been changed] <3.6> 2014-03-15 22:25:20 Telcontar systemd 4987 - - Stopping Default. <3.6> 2014-03-15 22:25:20 Telcontar systemd 3976 - - Stopped target Default. <3.6> 2014-03-15 22:25:20 Telcontar systemd 4987 - - Stopped target Default. <3.6> 2014-03-15 22:25:20 Telcontar systemd 3976 - - Starting Shutdown. <3.6> 2014-03-15 22:25:20 Telcontar systemd 4987 - - Starting Shutdown. <3.6> 2014-03-15 22:25:20 Telcontar systemd 3976 - - Reached target Shutdown. <3.6> 2014-03-15 22:25:20 Telcontar systemd 4987 - - Reached target Shutdown. <3.6> 2014-03-15 22:25:20 Telcontar systemd 3976 - - Starting Exit the Session... <3.6> 2014-03-15 22:25:20 Telcontar systemd 4987 - - Starting Exit the Session... <0.5> 2014-03-15 22:25:20 Telcontar kernel - - - [20437.920075] type=1131 audit(1394918720.685:1133): pid=1 uid=0 auid=4294967295 ses=4294967295 <0.5> 2014-03-15 22:25:20 Telcontar kernel - - - [20437.920075] msg=' comm="auditd" exe="/usr/lib/systemd/systemd" hostname=? addr=? terminal=? res=success' <0.5> 2014-03-15 22:25:20 Telcontar kernel - - - [20437.920273] type=1131 audit(1394918720.685:1134): pid=1 uid=0 auid=4294967295 ses=4294967295 <0.5> 2014-03-15 22:25:20 Telcontar kernel - - - [20437.920273] msg=' comm="systemd-logind" exe="/usr/lib/systemd/systemd" hostname=? addr=? terminal=? res=success' <0.5> 2014-03-15 22:25:20 Telcontar kernel - - - [20437.920490] type=1131 audit(1394918720.685:1135): pid=1 uid=0 auid=4294967295 ses=4294967295 <0.5> 2014-03-15 22:25:20 Telcontar kernel - - - [20437.920490] msg=' comm="smb" exe="/usr/lib/systemd/systemd" hostname=? addr=? terminal=? res=success' <0.5> 2014-03-15 22:25:21 Telcontar kernel - - - [20438.525253] type=1131 audit(1394918721.290:1136): pid=1 uid=0 auid=4294967295 ses=4294967295 <0.5> 2014-03-15 22:25:21 Telcontar kernel - - - [20438.525253] msg=' comm="cron" exe="/usr/lib/systemd/systemd" hostname=? addr=? terminal=? res=success' <0.5> 2014-03-15 22:25:21 Telcontar kernel - - - [20438.525643] type=1131 audit(1394918721.290:1137): pid=1 uid=0 auid=4294967295 ses=4294967295 <0.5> 2014-03-15 22:25:21 Telcontar kernel - - - [20438.525643] msg=' comm="avahi-daemon" exe="/usr/lib/systemd/systemd" hostname=? addr=? terminal=? res=success' <0.5> 2014-03-15 22:25:21 Telcontar kernel - - - [20438.525937] type=1131 audit(1394918721.290:1138): pid=1 uid=0 auid=4294967295 ses=4294967295 <0.5> 2014-03-15 22:25:21 Telcontar kernel - - - [20438.525937] msg=' comm="console-kit-daemon" exe="/usr/lib/systemd/systemd" hostname=? addr=? terminal=? res=success' <0.5> 2014-03-15 22:25:21 Telcontar kernel - - - [20438.526359] type=1131 audit(1394918721.291:1139): pid=1 uid=0 auid=4294967295 ses=4294967295 <0.5> 2014-03-15 22:25:21 Telcontar kernel - - - [20438.526359] msg=' comm="polkit" exe="/usr/lib/systemd/systemd" hostname=? addr=? terminal=? res=success' <0.5> 2014-03-15 22:25:21 Telcontar kernel - - - [20438.526577] type=1131 audit(1394918721.291:1140): pid=1 uid=0 auid=4294967295 ses=4294967295 <0.5> 2014-03-15 22:25:21 Telcontar kernel - - - [20438.526577] msg=' comm="rtkit-daemon" exe="/usr/lib/systemd/systemd" hostname=? addr=? terminal=? res=success' <0.5> 2014-03-15 22:25:21 Telcontar kernel - - - [20438.527021] type=1131 audit(1394918721.292:1141): pid=1 uid=0 auid=4294967295 ses=4294967295 <0.5> 2014-03-15 22:25:21 Telcontar kernel - - - [20438.527021] msg=' comm="bluetooth" exe="/usr/lib/systemd/systemd" hostname=? addr=? terminal=? res=success' <0.4> 2014-03-15 22:25:21 Telcontar kernel - - - [20438.752008] XFS (sdd5): xfs_log_force: error 5 returned. <5.6> 2014-03-15 22:25:22 Telcontar rsyslogd - - - [origin software="rsyslogd" swVersion="7.4.7" x-pid="1067" x-info="http://www.rsyslog.com"] exiting on signal 15. 2014-03-15 22:25:23+01:00 - Halting the system now =========================================== uptime: 22:25pm up 18:36, 2 users, load average: 2.08, 1.04, 0.78 2014-03-15 22:25:31+01:00 - Booting the system now ================================================================================ Linux Telcontar 3.11.10-7-desktop #1 SMP PREEMPT Mon Feb 3 09:41:24 UTC <5.6> 2014-03-15 22:25:39 Telcontar rsyslogd - - - [origin software="rsyslogd" swVersion="7.4.7" x-pid="32300" x-info="http://www.rsyslog.com"] start <3.6> 2014-03-15 22:25:39 Telcontar systemd 1 - - Stopping Rescue Shell... This time, the system detects problems: <0.4> 2014-03-15 22:25:51 Telcontar kernel - - - [20468.832024] XFS (sdd5): xfs_log_force: error 5 returned. ... <3.6> 2014-03-15 22:26:16 Telcontar systemd 1 - - Started Console Manager. <10.5> 2014-03-15 22:26:16 Telcontar login - - - ROOT LOGIN ON tty1 <3.6> 2014-03-15 22:26:16 Telcontar systemd 878 - - Mounted /sys/fs/fuse/connections. <3.6> 2014-03-15 22:26:16 Telcontar systemd 878 - - Stopped target Sound Card. <3.6> 2014-03-15 22:26:16 Telcontar systemd 878 - - Starting Default. <3.6> 2014-03-15 22:26:16 Telcontar systemd 878 - - Reached target Default. <3.6> 2014-03-15 22:26:16 Telcontar systemd 878 - - Startup finished in 316ms. <3.6> 2014-03-15 22:26:16 Telcontar systemd 1 - - Started User Manager for 0. <0.4> 2014-03-15 22:26:21 Telcontar kernel - - - [20498.912018] XFS (sdd5): xfs_log_force: error 5 returned. <0.4> 2014-03-15 22:26:51 Telcontar kernel - - - [20528.992014] XFS (sdd5): xfs_log_force: error 5 returned. <0.4> 2014-03-15 22:27:21 Telcontar kernel - - - [20559.072014] XFS (sdd5): xfs_log_force: error 5 returned. <0.4> 2014-03-15 22:27:51 Telcontar kernel - - - [20589.152013] XFS (sdd5): xfs_log_force: error 5 returned. <3.6> 2014-03-15 22:28:01 Telcontar systemd 1 - - Starting user-9.slice. But aparently I decided to abort: 2014-03-15 22:28:03+01:00 - Halting the system now =========================================== uptime: 22:28pm up 18:39, 0 users, load average: 0.70, 1.40, 1.01 2014-03-16 14:07:21+01:00 - Booting the system now ================================================================================ Linux Telcontar 3.11.10-7-desktop #1 SMP PREEMPT Mon Feb 3 09:41:24 UTC Judging from the time of the next boot, I guess that it was here that I decided to use the live system and reformat. The cloned image I have of the filesystem is dated Mar 16 05:42, so it was made somewhere here - at late hours, you see, if I started to attempt recovery at 22:30 (I used dd, rsync, and xfsdump, so that took time). Unfortunately, I do not remember where I placed my notes on the repair procedure, so I do not know for certain at which point in my attempts to repair I took the photo. Seeing that I probably started around midnight, and the file is dated 05:42, I guess I did it too late. But that surprises me, as I'm absolutely sure I took the photo to be able to provide it for investigation. As it was evident by now that xfsrepair failed to repair the partition, which crashed soon after "repair", and as it was mountable, I decided to do an both an rsync copy and an xfsdump copy. I then reformatted the affected partition, but I don't remember if I used gparted (probably) or mkfs.xfs, and when done, I copied back the data from the backup made just an hour before, with xfsrestore. I remember I also used rsync to verify the copy, and it was correct. And the procedure succeeded: <0.5> 2014-03-16 14:07:23 Telcontar kernel - - - [ 20.239542] XFS (sdd5): Mounting Filesystem <0.5> 2014-03-16 14:07:23 Telcontar kernel - - - [ 20.280604] XFS (sdd8): Mounting Filesystem <0.6> 2014-03-16 14:07:23 Telcontar kernel - - - [ 20.450123] XFS (sdd8): Ending clean mount <0.6> 2014-03-16 14:07:23 Telcontar kernel - - - [ 20.459463] XFS (sdd5): Ending clean mount Next log entry related to "sdd5" was days later, all normal: <3.6> 2014-03-19 00:18:12 Telcontar dbus-daemon 1004 - - **** ADDING /sys/devices/pci0000:00/0000:00:1f.2/ata10/host9/target9:0:0/9:0:0:0/block/sdd/sdd5 Next crash event happened on 2014-04-17 22:47:08, after 15 sucesful hibernation cycles: <5.4> 2014-04-17 20:15:56 Telcontar pm-utils - - - Hibernating (1)... <1.5> 2014-04-17 20:15:56 Telcontar network 314 - - redirecting to "systemctl --signal=9 kill network.service" <3.5> 2014-04-17 20:15:56 Telcontar systemd 1 - - network@eth0.service: main process exited, code=killed, status=9/KILL <5.4> 2014-04-17 20:15:56 Telcontar pm-utils - - - Hibernating (95)... <0.7> 2014-04-17 20:15:59 Telcontar kernel - - - [280263.870791] PM: Marking nosave pages: [mem 0x0009f000-0x000fffff] <0.7> 2014-04-17 20:15:59 Telcontar kernel - - - [280263.870797] PM: Marking nosave pages: [mem 0xbff90000-0xffffffff] <0.7> 2014-04-17 20:15:59 Telcontar kernel - - - [280263.871414] PM: Basic memory bitmaps created <0.4> 2014-04-17 22:47:08 Telcontar kernel - - - [280264.493703] Syncing filesystems ... done. <0.4> 2014-04-17 22:47:08 Telcontar kernel - - - [280265.043237] Freezing user space processes ... (elapsed 0.002 seconds) done. <0.6> 2014-04-17 22:47:08 Telcontar kernel - - - [280265.046032] PM: Preallocating image memory... done (allocated 1140779 pages) <0.6> 2014-04-17 22:47:08 Telcontar kernel - - - [280266.609430] PM: Allocated 4563116 kbytes in 1.56 seconds (2925.07 MB/s) <0.4> 2014-04-17 22:47:08 Telcontar kernel - - - [280266.609554] Freezing remaining freezable tasks ... (elapsed 0.001 seconds) done. <0.4> 2014-04-17 22:47:08 Telcontar kernel - - - [280266.611525] Suspending console(s) (use no_console_suspend to debug) <0.6> 2014-04-17 22:47:08 Telcontar kernel - - - [280266.612352] serial 00:05: disabled <0.6> 2014-04-17 22:47:08 Telcontar kernel - - - [280266.812165] PM: freeze of devices complete after 200.520 msecs <0.6> 2014-04-17 22:47:08 Telcontar kernel - - - [280266.812452] PM: late freeze of devices complete after 0.285 msecs <0.6> 2014-04-17 22:47:08 Telcontar kernel - - - [280266.812999] PM: noirq freeze of devices complete after 0.544 msecs <0.4> 2014-04-17 22:47:08 Telcontar kernel - - - [280266.812999] Disabling non-boot CPUs ... <0.6> 2014-04-17 22:47:08 Telcontar kernel - - - [280266.814329] smpboot: CPU 1 is now offline <0.6> 2014-04-17 22:47:08 Telcontar kernel - - - [280266.816455] smpboot: CPU 2 is now offline <0.6> 2014-04-17 22:47:08 Telcontar kernel - - - [280266.818199] smpboot: CPU 3 is now offline <0.6> 2014-04-17 22:47:08 Telcontar kernel - - - [280266.818656] PM: Creating hibernation image: <0.6> 2014-04-17 22:47:08 Telcontar kernel - - - [280266.819191] PM: Need to copy 923283 pages <0.7> 2014-04-17 22:47:08 Telcontar kernel - - - [280266.819191] PM: Normal pages needed: 923283 + 1024, available pages: 1173501 <0.6> 2014-04-17 22:47:08 Telcontar kernel - - - [280266.819191] Enabling non-boot CPUs ... <0.6> 2014-04-17 22:47:08 Telcontar kernel - - - [280266.819191] smpboot: Booting Node 0 Processor 1 APIC 0x1 <0.6> 2014-04-17 22:47:08 Telcontar kernel - - - [280266.832336] CPU1 is up <0.6> 2014-04-17 22:47:08 Telcontar kernel - - - [280266.832467] smpboot: Booting Node 0 Processor 2 APIC 0x2 <0.6> 2014-04-17 22:47:08 Telcontar kernel - - - [280266.845865] CPU2 is up <0.6> 2014-04-17 22:47:08 Telcontar kernel - - - [280266.846034] smpboot: Booting Node 0 Processor 3 APIC 0x3 <0.6> 2014-04-17 22:47:08 Telcontar kernel - - - [280266.859609] CPU3 is up <0.6> 2014-04-17 22:47:08 Telcontar kernel - - - [280266.887223] PM: noirq restore of devices complete after 22.590 msecs <0.6> 2014-04-17 22:47:08 Telcontar kernel - - - [280266.887356] PM: early restore of devices complete after 0.107 msecs <0.7> 2014-04-17 22:47:08 Telcontar kernel - - - [280267.059840] uhci_hcd 0000:00:1a.0: setting latency timer to 64 <0.4> 2014-04-17 22:47:08 Telcontar kernel - - - [280267.059859] usb usb3: root hub lost power or was reset <0.7> 2014-04-17 22:47:08 Telcontar kernel - - - [280267.059869] uhci_hcd 0000:00:1a.1: setting latency timer to 64 <0.4> 2014-04-17 22:47:08 Telcontar kernel - - - [280267.059885] usb usb4: root hub lost power or was reset <0.7> 2014-04-17 22:47:08 Telcontar kernel - - - [280267.059893] uhci_hcd 0000:00:1a.2: setting latency timer to 64 <0.4> 2014-04-17 22:47:08 Telcontar kernel - - - [280267.059910] usb usb5: root hub lost power or was reset <0.7> 2014-04-17 22:47:08 Telcontar kernel - - - [280267.059919] ehci-pci 0000:00:1a.7: setting latency timer to 64 <0.4> 2014-04-17 22:47:08 Telcontar kernel - - - [280267.059937] usb usb1: root hub lost power or was reset <0.7> 2014-04-17 22:47:08 Telcontar kernel - - - [280267.061145] uhci_hcd 0000:00:1d.0: setting latency timer to 64 <0.4> 2014-04-17 22:47:08 Telcontar kernel - - - [280267.061167] usb usb6: root hub lost power or was reset <0.7> 2014-04-17 22:47:08 Telcontar kernel - - - [280267.061177] uhci_hcd 0000:00:1d.1: setting latency timer to 64 <0.4> 2014-04-17 22:47:08 Telcontar kernel - - - [280267.061196] usb usb7: root hub lost power or was reset <0.7> 2014-04-17 22:47:08 Telcontar kernel - - - [280267.061205] uhci_hcd 0000:00:1d.2: setting latency timer to 64 <0.4> 2014-04-17 22:47:08 Telcontar kernel - - - [280267.061225] usb usb8: root hub lost power or was reset <0.7> 2014-04-17 22:47:08 Telcontar kernel - - - [280267.061236] ehci-pci 0000:00:1d.7: setting latency timer to 64 <0.4> 2014-04-17 22:47:08 Telcontar kernel - - - [280267.061254] usb usb2: root hub lost power or was reset <0.7> 2014-04-17 22:47:08 Telcontar kernel - - - [280267.062031] pci 0000:00:1e.0: setting latency timer to 64 <0.7> 2014-04-17 22:47:08 Telcontar kernel - - - [280267.062123] ata_piix 0000:00:1f.2: setting latency timer to 64 <0.7> 2014-04-17 22:47:08 Telcontar kernel - - - [280267.062182] ata_piix 0000:00:1f.5: setting latency timer to 64 <0.7> 2014-04-17 22:47:08 Telcontar kernel - - - [280267.063832] ehci-pci 0000:00:1a.7: cache line size of 32 is not supported <0.7> 2014-04-17 22:47:08 Telcontar kernel - - - [280267.065134] ehci-pci 0000:00:1d.7: cache line size of 32 is not supported <0.3> 2014-04-17 22:47:08 Telcontar kernel - - - [280267.162023] pciehp 0000:00:1c.4:pcie04: Device 0000:06:00.0 already exists at 0000:06:00, cannot hot-add <0.3> 2014-04-17 22:47:08 Telcontar kernel - - - [280267.162025] pciehp 0000:00:1c.4:pcie04: Cannot add device at 0000:06:00 <0.3> 2014-04-17 22:47:08 Telcontar kernel - - - [280267.162047] pciehp 0000:00:1c.2:pcie04: Device 0000:04:00.0 already exists at 0000:04:00, cannot hot-add <0.3> 2014-04-17 22:47:08 Telcontar kernel - - - [280267.162049] pciehp 0000:00:1c.2:pcie04: Cannot add device at 0000:04:00 <0.3> 2014-04-17 22:47:08 Telcontar kernel - - - [280267.162051] pciehp 0000:00:1c.5:pcie04: Device 0000:07:00.0 already exists at 0000:07:00, cannot hot-add <0.3> 2014-04-17 22:47:08 Telcontar kernel - - - [280267.162053] pciehp 0000:00:1c.5:pcie04: Cannot add device at 0000:07:00 <0.3> 2014-04-17 22:47:08 Telcontar kernel - - - [280267.162098] pciehp 0000:00:1c.0:pcie04: Device 0000:02:00.0 already exists at 0000:02:00, cannot hot-add <0.3> 2014-04-17 22:47:08 Telcontar kernel - - - [280267.162100] pciehp 0000:00:1c.0:pcie04: Cannot add device at 0000:02:00 <0.3> 2014-04-17 22:47:08 Telcontar kernel - - - [280267.162123] pciehp 0000:00:1c.3:pcie04: Device 0000:05:00.0 already exists at 0000:05:00, cannot hot-add <0.3> 2014-04-17 22:47:08 Telcontar kernel - - - [280267.162125] pciehp 0000:00:1c.3:pcie04: Cannot add device at 0000:05:00 <0.7> 2014-04-17 22:47:08 Telcontar kernel - - - [280267.162308] pata_jmicron 0000:05:00.1: setting latency timer to 64 <0.6> 2014-04-17 22:47:08 Telcontar kernel - - - [280267.163546] serial 00:05: activated <0.7> 2014-04-17 22:47:08 Telcontar kernel - - - [280267.164041] pata_jmicron 0000:04:00.1: setting latency timer to 64 <0.6> 2014-04-17 22:47:08 Telcontar kernel - - - [280267.173271] r8169 0000:06:00.0 eth0: link down <0.6> 2014-04-17 22:47:08 Telcontar kernel - - - [280267.386975] ata11: SATA link down (SStatus 0 SControl 300) <0.6> 2014-04-17 22:47:08 Telcontar kernel - - - [280267.467054] ata2: SATA link down (SStatus 0 SControl 300) <0.6> 2014-04-17 22:47:08 Telcontar kernel - - - [280267.468030] ata1: SATA link down (SStatus 0 SControl 300) <0.6> 2014-04-17 22:47:08 Telcontar kernel - - - [280267.481019] usb 1-2: reset high-speed USB device number 3 using ehci-pci <0.6> 2014-04-17 22:47:08 Telcontar kernel - - - [280267.485262] r8169 0000:07:00.0 eth1: link down <0.6> 2014-04-17 22:47:08 Telcontar kernel - - - [280267.538037] ata12: SATA link up 1.5 Gbps (SStatus 113 SControl 300) <0.6> 2014-04-17 22:47:08 Telcontar kernel - - - [280267.541148] ata12.00: ACPI cmd ef/03:45:00:00:00:a0 (SET FEATURES) filtered out <0.6> 2014-04-17 22:47:08 Telcontar kernel - - - [280267.541149] ata12.00: ACPI cmd ef/03:0c:00:00:00:a0 (SET FEATURES) filtered out <0.6> 2014-04-17 22:47:08 Telcontar kernel - - - [280267.541151] ata12.00: ACPI cmd f5/00:00:00:00:00:00 (SECURITY FREEZE LOCK) filtered out <0.6> 2014-04-17 22:47:08 Telcontar kernel - - - [280267.563113] ata12.00: configured for UDMA/100 <0.5> 2014-04-17 22:47:08 Telcontar kernel - - - [280267.621020] firewire_core 0000:08:02.0: rediscovered device fw0 <0.6> 2014-04-17 22:47:08 Telcontar kernel - - - [280267.622018] ata3: SATA link up 3.0 Gbps (SStatus 123 SControl 300) <0.6> 2014-04-17 22:47:08 Telcontar kernel - - - [280267.624027] ata4: SATA link up 3.0 Gbps (SStatus 123 SControl 300) <0.6> 2014-04-17 22:47:08 Telcontar kernel - - - [280267.624176] ata3.00: configured for UDMA/133 <0.5> 2014-04-17 22:47:08 Telcontar kernel - - - [280267.624207] sd 2:0:0:0: [sda] Starting disk <0.6> 2014-04-17 22:47:08 Telcontar kernel - - - [280267.625665] ata4.00: configured for UDMA/133 <0.5> 2014-04-17 22:47:08 Telcontar kernel - - - [280267.626090] sd 3:0:0:0: [sdb] Starting disk <0.7> 2014-04-17 22:47:08 Telcontar kernel - - - [280267.656005] /dev/vmmon[0]: HostIFReadUptimeWork: detected settimeofday: fixed uptimeBase old 18445346595345864640 new 18445346586286024561 attempts 1 <0.6> 2014-04-17 22:47:08 Telcontar kernel - - - [280267.833055] ata9.00: SATA link up 3.0 Gbps (SStatus 123 SControl 300) <0.6> 2014-04-17 22:47:08 Telcontar kernel - - - [280267.833064] ata9.01: SATA link up 3.0 Gbps (SStatus 123 SControl 300) <0.6> 2014-04-17 22:47:08 Telcontar kernel - - - [280267.836117] ata9.01: ACPI cmd ef/03:45:00:00:00:b0 (SET FEATURES) filtered out <0.6> 2014-04-17 22:47:08 Telcontar kernel - - - [280267.836119] ata9.01: ACPI cmd ef/03:0c:00:00:00:b0 (SET FEATURES) filtered out <0.7> 2014-04-17 22:47:08 Telcontar kernel - - - [280267.836296] ata9.01: ACPI cmd c6/00:10:00:00:00:b0 (SET MULTIPLE MODE) succeeded <0.6> 2014-04-17 22:47:08 Telcontar kernel - - - [280267.836298] ata9.01: ACPI cmd f5/00:00:00:00:00:00 (SECURITY FREEZE LOCK) filtered out <0.6> 2014-04-17 22:47:08 Telcontar kernel - - - [280267.842067] ata10.00: SATA link up 3.0 Gbps (SStatus 123 SControl 300) <0.6> 2014-04-17 22:47:08 Telcontar kernel - - - [280267.842082] ata10.01: SATA link up 3.0 Gbps (SStatus 123 SControl 300) <0.6> 2014-04-17 22:47:08 Telcontar kernel - - - [280267.842175] ata9.00: ACPI cmd ef/03:45:00:00:00:a0 (SET FEATURES) filtered out <0.6> 2014-04-17 22:47:08 Telcontar kernel - - - [280267.842176] ata9.00: ACPI cmd ef/03:0c:00:00:00:a0 (SET FEATURES) filtered out <0.7> 2014-04-17 22:47:08 Telcontar kernel - - - [280267.842344] ata9.00: ACPI cmd c6/00:10:00:00:00:a0 (SET MULTIPLE MODE) succeeded <0.6> 2014-04-17 22:47:08 Telcontar kernel - - - [280267.842345] ata9.00: ACPI cmd f5/00:00:00:00:00:00 (SECURITY FREEZE LOCK) filtered out <0.6> 2014-04-17 22:47:08 Telcontar kernel - - - [280267.845187] ata10.01: ACPI cmd ef/03:45:00:00:00:b0 (SET FEATURES) filtered out <0.6> 2014-04-17 22:47:08 Telcontar kernel - - - [280267.845189] ata10.01: ACPI cmd ef/03:0c:00:00:00:b0 (SET FEATURES) filtered out <0.7> 2014-04-17 22:47:08 Telcontar kernel - - - [280267.845378] ata10.01: ACPI cmd c6/00:10:00:00:00:b0 (SET MULTIPLE MODE) succeeded <0.6> 2014-04-17 22:47:08 Telcontar kernel - - - [280267.845380] ata10.01: ACPI cmd f5/00:00:00:00:00:00 (SECURITY FREEZE LOCK) filtered out <0.6> 2014-04-17 22:47:08 Telcontar kernel - - - [280267.847015] usb 3-1: reset low-speed USB device number 2 using uhci_hcd <0.6> 2014-04-17 22:47:08 Telcontar kernel - - - [280267.851234] ata10.00: ACPI cmd ef/03:45:00:00:00:a0 (SET FEATURES) filtered out <0.6> 2014-04-17 22:47:08 Telcontar kernel - - - [280267.851235] ata10.00: ACPI cmd ef/03:0c:00:00:00:a0 (SET FEATURES) filtered out <0.6> 2014-04-17 22:47:08 Telcontar kernel - - - [280267.851359] ata9.00: configured for UDMA/133 <0.7> 2014-04-17 22:47:08 Telcontar kernel - - - [280267.851456] ata10.00: ACPI cmd c6/00:10:00:00:00:a0 (SET MULTIPLE MODE) succeeded <0.6> 2014-04-17 22:47:08 Telcontar kernel - - - [280267.851458] ata10.00: ACPI cmd f5/00:00:00:00:00:00 (SECURITY FREEZE LOCK) filtered out <0.6> 2014-04-17 22:47:08 Telcontar kernel - - - [280267.857339] ata9.01: configured for UDMA/133 <0.5> 2014-04-17 22:47:08 Telcontar kernel - - - [280267.857369] sd 8:0:0:0: [sdc] Starting disk <0.5> 2014-04-17 22:47:08 Telcontar kernel - - - [280267.857371] sd 8:0:1:0: [sdd] Starting disk <0.6> 2014-04-17 22:47:08 Telcontar kernel - - - [280267.879326] ata10.00: configured for UDMA/133 <0.6> 2014-04-17 22:47:08 Telcontar kernel - - - [280267.885331] ata10.01: configured for UDMA/133 <0.5> 2014-04-17 22:47:08 Telcontar kernel - - - [280267.885365] sd 9:0:0:0: [sde] Starting disk <0.5> 2014-04-17 22:47:08 Telcontar kernel - - - [280267.885369] sd 9:0:1:0: [sdf] Starting disk <0.6> 2014-04-17 22:47:08 Telcontar kernel - - - [280268.242014] usb 2-5: reset high-speed USB device number 2 using ehci-pci <0.6> 2014-04-17 22:47:08 Telcontar kernel - - - [280268.608013] usb 8-2: reset low-speed USB device number 2 using uhci_hcd <0.6> 2014-04-17 22:47:08 Telcontar kernel - - - [280268.959113] usb 2-5.4: reset high-speed USB device number 4 using ehci-pci <0.6> 2014-04-17 22:47:08 Telcontar kernel - - - [280269.287977] r8169 0000:06:00.0 eth0: link up <0.6> 2014-04-17 22:47:08 Telcontar kernel - - - [280269.796130] PM: restore of devices complete after 2736.343 msecs <0.4> 2014-04-17 22:47:08 Telcontar kernel - - - [280270.081655] Restarting kernel threads ... done. <0.4> 2014-04-17 22:47:08 Telcontar kernel - - - [280270.086714] Restarting tasks ... done. <0.7> 2014-04-17 22:47:08 Telcontar kernel - - - [280270.115233] PM: Basic memory bitmaps freed <0.7> 2014-04-17 22:47:08 Telcontar kernel - - - [280270.191345] bridge-eth0: disabling the bridge <0.7> 2014-04-17 22:47:08 Telcontar kernel - - - [280270.196021] bridge-eth0: down <0.7> 2014-04-17 22:47:08 Telcontar kernel - - - [280270.196026] bridge-eth0: detached <0.7> 2014-04-17 22:47:08 Telcontar kernel - - - [280270.762859] /dev/vmnet: open called by PID 3122 (vmnet-bridge) <0.7> 2014-04-17 22:47:08 Telcontar kernel - - - [280270.762873] /dev/vmnet: hub 0 does not exist, allocating memory. <0.7> 2014-04-17 22:47:08 Telcontar kernel - - - [280270.762888] /dev/vmnet: port on hub 0 successfully opened <0.7> 2014-04-17 22:47:08 Telcontar kernel - - - [280270.762899] bridge-eth0: up <0.7> 2014-04-17 22:47:08 Telcontar kernel - - - [280270.762904] bridge-eth0: attached <0.5> 2014-04-17 22:47:08 Telcontar kernel - - - [280271.396460] userif-2: sent link down event. <0.5> 2014-04-17 22:47:08 Telcontar kernel - - - [280271.396463] userif-2: sent link up event. <0.1> 2014-04-17 22:47:08 Telcontar kernel - - - [280271.851374] XFS: Internal error XFS_WANT_CORRUPTED_GOTO at line 1602 of file /home/abuild/rpmbuild/BUILD/kernel-desktop-3.11.10/linux-3.11/fs/xfs/xfs_alloc.c. Caller 0xffffffffa0c54fe9 <0.1> 2014-04-17 22:47:08 Telcontar kernel - - - [280271.851374] <0.4> 2014-04-17 22:47:08 Telcontar kernel - - - [280271.851709] CPU: 0 PID: 27785 Comm: kworker/0:4 Tainted: P O 3.11.10-7-desktop #1 <0.4> 2014-04-17 22:47:08 Telcontar kernel - - - [280271.851864] Hardware name: MICRO-STAR INTERNATIONAL CO.,LTD MS-7516/MS-7516, BIOS V1.5 10/10/2008 <0.4> 2014-04-17 22:47:08 Telcontar kernel - - - [280271.852074] Workqueue: xfs-eofblocks/sde5 xfs_eofblocks_worker [xfs] <0.4> 2014-04-17 22:47:08 Telcontar kernel - - - [280271.852211] 0000000000000000 ffffffff8159ff82 0000000000216bae ffffffffa0c53996 <0.4> 2014-04-17 22:47:08 Telcontar kernel - - - [280271.852486] ffff88019907e0c0 ffff880234160740 ffff88012e9e5cb0 0000000000000000 <0.4> 2014-04-17 22:47:08 Telcontar kernel - - - [280271.852638] 0000000000000000 0000000100000000 0000000000000000 0000000000000001 <0.4> 2014-04-17 22:47:08 Telcontar kernel - - - [280271.852790] Call Trace: <0.4> 2014-04-17 22:47:08 Telcontar kernel - - - [280271.852847] [] dump_trace+0x88/0x310 <0.4> 2014-04-17 22:47:08 Telcontar kernel - - - [280271.852947] [] show_stack_log_lvl+0xd0/0x1d0 <0.4> 2014-04-17 22:47:08 Telcontar kernel - - - [280271.853063] [] show_stack+0x1c/0x50 <0.4> 2014-04-17 22:47:08 Telcontar kernel - - - [280271.853164] [] dump_stack+0x50/0x89 <0.4> 2014-04-17 22:47:08 Telcontar kernel - - - [280271.853275] [] xfs_free_ag_extent+0x226/0x860 [xfs] <0.4> 2014-04-17 22:47:08 Telcontar kernel - - - [280271.853439] [] xfs_free_extent+0xb9/0xf0 [xfs] <0.4> 2014-04-17 22:47:08 Telcontar kernel - - - [280271.853594] [] xfs_bmap_finish+0x11e/0x170 [xfs] <0.4> 2014-04-17 22:47:08 Telcontar kernel - - - [280271.853761] [] xfs_itruncate_extents+0x190/0x340 [xfs] <0.4> 2014-04-17 22:47:08 Telcontar kernel - - - [280271.853950] [] xfs_free_eofblocks+0x1e3/0x260 [xfs] <0.4> 2014-04-17 22:47:08 Telcontar kernel - - - [280271.854110] [] xfs_inode_free_eofblocks+0x6f/0x150 [xfs] <0.4> 2014-04-17 22:47:08 Telcontar kernel - - - [280271.854268] [] xfs_inode_ag_walk.isra.10+0x1c2/0x310 [xfs] <0.4> 2014-04-17 22:47:08 Telcontar kernel - - - [280271.854428] [] xfs_inode_ag_iterator_tag+0x6e/0xb0 [xfs] <0.4> 2014-04-17 22:47:08 Telcontar kernel - - - [280271.854585] [] xfs_eofblocks_worker+0x12/0x20 [xfs] <0.4> 2014-04-17 22:47:08 Telcontar kernel - - - [280271.854725] [] process_one_work+0x168/0x490 <0.4> 2014-04-17 22:47:08 Telcontar kernel - - - [280271.854835] [] worker_thread+0x114/0x3a0 <0.4> 2014-04-17 22:47:08 Telcontar kernel - - - [280271.854941] [] kthread+0xaf/0xc0 <0.4> 2014-04-17 22:47:08 Telcontar kernel - - - [280271.855037] [] ret_from_fork+0x7c/0xb0 <0.5> 2014-04-17 22:47:08 Telcontar kernel - - - [280271.855142] XFS (sde5): xfs_do_force_shutdown(0x8) called from line 916 of file /home/abuild/rpmbuild/BUILD/kernel-desktop-3.11.10/linux-3.11/fs/xfs/xfs_bmap.c. Return address = 0xffffffffa0c673d8 <0.1> 2014-04-17 22:47:08 Telcontar kernel - - - [280271.901296] XFS (sde5): Corruption of in-memory data detected. Shutting down filesystem <0.1> 2014-04-17 22:47:08 Telcontar kernel - - - [280271.901447] XFS (sde5): Please umount the filesystem and rectify the problem(s) <0.4> 2014-04-17 22:47:08 Telcontar kernel - - - [280272.480011] XFS (sde5): xfs_log_force: error 5 returned. <3.4> 2014-04-17 22:47:06 Telcontar rtkit-daemon 4749 - - The canary thread is apparently starving. Taking action. <3.6> 2014-04-17 22:47:06 Telcontar rtkit-daemon 4749 - - Demoting known real-time threads. <3.5> 2014-04-17 22:47:06 Telcontar rtkit-daemon 4749 - - Successfully demoted thread 31337 of process 31334 (/usr/bin/pulseaudio). <3.5> 2014-04-17 22:47:06 Telcontar rtkit-daemon 4749 - - Successfully demoted thread 31336 of process 31334 (/usr/bin/pulseaudio). <3.5> 2014-04-17 22:47:06 Telcontar rtkit-daemon 4749 - - Successfully demoted thread 31334 of process 31334 (/usr/bin/pulseaudio). <3.5> 2014-04-17 22:47:06 Telcontar rtkit-daemon 4749 - - Demoted 3 threads. <3.6> 2014-04-17 22:47:06 Telcontar vmnetBridge - - - RTM_NEWLINK: name:eth0 index:2 flags:0x00001003 <3.6> 2014-04-17 22:47:06 Telcontar vmnetBridge - - - Removing interface eth0 index:2 <3.6> 2014-04-17 22:47:06 Telcontar vmnetBridge - - - Stopped bridge eth0 to virtual network 0. <3.6> 2014-04-17 22:47:06 Telcontar vmnetBridge - - - RTM_NEWLINK: name:eth0 index:2 flags:0x00011043 <3.6> 2014-04-17 22:47:07 Telcontar vmnet-natd - - - RTM_NEWLINK: name:eth0 index:2 flags:0x00001003 <3.6> 2014-04-17 22:47:08 Telcontar systemd 1 - - Time has been changed <3.6> 2014-04-17 22:47:11 Telcontar acpid - - - 1 client rule loaded <3.5> 2014-04-17 22:47:12 Telcontar dbus 1013 - - [system] Activating service name='org.freedesktop.PackageKit' (using servicehelper) <5.4> 2014-04-17 22:47:12 Telcontar pm-utils - - - Thawing (95)... <3.5> 2014-04-17 22:47:14 Telcontar dbus 1013 - - [system] Activated service 'org.freedesktop.PackageKit' failed: Cannot launch daemon, file not found or permissions invalid <1.5> 2014-04-17 22:47:16 Telcontar network 788 - - redirecting to "systemctl restart network.service" <3.6> 2014-04-17 22:47:16 Telcontar systemd 1 - - Stopping ifup managed network interface eth1... <3.6> 2014-04-17 22:47:16 Telcontar systemd 1 - - Stopping ifup managed network interface eth0... <3.6> 2014-04-17 22:47:16 Telcontar systemd 1 - - Stopping LSB: Configure network interfaces and set up routing... Apparently, I rebooted: 2014-04-17 23:27:32+02:00 - Halting the system now =========================================== uptime: 23:27pm up 6 days 19:54, 1 user, load average: 12.51, 3.63, 1.38 2014-04-17 23:32:17+02:00 - Booting the system now ================================================================================ Linux Telcontar 3.11.10-7-desktop #1 SMP PREEMPT Mon Feb 3 09:41:24 UTC <10.5> 2014-04-17 23:33:13 Telcontar login - - - ROOT LOGIN ON tty1 <10.5> 2014-04-17 23:39:17 Telcontar login - - - ROOT LOGIN ON tty2 <10.5> 2014-04-17 23:43:14 Telcontar login - - - ROOT LOGIN ON tty3 <10.5> 2014-04-17 23:43:21 Telcontar login - - - ROOT LOGIN ON tty4 I have reason to believe, looking at my logs, that I restored my home here, using the same procedure, but using this work system, instead of the rescue live stick (oS 13.1 XFCE), using text mode tools. Thus I guess this time I used plain mkfs.xfs. Later I see dozens of hibernate cycles, till I halt normally about two weeks later, on 2014-05-02, so the procedure succeded. Next crash event was this Sunday: Hibernating and thawing sequence, complete: <3.4> 2014-06-29 04:51:49 Telcontar pm-utils - - - Hibernating the system now (04)... <3.5> 2014-06-29 04:51:49 Telcontar pm-utils - - - There appears not be any pending nntp post to be sent. I just checked :-) <1.5> 2014-06-29 04:51:50 Telcontar network 29169 - - redirecting to "systemctl --signal=9 kill network.service" <3.5> 2014-06-29 04:51:50 Telcontar systemd 1 - - network@eth0.service: main process exited, code=killed, status=9/KILL <3.4> 2014-06-29 04:51:50 Telcontar pm-utils - - - Hibernating (95)... <0.7> 2014-06-29 04:51:53 Telcontar kernel - - - [212878.926048] PM: Marking nosave pages: [mem 0x0009f000-0x000fffff] <0.7> 2014-06-29 04:51:53 Telcontar kernel - - - [212878.926052] PM: Marking nosave pages: [mem 0xbff90000-0xffffffff] <0.7> 2014-06-29 04:51:53 Telcontar kernel - - - [212878.927502] PM: Basic memory bitmaps created <0.4> 2014-06-29 12:32:18 Telcontar kernel - - - [212879.561676] Syncing filesystems ... done. <0.4> 2014-06-29 12:32:18 Telcontar kernel - - - [212880.077132] Freezing user space processes ... (elapsed 0.002 seconds) done. <0.6> 2014-06-29 12:32:18 Telcontar kernel - - - [212880.080024] PM: Preallocating image memory... done (allocated 1140811 pages) <0.6> 2014-06-29 12:32:18 Telcontar kernel - - - [212887.351277] PM: Allocated 4563244 kbytes in 7.27 seconds (627.68 MB/s) <0.4> 2014-06-29 12:32:18 Telcontar kernel - - - [212887.351400] Freezing remaining freezable tasks ... (elapsed 0.080 seconds) done. <0.4> 2014-06-29 12:32:18 Telcontar kernel - - - [212887.432284] Suspending console(s) (use no_console_suspend to debug) <0.6> 2014-06-29 12:32:18 Telcontar kernel - - - [212887.433051] serial 00:05: disabled <0.6> 2014-06-29 12:32:18 Telcontar kernel - - - [212887.633138] PM: freeze of devices complete after 200.734 msecs <0.6> 2014-06-29 12:32:18 Telcontar kernel - - - [212887.633370] PM: late freeze of devices complete after 0.230 msecs <0.6> 2014-06-29 12:32:18 Telcontar kernel - - - [212887.633913] PM: noirq freeze of devices complete after 0.541 msecs <0.4> 2014-06-29 12:32:18 Telcontar kernel - - - [212887.633913] Disabling non-boot CPUs ... <0.6> 2014-06-29 12:32:18 Telcontar kernel - - - [212887.635222] smpboot: CPU 1 is now offline <0.6> 2014-06-29 12:32:18 Telcontar kernel - - - [212887.637153] smpboot: CPU 2 is now offline <0.6> 2014-06-29 12:32:18 Telcontar kernel - - - [212887.639195] smpboot: CPU 3 is now offline <0.6> 2014-06-29 12:32:18 Telcontar kernel - - - [212887.639658] PM: Creating hibernation image: <0.6> 2014-06-29 12:32:18 Telcontar kernel - - - [212887.640186] PM: Need to copy 923219 pages <0.7> 2014-06-29 12:32:18 Telcontar kernel - - - [212887.640186] PM: Normal pages needed: 923219 + 1024, available pages: 1173563 <0.6> 2014-06-29 12:32:18 Telcontar kernel - - - [212887.640186] microcode: CPU0 sig=0x1067a, pf=0x10, revision=0xa0b <0.6> 2014-06-29 12:32:18 Telcontar kernel - - - [212887.640186] Enabling non-boot CPUs ... <0.6> 2014-06-29 12:32:18 Telcontar kernel - - - [212887.640186] smpboot: Booting Node 0 Processor 1 APIC 0x1 <0.6> 2014-06-29 12:32:18 Telcontar kernel - - - [212887.653119] microcode: CPU1 sig=0x1067a, pf=0x10, revision=0xa0b <0.6> 2014-06-29 12:32:18 Telcontar kernel - - - [212887.653307] CPU1 is up <0.6> 2014-06-29 12:32:18 Telcontar kernel - - - [212887.653440] smpboot: Booting Node 0 Processor 2 APIC 0x2 <0.6> 2014-06-29 12:32:18 Telcontar kernel - - - [212887.666704] microcode: CPU2 sig=0x1067a, pf=0x10, revision=0xa0b <0.6> 2014-06-29 12:32:18 Telcontar kernel - - - [212887.666844] CPU2 is up <0.6> 2014-06-29 12:32:18 Telcontar kernel - - - [212887.667011] smpboot: Booting Node 0 Processor 3 APIC 0x3 <0.6> 2014-06-29 12:32:18 Telcontar kernel - - - [212887.680398] microcode: CPU3 sig=0x1067a, pf=0x10, revision=0xa0b <0.6> 2014-06-29 12:32:18 Telcontar kernel - - - [212887.680598] CPU3 is up <0.6> 2014-06-29 12:32:18 Telcontar kernel - - - [212887.708225] PM: noirq restore of devices complete after 22.576 msecs <0.6> 2014-06-29 12:32:18 Telcontar kernel - - - [212887.708358] PM: early restore of devices complete after 0.109 msecs <0.7> 2014-06-29 12:32:18 Telcontar kernel - - - [212887.880083] uhci_hcd 0000:00:1a.0: setting latency timer to 64 <0.7> 2014-06-29 12:32:18 Telcontar kernel - - - [212887.880086] uhci_hcd 0000:00:1a.1: setting latency timer to 64 <0.4> 2014-06-29 12:32:18 Telcontar kernel - - - [212887.880107] usb usb3: root hub lost power or was reset <0.4> 2014-06-29 12:32:18 Telcontar kernel - - - [212887.880110] usb usb4: root hub lost power or was reset <0.7> 2014-06-29 12:32:18 Telcontar kernel - - - [212887.880120] uhci_hcd 0000:00:1a.2: setting latency timer to 64 <0.7> 2014-06-29 12:32:18 Telcontar kernel - - - [212887.880124] ehci-pci 0000:00:1a.7: setting latency timer to 64 <0.4> 2014-06-29 12:32:18 Telcontar kernel - - - [212887.880139] usb usb5: root hub lost power or was reset <0.4> 2014-06-29 12:32:18 Telcontar kernel - - - [212887.880188] usb usb1: root hub lost power or was reset <0.7> 2014-06-29 12:32:18 Telcontar kernel - - - [212887.880243] uhci_hcd 0000:00:1d.0: setting latency timer to 64 <0.4> 2014-06-29 12:32:18 Telcontar kernel - - - [212887.880265] usb usb6: root hub lost power or was reset <0.7> 2014-06-29 12:32:18 Telcontar kernel - - - [212887.880275] uhci_hcd 0000:00:1d.1: setting latency timer to 64 <0.4> 2014-06-29 12:32:18 Telcontar kernel - - - [212887.880296] usb usb7: root hub lost power or was reset <0.7> 2014-06-29 12:32:18 Telcontar kernel - - - [212887.880306] uhci_hcd 0000:00:1d.2: setting latency timer to 64 <0.4> 2014-06-29 12:32:18 Telcontar kernel - - - [212887.880326] usb usb8: root hub lost power or was reset <0.7> 2014-06-29 12:32:18 Telcontar kernel - - - [212887.880338] ehci-pci 0000:00:1d.7: setting latency timer to 64 <0.4> 2014-06-29 12:32:18 Telcontar kernel - - - [212887.880349] usb usb2: root hub lost power or was reset <0.7> 2014-06-29 12:32:18 Telcontar kernel - - - [212887.881094] pci 0000:00:1e.0: setting latency timer to 64 <0.7> 2014-06-29 12:32:18 Telcontar kernel - - - [212887.881199] ata_piix 0000:00:1f.2: setting latency timer to 64 <0.7> 2014-06-29 12:32:18 Telcontar kernel - - - [212887.881237] ata_piix 0000:00:1f.5: setting latency timer to 64 <0.7> 2014-06-29 12:32:18 Telcontar kernel - - - [212887.884086] ehci-pci 0000:00:1a.7: cache line size of 32 is not supported <0.7> 2014-06-29 12:32:18 Telcontar kernel - - - [212887.884236] ehci-pci 0000:00:1d.7: cache line size of 32 is not supported <0.3> 2014-06-29 12:32:18 Telcontar kernel - - - [212887.981023] pciehp 0000:00:1c.0:pcie04: Device 0000:02:00.0 already exists at 0000:02:00, cannot hot-add <0.3> 2014-06-29 12:32:18 Telcontar kernel - - - [212887.981025] pciehp 0000:00:1c.2:pcie04: Device 0000:04:00.0 already exists at 0000:04:00, cannot hot-add <0.3> 2014-06-29 12:32:18 Telcontar kernel - - - [212887.981026] pciehp 0000:00:1c.0:pcie04: Cannot add device at 0000:02:00 <0.3> 2014-06-29 12:32:18 Telcontar kernel - - - [212887.981028] pciehp 0000:00:1c.2:pcie04: Cannot add device at 0000:04:00 <0.3> 2014-06-29 12:32:18 Telcontar kernel - - - [212887.981032] pciehp 0000:00:1c.5:pcie04: Device 0000:07:00.0 already exists at 0000:07:00, cannot hot-add <0.3> 2014-06-29 12:32:18 Telcontar kernel - - - [212887.981034] pciehp 0000:00:1c.5:pcie04: Cannot add device at 0000:07:00 <0.3> 2014-06-29 12:32:18 Telcontar kernel - - - [212887.981058] pciehp 0000:00:1c.3:pcie04: Device 0000:05:00.0 already exists at 0000:05:00, cannot hot-add <0.3> 2014-06-29 12:32:18 Telcontar kernel - - - [212887.981059] pciehp 0000:00:1c.3:pcie04: Cannot add device at 0000:05:00 <0.3> 2014-06-29 12:32:18 Telcontar kernel - - - [212887.981089] pciehp 0000:00:1c.4:pcie04: Device 0000:06:00.0 already exists at 0000:06:00, cannot hot-add <0.3> 2014-06-29 12:32:18 Telcontar kernel - - - [212887.981090] pciehp 0000:00:1c.4:pcie04: Cannot add device at 0000:06:00 <0.7> 2014-06-29 12:32:18 Telcontar kernel - - - [212887.981220] pata_jmicron 0000:04:00.1: setting latency timer to 64 <0.6> 2014-06-29 12:32:18 Telcontar kernel - - - [212887.982188] serial 00:05: activated <0.7> 2014-06-29 12:32:18 Telcontar kernel - - - [212887.982714] pata_jmicron 0000:05:00.1: setting latency timer to 64 <0.6> 2014-06-29 12:32:18 Telcontar kernel - - - [212888.186275] r8169 0000:06:00.0 eth0: link down <0.6> 2014-06-29 12:32:18 Telcontar kernel - - - [212888.192270] r8169 0000:07:00.0 eth1: link down <0.6> 2014-06-29 12:32:18 Telcontar kernel - - - [212888.206012] ata11: SATA link down (SStatus 0 SControl 300) <0.6> 2014-06-29 12:32:18 Telcontar kernel - - - [212888.286032] ata1: SATA link down (SStatus 0 SControl 300) <0.6> 2014-06-29 12:32:18 Telcontar kernel - - - [212888.287030] ata4: SATA link down (SStatus 0 SControl 300) <0.6> 2014-06-29 12:32:18 Telcontar kernel - - - [212888.357035] ata12: SATA link up 1.5 Gbps (SStatus 113 SControl 300) <0.6> 2014-06-29 12:32:18 Telcontar kernel - - - [212888.360116] ata12.00: ACPI cmd ef/03:45:00:00:00:a0 (SET FEATURES) filtered out <0.6> 2014-06-29 12:32:18 Telcontar kernel - - - [212888.360118] ata12.00: ACPI cmd ef/03:0c:00:00:00:a0 (SET FEATURES) filtered out <0.6> 2014-06-29 12:32:18 Telcontar kernel - - - [212888.360119] ata12.00: ACPI cmd f5/00:00:00:00:00:00 (SECURITY FREEZE LOCK) filtered out <0.6> 2014-06-29 12:32:18 Telcontar kernel - - - [212888.366112] ata12.00: configured for UDMA/100 <0.6> 2014-06-29 12:32:18 Telcontar kernel - - - [212888.440022] ata3: SATA link up 3.0 Gbps (SStatus 123 SControl 300) <0.5> 2014-06-29 12:32:18 Telcontar kernel - - - [212888.440024] firewire_core 0000:08:02.0: rediscovered device fw0 <0.6> 2014-06-29 12:32:18 Telcontar kernel - - - [212888.442190] ata3.00: configured for UDMA/133 <0.5> 2014-06-29 12:32:18 Telcontar kernel - - - [212888.442223] sd 2:0:0:0: [sdb] Starting disk <0.6> 2014-06-29 12:32:18 Telcontar kernel - - - [212888.450017] usb 8-2: reset low-speed USB device number 2 using uhci_hcd <0.6> 2014-06-29 12:32:18 Telcontar kernel - - - [212888.659048] ata9.00: SATA link up 3.0 Gbps (SStatus 123 SControl 300) <0.6> 2014-06-29 12:32:18 Telcontar kernel - - - [212888.659058] ata9.01: SATA link up 3.0 Gbps (SStatus 123 SControl 300) <0.6> 2014-06-29 12:32:18 Telcontar kernel - - - [212888.661048] ata10.00: SATA link up 3.0 Gbps (SStatus 123 SControl 300) <0.6> 2014-06-29 12:32:18 Telcontar kernel - - - [212888.661058] ata10.01: SATA link up 3.0 Gbps (SStatus 123 SControl 300) <0.6> 2014-06-29 12:32:18 Telcontar kernel - - - [212888.662114] ata9.01: ACPI cmd ef/03:45:00:00:00:b0 (SET FEATURES) filtered out <0.6> 2014-06-29 12:32:18 Telcontar kernel - - - [212888.662115] ata9.01: ACPI cmd ef/03:0c:00:00:00:b0 (SET FEATURES) filtered out <0.7> 2014-06-29 12:32:18 Telcontar kernel - - - [212888.662293] ata9.01: ACPI cmd c6/00:10:00:00:00:b0 (SET MULTIPLE MODE) succeeded <0.6> 2014-06-29 12:32:18 Telcontar kernel - - - [212888.662295] ata9.01: ACPI cmd f5/00:00:00:00:00:00 (SECURITY FREEZE LOCK) filtered out <0.6> 2014-06-29 12:32:18 Telcontar kernel - - - [212888.664113] ata10.01: ACPI cmd ef/03:45:00:00:00:b0 (SET FEATURES) filtered out <0.6> 2014-06-29 12:32:18 Telcontar kernel - - - [212888.664114] ata10.01: ACPI cmd ef/03:0c:00:00:00:b0 (SET FEATURES) filtered out <0.7> 2014-06-29 12:32:18 Telcontar kernel - - - [212888.664326] ata10.01: ACPI cmd c6/00:10:00:00:00:b0 (SET MULTIPLE MODE) succeeded <0.6> 2014-06-29 12:32:18 Telcontar kernel - - - [212888.664327] ata10.01: ACPI cmd f5/00:00:00:00:00:00 (SECURITY FREEZE LOCK) filtered out <0.6> 2014-06-29 12:32:18 Telcontar kernel - - - [212888.668112] ata9.00: ACPI cmd ef/03:45:00:00:00:a0 (SET FEATURES) filtered out <0.6> 2014-06-29 12:32:18 Telcontar kernel - - - [212888.668113] ata9.00: ACPI cmd ef/03:0c:00:00:00:a0 (SET FEATURES) filtered out <0.7> 2014-06-29 12:32:18 Telcontar kernel - - - [212888.668293] ata9.00: ACPI cmd c6/00:10:00:00:00:a0 (SET MULTIPLE MODE) succeeded <0.6> 2014-06-29 12:32:18 Telcontar kernel - - - [212888.668294] ata9.00: ACPI cmd f5/00:00:00:00:00:00 (SECURITY FREEZE LOCK) filtered out <0.6> 2014-06-29 12:32:18 Telcontar kernel - - - [212888.670113] ata10.00: ACPI cmd ef/03:45:00:00:00:a0 (SET FEATURES) filtered out <0.6> 2014-06-29 12:32:18 Telcontar kernel - - - [212888.670114] ata10.00: ACPI cmd ef/03:0c:00:00:00:a0 (SET FEATURES) filtered out <0.7> 2014-06-29 12:32:18 Telcontar kernel - - - [212888.670323] ata10.00: ACPI cmd c6/00:10:00:00:00:a0 (SET MULTIPLE MODE) succeeded <0.6> 2014-06-29 12:32:18 Telcontar kernel - - - [212888.670324] ata10.00: ACPI cmd f5/00:00:00:00:00:00 (SECURITY FREEZE LOCK) filtered out <0.6> 2014-06-29 12:32:18 Telcontar kernel - - - [212888.677300] ata9.00: configured for UDMA/133 <0.6> 2014-06-29 12:32:18 Telcontar kernel - - - [212888.683286] ata9.01: configured for UDMA/133 <0.5> 2014-06-29 12:32:18 Telcontar kernel - - - [212888.683311] sd 8:0:0:0: [sdc] Starting disk <0.5> 2014-06-29 12:32:18 Telcontar kernel - - - [212888.683369] sd 8:0:1:0: [sdd] Starting disk <0.6> 2014-06-29 12:32:18 Telcontar kernel - - - [212888.698321] ata10.00: configured for UDMA/133 <0.6> 2014-06-29 12:32:18 Telcontar kernel - - - [212888.704335] ata10.01: configured for UDMA/133 <0.5> 2014-06-29 12:32:18 Telcontar kernel - - - [212888.704361] sd 9:0:0:0: [sde] Starting disk <0.5> 2014-06-29 12:32:18 Telcontar kernel - - - [212888.704418] sd 9:0:1:0: [sdf] Starting disk <0.6> 2014-06-29 12:32:18 Telcontar kernel - - - [212888.829028] usb 2-5: reset high-speed USB device number 2 using ehci-pci <0.6> 2014-06-29 12:32:18 Telcontar kernel - - - [212888.901026] ata2: SATA link up 3.0 Gbps (SStatus 123 SControl 300) <0.6> 2014-06-29 12:32:18 Telcontar kernel - - - [212888.903237] ata2.00: configured for UDMA/133 <0.5> 2014-06-29 12:32:18 Telcontar kernel - - - [212888.903279] sd 1:0:0:0: [sda] Starting disk <0.6> 2014-06-29 12:32:18 Telcontar kernel - - - [212889.045020] usb 1-2: reset high-speed USB device number 3 using ehci-pci <0.6> 2014-06-29 12:32:18 Telcontar kernel - - - [212889.411014] usb 3-1: reset low-speed USB device number 2 using uhci_hcd <0.6> 2014-06-29 12:32:18 Telcontar kernel - - - [212889.778047] usb 2-5.4: reset high-speed USB device number 4 using ehci-pci <0.6> 2014-06-29 12:32:18 Telcontar kernel - - - [212890.186436] r8169 0000:06:00.0 eth0: link up <0.6> 2014-06-29 12:32:18 Telcontar kernel - - - [212890.615073] PM: restore of devices complete after 2735.034 msecs <0.1> 2014-06-29 12:32:18 Telcontar kernel - - - [212890.626346] XFS: Internal error XFS_WANT_CORRUPTED_GOTO at line 1602 of file /home/abuild/rpmbuild/BUILD/kernel-desktop-3.11.10/linux-3.11/fs/xfs/xfs_alloc.c. Caller 0xffffffffa0c39fe9 <0.1> 2014-06-29 12:32:18 Telcontar kernel - - - [212890.626346] <0.4> 2014-06-29 12:32:18 Telcontar kernel - - - [212890.626348] CPU: 0 PID: 28875 Comm: kworker/0:2 Tainted: P O 3.11.10-11-desktop #1 <0.4> 2014-06-29 12:32:18 Telcontar kernel - - - [212890.626348] Hardware name: MICRO-STAR INTERNATIONAL CO.,LTD MS-7516/MS-7516, BIOS V1.5 10/10/2008 <0.4> 2014-06-29 12:32:18 Telcontar kernel - - - [212890.626388] Workqueue: xfs-eofblocks/sde5 xfs_eofblocks_worker [xfs] <0.4> 2014-06-29 12:32:18 Telcontar kernel - - - [212890.626390] 0000000000000002 ffffffff815a0252 00000000002a61c2 ffffffffa0c38996 <0.4> 2014-06-29 12:32:18 Telcontar kernel - - - [212890.626391] ffff8800b7025680 ffff88022eb74180 ffff880121c3fe50 0000000000000002 <0.4> 2014-06-29 12:32:18 Telcontar kernel - - - [212890.626393] 0000000000000000 0000000100000000 0000000000000000 0000000000000001 <0.4> 2014-06-29 12:32:18 Telcontar kernel - - - [212890.626393] Call Trace: <0.4> 2014-06-29 12:32:18 Telcontar kernel - - - [212890.626403] [] dump_trace+0x88/0x310 <0.4> 2014-06-29 12:32:18 Telcontar kernel - - - [212890.626406] [] show_stack_log_lvl+0xd0/0x1d0 <0.4> 2014-06-29 12:32:18 Telcontar kernel - - - [212890.626408] [] show_stack+0x1c/0x50 <0.4> 2014-06-29 12:32:18 Telcontar kernel - - - [212890.626411] [] dump_stack+0x50/0x89 <0.4> 2014-06-29 12:32:18 Telcontar kernel - - - [212890.626425] [] xfs_free_ag_extent+0x226/0x860 [xfs] <0.4> 2014-06-29 12:32:18 Telcontar kernel - - - [212890.626468] [] xfs_free_extent+0xb9/0xf0 [xfs] <0.4> 2014-06-29 12:32:18 Telcontar kernel - - - [212890.626510] [] xfs_bmap_finish+0x11e/0x170 [xfs] <0.4> 2014-06-29 12:32:18 Telcontar kernel - - - [212890.626560] [] xfs_itruncate_extents+0x190/0x340 [xfs] <0.4> 2014-06-29 12:32:18 Telcontar kernel - - - [212890.626623] [] xfs_free_eofblocks+0x1e3/0x260 [xfs] <0.4> 2014-06-29 12:32:18 Telcontar kernel - - - [212890.626659] [] xfs_inode_free_eofblocks+0x6f/0x150 [xfs] <0.4> 2014-06-29 12:32:18 Telcontar kernel - - - [212890.626688] [] xfs_inode_ag_walk.isra.10+0x1c2/0x310 [xfs] <0.4> 2014-06-29 12:32:18 Telcontar kernel - - - [212890.626716] [] xfs_inode_ag_iterator_tag+0x6e/0xb0 [xfs] <0.4> 2014-06-29 12:32:18 Telcontar kernel - - - [212890.626744] [] xfs_eofblocks_worker+0x12/0x20 [xfs] <0.4> 2014-06-29 12:32:18 Telcontar kernel - - - [212890.626763] [] process_one_work+0x168/0x490 <0.4> 2014-06-29 12:32:18 Telcontar kernel - - - [212890.626765] [] worker_thread+0x114/0x3a0 <0.4> 2014-06-29 12:32:18 Telcontar kernel - - - [212890.626768] [] kthread+0xaf/0xc0 <0.4> 2014-06-29 12:32:18 Telcontar kernel - - - [212890.626771] [] ret_from_fork+0x7c/0xb0 <0.5> 2014-06-29 12:32:18 Telcontar kernel - - - [212890.626776] XFS (sde5): xfs_do_force_shutdown(0x8) called from line 916 of file /home/abuild/rpmbuild/BUILD/kernel-desktop-3.11.10/linux-3.11/fs/xfs/xfs_bmap.c. Return address = 0xffffffffa0c4c3d8 <0.1> 2014-06-29 12:32:18 Telcontar kernel - - - [212890.706440] XFS (sde5): Corruption of in-memory data detected. Shutting down filesystem <0.1> 2014-06-29 12:32:18 Telcontar kernel - - - [212890.706440] XFS (sde5): Please umount the filesystem and rectify the problem(s) <0.6> 2014-06-29 12:32:18 Telcontar kernel - - - [212891.026207] usb 1-6: USB disconnect, device number 4 <0.4> 2014-06-29 12:32:18 Telcontar kernel - - - [212891.025944] Restarting kernel threads ... done. <0.4> 2014-06-29 12:32:18 Telcontar kernel - - - [212891.026371] Restarting tasks ... done. <0.7> 2014-06-29 12:32:18 Telcontar kernel - - - [212891.079743] PM: Basic memory bitmaps freed <3.4> 2014-06-29 12:32:19 Telcontar rtkit-daemon 4287 - - The canary thread is apparently starving. Taking action. <3.6> 2014-06-29 12:32:20 Telcontar rtkit-daemon 4287 - - Demoting known real-time threads. <3.5> 2014-06-29 12:32:20 Telcontar rtkit-daemon 4287 - - Successfully demoted thread 4293 of process 4286 (/usr/bin/pulseaudio). <3.5> 2014-06-29 12:32:20 Telcontar rtkit-daemon 4287 - - Successfully demoted thread 4292 of process 4286 (/usr/bin/pulseaudio). <3.5> 2014-06-29 12:32:20 Telcontar rtkit-daemon 4287 - - Successfully demoted thread 4286 of process 4286 (/usr/bin/pulseaudio). <3.5> 2014-06-29 12:32:20 Telcontar rtkit-daemon 4287 - - Demoted 3 threads. <3.6> 2014-06-29 12:32:20 Telcontar systemd 1 - - Time has been changed <3.3> 2014-06-29 12:32:21 Telcontar systemd-udevd 29550 - - inotify_add_watch(7, /dev/sdg, 10) failed: No such file or directory <3.3> 2014-06-29 12:32:21 Telcontar systemd-udevd 29551 - - inotify_add_watch(7, /dev/sdh, 10) failed: No such file or directory <0.4> 2014-06-29 12:32:25 Telcontar kernel - - - [212898.656011] XFS (sde5): xfs_log_force: error 5 returned. <3.5> 2014-06-29 12:32:26 Telcontar dbus 1033 - - [system] Activating service name='org.freedesktop.PackageKit' (using servicehelper) <3.4> 2014-06-29 12:32:27 Telcontar pm-utils - - - Thawing (95)... <3.5> 2014-06-29 12:32:29 Telcontar dbus 1033 - - [system] Activated service 'org.freedesktop.PackageKit' failed: Cannot launch daemon, file not found or permissions invalid <1.5> 2014-06-29 12:32:30 Telcontar network 29606 - - redirecting to "systemctl restart network.service" <3.6> 2014-06-29 12:32:30 Telcontar systemd 1 - - Stopping ifup managed network interface eth1... <3.6> 2014-06-29 12:32:30 Telcontar systemd 1 - - Stopping ifup managed network interface eth0... <3.6> 2014-06-29 12:32:30 Telcontar systemd 1 - - Stopping LSB: Configure network interfaces and set up routing... <3.6> 2014-06-29 12:32:31 Telcontar systemd 1 - - Starting LSB: Configure network interfaces and set up routing... <3.6> 2014-06-29 12:32:32 Telcontar acpid - - - 1 client rule loaded <3.6> 2014-06-29 12:32:32 Telcontar ifdown 29624 - - eth1 device: Realtek Semiconductor Co., Ltd. RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller (rev 02) <3.6> 2014-06-29 12:32:32 Telcontar ifdown 29625 - - eth0 device: Realtek Semiconductor Co., Ltd. RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller (rev 02) <1.5> 2014-06-29 12:32:32 Telcontar ifdown 29624 - - eth1 device: Realtek Semiconductor Co., Ltd. RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller (rev 02) <1.5> 2014-06-29 12:32:32 Telcontar ifdown 29625 - - eth0 device: Realtek Semiconductor Co., Ltd. RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller (rev 02) <3.6> 2014-06-29 12:32:32 Telcontar network 29638 - - Setting up network interfaces: <3.6> 2014-06-29 12:32:34 Telcontar network 29638 - - lo <1.5> 2014-06-29 12:32:34 Telcontar ifup 30165 - - lo <1.5> 2014-06-29 12:32:34 Telcontar ifup 30165 - - lo <1.5> 2014-06-29 12:32:34 Telcontar ifup 30165 - - IP address: 127.0.0.1/8 <3.6> 2014-06-29 12:32:34 Telcontar network 29638 - - lo IP address: 127.0.0.1/8 <1.5> 2014-06-29 12:32:34 Telcontar ifup 30165 - - <0.6> 2014-06-29 12:32:49 Telcontar kernel - - - [212922.866033] Chrome_ChildThr[14100]: segfault at 0 ip 00007fd3d820d596 sp 00007fd3cbc5c410 error 6 in libmozalloc.so[7fd3d820c000+2000] <16.3> 2014-06-29 12:32:49 Telcontar dhcpcd 30417 - - eth1: dhcpcd not running <16.6> 2014-06-29 12:32:49 Telcontar dhcpcd 30417 - - eth1: exiting <3.6> 2014-06-29 12:32:49 Telcontar avahi-daemon 1020 - - Interface eth0.IPv6 no longer relevant for mDNS. <3.6> 2014-06-29 12:32:49 Telcontar avahi-daemon 1020 - - Leaving mDNS multicast group on interface eth0.IPv6 with address fc00::14. <3.6> 2014-06-29 12:32:49 Telcontar avahi-daemon 1020 - - Interface eth0.IPv4 no longer relevant for mDNS. <3.6> 2014-06-29 12:32:49 Telcontar avahi-daemon 1020 - - Leaving mDNS multicast group on interface eth0.IPv4 with address 192.168.1.14. <3.6> 2014-06-29 12:32:49 Telcontar avahi-daemon 1020 - - Withdrawing address record for fc00::14 on eth0. <3.6> 2014-06-29 12:32:49 Telcontar avahi-daemon 1020 - - Withdrawing address record for 192.168.1.14 on eth0. <3.5> 2014-06-29 12:32:49 Telcontar systemd 1 - - Unit network@eth0.service entered failed state. <3.6> 2014-06-29 12:32:49 Telcontar systemd 1 - - Starting ifup managed network interface eth0... <3.6> 2014-06-29 12:32:49 Telcontar ifup 30485 - - eth0 device: Realtek Semiconductor Co., Ltd. RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller (rev 02) <1.5> 2014-06-29 12:32:49 Telcontar ifup 30485 - - eth0 device: Realtek Semiconductor Co., Ltd. RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller (rev 02) <0.6> 2014-06-29 12:32:49 Telcontar kernel - - - [212923.549298] r8169 0000:06:00.0 eth0: link down <0.6> 2014-06-29 12:32:49 Telcontar kernel - - - [212923.549323] r8169 0000:06:00.0 eth0: link down <0.6> 2014-06-29 12:32:49 Telcontar kernel - - - [212923.549369] IPv6: ADDRCONF(NETDEV_UP): eth0: link is not ready <3.6> 2014-06-29 12:32:49 Telcontar avahi-daemon 1020 - - Joining mDNS multicast group on interface eth0.IPv4 with address 192.168.1.14. <3.6> 2014-06-29 12:32:49 Telcontar avahi-daemon 1020 - - New relevant interface eth0.IPv4 for mDNS. <3.6> 2014-06-29 12:32:49 Telcontar avahi-daemon 1020 - - Registering new address record for 192.168.1.14 on eth0.IPv4. <3.6> 2014-06-29 12:32:50 Telcontar systemd 1 - - Starting ifup managed network interface eth1... <3.6> 2014-06-29 12:32:50 Telcontar ifplugd(eth1) 30800 - - ifplugd 0.28 initializing. <3.6> 2014-06-29 12:32:50 Telcontar ifplugd(eth1) 30800 - - Using interface eth1/00:21:85:16:2D:0C with driver (version: 2.3LK-NAPI) <0.6> 2014-06-29 12:32:50 Telcontar kernel - - - [212924.375304] r8169 0000:07:00.0 eth1: link down <0.6> 2014-06-29 12:32:50 Telcontar kernel - - - [212924.375373] IPv6: ADDRCONF(NETDEV_UP): eth1: link is not ready <3.6> 2014-06-29 12:32:50 Telcontar ifplugd(eth1) 30800 - - Using detection mode: SIOCETHTOOL <3.6> 2014-06-29 12:32:50 Telcontar ifplugd(eth1) 30800 - - Initialization complete, link beat not detected. <3.6> 2014-06-29 12:32:50 Telcontar ifup 30780 - - eth1 device: Realtek Semiconductor Co., Ltd. RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller (rev 02) <3.6> 2014-06-29 12:32:50 Telcontar ifup 30780 - - eth1 is controlled by ifplugd <1.5> 2014-06-29 12:32:50 Telcontar ifup 30780 - - eth1 device: Realtek Semiconductor Co., Ltd. RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller (rev 02) <1.5> 2014-06-29 12:32:50 Telcontar ifup 30780 - - eth1 is controlled by ifplugd <3.6> 2014-06-29 12:32:50 Telcontar systemd 1 - - Started ifup managed network interface eth1. <0.6> 2014-06-29 12:32:52 Telcontar kernel - - - [212925.693147] r8169 0000:06:00.0 eth0: link up <0.6> 2014-06-29 12:32:52 Telcontar kernel - - - [212925.693155] IPv6: ADDRCONF(NETDEV_CHANGE): eth0: link becomes ready <3.6> 2014-06-29 12:32:53 Telcontar avahi-daemon 1020 - - Joining mDNS multicast group on interface eth0.IPv6 with address fe80::221:85ff:fe16:2d0b. <3.6> 2014-06-29 12:32:53 Telcontar avahi-daemon 1020 - - New relevant interface eth0.IPv6 for mDNS. <3.6> 2014-06-29 12:32:53 Telcontar avahi-daemon 1020 - - Registering new address record for fe80::221:85ff:fe16:2d0b on eth0.*. <3.6> 2014-06-29 12:32:53 Telcontar avahi-daemon 1020 - - Leaving mDNS multicast group on interface eth0.IPv6 with address fe80::221:85ff:fe16:2d0b. <3.6> 2014-06-29 12:32:53 Telcontar avahi-daemon 1020 - - Joining mDNS multicast group on interface eth0.IPv6 with address fc00::14. <3.6> 2014-06-29 12:32:53 Telcontar avahi-daemon 1020 - - Registering new address record for fc00::14 on eth0.*. <3.6> 2014-06-29 12:32:53 Telcontar avahi-daemon 1020 - - Withdrawing address record for fe80::221:85ff:fe16:2d0b on eth0. <3.6> 2014-06-29 12:32:54 Telcontar avahi-daemon 1020 - - Withdrawing workstation service for eth1. <3.6> 2014-06-29 12:32:54 Telcontar avahi-daemon 1020 - - Withdrawing address record for 192.168.1.14 on eth0. <3.6> 2014-06-29 12:32:54 Telcontar avahi-daemon 1020 - - Withdrawing workstation service for eth0. <3.6> 2014-06-29 12:32:54 Telcontar avahi-daemon 1020 - - Withdrawing workstation service for lo. <3.4> 2014-06-29 12:32:54 Telcontar avahi-daemon 1020 - - Host name conflict, retrying with Telcontar-2 <3.6> 2014-06-29 12:32:54 Telcontar avahi-daemon 1020 - - Registering new address record for fc00::14 on eth0.*. <3.6> 2014-06-29 12:32:54 Telcontar avahi-daemon 1020 - - Registering new address record for 192.168.1.14 on eth0.IPv4. <3.6> 2014-06-29 12:32:54 Telcontar avahi-daemon 1020 - - Registering HINFO record with values 'X86_64'/'LINUX'. <0.4> 2014-06-29 12:32:55 Telcontar kernel - - - [212928.736057] XFS (sde5): xfs_log_force: error 5 returned. <3.6> 2014-06-29 12:32:55 Telcontar avahi-daemon 1020 - - Server startup complete. Host name is Telcontar-2.local. Local service cookie is 580789639. <4.6> 2014-06-29 12:32:55 Telcontar SuSEfirewall2 - - - Setting up rules from /etc/sysconfig/SuSEfirewall2 ... <4.6> 2014-06-29 12:32:55 Telcontar SuSEfirewall2 - - - using default zone 'ext' for interface eth1 <4.6> 2014-06-29 12:32:55 Telcontar SuSEfirewall2 - - - Firewall customary rules loaded from /etc/sysconfig/scripts/SuSEfirewall2-custom <3.6> 2014-06-29 12:32:56 Telcontar avahi-daemon 1020 - - Service "Telcontar-2" (/etc/avahi/services/udisks.service) successfully established. <3.6> 2014-06-29 12:32:56 Telcontar avahi-daemon 1020 - - Service "Telcontar-2" (/etc/avahi/services/ssh.service) successfully established. <3.6> 2014-06-29 12:32:56 Telcontar avahi-daemon 1020 - - Service "Telcontar-2" (/etc/avahi/services/sftp-ssh.service) successfully established. <4.6> 2014-06-29 12:32:58 Telcontar SuSEfirewall2 - - - Firewall rules successfully set <3.6> 2014-06-29 12:32:58 Telcontar avahi-autoipd(eth0) 31694 - - Found user 'avahi-autoipd' (UID 495) and group 'avahi-autoipd' (GID 491). <3.6> 2014-06-29 12:32:58 Telcontar avahi-autoipd(eth0) 31694 - - Successfully called chroot(). <3.6> 2014-06-29 12:32:58 Telcontar avahi-autoipd(eth0) 31694 - - Successfully dropped root privileges. <3.6> 2014-06-29 12:32:58 Telcontar avahi-autoipd(eth0) 31694 - - Starting with address 169.254.3.89 <3.6> 2014-06-29 12:32:58 Telcontar avahi-autoipd(eth0) 31694 - - Routable address already assigned, sleeping. <3.6> 2014-06-29 12:32:58 Telcontar systemd 1 - - Started ifup managed network interface eth0. <3.6> 2014-06-29 12:32:58 Telcontar systemd 1 - - Started ifup managed network interface eth1. <3.6> 2014-06-29 12:32:58 Telcontar network 29638 - - ..done..done..done ppp0 Startmode is 'manual' -> skipping <1.5> 2014-06-29 12:32:58 Telcontar ifup 31756 - - ppp0 Startmode is 'manual' -> skipping <3.6> 2014-06-29 12:32:58 Telcontar network 29638 - - ..skippedSetting up service network . . . . . . . . . . . . ...done <3.6> 2014-06-29 12:32:58 Telcontar systemd 1 - - Started LSB: Configure network interfaces and set up routing. <3.4> 2014-06-29 12:32:58 Telcontar pm-utils - - - Thawing the system now (04)... <3.6> 2014-06-29 12:33:01 Telcontar systemd 1 - - Starting Session 1605 of user news. <3.4> 2014-06-29 12:33:21 Telcontar router - - - (Thawing 04) Logging the current IP= 79.150.228.90 <0.4> 2014-06-29 12:33:25 Telcontar kernel - - - [212958.816015] XFS (sde5): xfs_log_force: error 5 returned. <0.4> 2014-06-29 12:33:55 Telcontar kernel - - - [212988.896014] XFS (sde5): xfs_log_force: error 5 returned. <0.4> 2014-06-29 12:34:25 Telcontar kernel - - - [213018.976015] XFS (sde5): xfs_log_force: error 5 returned. <0.4> 2014-06-29 12:34:55 Telcontar kernel - - - [213049.056014] XFS (sde5): xfs_log_force: error 5 returned. <3.6> 2014-06-29 12:35:01 Telcontar systemd 1 - - Starting Session 1606 of user news. <0.4> 2014-06-29 12:35:25 Telcontar kernel - - - [213079.136015] XFS (sde5): xfs_log_force: error 5 returned. <0.4> 2014-06-29 12:35:55 Telcontar kernel - - - [213109.216011] XFS (sde5): xfs_log_force: error 5 returned. <0.4> 2014-06-29 12:36:25 Telcontar kernel - - - [213139.296014] XFS (sde5): xfs_log_force: error 5 returned. <0.4> 2014-06-29 12:36:55 Telcontar kernel - - - [213169.376016] XFS (sde5): xfs_log_force: error 5 returned. <0.4> 2014-06-29 12:37:25 Telcontar kernel - - - [213199.456013] XFS (sde5): xfs_log_force: error 5 returned. <0.4> 2014-06-29 12:37:55 Telcontar kernel - - - [213229.536014] XFS (sde5): xfs_log_force: error 5 returned. <3.6> 2014-06-29 12:38:01 Telcontar systemd 1 - - Starting Session 1607 of user news. <0.4> 2014-06-29 12:38:25 Telcontar kernel - - - [213259.616018] XFS (sde5): xfs_log_force: error 5 returned. <0.4> 2014-06-29 12:38:56 Telcontar kernel - - - [213289.696014] XFS (sde5): xfs_log_force: error 5 returned. <0.4> 2014-06-29 12:39:26 Telcontar kernel - - - [213319.776019] XFS (sde5): xfs_log_force: error 5 returned. <0.4> 2014-06-29 12:39:56 Telcontar kernel - - - [213349.856014] XFS (sde5): xfs_log_force: error 5 returned. <3.6> 2014-06-29 12:40:01 Telcontar systemd 1 - - Starting Session 1608 of user cer. ... <5.6> 2014-06-29 12:48:34 Telcontar rsyslogd - - - [origin software="rsyslogd" swVersion="7.4.7" x-pid="1111" x-info="http://www.rsyslog.com"] exiting on signal 15. 2014-06-29 12:48:35+02:00 - Halting the system now =========================================== uptime: 12:48pm up 4 days 8:43, 33 users, load average: 1.40, 0.53, 0.67 2014-06-29 12:57:41+02:00 - Booting the system now ================================================================================ Linux Telcontar 3.11.10-11-desktop #1 SMP PREEMPT Mon May 12 13:37:06 UTC 2014 (3d22b5f) x86_64 x86_64 x86_64 GNU/Linux (it does not show in the log that I had to hit the hardware reset button, the machine refused to reboot normally, apparently) (If you ask why I took so long to notice the problem after thawing, my routine is to power up the machine, then go prepare tea. :-) When I come back with the mug, I'm dismayed to see I can not start working; and this day I was in a a hurry) So I reboot (text mode, level 3), umount home, run xfsrepair, mount again, do xfsdump, do simultanesouly an rsync (it is a file by file copy, in case of problems with dump), umount, use YaST in text mode to reformat the partition, mount, and then xfsrestore. It did not occur to me to make a 'dd' photo this time: I was tired and busy. Maybe next time I can take the photo with dd before doing anything else (it takes about 80 minutes), or simply do an "xfs_metadump", which should be faster. And I might not have then 500 GiB of free space to make a dd copy, anyway. Question. As this always happens on recovery from hibernation, and seeing the message "Corruption of in-memory data detected", could it be that thawing does a bad memory recovery from the swap? I thought that the procedure includes some checksum, but I don't know for sure. > This is interesting because the corruption appears to be associated with > post-eof space, which is generally transient. The worst case is that > this space is trimmed off files when they are evicted from cache, such > as during a umount. To me, that seems to correlate with a more > recent/runtime problem rather than something that might be lingering on > disk, but we don't really know for sure. Dunno. To me, there are two problems: 1) The corruption itself. 2) That xfs_repair fails to repair the filesystem. In fact, I believe it does not detect it! To me, #2 is the worst, and it is what makes me do the backup, format, restore cycle for recovery. An occassional kernel crash is somewhat acceptable :-} >> Wait! I have a "dd" copy of the entire partition (500 GB), made on March >> 16th, 5 AM, so hard data could be obtained from there. I had forgotten. I'll >> get something for you now: ... >> I could do a "xfs_metadump" on it - just tell me what options to use, and >> where can the result be uploaded to, if big. >> > > A metadump would be helpful, though that only gives us the on-disk > state. What was the state of this fs at the time the dd image was > created? I'm sorry, I'm not absolutely sure. I believe it is corrupted, but I can not vouch it. > I'm curious if something like an 'rm -rf *' on the metadump > would catch any other corruptions or if this is indeed limited to > something associated with recent (pre)allocations. Sorry, run 'rm -rf *' where??? > Run 'xfs_metadump ' to create a metadump that will > obfuscate filenames by default. It should also be compressible. In the > future, it's probably worth grabbing a metadump as a first step (before > repair, zeroing the log, etc.) so we can look at the fs in the state > most recent to the crash. I will take that photo next time, using a rescue system in order to impede the system from mounting the partition and replaying the log. Dunno how long that will take to happen, though... usually a month - but at least now I know how to do it. Meanwhile, I have done a xfs_metadump of the image, and compressed it with xz. It has 10834536 bytes. What do I do with it? I'm not sure I can email that, and even less to a mail list. Do you still have a bugzilla system where I can upload it? I had an account at , made on 2010. I don't know if it still runs :-? If you don't, I can try to create it a bugzilla on openSUSE instead, and tell you the number... but I don't know if it takes files that big. If it doesn't, I'll fragment the file. You need to have an account there, I think, to retrieve the attachment, and I would prefer to mark the bug private, or at least the attachment. I did the following. First I made a copy, with "dd", of the partition image, all 489G of it. On this copy I ran "xfs_check", "xfs_repair -n", and "xfs_repair", with these results: Telcontar:/data/storage_d/old_backup # xfs_check xfs_copy_home_workonit xfs_check is deprecated and scheduled for removal in June 2014. Please use xfs_repair -n instead. Telcontar:/data/storage_d/old_backup # xfs_repair -n xfs_copy_home_workonit Phase 1 - find and verify superblock... Phase 2 - using internal log - scan filesystem freespace and inode maps... - found root inode chunk Phase 3 - for each AG... - scan (but don't clear) agi unlinked lists... - process known inodes and perform inode discovery... - agno = 0 - agno = 1 - agno = 2 - agno = 3 - process newly discovered inodes... Phase 4 - check for duplicate blocks... - setting up duplicate extent list... - check for inodes claiming duplicate blocks... - agno = 0 - agno = 1 - agno = 2 - agno = 3 No modify flag set, skipping phase 5 Phase 6 - check inode connectivity... - traversing filesystem ... - traversal finished ... - moving disconnected inodes to lost+found ... Phase 7 - verify link counts... No modify flag set, skipping filesystem flush and exiting. Telcontar:/data/storage_d/old_backup # time xfs_repair xfs_copy_home_workonit Phase 1 - find and verify superblock... Phase 2 - using internal log - zero log... - scan filesystem freespace and inode maps... - found root inode chunk Phase 3 - for each AG... - scan and clear agi unlinked lists... - process known inodes and perform inode discovery... - agno = 0 - agno = 1 - agno = 2 - agno = 3 - process newly discovered inodes... Phase 4 - check for duplicate blocks... - setting up duplicate extent list... - check for inodes claiming duplicate blocks... - agno = 0 - agno = 1 - agno = 2 - agno = 3 Phase 5 - rebuild AG headers and trees... - reset superblock... Phase 6 - check inode connectivity... - resetting contents of realtime bitmap and summary inodes - traversing filesystem ... - traversal finished ... - moving disconnected inodes to lost+found ... Phase 7 - verify and correct link counts... done real 0m28.058s user 0m1.692s sys 0m2.265s Telcontar:/data/storage_d/old_backup # Maybe the image was made after repair, or maybe xfs_repair doesn't detect anything, which as far as I remember, was the case. I recreate the copy, to try "mount" on an unaltered copy. Telcontar:/data/storage_d/old_backup # time dd if=xfs_copy_home of=xfs_copy_home_workonit && mount -v xfs_copy_home_workonit mount/ 1024000000+0 records in 1024000000+0 records out 524288000000 bytes (524 GB) copied, 4662.7 s, 112 MB/s real 77m43.697s user 3m1.420s sys 28m41.958s mount: /dev/loop0 mounted on /data/storage_d/old_backup/mount. (reverse-i-search)`mount': time dd if=xfs_copy_home Telcontar:/data/storage_d/old_backup # So it mounts... - -- Cheers, Carlos E. R. (from 13.1 x86_64 "Bottle" at Telcontar) -----BEGIN PGP SIGNATURE----- Version: GnuPG v2.0.22 (GNU/Linux) iEYEARECAAYFAlO0x18ACgkQtTMYHG2NR9X6QwCcD8r5qXIHVh4ELklM/tzXASds yskAoIcwxYNC2tKsS7wE9Jp+g4MNUdpd =pIZI -----END PGP SIGNATURE----- From sandeen@redhat.com Wed Jul 2 23:54:08 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: xfs@oss.sgi.com Delivered-To: xfs@oss.sgi.com Received: from relay.sgi.com (relay2.corp.sgi.com [137.38.102.29]) by oss.sgi.com (Postfix) with ESMTP id E14657F57 for ; Wed, 2 Jul 2014 23:54:08 -0500 (CDT) Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by relay2.corp.sgi.com (Postfix) with ESMTP id EC8F9304053 for ; Wed, 2 Jul 2014 21:54:08 -0700 (PDT) X-ASG-Debug-ID: 1404363247-04cb6c76d2412a70001-NocioJ Received: from mx1.redhat.com (mx1.redhat.com [209.132.183.28]) by cuda.sgi.com with ESMTP id LWuSzqEqEtmpE5iC (version=TLSv1 cipher=AES256-SHA bits=256 verify=NO) for ; Wed, 02 Jul 2014 21:54:07 -0700 (PDT) X-Barracuda-Envelope-From: sandeen@redhat.com X-Barracuda-Apparent-Source-IP: 209.132.183.28 X-ASG-Whitelist: Client Received: from int-mx14.intmail.prod.int.phx2.redhat.com (int-mx14.intmail.prod.int.phx2.redhat.com [10.5.11.27]) by mx1.redhat.com (8.14.4/8.14.4) with ESMTP id s634s6Eh003015 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK) for ; Thu, 3 Jul 2014 00:54:07 -0400 Received: from liberator.sandeen.net (ovpn01.gateway.prod.ext.phx2.redhat.com [10.5.9.1]) by int-mx14.intmail.prod.int.phx2.redhat.com (8.14.4/8.14.4) with ESMTP id s634s5PQ026955 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES128-SHA bits=128 verify=NO) for ; Thu, 3 Jul 2014 00:54:06 -0400 Message-ID: <53B4E1EE.40702@redhat.com> Date: Wed, 02 Jul 2014 23:54:06 -0500 From: Eric Sandeen MIME-Version: 1.0 To: xfs-oss Subject: [PATCH 1/2] xfs: allow inode allocations in post-growfs disk space X-Enigmail-Version: 1.6 X-ASG-Orig-Subj: [PATCH 1/2] xfs: allow inode allocations in post-growfs disk space Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit X-Scanned-By: MIMEDefang 2.68 on 10.5.11.27 X-Barracuda-Connect: mx1.redhat.com[209.132.183.28] X-Barracuda-Start-Time: 1404363247 X-Barracuda-Encrypted: AES256-SHA X-Barracuda-URL: http://192.48.176.15:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 Today, if we perform an xfs_growfs which adds allocation groups, mp->m_maxagi is not properly updated when the growfs is complete. Therefore inodes will continue to be allocated only in the AGs which existed prior to the growfs, and the new space won't be utilized. This is because of this path in xfs_growfs_data_private(): xfs_growfs_data_private xfs_initialize_perag(mp, nagcount, &nagimax); if (mp->m_flags & XFS_MOUNT_32BITINODES) index = xfs_set_inode32(mp); else index = xfs_set_inode64(mp); if (maxagi) *maxagi = index; where xfs_set_inode* iterates over the (old) agcount in mp->m_sb.sb_agblocks, which has not yet been updated in the growfs path. So "index" will be returned based on the old agcount, not the new one, and new AGs are not available for inode allocation. Fix this by explicitly passing the proper AG count (which xfs_initialize_perag() already has) down another level, so that xfs_set_inode* can make the proper decision about acceptable AGs for inode allocation in the potentially newly-added AGs. This has been broken since 3.7, when these two xfs_set_inode* functions were added in commit 2d2194f. Prior to that, we looped over "agcount" not sb_agblocks in these calculations. Signed-off-by: Eric Sandeen --- tested for regression with the -g growfs group, but this shows that we need another testcase for growfs. diff --git a/fs/xfs/xfs_mount.c b/fs/xfs/xfs_mount.c index 993cb19..b291ada 100644 --- a/fs/xfs/xfs_mount.c +++ b/fs/xfs/xfs_mount.c @@ -250,9 +250,9 @@ xfs_initialize_perag( mp->m_flags &= ~XFS_MOUNT_32BITINODES; if (mp->m_flags & XFS_MOUNT_32BITINODES) - index = xfs_set_inode32(mp); + index = xfs_set_inode32(mp, agcount); else - index = xfs_set_inode64(mp); + index = xfs_set_inode64(mp, agcount); if (maxagi) *maxagi = index; diff --git a/fs/xfs/xfs_super.c b/fs/xfs/xfs_super.c index 87e8b01..ccc564d 100644 --- a/fs/xfs/xfs_super.c +++ b/fs/xfs/xfs_super.c @@ -597,8 +597,13 @@ xfs_max_file_offset( return (((__uint64_t)pagefactor) << bitshift) - 1; } +/* + * xfs_set_inode32() and xfs_set_inode64() are passed an agcount + * because in the growfs case, mp->m_sb.sb_agcount is not updated + * yet to the potentially higher ag count. + */ xfs_agnumber_t -xfs_set_inode32(struct xfs_mount *mp) +xfs_set_inode32(struct xfs_mount *mp, xfs_agnumber_t agcount) { xfs_agnumber_t index = 0; xfs_agnumber_t maxagi = 0; @@ -620,10 +625,10 @@ xfs_set_inode32(struct xfs_mount *mp) do_div(icount, sbp->sb_agblocks); max_metadata = icount; } else { - max_metadata = sbp->sb_agcount; + max_metadata = agcount; } - for (index = 0; index < sbp->sb_agcount; index++) { + for (index = 0; index < agcount; index++) { ino = XFS_AGINO_TO_INO(mp, index, agino); if (ino > XFS_MAXINUMBER_32) { @@ -648,11 +653,11 @@ xfs_set_inode32(struct xfs_mount *mp) } xfs_agnumber_t -xfs_set_inode64(struct xfs_mount *mp) +xfs_set_inode64(struct xfs_mount *mp, xfs_agnumber_t agcount) { xfs_agnumber_t index = 0; - for (index = 0; index < mp->m_sb.sb_agcount; index++) { + for (index = 0; index < agcount; index++) { struct xfs_perag *pag; pag = xfs_perag_get(mp, index); @@ -1193,6 +1198,7 @@ xfs_fs_remount( char *options) { struct xfs_mount *mp = XFS_M(sb); + xfs_sb_t *sbp = &mp->m_sb; substring_t args[MAX_OPT_ARGS]; char *p; int error; @@ -1212,10 +1218,10 @@ xfs_fs_remount( mp->m_flags &= ~XFS_MOUNT_BARRIER; break; case Opt_inode64: - mp->m_maxagi = xfs_set_inode64(mp); + mp->m_maxagi = xfs_set_inode64(mp, sbp->sb_agcount); break; case Opt_inode32: - mp->m_maxagi = xfs_set_inode32(mp); + mp->m_maxagi = xfs_set_inode32(mp, sbp->sb_agcount); break; default: /* diff --git a/fs/xfs/xfs_super.h b/fs/xfs/xfs_super.h index bbe3d15..b4cfe21 100644 --- a/fs/xfs/xfs_super.h +++ b/fs/xfs/xfs_super.h @@ -76,8 +76,8 @@ extern __uint64_t xfs_max_file_offset(unsigned int); extern void xfs_flush_inodes(struct xfs_mount *mp); extern void xfs_blkdev_issue_flush(struct xfs_buftarg *); -extern xfs_agnumber_t xfs_set_inode32(struct xfs_mount *); -extern xfs_agnumber_t xfs_set_inode64(struct xfs_mount *); +extern xfs_agnumber_t xfs_set_inode32(struct xfs_mount *, xfs_agnumber_t agcount); +extern xfs_agnumber_t xfs_set_inode64(struct xfs_mount *, xfs_agnumber_t agcount); extern const struct export_operations xfs_export_operations; extern const struct xattr_handler *xfs_xattr_handlers[]; From jignesh.prajapati@cmcltd.com Wed Jul 2 23:54:57 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=T_DKIM_INVALID autolearn=ham version=3.3.1 X-Original-To: xfs@oss.sgi.com Delivered-To: xfs@oss.sgi.com Received: from relay.sgi.com (relay1.corp.sgi.com [137.38.102.111]) by oss.sgi.com (Postfix) with ESMTP id BFEC57F5F for ; Wed, 2 Jul 2014 23:54:57 -0500 (CDT) Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by relay1.corp.sgi.com (Postfix) with ESMTP id A75948F8033 for ; Wed, 2 Jul 2014 21:54:54 -0700 (PDT) X-ASG-Debug-ID: 1404363288-04bdf0566678e7f0001-NocioJ Received: from mx1.securemx.in (mx1.securemx.in [121.241.247.20]) by cuda.sgi.com with ESMTP id rGXbBcYAXmPEm0XF (version=TLSv1 cipher=AES256-SHA bits=256 verify=NO) for ; Wed, 02 Jul 2014 21:54:50 -0700 (PDT) X-Barracuda-Envelope-From: jignesh.prajapati@cmcltd.com X-Barracuda-Apparent-Source-IP: 121.241.247.20 DKIM-Signature: v=1; a=rsa-sha256; d=cmc.smxemail.com; s=alpha; c=relaxed/relaxed; q=dns/txt; i=@cmc.smxemail.com; t=1404363288; h=From:Sender:Reply-To:Subject:Date:Message-ID:To:CC; bh=G/jJ6GFMOKBUCHQwpMY4Mi0UmBn2WEDKmFWV5XedbW4=; b=ADsKX6ylwWZvcHA3G6c0qRNgoioLTk/TTP1XfD9odzMA6QJHaVvXl1g1pSwPG1ds Cuxs6aPzH4zFPqgybTVyRFcGqtFkHFZ5T4uT0/151Z1WJAqVwi/25SxebThvYvej +B9eTCB/ew84KG7UPnGhp7BEugHqeE3CvGEAgAz6cGqS; Received: from zmsmtp3.cmcltd.com ([115.111.228.85]) by omr.securemx.in with ESMTP id 53B4E217-AF893E25@mta4101.omr; Thu, 03 Jul 2014 04:54:48 +0000 Received: from [192.168.79.24] (unknown [192.168.79.24]) by zmsmtp3.cmcltd.com (Postfix) with ESMTPSA id 7255B17FF09; Thu, 3 Jul 2014 10:24:42 +0530 (IST) Message-ID: <53B4E20C.60602@cmcltd.com> Date: Thu, 03 Jul 2014 10:24:36 +0530 From: Jignesh User-Agent: Mozilla/5.0 (Windows NT 6.1; rv:24.0) Gecko/20100101 Thunderbird/24.6.0 MIME-Version: 1.0 To: xfs@oss.sgi.com CC: "Gaurang.Patel@Cmcltd.Com" , "Bhavin.Joshi@Cmcltd.Com" , Ravi Subject: XFS Realtime Replication problem Content-Type: text/plain; charset=ISO-8859-1; format=flowed X-ASG-Orig-Subj: XFS Realtime Replication problem Content-Transfer-Encoding: 7bit X-Barracuda-Connect: mx1.securemx.in[121.241.247.20] X-Barracuda-Start-Time: 1404363289 X-Barracuda-Encrypted: AES256-SHA X-Barracuda-URL: http://192.48.157.11:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 X-Barracuda-Spam-Score: 0.00 X-Barracuda-Spam-Status: No, SCORE=0.00 using per-user scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.7 tests=DKIM_SIGNED, DKIM_VERIFIED, RCVD_BAD_ID X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.7196 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.00 RCVD_BAD_ID RCVD_BAD_ID -0.00 DKIM_VERIFIED Domain Keys Identified Mail: signature passes verification 0.00 DKIM_SIGNED Domain Keys Identified Mail: message has a signature Dear, We have SGI IS3500 Storage server and we have installed RHEL 6.2 with XVM and XFS. We have installed CA ARCserve Replication host based realtime replication software for Realtime byte level replications to other server in network for DR. Now we are facing one problem that at the time of Realtime replication if we update any file on Master (Source) server, file size becomes 0 byte in master server the same file content becomes garbage and slave side also file size becomes 0 size. Please help, we are struggling from last one month. With warm Regards, Jignesh Prajapati Sr. IT Manager-CS CMC Limited (A TATA Enterprise) 6th Floor, Premier House-1, Bodakdev, S G Highway, Ahmedabad-380054 Direct Line: +91 79 66090924 | Email: jignesh.prajapati@cmcltd.com www.cmcltd.com ---------------------------------------------------------------------------------------------------------- System Engineering | Integration | Solution & Sales ---------------------------------------------------------------------------------------------------------- ______________________________________________________________________________ DISCLAIMER The information contained in this e-mail message and/or attachments to it may contain confidential or privileged information. If you are not the intended recipient, any dissemination, use, review, distribution, printing or copying of the information contained in this e-mail message and/or attachments to it are strictly prohibited. If you have received this communication in error, please notify us by reply e-mail or directly to netsupport@cmcltd.com or telephone and immediately and permanently delete the message and any attachments. Thank you. ______________________________________________________________________________ This email has been scrubbed for your protection by SecureMX. For more information visit http://securemx.in _____________________________________________________________________________ From sandeen@sandeen.net Wed Jul 2 23:57:43 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: xfs@oss.sgi.com Delivered-To: xfs@oss.sgi.com Received: from relay.sgi.com (relay2.corp.sgi.com [137.38.102.29]) by oss.sgi.com (Postfix) with ESMTP id 8BF6D7F5E for ; Wed, 2 Jul 2014 23:57:43 -0500 (CDT) Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by relay2.corp.sgi.com (Postfix) with ESMTP id 899B4304064 for ; Wed, 2 Jul 2014 21:57:43 -0700 (PDT) X-ASG-Debug-ID: 1404363461-04cbb06536248650001-NocioJ Received: from sandeen.net (sandeen.net [63.231.237.45]) by cuda.sgi.com with ESMTP id KqwqqP4Rfk8kAdHf for ; Wed, 02 Jul 2014 21:57:41 -0700 (PDT) X-Barracuda-Envelope-From: sandeen@sandeen.net X-Barracuda-Apparent-Source-IP: 63.231.237.45 Received: from liberator.sandeen.net (liberator.sandeen.net [10.0.0.4]) (using TLSv1 with cipher DHE-RSA-AES128-SHA (128/128 bits)) (No client certificate requested) by sandeen.net (Postfix) with ESMTPSA id 1F81D63C6058; Wed, 2 Jul 2014 23:57:41 -0500 (CDT) Message-ID: <53B4E2C5.1000303@sandeen.net> Date: Wed, 02 Jul 2014 23:57:41 -0500 From: Eric Sandeen MIME-Version: 1.0 To: Eric Sandeen , xfs-oss Subject: [PATCH 2/2] xfs: tidy up xfs_set_inode32 References: <53B4E1EE.40702@redhat.com> X-ASG-Orig-Subj: [PATCH 2/2] xfs: tidy up xfs_set_inode32 In-Reply-To: <53B4E1EE.40702@redhat.com> X-Enigmail-Version: 1.6 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit X-Barracuda-Connect: sandeen.net[63.231.237.45] X-Barracuda-Start-Time: 1404363461 X-Barracuda-URL: http://192.48.176.25:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 X-Barracuda-Spam-Score: 0.00 X-Barracuda-Spam-Status: No, SCORE=0.00 using per-user scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.7 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.7196 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- xfs_set_inode32() caught my eye because it had weird spacing around the "-1's". In cleaning that up, I realized that the assignment in the declaration of "ino" is never used; it's rewritten before it gets read. Drop the ino initializer from its declaration since it's not used, and move the agino initialization into the body of the function, mostly so that we can have pretty whitespace and not exceed 80 columns. :) Signed-off-by: Eric Sandeen --- diff --git a/fs/xfs/xfs_super.c b/fs/xfs/xfs_super.c index e71c0f8..39c9315 100644 --- a/fs/xfs/xfs_super.c +++ b/fs/xfs/xfs_super.c @@ -609,8 +609,8 @@ xfs_set_inode32(struct xfs_mount *mp, xfs_agnumber_t agcount) xfs_agnumber_t maxagi = 0; xfs_sb_t *sbp = &mp->m_sb; xfs_agnumber_t max_metadata; - xfs_agino_t agino = XFS_OFFBNO_TO_AGINO(mp, sbp->sb_agblocks -1, 0); - xfs_ino_t ino = XFS_AGINO_TO_INO(mp, sbp->sb_agcount -1, agino); + xfs_agino_t agino; + xfs_ino_t ino; xfs_perag_t *pag; /* Calculate how much should be reserved for inodes to meet @@ -628,6 +628,8 @@ xfs_set_inode32(struct xfs_mount *mp, xfs_agnumber_t agcount) max_metadata = agcount; } + agino = XFS_OFFBNO_TO_AGINO(mp, sbp->sb_agblocks - 1, 0); + for (index = 0; index < agcount; index++) { ino = XFS_AGINO_TO_INO(mp, index, agino); From jignesh.prajapati@cmcltd.com Thu Jul 3 00:25:56 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=T_DKIM_INVALID autolearn=ham version=3.3.1 X-Original-To: xfs@oss.sgi.com Delivered-To: xfs@oss.sgi.com Received: from relay.sgi.com (relay2.corp.sgi.com [137.38.102.29]) by oss.sgi.com (Postfix) with ESMTP id 10EC37F61 for ; Thu, 3 Jul 2014 00:25:56 -0500 (CDT) Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by relay2.corp.sgi.com (Postfix) with ESMTP id 12E15304039 for ; Wed, 2 Jul 2014 22:25:52 -0700 (PDT) X-ASG-Debug-ID: 1404365147-04cbb06536249670001-NocioJ Received: from mx1.securemx.in (mx1.securemx.in [121.241.247.20]) by cuda.sgi.com with ESMTP id x21iVHfHqwYzOLni (version=TLSv1 cipher=AES256-SHA bits=256 verify=NO) for ; Wed, 02 Jul 2014 22:25:49 -0700 (PDT) X-Barracuda-Envelope-From: jignesh.prajapati@cmcltd.com X-Barracuda-Apparent-Source-IP: 121.241.247.20 DKIM-Signature: v=1; a=rsa-sha256; d=cmc.smxemail.com; s=alpha; c=relaxed/relaxed; q=dns/txt; i=@cmc.smxemail.com; t=1404365147; h=From:Sender:Reply-To:Subject:Date:Message-ID:To:CC; bh=nfAF00RtLh2v/WXjkwZ/NZJY7wfIJwq9Bc9golWzGH8=; b=AQEiO21hSie6LxpKmo+uBADUZpikk0UT/j10Euixjym7nmwynKhzqBEazArbtU0u ZqfHVlfnhtI7/lw/GNwP7DUH19QGgWxoGixJw3op9fwHuw6/Uep57+WhiBJuZ2os az1qdRR2Vw+zk/1ipuejUFQeJ4hS7pzNrdOF+VEp9aTq; Received: from zmsmtp3.cmcltd.com ([115.111.228.85]) by omr.securemx.in with ESMTP id 53B4E95A-EBA32E8C@mta4102.omr; Thu, 03 Jul 2014 05:25:47 +0000 Received: from [192.168.79.24] (unknown [192.168.79.24]) by zmsmtp3.cmcltd.com (Postfix) with ESMTPSA id B219417FF08; Thu, 3 Jul 2014 10:55:44 +0530 (IST) Message-ID: <53B4E952.7020009@cmcltd.com> Date: Thu, 03 Jul 2014 10:55:38 +0530 From: Jignesh User-Agent: Mozilla/5.0 (Windows NT 6.1; rv:24.0) Gecko/20100101 Thunderbird/24.6.0 MIME-Version: 1.0 To: xfs@oss.sgi.com CC: "Gaurang.Patel@Cmcltd.Com" , "Bhavin.Joshi@Cmcltd.Com" , Ravi Subject: Re: XFS Realtime Replication problem References: <53B4E20C.60602@cmcltd.com> X-ASG-Orig-Subj: Re: XFS Realtime Replication problem In-Reply-To: <53B4E20C.60602@cmcltd.com> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit X-Barracuda-Connect: mx1.securemx.in[121.241.247.20] X-Barracuda-Start-Time: 1404365149 X-Barracuda-Encrypted: AES256-SHA X-Barracuda-URL: http://192.48.176.25:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 X-Barracuda-Spam-Score: 0.00 X-Barracuda-Spam-Status: No, SCORE=0.00 using per-user scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.7 tests=DKIM_SIGNED, DKIM_VERIFIED, RCVD_BAD_ID X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.7197 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.00 RCVD_BAD_ID RCVD_BAD_ID -0.00 DKIM_VERIFIED Domain Keys Identified Mail: signature passes verification 0.00 DKIM_SIGNED Domain Keys Identified Mail: message has a signature One thing I want to update that the same Realtime Replication works fine with ext4 Filesystem. Regards, Jignesh P. On 03-07-2014 10:24, Jignesh wrote: > Dear, > > We have SGI IS3500 Storage server and we have installed RHEL 6.2 with > XVM and XFS. We have installed CA ARCserve Replication host based > realtime replication software for Realtime byte level replications to > other server in network for DR. > > Now we are facing one problem that at the time of Realtime replication > if we update any file on Master (Source) server, file size becomes 0 > byte in master server the same file content becomes garbage and slave > side also file size becomes 0 size. > > Please help, we are struggling from last one month. > > With warm Regards, > > > Jignesh Prajapati > Sr. IT Manager-CS > CMC Limited > (A TATA Enterprise) > 6th Floor, Premier House-1, Bodakdev, S G Highway, Ahmedabad-380054 > Direct Line: +91 79 66090924 | Email: jignesh.prajapati@cmcltd.com > www.cmcltd.com > ---------------------------------------------------------------------------------------------------------- > > System Engineering | Integration | Solution & Sales > ---------------------------------------------------------------------------------------------------------- > > -- Jignesh Prajapati Sr. IT Manager-CS CMC Limited (A TATA Enterprise) 6th Floor, Premier House-1, Bodakdev, S G Highway, Ahmedabad-380054 Direct Line: +91 79 66090924 | Email: jignesh.prajapati@cmcltd.com www.cmcltd.com ---------------------------------------------------------------------------------------------------------- System Engineering | Integration | Solution & Sales ---------------------------------------------------------------------------------------------------------- ______________________________________________________________________________ DISCLAIMER The information contained in this e-mail message and/or attachments to it may contain confidential or privileged information. If you are not the intended recipient, any dissemination, use, review, distribution, printing or copying of the information contained in this e-mail message and/or attachments to it are strictly prohibited. If you have received this communication in error, please notify us by reply e-mail or directly to netsupport@cmcltd.com or telephone and immediately and permanently delete the message and any attachments. Thank you. ______________________________________________________________________________ This email has been scrubbed for your protection by SecureMX. For more information visit http://securemx.in _____________________________________________________________________________ From david@fromorbit.com Thu Jul 3 01:15:37 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: xfs@oss.sgi.com Delivered-To: xfs@oss.sgi.com Received: from relay.sgi.com (relay1.corp.sgi.com [137.38.102.111]) by oss.sgi.com (Postfix) with ESMTP id 32EBA7F57 for ; Thu, 3 Jul 2014 01:15:37 -0500 (CDT) Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by relay1.corp.sgi.com (Postfix) with ESMTP id 2D6838F8039 for ; Wed, 2 Jul 2014 23:15:33 -0700 (PDT) X-ASG-Debug-ID: 1404368128-04cbb0653824b6b0001-NocioJ Received: from ipmail04.adl6.internode.on.net (ipmail04.adl6.internode.on.net [150.101.137.141]) by cuda.sgi.com with ESMTP id USmBWZH8IeAA8dSz for ; Wed, 02 Jul 2014 23:15:28 -0700 (PDT) X-Barracuda-Envelope-From: david@fromorbit.com X-Barracuda-Apparent-Source-IP: 150.101.137.141 X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: Ao5cAH30tFN5LHZ8PGdsb2JhbABagw2DSoUIpB0BAgEBAQaaVQGBBxcEAQEBATg1g38EAQEFOhwjEAgDGAklDwUlAwcaE4VJghNlx0gXGIVYiFARAQdJB4MtgRYBBJpsl2ArgTIIFw Received: from ppp121-44-118-124.lns20.syd6.internode.on.net (HELO dastard) ([121.44.118.124]) by ipmail04.adl6.internode.on.net with ESMTP; 03 Jul 2014 15:45:27 +0930 Received: from dave by dastard with local (Exim 4.80) (envelope-from ) id 1X2aIo-0004Qv-09; Thu, 03 Jul 2014 16:15:26 +1000 Date: Thu, 3 Jul 2014 16:15:25 +1000 From: Dave Chinner To: Jignesh Cc: xfs@oss.sgi.com, "Bhavin.Joshi@Cmcltd.Com" , "Gaurang.Patel@Cmcltd.Com" , Ravi Subject: Re: XFS Realtime Replication problem Message-ID: <20140703061525.GF9508@dastard> X-ASG-Orig-Subj: Re: XFS Realtime Replication problem References: <53B4E20C.60602@cmcltd.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <53B4E20C.60602@cmcltd.com> User-Agent: Mutt/1.5.21 (2010-09-15) X-Barracuda-Connect: ipmail04.adl6.internode.on.net[150.101.137.141] X-Barracuda-Start-Time: 1404368128 X-Barracuda-URL: http://192.48.176.25:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 X-Barracuda-Spam-Score: 0.00 X-Barracuda-Spam-Status: No, SCORE=0.00 using per-user scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.7 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.7197 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- On Thu, Jul 03, 2014 at 10:24:36AM +0530, Jignesh wrote: > Dear, > > We have SGI IS3500 Storage server and we have installed RHEL 6.2 > with XVM and XFS. We have installed CA ARCserve Replication host > based realtime replication software for Realtime byte level > replications to other server in network for DR. SGI storage product, SGI proprietary kernel modules - you probably should be sending email to your SGI support contact, not to the public upstream XFS development list.... Cheers, Dave. -- Dave Chinner david@fromorbit.com From jignesh.prajapati@cmcltd.com Thu Jul 3 01:27:19 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=T_DKIM_INVALID autolearn=ham version=3.3.1 X-Original-To: xfs@oss.sgi.com Delivered-To: xfs@oss.sgi.com Received: from relay.sgi.com (relay3.corp.sgi.com [198.149.34.15]) by oss.sgi.com (Postfix) with ESMTP id AA3BD7F57 for ; Thu, 3 Jul 2014 01:27:19 -0500 (CDT) Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by relay3.corp.sgi.com (Postfix) with ESMTP id 24A05AC001 for ; Wed, 2 Jul 2014 23:27:18 -0700 (PDT) X-ASG-Debug-ID: 1404368834-04cb6c76d0416270001-NocioJ Received: from mx1.securemx.in (mx1.securemx.in [121.241.247.20]) by cuda.sgi.com with ESMTP id N5m1EYU8znjA1z5k (version=TLSv1 cipher=AES256-SHA bits=256 verify=NO) for ; Wed, 02 Jul 2014 23:27:15 -0700 (PDT) X-Barracuda-Envelope-From: jignesh.prajapati@cmcltd.com X-Barracuda-Apparent-Source-IP: 121.241.247.20 DKIM-Signature: v=1; a=rsa-sha256; d=cmc.smxemail.com; s=alpha; c=relaxed/relaxed; q=dns/txt; i=@cmc.smxemail.com; t=1404368833; h=From:Sender:Reply-To:Subject:Date:Message-ID:To:CC; bh=eNd99rGcGLocfxgwieJDvT9dBPdKSzba7YCUAGTLo1s=; b=ASZTSk3n6ve0AlcM8LGWwIiFRdCENtuBkoHB6/ESpSinB+2PAo1kPoCbYB+RX5Rz aTqzoelib2P6QdgSqXR97/nZ1KQu+lvQcwa7SRP4z6yLqf5AlGbyhXaYAojWl5yY SjM7CuEfyEOrS+sQfs/+DrYbVB9l6DC+sKOSVpxqg3Ua; Received: from zmsmtp3.cmcltd.com ([115.111.228.85]) by omr.securemx.in with ESMTP id 53B4F7C1-858F163F@mta4102.omr; Thu, 03 Jul 2014 06:27:13 +0000 Received: from [192.168.79.24] (unknown [192.168.79.24]) by zmsmtp3.cmcltd.com (Postfix) with ESMTPSA id 207CD17FF08; Thu, 3 Jul 2014 11:57:09 +0530 (IST) Message-ID: <53B4F7B7.4080807@cmcltd.com> Date: Thu, 03 Jul 2014 11:57:03 +0530 From: Jignesh User-Agent: Mozilla/5.0 (Windows NT 6.1; rv:24.0) Gecko/20100101 Thunderbird/24.6.0 MIME-Version: 1.0 To: Dave Chinner , xfs@oss.sgi.com CC: "Bhavin.Joshi@Cmcltd.Com" , "Gaurang.Patel@Cmcltd.Com" , Ravi Subject: Re: XFS Realtime Replication problem References: <53B4E20C.60602@cmcltd.com> <20140703061525.GF9508@dastard> X-ASG-Orig-Subj: Re: XFS Realtime Replication problem In-Reply-To: <20140703061525.GF9508@dastard> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit X-Barracuda-Connect: mx1.securemx.in[121.241.247.20] X-Barracuda-Start-Time: 1404368835 X-Barracuda-Encrypted: AES256-SHA X-Barracuda-URL: http://192.48.176.15:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 X-Barracuda-Spam-Score: 0.00 X-Barracuda-Spam-Status: No, SCORE=0.00 using per-user scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.7 tests=DKIM_SIGNED, DKIM_VERIFIED, RCVD_BAD_ID X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.7198 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.00 RCVD_BAD_ID RCVD_BAD_ID -0.00 DKIM_VERIFIED Domain Keys Identified Mail: signature passes verification 0.00 DKIM_SIGNED Domain Keys Identified Mail: message has a signature Dear Dave, Thanks for your quick response. This is not SGI Proprietary Storage product and not using any SGI proprietary kernel module. SGI IS3500 is normal Intel Server with 36 HDDs. ( Storage Server), We have installed RHEL 6.2 on this Server and configured XVM and XFS. Regards, Jignesh P. On 03-07-2014 11:45, Dave Chinner wrote: > On Thu, Jul 03, 2014 at 10:24:36AM +0530, Jignesh wrote: >> Dear, >> >> We have SGI IS3500 Storage server and we have installed RHEL 6.2 >> with XVM and XFS. We have installed CA ARCserve Replication host >> based realtime replication software for Realtime byte level >> replications to other server in network for DR. > SGI storage product, SGI proprietary kernel modules - you probably > should be sending email to your SGI support contact, not to the > public upstream XFS development list.... > > Cheers, > > Dave. -- Jignesh Prajapati Sr. IT Manager-CS CMC Limited (A TATA Enterprise) 6th Floor, Premier House-1, Bodakdev, S G Highway, Ahmedabad-380054 Direct Line: +91 79 66090924 | Email: jignesh.prajapati@cmcltd.com www.cmcltd.com ---------------------------------------------------------------------------------------------------------- System Engineering | Integration | Solution & Sales ---------------------------------------------------------------------------------------------------------- ______________________________________________________________________________ DISCLAIMER The information contained in this e-mail message and/or attachments to it may contain confidential or privileged information. If you are not the intended recipient, any dissemination, use, review, distribution, printing or copying of the information contained in this e-mail message and/or attachments to it are strictly prohibited. If you have received this communication in error, please notify us by reply e-mail or directly to netsupport@cmcltd.com or telephone and immediately and permanently delete the message and any attachments. Thank you. ______________________________________________________________________________ This email has been scrubbed for your protection by SecureMX. For more information visit http://securemx.in _____________________________________________________________________________ From david@fromorbit.com Thu Jul 3 04:03:27 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: xfs@oss.sgi.com Delivered-To: xfs@oss.sgi.com Received: from relay.sgi.com (relay3.corp.sgi.com [198.149.34.15]) by oss.sgi.com (Postfix) with ESMTP id 865097F54 for ; Thu, 3 Jul 2014 04:03:27 -0500 (CDT) Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by relay3.corp.sgi.com (Postfix) with ESMTP id 14126AC001 for ; Thu, 3 Jul 2014 02:03:23 -0700 (PDT) X-ASG-Debug-ID: 1404378199-04cb6c76d241a800001-NocioJ Received: from ipmail04.adl6.internode.on.net (ipmail04.adl6.internode.on.net [150.101.137.141]) by cuda.sgi.com with ESMTP id dfSOB1dWB1AMIGM6 for ; Thu, 03 Jul 2014 02:03:20 -0700 (PDT) X-Barracuda-Envelope-From: david@fromorbit.com X-Barracuda-Apparent-Source-IP: 150.101.137.141 X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: Av9rACcbtVN5LHZ8PGdsb2JhbABagw1SgniLDZ4FDAECAQEBBpoCUwGBCRcEAQEBATg1hAMBAQU6HCMQCAMYCSUPBSUDBxoTiEEOyB8YhViHJ4FCSQeEQwWabJdgKy+BAw Received: from ppp121-44-118-124.lns20.syd6.internode.on.net (HELO dastard) ([121.44.118.124]) by ipmail04.adl6.internode.on.net with ESMTP; 03 Jul 2014 18:32:55 +0930 Received: from dave by dastard with local (Exim 4.80) (envelope-from ) id 1X2cus-0004pW-29; Thu, 03 Jul 2014 19:02:54 +1000 Date: Thu, 3 Jul 2014 19:02:54 +1000 From: Dave Chinner To: Jignesh Cc: xfs@oss.sgi.com, "Bhavin.Joshi@Cmcltd.Com" , "Gaurang.Patel@Cmcltd.Com" , Ravi Subject: Re: XFS Realtime Replication problem Message-ID: <20140703090253.GT4453@dastard> X-ASG-Orig-Subj: Re: XFS Realtime Replication problem References: <53B4E20C.60602@cmcltd.com> <20140703061525.GF9508@dastard> <53B4F7B7.4080807@cmcltd.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <53B4F7B7.4080807@cmcltd.com> User-Agent: Mutt/1.5.21 (2010-09-15) X-Barracuda-Connect: ipmail04.adl6.internode.on.net[150.101.137.141] X-Barracuda-Start-Time: 1404378200 X-Barracuda-URL: http://192.48.176.15:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 X-Barracuda-Spam-Score: 0.00 X-Barracuda-Spam-Status: No, SCORE=0.00 using per-user scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.7 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.7199 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- On Thu, Jul 03, 2014 at 11:57:03AM +0530, Jignesh wrote: > Dear Dave, > > Thanks for your quick response. > > This is not SGI Proprietary Storage product and not using any SGI > proprietary kernel module. SGI IS3500 is normal Intel Server with 36 > HDDs. ( Storage Server), We have installed RHEL 6.2 on this Server > and configured XVM and XFS. XVM is SGI proprietary software: http://www.sgi.com/products/storage/software/xvm.html As it is, if you are using RHEL, you should talk to your Red Hat support contact. They'll be able to tell you if it's a known problem w/ XFS on RHEL and which version of RHEL 6.x it is fixed in. Cheers, Dave. -- Dave Chinner david@fromorbit.com From jignesh.prajapati@cmcltd.com Thu Jul 3 04:21:47 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=T_DKIM_INVALID autolearn=ham version=3.3.1 X-Original-To: xfs@oss.sgi.com Delivered-To: xfs@oss.sgi.com Received: from relay.sgi.com (relay3.corp.sgi.com [198.149.34.15]) by oss.sgi.com (Postfix) with ESMTP id E5AA77F54 for ; Thu, 3 Jul 2014 04:21:46 -0500 (CDT) Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by relay3.corp.sgi.com (Postfix) with ESMTP id 6192AAC004 for ; Thu, 3 Jul 2014 02:21:45 -0700 (PDT) X-ASG-Debug-ID: 1404379300-04cb6c76d241b000001-NocioJ Received: from mx1.securemx.in (mx1.securemx.in [121.241.247.20]) by cuda.sgi.com with ESMTP id 1imjuTzlk1sEmCC0 (version=TLSv1 cipher=AES256-SHA bits=256 verify=NO) for ; Thu, 03 Jul 2014 02:21:42 -0700 (PDT) X-Barracuda-Envelope-From: jignesh.prajapati@cmcltd.com X-Barracuda-Apparent-Source-IP: 121.241.247.20 DKIM-Signature: v=1; a=rsa-sha256; d=cmc.smxemail.com; s=alpha; c=relaxed/relaxed; q=dns/txt; i=@cmc.smxemail.com; t=1404379299; h=From:Sender:Reply-To:Subject:Date:Message-ID:To:CC; bh=HFI8zkofc8Phd81TKZwqv3M1zybgKkjstu85eOFc76k=; b=AD4S2/nXK00dU35cPe10a6CxMAwl6NMgnwDXXKBX0CgHT+jRzHXxzo+DBTlQxHh3 a8b4kwE40v6iU83uwhaqFt8iEYYEPh41w64POugtiPpY3/s9B6UQV1NHy7KLiTTA W4z228uYf6pbWe4CQ0IkKxnwU5TSZZ5NipgC7prYNdg1; Received: from zmsmtp3.cmcltd.com ([115.111.228.85]) by omr.securemx.in with ESMTP id 53B520A3-98B022C2@mta4101.omr; Thu, 03 Jul 2014 09:21:39 +0000 Received: from [192.168.79.24] (unknown [192.168.79.24]) by zmsmtp3.cmcltd.com (Postfix) with ESMTPSA id 4D3A917FF08; Thu, 3 Jul 2014 14:51:34 +0530 (IST) Message-ID: <53B52098.2090104@cmcltd.com> Date: Thu, 03 Jul 2014 14:51:28 +0530 From: Jignesh User-Agent: Mozilla/5.0 (Windows NT 6.1; rv:24.0) Gecko/20100101 Thunderbird/24.6.0 MIME-Version: 1.0 To: Dave Chinner CC: xfs@oss.sgi.com, "Bhavin.Joshi@Cmcltd.Com" , "Gaurang.Patel@Cmcltd.Com" , Ravi Subject: Re: XFS Realtime Replication problem References: <53B4E20C.60602@cmcltd.com> <20140703061525.GF9508@dastard> <53B4F7B7.4080807@cmcltd.com> <20140703090253.GT4453@dastard> X-ASG-Orig-Subj: Re: XFS Realtime Replication problem In-Reply-To: <20140703090253.GT4453@dastard> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit X-Barracuda-Connect: mx1.securemx.in[121.241.247.20] X-Barracuda-Start-Time: 1404379301 X-Barracuda-Encrypted: AES256-SHA X-Barracuda-URL: http://192.48.176.15:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 X-Barracuda-Spam-Score: 0.00 X-Barracuda-Spam-Status: No, SCORE=0.00 using per-user scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.7 tests=DKIM_SIGNED, DKIM_VERIFIED, RCVD_BAD_ID X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.7200 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.00 RCVD_BAD_ID RCVD_BAD_ID -0.00 DKIM_VERIFIED Domain Keys Identified Mail: signature passes verification 0.00 DKIM_SIGNED Domain Keys Identified Mail: message has a signature Dear Dave, Thanks for your reply. Regards, Jignesh P. On 03-07-2014 14:32, Dave Chinner wrote: > On Thu, Jul 03, 2014 at 11:57:03AM +0530, Jignesh wrote: >> Dear Dave, >> >> Thanks for your quick response. >> >> This is not SGI Proprietary Storage product and not using any SGI >> proprietary kernel module. SGI IS3500 is normal Intel Server with 36 >> HDDs. ( Storage Server), We have installed RHEL 6.2 on this Server >> and configured XVM and XFS. > XVM is SGI proprietary software: > > http://www.sgi.com/products/storage/software/xvm.html > > As it is, if you are using RHEL, you should talk to your Red Hat > support contact. They'll be able to tell you if it's a known problem > w/ XFS on RHEL and which version of RHEL 6.x it is fixed in. > > Cheers, > > Dave. -- Jignesh Prajapati Sr. IT Manager-CS CMC Limited (A TATA Enterprise) 6th Floor, Premier House-1, Bodakdev, S G Highway, Ahmedabad-380054 Direct Line: +91 79 66090924 | Email: jignesh.prajapati@cmcltd.com www.cmcltd.com ---------------------------------------------------------------------------------------------------------- System Engineering | Integration | Solution & Sales ---------------------------------------------------------------------------------------------------------- ______________________________________________________________________________ DISCLAIMER The information contained in this e-mail message and/or attachments to it may contain confidential or privileged information. If you are not the intended recipient, any dissemination, use, review, distribution, printing or copying of the information contained in this e-mail message and/or attachments to it are strictly prohibited. If you have received this communication in error, please notify us by reply e-mail or directly to netsupport@cmcltd.com or telephone and immediately and permanently delete the message and any attachments. Thank you. ______________________________________________________________________________ This email has been scrubbed for your protection by SecureMX. For more information visit http://securemx.in _____________________________________________________________________________ From david@fromorbit.com Thu Jul 3 04:43:54 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: xfs@oss.sgi.com Delivered-To: xfs@oss.sgi.com Received: from relay.sgi.com (relay3.corp.sgi.com [198.149.34.15]) by oss.sgi.com (Postfix) with ESMTP id E17C97F54 for ; Thu, 3 Jul 2014 04:43:53 -0500 (CDT) Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by relay3.corp.sgi.com (Postfix) with ESMTP id 538DAAC001 for ; Thu, 3 Jul 2014 02:43:53 -0700 (PDT) X-ASG-Debug-ID: 1404380630-04cb6c76d241b830001-NocioJ Received: from ipmail04.adl6.internode.on.net (ipmail04.adl6.internode.on.net [150.101.137.141]) by cuda.sgi.com with ESMTP id LQw54rvo1duQrdlC for ; Thu, 03 Jul 2014 02:43:50 -0700 (PDT) X-Barracuda-Envelope-From: david@fromorbit.com X-Barracuda-Apparent-Source-IP: 150.101.137.141 X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: Ao9cAI0ktVN5LHZ8PGdsb2JhbABagw2DSoUIpBYBAgEBAQaaVQGBCRcEAQEBATg1hAMBAQQBOhwjBQsIAxgJJQ8FJQMHGhOIOgfIKBcYhViJMgeEQwWabItLikGBVCs Received: from ppp121-44-118-124.lns20.syd6.internode.on.net (HELO dastard) ([121.44.118.124]) by ipmail04.adl6.internode.on.net with ESMTP; 03 Jul 2014 19:13:48 +0930 Received: from dave by dastard with local (Exim 4.80) (envelope-from ) id 1X2dYR-0004yh-3F; Thu, 03 Jul 2014 19:43:47 +1000 Date: Thu, 3 Jul 2014 19:43:47 +1000 From: Dave Chinner To: "Carlos E. R." Cc: XFS mailing list Subject: Re: Got "Internal error XFS_WANT_CORRUPTED_GOTO". Filesystem needs reformatting to correct issue. Message-ID: <20140703094347.GU4453@dastard> X-ASG-Orig-Subj: Re: Got "Internal error XFS_WANT_CORRUPTED_GOTO". Filesystem needs reformatting to correct issue. References: <20140702120441.GA51757@bfoster.bfoster> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.5.21 (2010-09-15) X-Barracuda-Connect: ipmail04.adl6.internode.on.net[150.101.137.141] X-Barracuda-Start-Time: 1404380630 X-Barracuda-URL: http://192.48.176.15:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 X-Barracuda-Spam-Score: 0.00 X-Barracuda-Spam-Status: No, SCORE=0.00 using per-user scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.7 tests=BSF_SC0_MISMATCH_TO X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.7200 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.00 BSF_SC0_MISMATCH_TO Envelope rcpt doesn't match header On Thu, Jul 03, 2014 at 05:00:47AM +0200, Carlos E. R. wrote: > On Wednesday, 2014-07-02 at 08:04 -0400, Brian Foster wrote: > >On Wed, Jul 02, 2014 at 11:57:25AM +0200, Carlos E. R. wrote: > > ... > > >This is the background eofblocks scanner attempting to free preallocated > >space on a file. The scanner looks for files that have been recently > >grown and since been flushed to disk (i.e., no longer concurrently being > >written to) and trims the post-eof preallocation that comes along with > >growing files. > > > >The corruption errors at xfs_alloc.c:1602,1629 on v3.11 fire if the > >extent we are attempting to free is already accounted for in the > >by-block allocation btree. IOW, this is attempting to free an extent > >that the allocation metadata thinks is already free. > > > >> > >>Brief description: > >> > >> > >> * It happens only on restore from hibernation. > > > >Interesting, could you elaborate a bit more on the behavior this system > >is typically subjected to? i.e., is this a server that sees a constant > >workload that is also frequently hibernated/awakened? .... > The machine may be used anywhere from 4 to 16 hours a day, and > hibernated at least once a day, perhaps three times if I have to go > out several times. It makes no sense to me to leave the machine > powered doing nothing, if hibernating is so easy and reliable - till > now. If I have to leave for more than a week, I tend to do a full > "halt". Hibernation has always been suspect w.r.t. flushing filesystem metadata. It does not guarantee that the filesystem is quiesced and idle, it just does a sync() and hopes that is sufficient to get the filesystem into a consistent state. The mess that this leaves is then left to filesystem developers to play whack-a-mole with when users have problems. > But soon after, it oopses: Point of note: there is no oops or crash occurring. XFS dumps the stack when a corruption occurs to tell use where it was detected and then shuts down the filesystem. Your system is still just fine apart from not being able to access that filesystem until you unmount it, rpeair it and mount it again. > 3 PID: 57 Comm: kworker/3:1 Tainted: P O 3.11.10-7-desktop What's tainting your kernel? If you remove that taint, does the problem still occur? .... > <0.6> 2014-04-17 22:47:08 Telcontar kernel - - - [280266.819191] Enabling non-boot CPUs ... > <0.6> 2014-04-17 22:47:08 Telcontar kernel - - - [280266.819191] smpboot: Booting Node 0 Processor 1 APIC 0x1 > <0.6> 2014-04-17 22:47:08 Telcontar kernel - - - [280266.832336] CPU1 is up > <0.6> 2014-04-17 22:47:08 Telcontar kernel - - - [280266.832467] smpboot: Booting Node 0 Processor 2 APIC 0x2 > <0.6> 2014-04-17 22:47:08 Telcontar kernel - - - [280266.845865] CPU2 is up > <0.6> 2014-04-17 22:47:08 Telcontar kernel - - - [280266.846034] smpboot: Booting Node 0 Processor 3 APIC 0x3 > <0.6> 2014-04-17 22:47:08 Telcontar kernel - - - [280266.859609] CPU3 is up .... > <0.6> 2014-04-17 22:47:08 Telcontar kernel - - - [280269.796130] PM: restore of devices complete after 2736.343 msecs > <0.4> 2014-04-17 22:47:08 Telcontar kernel - - - [280270.081655] Restarting kernel threads ... done. > <0.4> 2014-04-17 22:47:08 Telcontar kernel - - - [280270.086714] Restarting tasks ... done. ..... > <0.1> 2014-04-17 22:47:08 Telcontar kernel - - - [280271.851374] XFS: Internal error XFS_WANT_CORRUPTED_GOTO at line 1602 of file /home/abuild/rpmbuild/BUILD/kernel-desktop-3.11.10/linux-3.11/fs/xfs/xfs_alloc.c. Caller 0xffffffffa0c54fe9 So the corruption occurred within 2s of the kernel restarting tasks after a hibernation. It's really looking like a hibernation issue. > <3.4> 2014-06-29 04:51:50 Telcontar pm-utils - - - Hibernating (95)... ..... > <0.6> 2014-06-29 12:32:18 Telcontar kernel - - - [212887.640186] Enabling non-boot CPUs ... ..... > <0.6> 2014-06-29 12:32:18 Telcontar kernel - - - [212890.615073] PM: restore of devices complete after 2735.034 msecs > <0.1> 2014-06-29 12:32:18 Telcontar kernel - - - [212890.626346] XFS: Internal error XFS_WANT_CORRUPTED_GOTO at line 1602 of file /home/abuild/rpmbuild/BUILD/kernel-desktop-3.11.10/linux-3.11/fs/xfs/xfs_alloc.c. Caller 0xffffffffa0c39fe9 ..... > <0.1> 2014-06-29 12:32:18 Telcontar kernel - - - [212890.706440] XFS (sde5): Corruption of in-memory data detected. Shutting down filesystem > <0.1> 2014-06-29 12:32:18 Telcontar kernel - - - [212890.706440] XFS (sde5): Please umount the filesystem and rectify the problem(s) > <0.6> 2014-06-29 12:32:18 Telcontar kernel - - - [212891.026207] usb 1-6: USB disconnect, device number 4 > <0.4> 2014-06-29 12:32:18 Telcontar kernel - - - [212891.025944] Restarting kernel threads ... done. > <0.4> 2014-06-29 12:32:18 Telcontar kernel - - - [212891.026371] Restarting tasks ... done. Well, there's the smoking gun. The XFS kworker is running and reporting errors before the thawing process has restarted the frozen workqueues: void thaw_kernel_threads(void) { struct task_struct *g, *p; pm_nosig_freezing = false; printk("Restarting kernel threads ... "); thaw_workqueues(); .... Which points to the fact that we probably need WQ_FREEZABLE on some of our workqueues. Brian, do you want to have a look at this? > Question. > > As this always happens on recovery from hibernation, and seeing the message > "Corruption of in-memory data detected", could it be that thawing does a bad > memory recovery from the swap? I thought that the procedure includes some > checksum, but I don't know for sure. It's the fact that the filesystem si still running and modifying state when the snapshot is being taken that results in the snapshot image containing an inconsistent snapshot. That then gets loaded on thaw and it goes boom. > To me, there are two problems: > > 1) The corruption itself. > 2) That xfs_repair fails to repair the filesystem. In fact, I believe > it does not detect it! That's because the filesystem is likely to be consistent on disk. The issue is in-memory corruption, not on-disk corruption, like the messages are telling us: XFS (sde5): Corruption of in-memory data detected. Basically, XFS is catching a bad state in memory and preventing it from being propagated to disk. if it gets to disk, then you are likely to lose data. IOWs, XFS is behaving as designed and is actually preventing data loss in this situation. Cheers, Dave. -- Dave Chinner david@fromorbit.com From ms@citd.de Thu Jul 3 06:29:22 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: xfs@oss.sgi.com Delivered-To: xfs@oss.sgi.com Received: from relay.sgi.com (relay3.corp.sgi.com [198.149.34.15]) by oss.sgi.com (Postfix) with ESMTP id 5A6DD7F37 for ; Thu, 3 Jul 2014 06:29:22 -0500 (CDT) Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by relay3.corp.sgi.com (Postfix) with ESMTP id E93BDAC004 for ; Thu, 3 Jul 2014 04:29:18 -0700 (PDT) X-ASG-Debug-ID: 1404386953-04cb6c76d141e5b0001-NocioJ Received: from deltamedia.de (deltamedia.de [178.77.98.209]) by cuda.sgi.com with ESMTP id gNzasQonqrO3uPMG (version=TLSv1 cipher=AES256-SHA bits=256 verify=NO) for ; Thu, 03 Jul 2014 04:29:14 -0700 (PDT) X-Barracuda-Envelope-From: ms@citd.de X-Barracuda-Apparent-Source-IP: 178.77.98.209 X-No-Relay: not in my network Received: from citd.de (p579BD0C4.dip0.t-ipconnect.de [87.155.208.196]) by deltamedia.de (Postfix) with ESMTPSA id 8F3CDA978007 for ; Thu, 3 Jul 2014 13:29:12 +0200 (CEST) Date: Thu, 3 Jul 2014 13:29:11 +0200 From: Matthias Schniedermeyer To: xfs@oss.sgi.com Subject: Changing label of a mounted XFS filesystem Message-ID: <20140703112911.GA9806@citd.de> X-ASG-Orig-Subj: Changing label of a mounted XFS filesystem MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline User-Agent: Mutt/1.5.23 (2014-03-12) X-Barracuda-Connect: deltamedia.de[178.77.98.209] X-Barracuda-Start-Time: 1404386953 X-Barracuda-Encrypted: AES256-SHA X-Barracuda-URL: http://192.48.176.15:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 X-Barracuda-Spam-Score: 0.00 X-Barracuda-Spam-Status: No, SCORE=0.00 using per-user scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.7 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.7202 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- Hi Is there a particular reason that the label of a mounted XFS fileystem can't be changed? The man-page of xfs_admin gives a blanket "Devices that are mounted cannot be modified" but no explanation for why that is. In my case it's the label of the root-filesystem i want to change. So to change it i would have to boot the computer with some kind of live or rescure-system. Or i would need to temporarily connect the device to another computer, both aren't really nice hoops to jump through just to change a few characters. The only thing i can compare this to is ext2 and with ext2 (/boot partition, so it really is ext2) i can change the label to my hearts content, even the device is mounted. For my case i could live with it if i could remount the filesystem RO, change the label and then having to reboot the machine, still nicer than the other 2 options. -- Matthias From jeff.liu@oracle.com Thu Jul 3 06:53:00 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: xfs@oss.sgi.com Delivered-To: xfs@oss.sgi.com Received: from relay.sgi.com (relay1.corp.sgi.com [137.38.102.111]) by oss.sgi.com (Postfix) with ESMTP id 4D9417F37 for ; Thu, 3 Jul 2014 06:53:00 -0500 (CDT) Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by relay1.corp.sgi.com (Postfix) with ESMTP id 1B16A8F8052 for ; Thu, 3 Jul 2014 04:53:00 -0700 (PDT) X-ASG-Debug-ID: 1404388374-04bdf0566879aa20001-NocioJ Received: from userp1040.oracle.com (userp1040.oracle.com [156.151.31.81]) by cuda.sgi.com with ESMTP id m6apMQCgVBc0gdHT (version=TLSv1 cipher=AES256-SHA bits=256 verify=NO); Thu, 03 Jul 2014 04:52:54 -0700 (PDT) X-Barracuda-Envelope-From: jeff.liu@oracle.com X-Barracuda-Apparent-Source-IP: 156.151.31.81 Received: from ucsinet22.oracle.com (ucsinet22.oracle.com [156.151.31.94]) by userp1040.oracle.com (Sentrion-MTA-4.3.2/Sentrion-MTA-4.3.2) with ESMTP id s63BqkSp004267 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK); Thu, 3 Jul 2014 11:52:46 GMT Received: from aserz7022.oracle.com (aserz7022.oracle.com [141.146.126.231]) by ucsinet22.oracle.com (8.14.5+Sun/8.14.5) with ESMTP id s63BqiRf021045 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO); Thu, 3 Jul 2014 11:52:45 GMT Received: from abhmp0009.oracle.com (abhmp0009.oracle.com [141.146.116.15]) by aserz7022.oracle.com (8.14.4+Sun/8.14.4) with ESMTP id s63BqiJk028068; Thu, 3 Jul 2014 11:52:44 GMT Received: from [192.168.1.103] (/112.238.71.200) by default (Oracle Beehive Gateway v4.0) with ESMTP ; Thu, 03 Jul 2014 04:52:44 -0700 Message-ID: <53B544FD.6020406@oracle.com> Date: Thu, 03 Jul 2014 19:56:45 +0800 From: Jeff Liu User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:24.0) Gecko/20100101 Thunderbird/24.5.0 MIME-Version: 1.0 To: "Michael L. Semon" , Dave Chinner CC: Mark Tinguely , xfs@oss.sgi.com Subject: Re: Null pointer dereference while at ACL limit on v5 XFS References: <53A8A0AF.9070009@gmail.com> <53A8A578.4070005@sgi.com> <53A8A676.80305@sgi.com> <53A8F1AC.90109@gmail.com> <20140624040434.GC9508@dastard> <53B335D1.2010709@gmail.com> X-ASG-Orig-Subj: Re: Null pointer dereference while at ACL limit on v5 XFS In-Reply-To: <53B335D1.2010709@gmail.com> Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit X-Source-IP: ucsinet22.oracle.com [156.151.31.94] X-Barracuda-Connect: userp1040.oracle.com[156.151.31.81] X-Barracuda-Start-Time: 1404388374 X-Barracuda-Encrypted: AES256-SHA X-Barracuda-URL: http://192.48.157.11:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 X-Barracuda-Spam-Score: 0.00 X-Barracuda-Spam-Status: No, SCORE=0.00 using per-user scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.7 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.7202 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- On 07/02/2014 06:27 AM, Michael L. Semon wrote: > On 06/24/2014 12:04 AM, Dave Chinner wrote: >> On Mon, Jun 23, 2014 at 11:34:04PM -0400, Michael L. Semon wrote: >>> [ 1068.431391] ------------[ cut here ]------------ >>> [ 1068.431566] WARNING: CPU: 0 PID: 41 at lib/list_debug.c:59 __list_del_entry+0xce/0x110() >>> [ 1068.431596] list_del corruption. prev->next should be db5bf580, but was (null) >> >> Ok, so the current log item points to a log item that has >> null pointers (i.e. not on the list). >> >>> [ 1068.433567] ---[ end trace 60289514948e4bd7 ]--- >>> [ 1068.433603] BUG: unable to handle kernel NULL pointer dereference at 0000000c >>> [ 1068.433795] IP: [] xfs_ail_check+0x58/0xc0 >> >> And that's trying to dereference a pointer from an item that is not >> on the list.... >> >> So there's linked list corruption occurring here. >> >>> I can reproduce the oops in kernel 3.15.0, perhaps with xfs-oss/for-next >>> merged, but there's no vmlinux to go with the kernel. Therefore, I'll have >>> to resort to other means (rebuilt kernel with netconsole, re-attaching the >>> serial cable, etc.) to get the full crash log. >> >> How far back can you reproduce it? If it's a recent occurrence, can >> you bisect it? >> >> Cheers, >> >> Dave. > > I've had terrible luck with bisects this week due to PEBKAC errors. With 3 > commits left to try--one slow, full build (thanks, ARM!) and hopefully 2 > minor builds--this commit is staring me in the face: > > commit bba719b5004234e55737e7074b81b337210c511d > Author: Jie Liu > Date: Wed Jan 1 19:28:03 2014 +0800 > > xfs: fix off-by-one error in xfs_attr3_rmt_verify > > In particular, one kernel had this as the most recent commit and showed > the current problem behavior. > > That is about as far back as I can go before attr3_rmt issues corrupt > filesystems and cause a "Structure needs cleaning" message during the setfacl > part of the test. Certianly, Jeff has improved matters with this patch. > > On the normal kernel git, this may correspond to kernel v3.13.0-rc7 or -rc8, > certainly no earlier than -rc2. git was bouncing the version numbers around > quite a bit. > > Before Jeff worked his wonders here, efforts to getfacl a directory with max > ACLs (on a remounted, corrupt filesystem) ended like this... Sorry for my late response as I'm working on another thing these days. I have tried to reproduce this problem on my x86 virtualBox with xfs-next latest code via fsstress but no luck. i.e, fsstress -d $SCRATCH_MNT/test-dir -n 10000 -p 16 Maybe this issue can be triggered via the seed file you provided, however, I can not download it due to the stupid China great firewall, even if through proxy. :( Cheers, -Jeff From jeff.liu@oracle.com Thu Jul 3 07:03:38 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: xfs@oss.sgi.com Delivered-To: xfs@oss.sgi.com Received: from relay.sgi.com (relay2.corp.sgi.com [137.38.102.29]) by oss.sgi.com (Postfix) with ESMTP id 7E6D07F37 for ; Thu, 3 Jul 2014 07:03:38 -0500 (CDT) Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by relay2.corp.sgi.com (Postfix) with ESMTP id 64566304066 for ; Thu, 3 Jul 2014 05:03:35 -0700 (PDT) X-ASG-Debug-ID: 1404389010-04cbb06538254e40001-NocioJ Received: from userp1040.oracle.com (userp1040.oracle.com [156.151.31.81]) by cuda.sgi.com with ESMTP id 1lLRugag25DTurs4 (version=TLSv1 cipher=AES256-SHA bits=256 verify=NO) for ; Thu, 03 Jul 2014 05:03:31 -0700 (PDT) X-Barracuda-Envelope-From: jeff.liu@oracle.com X-Barracuda-Apparent-Source-IP: 156.151.31.81 Received: from ucsinet22.oracle.com (ucsinet22.oracle.com [156.151.31.94]) by userp1040.oracle.com (Sentrion-MTA-4.3.2/Sentrion-MTA-4.3.2) with ESMTP id s63C3Kf8016177 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK); Thu, 3 Jul 2014 12:03:20 GMT Received: from userz7021.oracle.com (userz7021.oracle.com [156.151.31.85]) by ucsinet22.oracle.com (8.14.5+Sun/8.14.5) with ESMTP id s63C3Jpa017354 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=FAIL); Thu, 3 Jul 2014 12:03:19 GMT Received: from abhmp0019.oracle.com (abhmp0019.oracle.com [141.146.116.25]) by userz7021.oracle.com (8.14.4+Sun/8.14.4) with ESMTP id s63C3J0u009785; Thu, 3 Jul 2014 12:03:19 GMT Received: from [192.168.1.103] (/112.238.71.200) by default (Oracle Beehive Gateway v4.0) with ESMTP ; Thu, 03 Jul 2014 05:03:18 -0700 Message-ID: <53B54779.40108@oracle.com> Date: Thu, 03 Jul 2014 20:07:21 +0800 From: Jeff Liu User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:24.0) Gecko/20100101 Thunderbird/24.5.0 MIME-Version: 1.0 To: Matthias Schniedermeyer CC: xfs@oss.sgi.com Subject: Re: Changing label of a mounted XFS filesystem References: <20140703112911.GA9806@citd.de> X-ASG-Orig-Subj: Re: Changing label of a mounted XFS filesystem In-Reply-To: <20140703112911.GA9806@citd.de> Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit X-Source-IP: ucsinet22.oracle.com [156.151.31.94] X-Barracuda-Connect: userp1040.oracle.com[156.151.31.81] X-Barracuda-Start-Time: 1404389011 X-Barracuda-Encrypted: AES256-SHA X-Barracuda-URL: http://192.48.176.25:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 X-Barracuda-Spam-Score: 0.00 X-Barracuda-Spam-Status: No, SCORE=0.00 using per-user scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.7 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.7202 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- Hi, On 07/03/2014 07:29 PM, Matthias Schniedermeyer wrote: > Hi > > > Is there a particular reason that the label of a mounted XFS fileystem > can't be changed? Maybe since we have no user request for this function? :) > The man-page of xfs_admin gives a blanket "Devices that are mounted > cannot be modified" but no explanation for why that is. > > In my case it's the label of the root-filesystem i want to change. So to > change it i would have to boot the computer with some kind of live or > rescure-system. Or i would need to temporarily connect the device to > another computer, both aren't really nice hoops to jump through just to > change a few characters. > > The only thing i can compare this to is ext2 and with ext2 (/boot > partition, so it really is ext2) i can change the label to my hearts > content, even the device is mounted. > > For my case i could live with it if i could remount the filesystem RO, > change the label and then having to reboot the machine, still nicer than > the other 2 options. Btrfs support set/change label on a mounted file system via ioctl(2), maybe we can implement it if that sounds useful to our users. Cheers, -Jeff From tdm@sgi.com Thu Jul 3 08:50:46 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=RP_MATCHES_RCVD autolearn=ham version=3.3.1 X-Original-To: xfs@oss.sgi.com Delivered-To: xfs@oss.sgi.com Received: from relay.sgi.com (relay1.corp.sgi.com [137.38.102.111]) by oss.sgi.com (Postfix) with ESMTP id D7ED37F37 for ; Thu, 3 Jul 2014 08:50:46 -0500 (CDT) Received: from estes.americas.sgi.com (estes.americas.sgi.com [128.162.236.10]) by relay1.corp.sgi.com (Postfix) with ESMTP id D158F8F8035 for ; Thu, 3 Jul 2014 06:50:43 -0700 (PDT) Received: from [128.162.232.11] (porter.americas.sgi.com [128.162.232.11]) by estes.americas.sgi.com (Postfix) with ESMTP id 8450F7001893 for ; Thu, 3 Jul 2014 08:50:43 -0500 (CDT) Message-ID: <53B55FB3.10804@sgi.com> Date: Thu, 03 Jul 2014 08:50:43 -0500 From: Troy McCorkell User-Agent: Mozilla/5.0 (X11; U; Linux i686 (x86_64); en-US; rv:1.9.1.5) Gecko/20091204 Thunderbird/3.0 MIME-Version: 1.0 To: xfs@oss.sgi.com Subject: Re: XFS Realtime Replication problem References: <53B4E20C.60602@cmcltd.com> <20140703061525.GF9508@dastard> <53B4F7B7.4080807@cmcltd.com> <20140703090253.GT4453@dastard> <53B52098.2090104@cmcltd.com> In-Reply-To: <53B52098.2090104@cmcltd.com> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit On 07/03/2014 04:21 AM, Jignesh wrote: > Dear Dave, > > Thanks for your reply. > > Regards, > > Jignesh P. > > On 03-07-2014 14:32, Dave Chinner wrote: >> On Thu, Jul 03, 2014 at 11:57:03AM +0530, Jignesh wrote: >>> Dear Dave, >>> >>> Thanks for your quick response. >>> >>> This is not SGI Proprietary Storage product and not using any SGI >>> proprietary kernel module. SGI IS3500 is normal Intel Server with 36 >>> HDDs. ( Storage Server), We have installed RHEL 6.2 on this Server >>> and configured XVM and XFS. >> XVM is SGI proprietary software: >> >> http://www.sgi.com/products/storage/software/xvm.html >> >> As it is, if you are using RHEL, you should talk to your Red Hat >> support contact. They'll be able to tell you if it's a known problem >> w/ XFS on RHEL and which version of RHEL 6.x it is fixed in. >> >> Cheers, >> >> Dave. Jignesh, If you have SGI XVM installed, then you most likely have the SGI supplied version of XFS installed as well. If you do have the SGI supplied version of XFS installed, Red Hat support will redirect you to SGI for support. Thanks, Troy McCorkell From ms@citd.de Thu Jul 3 09:14:17 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: xfs@oss.sgi.com Delivered-To: xfs@oss.sgi.com Received: from relay.sgi.com (relay3.corp.sgi.com [198.149.34.15]) by oss.sgi.com (Postfix) with ESMTP id CF7187F37 for ; Thu, 3 Jul 2014 09:14:17 -0500 (CDT) Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by relay3.corp.sgi.com (Postfix) with ESMTP id 6A28DAC004 for ; Thu, 3 Jul 2014 07:14:17 -0700 (PDT) X-ASG-Debug-ID: 1404396850-04bdf056697a0180001-NocioJ Received: from deltamedia.de (deltamedia.de [178.77.98.209]) by cuda.sgi.com with ESMTP id bkq6JxmHeEbXiYEm (version=TLSv1 cipher=AES256-SHA bits=256 verify=NO) for ; Thu, 03 Jul 2014 07:14:12 -0700 (PDT) X-Barracuda-Envelope-From: ms@citd.de X-Barracuda-Apparent-Source-IP: 178.77.98.209 X-No-Relay: not in my network X-No-Relay: not in my network Received: from citd.de (p579BD0C4.dip0.t-ipconnect.de [87.155.208.196]) by deltamedia.de (Postfix) with ESMTPSA id 1EFA9A97805E; Thu, 3 Jul 2014 16:14:10 +0200 (CEST) Date: Thu, 3 Jul 2014 16:14:08 +0200 From: Matthias Schniedermeyer To: Jeff Liu Cc: xfs@oss.sgi.com Subject: Re: Changing label of a mounted XFS filesystem Message-ID: <20140703141408.GA17657@citd.de> X-ASG-Orig-Subj: Re: Changing label of a mounted XFS filesystem References: <20140703112911.GA9806@citd.de> <53B54779.40108@oracle.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <53B54779.40108@oracle.com> User-Agent: Mutt/1.5.23 (2014-03-12) X-Barracuda-Connect: deltamedia.de[178.77.98.209] X-Barracuda-Start-Time: 1404396851 X-Barracuda-Encrypted: AES256-SHA X-Barracuda-URL: http://192.48.157.11:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 X-Barracuda-Spam-Score: 0.00 X-Barracuda-Spam-Status: No, SCORE=0.00 using per-user scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.7 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.7204 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- On 03.07.2014 20:07, Jeff Liu wrote: > Hi, > > On 07/03/2014 07:29 PM, Matthias Schniedermeyer wrote: > > Hi > > > > > > Is there a particular reason that the label of a mounted XFS fileystem > > can't be changed? > > Maybe since we have no user request for this function? :) > > > The man-page of xfs_admin gives a blanket "Devices that are mounted > > cannot be modified" but no explanation for why that is. > > > > In my case it's the label of the root-filesystem i want to change. So to > > change it i would have to boot the computer with some kind of live or > > rescure-system. Or i would need to temporarily connect the device to > > another computer, both aren't really nice hoops to jump through just to > > change a few characters. > > > > The only thing i can compare this to is ext2 and with ext2 (/boot > > partition, so it really is ext2) i can change the label to my hearts > > content, even the device is mounted. > > > > For my case i could live with it if i could remount the filesystem RO, > > change the label and then having to reboot the machine, still nicer than > > the other 2 options. > > Btrfs support set/change label on a mounted file system via ioctl(2), maybe we > can implement it if that sounds useful to our users. I would vote for that, i've run into this particular brickwall several times over the years. I more or less reguarly clone or "move" storage and/or machines around and several times i forgot to re-label filesystems "at that point in time were it was easily done" and then run into the brickwall when first booting whatever i built at that time. Same has happend to me for /etc/fstab and/or GRUB configuration. But unless GRUB doesn't boot at all it can be rectified without too much hassle. Yesterday i "fixed" it by changing the fstab to the "wrong" label. The other solution would be for me to make a checklist, so i don't forget such things. But that would be to easy. ;-) -- Matthias From bfoster@redhat.com Thu Jul 3 12:44:31 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: xfs@oss.sgi.com Delivered-To: xfs@oss.sgi.com Received: from relay.sgi.com (relay3.corp.sgi.com [198.149.34.15]) by oss.sgi.com (Postfix) with ESMTP id 194207F37 for ; Thu, 3 Jul 2014 12:44:31 -0500 (CDT) Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by relay3.corp.sgi.com (Postfix) with ESMTP id AF99DAC004 for ; Thu, 3 Jul 2014 10:44:30 -0700 (PDT) X-ASG-Debug-ID: 1404409468-04bdf056687a9ce0001-NocioJ Received: from mx1.redhat.com (mx1.redhat.com [209.132.183.28]) by cuda.sgi.com with ESMTP id ORtrW1rhCgrSHtiS (version=TLSv1 cipher=AES256-SHA bits=256 verify=NO) for ; Thu, 03 Jul 2014 10:44:29 -0700 (PDT) X-Barracuda-Envelope-From: bfoster@redhat.com X-Barracuda-Apparent-Source-IP: 209.132.183.28 X-ASG-Whitelist: Client Received: from int-mx09.intmail.prod.int.phx2.redhat.com (int-mx09.intmail.prod.int.phx2.redhat.com [10.5.11.22]) by mx1.redhat.com (8.14.4/8.14.4) with ESMTP id s63HiO1a006467 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Thu, 3 Jul 2014 13:44:25 -0400 Received: from laptop.bfoster (vpn-56-55.rdu2.redhat.com [10.10.56.55]) by int-mx09.intmail.prod.int.phx2.redhat.com (8.14.4/8.14.4) with ESMTP id s63HiMuh025697 (version=TLSv1/SSLv3 cipher=AES128-GCM-SHA256 bits=128 verify=NO); Thu, 3 Jul 2014 13:44:24 -0400 Date: Thu, 3 Jul 2014 13:39:17 -0400 From: Brian Foster To: "Carlos E. R." Cc: XFS mailing list Subject: Re: Got "Internal error XFS_WANT_CORRUPTED_GOTO". Filesystem needs reformatting to correct issue. Message-ID: <20140703173916.GB3452@laptop.bfoster> X-ASG-Orig-Subj: Re: Got "Internal error XFS_WANT_CORRUPTED_GOTO". Filesystem needs reformatting to correct issue. References: <20140702120441.GA51757@bfoster.bfoster> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.5.23 (2014-03-12) X-Scanned-By: MIMEDefang 2.68 on 10.5.11.22 X-Barracuda-Connect: mx1.redhat.com[209.132.183.28] X-Barracuda-Start-Time: 1404409469 X-Barracuda-Encrypted: AES256-SHA X-Barracuda-URL: http://192.48.157.11:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 On Thu, Jul 03, 2014 at 05:00:47AM +0200, Carlos E. R. wrote: > -----BEGIN PGP SIGNED MESSAGE----- > Hash: SHA1 > > > > On Wednesday, 2014-07-02 at 08:04 -0400, Brian Foster wrote: > >On Wed, Jul 02, 2014 at 11:57:25AM +0200, Carlos E. R. wrote: > > ... > > >This is the background eofblocks scanner attempting to free preallocated > >space on a file. The scanner looks for files that have been recently > >grown and since been flushed to disk (i.e., no longer concurrently being > >written to) and trims the post-eof preallocation that comes along with > >growing files. > > > >The corruption errors at xfs_alloc.c:1602,1629 on v3.11 fire if the > >extent we are attempting to free is already accounted for in the > >by-block allocation btree. IOW, this is attempting to free an extent > >that the allocation metadata thinks is already free. > > > >> > >>Brief description: > >> > >> > >> * It happens only on restore from hibernation. > > > >Interesting, could you elaborate a bit more on the behavior this system > >is typically subjected to? i.e., is this a server that sees a constant > >workload that is also frequently hibernated/awakened? > > It is a desktop machine I use for work at home. I typically have many > applications opened on diferent workspaces in XFCE. Say one has terminals, > another has Thunderbird/Pine, another Firefox, another LibreOffice; another > may have gimp, another may be kbabel or lokalize, another may have vmplayer, > etc, whatever. When I go out or go to sleep, I hibernate the machine, > instead of powering down, because it is much faster than reboot, login, and > start the wanted applications, and I want to conserve some electricity. > > I also use the machine for testing configurations, but these I try to do on > virtual machines, instead of my work partition. > > > The machine may be used anywhere from 4 to 16 hours a day, and hibernated at > least once a day, perhaps three times if I have to go out several times. It > makes no sense to me to leave the machine powered doing nothing, if > hibernating is so easy and reliable - till now. If I have to leave for more > than a week, I tend to do a full "halt". > > > > By the way, this started hapening when I replaced an old 500 GB hard disk > (Seagate ST3500418AS) with a 2 TB new unit (Seagate ST2000DM001-1CH164). > Smartctl long test says fine (and seatools from Windows, too). > Ok, so there's a lot going on. I was mainly curious to see what was causing lingering preallocations, but it could be anything extending a file multiple times. > > > >>I do not have more info than what appears on the logs, but four times (two > >>different kernels): > >> > >>cer@Telcontar:~> zgrep XFS_WANT_CORRUPTED_GOTO /var/log/messages*xz > >>/var/log/messages-20140402.xz:<0.1> 2014-03-15 03:35:17 Telcontar kernel - - - [37685.111787] XFS: Internal error XFS_WANT_CORRUPTED_GOTO at line 1629 of file /home/abuild/rpmbuild/BUILD/kernel-desktop-3.11.10/linux-3.11/fs/xfs/xfs_alloc.c. Caller 0xffffffffa0c54fe9 > >>/var/log/messages-20140402.xz:<0.1> 2014-03-15 22:20:34 Telcontar kernel - - - [20151.298345] XFS: Internal error XFS_WANT_CORRUPTED_GOTO at line 1602 of file /home/abuild/rpmbuild/BUILD/kernel-desktop-3.11.10/linux-3.11/fs/xfs/xfs_alloc.c. Caller 0xffffffffa0c54fe9 > >>/var/log/messages-20140506.xz:<0.1> 2014-04-17 22:47:08 Telcontar kernel - - - [280271.851374] XFS: Internal error XFS_WANT_CORRUPTED_GOTO at line 1602 of file /home/abuild/rpmbuild/BUILD/kernel-desktop-3.11.10/linux-3.11/fs/xfs/xfs_alloc.c. Caller 0xffffffffa0c54fe9 > >>/var/log/messages-20140629.xz:<0.1> 2014-06-29 12:32:18 Telcontar kernel - - - [212890.626346] XFS: Internal error XFS_WANT_CORRUPTED_GOTO at line 1602 of file /home/abuild/rpmbuild/BUILD/kernel-desktop-3.11.10/linux-3.11/fs/xfs/xfs_alloc.c. Caller 0xffffffffa0c39fe9 > >>cer@Telcontar:~> > > >So you have reproduced this, reformatted with mkfs, restored from > >backups and continued to reproduce the problem? And still only on this > >particular partition? > > Right. Exactly that. > > Only that I can not reproduce the issue at will, but about once a month, > randomly. > > AFAIK, xfsdump can not carry over a filesystem corruption, right? > I think that's accurate, though it might complain/fail in the act of dumping an fs that is corrupted. The behavior here suggests there might not be on disk corruption, however. > > > **** LONG DESCRIPTION and LOGS start here ******** > ... > <5.6> 2014-06-29 12:48:34 Telcontar rsyslogd - - - [origin software="rsyslogd" swVersion="7.4.7" x-pid="1111" x-info="http://www.rsyslog.com"] exiting on signal 15. > 2014-06-29 12:48:35+02:00 - Halting the system now =========================================== uptime: 12:48pm up 4 days 8:43, 33 users, load average: 1.40, 0.53, 0.67 > 2014-06-29 12:57:41+02:00 - Booting the system now ================================================================================ Linux Telcontar 3.11.10-11-desktop #1 SMP PREEMPT Mon May 12 13:37:06 UTC 2014 (3d22b5f) x86_64 x86_64 x86_64 GNU/Linux > > (it does not show in the log that I had to hit the hardware reset button, > the machine refused to reboot normally, apparently) > > > (If you ask why I took so long to notice the problem after thawing, > my routine is to power up the machine, then go prepare tea. :-) > When I come back with the mug, I'm dismayed to see I can not > start working; and this day I was in a a hurry) > > > So I reboot (text mode, level 3), umount home, run xfsrepair, mount again, > do xfsdump, do simultanesouly an rsync (it is a file by file copy, in case > of problems with dump), umount, use YaST in text mode to reformat the > partition, mount, and then xfsrestore. It did not occur to me to make a > 'dd' photo this time: I was tired and busy. > > Maybe next time I can take the photo with dd before doing anything else (it > takes about 80 minutes), or simply do an "xfs_metadump", which should be > faster. And I might not have then 500 GiB of free space to make a dd copy, > anyway. > xfs_metadump should be faster. It will grab the metadata only and obfuscate filenames so as to hide sensitive information. > > > > > > Question. > > As this always happens on recovery from hibernation, and seeing the message > "Corruption of in-memory data detected", could it be that thawing does a bad > memory recovery from the swap? I thought that the procedure includes some > checksum, but I don't know for sure. > Not sure, though if so I would think that might be a more common source of problems. > > > > > > >This is interesting because the corruption appears to be associated with > >post-eof space, which is generally transient. The worst case is that > >this space is trimmed off files when they are evicted from cache, such > >as during a umount. To me, that seems to correlate with a more > >recent/runtime problem rather than something that might be lingering on > >disk, but we don't really know for sure. > > Dunno. > > To me, there are two problems: > > 1) The corruption itself. > 2) That xfs_repair fails to repair the filesystem. In fact, I believe > it does not detect it! > > To me, #2 is the worst, and it is what makes me do the backup, format, > restore cycle for recovery. An occassional kernel crash is somewhat > acceptable :-} > Well it could be that the "corruption" is gone at the point of a remount. E.g., something becomes inconsistent in memory, the fs detects it and shuts down before going any further. That's actually a positive. ;) That also means it's probably not be necessary to do a full backup, reformat and restore sequence as part of your routine here. xfs_repair should scour through all of the allocation metadata and yell if it finds something like free blocks allocated to a file. > > > >>Wait! I have a "dd" copy of the entire partition (500 GB), made on March > >>16th, 5 AM, so hard data could be obtained from there. I had forgotten. I'll > >>get something for you now: > > ... > > >>I could do a "xfs_metadump" on it - just tell me what options to use, and > >>where can the result be uploaded to, if big. > >> > > > >A metadump would be helpful, though that only gives us the on-disk > >state. What was the state of this fs at the time the dd image was > >created? > > I'm sorry, I'm not absolutely sure. I believe it is corrupted, but I can not > vouch it. > > >I'm curious if something like an 'rm -rf *' on the metadump > >would catch any other corruptions or if this is indeed limited to > >something associated with recent (pre)allocations. > > Sorry, run 'rm -rf *' where??? > On the metadump... mainly just to see whether freeing all of the used blocks in the fs triggered any other errors (i.e., a brute force way to check for further corruptions). > > >Run 'xfs_metadump ' to create a metadump that will > >obfuscate filenames by default. It should also be compressible. In the > >future, it's probably worth grabbing a metadump as a first step (before > >repair, zeroing the log, etc.) so we can look at the fs in the state > >most recent to the crash. > > I will take that photo next time, using a rescue system in order to impede > the system from mounting the partition and replaying the log. Dunno how long > that will take to happen, though... usually a month - but at least now I > know how to do it. > > > > > Meanwhile, I have done a xfs_metadump of the image, and compressed it with > xz. It has 10834536 bytes. What do I do with it? I'm not sure I can email > that, and even less to a mail list. > > Do you still have a bugzilla system where I can upload it? I had an account > at , made on 2010. I don't know if it still > runs :-? > I think http://bugzilla.redhat.com should allow you to file a bug and attach the file. Brian > If you don't, I can try to create it a bugzilla on openSUSE instead, and > tell you the number... but I don't know if it takes files that big. If it > doesn't, I'll fragment the file. You need to have an account there, I think, > to retrieve the attachment, and I would prefer to mark the bug private, or > at least the attachment. > > > > > I did the following. > > First I made a copy, with "dd", of the partition image, all 489G of it. On > this copy I ran "xfs_check", "xfs_repair -n", and "xfs_repair", with these > results: > > > Telcontar:/data/storage_d/old_backup # xfs_check xfs_copy_home_workonit > xfs_check is deprecated and scheduled for removal in June 2014. > Please use xfs_repair -n instead. > Telcontar:/data/storage_d/old_backup # xfs_repair -n xfs_copy_home_workonit > Phase 1 - find and verify superblock... > Phase 2 - using internal log > - scan filesystem freespace and inode maps... > - found root inode chunk > Phase 3 - for each AG... > - scan (but don't clear) agi unlinked lists... > - process known inodes and perform inode discovery... > - agno = 0 > - agno = 1 > - agno = 2 > - agno = 3 > - process newly discovered inodes... > Phase 4 - check for duplicate blocks... > - setting up duplicate extent list... > - check for inodes claiming duplicate blocks... > - agno = 0 > - agno = 1 > - agno = 2 > - agno = 3 > No modify flag set, skipping phase 5 > Phase 6 - check inode connectivity... > - traversing filesystem ... > - traversal finished ... > - moving disconnected inodes to lost+found ... > Phase 7 - verify link counts... > No modify flag set, skipping filesystem flush and exiting. > Telcontar:/data/storage_d/old_backup # time xfs_repair xfs_copy_home_workonit > Phase 1 - find and verify superblock... > Phase 2 - using internal log > - zero log... > - scan filesystem freespace and inode maps... > - found root inode chunk > Phase 3 - for each AG... > - scan and clear agi unlinked lists... > - process known inodes and perform inode discovery... > - agno = 0 > - agno = 1 > - agno = 2 > - agno = 3 > - process newly discovered inodes... > Phase 4 - check for duplicate blocks... > - setting up duplicate extent list... > - check for inodes claiming duplicate blocks... > - agno = 0 > - agno = 1 > - agno = 2 > - agno = 3 > Phase 5 - rebuild AG headers and trees... > - reset superblock... > Phase 6 - check inode connectivity... > - resetting contents of realtime bitmap and summary inodes > - traversing filesystem ... > - traversal finished ... > - moving disconnected inodes to lost+found ... > Phase 7 - verify and correct link counts... > done > > real 0m28.058s > user 0m1.692s > sys 0m2.265s > Telcontar:/data/storage_d/old_backup # > > > Maybe the image was made after repair, or maybe xfs_repair doesn't detect > anything, which as far as I remember, was the case. > > > > I recreate the copy, to try "mount" on an unaltered copy. > > > Telcontar:/data/storage_d/old_backup # time dd if=xfs_copy_home > of=xfs_copy_home_workonit && mount -v xfs_copy_home_workonit mount/ > 1024000000+0 records in > 1024000000+0 records out > 524288000000 bytes (524 GB) copied, 4662.7 s, 112 MB/s > > real 77m43.697s > user 3m1.420s > sys 28m41.958s > mount: /dev/loop0 mounted on /data/storage_d/old_backup/mount. > (reverse-i-search)`mount': time dd if=xfs_copy_home > Telcontar:/data/storage_d/old_backup # > > > So it mounts... > > > > > > - -- Cheers, > Carlos E. R. > (from 13.1 x86_64 "Bottle" at Telcontar) > > -----BEGIN PGP SIGNATURE----- > Version: GnuPG v2.0.22 (GNU/Linux) > > iEYEARECAAYFAlO0x18ACgkQtTMYHG2NR9X6QwCcD8r5qXIHVh4ELklM/tzXASds > yskAoIcwxYNC2tKsS7wE9Jp+g4MNUdpd > =pIZI > -----END PGP SIGNATURE----- > > _______________________________________________ > xfs mailing list > xfs@oss.sgi.com > http://oss.sgi.com/mailman/listinfo/xfs From bfoster@redhat.com Thu Jul 3 12:45:30 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: xfs@oss.sgi.com Delivered-To: xfs@oss.sgi.com Received: from relay.sgi.com (relay3.corp.sgi.com [198.149.34.15]) by oss.sgi.com (Postfix) with ESMTP id 12A077F37 for ; Thu, 3 Jul 2014 12:45:30 -0500 (CDT) Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by relay3.corp.sgi.com (Postfix) with ESMTP id 8590DAC004 for ; Thu, 3 Jul 2014 10:45:29 -0700 (PDT) X-ASG-Debug-ID: 1404409524-04cbb065372628f0001-NocioJ Received: from mx1.redhat.com (mx1.redhat.com [209.132.183.28]) by cuda.sgi.com with ESMTP id vpihDzH6NhmJb4SB (version=TLSv1 cipher=AES256-SHA bits=256 verify=NO) for ; Thu, 03 Jul 2014 10:45:25 -0700 (PDT) X-Barracuda-Envelope-From: bfoster@redhat.com X-Barracuda-Apparent-Source-IP: 209.132.183.28 X-ASG-Whitelist: Client Received: from int-mx09.intmail.prod.int.phx2.redhat.com (int-mx09.intmail.prod.int.phx2.redhat.com [10.5.11.22]) by mx1.redhat.com (8.14.4/8.14.4) with ESMTP id s63HjFa4006775 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Thu, 3 Jul 2014 13:45:15 -0400 Received: from laptop.bfoster (vpn-56-55.rdu2.redhat.com [10.10.56.55]) by int-mx09.intmail.prod.int.phx2.redhat.com (8.14.4/8.14.4) with ESMTP id s63HjDni025953 (version=TLSv1/SSLv3 cipher=AES128-GCM-SHA256 bits=128 verify=NO); Thu, 3 Jul 2014 13:45:14 -0400 Date: Thu, 3 Jul 2014 13:40:08 -0400 From: Brian Foster To: Dave Chinner Cc: "Carlos E. R." , XFS mailing list Subject: Re: Got "Internal error XFS_WANT_CORRUPTED_GOTO". Filesystem needs reformatting to correct issue. Message-ID: <20140703174007.GC3452@laptop.bfoster> X-ASG-Orig-Subj: Re: Got "Internal error XFS_WANT_CORRUPTED_GOTO". Filesystem needs reformatting to correct issue. References: <20140702120441.GA51757@bfoster.bfoster> <20140703094347.GU4453@dastard> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20140703094347.GU4453@dastard> User-Agent: Mutt/1.5.23 (2014-03-12) X-Scanned-By: MIMEDefang 2.68 on 10.5.11.22 X-Barracuda-Connect: mx1.redhat.com[209.132.183.28] X-Barracuda-Start-Time: 1404409525 X-Barracuda-Encrypted: AES256-SHA X-Barracuda-URL: http://192.48.176.25:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 On Thu, Jul 03, 2014 at 07:43:47PM +1000, Dave Chinner wrote: > On Thu, Jul 03, 2014 at 05:00:47AM +0200, Carlos E. R. wrote: > > On Wednesday, 2014-07-02 at 08:04 -0400, Brian Foster wrote: > > >On Wed, Jul 02, 2014 at 11:57:25AM +0200, Carlos E. R. wrote: > > > > ... > > > > >This is the background eofblocks scanner attempting to free preallocated > > >space on a file. The scanner looks for files that have been recently > > >grown and since been flushed to disk (i.e., no longer concurrently being > > >written to) and trims the post-eof preallocation that comes along with > > >growing files. > > > > > >The corruption errors at xfs_alloc.c:1602,1629 on v3.11 fire if the > > >extent we are attempting to free is already accounted for in the > > >by-block allocation btree. IOW, this is attempting to free an extent > > >that the allocation metadata thinks is already free. > > > > > >> > > >>Brief description: > > >> > > >> > > >> * It happens only on restore from hibernation. > > > > > >Interesting, could you elaborate a bit more on the behavior this system > > >is typically subjected to? i.e., is this a server that sees a constant > > >workload that is also frequently hibernated/awakened? > > .... > > > The machine may be used anywhere from 4 to 16 hours a day, and > > hibernated at least once a day, perhaps three times if I have to go > > out several times. It makes no sense to me to leave the machine > > powered doing nothing, if hibernating is so easy and reliable - till > > now. If I have to leave for more than a week, I tend to do a full > > "halt". > > Hibernation has always been suspect w.r.t. flushing filesystem > metadata. It does not guarantee that the filesystem is quiesced > and idle, it just does a sync() and hopes that is sufficient to get > the filesystem into a consistent state. The mess that this leaves is > then left to filesystem developers to play whack-a-mole with when > users have problems. > > > But soon after, it oopses: > > Point of note: there is no oops or crash occurring. XFS dumps the > stack when a corruption occurs to tell use where it was detected > and then shuts down the filesystem. Your system is still just fine > apart from not being able to access that filesystem until you > unmount it, rpeair it and mount it again. > > > 3 PID: 57 Comm: kworker/3:1 Tainted: P O 3.11.10-7-desktop > > What's tainting your kernel? If you remove that taint, does the > problem still occur? > > .... > > <0.6> 2014-04-17 22:47:08 Telcontar kernel - - - [280266.819191] Enabling non-boot CPUs ... > > <0.6> 2014-04-17 22:47:08 Telcontar kernel - - - [280266.819191] smpboot: Booting Node 0 Processor 1 APIC 0x1 > > <0.6> 2014-04-17 22:47:08 Telcontar kernel - - - [280266.832336] CPU1 is up > > <0.6> 2014-04-17 22:47:08 Telcontar kernel - - - [280266.832467] smpboot: Booting Node 0 Processor 2 APIC 0x2 > > <0.6> 2014-04-17 22:47:08 Telcontar kernel - - - [280266.845865] CPU2 is up > > <0.6> 2014-04-17 22:47:08 Telcontar kernel - - - [280266.846034] smpboot: Booting Node 0 Processor 3 APIC 0x3 > > <0.6> 2014-04-17 22:47:08 Telcontar kernel - - - [280266.859609] CPU3 is up > .... > > <0.6> 2014-04-17 22:47:08 Telcontar kernel - - - [280269.796130] PM: restore of devices complete after 2736.343 msecs > > <0.4> 2014-04-17 22:47:08 Telcontar kernel - - - [280270.081655] Restarting kernel threads ... done. > > <0.4> 2014-04-17 22:47:08 Telcontar kernel - - - [280270.086714] Restarting tasks ... done. > ..... > > <0.1> 2014-04-17 22:47:08 Telcontar kernel - - - [280271.851374] XFS: Internal error XFS_WANT_CORRUPTED_GOTO at line 1602 of file /home/abuild/rpmbuild/BUILD/kernel-desktop-3.11.10/linux-3.11/fs/xfs/xfs_alloc.c. Caller 0xffffffffa0c54fe9 > > So the corruption occurred within 2s of the kernel restarting tasks > after a hibernation. It's really looking like a hibernation issue. > > > <3.4> 2014-06-29 04:51:50 Telcontar pm-utils - - - Hibernating (95)... > ..... > > <0.6> 2014-06-29 12:32:18 Telcontar kernel - - - [212887.640186] Enabling non-boot CPUs ... > ..... > > <0.6> 2014-06-29 12:32:18 Telcontar kernel - - - [212890.615073] PM: restore of devices complete after 2735.034 msecs > > <0.1> 2014-06-29 12:32:18 Telcontar kernel - - - [212890.626346] XFS: Internal error XFS_WANT_CORRUPTED_GOTO at line 1602 of file /home/abuild/rpmbuild/BUILD/kernel-desktop-3.11.10/linux-3.11/fs/xfs/xfs_alloc.c. Caller 0xffffffffa0c39fe9 > ..... > > <0.1> 2014-06-29 12:32:18 Telcontar kernel - - - [212890.706440] XFS (sde5): Corruption of in-memory data detected. Shutting down filesystem > > <0.1> 2014-06-29 12:32:18 Telcontar kernel - - - [212890.706440] XFS (sde5): Please umount the filesystem and rectify the problem(s) > > <0.6> 2014-06-29 12:32:18 Telcontar kernel - - - [212891.026207] usb 1-6: USB disconnect, device number 4 > > <0.4> 2014-06-29 12:32:18 Telcontar kernel - - - [212891.025944] Restarting kernel threads ... done. > > <0.4> 2014-06-29 12:32:18 Telcontar kernel - - - [212891.026371] Restarting tasks ... done. > > Well, there's the smoking gun. The XFS kworker is running and > reporting errors before the thawing process has restarted > the frozen workqueues: > > void thaw_kernel_threads(void) > { > struct task_struct *g, *p; > > pm_nosig_freezing = false; > printk("Restarting kernel threads ... "); > > thaw_workqueues(); > .... > > Which points to the fact that we probably need WQ_FREEZABLE on some > of our workqueues. Brian, do you want to have a look at this? > Yeah, I'll look into it. I might see if I can try to reproduce this by suspending a vm. It sounds like a preallocating workload and a reduced eofblocks scan timer test might be worth a shot. Thanks Dave. Brian > > Question. > > > > As this always happens on recovery from hibernation, and seeing the message > > "Corruption of in-memory data detected", could it be that thawing does a bad > > memory recovery from the swap? I thought that the procedure includes some > > checksum, but I don't know for sure. > > It's the fact that the filesystem si still running and modifying > state when the snapshot is being taken that results in the snapshot > image containing an inconsistent snapshot. That then gets loaded > on thaw and it goes boom. > > > To me, there are two problems: > > > > 1) The corruption itself. > > 2) That xfs_repair fails to repair the filesystem. In fact, I believe > > it does not detect it! > > That's because the filesystem is likely to be consistent on disk. > The issue is in-memory corruption, not on-disk corruption, like > the messages are telling us: > > XFS (sde5): Corruption of in-memory data detected. > > Basically, XFS is catching a bad state in memory and preventing it > from being propagated to disk. if it gets to disk, then you are > likely to lose data. IOWs, XFS is behaving as designed and is > actually preventing data loss in this situation. > > Cheers, > > Dave. > -- > Dave Chinner > david@fromorbit.com > > _______________________________________________ > xfs mailing list > xfs@oss.sgi.com > http://oss.sgi.com/mailman/listinfo/xfs From flux@hotbox.ru Thu Jul 3 13:06:04 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=FREEMAIL_FROM,T_DKIM_INVALID autolearn=ham version=3.3.1 X-Original-To: xfs@oss.sgi.com Delivered-To: xfs@oss.sgi.com Received: from relay.sgi.com (relay1.corp.sgi.com [137.38.102.111]) by oss.sgi.com (Postfix) with ESMTP id 19AE37F37 for ; Thu, 3 Jul 2014 13:06:04 -0500 (CDT) Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by relay1.corp.sgi.com (Postfix) with ESMTP id 261D98F8033 for ; Thu, 3 Jul 2014 11:06:00 -0700 (PDT) X-ASG-Debug-ID: 1404410757-04cbb06536263250001-NocioJ Received: from mail3.ks.pochta.ru (mail3.ks.pochta.ru [62.141.94.173]) by cuda.sgi.com with ESMTP id BwxE8UlmFHMg5m5J (version=TLSv1 cipher=AES256-SHA bits=256 verify=NO) for ; Thu, 03 Jul 2014 11:05:58 -0700 (PDT) X-Barracuda-Envelope-From: flux@hotbox.ru X-Barracuda-Apparent-Source-IP: 62.141.94.173 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=qip.ru; s=dkim; h=Content-Transfer-Encoding:Content-Type:Subject:To:MIME-Version:From:Date:Message-ID; bh=Gce8XMlkvtfOFt5gIBxJjdUYQuf/XxER5znwqiSF7bM=; b=JXauweVs+bDwnJvxU2ppfjUValKt0JeWo/hnFLDMoj4ZZj461V+NfcFhYxSIxhiM9wL9qpvbdVMjIs4jQHu9ei4ef8iwD9feYfo686gaYaQIXXMetNGN/g3t/puazOnngTmmYG3zMVyMOVVF2QR3URGh6t6R4e4LLWgJazEUv/zQXccvcpQwKF/QmZhDD25C5QTPGrWn9hk9BpJYoNN3fOVsxXFynR/cZ1daVhBWMiqNRvK9in4aLwQxXyDw8uQDeRvZeug/iP6TOqvxlZgLzUYKSbqWRIpjfd9gXqnHlGBzdiQjnOYlEDj94og+yHmSeEgPwJRASQc3s9fmm+lrRA==; Received: from [95.79.188.197] (port=58170 helo=localhost.localdomain) by mail3.ks.pochta.ru with esmtpsa id 1X2lOO-0002Xj-9U for xfs@oss.sgi.com; Thu, 03 Jul 2014 22:05:56 +0400 Message-ID: <53B59B81.2030603@hotbox.ru> Date: Thu, 03 Jul 2014 22:05:53 +0400 From: flux@hotbox.ru User-Agent: Mozilla/5.0 (X11; Linux i686; rv:24.0) Gecko/20100101 Thunderbird/24.6.0 MIME-Version: 1.0 To: xfs@oss.sgi.com Subject: XFS syncs Content-Type: text/plain; charset=windows-1251; format=flowed X-ASG-Orig-Subj: XFS syncs Content-Transfer-Encoding: 7bit X-RSpam-Score: 148 X-RSpam-Report: This message is probably spam. X-Barracuda-Connect: mail3.ks.pochta.ru[62.141.94.173] X-Barracuda-Start-Time: 1404410758 X-Barracuda-Encrypted: AES256-SHA X-Barracuda-URL: http://192.48.176.25:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 X-Barracuda-Spam-Score: 0.00 X-Barracuda-Spam-Status: No, SCORE=0.00 using per-user scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.7 tests=DKIM_SIGNED, DKIM_VERIFIED, NO_REAL_NAME X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.7212 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.00 NO_REAL_NAME From: does not include a real name -0.00 DKIM_VERIFIED Domain Keys Identified Mail: signature passes verification 0.00 DKIM_SIGNED Domain Keys Identified Mail: message has a signature Hi, I issue 'mkdir abc' on my xfs partition the cut off the power. After reboot there's no 'abc' directoy. However, when I do that on ext4 the 'abc' direcory is always created after reboots. All the settings, about mount options are default for my distro. What am I missing or how do I change the things of the jounral or whatever? From stan@hardwarefreak.com Thu Jul 3 16:34:04 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: xfs@oss.sgi.com Delivered-To: xfs@oss.sgi.com Received: from relay.sgi.com (relay3.corp.sgi.com [198.149.34.15]) by oss.sgi.com (Postfix) with ESMTP id 6687C7F37 for ; Thu, 3 Jul 2014 16:34:04 -0500 (CDT) Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by relay3.corp.sgi.com (Postfix) with ESMTP id 009BEAC004 for ; Thu, 3 Jul 2014 14:34:03 -0700 (PDT) X-ASG-Debug-ID: 1404423242-04bdf056687b1240001-NocioJ Received: from greer.hardwarefreak.com (mo-65-41-216-221.sta.embarqhsd.net [65.41.216.221]) by cuda.sgi.com with ESMTP id dOAhLETCzPF271QG for ; Thu, 03 Jul 2014 14:34:02 -0700 (PDT) X-Barracuda-Envelope-From: stan@hardwarefreak.com X-Barracuda-Apparent-Source-IP: 65.41.216.221 X-Barracuda-User-Whitelist: xfs@oss.sgi.com Received: from [192.168.100.53] (gffx.hardwarefreak.com [192.168.100.53]) by greer.hardwarefreak.com (Postfix) with ESMTP id 156D86C0C6; Thu, 3 Jul 2014 16:34:02 -0500 (CDT) Message-ID: <53B5CC3B.5030108@hardwarefreak.com> Date: Thu, 03 Jul 2014 16:33:47 -0500 From: Stan Hoeppner Reply-To: stan@hardwarefreak.com User-Agent: Mozilla/5.0 (Windows NT 5.1; rv:24.0) Gecko/20100101 Thunderbird/24.6.0 MIME-Version: 1.0 To: flux@hotbox.ru, xfs@oss.sgi.com Subject: Re: XFS syncs References: <53B59B81.2030603@hotbox.ru> X-ASG-Orig-Subj: Re: XFS syncs In-Reply-To: <53B59B81.2030603@hotbox.ru> Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit X-Barracuda-Connect: mo-65-41-216-221.sta.embarqhsd.net[65.41.216.221] X-Barracuda-Start-Time: 1404423242 X-Barracuda-URL: http://192.48.157.11:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 On 7/3/2014 1:05 PM, flux@hotbox.ru wrote: > Hi, > > I issue 'mkdir abc' on my xfs partition the cut off the power. After > reboot there's no 'abc' directoy. However, when I do that on ext4 the > 'abc' direcory is always created after reboots. All the settings, about > mount options are default for my distro. What am I missing or how do I > change the things of the jounral or whatever? So, you want XFS to behave like EXT4, is this correct? Do you have an actual workload where you need to cut power immediately after issuing commands, as described above? Cheers, Stan From david@fromorbit.com Thu Jul 3 18:12:22 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: xfs@oss.sgi.com Delivered-To: xfs@oss.sgi.com Received: from relay.sgi.com (relay1.corp.sgi.com [137.38.102.111]) by oss.sgi.com (Postfix) with ESMTP id B4BAB29DF8 for ; Thu, 3 Jul 2014 18:12:22 -0500 (CDT) Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by relay1.corp.sgi.com (Postfix) with ESMTP id A54538F8040 for ; Thu, 3 Jul 2014 16:12:19 -0700 (PDT) X-ASG-Debug-ID: 1404429136-04bdf056677b39a0001-NocioJ Received: from ipmail04.adl6.internode.on.net (ipmail04.adl6.internode.on.net [150.101.137.141]) by cuda.sgi.com with ESMTP id 7xNvBhusmQHZ0eL7 for ; Thu, 03 Jul 2014 16:12:17 -0700 (PDT) X-Barracuda-Envelope-From: david@fromorbit.com X-Barracuda-Apparent-Source-IP: 150.101.137.141 X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: AghfAFjitVN5LHZ8PGdsb2JhbABagw2sbAEBAQEBAQaaVAGBChcEAQEBATg1hAMBAQQBOhwjEAgDDgoJJQ8FJQMHGhOIOgfJJxcYhViJMgeEQwWadZdhK4ExJA Received: from ppp121-44-118-124.lns20.syd6.internode.on.net (HELO dastard) ([121.44.118.124]) by ipmail04.adl6.internode.on.net with ESMTP; 04 Jul 2014 08:42:15 +0930 Received: from dave by dastard with local (Exim 4.80) (envelope-from ) id 1X2qAm-0007Fk-Ei; Fri, 04 Jul 2014 09:12:12 +1000 Date: Fri, 4 Jul 2014 09:12:12 +1000 From: Dave Chinner To: Matthias Schniedermeyer Cc: Jeff Liu , xfs@oss.sgi.com Subject: Re: Changing label of a mounted XFS filesystem Message-ID: <20140703231212.GV4453@dastard> X-ASG-Orig-Subj: Re: Changing label of a mounted XFS filesystem References: <20140703112911.GA9806@citd.de> <53B54779.40108@oracle.com> <20140703141408.GA17657@citd.de> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20140703141408.GA17657@citd.de> User-Agent: Mutt/1.5.21 (2010-09-15) X-Barracuda-Connect: ipmail04.adl6.internode.on.net[150.101.137.141] X-Barracuda-Start-Time: 1404429136 X-Barracuda-URL: http://192.48.157.11:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 X-Barracuda-Spam-Score: 0.00 X-Barracuda-Spam-Status: No, SCORE=0.00 using per-user scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.7 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.7220 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- On Thu, Jul 03, 2014 at 04:14:08PM +0200, Matthias Schniedermeyer wrote: > On 03.07.2014 20:07, Jeff Liu wrote: > > Hi, > > > > On 07/03/2014 07:29 PM, Matthias Schniedermeyer wrote: > > > Hi > > > > > > > > > Is there a particular reason that the label of a mounted XFS fileystem > > > can't be changed? > > > > Maybe since we have no user request for this function? :) Most likely. It's currently done by xfs_db, which is an offline tool. > > > The man-page of xfs_admin gives a blanket "Devices that are mounted > > > cannot be modified" but no explanation for why that is. > > > > > > In my case it's the label of the root-filesystem i want to change. So to > > > change it i would have to boot the computer with some kind of live or > > > rescure-system. Or i would need to temporarily connect the device to > > > another computer, both aren't really nice hoops to jump through just to > > > change a few characters. > > > > > > The only thing i can compare this to is ext2 and with ext2 (/boot > > > partition, so it really is ext2) i can change the label to my hearts > > > content, even the device is mounted. > > > > > > For my case i could live with it if i could remount the filesystem RO, > > > change the label and then having to reboot the machine, still nicer than > > > the other 2 options. > > > > Btrfs support set/change label on a mounted file system via ioctl(2), maybe we > > can implement it if that sounds useful to our users. > > I would vote for that, i've run into this particular brickwall several > times over the years. There's a bunch of things I'd like to make online modifiable that currently can only be done offline by xfs_db and other tools. I'll add this to the list, and hopefully when I get a little time I'll do something about it... Cheers, Dave. -- Dave Chinner david@fromorbit.com From david@fromorbit.com Thu Jul 3 18:17:34 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: xfs@oss.sgi.com Delivered-To: xfs@oss.sgi.com Received: from relay.sgi.com (relay1.corp.sgi.com [137.38.102.111]) by oss.sgi.com (Postfix) with ESMTP id 9E18929DF8 for ; Thu, 3 Jul 2014 18:17:34 -0500 (CDT) Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by relay1.corp.sgi.com (Postfix) with ESMTP id 861658F8049 for ; Thu, 3 Jul 2014 16:17:34 -0700 (PDT) X-ASG-Debug-ID: 1404429451-04bdf056697b3cc0001-NocioJ Received: from ipmail04.adl6.internode.on.net (ipmail04.adl6.internode.on.net [150.101.137.141]) by cuda.sgi.com with ESMTP id HTiv7bJ7Osy8DlBd for ; Thu, 03 Jul 2014 16:17:32 -0700 (PDT) X-Barracuda-Envelope-From: david@fromorbit.com X-Barracuda-Apparent-Source-IP: 150.101.137.141 X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: AgdfAEzjtVN5LHZ8PGdsb2JhbABagw2sbAEBAQEBAQaaVAGBChcEAQEBATg1hAMBAQQBOhwjBQsIAxgJJQ8FJQMHLYguAwkHwkgPhlAXGIVYiEoaBUkHFoQtBZp1l2ErgTI Received: from ppp121-44-118-124.lns20.syd6.internode.on.net (HELO dastard) ([121.44.118.124]) by ipmail04.adl6.internode.on.net with ESMTP; 04 Jul 2014 08:47:31 +0930 Received: from dave by dastard with local (Exim 4.80) (envelope-from ) id 1X2qFu-0007GW-Al; Fri, 04 Jul 2014 09:17:30 +1000 Date: Fri, 4 Jul 2014 09:17:30 +1000 From: Dave Chinner To: flux@hotbox.ru Cc: xfs@oss.sgi.com Subject: Re: XFS syncs Message-ID: <20140703231730.GW4453@dastard> X-ASG-Orig-Subj: Re: XFS syncs References: <53B59B81.2030603@hotbox.ru> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <53B59B81.2030603@hotbox.ru> User-Agent: Mutt/1.5.21 (2010-09-15) X-Barracuda-Connect: ipmail04.adl6.internode.on.net[150.101.137.141] X-Barracuda-Start-Time: 1404429451 X-Barracuda-URL: http://192.48.157.11:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 X-Barracuda-Spam-Score: 0.00 X-Barracuda-Spam-Status: No, SCORE=0.00 using per-user scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.7 tests=BSF_SC0_MISMATCH_TO X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.7220 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.00 BSF_SC0_MISMATCH_TO Envelope rcpt doesn't match header On Thu, Jul 03, 2014 at 10:05:53PM +0400, flux@hotbox.ru wrote: > Hi, > > I issue 'mkdir abc' on my xfs partition the cut off the power. After > reboot there's no 'abc' directoy. Because you didn't sync(1) the filesystem or fsync(2) the directory before you cut the power. Hence the change never hit the disk. > However, when I do that on ext4 > the 'abc' direcory is always created after reboots. That'll be pure fluke - ext4 delays journal writes on namespace operations just like XFS does. > All the > settings, about mount options are default for my distro. What am I > missing or how do I change the things of the jounral or whatever? If you want directory operations to hitthe disk immediately, then mount with the "-o wsync" option. Be aware, however, that this will kill performance unless you have expensive storage with a large amount of battery backed write cache in front of the disks. There's a good chance it will also cause excessive wear on SSDs due to the frequent journal writes. Cheers, Dave. -- Dave Chinner david@fromorbit.com From robin.listas@gmail.com Thu Jul 3 18:35:06 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=FREEMAIL_FROM,T_DKIM_INVALID autolearn=ham version=3.3.1 X-Original-To: xfs@oss.sgi.com Delivered-To: xfs@oss.sgi.com Received: from relay.sgi.com (relay3.corp.sgi.com [198.149.34.15]) by oss.sgi.com (Postfix) with ESMTP id 914BF29DF8 for ; Thu, 3 Jul 2014 18:35:06 -0500 (CDT) Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by relay3.corp.sgi.com (Postfix) with ESMTP id 0DC4FAC001 for ; Thu, 3 Jul 2014 16:35:02 -0700 (PDT) X-ASG-Debug-ID: 1404430497-04cbb0653626d650001-NocioJ Received: from mail-wg0-f50.google.com (mail-wg0-f50.google.com [74.125.82.50]) by cuda.sgi.com with ESMTP id e0GVx4mAIYOhFOqM (version=TLSv1 cipher=RC4-SHA bits=128 verify=NO) for ; Thu, 03 Jul 2014 16:34:58 -0700 (PDT) X-Barracuda-Envelope-From: robin.listas@gmail.com X-Barracuda-Apparent-Source-IP: 74.125.82.50 Received: by mail-wg0-f50.google.com with SMTP id m15so907714wgh.21 for ; Thu, 03 Jul 2014 16:34:56 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=sender:date:from:to:subject:in-reply-to:message-id:references :user-agent:mime-version:content-type; bh=01KJ39USuyJ29uSkwnA0uaCvs92Mtzf8EZDvtfcq+is=; b=aZcDeAjjv5M1Su7wsY5CeR3c4F4z/Hlo+HNwU3TeKkAkkFPzgso+qx3HSlZlGLzjiF 0ztovZb+0+Ed2IT/NHVj+IYRphgAE3SyZ09B8zOIns7ccBiGvzXvxoU1pSGnx/YYL6CO hKc48yfBpv5zEuhHbuFfcIsYOrAWh5NBA/J465in+a5XzzyZ0cNE/ZNWUNvuo+oKcORn 5GmNlsVbDBbF29a/plPIt8DJRvYkMEpyGa4C6We62A0Na8ePes3l3smyd6vgxb+Iy+kG x4ctJwLGv3LHEc5S8VPY0tmHLj7ndlJQ1IZfRkmBTibFDBZrdtPrOguATFLyvgaA/4fl IXkw== X-Received: by 10.180.81.1 with SMTP id v1mr13786468wix.10.1404430496887; Thu, 03 Jul 2014 16:34:56 -0700 (PDT) Received: from Telcontar.valinor (90.Red-79-150-228.dynamicIP.rima-tde.net. [79.150.228.90]) by mx.google.com with ESMTPSA id fn1sm72308562wib.18.2014.07.03.16.34.55 for (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Thu, 03 Jul 2014 16:34:56 -0700 (PDT) Sender: Carlos Robinson Received: from localhost (localhost [127.0.0.1]) by Telcontar.valinor (Postfix) with ESMTP id 6556C60E0E for ; Fri, 4 Jul 2014 01:34:53 +0200 (CEST) X-Virus-Scanned: amavisd-new at valinor Received: from Telcontar.valinor ([127.0.0.1]) by localhost (Telcontar.valinor [127.0.0.1]) (amavisd-new, port 10024) with LMTP id JnWaJ_mD4-JW for ; Fri, 4 Jul 2014 01:34:53 +0200 (CEST) Received: from localhost (localhost [127.0.0.1]) by Telcontar.valinor (Postfix) with ESMTP id 36E9060D9B for ; Fri, 4 Jul 2014 01:34:52 +0200 (CEST) Date: Fri, 4 Jul 2014 01:34:52 +0200 (CEST) From: "Carlos E. R." X-X-Sender: cer@Telcontar.valinor To: XFS mailing list Subject: Re: Got "Internal error XFS_WANT_CORRUPTED_GOTO". Filesystem needs reformatting to correct issue. In-Reply-To: <20140703094347.GU4453@dastard> X-ASG-Orig-Subj: Re: Got "Internal error XFS_WANT_CORRUPTED_GOTO". Filesystem needs reformatting to correct issue. Message-ID: References: <20140702120441.GA51757@bfoster.bfoster> <20140703094347.GU4453@dastard> User-Agent: Alpine 2.11 (LSU 23 2013-08-11) MIME-Version: 1.0 Content-Type: TEXT/PLAIN; format=flowed; charset=US-ASCII X-Barracuda-Connect: mail-wg0-f50.google.com[74.125.82.50] X-Barracuda-Start-Time: 1404430497 X-Barracuda-Encrypted: RC4-SHA X-Barracuda-URL: http://192.48.176.25:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 X-Barracuda-Spam-Score: 0.00 X-Barracuda-Spam-Status: No, SCORE=0.00 using per-user scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.7 tests=DKIM_SIGNED, DKIM_VERIFIED X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.7221 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- -0.00 DKIM_VERIFIED Domain Keys Identified Mail: signature passes verification 0.00 DKIM_SIGNED Domain Keys Identified Mail: message has a signature -----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 On Thursday, 2014-07-03 at 19:43 +1000, Dave Chinner wrote: > On Thu, Jul 03, 2014 at 05:00:47AM +0200, Carlos E. R. wrote: >> On Wednesday, 2014-07-02 at 08:04 -0400, Brian Foster wrote: >>> On Wed, Jul 02, 2014 at 11:57:25AM +0200, Carlos E. R. wrote: >> >> ... >> hibernated at least once a day, perhaps three times if I have to go >> out several times. It makes no sense to me to leave the machine >> powered doing nothing, if hibernating is so easy and reliable - till >> now. If I have to leave for more than a week, I tend to do a full >> "halt". > > Hibernation has always been suspect w.r.t. flushing filesystem > metadata. It does not guarantee that the filesystem is quiesced > and idle, it just does a sync() and hopes that is sufficient to get > the filesystem into a consistent state. The mess that this leaves is > then left to filesystem developers to play whack-a-mole with when > users have problems. Ah, but my problem would then not happen always on the same partition. It would affect others, would not? >> But soon after, it oopses: > > Point of note: there is no oops or crash occurring. XFS dumps the > stack when a corruption occurs to tell use where it was detected > and then shuts down the filesystem. Your system is still just fine > apart from not being able to access that filesystem until you > unmount it, rpeair it and mount it again. Ok, true, there is no formal "Oops". But no, the system does not remains fine, I had to hit the hardware reset or power off button to get out. >> 3 PID: 57 Comm: kworker/3:1 Tainted: P O 3.11.10-7-desktop > > What's tainting your kernel? If you remove that taint, does the > problem still occur? Sorry, I can't find that out. It is either the nvidia driver, or the vmware kernel module. I can temporarily remove it for some days, but hardly for a month. I agree that it might have unknown influence on the initial corruption, but not on doing the repair, which I do in text mode, or with another boot partition that doesn't have that driver. That is, it would not have influence on "xfs_repair", when done on a non tainted system. I don't know of a way to provoking the problem at will, in order to remove the taint for a brief period :-? >> <0.4> 2014-04-17 22:47:08 Telcontar kernel - - - [280270.081655] Restarting kernel threads ... done. >> <0.4> 2014-04-17 22:47:08 Telcontar kernel - - - [280270.086714] Restarting tasks ... done. > ..... >> <0.1> 2014-04-17 22:47:08 Telcontar kernel - - - [280271.851374] XFS: Internal error XFS_WANT_CORRUPTED_GOTO at line 1602 of file /home/abuild/rpmbuild/BUILD/kernel-desktop-3.11.10/linux-3.11/fs/xfs/xfs_alloc.c. Caller 0xffffffffa0c54fe9 > > So the corruption occurred within 2s of the kernel restarting tasks > after a hibernation. It's really looking like a hibernation issue. It's got to be related, of course. >> Question. >> >> As this always happens on recovery from hibernation, and seeing the message >> "Corruption of in-memory data detected", could it be that thawing does a bad >> memory recovery from the swap? I thought that the procedure includes some >> checksum, but I don't know for sure. > > It's the fact that the filesystem si still running and modifying > state when the snapshot is being taken that results in the snapshot > image containing an inconsistent snapshot. That then gets loaded > on thaw and it goes boom. But it only happens on the /home partition, not on the email partition, for instance, also in the same hard disk. Unless... there are probably more things writing on the home partition than on the mail partition any time. >> To me, there are two problems: >> >> 1) The corruption itself. >> 2) That xfs_repair fails to repair the filesystem. In fact, I believe >> it does not detect it! > > That's because the filesystem is likely to be consistent on disk. > The issue is in-memory corruption, not on-disk corruption, like > the messages are telling us: No, the on disk filesystem is not healthy. If I continue using it, after reboot and using "xfs_repair" several times, it fails again within a day. I got after booting (the first event): 0.1> 2014-03-15 03:53:47 Telcontar kernel - - - [ 301.857523] XFS: Internal error XFS_WANT_CORRUPTED_RETURN at line 350 of file /home/abuild/rpmbuild/BUILD/kernel-desktop-3.11.10/linux-3.11/fs/xfs/xfs_all And some hours later: <0.1> 2014-03-15 22:20:34 Telcontar kernel - - - [20151.298345] XFS: Internal error XFS_WANT_CORRUPTED_GOTO at line 1602 of file /home/abuild/rpmbuild/BUILD/kernel-desktop-3.11.10/linux-3.11/fs/xfs/xfs_allo So, instead of using xfs_repair, I re-formatted and restored backup, which worked for a month till next event. - -- Cheers, Carlos E. R. (from 13.1 x86_64 "Bottle" at Telcontar) -----BEGIN PGP SIGNATURE----- Version: GnuPG v2.0.22 (GNU/Linux) iEYEARECAAYFAlO16JwACgkQtTMYHG2NR9VmzQCdHaeuKC3UkLWWzHRewx7wTC/N zKAAn3VKi2bBYLrUA4edokFQ8RWXGm5z =F5YK -----END PGP SIGNATURE----- From david@fromorbit.com Thu Jul 3 19:06:52 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: xfs@oss.sgi.com Delivered-To: xfs@oss.sgi.com Received: from relay.sgi.com (relay3.corp.sgi.com [198.149.34.15]) by oss.sgi.com (Postfix) with ESMTP id 3A55B29DF8 for ; Thu, 3 Jul 2014 19:06:52 -0500 (CDT) Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by relay3.corp.sgi.com (Postfix) with ESMTP id ABE6EAC001 for ; Thu, 3 Jul 2014 17:06:48 -0700 (PDT) X-ASG-Debug-ID: 1404432405-04cbb0653826e710001-NocioJ Received: from ipmail04.adl6.internode.on.net (ipmail04.adl6.internode.on.net [150.101.137.141]) by cuda.sgi.com with ESMTP id K9jQg0sdSk7i28j9 for ; Thu, 03 Jul 2014 17:06:46 -0700 (PDT) X-Barracuda-Envelope-From: david@fromorbit.com X-Barracuda-Apparent-Source-IP: 150.101.137.141 X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: AghfAD7vtVN5LHZ8PGdsb2JhbABagw2sbAEBAQEBAQaaVAGBCxcEAQEBATg1hAMBAQQBOhwjBQsIAxgJJQ8FJQMHGhOIOgfJMBcYhViIUBACAQFOB4RDBZp1i0yKQYFUKw Received: from ppp121-44-118-124.lns20.syd6.internode.on.net (HELO dastard) ([121.44.118.124]) by ipmail04.adl6.internode.on.net with ESMTP; 04 Jul 2014 09:34:28 +0930 Received: from dave by dastard with local (Exim 4.80) (envelope-from ) id 1X2qzK-0007Lw-Hi; Fri, 04 Jul 2014 10:04:26 +1000 Date: Fri, 4 Jul 2014 10:04:26 +1000 From: Dave Chinner To: "Carlos E. R." Cc: XFS mailing list Subject: Re: Got "Internal error XFS_WANT_CORRUPTED_GOTO". Filesystem needs reformatting to correct issue. Message-ID: <20140704000426.GX4453@dastard> X-ASG-Orig-Subj: Re: Got "Internal error XFS_WANT_CORRUPTED_GOTO". Filesystem needs reformatting to correct issue. References: <20140702120441.GA51757@bfoster.bfoster> <20140703094347.GU4453@dastard> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.5.21 (2010-09-15) X-Barracuda-Connect: ipmail04.adl6.internode.on.net[150.101.137.141] X-Barracuda-Start-Time: 1404432405 X-Barracuda-URL: http://192.48.176.25:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 X-Barracuda-Spam-Score: 0.00 X-Barracuda-Spam-Status: No, SCORE=0.00 using per-user scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.7 tests=BSF_SC0_MISMATCH_TO X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.7222 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.00 BSF_SC0_MISMATCH_TO Envelope rcpt doesn't match header On Fri, Jul 04, 2014 at 01:34:52AM +0200, Carlos E. R. wrote: > -----BEGIN PGP SIGNED MESSAGE----- > Hash: SHA1 > > > > On Thursday, 2014-07-03 at 19:43 +1000, Dave Chinner wrote: > >On Thu, Jul 03, 2014 at 05:00:47AM +0200, Carlos E. R. wrote: > >>On Wednesday, 2014-07-02 at 08:04 -0400, Brian Foster wrote: > >>>On Wed, Jul 02, 2014 at 11:57:25AM +0200, Carlos E. R. wrote: > >> > >>... > > >>hibernated at least once a day, perhaps three times if I have to go > >>out several times. It makes no sense to me to leave the machine > >>powered doing nothing, if hibernating is so easy and reliable - till > >>now. If I have to leave for more than a week, I tend to do a full > >>"halt". > > > >Hibernation has always been suspect w.r.t. flushing filesystem > >metadata. It does not guarantee that the filesystem is quiesced > >and idle, it just does a sync() and hopes that is sufficient to get > >the filesystem into a consistent state. The mess that this leaves is > >then left to filesystem developers to play whack-a-mole with when > >users have problems. > > > Ah, but my problem would then not happen always on the same > partition. It would affect others, would not? It needs a busy/dirty filesystem. if the other filesystems are mostly idle, then they are unlikely to trip over the problem. > >>But soon after, it oopses: > > > >Point of note: there is no oops or crash occurring. XFS dumps the > >stack when a corruption occurs to tell use where it was detected > >and then shuts down the filesystem. Your system is still just fine > >apart from not being able to access that filesystem until you > >unmount it, rpeair it and mount it again. > > Ok, true, there is no formal "Oops". > > But no, the system does not remains fine, I had to hit the hardware > reset or power off button to get out. That usually only happens when the root filesystem is shut down and you can't access any of the binaries needed to run the system. Is the filesystem that is shutting down the root? > >>Question. > >> > >>As this always happens on recovery from hibernation, and seeing the message > >>"Corruption of in-memory data detected", could it be that thawing does a bad > >>memory recovery from the swap? I thought that the procedure includes some > >>checksum, but I don't know for sure. > > > >It's the fact that the filesystem si still running and modifying > >state when the snapshot is being taken that results in the snapshot > >image containing an inconsistent snapshot. That then gets loaded > >on thaw and it goes boom. > > But it only happens on the /home partition, not on the email > partition, for instance, also in the same hard disk. /home is typically where all the application have open files and are writing data to. Email partitions are unlikely to have problems because email programs are pretty good about using fsync() to ensure your email doesn't go missing and so aren't dirty at the time of a hibernation. > Unless... there are probably more things writing on the home > partition than on the mail partition any time. *nod* > >>To me, there are two problems: > >> > >> 1) The corruption itself. > >> 2) That xfs_repair fails to repair the filesystem. In fact, I believe > >> it does not detect it! > > > >That's because the filesystem is likely to be consistent on disk. > >The issue is in-memory corruption, not on-disk corruption, like > >the messages are telling us: > > No, the on disk filesystem is not healthy. If I continue using it, > after reboot and using "xfs_repair" several times, it fails again > within a day. After at least one hibernation and thaw cycle, right? FWIW, to rule out other issues with repair, you should probably upgrade to the 3.2.0 xfsprogs release... Cheers, Dave. -- Dave Chinner david@fromorbit.com From robin.listas@gmail.com Thu Jul 3 20:29:52 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=FREEMAIL_FROM,T_DKIM_INVALID autolearn=ham version=3.3.1 X-Original-To: xfs@oss.sgi.com Delivered-To: xfs@oss.sgi.com Received: from relay.sgi.com (relay2.corp.sgi.com [137.38.102.29]) by oss.sgi.com (Postfix) with ESMTP id 9A47A29DF8 for ; Thu, 3 Jul 2014 20:29:52 -0500 (CDT) Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by relay2.corp.sgi.com (Postfix) with ESMTP id 9CA6E30405F for ; Thu, 3 Jul 2014 18:29:49 -0700 (PDT) X-ASG-Debug-ID: 1404437387-04cbb06536271100001-NocioJ Received: from mail-we0-f177.google.com (mail-we0-f177.google.com [74.125.82.177]) by cuda.sgi.com with ESMTP id by6nXAmenHuXleua (version=TLSv1 cipher=RC4-SHA bits=128 verify=NO) for ; Thu, 03 Jul 2014 18:29:48 -0700 (PDT) X-Barracuda-Envelope-From: robin.listas@gmail.com X-Barracuda-Apparent-Source-IP: 74.125.82.177 Received: by mail-we0-f177.google.com with SMTP id u56so988887wes.22 for ; Thu, 03 Jul 2014 18:29:47 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=sender:date:from:to:subject:in-reply-to:message-id:references :user-agent:mime-version:content-type; bh=2nBPpTF701kJS4EBKSBChx6BSu/BaKZm6T9Tqabh85c=; b=SZa3AEUpFNqRniprgCMvumxzkBZ7daMZ96ur/PlW7lW7IDgbfJwFs59lwWAyiC62rK 9bXzBFsfltt0xDpWgsJRViAhsg/HzSB/b22P1r9txA4lE7lp+6upHTd18u/K4wRBvAjk 0dnKxuwMLEaYx5e9OSBP8QqadlsqFhOVGW194bndWDMgEtfmAFdpJU9YKhQgkKTWwpwk TOHl3gTt1H0BeW7ghUyiMqc0RtX2dr2Kh+C7rDe+pBPfLmiae9Ky6RLpgbMahs+7op13 6xwj9nvCjQ9it5r2xHNW9blEhvh5cObXVR/Cdi0Fq13elyngd79mt09PmlP/qJgvfH5q GVZA== X-Received: by 10.194.92.196 with SMTP id co4mr8684073wjb.4.1404437387285; Thu, 03 Jul 2014 18:29:47 -0700 (PDT) Received: from Telcontar.valinor (90.Red-79-150-228.dynamicIP.rima-tde.net. [79.150.228.90]) by mx.google.com with ESMTPSA id i12sm65550940wjr.32.2014.07.03.18.29.45 for (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Thu, 03 Jul 2014 18:29:46 -0700 (PDT) Sender: Carlos Robinson Received: from localhost (localhost [127.0.0.1]) by Telcontar.valinor (Postfix) with ESMTP id DF97960E0E for ; Fri, 4 Jul 2014 03:29:43 +0200 (CEST) X-Virus-Scanned: amavisd-new at valinor Received: from Telcontar.valinor ([127.0.0.1]) by localhost (Telcontar.valinor [127.0.0.1]) (amavisd-new, port 10024) with LMTP id Wu7YMSMDDQwK for ; Fri, 4 Jul 2014 03:29:43 +0200 (CEST) Received: from localhost (localhost [127.0.0.1]) by Telcontar.valinor (Postfix) with ESMTP id B9CE860D9B for ; Fri, 4 Jul 2014 03:29:43 +0200 (CEST) Date: Fri, 4 Jul 2014 03:29:31 +0200 (CEST) From: "Carlos E. R." X-X-Sender: cer@Telcontar.valinor To: XFS mailing list Subject: Re: Got "Internal error XFS_WANT_CORRUPTED_GOTO". Filesystem needs reformatting to correct issue. In-Reply-To: <20140704000426.GX4453@dastard> X-ASG-Orig-Subj: Re: Got "Internal error XFS_WANT_CORRUPTED_GOTO". Filesystem needs reformatting to correct issue. Message-ID: References: <20140702120441.GA51757@bfoster.bfoster> <20140703094347.GU4453@dastard> <20140704000426.GX4453@dastard> User-Agent: Alpine 2.11 (LSU 23 2013-08-11) MIME-Version: 1.0 Content-Type: TEXT/PLAIN; format=flowed; charset=US-ASCII X-Barracuda-Connect: mail-we0-f177.google.com[74.125.82.177] X-Barracuda-Start-Time: 1404437388 X-Barracuda-Encrypted: RC4-SHA X-Barracuda-URL: http://192.48.176.25:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 X-Barracuda-Spam-Score: 0.00 X-Barracuda-Spam-Status: No, SCORE=0.00 using per-user scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.7 tests=DKIM_SIGNED, DKIM_VERIFIED X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.7224 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- -0.00 DKIM_VERIFIED Domain Keys Identified Mail: signature passes verification 0.00 DKIM_SIGNED Domain Keys Identified Mail: message has a signature -----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 On Friday, 2014-07-04 at 10:04 +1000, Dave Chinner wrote: > On Fri, Jul 04, 2014 at 01:34:52AM +0200, Carlos E. R. wrote: >> Ah, but my problem would then not happen always on the same >> partition. It would affect others, would not? > > It needs a busy/dirty filesystem. if the other filesystems are > mostly idle, then they are unlikely to trip over the problem. Right... >> Ok, true, there is no formal "Oops". >> >> But no, the system does not remains fine, I had to hit the hardware >> reset or power off button to get out. > > That usually only happens when the root filesystem is shut down and > you can't access any of the binaries needed to run the system. Is > the filesystem that is shutting down the root? No, it is not. Root is separate and using ext4. The problematic one is /home. What I did, as far I remember, was, when I noticed that home had failed and was read only, to switch to runlevel 1, umount /home (killing the apps that were still using it), then tried to mount it again to replay the log, prior to using xfs-repair on it. Mount hung. ctrl-alt-supr failed, or appeared to fail. So reset button... >> But it only happens on the /home partition, not on the email >> partition, for instance, also in the same hard disk. > > /home is typically where all the application have open files and are > writing data to. > > Email partitions are unlikely to have problems because email > programs are pretty good about using fsync() to ensure your email > doesn't go missing and so aren't dirty at the time of a hibernation. Ok, understood. >> No, the on disk filesystem is not healthy. If I continue using it, >> after reboot and using "xfs_repair" several times, it fails again >> within a day. > > After at least one hibernation and thaw cycle, right? Yes. 3, I think. But there were kernel errors right after boot (XFS_WANT_CORRUPTED_RETURN). > FWIW, to rule out other issues with repair, you should probably > upgrade to the 3.2.0 xfsprogs release... I may try that... I see it is available on http://download.opensuse.org/repositories/filesystems/openSUSE_13.1/, version xfsprogs-3.2.0 Ok, I'll work on it. - -- Cheers, Carlos E. R. (from 13.1 x86_64 "Bottle" at Telcontar) -----BEGIN PGP SIGNATURE----- Version: GnuPG v2.0.22 (GNU/Linux) iEYEARECAAYFAlO2A4cACgkQtTMYHG2NR9UABgCfZm0bbTGbOU80+V7BKyCi9cdB yqAAn16udhFKpvx+ABdb/rplzZV7Kal+ =jaUl -----END PGP SIGNATURE----- From david@fromorbit.com Thu Jul 3 20:40:18 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: xfs@oss.sgi.com Delivered-To: xfs@oss.sgi.com Received: from relay.sgi.com (relay3.corp.sgi.com [198.149.34.15]) by oss.sgi.com (Postfix) with ESMTP id 9FCBC29DF8 for ; Thu, 3 Jul 2014 20:40:18 -0500 (CDT) Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by relay3.corp.sgi.com (Postfix) with ESMTP id 378E6AC001 for ; Thu, 3 Jul 2014 18:40:14 -0700 (PDT) X-ASG-Debug-ID: 1404438012-04bdf056667b82b0001-NocioJ Received: from ipmail04.adl6.internode.on.net (ipmail04.adl6.internode.on.net [150.101.137.141]) by cuda.sgi.com with ESMTP id dVWM7zBm8kgOlond for ; Thu, 03 Jul 2014 18:40:12 -0700 (PDT) X-Barracuda-Envelope-From: david@fromorbit.com X-Barracuda-Apparent-Source-IP: 150.101.137.141 X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: AgVfAIQFtlN5LHZ8PGdsb2JhbABagw2sbQEBAQEBAQaaVAGBDBcEAQEBATg1hAMBAQU6HCMQCAMYCSUPBSUDBxoTiEHJORcYhViIZE4HhEMFmnWLTIpBgVQrgTEj Received: from ppp121-44-118-124.lns20.syd6.internode.on.net (HELO dastard) ([121.44.118.124]) by ipmail04.adl6.internode.on.net with ESMTP; 04 Jul 2014 11:10:09 +0930 Received: from dave by dastard with local (Exim 4.80) (envelope-from ) id 1X2sTw-0007YH-Ci; Fri, 04 Jul 2014 11:40:08 +1000 Date: Fri, 4 Jul 2014 11:40:08 +1000 From: Dave Chinner To: "Carlos E. R." Cc: XFS mailing list Subject: Re: Got "Internal error XFS_WANT_CORRUPTED_GOTO". Filesystem needs reformatting to correct issue. Message-ID: <20140704014008.GI9508@dastard> X-ASG-Orig-Subj: Re: Got "Internal error XFS_WANT_CORRUPTED_GOTO". Filesystem needs reformatting to correct issue. References: <20140702120441.GA51757@bfoster.bfoster> <20140703094347.GU4453@dastard> <20140704000426.GX4453@dastard> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.5.21 (2010-09-15) X-Barracuda-Connect: ipmail04.adl6.internode.on.net[150.101.137.141] X-Barracuda-Start-Time: 1404438012 X-Barracuda-URL: http://192.48.157.11:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 X-Barracuda-Spam-Score: 0.00 X-Barracuda-Spam-Status: No, SCORE=0.00 using per-user scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.7 tests=BSF_SC0_MISMATCH_TO X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.7224 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.00 BSF_SC0_MISMATCH_TO Envelope rcpt doesn't match header On Fri, Jul 04, 2014 at 03:29:31AM +0200, Carlos E. R. wrote: > On Friday, 2014-07-04 at 10:04 +1000, Dave Chinner wrote: > >On Fri, Jul 04, 2014 at 01:34:52AM +0200, Carlos E. R. wrote: > >>Ok, true, there is no formal "Oops". > >> > >>But no, the system does not remains fine, I had to hit the hardware > >>reset or power off button to get out. > > > >That usually only happens when the root filesystem is shut down and > >you can't access any of the binaries needed to run the system. Is > >the filesystem that is shutting down the root? > > No, it is not. Root is separate and using ext4. The problematic one > is /home. > > > What I did, as far I remember, was, when I noticed that home had > failed and was read only, to switch to runlevel 1, umount /home > (killing the apps that were still using it), then tried to mount it > again to replay the log, prior to using xfs-repair on it. Mount > hung. ctrl-alt-supr failed, or appeared to fail. So reset button... That's a completely different issue to having a shutdown filesystem hang your system. That's a mount problem, and likely a known issue. You need to be specific when describing a problem, otherwise we waste time going down the wrong paths. > >>No, the on disk filesystem is not healthy. If I continue using it, > >>after reboot and using "xfs_repair" several times, it fails again > >>within a day. > > > >After at least one hibernation and thaw cycle, right? > > Yes. 3, I think. Then hibernation has caused the corruption. It may take some time for the corruption to be detected, but there isn't any doubt in my mind that hibernation is the cause of your problems. So, until we have kernel fixes, you'd do best to turn off hibernation. If you can't live with leaving your machine powered up or switching it off, then use suspend-to-ram rather than suspend-to-disk to avoid the problematic snapshot/restore situation.... Cheers, Dave. -- Dave Chinner david@fromorbit.com From robin.listas@gmail.com Thu Jul 3 21:42:51 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=FREEMAIL_FROM,T_DKIM_INVALID autolearn=ham version=3.3.1 X-Original-To: xfs@oss.sgi.com Delivered-To: xfs@oss.sgi.com Received: from relay.sgi.com (relay2.corp.sgi.com [137.38.102.29]) by oss.sgi.com (Postfix) with ESMTP id BC9B029DF8 for ; Thu, 3 Jul 2014 21:42:51 -0500 (CDT) Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by relay2.corp.sgi.com (Postfix) with ESMTP id 99E6E304051 for ; Thu, 3 Jul 2014 19:42:51 -0700 (PDT) X-ASG-Debug-ID: 1404441768-04cbb06536273680001-NocioJ Received: from mail-wi0-f171.google.com (mail-wi0-f171.google.com [209.85.212.171]) by cuda.sgi.com with ESMTP id YBlWDVqIvd8OQnRl (version=TLSv1 cipher=RC4-SHA bits=128 verify=NO) for ; Thu, 03 Jul 2014 19:42:49 -0700 (PDT) X-Barracuda-Envelope-From: robin.listas@gmail.com X-Barracuda-Apparent-Source-IP: 209.85.212.171 X-Barracuda-IPDD: Level1 [gmail.com/209.85.212.171] Received: by mail-wi0-f171.google.com with SMTP id n15so12359303wiw.16 for ; Thu, 03 Jul 2014 19:42:48 -0700 (PDT) X-Barracuda-IPDD: Level1 [gmail.com/209.85.212.171] X-Barracuda-IPDD: Level1 [gmail.com/209.85.212.171] DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=sender:date:from:to:subject:in-reply-to:message-id:references :user-agent:mime-version:content-type; bh=2Mb/blo+inCy7Qw5ZpuWD+v0i6wK09RjVfJEtZ8ryxg=; b=yXEctPZbKuxYCXYRIZxttX4dHqRH4K1O1V0qmi6zybChi7DDcNiahNGX7uG952fZtC kPzU4fEwbTAOdVP85tm56DdkdAanNAp4HHAzuDUjffsj7iBUv09xUmibeefci7OQ5QRS K+nVpTQfT4IcDCZGPo3EnmjR/LtFmqCcE27t4G1P+sHCufGjGZ8cQAqX/w4BZ3EOQBt6 noOP2DIbyXXZmR6B9QTyWiJ6VjP7eyx/JN3aHiY4QwMbATp7ZdjNL101BKQhObUVLmCd K9m+Gaxz3mwjKY3KUVLH7bnY4j4toH9xzfCUfW4xQ76o1g0bcCBHGdvEG1/XDmq0W4Ew FC4w== X-Received: by 10.194.89.138 with SMTP id bo10mr8939252wjb.22.1404441768477; Thu, 03 Jul 2014 19:42:48 -0700 (PDT) Received: from Telcontar.valinor (90.Red-79-150-228.dynamicIP.rima-tde.net. [79.150.228.90]) by mx.google.com with ESMTPSA id pq9sm65859103wjc.35.2014.07.03.19.42.46 for (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Thu, 03 Jul 2014 19:42:47 -0700 (PDT) Sender: Carlos Robinson Received: from localhost (localhost [127.0.0.1]) by Telcontar.valinor (Postfix) with ESMTP id 3AD0460E0E for ; Fri, 4 Jul 2014 04:42:45 +0200 (CEST) X-Virus-Scanned: amavisd-new at valinor Received: from Telcontar.valinor ([127.0.0.1]) by localhost (Telcontar.valinor [127.0.0.1]) (amavisd-new, port 10024) with LMTP id hSXoqrRhZp0X for ; Fri, 4 Jul 2014 04:42:45 +0200 (CEST) Received: from localhost (localhost [127.0.0.1]) by Telcontar.valinor (Postfix) with ESMTP id 1367060D9B for ; Fri, 4 Jul 2014 04:42:44 +0200 (CEST) Date: Fri, 4 Jul 2014 04:42:44 +0200 (CEST) From: "Carlos E. R." X-X-Sender: cer@Telcontar.valinor To: XFS mailing list Subject: Re: Got "Internal error XFS_WANT_CORRUPTED_GOTO". Filesystem needs reformatting to correct issue. In-Reply-To: <20140704014008.GI9508@dastard> X-ASG-Orig-Subj: Re: Got "Internal error XFS_WANT_CORRUPTED_GOTO". Filesystem needs reformatting to correct issue. Message-ID: References: <20140702120441.GA51757@bfoster.bfoster> <20140703094347.GU4453@dastard> <20140704000426.GX4453@dastard> <20140704014008.GI9508@dastard> User-Agent: Alpine 2.11 (LSU 23 2013-08-11) MIME-Version: 1.0 Content-Type: TEXT/PLAIN; format=flowed; charset=US-ASCII X-Barracuda-Connect: mail-wi0-f171.google.com[209.85.212.171] X-Barracuda-Start-Time: 1404441769 X-Barracuda-Encrypted: RC4-SHA X-Barracuda-URL: http://192.48.176.25:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 X-Barracuda-Spam-Score: 0.00 X-Barracuda-Spam-Status: No, SCORE=0.00 using per-user scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.7 tests=DKIM_SIGNED, DKIM_VERIFIED X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.7225 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- -0.00 DKIM_VERIFIED Domain Keys Identified Mail: signature passes verification 0.00 DKIM_SIGNED Domain Keys Identified Mail: message has a signature -----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 On Friday, 2014-07-04 at 11:40 +1000, Dave Chinner wrote: > On Fri, Jul 04, 2014 at 03:29:31AM +0200, Carlos E. R. wrote: >> No, it is not. Root is separate and using ext4. The problematic one >> is /home. >> >> >> What I did, as far I remember, was, when I noticed that home had >> failed and was read only, to switch to runlevel 1, umount /home >> (killing the apps that were still using it), then tried to mount it >> again to replay the log, prior to using xfs-repair on it. Mount >> hung. ctrl-alt-supr failed, or appeared to fail. So reset button... > > That's a completely different issue to having a shutdown filesystem > hang your system. That's a mount problem, and likely a known issue. > You need to be specific when describing a problem, otherwise we > waste time going down the wrong paths. Sorry for the misunderstanding. But halt/reboot did hung, even if it was after a failed mount. I was trying to recover the system, remember, and I'm trying to remember what exactly I did do, from memory, not written records. >>>> No, the on disk filesystem is not healthy. If I continue using it, >>>> after reboot and using "xfs_repair" several times, it fails again >>>> within a day. >>> >>> After at least one hibernation and thaw cycle, right? >> >> Yes. 3, I think. > > Then hibernation has caused the corruption. It may take some time > for the corruption to be detected, but there isn't any doubt in my > mind that hibernation is the cause of your problems. Wait. The sequence was: healthy system several hibernation cycles. failure on come back from hibernation, with kernel error: XFS_WANT_CORRUPTED_GOTO. reboot - kernel error messages: XFS_WANT_CORRUPTED_RETURN, which I probably did not see. repair filesytem several hibernation cycles during some hours. failure on come back from hibernation, with kernel error: XFS_WANT_CORRUPTED_GOTO See that there were kernel error messages right after rebooting, which I think I did not see at the time, because had I seen them I would have rebooted again, and I did not. - From the log, already posted: <0.5> 2014-03-15 03:49:42 Telcontar kernel - - - [ 19.173599] XFS (sdd5): Mounting Filesystem <0.5> 2014-03-15 03:49:42 Telcontar kernel - - - [ 19.377918] XFS (sdd5): Starting recovery (logdev: internal) <0.5> 2014-03-15 03:49:42 Telcontar kernel - - - [ 19.747914] XFS (sdd5): Ending recovery (logdev: internal) <3.6> 2014-03-15 03:53:01 Telcontar systemd 4987 - - Starting Default. <3.6> 2014-03-15 03:53:01 Telcontar systemd 4987 - - Reached target Default. <3.6> 2014-03-15 03:53:01 Telcontar systemd 4987 - - Startup finished in 57ms. <3.6> 2014-03-15 03:53:01 Telcontar systemd 1 - - Started User Manager for 9. <0.1> 2014-03-15 03:53:47 Telcontar kernel - - - [ 301.857523] XFS: Internal error XFS_WANT_CORRUPTED_RETURN at line 350 of file /home/abuild/rpmbuild/BUILD/kernel-desktop-3.11.10/linux-3.11/fs/xfs/xfs_all Then I think I run xfs-repair, which did not complain, and I continued working. Within the day, after 3 hibernations, it failed again with XFS_WANT_CORRUPTED_GOTO, and I decided I had to reboot, backup, reformat, restore. > So, until we have kernel fixes, you'd do best to turn off > hibernation. If you can't live with leaving your machine powered up > or switching it off, then use suspend-to-ram rather than > suspend-to-disk to avoid the problematic snapshot/restore > situation.... Impossible... this is a desktop, not a laptop. Suspend to ram is high risk, even if it works (which I think it doesn't). If the failure is unavoidable, I'll reformat the partition as ext4 instead... which I do not like, but such is life. But before that, I'll try upgrade xfsprogs. - -- Cheers, Carlos E. R. (from 13.1 x86_64 "Bottle" at Telcontar) -----BEGIN PGP SIGNATURE----- Version: GnuPG v2.0.22 (GNU/Linux) iEYEARECAAYFAlO2FKQACgkQtTMYHG2NR9USxgCeOdJeJORl2JpnsnhqtXDj2ZCL 3IIAniMFd9X+ETWr3gVPHYq7SFwIPKSt =WPe7 -----END PGP SIGNATURE----- From robin.listas@gmail.com Thu Jul 3 22:12:18 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=FREEMAIL_FROM,T_DKIM_INVALID autolearn=ham version=3.3.1 X-Original-To: xfs@oss.sgi.com Delivered-To: xfs@oss.sgi.com Received: from relay.sgi.com (relay1.corp.sgi.com [137.38.102.111]) by oss.sgi.com (Postfix) with ESMTP id 6EAD329DF8 for ; Thu, 3 Jul 2014 22:12:18 -0500 (CDT) Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by relay1.corp.sgi.com (Postfix) with ESMTP id 359198F8049 for ; Thu, 3 Jul 2014 20:12:15 -0700 (PDT) X-ASG-Debug-ID: 1404443532-04bdf056697bba40001-NocioJ Received: from mail-wg0-f42.google.com (mail-wg0-f42.google.com [74.125.82.42]) by cuda.sgi.com with ESMTP id avjWs4HLQGI9SThZ (version=TLSv1 cipher=RC4-SHA bits=128 verify=NO) for ; Thu, 03 Jul 2014 20:12:13 -0700 (PDT) X-Barracuda-Envelope-From: robin.listas@gmail.com X-Barracuda-Apparent-Source-IP: 74.125.82.42 Received: by mail-wg0-f42.google.com with SMTP id z12so1037920wgg.25 for ; Thu, 03 Jul 2014 20:12:12 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=sender:date:from:to:subject:in-reply-to:message-id:references :user-agent:mime-version:content-type; bh=qSPZS91/CGvTotqg0oi2X2wbroYyCoidUVHE9ZBBrDU=; b=aLu5veuT0qHO7VnLAOxi25rO/wg1T9Ne5RVuH7Esf5MuZWKu87uCAt6yaLu94DXaJD ZPzAumsUa9pv3INkL9oStHc0nvzubsEWtsYOpR+A154S6adOtpTsN/szyGKcOtxfTzca NKU+kYRWPil0vJyrG7O5DhpXMiWqW+SNwhbRl0Riipixno60EZUxevcPPqwoHXnXZoxz f8cP6gmMcUVpv1RAunUlzIxVTi04l5aiTFMwBVqgW6o9u8zBPwRibZrsM5yXqlyk0npR y5kamOLeF8+O3b28Xjk+jHjsa+7R82Ub/l0k/s5lEPEePjRsvP/CAAX0o9+Plp+yAks3 G/6A== X-Received: by 10.180.89.143 with SMTP id bo15mr14587101wib.78.1404443531990; Thu, 03 Jul 2014 20:12:11 -0700 (PDT) Received: from Telcontar.valinor (90.Red-79-150-228.dynamicIP.rima-tde.net. [79.150.228.90]) by mx.google.com with ESMTPSA id do5sm73954169wib.16.2014.07.03.20.12.10 for (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Thu, 03 Jul 2014 20:12:11 -0700 (PDT) Sender: Carlos Robinson Received: from localhost (localhost [127.0.0.1]) by Telcontar.valinor (Postfix) with ESMTP id ED25B60E0E for ; Fri, 4 Jul 2014 05:12:08 +0200 (CEST) X-Virus-Scanned: amavisd-new at valinor Received: from Telcontar.valinor ([127.0.0.1]) by localhost (Telcontar.valinor [127.0.0.1]) (amavisd-new, port 10024) with LMTP id vxCaF4Yg-PIn for ; Fri, 4 Jul 2014 05:12:08 +0200 (CEST) Received: from localhost (localhost [127.0.0.1]) by Telcontar.valinor (Postfix) with ESMTP id C72AC60D9B for ; Fri, 4 Jul 2014 05:12:08 +0200 (CEST) Date: Fri, 4 Jul 2014 05:12:00 +0200 (CEST) From: "Carlos E. R." X-X-Sender: cer@Telcontar.valinor To: XFS mailing list Subject: Re: Got "Internal error XFS_WANT_CORRUPTED_GOTO". Filesystem needs reformatting to correct issue. In-Reply-To: X-ASG-Orig-Subj: Re: Got "Internal error XFS_WANT_CORRUPTED_GOTO". Filesystem needs reformatting to correct issue. Message-ID: References: <20140702120441.GA51757@bfoster.bfoster> <20140703094347.GU4453@dastard> <20140704000426.GX4453@dastard> <20140704014008.GI9508@dastard> User-Agent: Alpine 2.11 (LSU 23 2013-08-11) MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII; format=flowed X-Barracuda-Connect: mail-wg0-f42.google.com[74.125.82.42] X-Barracuda-Start-Time: 1404443532 X-Barracuda-Encrypted: RC4-SHA X-Barracuda-URL: http://192.48.157.11:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 X-Barracuda-Spam-Score: 0.00 X-Barracuda-Spam-Status: No, SCORE=0.00 using per-user scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.7 tests=DKIM_SIGNED, DKIM_VERIFIED X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.7225 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- -0.00 DKIM_VERIFIED Domain Keys Identified Mail: signature passes verification 0.00 DKIM_SIGNED Domain Keys Identified Mail: message has a signature -----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 On Friday, 2014-07-04 at 04:42 +0200, Carlos E. R. wrote: > On Friday, 2014-07-04 at 11:40 +1000, Dave Chinner wrote: >> So, until we have kernel fixes, you'd do best to turn off >> hibernation. If you can't live with leaving your machine powered up >> or switching it off, then use suspend-to-ram rather than >> suspend-to-disk to avoid the problematic snapshot/restore >> situation.... Forgot to mention: I have been working the same way for years on this same machine, and with the same software versions for some months. Only when I replaced the hard disk that contains home, mail, and some other things, the problem started. The partitions not cloned; I partitioned and formatted fresh (much bigger partitions), with gparted, and copied files over with rsync. - -- Cheers, Carlos E. R. (from 13.1 x86_64 "Bottle" at Telcontar) -----BEGIN PGP SIGNATURE----- Version: GnuPG v2.0.22 (GNU/Linux) iEYEARECAAYFAlO2G4gACgkQtTMYHG2NR9UtpACdFnxw8/nZKAVI/Hy7s2bVF41j /+8AoJLmY2ZuyX+kKeXNzo9/6BOVx4T0 =pZAc -----END PGP SIGNATURE----- From dave@fromorbit.com Fri Jul 4 00:57:31 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: xfs@oss.sgi.com Delivered-To: xfs@oss.sgi.com Received: from relay.sgi.com (relay3.corp.sgi.com [198.149.34.15]) by oss.sgi.com (Postfix) with ESMTP id B74007F37 for ; Fri, 4 Jul 2014 00:57:31 -0500 (CDT) Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by relay3.corp.sgi.com (Postfix) with ESMTP id 2DA05AC001 for ; Thu, 3 Jul 2014 22:57:31 -0700 (PDT) X-ASG-Debug-ID: 1404453448-04cb6c76cf4483e0001-NocioJ Received: from ipmail05.adl6.internode.on.net (ipmail05.adl6.internode.on.net [150.101.137.143]) by cuda.sgi.com with ESMTP id zTx1Oup0nrqfVUvr for ; Thu, 03 Jul 2014 22:57:28 -0700 (PDT) X-Barracuda-Envelope-From: dave@fromorbit.com X-Barracuda-Apparent-Source-IP: 150.101.137.143 X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: AlpbAA5BtlN5LHZ8PGdsb2JhbABagw2IUqQeAgEBBppWgQ4XBAEBAQE4NYQDAQEFJy8jEAgYMTkDBxQZiEHKBYVwiGVChFUFslcrgTI Received: from ppp121-44-118-124.lns20.syd6.internode.on.net (HELO dastard) ([121.44.118.124]) by ipmail05.adl6.internode.on.net with ESMTP; 04 Jul 2014 15:27:18 +0930 Received: from disappointment.disaster.area ([192.168.1.110] helo=disappointment) by dastard with esmtp (Exim 4.80) (envelope-from ) id 1X2wUn-00083B-Ds; Fri, 04 Jul 2014 15:57:17 +1000 Received: from dave by disappointment with local (Exim 4.82_1-5b7a7c0-XX) (envelope-from ) id 1X2wUn-0000cD-D8; Fri, 04 Jul 2014 15:57:17 +1000 From: Dave Chinner To: xfs@oss.sgi.com Cc: arekm@maven.pl Subject: [PATCH 5/6] repair: fix quota inode handling in secondary superblocks Date: Fri, 4 Jul 2014 15:57:14 +1000 X-ASG-Orig-Subj: [PATCH 5/6] repair: fix quota inode handling in secondary superblocks Message-Id: <1404453435-1915-6-git-send-email-david@fromorbit.com> X-Mailer: git-send-email 2.0.0 In-Reply-To: <1404453435-1915-1-git-send-email-david@fromorbit.com> References: <1404453435-1915-1-git-send-email-david@fromorbit.com> X-Barracuda-Connect: ipmail05.adl6.internode.on.net[150.101.137.143] X-Barracuda-Start-Time: 1404453448 X-Barracuda-URL: http://192.48.176.15:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 X-Barracuda-Spam-Score: 0.00 X-Barracuda-Spam-Status: No, SCORE=0.00 using per-user scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.7 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.7228 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- From: Dave Chinner Changes to support separate project quota inodes changed the way quota inodes got written to the superblock. The current code is tailored for the needs to the kernel, where the inodes should only be written if certain falgs are set saying a quota type is enabled. Unfortunately, when recovering a corrupt secondary superblock, we need to unconditionally write the quota inode fields after we unconditionally zero the quota flags field. The result of this bug is that the bad quota inode fields cannot be cleared and hence always are reported by bad by repair in subsequent runs. Fix this by directly clearing the quota inodes in the superblock buffers so that we do need to set special flags to get xfs_sb_to_disk() to do the right thing as setting flags leave bad flag values in the superblock instead of bad inode numbers.... Also, when clearing the inode numbers, write them as NULLFSINO rather than 0 as this is what the kernel will write them as if quota is turned off. Signed-off-by: Dave Chinner --- include/libxfs.h | 1 + libxfs/rdwr.c | 4 ++-- repair/agheader.c | 44 +++++++++++++++++++++++++++++--------------- repair/sb.c | 2 ++ repair/scan.c | 1 + 5 files changed, 35 insertions(+), 17 deletions(-) diff --git a/include/libxfs.h b/include/libxfs.h index 7203d79..45a924f 100644 --- a/include/libxfs.h +++ b/include/libxfs.h @@ -759,6 +759,7 @@ bool xfs_dinode_verify(struct xfs_mount *mp, xfs_ino_t ino, /* xfs_sb.h */ #define libxfs_mod_sb xfs_mod_sb #define libxfs_sb_from_disk xfs_sb_from_disk +#define libxfs_sb_quota_from_disk xfs_sb_quota_from_disk #define libxfs_sb_to_disk xfs_sb_to_disk /* xfs_symlink.h */ diff --git a/libxfs/rdwr.c b/libxfs/rdwr.c index c81c82f..e681f2a 100644 --- a/libxfs/rdwr.c +++ b/libxfs/rdwr.c @@ -913,10 +913,10 @@ libxfs_writebufr(xfs_buf_t *bp) } #ifdef IO_DEBUG - printf("%lx: %s: wrote %u bytes, blkno=%llu(%llu), %p\n", + printf("%lx: %s: wrote %u bytes, blkno=%llu(%llu), %p, error %d\n", pthread_self(), __FUNCTION__, bp->b_bcount, (long long)LIBXFS_BBTOOFF64(bp->b_bn), - (long long)bp->b_bn, bp); + (long long)bp->b_bn, bp, error); #endif if (!error) { bp->b_flags |= LIBXFS_B_UPTODATE; diff --git a/repair/agheader.c b/repair/agheader.c index fc5dac9..416dbd8 100644 --- a/repair/agheader.c +++ b/repair/agheader.c @@ -245,13 +245,17 @@ compare_sb(xfs_mount_t *mp, xfs_sb_t *sb) * superblocks, not just the secondary superblocks. */ static int -secondary_sb_wack(xfs_mount_t *mp, xfs_buf_t *sbuf, xfs_sb_t *sb, - xfs_agnumber_t i) +secondary_sb_wack( + struct xfs_mount *mp, + struct xfs_buf *sbuf, + struct xfs_sb *sb, + xfs_agnumber_t i) { - int do_bzero; - int size; - char *ip; - int rval; + struct xfs_dsb *dsb = XFS_BUF_TO_SBP(sbuf); + int do_bzero = 0; + int size; + char *ip; + int rval = 0;; rval = do_bzero = 0; @@ -334,12 +338,18 @@ secondary_sb_wack(xfs_mount_t *mp, xfs_buf_t *sbuf, xfs_sb_t *sb, } /* - * quota inodes and flags in secondary superblocks - * are never set by mkfs. However, they could be set - * in a secondary if a fs with quotas was growfs'ed since - * growfs copies the new primary into the secondaries. + * quota inodes and flags in secondary superblocks are never set by + * mkfs. However, they could be set in a secondary if a fs with quotas + * was growfs'ed since growfs copies the new primary into the + * secondaries. + * + * Also, the in-core inode flags now have different meaning to the + * on-disk flags, and so libxfs_sb_to_disk cannot directly write the + * sb_gquotino/sb_pquotino fields without specific sb_qflags being set. + * Hence we need to zero those fields directly in the sb buffer here. */ - if (sb->sb_inprogress == 1 && sb->sb_uquotino) { + + if (sb->sb_inprogress == 1 && sb->sb_uquotino != NULLFSINO) { if (!no_modify) sb->sb_uquotino = 0; if (sb->sb_versionnum & XR_PART_SECSB_VNMASK || !do_bzero) { @@ -352,9 +362,11 @@ secondary_sb_wack(xfs_mount_t *mp, xfs_buf_t *sbuf, xfs_sb_t *sb, rval |= XR_AG_SB_SEC; } - if (sb->sb_inprogress == 1 && sb->sb_gquotino) { - if (!no_modify) + if (sb->sb_inprogress == 1 && sb->sb_gquotino != NULLFSINO) { + if (!no_modify) { sb->sb_gquotino = 0; + dsb->sb_gquotino = 0; + } if (sb->sb_versionnum & XR_PART_SECSB_VNMASK || !do_bzero) { rval |= XR_AG_SB; do_warn( @@ -365,9 +377,11 @@ secondary_sb_wack(xfs_mount_t *mp, xfs_buf_t *sbuf, xfs_sb_t *sb, rval |= XR_AG_SB_SEC; } - if (sb->sb_inprogress == 1 && sb->sb_pquotino) { - if (!no_modify) + if (sb->sb_inprogress == 1 && sb->sb_pquotino != NULLFSINO) { + if (!no_modify) { sb->sb_pquotino = 0; + dsb->sb_pquotino = 0; + } if (sb->sb_versionnum & XR_PART_SECSB_VNMASK || !do_bzero) { rval |= XR_AG_SB; do_warn( diff --git a/repair/sb.c b/repair/sb.c index 5e0b0f2..bc421cc 100644 --- a/repair/sb.c +++ b/repair/sb.c @@ -138,6 +138,7 @@ find_secondary_sb(xfs_sb_t *rsb) for (i = 0; !done && i < bsize; i += BBSIZE) { c_bufsb = (char *)sb + i; libxfs_sb_from_disk(&bufsb, (xfs_dsb_t *)c_bufsb); + libxfs_sb_quota_from_disk(&bufsb); if (verify_sb(c_bufsb, &bufsb, 0) != XR_OK) continue; @@ -538,6 +539,7 @@ get_sb(xfs_sb_t *sbp, xfs_off_t off, int size, xfs_agnumber_t agno) do_error("%s\n", strerror(error)); } libxfs_sb_from_disk(sbp, buf); + libxfs_sb_quota_from_disk(sbp); rval = verify_sb((char *)buf, sbp, agno == 0); free(buf); diff --git a/repair/scan.c b/repair/scan.c index 1b64d8b..f29ff8d 100644 --- a/repair/scan.c +++ b/repair/scan.c @@ -1496,6 +1496,7 @@ scan_ag( goto out_free_sb; } libxfs_sb_from_disk(sb, XFS_BUF_TO_SBP(sbbuf)); + libxfs_sb_quota_from_disk(sb); agfbuf = libxfs_readbuf(mp->m_dev, XFS_AG_DADDR(mp, agno, XFS_AGF_DADDR(mp)), -- 2.0.0 From dave@fromorbit.com Fri Jul 4 00:57:33 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: xfs@oss.sgi.com Delivered-To: xfs@oss.sgi.com Received: from relay.sgi.com (relay3.corp.sgi.com [198.149.34.15]) by oss.sgi.com (Postfix) with ESMTP id 0A0727F3F for ; Fri, 4 Jul 2014 00:57:33 -0500 (CDT) Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by relay3.corp.sgi.com (Postfix) with ESMTP id 872A8AC003 for ; Thu, 3 Jul 2014 22:57:32 -0700 (PDT) X-ASG-Debug-ID: 1404453448-04cb6c76cf4483e0002-NocioJ Received: from ipmail05.adl6.internode.on.net (ipmail05.adl6.internode.on.net [150.101.137.143]) by cuda.sgi.com with ESMTP id lNGty9RIn2hDWMKE for ; Thu, 03 Jul 2014 22:57:30 -0700 (PDT) X-Barracuda-Envelope-From: dave@fromorbit.com X-Barracuda-Apparent-Source-IP: 150.101.137.143 X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: Ak1bAA5BtlN5LHZ8PGdsb2JhbABagw2IUqQeAgEBBptkFwQBAQEBODWEAwEBBVYjEAgYMTkDBxQZiEHJbheFcIhOgQGELQWmQowVK4Ex Received: from ppp121-44-118-124.lns20.syd6.internode.on.net (HELO dastard) ([121.44.118.124]) by ipmail05.adl6.internode.on.net with ESMTP; 04 Jul 2014 15:27:18 +0930 Received: from disappointment.disaster.area ([192.168.1.110] helo=disappointment) by dastard with esmtp (Exim 4.80) (envelope-from ) id 1X2wUn-000838-CU; Fri, 04 Jul 2014 15:57:17 +1000 Received: from dave by disappointment with local (Exim 4.82_1-5b7a7c0-XX) (envelope-from ) id 1X2wUn-0000by-Bc; Fri, 04 Jul 2014 15:57:17 +1000 From: Dave Chinner To: xfs@oss.sgi.com Cc: arekm@maven.pl Subject: [PATCH 2/6] xfs_db: write command broken on 64 bit values Date: Fri, 4 Jul 2014 15:57:11 +1000 X-ASG-Orig-Subj: [PATCH 2/6] xfs_db: write command broken on 64 bit values Message-Id: <1404453435-1915-3-git-send-email-david@fromorbit.com> X-Mailer: git-send-email 2.0.0 In-Reply-To: <1404453435-1915-1-git-send-email-david@fromorbit.com> References: <1404453435-1915-1-git-send-email-david@fromorbit.com> X-Barracuda-Connect: ipmail05.adl6.internode.on.net[150.101.137.143] X-Barracuda-Start-Time: 1404453450 X-Barracuda-URL: http://192.48.176.15:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 X-Barracuda-Spam-Score: 0.00 X-Barracuda-Spam-Status: No, SCORE=0.00 using per-user scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.7 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.7228 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- From: Dave Chinner convert_args() has problesm with 64 bit fields because it tries to shift them by 64 bits. The result of doing so is undefined by the C standard, and so results in the unexpected behaviour of the result being being the original value unchanged rather than 0. Hence you can't write 64 bit fields because the code thinks that all values other than 0 are out of range. Signed-off-by: Dave Chinner --- db/write.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/db/write.c b/db/write.c index ca8bd0f..0157a44 100644 --- a/db/write.c +++ b/db/write.c @@ -565,7 +565,7 @@ convert_arg( return NULL; /* Does the value fit into the range of the destination bitfield? */ - if ((val >> bit_length) > 0) + if (bit_length < 64 && (val >> bit_length) > 0) return NULL; /* * If the length of the field is not a multiple of a byte, push -- 2.0.0 From dave@fromorbit.com Fri Jul 4 00:57:34 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: xfs@oss.sgi.com Delivered-To: xfs@oss.sgi.com Received: from relay.sgi.com (relay3.corp.sgi.com [198.149.34.15]) by oss.sgi.com (Postfix) with ESMTP id CFEA67F37 for ; Fri, 4 Jul 2014 00:57:33 -0500 (CDT) Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by relay3.corp.sgi.com (Postfix) with ESMTP id 4A8C6AC001 for ; Thu, 3 Jul 2014 22:57:33 -0700 (PDT) X-ASG-Debug-ID: 1404453448-04cb6c76cf4483e0003-NocioJ Received: from ipmail05.adl6.internode.on.net (ipmail05.adl6.internode.on.net [150.101.137.143]) by cuda.sgi.com with ESMTP id gY9ycpOLRIOckyzA for ; Thu, 03 Jul 2014 22:57:31 -0700 (PDT) X-Barracuda-Envelope-From: dave@fromorbit.com X-Barracuda-Apparent-Source-IP: 150.101.137.143 X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: Ak5bAA5BtlN5LHZ8PGdsb2JhbABagw2IUqQeAgEBBptkFwQBAQEBODWEAwEBBScvIxAIGDE5AwcUGYhBygWFcIlPhC0Fslcr Received: from ppp121-44-118-124.lns20.syd6.internode.on.net (HELO dastard) ([121.44.118.124]) by ipmail05.adl6.internode.on.net with ESMTP; 04 Jul 2014 15:27:18 +0930 Received: from disappointment.disaster.area ([192.168.1.110] helo=disappointment) by dastard with esmtp (Exim 4.80) (envelope-from ) id 1X2wUn-00083A-DX; Fri, 04 Jul 2014 15:57:17 +1000 Received: from dave by disappointment with local (Exim 4.82_1-5b7a7c0-XX) (envelope-from ) id 1X2wUn-0000c8-Cl; Fri, 04 Jul 2014 15:57:17 +1000 From: Dave Chinner To: xfs@oss.sgi.com Cc: arekm@maven.pl Subject: [PATCH 4/6] libxfs: reused invalidated buffers leak state and data Date: Fri, 4 Jul 2014 15:57:13 +1000 X-ASG-Orig-Subj: [PATCH 4/6] libxfs: reused invalidated buffers leak state and data Message-Id: <1404453435-1915-5-git-send-email-david@fromorbit.com> X-Mailer: git-send-email 2.0.0 In-Reply-To: <1404453435-1915-1-git-send-email-david@fromorbit.com> References: <1404453435-1915-1-git-send-email-david@fromorbit.com> X-Barracuda-Connect: ipmail05.adl6.internode.on.net[150.101.137.143] X-Barracuda-Start-Time: 1404453451 X-Barracuda-URL: http://192.48.176.15:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 X-Barracuda-Spam-Score: 0.00 X-Barracuda-Spam-Status: No, SCORE=0.00 using per-user scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.7 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.7228 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- From: Dave Chinner When rebuilding a bad directory, repair first truncates away all the blocks in the directory, good or bad. This removes blocks from the bmap btree, and when those blocks are freed the bmap btree code invalidates them. This marks the buffers LIBXFS_B_STALE so that we don't try to write stale data from that buffer at a later time. However, when rebuilding the directory, blocks may get reallocated and we reuse the underlying buffers. This has two problems. The first is that if the buffer was previously detected as having a verifier error (i.e. an error that is leading to the block being freed and the buffer being invalidated) then the error might still be held in b_error. Hence the libxfs code needs to ensure that b_error does not leak from one buffer usage context to another after invalidation. The second problem is that when new data is written into a buffer, it no longer has stale contents. Hence when we write the buffer, we need to clear the LIBXFS_B_STALE flag to ensure that the new data gets written. Signed-off-by: Dave Chinner --- libxfs/rdwr.c | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/libxfs/rdwr.c b/libxfs/rdwr.c index 981f2ba..c81c82f 100644 --- a/libxfs/rdwr.c +++ b/libxfs/rdwr.c @@ -632,6 +632,12 @@ libxfs_putbuf(xfs_buf_t *bp) pthread_mutex_unlock(&bp->b_lock); } } + /* + * ensure that any errors on this use of the buffer don't carry + * over to the next user. + */ + bp->b_error = 0; + cache_node_put(libxfs_bcache, (struct cache_node *)bp); } @@ -928,6 +934,7 @@ libxfs_writebuf_int(xfs_buf_t *bp, int flags) * subsequent reads after this write from seeing stale errors. */ bp->b_error = 0; + bp->b_flags &= ~LIBXFS_B_STALE; bp->b_flags |= (LIBXFS_B_DIRTY | flags); return 0; } @@ -946,6 +953,7 @@ libxfs_writebuf(xfs_buf_t *bp, int flags) * subsequent reads after this write from seeing stale errors. */ bp->b_error = 0; + bp->b_flags &= ~LIBXFS_B_STALE; bp->b_flags |= (LIBXFS_B_DIRTY | flags); libxfs_putbuf(bp); return 0; -- 2.0.0 From dave@fromorbit.com Fri Jul 4 00:57:34 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: xfs@oss.sgi.com Delivered-To: xfs@oss.sgi.com Received: from relay.sgi.com (relay3.corp.sgi.com [198.149.34.15]) by oss.sgi.com (Postfix) with ESMTP id 633F67F37 for ; Fri, 4 Jul 2014 00:57:34 -0500 (CDT) Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by relay3.corp.sgi.com (Postfix) with ESMTP id EE4A1AC002 for ; Thu, 3 Jul 2014 22:57:33 -0700 (PDT) X-ASG-Debug-ID: 1404453450-04bdf056697c18f0002-NocioJ Received: from ipmail05.adl6.internode.on.net (ipmail05.adl6.internode.on.net [150.101.137.143]) by cuda.sgi.com with ESMTP id aHAOhKTivz09wRpU for ; Thu, 03 Jul 2014 22:57:32 -0700 (PDT) X-Barracuda-Envelope-From: dave@fromorbit.com X-Barracuda-Apparent-Source-IP: 150.101.137.143 X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: Ak5bAA5BtlN5LHZ8PGdsb2JhbABagw2IUqQeAgEBBptkFwQBAQEBODWEAwEBBScvIxAIGDE5AwcUGYhBygWFcI18BbJXKw Received: from ppp121-44-118-124.lns20.syd6.internode.on.net (HELO dastard) ([121.44.118.124]) by ipmail05.adl6.internode.on.net with ESMTP; 04 Jul 2014 15:27:18 +0930 Received: from disappointment.disaster.area ([192.168.1.110] helo=disappointment) by dastard with esmtp (Exim 4.80) (envelope-from ) id 1X2wUn-00083C-EG; Fri, 04 Jul 2014 15:57:17 +1000 Received: from dave by disappointment with local (Exim 4.82_1-5b7a7c0-XX) (envelope-from ) id 1X2wUn-0000cI-DW; Fri, 04 Jul 2014 15:57:17 +1000 From: Dave Chinner To: xfs@oss.sgi.com Cc: arekm@maven.pl Subject: [PATCH 6/6] repair: get rid of BADFSINO Date: Fri, 4 Jul 2014 15:57:15 +1000 X-ASG-Orig-Subj: [PATCH 6/6] repair: get rid of BADFSINO Message-Id: <1404453435-1915-7-git-send-email-david@fromorbit.com> X-Mailer: git-send-email 2.0.0 In-Reply-To: <1404453435-1915-1-git-send-email-david@fromorbit.com> References: <1404453435-1915-1-git-send-email-david@fromorbit.com> X-Barracuda-Connect: ipmail05.adl6.internode.on.net[150.101.137.143] X-Barracuda-Start-Time: 1404453451 X-Barracuda-URL: http://192.48.157.11:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 X-Barracuda-Spam-Score: 0.00 X-Barracuda-Spam-Status: No, SCORE=0.00 using per-user scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.7 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.7228 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- From: Dave Chinner When we find a bad dirent, we "clear" the inode the inode number by writing BADFSINO to the inode number in the entry: #define BADFSINO ((xfs_ino_t)0xfeffffffffffffffULL) We then capture this bad inode number later in the same function either in the same pass or in a later phase and junk the entry. When we junk the entry, we write a "/" over the first character of the dirent name, which is then detected up later by the directory rebuild and ignored. The issue with this is that the directory buffer can be written to disk between the dirent being marked with BADFSINO and the directory rebuild processing in phase 6, resulting in the directory block verifier firing this error: Invalid inode number 0xfeffffffffffffff xfs_dir_ino_validate: XFS_ERROR_REPORT Metadata corruption detected at block 0x11fbb698/0x1000 libxfs_writebufr: write verifer failed on bno 0x11fbb698/0x1000 And so will not write the *corrupt block* to disk. The result is that we don't repair a corruption in the directory block correctly and subsequent repair runs continue to find problems with the directory. We really don't need both BADFSINO *and* overwriting the dirent name with "/" to mark an entry as junked. They both mean exactly the same thing, so get rid of BADFSINO and only use the name junking to mark dirents as bad. This prevents the directory data block verifier from triggering on bad inode numbers, and so the later reread of the block will find the junked entries correctly. Signed-off-by: Dave Chinner --- repair/dir2.c | 21 +++++++-------------- 1 file changed, 7 insertions(+), 14 deletions(-) diff --git a/repair/dir2.c b/repair/dir2.c index 14c1435..f32bba7 100644 --- a/repair/dir2.c +++ b/repair/dir2.c @@ -28,13 +28,6 @@ #include "progress.h" /* - * Tag bad directory entries with this. - * We can't tag them with -1 since that will look like a - * data_unused_t instead of a data_entry_t. - */ -#define BADFSINO ((xfs_ino_t)0xfeffffffffffffffULL) - -/* * Known bad inode list. These are seen when the leaf and node * block linkages are incorrect. */ @@ -1314,7 +1307,7 @@ process_dir2_data( * Conditions must either set clearino to zero or set * clearreason why it's being cleared. */ - if (!ino_discovery && ent_ino == BADFSINO) { + if (!ino_discovery && dep->name[0] == '/') { /* * Don't do a damned thing. We already found this * (or did it ourselves) during phase 3. @@ -1401,8 +1394,7 @@ _("entry at block %u offset %" PRIdPTR " in directory inode %" PRIu64 do_warn( _("\tclearing inode number in entry at offset %" PRIdPTR "...\n"), (intptr_t)ptr - (intptr_t)d); - dep->inumber = cpu_to_be64(BADFSINO); - ent_ino = BADFSINO; + dep->name[0] = '/'; *dirty = 1; } else { do_warn( @@ -1415,7 +1407,7 @@ _("\twould clear inode number in entry at offset %" PRIdPTR "...\n"), * discovery is turned on). Otherwise, we'd complain a lot * during phase 4. */ - junkit = ent_ino == BADFSINO; + junkit = dep->name[0] == '/'; nm_illegal = namecheck((char *)dep->name, dep->namelen); if (ino_discovery && nm_illegal) { do_warn( @@ -1424,14 +1416,15 @@ _("entry at block %u offset %" PRIdPTR " in directory inode %" PRIu64 " has ille dep->namelen, dep->namelen, dep->name); junkit = 1; } + /* - * Now we can mark entries with BADFSINO's bad. + * Ensure we write back bad entries for later processing */ - if (!no_modify && ent_ino == BADFSINO) { - dep->name[0] = '/'; + if (!no_modify && dep->name[0] == '/') { *dirty = 1; junkit = 0; } + /* * Special .. entry processing. */ -- 2.0.0 From dave@fromorbit.com Fri Jul 4 00:57:35 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: xfs@oss.sgi.com Delivered-To: xfs@oss.sgi.com Received: from relay.sgi.com (relay3.corp.sgi.com [198.149.34.15]) by oss.sgi.com (Postfix) with ESMTP id 6A5157F37 for ; Fri, 4 Jul 2014 00:57:35 -0500 (CDT) Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by relay3.corp.sgi.com (Postfix) with ESMTP id D82E6AC001 for ; Thu, 3 Jul 2014 22:57:34 -0700 (PDT) X-ASG-Debug-ID: 1404453452-04cb6c76d24483f0001-NocioJ Received: from ipmail05.adl6.internode.on.net (ipmail05.adl6.internode.on.net [150.101.137.143]) by cuda.sgi.com with ESMTP id joxSZFp4rkEf87on for ; Thu, 03 Jul 2014 22:57:32 -0700 (PDT) X-Barracuda-Envelope-From: dave@fromorbit.com X-Barracuda-Apparent-Source-IP: 150.101.137.143 X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: Ak9bAA5BtlN5LHZ8PGdsb2JhbABagw2IUqQeAgEBBptkFwQBAQEBODWEAwEBBScvIxAIGDEhGAMHFBmILgMQww8NhmmFcIcKgVCFIgWYdo94iWkrgTECHgY Received: from ppp121-44-118-124.lns20.syd6.internode.on.net (HELO dastard) ([121.44.118.124]) by ipmail05.adl6.internode.on.net with ESMTP; 04 Jul 2014 15:27:18 +0930 Received: from disappointment.disaster.area ([192.168.1.110] helo=disappointment) by dastard with esmtp (Exim 4.80) (envelope-from ) id 1X2wUn-000837-Bv; Fri, 04 Jul 2014 15:57:17 +1000 Received: from dave by disappointment with local (Exim 4.82_1-5b7a7c0-XX) (envelope-from ) id 1X2wUn-0000bt-B8; Fri, 04 Jul 2014 15:57:17 +1000 From: Dave Chinner To: xfs@oss.sgi.com Cc: arekm@maven.pl Subject: [PATCH 1/6] repair: support more than 25 ACLs Date: Fri, 4 Jul 2014 15:57:10 +1000 X-ASG-Orig-Subj: [PATCH 1/6] repair: support more than 25 ACLs Message-Id: <1404453435-1915-2-git-send-email-david@fromorbit.com> X-Mailer: git-send-email 2.0.0 In-Reply-To: <1404453435-1915-1-git-send-email-david@fromorbit.com> References: <1404453435-1915-1-git-send-email-david@fromorbit.com> X-Barracuda-Connect: ipmail05.adl6.internode.on.net[150.101.137.143] X-Barracuda-Start-Time: 1404453452 X-Barracuda-URL: http://192.48.176.15:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 X-Barracuda-Spam-Score: 0.00 X-Barracuda-Spam-Status: No, SCORE=0.00 using per-user scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.7 tests=MAILTO_TO_SPAM_ADDR X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.7228 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.00 MAILTO_TO_SPAM_ADDR URI: Includes a link to a likely spammer email From: Dave Chinner v5 superblock supports many more than 25 ACLs on an inode, but xfs_repair still thinks that the maximum is 25. This slipped through becase the reapir code does not share any of the kernel side ACL code in libxfs, and instead has all it's own internal ACL definitions. Fix the repair code to support more than 25 ACLs and update the ACL definitions to match the kernel definitions. In doing so, this tickles a off-by-one bug on remote attribute maximum sizes that is already fixed in the kernel code. So in addition to fixing the repair code, this patch pulls in parts of the following kernel commits: bba719b5 xfs: fix off-by-one error in xfs_attr3_rmt_verify 0a8aa193 xfs: increase number of ACL entries for V5 superblocks Reported-by: Michael L. Semon Tested-by: Michael L. Semon Signed-off-by: Dave Chinner --- libxfs/xfs_attr_remote.c | 2 +- repair/attr_repair.c | 73 ++++++++++++++++++++++++++++++------------------ repair/attr_repair.h | 46 +++++++++++++++++++++--------- 3 files changed, 80 insertions(+), 41 deletions(-) diff --git a/libxfs/xfs_attr_remote.c b/libxfs/xfs_attr_remote.c index 5cf5c73..08b983b 100644 --- a/libxfs/xfs_attr_remote.c +++ b/libxfs/xfs_attr_remote.c @@ -85,7 +85,7 @@ xfs_attr3_rmt_verify( if (be32_to_cpu(rmt->rm_bytes) > fsbsize - sizeof(*rmt)) return false; if (be32_to_cpu(rmt->rm_offset) + - be32_to_cpu(rmt->rm_bytes) >= XATTR_SIZE_MAX) + be32_to_cpu(rmt->rm_bytes) > XATTR_SIZE_MAX) return false; if (rmt->rm_owner == 0) return false; diff --git a/repair/attr_repair.c b/repair/attr_repair.c index 5dd7e5f..a27a3ec 100644 --- a/repair/attr_repair.c +++ b/repair/attr_repair.c @@ -25,7 +25,7 @@ #include "protos.h" #include "dir2.h" -static int xfs_acl_valid(xfs_acl_disk_t *daclp); +static int xfs_acl_valid(struct xfs_mount *mp, struct xfs_acl *daclp); static int xfs_mac_valid(xfs_mac_label_t *lp); /* @@ -734,11 +734,15 @@ verify_da_path(xfs_mount_t *mp, * If value is non-zero, then a remote attribute is being passed in */ static int -valuecheck(char *namevalue, char *value, int namelen, int valuelen) +valuecheck( + struct xfs_mount *mp, + char *namevalue, + char *value, + int namelen, + int valuelen) { /* for proper alignment issues, get the structs and memmove the values */ xfs_mac_label_t macl; - xfs_acl_t thisacl; void *valuep; int clearit = 0; @@ -746,18 +750,23 @@ valuecheck(char *namevalue, char *value, int namelen, int valuelen) (strncmp(namevalue, SGI_ACL_DEFAULT, SGI_ACL_DEFAULT_SIZE) == 0)) { if (value == NULL) { - memset(&thisacl, 0, sizeof(xfs_acl_t)); - memmove(&thisacl, namevalue+namelen, valuelen); - valuep = &thisacl; + valuep = malloc(valuelen); + if (!valuep) + do_error(_("No memory for ACL check!\n")); + memcpy(valuep, namevalue + namelen, valuelen); } else valuep = value; - if (xfs_acl_valid((xfs_acl_disk_t *)valuep) != 0) { + if (xfs_acl_valid(mp, valuep) != 0) { clearit = 1; do_warn( _("entry contains illegal value in attribute named SGI_ACL_FILE " "or SGI_ACL_DEFAULT\n")); } + + if (valuep != value) + free(valuep); + } else if (strncmp(namevalue, SGI_MAC_FILE, SGI_MAC_FILE_SIZE) == 0) { if (value == NULL) { memset(&macl, 0, sizeof(xfs_mac_label_t)); @@ -800,6 +809,7 @@ valuecheck(char *namevalue, char *value, int namelen, int valuelen) */ static int process_shortform_attr( + struct xfs_mount *mp, xfs_ino_t ino, xfs_dinode_t *dip, int *repair) @@ -904,7 +914,7 @@ process_shortform_attr( /* Only check values for root security attributes */ if (currententry->flags & XFS_ATTR_ROOT) - junkit = valuecheck((char *)¤tentry->nameval[0], + junkit = valuecheck(mp, (char *)¤tentry->nameval[0], NULL, currententry->namelen, currententry->valuelen); @@ -1039,6 +1049,7 @@ rmtval_get(xfs_mount_t *mp, xfs_ino_t ino, blkmap_t *blkmap, static int process_leaf_attr_local( + struct xfs_mount *mp, xfs_attr_leafblock_t *leaf, int i, xfs_attr_leaf_entry_t *entry, @@ -1076,7 +1087,7 @@ process_leaf_attr_local( /* Only check values for root security attributes */ if (entry->flags & XFS_ATTR_ROOT) { - if (valuecheck((char *)&local->nameval[0], NULL, + if (valuecheck(mp, (char *)&local->nameval[0], NULL, local->namelen, be16_to_cpu(local->valuelen))) { do_warn( _("bad security value for attribute entry %d in attr block %u, inode %" PRIu64 "\n"), @@ -1134,7 +1145,7 @@ process_leaf_attr_remote( i, ino); goto bad_free_out; } - if (valuecheck((char *)&remotep->name[0], value, remotep->namelen, + if (valuecheck(mp, (char *)&remotep->name[0], value, remotep->namelen, be32_to_cpu(remotep->valuelen))) { do_warn( _("remote attribute value check failed for entry %d, inode %" PRIu64 "\n"), @@ -1216,15 +1227,15 @@ process_leaf_attr_block( break; /* got an overlap */ } - if (entry->flags & XFS_ATTR_LOCAL) - thissize = process_leaf_attr_local(leaf, i, entry, + if (entry->flags & XFS_ATTR_LOCAL) + thissize = process_leaf_attr_local(mp, leaf, i, entry, last_hashval, da_bno, ino); else thissize = process_leaf_attr_remote(leaf, i, entry, last_hashval, da_bno, ino, mp, blkmap); if (thissize < 0) { - clearit = 1; + clearit = 1; break; } @@ -1608,23 +1619,27 @@ process_longform_attr( static int -xfs_acl_from_disk(struct xfs_acl **aclp, struct xfs_acl_disk *dacl) +xfs_acl_from_disk( + struct xfs_mount *mp, + struct xfs_icacl **aclp, + struct xfs_acl *dacl) { + struct xfs_icacl *acl; + struct xfs_icacl_entry *ace; + struct xfs_acl_entry *dace; int count; - xfs_acl_t *acl; - xfs_acl_entry_t *ace; - xfs_acl_entry_disk_t *dace, *end; + int i; count = be32_to_cpu(dacl->acl_cnt); - if (count > XFS_ACL_MAX_ENTRIES) { + if (count > XFS_ACL_MAX_ENTRIES(mp)) { do_warn(_("Too many ACL entries, count %d\n"), count); *aclp = NULL; return EINVAL; } - end = &dacl->acl_entry[0] + count; - acl = malloc((int)((char *)end - (char *)dacl)); + acl = malloc(sizeof(struct xfs_icacl) + + count * sizeof(struct xfs_icacl_entry)); if (!acl) { do_warn(_("cannot malloc enough for ACL attribute\n")); do_warn(_("SKIPPING this ACL\n")); @@ -1633,8 +1648,10 @@ xfs_acl_from_disk(struct xfs_acl **aclp, struct xfs_acl_disk *dacl) } acl->acl_cnt = count; - ace = &acl->acl_entry[0]; - for (dace = &dacl->acl_entry[0]; dace < end; ace++, dace++) { + for (i = 0; i < count; i++) { + ace = &acl->acl_entry[i]; + dace = &dacl->acl_entry[i]; + ace->ae_tag = be32_to_cpu(dace->ae_tag); ace->ae_id = be32_to_cpu(dace->ae_id); ace->ae_perm = be16_to_cpu(dace->ae_perm); @@ -1667,7 +1684,7 @@ process_attributes( if (aformat == XFS_DINODE_FMT_LOCAL) { ASSERT(be16_to_cpu(asf->hdr.totsize) <= XFS_DFORK_ASIZE(dip, mp)); - err = process_shortform_attr(ino, dip, repair); + err = process_shortform_attr(mp, ino, dip, repair); } else if (aformat == XFS_DINODE_FMT_EXTENTS || aformat == XFS_DINODE_FMT_BTREE) { err = process_longform_attr(mp, ino, dip, blkmap, @@ -1686,17 +1703,19 @@ process_attributes( * Validate an ACL */ static int -xfs_acl_valid(xfs_acl_disk_t *daclp) +xfs_acl_valid( + struct xfs_mount *mp, + struct xfs_acl *daclp) { - xfs_acl_t *aclp = NULL; - xfs_acl_entry_t *entry, *e; + struct xfs_icacl *aclp = NULL; + struct xfs_icacl_entry *entry, *e; int user = 0, group = 0, other = 0, mask = 0, mask_required = 0; int i, j; if (daclp == NULL) goto acl_invalid; - switch (xfs_acl_from_disk(&aclp, daclp)) { + switch (xfs_acl_from_disk(mp, &aclp, daclp)) { case ENOMEM: return 0; case EINVAL: diff --git a/repair/attr_repair.h b/repair/attr_repair.h index f42536a..0d0c62c 100644 --- a/repair/attr_repair.h +++ b/repair/attr_repair.h @@ -37,29 +37,49 @@ typedef __int32_t xfs_acl_type_t; typedef __int32_t xfs_acl_tag_t; typedef __int32_t xfs_acl_id_t; -typedef struct xfs_acl_entry { +/* + * "icacl" = in-core ACL. There is no equivalent in the XFS kernel code, + * so they are magic names just for repair. The "acl" types are what the kernel + * code uses for the on-disk format names, so use them here too for the on-disk + * ACL format definitions. + */ +struct xfs_icacl_entry { xfs_acl_tag_t ae_tag; xfs_acl_id_t ae_id; xfs_acl_perm_t ae_perm; -} xfs_acl_entry_t; +}; -#define XFS_ACL_MAX_ENTRIES 25 -typedef struct xfs_acl { - __int32_t acl_cnt; - xfs_acl_entry_t acl_entry[XFS_ACL_MAX_ENTRIES]; -} xfs_acl_t; +struct xfs_icacl { + __int32_t acl_cnt; + struct xfs_icacl_entry acl_entry[0]; +}; -typedef struct xfs_acl_entry_disk { +struct xfs_acl_entry { __be32 ae_tag; __be32 ae_id; __be16 ae_perm; -} xfs_acl_entry_disk_t; + __be16 ae_pad; +}; -typedef struct xfs_acl_disk { - __be32 acl_cnt; - xfs_acl_entry_disk_t acl_entry[XFS_ACL_MAX_ENTRIES]; -} xfs_acl_disk_t; +struct xfs_acl { + __be32 acl_cnt; + struct xfs_acl_entry acl_entry[0]; +}; +/* + * The number of ACL entries allowed is defined by the on-disk format. + * For v4 superblocks, that is limited to 25 entries. For v5 superblocks, it is + * limited only by the maximum size of the xattr that stores the information. + */ +#define XFS_ACL_MAX_ENTRIES(mp) \ + (xfs_sb_version_hascrc(&mp->m_sb) \ + ? (XATTR_SIZE_MAX - sizeof(struct xfs_acl)) / \ + sizeof(struct xfs_acl_entry) \ + : 25) + +#define XFS_ACL_MAX_SIZE(mp) \ + (sizeof(struct xfs_acl) + \ + sizeof(struct xfs_acl_entry) * XFS_ACL_MAX_ENTRIES((mp))) #define SGI_ACL_FILE "SGI_ACL_FILE" #define SGI_ACL_DEFAULT "SGI_ACL_DEFAULT" -- 2.0.0 From dave@fromorbit.com Fri Jul 4 00:57:36 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: xfs@oss.sgi.com Delivered-To: xfs@oss.sgi.com Received: from relay.sgi.com (relay2.corp.sgi.com [137.38.102.29]) by oss.sgi.com (Postfix) with ESMTP id F3BAF7F63 for ; Fri, 4 Jul 2014 00:57:35 -0500 (CDT) Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by relay2.corp.sgi.com (Postfix) with ESMTP id E5D21304048 for ; Thu, 3 Jul 2014 22:57:32 -0700 (PDT) X-ASG-Debug-ID: 1404453450-04bdf056697c18f0001-NocioJ Received: from ipmail05.adl6.internode.on.net (ipmail05.adl6.internode.on.net [150.101.137.143]) by cuda.sgi.com with ESMTP id qpXiuFTIsIPYPooB for ; Thu, 03 Jul 2014 22:57:31 -0700 (PDT) X-Barracuda-Envelope-From: dave@fromorbit.com X-Barracuda-Apparent-Source-IP: 150.101.137.143 X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: AkJbAA5BtlN5LHZ8PGdsb2JhbABagw2IUqQeAgEBBptkFwQBAQEBODWEYCMYgQIDB4huygWFcIlPhC0FsEWCEis Received: from ppp121-44-118-124.lns20.syd6.internode.on.net (HELO dastard) ([121.44.118.124]) by ipmail05.adl6.internode.on.net with ESMTP; 04 Jul 2014 15:27:18 +0930 Received: from disappointment.disaster.area ([192.168.1.110] helo=disappointment) by dastard with esmtp (Exim 4.80) (envelope-from ) id 1X2wUn-000836-BU; Fri, 04 Jul 2014 15:57:17 +1000 Received: from dave by disappointment with local (Exim 4.82_1-5b7a7c0-XX) (envelope-from ) id 1X2wUn-0000bq-AK; Fri, 04 Jul 2014 15:57:17 +1000 From: Dave Chinner To: xfs@oss.sgi.com Cc: arekm@maven.pl Subject: [PATCH 0/6] xfsprogs: fixes for 3.2.1 Date: Fri, 4 Jul 2014 15:57:09 +1000 X-ASG-Orig-Subj: [PATCH 0/6] xfsprogs: fixes for 3.2.1 Message-Id: <1404453435-1915-1-git-send-email-david@fromorbit.com> X-Mailer: git-send-email 2.0.0 X-Barracuda-Connect: ipmail05.adl6.internode.on.net[150.101.137.143] X-Barracuda-Start-Time: 1404453450 X-Barracuda-URL: http://192.48.157.11:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 X-Barracuda-Spam-Score: 0.00 X-Barracuda-Spam-Status: No, SCORE=0.00 using per-user scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.7 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.7228 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- Hi folks, This is the current list of patches I have outstanding for xfsprogs. Several of these are critical for a 3.2.1 release as they result in xfs_repair failing to repair filesystems correctly. These have been tested on several complex filesytems that broke reapir in the 3.2.0 release, as well as all the usual xfstests testing. Comments welcome. -Dave. From dave@fromorbit.com Fri Jul 4 01:02:35 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: xfs@oss.sgi.com Delivered-To: xfs@oss.sgi.com Received: from relay.sgi.com (relay1.corp.sgi.com [137.38.102.111]) by oss.sgi.com (Postfix) with ESMTP id 02C057F3F for ; Fri, 4 Jul 2014 01:02:35 -0500 (CDT) Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by relay1.corp.sgi.com (Postfix) with ESMTP id 040168F8040 for ; Thu, 3 Jul 2014 23:02:31 -0700 (PDT) X-ASG-Debug-ID: 1404453749-04cb6c76d14486d0001-NocioJ Received: from ipmail05.adl6.internode.on.net (ipmail05.adl6.internode.on.net [150.101.137.143]) by cuda.sgi.com with ESMTP id tTOxferb0dzdU5GD for ; Thu, 03 Jul 2014 23:02:30 -0700 (PDT) X-Barracuda-Envelope-From: dave@fromorbit.com X-Barracuda-Apparent-Source-IP: 150.101.137.143 X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: Ak5bAA5BtlN5LHZ8PGdsb2JhbABagw2IUqQeAgEBBptkFwQBAQEBODWEAwEBBScvIxAIGDE5AwcUGYhBygWFcIlPhC0Fslcr Received: from ppp121-44-118-124.lns20.syd6.internode.on.net (HELO dastard) ([121.44.118.124]) by ipmail05.adl6.internode.on.net with ESMTP; 04 Jul 2014 15:27:18 +0930 Received: from disappointment.disaster.area ([192.168.1.110] helo=disappointment) by dastard with esmtp (Exim 4.80) (envelope-from ) id 1X2wUn-000839-D9; Fri, 04 Jul 2014 15:57:17 +1000 Received: from dave by disappointment with local (Exim 4.82_1-5b7a7c0-XX) (envelope-from ) id 1X2wUn-0000c3-C9; Fri, 04 Jul 2014 15:57:17 +1000 From: Dave Chinner To: xfs@oss.sgi.com Cc: arekm@maven.pl Subject: [PATCH 3/6] repair: handle directory block corruption in phase 6 Date: Fri, 4 Jul 2014 15:57:12 +1000 X-ASG-Orig-Subj: [PATCH 3/6] repair: handle directory block corruption in phase 6 Message-Id: <1404453435-1915-4-git-send-email-david@fromorbit.com> X-Mailer: git-send-email 2.0.0 In-Reply-To: <1404453435-1915-1-git-send-email-david@fromorbit.com> References: <1404453435-1915-1-git-send-email-david@fromorbit.com> X-Barracuda-Connect: ipmail05.adl6.internode.on.net[150.101.137.143] X-Barracuda-Start-Time: 1404453749 X-Barracuda-URL: http://192.48.176.15:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 X-Barracuda-Spam-Score: 0.00 X-Barracuda-Spam-Status: No, SCORE=0.00 using per-user scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.7 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.7228 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- From: Dave Chinner This should only occur in no-modify mode, but when we fail to find the last extent in a directory btree due to corruption we need to trash the directory if it's the first data block we find the error on. That is because there is nothing to recover from the directory, and if we try to scan it xfs_reapir segv's because nothing has been read from disk. Also catch a memory allocation failure in this code, too. Signed-off-by: Dave Chinner --- repair/phase6.c | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) diff --git a/repair/phase6.c b/repair/phase6.c index 9b10f16..47ecad4 100644 --- a/repair/phase6.c +++ b/repair/phase6.c @@ -2179,7 +2179,7 @@ longform_dir2_entry_check(xfs_mount_t *mp, freetab = malloc(FREETAB_SIZE(ip->i_d.di_size / mp->m_dirblksize)); if (!freetab) { do_error( - _("malloc failed in longform_dir2_entry_check (%" PRId64 " bytes)\n"), +_("malloc failed in longform_dir2_entry_check (%" PRId64 " bytes)\n"), FREETAB_SIZE(ip->i_d.di_size / mp->m_dirblksize)); exit(1); } @@ -2191,6 +2191,11 @@ longform_dir2_entry_check(xfs_mount_t *mp, } num_bps = freetab->naents; bplist = calloc(num_bps, sizeof(struct xfs_buf*)); + if (!bplist) + do_error( +_("calloc failed in longform_dir2_entry_check (%zu bytes)\n"), + num_bps * sizeof(struct xfs_buf*)); + /* is this a block, leaf, or node directory? */ libxfs_dir2_isblock(NULL, ip, &isblock); libxfs_dir2_isleaf(NULL, ip, &isleaf); @@ -2203,8 +2208,18 @@ longform_dir2_entry_check(xfs_mount_t *mp, int error; next_da_bno = da_bno + mp->m_dirblkfsbs - 1; - if (bmap_next_offset(NULL, ip, &next_da_bno, XFS_DATA_FORK)) + if (bmap_next_offset(NULL, ip, &next_da_bno, XFS_DATA_FORK)) { + /* + * if this is the first block, there isn't anything we + * can recover so we just trash it. + */ + if (da_bno == 0) { + fixit++; + goto out_fix; + } break; + } + db = xfs_dir2_da_to_db(mp, da_bno); if (db >= num_bps) { /* more data blocks than expected */ -- 2.0.0 From bounce-112652-6905444-192212-16160@emmsrv.com Fri Jul 4 01:57:58 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: ** X-Spam-Status: No, score=2.2 required=5.0 tests=HTML_MESSAGE,MIME_HTML_ONLY, T_DKIM_INVALID,T_REMOTE_IMAGE autolearn=no version=3.3.1 X-Original-To: xfs@oss.sgi.com Delivered-To: xfs@oss.sgi.com Received: from relay.sgi.com (relay3.corp.sgi.com [198.149.34.15]) by oss.sgi.com (Postfix) with ESMTP id 394367F3F for ; Fri, 4 Jul 2014 01:57:58 -0500 (CDT) Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by relay3.corp.sgi.com (Postfix) with ESMTP id A59EEAC002 for ; Thu, 3 Jul 2014 23:57:54 -0700 (PDT) X-ASG-Debug-ID: 1404457069-04cb6c76d244a090001-NocioJ Received: from smtp-vip1.emmsrv.com (177-220-193-144-stc-b.idccorp.net.br [177.220.193.144]) by cuda.sgi.com with ESMTP id 2tRYNC861vSVzeY4 (version=TLSv1 cipher=AES256-SHA bits=256 verify=NO) for ; Thu, 03 Jul 2014 23:57:51 -0700 (PDT) X-Barracuda-Envelope-From: bounce-112652-6905444-192212-16160@emmsrv.com X-Barracuda-Apparent-Source-IP: 177.220.193.144 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=emmsrv.com; s=default; h=Content-Type:Content-Transfer-Encoding:MIME-Version:List-Unsubscribe:Sender:Message-ID:Subject:Reply-to:From:To:Date; bh=6/wc4grfiWMC9M7DRlo8xsXXKkCshQD8EG7J+mtFBdg=; b=fOXmzQlXjE5YXyK0ciozHe5KEyrA/xZ6rQ+6y0O4KWzFtqjvjgUFNo+X2qJ+WB8GqXtbuVsYmx2wM4XmUwtgcAmuvtq499WlO5Ak9XnoBAmzyROBr6Kx98seCGf/1pRcR6sBvqyk53ps3g30V7SDkk7kbT4tvl5nx//ik+Rkuek=; Received: from [216.70.116.37] (port=47374 helo=sistema.emmilia.com.br) by smtp-vip1.emmsrv.com with esmtpsa (TLSv1:DHE-RSA-AES256-SHA:256) (Exim 4.82) (envelope-from ) id 1X2xRT-00035m-05 for xfs@oss.sgi.com; Fri, 04 Jul 2014 03:57:55 -0300 Date: Fri, 4 Jul 2014 03:57:48 -0300 To: "xfs@oss.sgi.com" From: Carlos Pedrollo Corretor Foxter Reply-To: Carlos Pedrollo Corretor Foxter Subject: =?utf-8?Q?Oportunidade_=C3=BAnica:_MedPlex_-_Complexo_M=C3=A9dico_Cyrela_?= =?utf-8?Q?Goldsztein?= Message-ID: <6bbe75fc2ed8ccd61fec29c081f6fc9a@sistema.emmilia.com.br> X-ASG-Orig-Subj: =?utf-8?Q?Oportunidade_=C3=BAnica:_MedPlex_-_Complexo_M=C3=A9dico_Cyrela_?= =?utf-8?Q?Goldsztein?= X-Priority: 3 Sender: X-Mailer: Emmilia X-Complaints-To: abuso@emmsrv.com List-Unsubscribe: X-MessageID: 174-qw2-eGZzQG9zcy5zZ2kuY29t-1hy-tz-rs X-Report-Abuse: X-SMTPAPI: {"unique_args":{"abuse-id":"174-qw2-eGZzQG9zcy5zZ2kuY29t-1hy-tz-rs"}, "category":"campaign"} MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/html; charset="utf-8" X-AntiAbuse: This header was added to track abuse, please include it with any abuse report X-AntiAbuse: Primary Hostname - smtp-vip1.emmsrv.com X-AntiAbuse: Original Domain - oss.sgi.com X-AntiAbuse: Originator/Caller UID/GID - [47 12] / [47 12] X-AntiAbuse: Sender Address Domain - emmsrv.com X-Get-Message-Sender-Via: smtp-vip1.emmsrv.com: authenticated_id: contato@emmsrv.com X-Source: X-Source-Args: X-Source-Dir: X-Barracuda-Connect: 177-220-193-144-stc-b.idccorp.net.br[177.220.193.144] X-Barracuda-Start-Time: 1404457070 X-Barracuda-Encrypted: AES256-SHA X-Barracuda-URL: http://192.48.176.15:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 X-Barracuda-Spam-Score: 2.60 X-Barracuda-Spam-Status: No, SCORE=2.60 using per-user scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.7 tests=BSF_SC0_SA275b_HL, DKIM_SIGNED, DKIM_VERIFIED, HTML_MESSAGE, MIME_HTML_ONLY, RDNS_DYNAMIC X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.7229 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- -0.00 DKIM_VERIFIED Domain Keys Identified Mail: signature passes verification 0.00 DKIM_SIGNED Domain Keys Identified Mail: message has a signature 0.00 MIME_HTML_ONLY BODY: Message only has text/html MIME parts 0.00 HTML_MESSAGE BODY: HTML included in message 0.10 RDNS_DYNAMIC Delivered to trusted network by host with dynamic-looking rDNS 2.50 BSF_SC0_SA275b_HL Custom Rule SA275b_HL =0A=0A=0A= =0A=0A=0A=0A =0A
= =0A =0A =0A =
ver no navegador |
=0A =0A =0A
descadastrar=0A =
=0A = =0A = =0A = =0A = =0A
=0A = 3D"Encaminhar"= =0A =0A 3D"Facebook"=0A =0A = 3D"Twitter"=0A =
= =0A
=0A
=0A

Excelente oportunidade para investidores e profissionais da sa&uacut= e;de.

=0A

Complexo imobilia= rio da area medica, único em Porto Alegre.

=0A

Pré-l= ançamento Cyrela Goldsztein do mais revolucionário e moderno = Empreendimento de alto padr&ati= lde;o, voltado para a area medica em Porto Alegre. O= MedPlex reunirá num só local: clínicas, <= span style=3D"text-align: justify;">consultórios, salas e laborat&oa= cute;rios, oferecendo = ; recursos e serviços de Conveniência, Recepção, Segurança, Manutenção, Condom&= iacute;nio, Auditór= io, Hotelaria e Estacionamento. 

=0A

Assegure preferencia para opção de compra no lan&cce= dil;amento com Corretor Carlos da Foxter (51) 9478-8448   ou responda este e-mail com seu nome e telefone que lhe contataremos.

=0A
=0A=0A =0A
=0A = = =0A =0A =0A
xfs@oss.sgi.com
=0A =0A
=0A descadastrar | denunciar abuso=0A =
=0A
=0A=0A=0A= 3D"."=0A=0A=0A From bfoster@redhat.com Fri Jul 4 07:32:04 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: xfs@oss.sgi.com Delivered-To: xfs@oss.sgi.com Received: from relay.sgi.com (relay3.corp.sgi.com [198.149.34.15]) by oss.sgi.com (Postfix) with ESMTP id 85DC97F3F for ; Fri, 4 Jul 2014 07:32:04 -0500 (CDT) Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by relay3.corp.sgi.com (Postfix) with ESMTP id 0303EAC001 for ; Fri, 4 Jul 2014 05:32:00 -0700 (PDT) X-ASG-Debug-ID: 1404477115-04cbb06535285020001-NocioJ Received: from mx1.redhat.com (mx1.redhat.com [209.132.183.28]) by cuda.sgi.com with ESMTP id GBChXwXPS5G35Mhj (version=TLSv1 cipher=AES256-SHA bits=256 verify=NO) for ; Fri, 04 Jul 2014 05:31:56 -0700 (PDT) X-Barracuda-Envelope-From: bfoster@redhat.com X-Barracuda-Apparent-Source-IP: 209.132.183.28 X-ASG-Whitelist: Client Received: from int-mx10.intmail.prod.int.phx2.redhat.com (int-mx10.intmail.prod.int.phx2.redhat.com [10.5.11.23]) by mx1.redhat.com (8.14.4/8.14.4) with ESMTP id s64CVqAT003074 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Fri, 4 Jul 2014 08:31:52 -0400 Received: from bfoster.bfoster ([10.18.41.237]) by int-mx10.intmail.prod.int.phx2.redhat.com (8.14.4/8.14.4) with ESMTP id s64CVpFV013918; Fri, 4 Jul 2014 08:31:51 -0400 Received: by bfoster.bfoster (Postfix, from userid 1000) id CF9A31223EB; Fri, 4 Jul 2014 08:40:49 -0400 (EDT) Date: Fri, 4 Jul 2014 08:40:49 -0400 From: Brian Foster To: Dave Chinner Cc: "Carlos E. R." , XFS mailing list Subject: Re: Got "Internal error XFS_WANT_CORRUPTED_GOTO". Filesystem needs reformatting to correct issue. Message-ID: <20140704124049.GB12151@bfoster.bfoster> X-ASG-Orig-Subj: Re: Got "Internal error XFS_WANT_CORRUPTED_GOTO". Filesystem needs reformatting to correct issue. References: <20140702120441.GA51757@bfoster.bfoster> <20140703094347.GU4453@dastard> <20140704000426.GX4453@dastard> <20140704014008.GI9508@dastard> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20140704014008.GI9508@dastard> User-Agent: Mutt/1.5.23 (2014-03-12) X-Scanned-By: MIMEDefang 2.68 on 10.5.11.23 X-Barracuda-Connect: mx1.redhat.com[209.132.183.28] X-Barracuda-Start-Time: 1404477116 X-Barracuda-Encrypted: AES256-SHA X-Barracuda-URL: http://192.48.176.25:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 On Fri, Jul 04, 2014 at 11:40:08AM +1000, Dave Chinner wrote: > On Fri, Jul 04, 2014 at 03:29:31AM +0200, Carlos E. R. wrote: > > On Friday, 2014-07-04 at 10:04 +1000, Dave Chinner wrote: > > >On Fri, Jul 04, 2014 at 01:34:52AM +0200, Carlos E. R. wrote: > > >>Ok, true, there is no formal "Oops". > > >> > > >>But no, the system does not remains fine, I had to hit the hardware > > >>reset or power off button to get out. > > > > > >That usually only happens when the root filesystem is shut down and > > >you can't access any of the binaries needed to run the system. Is > > >the filesystem that is shutting down the root? > > > > No, it is not. Root is separate and using ext4. The problematic one > > is /home. > > > > > > What I did, as far I remember, was, when I noticed that home had > > failed and was read only, to switch to runlevel 1, umount /home > > (killing the apps that were still using it), then tried to mount it > > again to replay the log, prior to using xfs-repair on it. Mount > > hung. ctrl-alt-supr failed, or appeared to fail. So reset button... > > That's a completely different issue to having a shutdown filesystem > hang your system. That's a mount problem, and likely a known issue. > You need to be specific when describing a problem, otherwise we > waste time going down the wrong paths. > > > >>No, the on disk filesystem is not healthy. If I continue using it, > > >>after reboot and using "xfs_repair" several times, it fails again > > >>within a day. > > > > > >After at least one hibernation and thaw cycle, right? > > > > Yes. 3, I think. > > Then hibernation has caused the corruption. It may take some time > for the corruption to be detected, but there isn't any doubt in my > mind that hibernation is the cause of your problems. > > So, until we have kernel fixes, you'd do best to turn off > hibernation. If you can't live with leaving your machine powered up > or switching it off, then use suspend-to-ram rather than > suspend-to-disk to avoid the problematic snapshot/restore > situation.... > FWIW, I ran through a bunch of hibernation tests yesterday and couldn't seem to reproduce anything interesting. I ran a preallocating workload while constantly hibernating and waking a vm. I also tried using a hack to avoid the eofblocks trim on release to make the test more effective, and another to invoke the hibernation from the eofblocks background scanner to "improve" the chances of conflict. I also ran a truncate test to stress xfs_itruncate_extents() during hibernation cycles (there's actually an instance of this in Carlos' reported output that doesn't seem to involve a workqueue, attributed to thunderbird iirc) and ran these similar tests going back to v3.11.0 as well as the latest 3.16.0-rc2. None of this really means anything outside of there isn't quite enough information to reproduce. It looks simple enough to enable freezing on the eofblocks (or other xfs) workqueues by setting a flag, so we could go and do that, but that still isn't definite. E.g., that thunderbird truncate instance of failure stands out a bit to me. Carlos, You've indicated in your previous replies that you have reproduced this repeatedly or more easily after you hit the problem and before you run a reformat and restore sequence, enough to give you the impression at least that the reformat is necessary. If you have the time, could you run some of your typical activities through some hibernation cycles in an attempt to narrow down what might contribute to this? E.g., perhaps this only occurs with thunderbird or some other particular application running, etc. If you have the ability to try a more recent kernel for a period of time, that could be interesting as well. Brian > Cheers, > > Dave. > -- > Dave Chinner > david@fromorbit.com > > _______________________________________________ > xfs mailing list > xfs@oss.sgi.com > http://oss.sgi.com/mailman/listinfo/xfs From robin.listas@gmail.com Fri Jul 4 08:37:06 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=FREEMAIL_FROM,T_DKIM_INVALID autolearn=ham version=3.3.1 X-Original-To: xfs@oss.sgi.com Delivered-To: xfs@oss.sgi.com Received: from relay.sgi.com (relay1.corp.sgi.com [137.38.102.111]) by oss.sgi.com (Postfix) with ESMTP id F2DED7F3F for ; Fri, 4 Jul 2014 08:37:05 -0500 (CDT) Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by relay1.corp.sgi.com (Postfix) with ESMTP id F3F578F8049 for ; Fri, 4 Jul 2014 06:37:02 -0700 (PDT) X-ASG-Debug-ID: 1404481020-04cb6c76d14548f0001-NocioJ Received: from mail-wi0-f175.google.com (mail-wi0-f175.google.com [209.85.212.175]) by cuda.sgi.com with ESMTP id OcXPEkAfPuHIsobJ (version=TLSv1 cipher=RC4-SHA bits=128 verify=NO) for ; Fri, 04 Jul 2014 06:37:00 -0700 (PDT) X-Barracuda-Envelope-From: robin.listas@gmail.com X-Barracuda-Apparent-Source-IP: 209.85.212.175 X-Barracuda-IPDD: Level1 [gmail.com/209.85.212.175] Received: by mail-wi0-f175.google.com with SMTP id r20so12950086wiv.14 for ; Fri, 04 Jul 2014 06:36:55 -0700 (PDT) X-Barracuda-IPDD: Level1 [gmail.com/209.85.212.175] X-Barracuda-IPDD: Level1 [gmail.com/209.85.212.175] DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=sender:message-id:date:from:user-agent:mime-version:to:subject :references:in-reply-to:content-type:content-transfer-encoding; bh=/hIOulidPYbxgpomCblyI2+Nt0Kg2M240t0+pDRAOBY=; b=Y77VoqkdEdslzSwicuIGlQ8wYiIkh/nldigjfaBG2+sBi6m/4gUGZ9nkyaRZtdmzIb Fz8fYlaJgf+rXYthN6BlNyEnjocYt1ZrZJJJWoH8WsGbWAVDIS0XvRtkecc5k8KqrH0o JFLYKlveeOh32+pGHhdDzW7eSFJxM4pxf9cIJkMm3pngMN0YhFReDfWaYzDk5dNmKFRt wv0LPtPU1V0aMRNKz1suTh3YyIdxWmxY0CGbW1nyxsYiLBheUUbl4XwTkjFVQAvAR32c S34B6pGsZbqisl6gpYW9TZ0OEDKIakhanlq1eR/37+HtpCJwwS+9n/WbAiJlxmSODD+N c3OA== X-Received: by 10.194.219.70 with SMTP id pm6mr12256038wjc.53.1404481015307; Fri, 04 Jul 2014 06:36:55 -0700 (PDT) Received: from minas-tirith.valinor (90.Red-79-150-228.dynamicIP.rima-tde.net. [79.150.228.90]) by mx.google.com with ESMTPSA id cz4sm79307385wib.23.2014.07.04.06.36.53 for (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Fri, 04 Jul 2014 06:36:54 -0700 (PDT) Sender: Carlos Robinson Received: from minas-tirith.valinor (localhost [127.0.0.1]) by minas-tirith.valinor (Postfix) with ESMTP id 90B6D18245B for ; Fri, 4 Jul 2014 15:36:47 +0200 (CEST) Message-ID: <53B6ADEF.2000409@opensuse.org> Date: Fri, 04 Jul 2014 15:36:47 +0200 From: "Carlos E. R." User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:24.0) Gecko/20100101 Thunderbird/24.6.0 MIME-Version: 1.0 To: XFS mailing list Subject: Re: Got "Internal error XFS_WANT_CORRUPTED_GOTO". Filesystem needs reformatting to correct issue. References: <20140702120441.GA51757@bfoster.bfoster> <20140703094347.GU4453@dastard> <20140704000426.GX4453@dastard> <20140704014008.GI9508@dastard> <20140704124049.GB12151@bfoster.bfoster> X-ASG-Orig-Subj: Re: Got "Internal error XFS_WANT_CORRUPTED_GOTO". Filesystem needs reformatting to correct issue. In-Reply-To: <20140704124049.GB12151@bfoster.bfoster> X-Enigmail-Version: 1.6 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit X-Barracuda-Connect: mail-wi0-f175.google.com[209.85.212.175] X-Barracuda-Start-Time: 1404481020 X-Barracuda-Encrypted: RC4-SHA X-Barracuda-URL: http://192.48.176.15:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 X-Barracuda-Spam-Score: 0.00 X-Barracuda-Spam-Status: No, SCORE=0.00 using per-user scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.7 tests=DKIM_SIGNED, DKIM_VERIFIED X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.7236 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- -0.00 DKIM_VERIFIED Domain Keys Identified Mail: signature passes verification 0.00 DKIM_SIGNED Domain Keys Identified Mail: message has a signature -----BEGIN PGP SIGNED MESSAGE----- Hash: SHA256 On 2014-07-04 14:40, Brian Foster wrote: Thanks. Yes, that's right. Yes, certainly. I can do more hibernation cycles to try trigger it again. Thunderbird is an application that I use a lot, it is always open. I have several remote imap accounts, and one local imap account, using a local dovecot daemon on another partition (which has not been affected so far). It also pulls nntp from a local daemon (leafnode), which uses a different partition, on reiserfs. It is a complex setup, you see :-) I'll investigate if it is possible. Meanwhile, I have upgraded the xfsprogs package to version 3.2.0, and the kernel has got an update to 3.11.10 (openSUSE policy is to backport security patches, while maintaining the same kernel version through the lifetime of a release, so that this kernel has in fact additions and patches from more advanced versions). Having upgraded xfsprogs, I'm right now in the process of backup-format-restore this home partition again, to take advantage of any modification this new xfsprogs package may have. I think I will use this time rsync instead of xfsrestore, although it is much slower - - unless you ask me to use xfsrestore. - -- Cheers / Saludos, Carlos E. R. (from 13.1 x86_64 "Bottle" (Minas Tirith)) -----BEGIN PGP SIGNATURE----- Version: GnuPG v2.0.22 (GNU/Linux) Comment: Using GnuPG with Thunderbird - http://www.enigmail.net/ iF4EAREIAAYFAlO2re8ACgkQja8UbcUWM1yi7QD/b0V+gASfApDWNqIaf6nceWvr IAGUb+jFwqGeZppqdEUA/1hqknkWDC7St4kpR4SiYfdt9gzuKMX4abQ3nU2SlVlA =mgSa -----END PGP SIGNATURE----- From BATV+43973f37d9d91024b5f2+3967+infradead.org+hch@bombadil.srs.infradead.org Fri Jul 4 09:08:56 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: xfs@oss.sgi.com Delivered-To: xfs@oss.sgi.com Received: from relay.sgi.com (relay2.corp.sgi.com [137.38.102.29]) by oss.sgi.com (Postfix) with ESMTP id BFBA87F3F for ; Fri, 4 Jul 2014 09:08:56 -0500 (CDT) Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by relay2.corp.sgi.com (Postfix) with ESMTP id C3A89304032 for ; Fri, 4 Jul 2014 07:08:53 -0700 (PDT) X-ASG-Debug-ID: 1404482932-04cb6c76cf455d10001-NocioJ Received: from bombadil.infradead.org ([198.137.202.9]) by cuda.sgi.com with ESMTP id nRO2vxssoYy6NhMB (version=TLSv1 cipher=AES256-SHA bits=256 verify=NO) for ; Fri, 04 Jul 2014 07:08:52 -0700 (PDT) X-Barracuda-Envelope-From: BATV+43973f37d9d91024b5f2+3967+infradead.org+hch@bombadil.srs.infradead.org X-Barracuda-Apparent-Source-IP: 198.137.202.9 Received: from hch by bombadil.infradead.org with local (Exim 4.80.1 #2 (Red Hat Linux)) id 1X34AW-0008Ag-0B; Fri, 04 Jul 2014 14:08:52 +0000 Date: Fri, 4 Jul 2014 07:08:51 -0700 From: Christoph Hellwig To: Dave Chinner Cc: xfs@oss.sgi.com Subject: Re: [PATCH 2/6] xfs_db: write command broken on 64 bit values Message-ID: <20140704140851.GA29520@infradead.org> X-ASG-Orig-Subj: Re: [PATCH 2/6] xfs_db: write command broken on 64 bit values References: <1404453435-1915-1-git-send-email-david@fromorbit.com> <1404453435-1915-3-git-send-email-david@fromorbit.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1404453435-1915-3-git-send-email-david@fromorbit.com> User-Agent: Mutt/1.5.23 (2014-03-12) X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: UNKNOWN[198.137.202.9] X-Barracuda-Start-Time: 1404482932 X-Barracuda-Encrypted: AES256-SHA X-Barracuda-URL: http://192.48.176.15:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 X-Barracuda-Spam-Score: 0.10 X-Barracuda-Spam-Status: No, SCORE=0.10 using per-user scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.7 tests=RDNS_NONE X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.7236 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.10 RDNS_NONE Delivered to trusted network by a host with no rDNS On Fri, Jul 04, 2014 at 03:57:11PM +1000, Dave Chinner wrote: > From: Dave Chinner > > convert_args() has problesm with 64 bit fields because it tries to > shift them by 64 bits. The result of doing so is undefined by the C > standard, and so results in the unexpected behaviour of the result > being being the original value unchanged rather than 0. Hence you > can't write 64 bit fields because the code thinks that all values > other than 0 are out of range. > > Signed-off-by: Dave Chinner Looks good, Reviewed-by: Christoph Hellwig From flux@hotbox.ru Fri Jul 4 09:09:18 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=FREEMAIL_FROM,T_DKIM_INVALID autolearn=ham version=3.3.1 X-Original-To: xfs@oss.sgi.com Delivered-To: xfs@oss.sgi.com Received: from relay.sgi.com (relay3.corp.sgi.com [198.149.34.15]) by oss.sgi.com (Postfix) with ESMTP id 3648F7F3F for ; Fri, 4 Jul 2014 09:09:18 -0500 (CDT) Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by relay3.corp.sgi.com (Postfix) with ESMTP id B87FCAC001 for ; Fri, 4 Jul 2014 07:09:14 -0700 (PDT) X-ASG-Debug-ID: 1404482951-04cbb06535287890001-NocioJ Received: from mail3.ks.pochta.ru (mail3.ks.pochta.ru [62.141.94.173]) by cuda.sgi.com with ESMTP id OHIybT8DqxuJyO6x (version=TLSv1 cipher=AES256-SHA bits=256 verify=NO) for ; Fri, 04 Jul 2014 07:09:12 -0700 (PDT) X-Barracuda-Envelope-From: flux@hotbox.ru X-Barracuda-Apparent-Source-IP: 62.141.94.173 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=qip.ru; s=dkim; h=Content-Transfer-Encoding:Content-Type:In-Reply-To:References:Subject:CC:To:MIME-Version:From:Date:Message-ID; bh=exhN9j26+hEYuah2cAvzVbQHOgAHCOLO1Er7eqx/epI=; b=JysJMZ4yAhIN7OXtKTnRBF7UZqSunPE68W6/BZMJY0oKYlaznF+VGDn4jHmWWD5lVO78Yk4bX0vmD7sk3Px4zSkdV119q52PhZ4LB2wbleRi7jGH80QhOF6oJgiH7S/jyUszHRdFNJr1Fs4FnjJ9OlVuUHhcPovgWh6AddINdGsFhP830bpv3Rxl2wZ/suBXfHMzeJQ3dmj7f4adDmgEBW7zRU7I+WG0Q/DfBm1do8ScOUZafSu1WUL1/KACrX4b/c9iBhOffxTiVmvZx3XW8FjJAMfLkk48QlwOs0wci7Qh956X1vIx+M0pSqQB2HJN9hWnFts4H9KNcmxdXgKOzQ==; Received: from [95.79.188.197] (port=43489 helo=localhost.localdomain) by mail3.ks.pochta.ru with esmtpsa id 1X34Ao-0007ee-PO; Fri, 04 Jul 2014 18:09:11 +0400 Message-ID: <53B6B581.5070801@hotbox.ru> Date: Fri, 04 Jul 2014 18:09:05 +0400 From: flux@hotbox.ru User-Agent: Mozilla/5.0 (X11; Linux i686; rv:24.0) Gecko/20100101 Thunderbird/24.6.0 MIME-Version: 1.0 To: Dave Chinner CC: xfs@oss.sgi.com Subject: Re: XFS syncs References: <53B59B81.2030603@hotbox.ru> <20140703231730.GW4453@dastard> X-ASG-Orig-Subj: Re: XFS syncs In-Reply-To: <20140703231730.GW4453@dastard> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit X-RSpam-Score: 165 X-RSpam-Report: This message is likely spam. X-Barracuda-Connect: mail3.ks.pochta.ru[62.141.94.173] X-Barracuda-Start-Time: 1404482952 X-Barracuda-Encrypted: AES256-SHA X-Barracuda-URL: http://192.48.176.25:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 X-Barracuda-Spam-Score: 0.00 X-Barracuda-Spam-Status: No, SCORE=0.00 using per-user scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.7 tests=DKIM_SIGNED, DKIM_VERIFIED, NO_REAL_NAME X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.7236 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.00 NO_REAL_NAME From: does not include a real name -0.00 DKIM_VERIFIED Domain Keys Identified Mail: signature passes verification 0.00 DKIM_SIGNED Domain Keys Identified Mail: message has a signature Hello Dave, Thanks for the explanation and your suggestion to use wsync option. On 07/04/2014 03:17 AM, Dave Chinner wrote: > On Thu, Jul 03, 2014 at 10:05:53PM +0400, flux@hotbox.ru wrote: >> Hi, >> >> I issue 'mkdir abc' on my xfs partition the cut off the power. After >> reboot there's no 'abc' directoy. > > Because you didn't sync(1) the filesystem or fsync(2) the directory > before you cut the power. Hence the change never hit the disk. > >> However, when I do that on ext4 >> the 'abc' direcory is always created after reboots. > > That'll be pure fluke - ext4 delays journal writes on namespace > operations just like XFS does. > >> All the >> settings, about mount options are default for my distro. What am I >> missing or how do I change the things of the jounral or whatever? > > If you want directory operations to hitthe disk immediately, then > mount with the "-o wsync" option. Be aware, however, that this will > kill performance unless you have expensive storage with a large > amount of battery backed write cache in front of the disks. There's > a good chance it will also cause excessive wear on SSDs due to the > frequent journal writes. > > Cheers, > > Dave. > From BATV+43973f37d9d91024b5f2+3967+infradead.org+hch@bombadil.srs.infradead.org Fri Jul 4 09:15:11 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: xfs@oss.sgi.com Delivered-To: xfs@oss.sgi.com Received: from relay.sgi.com (relay2.corp.sgi.com [137.38.102.29]) by oss.sgi.com (Postfix) with ESMTP id 3E2817F3F for ; Fri, 4 Jul 2014 09:15:11 -0500 (CDT) Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by relay2.corp.sgi.com (Postfix) with ESMTP id 3FEA0304032 for ; Fri, 4 Jul 2014 07:15:11 -0700 (PDT) X-ASG-Debug-ID: 1404483309-04cbb06536287c00001-NocioJ Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.9]) by cuda.sgi.com with ESMTP id 5DZ8RVt595kL9HEJ (version=TLSv1 cipher=AES256-SHA bits=256 verify=NO) for ; Fri, 04 Jul 2014 07:15:10 -0700 (PDT) X-Barracuda-Envelope-From: BATV+43973f37d9d91024b5f2+3967+infradead.org+hch@bombadil.srs.infradead.org X-Barracuda-Apparent-Source-IP: 198.137.202.9 Received: from hch by bombadil.infradead.org with local (Exim 4.80.1 #2 (Red Hat Linux)) id 1X34Gb-0008Mw-E4; Fri, 04 Jul 2014 14:15:09 +0000 Date: Fri, 4 Jul 2014 07:15:09 -0700 From: Christoph Hellwig To: Dave Chinner Cc: xfs@oss.sgi.com Subject: Re: [PATCH 4/6] libxfs: reused invalidated buffers leak state and data Message-ID: <20140704141509.GB29520@infradead.org> X-ASG-Orig-Subj: Re: [PATCH 4/6] libxfs: reused invalidated buffers leak state and data References: <1404453435-1915-1-git-send-email-david@fromorbit.com> <1404453435-1915-5-git-send-email-david@fromorbit.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1404453435-1915-5-git-send-email-david@fromorbit.com> User-Agent: Mutt/1.5.23 (2014-03-12) X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: bombadil.infradead.org[198.137.202.9] X-Barracuda-Start-Time: 1404483310 X-Barracuda-Encrypted: AES256-SHA X-Barracuda-URL: http://192.48.176.25:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 X-Barracuda-Spam-Score: 0.00 X-Barracuda-Spam-Status: No, SCORE=0.00 using per-user scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.7 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.7236 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- On Fri, Jul 04, 2014 at 03:57:13PM +1000, Dave Chinner wrote: > @@ -632,6 +632,12 @@ libxfs_putbuf(xfs_buf_t *bp) > pthread_mutex_unlock(&bp->b_lock); > } > } > + /* > + * ensure that any errors on this use of the buffer don't carry > + * over to the next user. > + */ > + bp->b_error = 0; > + > cache_node_put(libxfs_bcache, (struct cache_node *)bp); This seems a bit fishy to me. For one I'm pretty sure it needs to be done before unlocking b_lock, second it's different behavior from the kernel where we explicitly clear it in the caller for the rare case we want to reuse a buffer that had an error (xfs_buf_iodone_callbacks seems to be the only one). Any reason to do this differently in userspace? From BATV+43973f37d9d91024b5f2+3967+infradead.org+hch@bombadil.srs.infradead.org Fri Jul 4 09:15:59 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: xfs@oss.sgi.com Delivered-To: xfs@oss.sgi.com Received: from relay.sgi.com (relay3.corp.sgi.com [198.149.34.15]) by oss.sgi.com (Postfix) with ESMTP id 81F7C7F3F for ; Fri, 4 Jul 2014 09:15:59 -0500 (CDT) Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by relay3.corp.sgi.com (Postfix) with ESMTP id 1E94EAC001 for ; Fri, 4 Jul 2014 07:15:59 -0700 (PDT) X-ASG-Debug-ID: 1404483357-04cbb06536287c80001-NocioJ Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.9]) by cuda.sgi.com with ESMTP id p6xCI70j096XeZBj (version=TLSv1 cipher=AES256-SHA bits=256 verify=NO) for ; Fri, 04 Jul 2014 07:15:57 -0700 (PDT) X-Barracuda-Envelope-From: BATV+43973f37d9d91024b5f2+3967+infradead.org+hch@bombadil.srs.infradead.org X-Barracuda-Apparent-Source-IP: 198.137.202.9 Received: from hch by bombadil.infradead.org with local (Exim 4.80.1 #2 (Red Hat Linux)) id 1X34HN-0000iA-5T; Fri, 04 Jul 2014 14:15:57 +0000 Date: Fri, 4 Jul 2014 07:15:57 -0700 From: Christoph Hellwig To: Dave Chinner Cc: xfs@oss.sgi.com Subject: Re: [PATCH 6/6] repair: get rid of BADFSINO Message-ID: <20140704141557.GC29520@infradead.org> X-ASG-Orig-Subj: Re: [PATCH 6/6] repair: get rid of BADFSINO References: <1404453435-1915-1-git-send-email-david@fromorbit.com> <1404453435-1915-7-git-send-email-david@fromorbit.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1404453435-1915-7-git-send-email-david@fromorbit.com> User-Agent: Mutt/1.5.23 (2014-03-12) X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: bombadil.infradead.org[198.137.202.9] X-Barracuda-Start-Time: 1404483357 X-Barracuda-Encrypted: AES256-SHA X-Barracuda-URL: http://192.48.176.25:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-Spam-Score: 0.00 X-Barracuda-Spam-Status: No, SCORE=0.00 using per-user scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.7 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.7236 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- Looks good, Reviewed-by: Christoph Hellwig From BATV+43973f37d9d91024b5f2+3967+infradead.org+hch@bombadil.srs.infradead.org Fri Jul 4 09:23:08 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: xfs@oss.sgi.com Delivered-To: xfs@oss.sgi.com Received: from relay.sgi.com (relay2.corp.sgi.com [137.38.102.29]) by oss.sgi.com (Postfix) with ESMTP id B760D7F3F for ; Fri, 4 Jul 2014 09:23:08 -0500 (CDT) Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by relay2.corp.sgi.com (Postfix) with ESMTP id AB1B530404E for ; Fri, 4 Jul 2014 07:23:08 -0700 (PDT) X-ASG-Debug-ID: 1404483787-04bdf056687d03b0001-NocioJ Received: from bombadil.infradead.org ([198.137.202.9]) by cuda.sgi.com with ESMTP id khu2UCIa24bd1ZUd (version=TLSv1 cipher=AES256-SHA bits=256 verify=NO) for ; Fri, 04 Jul 2014 07:23:07 -0700 (PDT) X-Barracuda-Envelope-From: BATV+43973f37d9d91024b5f2+3967+infradead.org+hch@bombadil.srs.infradead.org X-Barracuda-Apparent-Source-IP: 198.137.202.9 Received: from hch by bombadil.infradead.org with local (Exim 4.80.1 #2 (Red Hat Linux)) id 1X34OI-0003NE-TJ; Fri, 04 Jul 2014 14:23:06 +0000 Date: Fri, 4 Jul 2014 07:23:06 -0700 From: Christoph Hellwig To: Dave Chinner Cc: xfs@oss.sgi.com Subject: Re: [PATCH 1/6] repair: support more than 25 ACLs Message-ID: <20140704142306.GA4687@infradead.org> X-ASG-Orig-Subj: Re: [PATCH 1/6] repair: support more than 25 ACLs References: <1404453435-1915-1-git-send-email-david@fromorbit.com> <1404453435-1915-2-git-send-email-david@fromorbit.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1404453435-1915-2-git-send-email-david@fromorbit.com> User-Agent: Mutt/1.5.23 (2014-03-12) X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: UNKNOWN[198.137.202.9] X-Barracuda-Start-Time: 1404483787 X-Barracuda-Encrypted: AES256-SHA X-Barracuda-URL: http://192.48.157.11:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 X-Barracuda-Spam-Score: 0.10 X-Barracuda-Spam-Status: No, SCORE=0.10 using per-user scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.7 tests=RDNS_NONE X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.7237 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.10 RDNS_NONE Delivered to trusted network by a host with no rDNS Looks good, Reviewed-by: Christoph Hellwig and yes, xfs_acl.h should be shared with userspace, it's really just four kernel-only prototypes in there that can be moved easily. From BATV+43973f37d9d91024b5f2+3967+infradead.org+hch@bombadil.srs.infradead.org Fri Jul 4 09:24:24 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: xfs@oss.sgi.com Delivered-To: xfs@oss.sgi.com Received: from relay.sgi.com (relay3.corp.sgi.com [198.149.34.15]) by oss.sgi.com (Postfix) with ESMTP id E1B427F3F for ; Fri, 4 Jul 2014 09:24:24 -0500 (CDT) Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by relay3.corp.sgi.com (Postfix) with ESMTP id 70016AC005 for ; Fri, 4 Jul 2014 07:24:24 -0700 (PDT) X-ASG-Debug-ID: 1404483862-04cb6c76d0456650001-NocioJ Received: from bombadil.infradead.org ([198.137.202.9]) by cuda.sgi.com with ESMTP id cJhdASHPUWy9WG4g (version=TLSv1 cipher=AES256-SHA bits=256 verify=NO) for ; Fri, 04 Jul 2014 07:24:22 -0700 (PDT) X-Barracuda-Envelope-From: BATV+43973f37d9d91024b5f2+3967+infradead.org+hch@bombadil.srs.infradead.org X-Barracuda-Apparent-Source-IP: 198.137.202.9 Received: from hch by bombadil.infradead.org with local (Exim 4.80.1 #2 (Red Hat Linux)) id 1X34PW-0003wN-DZ; Fri, 04 Jul 2014 14:24:22 +0000 Date: Fri, 4 Jul 2014 07:24:22 -0700 From: Christoph Hellwig To: Dave Chinner Cc: xfs@oss.sgi.com Subject: Re: [PATCH 3/6] repair: handle directory block corruption in phase 6 Message-ID: <20140704142422.GB4687@infradead.org> X-ASG-Orig-Subj: Re: [PATCH 3/6] repair: handle directory block corruption in phase 6 References: <1404453435-1915-1-git-send-email-david@fromorbit.com> <1404453435-1915-4-git-send-email-david@fromorbit.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1404453435-1915-4-git-send-email-david@fromorbit.com> User-Agent: Mutt/1.5.23 (2014-03-12) X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: UNKNOWN[198.137.202.9] X-Barracuda-Start-Time: 1404483862 X-Barracuda-Encrypted: AES256-SHA X-Barracuda-URL: http://192.48.176.15:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 X-Barracuda-Spam-Score: 0.10 X-Barracuda-Spam-Status: No, SCORE=0.10 using per-user scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.7 tests=RDNS_NONE X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.7237 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.10 RDNS_NONE Delivered to trusted network by a host with no rDNS > @@ -2179,7 +2179,7 @@ longform_dir2_entry_check(xfs_mount_t *mp, > freetab = malloc(FREETAB_SIZE(ip->i_d.di_size / mp->m_dirblksize)); > if (!freetab) { > do_error( > - _("malloc failed in longform_dir2_entry_check (%" PRId64 " bytes)\n"), > +_("malloc failed in longform_dir2_entry_check (%" PRId64 " bytes)\n"), Use __func__ to make this both more readable and future proof (same for the other error message). Otherwise looks good, Reviewed-by: Christoph Hellwig From BATV+43973f37d9d91024b5f2+3967+infradead.org+hch@bombadil.srs.infradead.org Fri Jul 4 09:36:01 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: xfs@oss.sgi.com Delivered-To: xfs@oss.sgi.com Received: from relay.sgi.com (relay2.corp.sgi.com [137.38.102.29]) by oss.sgi.com (Postfix) with ESMTP id 1F99B7F3F for ; Fri, 4 Jul 2014 09:36:01 -0500 (CDT) Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by relay2.corp.sgi.com (Postfix) with ESMTP id 04EBF304039 for ; Fri, 4 Jul 2014 07:36:01 -0700 (PDT) X-ASG-Debug-ID: 1404484559-04bdf056697d0b00001-NocioJ Received: from bombadil.infradead.org ([198.137.202.9]) by cuda.sgi.com with ESMTP id 8gpphWv1XPZ3mFYv (version=TLSv1 cipher=AES256-SHA bits=256 verify=NO) for ; Fri, 04 Jul 2014 07:35:59 -0700 (PDT) X-Barracuda-Envelope-From: BATV+43973f37d9d91024b5f2+3967+infradead.org+hch@bombadil.srs.infradead.org X-Barracuda-Apparent-Source-IP: 198.137.202.9 Received: from hch by bombadil.infradead.org with local (Exim 4.80.1 #2 (Red Hat Linux)) id 1X34al-0000UF-Gp; Fri, 04 Jul 2014 14:35:59 +0000 Date: Fri, 4 Jul 2014 07:35:59 -0700 From: Christoph Hellwig To: Dave Chinner Cc: xfs@oss.sgi.com Subject: Re: [PATCH 5/6] repair: fix quota inode handling in secondary superblocks Message-ID: <20140704143559.GA29745@infradead.org> X-ASG-Orig-Subj: Re: [PATCH 5/6] repair: fix quota inode handling in secondary superblocks References: <1404453435-1915-1-git-send-email-david@fromorbit.com> <1404453435-1915-6-git-send-email-david@fromorbit.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1404453435-1915-6-git-send-email-david@fromorbit.com> User-Agent: Mutt/1.5.23 (2014-03-12) X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: UNKNOWN[198.137.202.9] X-Barracuda-Start-Time: 1404484559 X-Barracuda-Encrypted: AES256-SHA X-Barracuda-URL: http://192.48.157.11:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 X-Barracuda-Spam-Score: 0.10 X-Barracuda-Spam-Status: No, SCORE=0.10 using per-user scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.7 tests=RDNS_NONE X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.7237 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.10 RDNS_NONE Delivered to trusted network by a host with no rDNS On Fri, Jul 04, 2014 at 03:57:14PM +1000, Dave Chinner wrote: > From: Dave Chinner > > Changes to support separate project quota inodes changed the way > quota inodes got written to the superblock. The current code is > tailored for the needs to the kernel, where the inodes should only > be written if certain falgs are set saying a quota type is enabled. > > Unfortunately, when recovering a corrupt secondary superblock, we > need to unconditionally write the quota inode fields after we > unconditionally zero the quota flags field. The result of this bug > is that the bad quota inode fields cannot be cleared and hence > always are reported by bad by repair in subsequent runs. > > Fix this by directly clearing the quota inodes in the superblock > buffers so that we do need to set special flags to get > xfs_sb_to_disk() to do the right thing as setting flags leave bad > flag values in the superblock instead of bad inode numbers.... > > Also, when clearing the inode numbers, write them as NULLFSINO > rather than 0 as this is what the kernel will write them as if quota > is turned off. > > Signed-off-by: Dave Chinner Looks good, Reviewed-by: Christoph Hellwig From robin.listas@gmail.com Fri Jul 4 16:32:53 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=FREEMAIL_FROM,LOTS_OF_MONEY, T_DKIM_INVALID autolearn=ham version=3.3.1 X-Original-To: xfs@oss.sgi.com Delivered-To: xfs@oss.sgi.com Received: from relay.sgi.com (relay3.corp.sgi.com [198.149.34.15]) by oss.sgi.com (Postfix) with ESMTP id 831677F3F for ; Fri, 4 Jul 2014 16:32:53 -0500 (CDT) Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by relay3.corp.sgi.com (Postfix) with ESMTP id E9F44AC002 for ; Fri, 4 Jul 2014 14:32:49 -0700 (PDT) X-ASG-Debug-ID: 1404509563-04cbb065362967f0001-NocioJ Received: from mail-wg0-f50.google.com (mail-wg0-f50.google.com [74.125.82.50]) by cuda.sgi.com with ESMTP id 7yBSBqF3S5Db96sr (version=TLSv1 cipher=RC4-SHA bits=128 verify=NO) for ; Fri, 04 Jul 2014 14:32:44 -0700 (PDT) X-Barracuda-Envelope-From: robin.listas@gmail.com X-Barracuda-Apparent-Source-IP: 74.125.82.50 Received: by mail-wg0-f50.google.com with SMTP id x13so1086308wgg.9 for ; Fri, 04 Jul 2014 14:32:43 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=sender:date:from:to:subject:in-reply-to:message-id:references :user-agent:mime-version:content-type; bh=WVUZn89IjC52UfudltBbmAvypIMAs1OLRFIy1QngQjY=; b=N0ETUqeWUuEI3vnfCInAkrTNRixe4WGLcXMp3+YX7E4b2/me6N1v8FBwph49OCpevT 3vOlyTEi3xE3N+PLegfnRLPu03RXhv210XSMh8V9HHFnK87Ls/B7gQtiKGkZEILQph0H 9kMaFL9Vk8jrLYZEBuP9m+Dxkb8AZK2l/w3EdO11o76UMxfMLQRBIuHpZOxPcuyfhdQ0 fi5OIyzO1l/ptXVgHsl1UJsuH0hd5KjhJ5Qw4WfEC2WZ5mBSp4011ztAM5blshSSqIiU LI+tc0E36Z3BX9M2JhU7E10v7G0zRPnpMXWMcMn+dpO+vwcb9fy+jHWgvowWvlUY09/0 ZGjQ== X-Received: by 10.194.77.177 with SMTP id t17mr14265438wjw.55.1404509563418; Fri, 04 Jul 2014 14:32:43 -0700 (PDT) Received: from Telcontar.valinor (90.Red-79-150-228.dynamicIP.rima-tde.net. [79.150.228.90]) by mx.google.com with ESMTPSA id cz8sm71459245wjc.11.2014.07.04.14.32.41 for (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Fri, 04 Jul 2014 14:32:42 -0700 (PDT) Sender: Carlos Robinson Received: from localhost (localhost [127.0.0.1]) by Telcontar.valinor (Postfix) with ESMTP id 7AF5960EBC for ; Fri, 4 Jul 2014 23:32:38 +0200 (CEST) X-Virus-Scanned: amavisd-new at valinor Received: from Telcontar.valinor ([127.0.0.1]) by localhost (Telcontar.valinor [127.0.0.1]) (amavisd-new, port 10024) with LMTP id jyuipD-r5Ek4 for ; Fri, 4 Jul 2014 23:32:38 +0200 (CEST) Received: from localhost (localhost [127.0.0.1]) by Telcontar.valinor (Postfix) with ESMTP id B2BDE60AF5 for ; Fri, 4 Jul 2014 23:32:37 +0200 (CEST) Date: Fri, 4 Jul 2014 23:32:26 +0200 (CEST) From: "Carlos E. R." X-X-Sender: cer@Telcontar.valinor To: XFS mailing list Subject: Re: Got "Internal error XFS_WANT_CORRUPTED_GOTO". Filesystem needs reformatting to correct issue. In-Reply-To: <20140703173916.GB3452@laptop.bfoster> X-ASG-Orig-Subj: Re: Got "Internal error XFS_WANT_CORRUPTED_GOTO". Filesystem needs reformatting to correct issue. Message-ID: References: <20140702120441.GA51757@bfoster.bfoster> <20140703173916.GB3452@laptop.bfoster> User-Agent: Alpine 2.11 (LSU 23 2013-08-11) MIME-Version: 1.0 Content-Type: TEXT/PLAIN; format=flowed; charset=US-ASCII X-Barracuda-Connect: mail-wg0-f50.google.com[74.125.82.50] X-Barracuda-Start-Time: 1404509564 X-Barracuda-Encrypted: RC4-SHA X-Barracuda-URL: http://192.48.176.25:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 X-Barracuda-Spam-Score: 0.00 X-Barracuda-Spam-Status: No, SCORE=0.00 using per-user scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.7 tests=DKIM_SIGNED, DKIM_VERIFIED X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.7244 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- -0.00 DKIM_VERIFIED Domain Keys Identified Mail: signature passes verification 0.00 DKIM_SIGNED Domain Keys Identified Mail: message has a signature -----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 [This email has been delayed, while I thought about where to upload metadata file - see near the end] On Thursday, 2014-07-03 at 13:39 -0400, Brian Foster wrote: > On Thu, Jul 03, 2014 at 05:00:47AM +0200, Carlos E. R. wrote: > Ok, so there's a lot going on. I was mainly curious to see what was > causing lingering preallocations, but it could be anything extending a > file multiple times. Right. >> AFAIK, xfsdump can not carry over a filesystem corruption, right? > > I think that's accurate, though it might complain/fail in the act of > dumping an fs that is corrupted. The behavior here suggests there might > not be on disk corruption, however. At least, not a detectable one. If I don't do that backup-format-restore, I get issues soon, and it crashes within a day - I got after booting (the first event): 0.1> 2014-03-15 03:53:47 Telcontar kernel - - - [ 301.857523] XFS: Internal error XFS_WANT_CORRUPTED_RETURN at line 350 of file /home/abuild/rpmbuild/BUILD/kernel-desktop-3.11.10/linux-3.11/fs/xfs/xfs_all And some hours later: <0.1> 2014-03-15 22:20:34 Telcontar kernel - - - [20151.298345] XFS: Internal error XFS_WANT_CORRUPTED_GOTO at line 1602 of file /home/abuild/rpmbuild/BUILD/kernel-desktop-3.11.10/linux-3.11/fs/xfs/xfs_allo It was here that I decided to backup-format-restore instead. >> Maybe next time I can take the photo with dd before doing anything else (it >> takes about 80 minutes), or simply do an "xfs_metadump", which should be >> faster. And I might not have then 500 GiB of free space to make a dd copy, >> anyway. >> > > xfs_metadump should be faster. It will grab the metadata only and > obfuscate filenames so as to hide sensitive information. Ok, I have a post-it label on the monitor so that I remember - my notes are typically stored in the home partition :-) But the obfuscation is not complete, I can recognize file names: 00008DC0 .leeme.kfPTgt . ....... .2aujzfJ.%;u. . .0... 00008DF0 .pepe_after_gnome.tar.bz2.vcTJ8c.@.. . ....... 00008E20 .amyN3xYjaldFXYpeUry. 3;&.K.. .. .0... !.pepe_j 00008E50 ust_created.tar.bz2.JlyD0W .. .@....... .NGb0URO 00008E80 C0Bh9cHwp-hBh.6wMS .. .p . ... ..registro.0DPzS 00008EB0 G .. . ....... .8n-.w$.9. .. . .8... +.suse_u 00008EE0 pgrade_to_102_pkglist-bis.txt.tcFUKq. . ....... 00008F10 #B-XqcrWP4cqsw77yv8UsYbcCa-D76q..(#.. .. .8... 00008F40 '.suse_upgrade_to_102_pkglist.txt.0KTuDa 7.. .8 I just had a quick look with 'mc', the dump is to large too inspect it all. >> Question. >> >> As this always happens on recovery from hibernation, and seeing the message >> "Corruption of in-memory data detected", could it be that thawing does a bad >> memory recovery from the swap? I thought that the procedure includes some >> checksum, but I don't know for sure. >> > > Not sure, though if so I would think that might be a more common source > of problems. And it only affects my /home partition - although it may be the busiest one. >> To me, there are two problems: >> >> 1) The corruption itself. >> 2) That xfs_repair fails to repair the filesystem. In fact, I believe >> it does not detect it! >> >> To me, #2 is the worst, and it is what makes me do the backup, format, >> restore cycle for recovery. An occassional kernel crash is somewhat >> acceptable :-} >> > > Well it could be that the "corruption" is gone at the point of a > remount. E.g., something becomes inconsistent in memory, the fs detects > it and shuts down before going any further. That's actually a positive. > ;) > > That also means it's probably not be necessary to do a full backup, > reformat and restore sequence as part of your routine here. xfs_repair > should scour through all of the allocation metadata and yell if it finds > something like free blocks allocated to a file. No, if I don't backup-format-restore it happens again within a day. There is something lingering. Unless that was just chance... :-? It is true that during that day I hibernated several times more than needed to see if it happened again - and it did. >>> I'm curious if something like an 'rm -rf *' on the metadump >>> would catch any other corruptions or if this is indeed limited to >>> something associated with recent (pre)allocations. >> >> Sorry, run 'rm -rf *' where??? >> > > On the metadump... mainly just to see whether freeing all of the used > blocks in the fs triggered any other errors (i.e., a brute force way to > check for further corruptions). Sorry, but I fail to see how to do it. I maybe thick, or I lack the context. If I run: Telcontar:/data/storage_d/old_backup # ls -lh total 604G drwxr-xr-x 22 root root 4.0K Mar 8 20:30 home drwxr-xr-x 3 root root 16 Sep 25 2010 home1 drwxr-xr-x 2 root root 6 Jul 3 02:36 mount - -rw-r--r-- 1 root root 45 Jul 3 04:25 procedure - -rw-r--r-- 1 root root 388M Jul 3 02:42 tgtfile - -rw-r--r-- 1 root root 11M Jul 3 02:50 tgtfile2.xz - -rw-r--r-- 1 root users 489G Mar 16 05:42 xfs_copy_home - -rw-r--r-- 1 root root 489G Jul 3 04:40 xfs_copy_home_workonit - -rw-r--r-- 1 root users 39G Mar 16 05:49 xfsdump__home - -rw-r--r-- 1 root users 39G Mar 16 05:57 xfsdump__home1 Telcontar:/data/storage_d/old_backup # rm -rf * that would destroy my entire backup! If you mean: rm -rf tgtfile I fail to see what that would accomplish, except to remove a file that is actually on a different partition, not home. However, I can do: Telcontar:/data/storage_d/old_backup # mount -v xfs_copy_home_workonit mount/ mount: /dev/loop0 mounted on /data/storage_d/old_backup/mount. Telcontar:/data/storage_d/old_backup # cd mount Telcontar:/data/storage_d/old_backup/mount # time rm -r /data/storage_d/old_backup/mount/* Telcontar:/data/storage_d/old_backup/mount # time rm -r /data/storage_d/old_backup/mount/* real 2m45.380s user 0m0.265s sys 0m6.878s Telcontar:/data/storage_d/old_backup/mount # Telcontar:/data/storage_d/old_backup/mount # ls -la total 4 drwxr-xr-x 2 root root 6 Jul 4 01:56 . drwxr-xr-x 5 root root 4096 Jul 3 04:25 .. Telcontar:/data/storage_d/old_backup/mount # Telcontar:/data/storage_d/old_backup/mount # df -h . Filesystem Size Used Avail Use% Mounted on /dev/loop0 489G 33M 489G 1% /data/storage_d/old_backup/mount Telcontar:/data/storage_d/old_backup/mount # And I do not see anything on the log, only that it mounted cleanly. >> Meanwhile, I have done a xfs_metadump of the image, and compressed it with >> xz. It has 10834536 bytes. What do I do with it? I'm not sure I can email >> that, and even less to a mail list. >> >> Do you still have a bugzilla system where I can upload it? I had an account >> at , made on 2010. I don't know if it still >> runs :-? I have an active bugzilla account at , I'm logged in there now. I haven't checked if I can create a bug, not been sure what parameters to use (product, component, whom to assign to). I think that would be the most appropriate place. Meanwhile, I have uploaded the file to my google drive account, so I can share it with anybody on request - ie, it is not public, I need to add a gmail address to the list of people that can read the file. Alternatively, I could just email the file to people asking for it, offlist, but not in a single email, in chunks limited to 1.5 MB per email. > I think http://bugzilla.redhat.com should allow you to file a bug and > attach the file. Sorry, I don't have an account there... I do have one at openSUSE, though, and it does allow me to attach files, up to a limit. If the file is to big, it can be fragmented in pieces. But I will not use it unless you people say that you have an account there. For using a bugzilla, the most appropriate one would be at SGI, IMHO, if they are still supporting this project. - -- Cheers, Carlos E. R. (from 13.1 x86_64 "Bottle" at Telcontar) -----BEGIN PGP SIGNATURE----- Version: GnuPG v2.0.22 (GNU/Linux) iEYEARECAAYFAlO3HXUACgkQtTMYHG2NR9VndgCgillZYmQCvUynytO/7YALlUyv c9gAnj8GmFfnMHGd+P9GaWm9ScVVTH81 =GEXl -----END PGP SIGNATURE----- From david@fromorbit.com Fri Jul 4 17:22:19 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: xfs@oss.sgi.com Delivered-To: xfs@oss.sgi.com Received: from relay.sgi.com (relay1.corp.sgi.com [137.38.102.111]) by oss.sgi.com (Postfix) with ESMTP id 7C9E07F47 for ; Fri, 4 Jul 2014 17:22:19 -0500 (CDT) Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by relay1.corp.sgi.com (Postfix) with ESMTP id 692568F8049 for ; Fri, 4 Jul 2014 15:22:16 -0700 (PDT) X-ASG-Debug-ID: 1404512533-04cb6c76d0466e80001-NocioJ Received: from ipmail05.adl6.internode.on.net (ipmail05.adl6.internode.on.net [150.101.137.143]) by cuda.sgi.com with ESMTP id vBdTqH3xPWnG0ReQ for ; Fri, 04 Jul 2014 15:22:14 -0700 (PDT) X-Barracuda-Envelope-From: david@fromorbit.com X-Barracuda-Apparent-Source-IP: 150.101.137.143 X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: At1rAOsnt1N5LA/TPGdsb2JhbABagw6IUqQjAQEBAQEBBppWAYEKFwQBAQEBODWEAwEBBAEnExwjBQsIAw4KCSUPBSUDBxoTiDoHykEXGIVYiTIHhEMFmnWXYis Received: from ppp121-44-15-211.lns20.syd6.internode.on.net (HELO dastard) ([121.44.15.211]) by ipmail05.adl6.internode.on.net with ESMTP; 05 Jul 2014 07:52:12 +0930 Received: from dave by dastard with local (Exim 4.80) (envelope-from ) id 1X3Bru-0001vR-6L; Sat, 05 Jul 2014 08:22:10 +1000 Date: Sat, 5 Jul 2014 08:22:10 +1000 From: Dave Chinner To: Christoph Hellwig Cc: xfs@oss.sgi.com Subject: Re: [PATCH 4/6] libxfs: reused invalidated buffers leak state and data Message-ID: <20140704222210.GM9508@dastard> X-ASG-Orig-Subj: Re: [PATCH 4/6] libxfs: reused invalidated buffers leak state and data References: <1404453435-1915-1-git-send-email-david@fromorbit.com> <1404453435-1915-5-git-send-email-david@fromorbit.com> <20140704141509.GB29520@infradead.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20140704141509.GB29520@infradead.org> User-Agent: Mutt/1.5.21 (2010-09-15) X-Barracuda-Connect: ipmail05.adl6.internode.on.net[150.101.137.143] X-Barracuda-Start-Time: 1404512533 X-Barracuda-URL: http://192.48.176.15:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 X-Barracuda-Spam-Score: 0.00 X-Barracuda-Spam-Status: No, SCORE=0.00 using per-user scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.7 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.7245 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- On Fri, Jul 04, 2014 at 07:15:09AM -0700, Christoph Hellwig wrote: > On Fri, Jul 04, 2014 at 03:57:13PM +1000, Dave Chinner wrote: > > @@ -632,6 +632,12 @@ libxfs_putbuf(xfs_buf_t *bp) > > pthread_mutex_unlock(&bp->b_lock); > > } > > } > > + /* > > + * ensure that any errors on this use of the buffer don't carry > > + * over to the next user. > > + */ > > + bp->b_error = 0; > > + > > cache_node_put(libxfs_bcache, (struct cache_node *)bp); > > This seems a bit fishy to me. For one I'm pretty sure it needs to be > done before unlocking b_lock, Fair enough. > second it's different behavior from the > kernel where we explicitly clear it in the caller for the rare case > we want to reuse a buffer that had an error (xfs_buf_iodone_callbacks > seems to be the only one). Any reason to do this differently in > userspace? The userspace code that uses the buffer cache is much less constrained than the kernel code. The userspace code is pretty nasty in places, especially when it comes to buffer error handling. We can't clear errors or zero buffer contents in libxfs_getbuf-* like we do in the kernel, because those functions are used by the libxfs_readbuf_* functions and hence need to leave the buffers unchanged on cache hits. This is actually the only way to gather a write error from a libxfs_writebuf() call - you need to get the buffer again so you can check bp->b_error field - assuming that the buffer is still in the cache when you check, that is. This is very different to the kernel code which idoes not release buffers on a write so we can wait on IO and check errors. The kernel buffer cache also guarantees a buffer of a known initial state from xfs_buf_get() even on a cache hit. Hence the userspace buffer cache is behaving quite differently to the kernel buffer cache and as a result it's leaking errors from reads, invalidations and writes through xfs_da_get_buf/libxfs_getbuf. Current no userspace outside libxfs code clears bp->b_error - very little code even checks it - so th elibxfs code is tripping on stale errors left by the usrspace code. libxfs_writebuf() already zeros bp->b_error to prevent propagation of stale errors into future reads, so this patch is really just closing the hole in the other buffer release path that the code usually takes. Doing a full audit and addition of error handling of all the userspace code is a little beyond my resources right now. The only thing I can really do quickly about the problem is clear the error when we've finished with the buffer. I'm open to other ways of fixing this, but right now we've got to fix xfs_repair because it's currently breaking filesystems worse than before xfs_repair was run... Cheers, Dave. -- Dave Chinner david@fromorbit.com From stewart@flamingspork.com Fri Jul 4 21:38:06 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: xfs@oss.sgi.com Delivered-To: xfs@oss.sgi.com Received: from relay.sgi.com (relay1.corp.sgi.com [137.38.102.111]) by oss.sgi.com (Postfix) with ESMTP id D61887F47 for ; Fri, 4 Jul 2014 21:38:06 -0500 (CDT) Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by relay1.corp.sgi.com (Postfix) with ESMTP id B3E8F8F8040 for ; Fri, 4 Jul 2014 19:38:03 -0700 (PDT) X-ASG-Debug-ID: 1404527882-04cbb0653829fa10001-NocioJ Received: from kaylee.flamingspork.com (kaylee.flamingspork.com [74.207.245.61]) by cuda.sgi.com with ESMTP id 1teGlxab0OsyfPfC for ; Fri, 04 Jul 2014 19:38:02 -0700 (PDT) X-Barracuda-Envelope-From: stewart@flamingspork.com X-Barracuda-Apparent-Source-IP: 74.207.245.61 Received: from willster.flamingspork.com (localhost [127.0.0.1]) by kaylee.flamingspork.com (Postfix) with ESMTPS id 231E1607B; Sat, 5 Jul 2014 02:58:15 +0000 (UTC) Received: by willster.flamingspork.com (Postfix, from userid 1000) id 1EF9E33E7E3; Sat, 5 Jul 2014 12:38:00 +1000 (EST) From: Stewart Smith To: Kiran Deen , xfs@oss.sgi.com Subject: Re: Greetings from Google! In-Reply-To: X-ASG-Orig-Subj: Re: Greetings from Google! References: User-Agent: Notmuch/0.16 (http://notmuchmail.org) Emacs/24.3.1 (x86_64-redhat-linux-gnu) Date: Sat, 05 Jul 2014 12:37:59 +1000 Message-ID: <87simgjzso.fsf@flamingspork.com> MIME-Version: 1.0 Content-Type: multipart/signed; boundary="=-=-="; micalg=pgp-sha1; protocol="application/pgp-signature" X-Barracuda-Connect: kaylee.flamingspork.com[74.207.245.61] X-Barracuda-Start-Time: 1404527882 X-Barracuda-URL: http://192.48.176.25:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 X-Barracuda-Spam-Score: 0.00 X-Barracuda-Spam-Status: No, SCORE=0.00 using per-user scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.7 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.7249 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- --=-=-= Content-Type: text/plain Content-Transfer-Encoding: quoted-printable Kiran Deen writes: > I hope your day is going well. I wanted to connect to see if you are > interested in exploring opportunities at Google. I came across your > information online and believe your skills may be aligned with some > engineering roles that I support. Let me know if you are interested and we > can schedule a time speak further. > > Thank you for your time and consideration. I look forward to hearing back > from you! Probably not at this time, I switched employers in January and probably wouldn't be open to considering switching until next year at the earliest. =2D-=20 Stewart Smith --=-=-= Content-Type: application/pgp-signature -----BEGIN PGP SIGNATURE----- Version: GnuPG v1 iQIcBAEBAgAGBQJTt2UHAAoJEP08notdpDyvCQEQAIghY/Yhf2KKdns32gzOXpnb 7xPGOvghL6U3LO17cx0L3Z1zQseLtkATdE1qR0Fr8zQdFtgykoiE5NCVrpKObU7l /RjtiheFIX1vWa8/8jnQsXoWTRQF3DzwahsxPB1S2r8hmFwdj1/XogOxdkEwauS7 SXrCLEeQvbmyDitvRmWdPcs8T96Uuq5bdbtgvj6krU1Kt8qHtJwnw8ldBZO4psl2 kXZWY/lv/JLMeLAFtjGmLeSY5p0ZjzIVCZo1p/p+ujTTmYYQdJle3nmaaDPtG0Zw BA7xRbXNLOKWt6FzyzThXZ+lgHUiBj2vvGV7RNVR7+ECOweQLfCJK3+t8lQAdLaE 6Kw9Yo9DqEF9KKgiOpW80fupXhZM+K/C1OhvQkB6ogmy+tyUNvlC9/uEV4VTEL/D sBvSThs/CFvGIUNfTUHLMZIl8eTKRNJaugaCwHlsPxO9qjV3wNv+0IRh2H0ZVaoG IvOR5nCZx1BHGAx0jH5mhK9tJ72jx0WHO6m5fpwAOKeu6U7rZ9nWF30d30Yk2xWJ DM64m6risqs8y7mIZzp6AKjdyVlfyjtnAL4q+Y0Z++vBCJJwrkQp5HRCP5fBLOxt 3tF+oWLWzcAuqbSM+WpDtVoX2gXw6PRxM6lCjpy5tmtZVbNMJSPUJdLMezpzNBvp p8TBF23ActYujpLlfyEs =BgwM -----END PGP SIGNATURE----- --=-=-=-- From stewart@flamingspork.com Fri Jul 4 21:42:35 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: xfs@oss.sgi.com Delivered-To: xfs@oss.sgi.com Received: from relay.sgi.com (relay1.corp.sgi.com [137.38.102.111]) by oss.sgi.com (Postfix) with ESMTP id 84F0E7F51 for ; Fri, 4 Jul 2014 21:42:35 -0500 (CDT) Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by relay1.corp.sgi.com (Postfix) with ESMTP id 6FA588F8040 for ; Fri, 4 Jul 2014 19:42:35 -0700 (PDT) X-ASG-Debug-ID: 1404528154-04cbb0653829fd00001-NocioJ Received: from kaylee.flamingspork.com (kaylee.flamingspork.com [74.207.245.61]) by cuda.sgi.com with ESMTP id 9cgEMQdr0KGuu2v3 for ; Fri, 04 Jul 2014 19:42:34 -0700 (PDT) X-Barracuda-Envelope-From: stewart@flamingspork.com X-Barracuda-Apparent-Source-IP: 74.207.245.61 Received: from willster.flamingspork.com (localhost [127.0.0.1]) by kaylee.flamingspork.com (Postfix) with ESMTPS id B7647607B; Sat, 5 Jul 2014 03:02:47 +0000 (UTC) Received: by willster.flamingspork.com (Postfix, from userid 1000) id CBA2533E7E3; Sat, 5 Jul 2014 12:42:30 +1000 (EST) From: Stewart Smith To: Kiran Deen , xfs@oss.sgi.com Subject: Re: Greetings from Google! In-Reply-To: <87simgjzso.fsf@flamingspork.com> X-ASG-Orig-Subj: Re: Greetings from Google! References: <87simgjzso.fsf@flamingspork.com> User-Agent: Notmuch/0.16 (http://notmuchmail.org) Emacs/24.3.1 (x86_64-redhat-linux-gnu) Date: Sat, 05 Jul 2014 12:42:30 +1000 Message-ID: <87mwcojzl5.fsf@flamingspork.com> MIME-Version: 1.0 Content-Type: multipart/signed; boundary="=-=-="; micalg=pgp-sha1; protocol="application/pgp-signature" X-Barracuda-Connect: kaylee.flamingspork.com[74.207.245.61] X-Barracuda-Start-Time: 1404528154 X-Barracuda-URL: http://192.48.176.25:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 X-Barracuda-Spam-Score: 0.00 X-Barracuda-Spam-Status: No, SCORE=0.00 using per-user scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.7 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.7249 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- --=-=-= Content-Type: text/plain Content-Transfer-Encoding: quoted-printable Stewart Smith writes: > Kiran Deen writes: >> I hope your day is going well. I wanted to connect to see if you are >> interested in exploring opportunities at Google. I came across your >> information online and believe your skills may be aligned with some >> engineering roles that I support. Let me know if you are interested and = we >> can schedule a time speak further. >> >> Thank you for your time and consideration. I look forward to hearing back >> from you! > > Probably not at this time, I switched employers in January and probably > wouldn't be open to considering switching until next year at the earliest. Also, this is a mailing list and I'm an idiot who hasn't had enough coffee this morning. =2D-=20 Stewart Smith --=-=-= Content-Type: application/pgp-signature -----BEGIN PGP SIGNATURE----- Version: GnuPG v1 iQIcBAEBAgAGBQJTt2YWAAoJEP08notdpDyv7Q8P/39OE4bc+IQ/Mk0OldMn7Reu ce/09UGcL2oy93vrHRrHC64NjYKrsdHBrIIrHw/8wHGEqRFMJmO+OIYgpLr4kExL BDss/jDZIb81rS/ngefkrvx+6YJIad8pKYmO+ykm2OukympWtwfb1suZMjPgB9Pt Q3+1TNIwjnbiVZIVqO6nM081o5g2bg6jK1yJzgHAMF+2z3iWgqFs7NJVPA7uzXWe cVo0AW0NhD6ruqOjyBKKpJlOBtwiAVNO8o8fRSCWG53VcaXWPvTJGJLsyF6HewBF cInCA2UtbCpLCfUxFgDnD2UKTzN4mk/i6NIu9M7bGE8nm0aCORH7Oz+dTKXYAJkH VnbteRsj6QN2E2lbfe9gwOj1sHBy6SkRCjX9rBaRRGBCiucogtQKB/oLu2Qhxw1L hJe0TUKy64GfZPAysYECjMi2yqzIuKemrlCvqqh9UjGreGj6kvx2HZoy9wXiJcdL fb6e/TnAJi1RtavuV1tN9F7BshfPjCxIm1+IvpKLwZ4hthdqjnWD+5Ryn1MEq89R BirCyZ7ZU1E7y92RPXOkYO/fV/Do1j5zUpXNkG7X8lDwiBkCyqTJfZqvriomKArn ijTKbw4Tyemq3r4xKxXlzjyYe+O6jz8E3xkYLEotQSOsT9ZDqW9rSRZMkE39r7Rm BT1KZuV3/tFOzWlAPnAQ =ZguK -----END PGP SIGNATURE----- --=-=-=-- From BATV+00255a4e16ff2f3a6bda+3968+infradead.org+hch@bombadil.srs.infradead.org Sat Jul 5 04:48:10 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: xfs@oss.sgi.com Delivered-To: xfs@oss.sgi.com Received: from relay.sgi.com (relay1.corp.sgi.com [137.38.102.111]) by oss.sgi.com (Postfix) with ESMTP id F20087F54 for ; Sat, 5 Jul 2014 04:48:09 -0500 (CDT) Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by relay1.corp.sgi.com (Postfix) with ESMTP id D52EF8F8040 for ; Sat, 5 Jul 2014 02:48:09 -0700 (PDT) X-ASG-Debug-ID: 1404553687-04bdf056677f2ee0001-NocioJ Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.9]) by cuda.sgi.com with ESMTP id KLjaf88doFhbd45f (version=TLSv1 cipher=AES256-SHA bits=256 verify=NO) for ; Sat, 05 Jul 2014 02:48:08 -0700 (PDT) X-Barracuda-Envelope-From: BATV+00255a4e16ff2f3a6bda+3968+infradead.org+hch@bombadil.srs.infradead.org X-Barracuda-Apparent-Source-IP: 198.137.202.9 Received: from hch by bombadil.infradead.org with local (Exim 4.80.1 #2 (Red Hat Linux)) id 1X3MZj-000777-EN; Sat, 05 Jul 2014 09:48:07 +0000 Date: Sat, 5 Jul 2014 02:48:07 -0700 From: Christoph Hellwig To: Dave Chinner Cc: xfs@oss.sgi.com Subject: Re: [PATCH 4/6] libxfs: reused invalidated buffers leak state and data Message-ID: <20140705094807.GB18130@infradead.org> X-ASG-Orig-Subj: Re: [PATCH 4/6] libxfs: reused invalidated buffers leak state and data References: <1404453435-1915-1-git-send-email-david@fromorbit.com> <1404453435-1915-5-git-send-email-david@fromorbit.com> <20140704141509.GB29520@infradead.org> <20140704222210.GM9508@dastard> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20140704222210.GM9508@dastard> User-Agent: Mutt/1.5.23 (2014-03-12) X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: bombadil.infradead.org[198.137.202.9] X-Barracuda-Start-Time: 1404553688 X-Barracuda-Encrypted: AES256-SHA X-Barracuda-URL: http://192.48.157.11:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 X-Barracuda-Spam-Score: 0.00 X-Barracuda-Spam-Status: No, SCORE=0.00 using per-user scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.7 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.7256 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- On Sat, Jul 05, 2014 at 08:22:10AM +1000, Dave Chinner wrote: > I'm open to other ways of fixing this, but right now we've got to > fix xfs_repair because it's currently breaking filesystems worse > than before xfs_repair was run... Ok, so clearly mark this as difference from kernel code in a long comment explaining the situation similar to wrote you above. It's pretty obvious that the buffer cache in userspace will eventually need a major overhaul sooner or later. I wonder how feasible porting the kernel one would be.. From bfoster@redhat.com Sat Jul 5 07:28:43 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=LOTS_OF_MONEY autolearn=ham version=3.3.1 X-Original-To: xfs@oss.sgi.com Delivered-To: xfs@oss.sgi.com Received: from relay.sgi.com (relay1.corp.sgi.com [137.38.102.111]) by oss.sgi.com (Postfix) with ESMTP id C2F8B7F56 for ; Sat, 5 Jul 2014 07:28:43 -0500 (CDT) Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by relay1.corp.sgi.com (Postfix) with ESMTP id 9A3958F8040 for ; Sat, 5 Jul 2014 05:28:40 -0700 (PDT) X-ASG-Debug-ID: 1404563318-04bdf056667f7200001-NocioJ Received: from mx1.redhat.com (mx1.redhat.com [209.132.183.28]) by cuda.sgi.com with ESMTP id G8WaPFzhZCsZdctL (version=TLSv1 cipher=AES256-SHA bits=256 verify=NO) for ; Sat, 05 Jul 2014 05:28:38 -0700 (PDT) X-Barracuda-Envelope-From: bfoster@redhat.com X-Barracuda-Apparent-Source-IP: 209.132.183.28 X-ASG-Whitelist: Client Received: from int-mx13.intmail.prod.int.phx2.redhat.com (int-mx13.intmail.prod.int.phx2.redhat.com [10.5.11.26]) by mx1.redhat.com (8.14.4/8.14.4) with ESMTP id s65CSZNr007313 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Sat, 5 Jul 2014 08:28:35 -0400 Received: from bfoster.bfoster ([10.18.41.237]) by int-mx13.intmail.prod.int.phx2.redhat.com (8.14.4/8.14.4) with ESMTP id s65CSYg2017284; Sat, 5 Jul 2014 08:28:35 -0400 Received: by bfoster.bfoster (Postfix, from userid 1000) id D37AF124935; Sat, 5 Jul 2014 08:28:33 -0400 (EDT) Date: Sat, 5 Jul 2014 08:28:33 -0400 From: Brian Foster To: "Carlos E. R." Cc: XFS mailing list Subject: Re: Got "Internal error XFS_WANT_CORRUPTED_GOTO". Filesystem needs reformatting to correct issue. Message-ID: <20140705122833.GA3573@bfoster.bfoster> X-ASG-Orig-Subj: Re: Got "Internal error XFS_WANT_CORRUPTED_GOTO". Filesystem needs reformatting to correct issue. References: <20140702120441.GA51757@bfoster.bfoster> <20140703173916.GB3452@laptop.bfoster> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.5.23 (2014-03-12) X-Scanned-By: MIMEDefang 2.68 on 10.5.11.26 X-Barracuda-Connect: mx1.redhat.com[209.132.183.28] X-Barracuda-Start-Time: 1404563318 X-Barracuda-Encrypted: AES256-SHA X-Barracuda-URL: http://192.48.157.11:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 On Fri, Jul 04, 2014 at 11:32:26PM +0200, Carlos E. R. wrote: > -----BEGIN PGP SIGNED MESSAGE----- > Hash: SHA1 > > > > [This email has been delayed, while I thought about where to upload metadata > file - see near the end] > > > On Thursday, 2014-07-03 at 13:39 -0400, Brian Foster wrote: > >On Thu, Jul 03, 2014 at 05:00:47AM +0200, Carlos E. R. wrote: > > > >Ok, so there's a lot going on. I was mainly curious to see what was > >causing lingering preallocations, but it could be anything extending a > >file multiple times. > > Right. > > > >>AFAIK, xfsdump can not carry over a filesystem corruption, right? > > > >I think that's accurate, though it might complain/fail in the act of > >dumping an fs that is corrupted. The behavior here suggests there might > >not be on disk corruption, however. > > At least, not a detectable one. > > If I don't do that backup-format-restore, I get issues soon, and it crashes > within a day - I got after booting (the first event): > I echo Dave's previous question... within a day of doing what? Just using the system or doing more hibernation cycles? > 0.1> 2014-03-15 03:53:47 Telcontar kernel - - - [ 301.857523] XFS: Internal error XFS_WANT_CORRUPTED_RETURN at line 350 of file /home/abuild/rpmbuild/BUILD/kernel-desktop-3.11.10/linux-3.11/fs/xfs/xfs_all > > And some hours later: > > <0.1> 2014-03-15 22:20:34 Telcontar kernel - - - [20151.298345] XFS: Internal error XFS_WANT_CORRUPTED_GOTO at line 1602 of file /home/abuild/rpmbuild/BUILD/kernel-desktop-3.11.10/linux-3.11/fs/xfs/xfs_allo > > > It was here that I decided to backup-format-restore instead. > > > >>Maybe next time I can take the photo with dd before doing anything else (it > >>takes about 80 minutes), or simply do an "xfs_metadump", which should be > >>faster. And I might not have then 500 GiB of free space to make a dd copy, > >>anyway. > >> > > > >xfs_metadump should be faster. It will grab the metadata only and > >obfuscate filenames so as to hide sensitive information. > > > Ok, I have a post-it label on the monitor so that I remember - my notes are > typically stored in the home partition :-) > > > But the obfuscation is not complete, I can recognize file names: > > > 00008DC0 .leeme.kfPTgt . ....... .2aujzfJ.%;u. . .0... > 00008DF0 .pepe_after_gnome.tar.bz2.vcTJ8c.@.. . ....... > 00008E20 .amyN3xYjaldFXYpeUry. 3;&.K.. .. .0... !.pepe_j > 00008E50 ust_created.tar.bz2.JlyD0W .. .@....... .NGb0URO > 00008E80 C0Bh9cHwp-hBh.6wMS .. .p . ... ..registro.0DPzS > 00008EB0 G .. . ....... .8n-.w$.9. .. . .8... +.suse_u > 00008EE0 pgrade_to_102_pkglist-bis.txt.tcFUKq. . ....... > 00008F10 #B-XqcrWP4cqsw77yv8UsYbcCa-D76q..(#.. .. .8... > 00008F40 '.suse_upgrade_to_102_pkglist.txt.0KTuDa 7.. .8 > > > I just had a quick look with 'mc', the dump is to large too inspect it all. > > > >>Question. > >> > >>As this always happens on recovery from hibernation, and seeing the message > >>"Corruption of in-memory data detected", could it be that thawing does a bad > >>memory recovery from the swap? I thought that the procedure includes some > >>checksum, but I don't know for sure. > >> > > > >Not sure, though if so I would think that might be a more common source > >of problems. > > And it only affects my /home partition - although it may be the busiest one. > > > >>To me, there are two problems: > >> > >> 1) The corruption itself. > >> 2) That xfs_repair fails to repair the filesystem. In fact, I believe > >> it does not detect it! > >> > >>To me, #2 is the worst, and it is what makes me do the backup, format, > >>restore cycle for recovery. An occassional kernel crash is somewhat > >>acceptable :-} > >> > > > >Well it could be that the "corruption" is gone at the point of a > >remount. E.g., something becomes inconsistent in memory, the fs detects > >it and shuts down before going any further. That's actually a positive. > >;) > > > >That also means it's probably not be necessary to do a full backup, > >reformat and restore sequence as part of your routine here. xfs_repair > >should scour through all of the allocation metadata and yell if it finds > >something like free blocks allocated to a file. > > No, if I don't backup-format-restore it happens again within a day. There is > something lingering. Unless that was just chance... :-? > > It is true that during that day I hibernated several times more than needed > to see if it happened again - and it did. > This depends on what causes this to happen, not how frequent it happens. Does it continue to happen along with hibernation, or do you start seeing these kind of errors during normal use? If the latter, that could suggest something broken on disk. If the former, that could simply suggest the fs (perhaps on-disk) has made it into some kind of state that makes this easier to reproduce, for whatever reason. It could be timing, location of metadata, fragmentation, or anything really for that matter, but it doesn't necessarily mean corruption (even though it doesn't rule it out). Perhaps the clean regeneration of everything by a from-scratch recovery simply makes this more difficult to reproduce until the fs naturally becomes more aged/fragmented, for example. This probably makes a pristine, pre-repair metadump of the reproducing fs more interesting. I could try some of my previous tests against a restore of that metadump. > > > >>>I'm curious if something like an 'rm -rf *' on the metadump > >>>would catch any other corruptions or if this is indeed limited to > >>>something associated with recent (pre)allocations. > >> > >>Sorry, run 'rm -rf *' where??? > >> > > > >On the metadump... mainly just to see whether freeing all of the used > >blocks in the fs triggered any other errors (i.e., a brute force way to > >check for further corruptions). > > Sorry, but I fail to see how to do it. I maybe thick, or I lack the context. > > If I run: > > Telcontar:/data/storage_d/old_backup # ls -lh > total 604G > drwxr-xr-x 22 root root 4.0K Mar 8 20:30 home > drwxr-xr-x 3 root root 16 Sep 25 2010 home1 > drwxr-xr-x 2 root root 6 Jul 3 02:36 mount > - -rw-r--r-- 1 root root 45 Jul 3 04:25 procedure > - -rw-r--r-- 1 root root 388M Jul 3 02:42 tgtfile > - -rw-r--r-- 1 root root 11M Jul 3 02:50 tgtfile2.xz > - -rw-r--r-- 1 root users 489G Mar 16 05:42 xfs_copy_home > - -rw-r--r-- 1 root root 489G Jul 3 04:40 xfs_copy_home_workonit > - -rw-r--r-- 1 root users 39G Mar 16 05:49 xfsdump__home > - -rw-r--r-- 1 root users 39G Mar 16 05:57 xfsdump__home1 > Telcontar:/data/storage_d/old_backup # rm -rf * > > > that would destroy my entire backup! > I was somewhat thinking out loud originally discussing this topic. I was suggesting to run this against a restored metadump, not the primary dataset or a backup. The metadump creates an image of the metadata of the source fs in a file (no data is copied). This metadump image can be restored at will via 'xfs_mdrestore.' This allows restoring to a file, mounting the file loopback, and performing experiments or investigation on the fs generally as it existed when the shutdown was reproducible. So basically: - xfs_mdrestore - mount /mnt - rm -rf /mnt/* ... was what I was suggesting. can be recreated from the metadump image afterwards to get back to square one. > > If you mean: > > rm -rf tgtfile > > I fail to see what that would accomplish, except to remove a file that is actually on a different partition, not home. > > However, I can do: > > Telcontar:/data/storage_d/old_backup # mount -v xfs_copy_home_workonit mount/ > mount: /dev/loop0 mounted on /data/storage_d/old_backup/mount. > Telcontar:/data/storage_d/old_backup # cd mount > Telcontar:/data/storage_d/old_backup/mount # time rm -r /data/storage_d/old_backup/mount/* > Telcontar:/data/storage_d/old_backup/mount # time rm -r /data/storage_d/old_backup/mount/* > > real 2m45.380s > user 0m0.265s > sys 0m6.878s > Telcontar:/data/storage_d/old_backup/mount # > Telcontar:/data/storage_d/old_backup/mount # ls -la > total 4 > drwxr-xr-x 2 root root 6 Jul 4 01:56 . > drwxr-xr-x 5 root root 4096 Jul 3 04:25 .. > Telcontar:/data/storage_d/old_backup/mount # > Telcontar:/data/storage_d/old_backup/mount # df -h . > Filesystem Size Used Avail Use% Mounted on > /dev/loop0 489G 33M 489G 1% /data/storage_d/old_backup/mount > Telcontar:/data/storage_d/old_backup/mount # > > > And I do not see anything on the log, only that it mounted cleanly. > > > > >>Meanwhile, I have done a xfs_metadump of the image, and compressed it with > >>xz. It has 10834536 bytes. What do I do with it? I'm not sure I can email > >>that, and even less to a mail list. > >> > >>Do you still have a bugzilla system where I can upload it? I had an account > >>at , made on 2010. I don't know if it still > >>runs :-? > > > I have an active bugzilla account at , I'm > logged in there now. I haven't checked if I can create a bug, not been sure > what parameters to use (product, component, whom to assign to). I think that > would be the most appropriate place. > > Meanwhile, I have uploaded the file to my google drive account, so I can > share it with anybody on request - ie, it is not public, I need to add a > gmail address to the list of people that can read the file. > > Alternatively, I could just email the file to people asking for it, offlist, > but not in a single email, in chunks limited to 1.5 MB per email. > Either of the bugzilla or google drive options works Ok for me. Brian > > >I think http://bugzilla.redhat.com should allow you to file a bug and > >attach the file. > > Sorry, I don't have an account there... > > I do have one at openSUSE, though, and it does allow me to attach files, up > to a limit. If the file is to big, it can be fragmented in pieces. But I > will not use it unless you people say that you have an account there. > > For using a bugzilla, the most appropriate one would be at SGI, IMHO, if > they are still supporting this project. > > - -- Cheers, > Carlos E. R. > (from 13.1 x86_64 "Bottle" at Telcontar) > > -----BEGIN PGP SIGNATURE----- > Version: GnuPG v2.0.22 (GNU/Linux) > > iEYEARECAAYFAlO3HXUACgkQtTMYHG2NR9VndgCgillZYmQCvUynytO/7YALlUyv > c9gAnj8GmFfnMHGd+P9GaWm9ScVVTH81 > =GEXl > -----END PGP SIGNATURE----- > > _______________________________________________ > xfs mailing list > xfs@oss.sgi.com > http://oss.sgi.com/mailman/listinfo/xfs From robin.listas@gmail.com Sat Jul 5 07:35:32 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=FREEMAIL_FROM,T_DKIM_INVALID autolearn=ham version=3.3.1 X-Original-To: xfs@oss.sgi.com Delivered-To: xfs@oss.sgi.com Received: from relay.sgi.com (relay3.corp.sgi.com [198.149.34.15]) by oss.sgi.com (Postfix) with ESMTP id 1F5137F58 for ; Sat, 5 Jul 2014 07:35:32 -0500 (CDT) Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by relay3.corp.sgi.com (Postfix) with ESMTP id 8E23DAC001 for ; Sat, 5 Jul 2014 05:35:28 -0700 (PDT) X-ASG-Debug-ID: 1404563725-04cb6c76d0481340001-NocioJ Received: from mail-we0-f180.google.com (mail-we0-f180.google.com [74.125.82.180]) by cuda.sgi.com with ESMTP id oJ6UpWAnm7tY4qyv (version=TLSv1 cipher=RC4-SHA bits=128 verify=NO) for ; Sat, 05 Jul 2014 05:35:26 -0700 (PDT) X-Barracuda-Envelope-From: robin.listas@gmail.com X-Barracuda-Apparent-Source-IP: 74.125.82.180 Received: by mail-we0-f180.google.com with SMTP id x48so2558751wes.25 for ; Sat, 05 Jul 2014 05:35:25 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=sender:message-id:date:from:user-agent:mime-version:to:subject :references:in-reply-to:content-type:content-transfer-encoding; bh=gvPyW7L0VVFO9TBqLp1W9gCqWnEDnndomuvC7w5uZ24=; b=o5Vbw7Tq2VdezPCQKw2wyZFMQQ54n+R9cFbVL+vvaoCvWMF+B4O027HrsyULRrPnpV eNyoUzUrukI2BXoV2F2ATkkqUq5HsS1DxPVgU5hwUnslld77NTVQMscDgD9Njm9d2Z2B gDFNRd9I4EcaOSFBD3IX+Ew/vFlTECu2eqpP57Bm8MlYjAXtc7isucMG/0YFCuo7N3Dl HUqaUEdtIKzIpfTfBVkGEmRKNvllVbVhJ8mYCCwhZgkBlxpJ5XmsqLLmJUBZz9jUTgNO IXbDeFJVSkvDzLF1gqFaRVzQSk8GxfrjqmxKCtKSf0iquIAUKpC2N8OXSY7UHsAQSsI3 ut3Q== X-Received: by 10.194.71.81 with SMTP id s17mr18463898wju.18.1404563725055; Sat, 05 Jul 2014 05:35:25 -0700 (PDT) Received: from Telcontar.valinor (90.Red-79-150-228.dynamicIP.rima-tde.net. [79.150.228.90]) by mx.google.com with ESMTPSA id o9sm43984417wib.22.2014.07.05.05.35.24 for (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Sat, 05 Jul 2014 05:35:24 -0700 (PDT) Sender: Carlos Robinson Received: from localhost (localhost [127.0.0.1]) by Telcontar.valinor (Postfix) with ESMTP id 5F2F460D9C for ; Sat, 5 Jul 2014 14:35:22 +0200 (CEST) X-Virus-Scanned: amavisd-new at valinor Received: from Telcontar.valinor ([127.0.0.1]) by localhost (Telcontar.valinor [127.0.0.1]) (amavisd-new, port 10024) with LMTP id caL9yOv1SlGx for ; Sat, 5 Jul 2014 14:35:22 +0200 (CEST) Received: from [127.0.0.1] (localhost [127.0.0.1]) by Telcontar.valinor (Postfix) with ESMTP id 133AB60675 for ; Sat, 5 Jul 2014 14:35:21 +0200 (CEST) Message-ID: <53B7F109.9000702@opensuse.org> Date: Sat, 05 Jul 2014 14:35:21 +0200 From: "Carlos E. R." User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:24.0) Gecko/20100101 Thunderbird/24.6.0 MIME-Version: 1.0 To: XFS mail list Subject: Re: Greetings from Google! References: <87simgjzso.fsf@flamingspork.com> <87mwcojzl5.fsf@flamingspork.com> X-ASG-Orig-Subj: Re: Greetings from Google! In-Reply-To: <87mwcojzl5.fsf@flamingspork.com> X-Enigmail-Version: 1.6 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit X-Barracuda-Connect: mail-we0-f180.google.com[74.125.82.180] X-Barracuda-Start-Time: 1404563726 X-Barracuda-Encrypted: RC4-SHA X-Barracuda-URL: http://192.48.176.15:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 X-Barracuda-Spam-Score: 0.00 X-Barracuda-Spam-Status: No, SCORE=0.00 using per-user scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.7 tests=DKIM_SIGNED, DKIM_VERIFIED X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.7259 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- -0.00 DKIM_VERIFIED Domain Keys Identified Mail: signature passes verification 0.00 DKIM_SIGNED Domain Keys Identified Mail: message has a signature -----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 On 2014-07-05 04:42, Stewart Smith wrote: > Also, this is a mailing list and I'm an idiot who hasn't had > enough coffee this morning. LOL :-) This mail list has an astonishing amount of spam, true. I thought that one of the reasons might be this: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com Apparently an obsolete SpamAssassin version... but mine is about as old, "SpamAssassin 3.3.2 (2011-06-06)" and it catches most that escapes this mail list filter, probably because my bayesian filter is better trained. (I retrieved the 2013 and 2014 archives, and my spamassassin weeded out 1372 spam emails, some weighting 5MB. Nearly two hundred escaped my filters - with about 13000 good emails) - -- Cheers / Saludos, Carlos E. R. (from 13.1 x86_64 "Bottle" at Telcontar) -----BEGIN PGP SIGNATURE----- Version: GnuPG v2.0.22 (GNU/Linux) Comment: Using GnuPG with Thunderbird - http://www.enigmail.net/ iEYEARECAAYFAlO38QkACgkQtTMYHG2NR9VCOQCdF18H36vtbF+OsRVAOCUWjUpx DUkAnA5LQ5X8GXt7eQtEBNi7wm2JZtdN =EqHL -----END PGP SIGNATURE----- From jan.de.kruyf@gmail.com Sat Jul 5 07:41:11 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=FREEMAIL_FROM,HTML_MESSAGE, T_DKIM_INVALID autolearn=ham version=3.3.1 X-Original-To: xfs@oss.sgi.com Delivered-To: xfs@oss.sgi.com Received: from relay.sgi.com (relay1.corp.sgi.com [137.38.102.111]) by oss.sgi.com (Postfix) with ESMTP id F24E27F5A for ; Sat, 5 Jul 2014 07:41:10 -0500 (CDT) Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by relay1.corp.sgi.com (Postfix) with ESMTP id CB1BB8F8040 for ; Sat, 5 Jul 2014 05:41:10 -0700 (PDT) X-ASG-Debug-ID: 1404564067-04bdf056667f7700001-NocioJ Received: from mail-qc0-f171.google.com (mail-qc0-f171.google.com [209.85.216.171]) by cuda.sgi.com with ESMTP id mDvlGZIF52X3qHEf (version=TLSv1 cipher=RC4-SHA bits=128 verify=NO) for ; Sat, 05 Jul 2014 05:41:08 -0700 (PDT) X-Barracuda-Envelope-From: jan.de.kruyf@gmail.com X-Barracuda-Apparent-Source-IP: 209.85.216.171 X-Barracuda-IPDD: Level1 [gmail.com/209.85.216.171] Received: by mail-qc0-f171.google.com with SMTP id w7so2240406qcr.16 for ; Sat, 05 Jul 2014 05:41:07 -0700 (PDT) X-Barracuda-IPDD: Level1 [gmail.com/209.85.216.171] X-Barracuda-IPDD: Level1 [gmail.com/209.85.216.171] DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:date:message-id:subject:from:to:content-type; bh=EHgo8d/NinFvqx0H6EphLbAcYaxtXCWfYcYiFlqZ24w=; b=NVmIi/lRnGU+7Rv3/ITj6yYcGHwJrU9Q4/obm9r3m50l/tvKubgey2E41ZAu3qa8E+ DAPV1zIHbdthl0Ak4/pj+ODbDfONAd+qvLvt5wFUKJlqMkY82MjnY1UZSN7nhVwNX9Ql LX1HpzzvM3bT7SNU1R2wBbr7g+xm4Kv7vrbYLHIYH5eijJvwv/Ndy0KGcNUAei0J7n7i 78QmXl5zUyCy7x5TtOOwyUm1fKQhhzqkTTebh9IrMJ2KkedYXDVmcpie2mQKFN+3MXlz mncfSSP6AqJCUE/bJZbFzbXlNXlzeQNsx0P+OZB/R2QEvRq17qB0VEFBTU5iNvg5Oc3a P2Mw== MIME-Version: 1.0 X-Received: by 10.140.101.245 with SMTP id u108mr2431452qge.48.1404564067089; Sat, 05 Jul 2014 05:41:07 -0700 (PDT) Received: by 10.96.221.42 with HTTP; Sat, 5 Jul 2014 05:41:06 -0700 (PDT) Date: Sat, 5 Jul 2014 14:41:06 +0200 Message-ID: Subject: Data loss XFS with RT kernel on Debian. From: Jan de Kruyf X-ASG-Orig-Subj: Data loss XFS with RT kernel on Debian. To: xfs@oss.sgi.com Content-Type: multipart/alternative; boundary=001a11c1747648813a04fd718e56 X-Barracuda-Connect: mail-qc0-f171.google.com[209.85.216.171] X-Barracuda-Start-Time: 1404564067 X-Barracuda-Encrypted: RC4-SHA X-Barracuda-URL: http://192.48.157.11:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 X-Barracuda-Spam-Score: 0.00 X-Barracuda-Spam-Status: No, SCORE=0.00 using per-user scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.7 tests=DKIM_SIGNED, DKIM_VERIFIED, HTML_MESSAGE X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.7259 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- -0.00 DKIM_VERIFIED Domain Keys Identified Mail: signature passes verification 0.00 DKIM_SIGNED Domain Keys Identified Mail: message has a signature 0.00 HTML_MESSAGE BODY: HTML included in message --001a11c1747648813a04fd718e56 Content-Type: text/plain; charset=UTF-8 Hallo, While doing a reasonably high density job like rsynching a subdirectory from one place to another, or tarring it to a pipe and untarring it at the other end, I note that the cpu usage goes practically to 100% and when I after 5 minutes or so I reset the computer the writing has not finished at all. However on the stock Debian kernel it works without a problem. Could I still use this combination in an industrial environment reading and writing reasonably short text files? So far I did not experience this problem with normal day to day use. It stuck up its head during installation of gnat-gpl-2014-x86_64-linux-bin from the http://libre.adacore.com/download/ page. The offending code is in the Makefile in the top directory page. The Xterm will give you the place where it gets stuck. Regards, Jan de Kruijf. Her are the details of the installation: root@jan:~# xfs_info -V xfs_info version 3.1.7 root@jan:~# xfs_info /usr meta-data=/dev/sda3 isize=256 agcount=4, agsize=732416 blks = sectsz=512 attr=2 data = bsize=4096 blocks=2929664, imaxpct=25 = sunit=0 swidth=0 blks naming =version 2 bsize=4096 ascii-ci=0 log =internal bsize=4096 blocks=2560, version=2 = sectsz=512 sunit=0 blks, lazy-count=1 realtime =none extsz=4096 blocks=0, rtextents=0 This combination does not work: root@jan:~# uname -a Linux jan 3.14-0.bpo.1-rt-amd64 #1 SMP PREEMPT RT Debian 3.14.7-1~bpo70+1 (2014-06-21) x86_64 GNU/Linux Also kernel 3.10-0.bpo.3-rt-amd64 does not work But this combination works: root@jan:~# uname -a Linux jan 3.2.0-4-amd64 #1 SMP Debian 3.2.57-3+deb7u2 x86_64 GNU/Linux --001a11c1747648813a04fd718e56 Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: quoted-printable
Hallo,

While doing a rea= sonably high density job like rsynching a subdirectory from one place to an= other, or tarring it to a pipe and untarring it at the other end, I note th= at the cpu usage goes practically to 100% and when I after 5 minutes or so = I reset the computer the writing has not finished at all.
However on the stock Debian kernel it works without a problem.

Could I still use this combination in an industrial envir= onment reading and writing reasonably short text files? So far I did not ex= perience this problem with normal day to day use. It stuck up its head duri= ng installation of=C2=A0 =C2=A0gnat-gpl-2014-x86_64-linux-bin from the http://libre.adacore.com/download= / page. The offending code is in the Makefile in the top directory page= . The Xterm will give you the place where it gets stuck.

Regards,

Jan de Kruijf.
<= div>

Her are the details of the installation:<= /div>

root@jan:~# xfs_info -V
xfs_info version 3.1.7<= /div>

root@jan:~# xfs_info /usr
meta-data=3D/dev/sda3 = isize=3D256 agcount=3D4, agsize=3D732416 blks
=C2=A0 = =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =3D sectsz= =3D512 attr=3D2
=C2=A0 =C2=A0 =C2=A0 =C2=A0data =3D = bsize=3D4096 blocks=3D2929664, imaxpct=3D25
=C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0 =C2=A0=3D = sunit=3D0 swidth=3D0 blks
naming =3Dversion 2 = bsize=3D4096 ascii-ci=3D0
log =3Dinternal bs= ize=3D4096 blocks=3D2560, version=3D2
=C2=A0 =C2=A0 =C2=A0 =C2= =A0=3D sectsz=3D512 sunit=3D0 blks, lazy-count=3D1<= br> realtime =3Dnone extsz=3D4096 blocks=3D0, rtextents=3D0=

This combination does not work:
root@ja= n:~# uname -a
Linux jan 3.14-0.bpo.1-rt-amd64 #1 SMP PREEMPT RT Debian 3= .14.7-1~bpo70+1 (2014-06-21) x86_64 GNU/Linux

Also kernel 3.10-0.bpo.3-rt-amd64 does not work

But this combination works:
=C2=A0root@jan:~# u= name -a
Linux jan 3.2.0-4-amd64 #1 SMP Debian 3.2.57-3+deb7u2 x86_64 GNU= /Linux
--001a11c1747648813a04fd718e56-- From sandeen@sandeen.net Sat Jul 5 15:06:17 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: xfs@oss.sgi.com Delivered-To: xfs@oss.sgi.com Received: from relay.sgi.com (relay2.corp.sgi.com [137.38.102.29]) by oss.sgi.com (Postfix) with ESMTP id 908737F5D for ; Sat, 5 Jul 2014 15:06:17 -0500 (CDT) Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by relay2.corp.sgi.com (Postfix) with ESMTP id 72ECC304048 for ; Sat, 5 Jul 2014 13:06:14 -0700 (PDT) X-ASG-Debug-ID: 1404590769-04cb6c76d148e920001-NocioJ Received: from sandeen.net (sandeen.net [63.231.237.45]) by cuda.sgi.com with ESMTP id chHCKU7xaDFAL34C for ; Sat, 05 Jul 2014 13:06:09 -0700 (PDT) X-Barracuda-Envelope-From: sandeen@sandeen.net X-Barracuda-Apparent-Source-IP: 63.231.237.45 Received: from liberator.sandeen.net (liberator.sandeen.net [10.0.0.4]) (using TLSv1 with cipher DHE-RSA-AES128-SHA (128/128 bits)) (No client certificate requested) by sandeen.net (Postfix) with ESMTPSA id EC1B363C6058; Sat, 5 Jul 2014 15:06:08 -0500 (CDT) Message-ID: <53B85AB0.30800@sandeen.net> Date: Sat, 05 Jul 2014 15:06:08 -0500 From: Eric Sandeen MIME-Version: 1.0 To: Jan de Kruyf , xfs@oss.sgi.com Subject: Re: Data loss XFS with RT kernel on Debian. References: X-ASG-Orig-Subj: Re: Data loss XFS with RT kernel on Debian. In-Reply-To: X-Enigmail-Version: 1.6 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit X-Barracuda-Connect: sandeen.net[63.231.237.45] X-Barracuda-Start-Time: 1404590769 X-Barracuda-URL: http://192.48.176.15:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 X-Barracuda-Spam-Score: 0.00 X-Barracuda-Spam-Status: No, SCORE=0.00 using per-user scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.7 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.7266 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- On 7/5/14, 7:41 AM, Jan de Kruyf wrote: > Hallo, > > While doing a reasonably high density job like rsynching a subdirectory from one place to another, or tarring it to a pipe and untarring it at the other end, I note that the cpu usage goes practically to 100% and when I after 5 minutes or so I reset the computer the writing has not finished at all. > However on the stock Debian kernel it works without a problem. > > Could I still use this combination in an industrial environment reading and writing reasonably short text files? So far I did not experience this problem with normal day to day use. It stuck up its head during installation of gnat-gpl-2014-x86_64-linux-bin from the http://libre.adacore.com/download/ page. The offending code is in the Makefile in the top directory page. The Xterm will give you the place where it gets stuck. http://lwn.net/Articles/457667/ -Eric > Regards, > > Jan de Kruijf. > > > Her are the details of the installation: > > root@jan:~# xfs_info -V > xfs_info version 3.1.7 > > root@jan:~# xfs_info /usr > meta-data=/dev/sda3 isize=256 agcount=4, agsize=732416 blks > = sectsz=512 attr=2 > data = bsize=4096 blocks=2929664, imaxpct=25 > = sunit=0 swidth=0 blks > naming =version 2 bsize=4096 ascii-ci=0 > log =internal bsize=4096 blocks=2560, version=2 > = sectsz=512 sunit=0 blks, lazy-count=1 > realtime =none extsz=4096 blocks=0, rtextents=0 > > This combination does not work: > root@jan:~# uname -a > Linux jan 3.14-0.bpo.1-rt-amd64 #1 SMP PREEMPT RT Debian 3.14.7-1~bpo70+1 (2014-06-21) x86_64 GNU/Linux > > Also kernel 3.10-0.bpo.3-rt-amd64 does not work > > But this combination works: > root@jan:~# uname -a > Linux jan 3.2.0-4-amd64 #1 SMP Debian 3.2.57-3+deb7u2 x86_64 GNU/Linux > > > _______________________________________________ > xfs mailing list > xfs@oss.sgi.com > http://oss.sgi.com/mailman/listinfo/xfs > From tglx@linutronix.de Sat Jul 5 15:36:18 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: xfs@oss.sgi.com Delivered-To: xfs@oss.sgi.com Received: from relay.sgi.com (relay2.corp.sgi.com [137.38.102.29]) by oss.sgi.com (Postfix) with ESMTP id 25F677F5E for ; Sat, 5 Jul 2014 15:36:18 -0500 (CDT) Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by relay2.corp.sgi.com (Postfix) with ESMTP id 12E7D30404E for ; Sat, 5 Jul 2014 13:36:17 -0700 (PDT) X-ASG-Debug-ID: 1404592574-04cbb065352c08b0001-NocioJ Received: from Galois.linutronix.de (www.linutronix.de [62.245.132.108]) by cuda.sgi.com with ESMTP id A72tw4V6dEmiMwMN (version=TLSv1 cipher=AES128-SHA bits=128 verify=NO) for ; Sat, 05 Jul 2014 13:36:16 -0700 (PDT) X-Barracuda-Envelope-From: tglx@linutronix.de X-Barracuda-Apparent-Source-IP: 62.245.132.108 Received: from localhost ([127.0.0.1]) by Galois.linutronix.de with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:256) (Exim 4.80) (envelope-from ) id 1X3Wgt-00036l-B1; Sat, 05 Jul 2014 22:36:11 +0200 Date: Sat, 5 Jul 2014 22:36:10 +0200 (CEST) From: Thomas Gleixner To: John Blackwood cc: Richard Weinberger , Austin Schuh , linux-kernel@vger.kernel.org, xfs@oss.sgi.com, linux-rt-users@vger.kernel.org Subject: Re: Filesystem lockup with CONFIG_PREEMPT_RT In-Reply-To: <537CFECF.9070701@ccur.com> X-ASG-Orig-Subj: Re: Filesystem lockup with CONFIG_PREEMPT_RT Message-ID: References: <537CFECF.9070701@ccur.com> User-Agent: Alpine 2.10 (DEB 1266 2009-07-14) MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII X-Linutronix-Spam-Score: -1.0 X-Linutronix-Spam-Level: - X-Linutronix-Spam-Status: No , -1.0 points, 5.0 required, ALL_TRUSTED=-1,SHORTCIRCUIT=-0.0001 X-Barracuda-Connect: www.linutronix.de[62.245.132.108] X-Barracuda-Start-Time: 1404592575 X-Barracuda-Encrypted: AES128-SHA X-Barracuda-URL: http://192.48.176.25:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 X-Barracuda-Spam-Score: 0.00 X-Barracuda-Spam-Status: No, SCORE=0.00 using per-user scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.7 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.7267 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- On Wed, 21 May 2014, John Blackwood wrote: > I'm not 100% sure that the patch below will fix your problem, but we > saw something that sounds pretty familiar to your issue involving the > nvidia driver and the preempt-rt patch. The nvidia driver uses the > completion support to create their own driver's notion of an internally > used semaphore. And why should we care about that? If they abuse the completion code then it's their problem. And it has nothing to do at all with the problem Austin is observing. > Some tasks were failing to ever wakeup from wait_for_completion() calls > due to a race in the underlying do_wait_for_common() routine. Why are you not fixing the nvidia crap instead of hacking utter shite into the core kernel? Thanks, tglx From sandeen@sandeen.net Sat Jul 5 17:08:25 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: xfs@oss.sgi.com Delivered-To: xfs@oss.sgi.com Received: from relay.sgi.com (relay3.corp.sgi.com [198.149.34.15]) by oss.sgi.com (Postfix) with ESMTP id E7F7F7F47 for ; Sat, 5 Jul 2014 17:08:24 -0500 (CDT) Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by relay3.corp.sgi.com (Postfix) with ESMTP id 81F3EAC001 for ; Sat, 5 Jul 2014 15:08:23 -0700 (PDT) X-ASG-Debug-ID: 1404598098-04bdf05669807350001-NocioJ Received: from sandeen.net (sandeen.net [63.231.237.45]) by cuda.sgi.com with ESMTP id sOQOobJgtcuujkiI for ; Sat, 05 Jul 2014 15:08:18 -0700 (PDT) X-Barracuda-Envelope-From: sandeen@sandeen.net X-Barracuda-Apparent-Source-IP: 63.231.237.45 Received: from liberator.sandeen.net (liberator.sandeen.net [10.0.0.4]) (using TLSv1 with cipher DHE-RSA-AES128-SHA (128/128 bits)) (No client certificate requested) by sandeen.net (Postfix) with ESMTPSA id 5329263C6058; Sat, 5 Jul 2014 17:08:18 -0500 (CDT) Message-ID: <53B87752.9000008@sandeen.net> Date: Sat, 05 Jul 2014 17:08:18 -0500 From: Eric Sandeen MIME-Version: 1.0 To: Jan de Kruyf , xfs@oss.sgi.com Subject: Re: Data loss XFS with RT kernel on Debian. References: <53B85AB0.30800@sandeen.net> X-ASG-Orig-Subj: Re: Data loss XFS with RT kernel on Debian. In-Reply-To: <53B85AB0.30800@sandeen.net> X-Enigmail-Version: 1.6 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit X-Barracuda-Connect: sandeen.net[63.231.237.45] X-Barracuda-Start-Time: 1404598098 X-Barracuda-URL: http://192.48.157.11:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 X-Barracuda-Spam-Score: 0.00 X-Barracuda-Spam-Status: No, SCORE=0.00 using per-user scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.7 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.7268 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- On 7/5/14, 3:06 PM, Eric Sandeen wrote: > On 7/5/14, 7:41 AM, Jan de Kruyf wrote: >> Hallo, >> >> While doing a reasonably high density job like rsynching a >> subdirectory from one place to another, or tarring it to a pipe and >> untarring it at the other end, I note that the cpu usage goes >> practically to 100% and when I after 5 minutes or so I reset the >> computer the writing has not finished at all. However on the stock >> Debian kernel it works without a problem. >> >> Could I still use this combination in an industrial environment >> reading and writing reasonably short text files? So far I did not >> experience this problem with normal day to day use. It stuck up its >> head during installation of gnat-gpl-2014-x86_64-linux-bin from the >> http://libre.adacore.com/download/ page. The offending code is in >> the Makefile in the top directory page. The Xterm will give you the >> place where it gets stuck. > http://lwn.net/Articles/457667/ Ok, sorry - that was a little short ;) If you have some 100% cpu livelock or whatever, that does sound like a potential bug. Perhaps some tracing or profiling can help figure out what has gone wrong there. Maybe sysrq-t & see where the active threads are, or even top? But if you are surprised that you lost data when you did a hard reset, the URL above is informative. -Eric From david@fromorbit.com Sun Jul 6 18:54:55 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: xfs@oss.sgi.com Delivered-To: xfs@oss.sgi.com Received: from relay.sgi.com (relay1.corp.sgi.com [137.38.102.111]) by oss.sgi.com (Postfix) with ESMTP id D73287F3F for ; Sun, 6 Jul 2014 18:54:55 -0500 (CDT) Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by relay1.corp.sgi.com (Postfix) with ESMTP id B35C88F8033 for ; Sun, 6 Jul 2014 16:54:52 -0700 (PDT) X-ASG-Debug-ID: 1404690890-04cbb065362e7e80001-NocioJ Received: from ipmail05.adl6.internode.on.net (ipmail05.adl6.internode.on.net [150.101.137.143]) by cuda.sgi.com with ESMTP id RblbTyadBcoLLwNk for ; Sun, 06 Jul 2014 16:54:50 -0700 (PDT) X-Barracuda-Envelope-From: david@fromorbit.com X-Barracuda-Apparent-Source-IP: 150.101.137.143 X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: As1HALvguVN5LA/TPGdsb2JhbABagw6DSqkxAQaaVgGBCxcEAQEBATg1hAMBAQQBOhwjBQsIAw4KCSUPBSUDBxoTiDoHyTgXGIVYiTIHhEMFmnWXYis Received: from ppp121-44-15-211.lns20.syd6.internode.on.net (HELO dastard) ([121.44.15.211]) by ipmail05.adl6.internode.on.net with ESMTP; 07 Jul 2014 09:24:45 +0930 Received: from dave by dastard with local (Exim 4.80) (envelope-from ) id 1X3wGa-0007Sz-4e; Mon, 07 Jul 2014 09:54:44 +1000 Date: Mon, 7 Jul 2014 09:54:44 +1000 From: Dave Chinner To: Christoph Hellwig Cc: xfs@oss.sgi.com Subject: Re: [PATCH 4/6] libxfs: reused invalidated buffers leak state and data Message-ID: <20140706235444.GP9508@dastard> X-ASG-Orig-Subj: Re: [PATCH 4/6] libxfs: reused invalidated buffers leak state and data References: <1404453435-1915-1-git-send-email-david@fromorbit.com> <1404453435-1915-5-git-send-email-david@fromorbit.com> <20140704141509.GB29520@infradead.org> <20140704222210.GM9508@dastard> <20140705094807.GB18130@infradead.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20140705094807.GB18130@infradead.org> User-Agent: Mutt/1.5.21 (2010-09-15) X-Barracuda-Connect: ipmail05.adl6.internode.on.net[150.101.137.143] X-Barracuda-Start-Time: 1404690890 X-Barracuda-URL: http://192.48.176.25:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 X-Barracuda-Spam-Score: 0.00 X-Barracuda-Spam-Status: No, SCORE=0.00 using per-user scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.7 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.7299 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- On Sat, Jul 05, 2014 at 02:48:07AM -0700, Christoph Hellwig wrote: > On Sat, Jul 05, 2014 at 08:22:10AM +1000, Dave Chinner wrote: > > I'm open to other ways of fixing this, but right now we've got to > > fix xfs_repair because it's currently breaking filesystems worse > > than before xfs_repair was run... > > Ok, so clearly mark this as difference from kernel code in a long > comment explaining the situation similar to wrote you above. Will do. > It's > pretty obvious that the buffer cache in userspace will eventually need > a major overhaul sooner or later. I wonder how feasible porting the > kernel one would be.. It's not so much the porting that's the issue - it's cleaning up all the applications that use it that is the headache. And, realistically, I don't think there's much of the kernel code that can be used - we have to rewrite all the allocation, freeing, locking and IO parts of it, so we'd pretty much be re-implementing most of it, anyway.... Cheers, Dave. -- Dave Chinner david@fromorbit.com From david@fromorbit.com Sun Jul 6 18:57:34 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: xfs@oss.sgi.com Delivered-To: xfs@oss.sgi.com Received: from relay.sgi.com (relay1.corp.sgi.com [137.38.102.111]) by oss.sgi.com (Postfix) with ESMTP id DDD2B7F4E for ; Sun, 6 Jul 2014 18:57:34 -0500 (CDT) Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by relay1.corp.sgi.com (Postfix) with ESMTP id B898E8F8033 for ; Sun, 6 Jul 2014 16:57:34 -0700 (PDT) X-ASG-Debug-ID: 1404691052-04cbb065382e7f60001-NocioJ Received: from ipmail05.adl6.internode.on.net (ipmail05.adl6.internode.on.net [150.101.137.143]) by cuda.sgi.com with ESMTP id bU3WbVO2cDB7Fzhb for ; Sun, 06 Jul 2014 16:57:33 -0700 (PDT) X-Barracuda-Envelope-From: david@fromorbit.com X-Barracuda-Apparent-Source-IP: 150.101.137.143 X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: AslHAB7iuVN5LA/TPGdsb2JhbABagw6DSqkxAQaaVgGBCxcEAQEBATg1hAMBAQU6HCMQCAMYCSUPBSUDBxoTiEHJOxcYhViJMgeEQwEEmnWXYis Received: from ppp121-44-15-211.lns20.syd6.internode.on.net (HELO dastard) ([121.44.15.211]) by ipmail05.adl6.internode.on.net with ESMTP; 07 Jul 2014 09:27:02 +0930 Received: from dave by dastard with local (Exim 4.80) (envelope-from ) id 1X3wIn-0007TW-PP; Mon, 07 Jul 2014 09:57:01 +1000 Date: Mon, 7 Jul 2014 09:57:01 +1000 From: Dave Chinner To: Jan de Kruyf Cc: xfs@oss.sgi.com Subject: Re: Data loss XFS with RT kernel on Debian. Message-ID: <20140706235701.GQ9508@dastard> X-ASG-Orig-Subj: Re: Data loss XFS with RT kernel on Debian. References: MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.5.21 (2010-09-15) X-Barracuda-Connect: ipmail05.adl6.internode.on.net[150.101.137.143] X-Barracuda-Start-Time: 1404691052 X-Barracuda-URL: http://192.48.176.25:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 X-Barracuda-Spam-Score: 0.00 X-Barracuda-Spam-Status: No, SCORE=0.00 using per-user scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.7 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.7299 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- On Sat, Jul 05, 2014 at 02:41:06PM +0200, Jan de Kruyf wrote: > Hallo, > > While doing a reasonably high density job like rsynching a subdirectory > from one place to another, or tarring it to a pipe and untarring it at the > other end, I note that the cpu usage goes practically to 100% and when I > after 5 minutes or so I reset the computer the writing has not finished at > all. > However on the stock Debian kernel it works without a problem. Which says that it's a RT kernel problem, not an XFS issue. There have been other recent reports of issues with RT kernels, and they have proven to be core RT kernel bugs, not filesystem issues. I'd suggest that you are likely to be seeing the same RT issues.... Cheers, Dave. -- Dave Chinner david@fromorbit.com From david@fromorbit.com Sun Jul 6 19:09:37 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: xfs@oss.sgi.com Delivered-To: xfs@oss.sgi.com Received: from relay.sgi.com (relay3.corp.sgi.com [198.149.34.15]) by oss.sgi.com (Postfix) with ESMTP id 3BD0F29DF8 for ; Sun, 6 Jul 2014 19:09:37 -0500 (CDT) Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by relay3.corp.sgi.com (Postfix) with ESMTP id C723EAC002 for ; Sun, 6 Jul 2014 17:09:36 -0700 (PDT) X-ASG-Debug-ID: 1404691770-04cb6c76d14b6dc0001-NocioJ Received: from ipmail05.adl6.internode.on.net (ipmail05.adl6.internode.on.net [150.101.137.143]) by cuda.sgi.com with ESMTP id 3XO8VCYgDyc1is0e for ; Sun, 06 Jul 2014 17:09:31 -0700 (PDT) X-Barracuda-Envelope-From: david@fromorbit.com X-Barracuda-Apparent-Source-IP: 150.101.137.143 X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: As5HAHHkuVN5LA/TPGdsb2JhbABagw6DSqkxAQaaVgGBCxcEAQEBATg1hAMBAQUnExwjEAgDDgQGCSUPBSUDBwYUE4hByToXGIVYiTIHhEMFmnWXYis Received: from ppp121-44-15-211.lns20.syd6.internode.on.net (HELO dastard) ([121.44.15.211]) by ipmail05.adl6.internode.on.net with ESMTP; 07 Jul 2014 09:39:30 +0930 Received: from dave by dastard with local (Exim 4.80) (envelope-from ) id 1X3wUr-0007VQ-94; Mon, 07 Jul 2014 10:09:29 +1000 Date: Mon, 7 Jul 2014 10:09:29 +1000 From: Dave Chinner To: Christoph Hellwig Cc: xfs@oss.sgi.com Subject: Re: [PATCH 4/6] libxfs: reused invalidated buffers leak state and data Message-ID: <20140707000929.GR9508@dastard> X-ASG-Orig-Subj: Re: [PATCH 4/6] libxfs: reused invalidated buffers leak state and data References: <1404453435-1915-1-git-send-email-david@fromorbit.com> <1404453435-1915-5-git-send-email-david@fromorbit.com> <20140704141509.GB29520@infradead.org> <20140704222210.GM9508@dastard> <20140705094807.GB18130@infradead.org> <20140706235444.GP9508@dastard> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20140706235444.GP9508@dastard> User-Agent: Mutt/1.5.21 (2010-09-15) X-Barracuda-Connect: ipmail05.adl6.internode.on.net[150.101.137.143] X-Barracuda-Start-Time: 1404691770 X-Barracuda-URL: http://192.48.176.15:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 X-Barracuda-Spam-Score: 0.00 X-Barracuda-Spam-Status: No, SCORE=0.00 using per-user scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.7 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.7298 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- On Mon, Jul 07, 2014 at 09:54:44AM +1000, Dave Chinner wrote: > On Sat, Jul 05, 2014 at 02:48:07AM -0700, Christoph Hellwig wrote: > > On Sat, Jul 05, 2014 at 08:22:10AM +1000, Dave Chinner wrote: > > > I'm open to other ways of fixing this, but right now we've got to > > > fix xfs_repair because it's currently breaking filesystems worse > > > than before xfs_repair was run... > > > > Ok, so clearly mark this as difference from kernel code in a long > > comment explaining the situation similar to wrote you above. > > Will do. Ok, I added this to the top of the libxfs/rdwr.c file: /* * Important design/architecture note: * * The userspace code that uses the buffer cache is much less constrained than * the kernel code. The userspace code is pretty nasty in places, especially * when it comes to buffer error handling. Very little of the userspace code * outside libxfs clears bp->b_error - very little code even checks it - so the * libxfs code is tripping on stale errors left by the userspace code. * * We can't clear errors or zero buffer contents in libxfs_getbuf-* like we do * in the kernel, because those functions are used by the libxfs_readbuf_* * functions and hence need to leave the buffers unchanged on cache hits. This * is actually the only way to gather a write error from a libxfs_writebuf() * call - you need to get the buffer again so you can check bp->b_error field - * assuming that the buffer is still in the cache when you check, that is. * * This is very different to the kernel code which does not release buffers on a * write so we can wait on IO and check errors. The kernel buffer cache also * guarantees a buffer of a known initial state from xfs_buf_get() even on a * cache hit. * * IOWs, userspace is behaving quite differently to the kernel and as a result * it leaks errors from reads, invalidations and writes through * libxfs_getbuf/libxfs_readbuf. * * The result of this is that until the userspace code outside libxfs is cleaned * up, functions that release buffers from userspace control (i.e * libxfs_writebuf/libxfs_putbuf) need to zero bp->b_error to prevent * propagation of stale errors into future buffer operations. */ Is that sufficient for the moment? -Dave. -- Dave Chinner david@fromorbit.com From kondik.c@iol.cz Mon Jul 7 02:52:07 2014 Return-Path: X-Original-To: xfs@oss.sgi.com Delivered-To: xfs@oss.sgi.com Received: from relay.sgi.com (relay3.corp.sgi.com [198.149.34.15]) by oss.sgi.com (Postfix) with ESMTP id 733137F3F for ; Mon, 7 Jul 2014 02:52:06 -0500 (CDT) Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by relay3.corp.sgi.com (Postfix) with ESMTP id 4F38FAC001 for ; Mon, 7 Jul 2014 00:52:05 -0700 (PDT) X-ASG-Debug-ID: 1404719517-04cbb065362f2320001-NocioJ Received: from smtp-out3.iol.cz (smtp-out3.iol.cz [194.228.2.91]) by cuda.sgi.com with ESMTP id mU8CO70xIbk7CD9g; Mon, 07 Jul 2014 00:51:57 -0700 (PDT) X-Barracuda-Envelope-From: kondik.c@iol.cz X-Barracuda-Apparent-Source-IP: 194.228.2.91 Received: from antivir5.iol.cz (unknown [192.168.30.212]) by smtp-out3.iol.cz (Postfix) with ESMTP id 103E1C00040; Mon, 7 Jul 2014 09:21:21 +0200 (CEST) Received: from localhost (antivir5.iol.cz [127.0.0.1]) by antivir5.iol.cz (Postfix) with ESMTP id 6C9A2510048; Mon, 7 Jul 2014 09:21:20 +0200 (CEST) X-Virus-Scanned: amavisd-new at iol.cz Received: from antivir5.iol.cz ([127.0.0.1]) by localhost (antivir5.iol.cz [127.0.0.1]) (amavisd-new, port 10224) with LMTP id b+GrTw8jCC-i; Mon, 7 Jul 2014 09:21:19 +0200 (CEST) Received: from port7.iol.cz (unknown [192.168.30.97]) by antivir5.iol.cz (Postfix) with ESMTP id 9C7EC510043; Mon, 7 Jul 2014 09:21:14 +0200 (CEST) Message-Id: X-SBRS: None X-SBRS-none: None X-RECVLIST: MTA-OUT-IOL X-IronPort-AV: E=Sophos;i="5.01,616,1400018400"; d="pdf'?jpg'145?scan'145,208,217,145";a="107669701" Received: from digitalpound.net (HELO User) ([37.0.125.92]) by smtp.iol.cz with ESMTP; 07 Jul 2014 09:19:29 +0200 Reply-To: From: "Google UK Ltd" Subject: Date: Mon, 7 Jul 2014 11:20:52 +0400 X-ASG-Orig-Subj: MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="----=_NextPart_000_00A9_01C2A9A6.210A6442" X-Priority: 3 X-MSMail-Priority: Normal X-Mailer: Microsoft Outlook Express 6.00.2600.0000 X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2600.0000 To: undisclosed-recipients:; X-Barracuda-Connect: smtp-out3.iol.cz[194.228.2.91] X-Barracuda-Start-Time: 1404719517 X-Barracuda-URL: http://192.48.176.25:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 X-Barracuda-Spam-Score: -1001.00 X-Barracuda-Spam-Status: No, SCORE=-1001.00 using per-user scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.7 This is a multi-part message in MIME format. ------=_NextPart_000_00A9_01C2A9A6.210A6442 Content-Type: multipart/related; boundary="----=_NextPart_001_00AA_01C2A9A6.210A6442" ------=_NextPart_001_00AA_01C2A9A6.210A6442 Content-Type: text/html; charset="Windows-1251" Content-Transfer-Encoding: 7bit
Google UK Ltd
Belgrave House
76 Buckingham Palace Road
London SW1W 9TQ
United Kingdom.
Ref No: GUK/ 8900/88/2014
Batch: GUK/ 955/GPKLI/UK
RE: OFFICIAL NOTIFICATION LETTER.
 
It is obvious that this notification will come to you as a surprise but please find time to read it carefully as we congratulate you over your success in the following official publication of results of the E-mail Electronic Online Sweepstakes Organized by Google, in conjunction with the foundation for the Promotion of Software Products (F.P.S.). Google earns its profit mainly from advertising using their very own Google search engine, Gmail, Gala, Sify, e-mail service Google Maps, Google Apps, Orkut social networking and You Tube video sharing, which are all offered to the public for free.
 
We wish to congratulate you once again, for being among the Twelve (12) selected winners in the ongoing E-mail Electronic Online Sweepstakes; we do believe with your prize, you will continue to be active in your patronage to Google and its Products. A Bank Cheque have been issued in your favor, hence you have won for yourself the sum of £950.000.00 (Nine Hundred and Fifty Thousand Great British Pounds Sterling), One Google Nexus 10 Tablet and also you have been enlisted as one of the Google Ambassadors for 2014.
 
To claim your reward, please contact our Foreign Payment Bureau officer below by neatly filling the verification and funds release form below, as your payment will be released and arranged by our United Kingdom Office.
 
MANDATORY FOREIGN PAYMENT RELEASE FORM.
(1) Your Contact Address:
(2) Your Contact Telephone/Mobile Number:
(3) Your Nationality/Country:
(4)Your Full Names:
(5) Occupation:
(6) Age/Gender:
(7) Marital Status:
(8) Private Email Address:
(9) Ever Won An Online Lottery?
(10) How Do You Feel As A Winner?
(11) Your preferred mode of prize remittance stated below:
         * Courier Delivery of your certified winning cheque in your name and other Winning documents safely to your home address.
 
 
…………………………………………………………………………………………………
 
Contact our Foreign Payment Bureau officer below:
David C. Drummond
Senior Vice President, Corporate Development and Chief Legal Officer with the E-mail account as follows:
Email: claimsunit115@gmail.com
……………………………………………………………………………………………
 
Note: You can either fill your claims verification form by printing and manually filling out the requested details or you can fill directly on e-mail, or provide the details on Microsoft Word.
 
NOTE: For security reasons, you are advised to keep your winning information confidential till your claims are processed and your money remitted to you. This is part of our precautionary measure to avoid double claiming and unwarranted abuse of this program by some unscrupulous elements. Please be WARNED!!!!
 
Congratulations from the Staffs & Members of Google Board Commission.
 
MD Matt Brittin,
Chairman of the Board and Managing Director,
Google United Kingdom
©2014 Google Corporation.
------=_NextPart_001_00AA_01C2A9A6.210A6442 Content-Type: image/jpeg; name="img1.jpg" Content-Transfer-Encoding: base64 Content-ID: <00CF558EFF2D$0029E55C$0100007f@ltzhodpbwosoxox> /9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAAMCAgMCAgMDAwMEAwMEBQgFBQQE BQoHBwYIDAoMDAsKCwsNDhIQDQ4RDgsLEBYQERMUFRUVDA8XGBYUGBIUFRT/ 2wBDAQMEBAUEBQkFBQkUDQsNFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQU FBQUFBQUFBQUFBQUFBQUFBQUFBQUFBT/wAARCAA7ANoDASIAAhEBAxEB/8QA HwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUF BAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkK FhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1 dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXG x8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6/8QAHwEAAwEBAQEB AQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREAAgECBAQDBAcFBAQAAQJ3AAEC AxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYkNOEl8RcYGRom JygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOE hYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU 1dbX2Nna4uPk5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwD9QCMZ4x9f xpSMZ4/zzQRjOR/nmuQ+IXxa8H/CvTpLzxTr1rpMajIjkbdK3XGEAJOe1a06 VStJQpxbb6LUic4wXNN2R1xGM8Y+v40pGM8f55r5/X9qi88TN/xR3w/1PUbd vuXut3KadG47Mse15SD2Oyrg+IPxpvVL2vg3wrEMZCPdXsp/E+Sn8q6Xg6kd Jyiv+3l+jdvmZKtF/Cm/k/1PcyMZ4x9fxpSMZ4/zzXzpqvxn+NvhlGlvvhRp OrwJ97+ytVlSTH+7LEP51yQ/4KNeE/D1/wDYvHHg/wAQ+ErkEIwdFmwT/snY x/AGuqnlOKrxcqPLO2rtKLf3Xv8AgZSxlKDtUur90/ztY+tyMZ4x9fxpSMZ4 /wA81h+DfGWlePvDllrmjTSTafeR+ZEZ4HgkAOfvRyKrqfqBW4RjOR+f415D TTsztvcQjGeMfX8aUjGeP880EYzkf55oIxnI/P8AGkAhGM8Y+v40pGM8f55o IxnI/wA80EYzkfn+NACEYzxj6/jSkYzx/nmgjGcj/PNBGM5H5/jQAhGM8Y+v 40pGM8f55oIxnI/zzQRjOR+f40AIRjPGPr+NKRjPH+eaCMZyP880EYzkfn+N ACEYzxj6/jSkYzx/nmgjGcj/ADzQRjOR+f40AIRjPGPr+NKRjPH+ea4H4o+L vEHgbQrvV7S3s7i0gKjyjGzSHJxySwA6+navnX4DftjeMPjF8WtV8Pz6bptr o2nKpYQWrfaJXZiFG4yYUYDEnaegrhljIRrrDtPmevyPMlmFKOKWEafO1f5d 9z7HIxnjH1/GlIxnj/PNIM7QWXaSOnp1pSMZyPz/ABruPTEIxnjH1/GlIxnj /PNBGM5H+eaCMZyPz/GgBCMZ4x9fxrRj/wBWv0FZ5GM5H+ea0I/9Wv0HWgDx z9ob4tj4TeCp7uFtl/NHI0b45iRRy3P8WSoGfUntXxD+yf4Hv/2l/iDqvjnx RcPeR2t88FlDMxdYCoDPLg9XO4AMeRgkcnj3b/goh8PtZ1nwZpPirTBPPY6W s1tqkEZJ2QyFSkxHorKwY9t4PQHHz5+wD8a9K+FHjW+8JeIp4tO0rWZ/NsdQ mbEUc5ARo3Y8KGCrtJ4yMfxCv0Clgpf6v+3wWspN89t7J7elrP01PnJVl/aX JX2S92+3qfpPoHhTTPDFqsNhZxwYHMm35mPqT1zWuR6j/PNJwRuHKkZB9RzS kYzkfn+Nfn59GBGM8Y+v41wfjP4HeDPHmvW+t6xoVtcavbrshvXjBkjXJO1S fu8+mDVzxt4/uPCAPk+FNY1w/wB6ze1ij/76mmQk/QHpXmnir9r/AMP+BbFr jxF4e1bSXEfmiCV4ZHYZI4KMy9R616WGwWKxD5cOrt9FJXt6Xv8Agc1XEUqe tR2S8nb77HtWi+H9P8OWYttOtUtYR2UdevX3rk/ih8b/AAh8IrZG1+/Y3kzL HBptlH511M7cKqoO5JGASM1zHwS/aS034/8AhXUdZ8O6PeaekXnRWiXzxvJc SJkfcQnau4YyxBPpjmvzw8XfEYaj+0l4V1fXbp5dLtb7ZcSzk/u5HVkaR89C rMCc9Me1fO5lXnga0cNLSTdn1t320b+Z9nkOURzWhXxbvKNKN+VaOTd7ei07 XfQ/QzT/AI1eLvEoMmj+BbW2hP3V1TVmM+P9qOCCRVPsZM1h+M/2ivHfw3sJ dR174WNeaZEC0t1o+oO4jXuWV4Q3HrjHqR29v8NWtraaHZpZxpHb+UNoQYHS tKWJZUZJEDIQQVYcHr1radGco2jUaffT8rHl0sZQhUUqmGhKPVXmvx57r8fQ 8N+EH7ZPw4+MOp2+j219NoHiC4wIdN1lViNw3pFICUc+gyGPpXuhGM5GPr+N flP+3h8LdD+Ffi/VbvR9unwyXC3UMER2mBpFDlUx0wxOMdBivtn4R/EDxNqv 7Omi6jr4l/tyOytkvZZBh9xjG4t77sZ9ya+dqZxVwWCxOIxFPmdBSfu/asvw 9ei1sfS57k2DoSw1bL5NQrpNRlvG/n8/+C7no/iz4weHvCuprpZlfUNXdDIL K0KllT+87MQqjkck+3WqsHxF1zUIjLZ+Go5YyOMXMjfqIcfkTXzD8DVin/aC 1oa8fOm1DZLAZeQ3ll8j8NwOPr6V9vhAihQoVQMADgAc1lkeIxGc4CGNq17O d/dgklHyu05N923r2R8riqccLVdJRvbq76nlt18cG0W48nW/DV7YMehVg276 ZAB/MV2Hg/4g6B47imbR75Z54f8AXWkg2TQ9fvIece4yPetLX9BtPEWmzWV5 ErxyKQCw5Q84I9818JePdbufh58bPCf9hTsurS3Kh44j1hz+93AD7u3J/D6V 4+LzLMckzjD4OpP21Gve10lOLja+sUk17yaur7rzfVToUMVhp1IrllDzdn99 z7l8V+L9F8D6RLqevajDpligJMs564zkAdWP0rzjS/2h18W2iXvhfwnqGpaf Ku63u7+4is1uEOcPGmXkKnszIueo4r5t/wCCgVl4z1zwxp+pwabcXHhi6sVS e6tVZ/skgJLB1A+VWyDv6cYJGBnt/wBhn9oPwR4g8A2Hh291XT9H8X2MSW0l pdzLE1yEXarxM2A4IAO0cg5GMYNfuEstVLAU8ZTj7Vy31do+TUWnfu27eWtz 45YpzxEqM3yJbefzeh0vxB/bPb4XADxJ8O9WsDISsMn2pXhlOM4Egjxn2ODx Unwp/a7v/jJPnw94LsZLSNgt08uvt51tnOA8K2jNk847HB+biu4/aP8AEHgK P4Wa9YeMNQsDBdWzpbWrSK9xLORmIRIMsX3bSCBxXxP+xn8MfGmk/Ha78VW2 m32haO9u1qlrdKUmnVnVt0idVUbeNwByemOa6fZ4CeVyxE6ShVTstZWl6Jy6 dd0vwM+bELFqmp80Ldlp66H29+0TekfCO9k2NEZJIwVIII+8e4HpXxT/AME8 YRN8X/GspA3CW35x7ymvtH9p/K/Ca8yOfPXp/uyV8Zf8E5xj4reN/wDrrb/+ 1q/LJ65vH/D/AJnkTd8/j/g/zP0O8WeLtH8D6PNquu38Om2MYOZZj168AdWP 0rynR/2jrvx3Gtz4N8IveaZLkwX+tXv2QXC9njijjlkKnszBQRyK+c/+Ckus 6mLkaOZZYreeyRrZASFZMt5mPfdjPsF9q9J/Zg13XPiF8IdOu/Beu6ZpRhjS 3vIotJWW8tpEUBoy8kxRfUZiIIIPQ11Rxcq+IqUVpy9Fa7+/Sx+0Vcnp4HLc PjaiUva63lzcsey9zW/dvTS1up13jf8AaJ8efDewk1LWfhd9v0uLJludJ1Fy Ih6sJIQR9cYHrW78C/2sPAXx8vLnStHu5dL8SW0Zkm0XUgqz7BwXjKkrIoJH Q5HGQMiodV+AOpeNLWW38XeKNY120nGJbS91J0hYc8GG2WGI/RlNWvh/+yp4 A+G2pLqWj6PDaX6nImt4UiPfjKjJ/E1006eJVXmc/c7Ozf3pL9Ty8TiMslhP Zwo/vr/FFtRt5qTlfrqlE9Emv/ESWyOmjWrzGBnaP7ZgLKH4TO3kFcnd2OAR jJHXIAEXHTFZ5GOo/P8AGtCP/Vr9B1r0D5wy7i3juYJYZo1khkUo8ci5VlOQ QQeua+O/jZ/wTs0DxVc3Op+BrweGrmZi76bKnmWZJJztXgpn0BwOwFfZBGM5 H+eaCMZyPz/Gu7CY7E4GfPhpuL8uvqtn8znrYeliI8tWNz4A8F6b+1R+znGm l2VpaeMfD0A2xWN5N58cajP+rZtjoOMBQ+0eletaF+1z4/AWPX/gdqtvMOGe w1a3ZfyfH/oRr6lIxnI/zzTWiQj5kBHbI+vtXZWzP6y+avQhJ97OL+fLKKf3 GMML7LSE5Jeqf5pniVn+0PrWqoDH8K9ajYjj7Vqdio/SRj+leIftLeCfin+0 MkMWl+FtK0K3WEQlZ7uW5lPzM2flgVR16ZP1r7d2KpJ2BevQY9aUjHUfn+NZ YfMZ4Sp7XDwjGXf3n+cmvwKqYaNaPJVk2vl+iR82/sU/AzxF8CvAP9jeIBG1 wJZZfNiG0He7MAAeeM4qr+0V+wz4Y+M9/d65pU58N+IrklriSJA1vct/ekj4 +b/aUjPfNfThGM5H+eaCMZyPz/GvHxMI4xt11zXd/mexgcbicsmqmDm4NK2n bs+jXk7nyL8KtD/aL+BGmxeHZrbQvHvhu1G22N7PNBcwoOAqyoj5UejBiMYB x09VuPHHxa1W0Mdn4T0DQ7hhjzprq6vih9fL8iEH8Xr2UjGcj/PNBGOo/P8A GsY0FFcqk7ev67/idNXMJVpurOnByfXlt+C938D5FtP2Mr/xz45Xxb8QtYn8 QaosvnK14qxwxP2McCZAIxgbi2MDGMcfUeleFtO0bQ/7Jht1NkUKNG4yHBBB zxWuRjOR/nmgjGcj8/xrSFKFOPJFaf1v3OTE4qti5+0ryu9vRLZJLRJdEtD5 y+IX7MmoNqaat4T1BYpoX82GC54eJhnGyQcj8c11Phrxv8T9Kt1s/EHhG0v5 IwE+2W9y8Zf3YCNhn6Yr2QjGcj/PNGMdsf5NeNQyXCYObng06V91F+7/AOAu 8fuQ54qpVSVX3rd9/v3PLdb13x/r9k9tpem2+jNKpUzhHnkXr0LiNR9cHFcf 8OP2VrTQ/Ek3iTxDcyalrEx+eWdxJI3OdpOAqrkD5VAHAzmvoIjGcj8/xqrq trNeaZeW9vObS4mhkjiuAMmJirANjuQefwrtpZdh44hYmXvVNuaTu0vLovPl Sv1uZSrTceRaLsuv+fzOC+Inxv8Ah/8ADlF07XtWha6kbyI9KtIWubiRufkE aA/N7HFeL6nbeAfGE015p3wb1aO7kDbL2b+z7ORWI4YK8pcEdeV6ivlvxV4d +IXwX+PMPinxl4PvdZsLbzLZm01WlheFuC8TgEqeP4gCQSD1zX2Z4I/bI+DN 1pkSR39z4ccKA1tqGkzRup9CURlP51+g18tlhZRlgIe2Vr8ybevpBpq3nc+f p4r2yaxEuR9mrfi9/kfFfi/4afF7wJ46t/GNvoF7ejTZG+zuGF2FjKlSGRcH lSc7OnYivpj9nf8Abn8Ga9fWPhXxLoi+CNcuZFtorqP57K4mPARmIDxMx4Ab IzxuBxXtf/DTvw6v4m/s7Ub/AF0kcRabo15OW68f6rb+ZFfKXxW+BOpftH/G Wy1+w8Jf8IfoUDws8MhQ3t80b7t8ixkrCDwDli2FHGenZVxcMwhN5vRUJqPu yXuyv0XK9/0/ExhReGlFYOd03qt1636H1r+0L4M8TeP/AAGdL8MS6dDM0nmy PfI7kgBgAoXjueSe3T0+X/2d/wBm34t/Anxfqerw2Wi366htMy3AlABUtjG0 5/iPFfbnhnTLjR9CtLW7lM08cYDsT3xWoRjOR+f41+bywlKVX2/2u9zvlgKE sR9as+e1r3e35HmnxN+DmifHrwLFpPjHTjFdRgvDdW52S2spHLRtyQD0IOQc cjjj5BX9jD4z/AzxTJrfwv8AFsEjHjccwtIvZZU2ukg68Mv5V+hJGM5H+eaC MZyPz/GprYKhXkqk4+8uq0f3o+uwOd4/L6Tw9Gpem94ySlH7pJr1tufJ/hz4 lftQ2yJa6t4O8IXkgABu3W7Rj7kIME/QCvafh9d/EPUpPtPi02MKn7tpplkb aJfXc8skjye2BH+NejkYzkY/yaCMZyPz/GtoUVD7Tfq2cdfGyr/8u4Rv/LFL /hvkJg45GD/+utGP/Vr9BWeRjOR/nmtCP/Vr9B1roPOM4jGeMfX8aUjGeP8A PNXfs0f939aPs0f939aAKJGM8Y+v40pGM8f55q79mj/u/rR9mj/u/rQBRIxn jH1/GlIxnj/PNXfs0f8Ad/Wj7NH/AHf1oAokYzxj6/jSkYzx/nmrv2aP+7+t H2aP+7+tAFEjGeMfX8aUjGeP881d+zR/3f1o+zR/3f1oAokYzxj6/jSkYzx/ nmrv2aP+7+tH2aP+7+tAFEjGeMfX8aUjGeP881d+zR/3f1o+zR/3f1oAokYz xj6/jSkYzx/nmrv2aP8Au/rR9mj/ALv60AZl3ZQXsRjuII5oz/DKgYd/UVhT fDrwzO7O+iWu49wm319K7D7NH/d/Wj7NH/d/WgDlYfA2g2xBTS4BjpuBbHX1 rYgtYbOPZBCkCdlRQo7+grS+zR/3f1o+zR/3f1oAokYzxj6/jSkYzx/nmrv2 aP8Au/rR9mj/ALv60AUSMZ4x9fxpSMZ4/wA81d+zR/3f1o+zR/3f1oAokYzx j6/jSkYzx/nmrv2aP+7+tH2aP+7+tAFEjGeMfX8a0Y/9Wv0FM+zR/wB39akA AAA6CgD/2Q== ------=_NextPart_001_00AA_01C2A9A6.210A6442-- ------=_NextPart_000_00A9_01C2A9A6.210A6442 Content-Type: application/octet-stream; name="Google PROMO.pdf" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="Google PROMO.pdf" JVBERi0xLjUNJeLjz9MNCjIzIDAgb2JqDTw8L0xpbmVhcml6ZWQgMS9MIDIz MjQzMy9PIDI1L0UgMTgyNzczL04gMi9UIDIzMjEwMS9IIFsgNDk2IDE5OV0+ Pg1lbmRvYmoNICAgICAgICAgICAgICAgDQo0MCAwIG9iag08PC9EZWNvZGVQ YXJtczw8L0NvbHVtbnMgNS9QcmVkaWN0b3IgMTI+Pi9GaWx0ZXIvRmxhdGVE ZWNvZGUvSURbPDQ0RjREMTcwOEQ0MjFGNDc5MDAyM0VGQTBFOTFBRDIxPjww MjQ3RTFBNUYyNjU3QTQzQTEzOTFFNkQ5RTI2NDY2RT5dL0luZGV4WzIzIDMz XS9JbmZvIDIyIDAgUi9MZW5ndGggOTAvUHJldiAyMzIxMDIvUm9vdCAyNCAw IFIvU2l6ZSA1Ni9UeXBlL1hSZWYvV1sxIDMgMV0+PnN0cmVhbQ0KaN5iYmRg EGBgYmBgWg4iGb3AZCOIZOYHkSzMYJIHTMqByTKwbAqYPRXM5gOTd4Ako9FB ELvDHsSumg5iByQDyX8RQBJo1zKQCNAGqpH/GRivfQYIMAD+kg01DQplbmRz dHJlYW0NZW5kb2JqDXN0YXJ0eHJlZg0KMA0KJSVFT0YNCiAgICAgICAgICAN CjU1IDAgb2JqDTw8L0ZpbHRlci9GbGF0ZURlY29kZS9JIDExOC9MZW5ndGgg MTE4L1MgNTg+PnN0cmVhbQ0KaN5iYGBgY2BgsmJgYWDY2M8gxIAAQgzMQFEW Bo4JrZEODAxTGBjkVx/g6GDuaADzgYCdgbm6GUjzA7EASIBRhUGQQa+h6kD0 A70G8QucHiwNTIUMXxny1IxXJG4+PdPij2MD1HQuBubO+yAtQHwMIMAAPpkY rQ0KZW5kc3RyZWFtDWVuZG9iag0yNCAwIG9iag08PC9MYW5nKGVuLVVTKS9N ZXRhZGF0YSA4IDAgUi9QYWdlcyAyMSAwIFIvVHlwZS9DYXRhbG9nPj4NZW5k b2JqDTI1IDAgb2JqDTw8L0NvbnRlbnRzWzI3IDAgUiAyOCAwIFIgMjkgMCBS IDMwIDAgUiAzMSAwIFIgMzIgMCBSIDMzIDAgUiAzNCAwIFJdL0Nyb3BCb3hb MCAwIDYxMiA3OTJdL0dyb3VwPDwvQ1MvRGV2aWNlUkdCL1MvVHJhbnNwYXJl bmN5L1R5cGUvR3JvdXA+Pi9NZWRpYUJveFswIDAgNjEyIDc5Ml0vUGFyZW50 IDIxIDAgUi9SZXNvdXJjZXM8PC9FeHRHU3RhdGU8PC9HUzQgNDEgMCBSL0dT OCA0MiAwIFI+Pi9Gb250PDwvRjEgNDUgMCBSL0YyIDQ4IDAgUi9GMyA1MSAw IFIvRjQgNTQgMCBSPj4vUHJvY1NldFsvUERGL1RleHQvSW1hZ2VCL0ltYWdl Qy9JbWFnZUldL1hPYmplY3Q8PC9JbWFnZTE1IDM5IDAgUj4+Pj4vUm90YXRl IDAvVGFicy9TL1R5cGUvUGFnZT4+DWVuZG9iag0yNiAwIG9iag08PC9GaWx0 ZXIvRmxhdGVEZWNvZGUvRmlyc3QgMTAxL0xlbmd0aCA2ODYvTiAxNC9UeXBl L09ialN0bT4+c3RyZWFtDQpo3qxV207bQBD9lZH62MLOXm1LKFISkrYS8ACo VEI8LMEKloyDHNPSv+/MOk6cEIKTVquJd+eycz0bIwHBKDD0qyEyYAyohM6W PhEYRwyiCFxMzBikRAsmAamcAosgLcZgJcgoScAqkInTYDUohfSlu5RGODkR g3NxMSuffC6u/zynYvRafb2qfJWKiQc8tkh2vd4HejJo9OeTtKggsij6v6Y3 2UP1SI6lGPrnb2k2faxFp2mtdqToMM79dA5aifGsqAaD2evtkaXwWEaJUOpk cReE4yxPFWhLRbkMjAv/lIr+YHg6Gn0e+jy7L7PAv6ldGUTxvSL+pF9M8xRQ nPvXOiYZGS2uqvTpB4VXZ8OGHFiZPVezUvxcxEth9Hq3Srk7LoCfp6y36XRU TGYPWTEVN1nRL+bZ8jzOynk1fPRlk+DKA7eUEznzK42Q0FiKq5f7imO6Ll/S ENwyQhHin/MkkHG75ol2q5prp9o1V3Gr5nJrzSWNEMtAIiJbrNXcba15v8x8 /knhhS/L2e/dpT9LPVeEZrLVBXK66AIF36ULMcXRLEuDj6AiHYg5LA9n/hIZ 6zpRo1/fy5xYq3B/IEJcIN6jBKfjcK4tmMsWLtaBG6QMyYVWY9Xso8gsY2+v ZTwS1+Jq9twfJpbzl/29yYNyZ/nSjvbsN9y5oP+92M/q5NBsw8nGoBwGF7cO F+mSBV5UF7xEB+MF4214UdIE2Xa8RB3w8qUGyC7YHCXH0RI5SrWQQ+73Rc46 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 KWjc90nGYV0jHzSq/LNky1HsedcdcWv/Jy6UtN6Cjf+4YzjXdK0un4onc3Su WZfMQ3Ub9dA0k8g9axJ4vRX1LrqqbpixYS3g6Aa1nJ2SDASYMTTQrzzIXgZI nt1alGZ3t5GE9QrKow8whNRbWkdao0XqNF7KjeWPELBOjIuRNyFYTBzb1Jp4 h5g7trrUa43w3csZz/defBk4u6yKd3prUCBdl3IJolbWBLmt6oAQali8+m16 gAavFCcbzpiB4BKb5wkbI8JecOzR5oFyPVDBRWv1DEN2jHP/i30z0kgWcSGa eIGidPSeINaZfgaZCTyOfMDA+OLAjTS1qyV+3Z9qN45rcjr7QcVNrjK3za0X 1qNDV+sQgXMuQGTX+5nWrXrIcfMMCHhhM4XefoqJJTrtnuLAPLVQMSCKnLDH l85O9thSzj3ycMXVed8Y7nmEZD840qCIu2n1Q+F8h713zTsHEdQF1xpfrTjc C9w3fK3x8MTo87Ihzz8BBgANzZB4DQplbmRzdHJlYW0NZW5kb2JqDTI5IDAg b2JqDTw8L0ZpbHRlci9GbGF0ZURlY29kZS9MZW5ndGggOTg0Pj5zdHJlYW0N CkiJXFWxjlw3DOwX2H94ZZKClkRSotoAtgG32S5IZcBO48r/D3hmdD7vGQfc QnoSOZwZUjePbqOuaN1mXO5pvV++02JdPso2NmubX5/vt//vty9/3W+e3QpX +rAR1zds+La9rxhhPXSrYeXTml/ep40rYtkejOF9mXNjW0t8LYu4Ipt15Ovb cmIFSFuH3W04Dk99RpDWserm8/LZbJ40Q+gIS5HT8BWHNkMFf9wH9mKGuf+M i2pjpjnieijSnBZdFCzknMti6jDSTmxkWuJwAiOzIAJWq1tg5d1W6fBqxB4O cChvbgKPgTugYhZrDvCDPEIcBhQAw6/RlMbLnCRO20tpXlCgTufnkEAsssT4 QhpAawjUodqJ69Kjo15+HbZxszuRvRXvSdRy5mXCJU3XsEoR2HFrDnJOBpFW MQBuJasTRZvKB+4EEkIukoLiF+tiRNB5Dg7RM0UBS66tg0XitwVWoHQcehCH Za1la6mMxOcKqkwZOuDtRiQ8DDskNuBVOndCfq7AOFcu9DVtzp+HJxCiZjDj uURJdZUKMhl5FWvR4TxmWbLSghfphqU8DDlk0H30r6SYNCEqc4ANriATV08U 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 UC71RK6rZ3RSraQaDRAFyguGAfpeUDnl4PS0REukkwiNrD4owbraEmdtYL/W XIzFGba19DwbhKoXuNI2ND2ScxytNrrRrtL4KDgQrMEoabsw9FPXCIdjzsee b1mTztU8aXNiJqcS6Oev/PA0aDioTTDbofzAC1QdjNIlz6eExecBcy2m7NgD 51asbcnif+yx3p6nYKtoRPlkoaJgyHKsKfipzzb3sVdNwfJH1VFhneUuUVyr XAqFXf3GG10PmI5Lgs8nSoWBHToWj/X7gdYNb214W6a7Qi5Gkoi8SCVXttyy MI6V77CXjmZO9qq+96onbmuMDOM6gx8ysinxJYIlesqjV9cE4ag3XUxGQoM5 7y6VPohvlTrtdLZzTvcvrs2dvehuPA621hdqoyGVc9yeRKN+l0mtwheG3MUz 7Eyxa0zbOs/pZo9oFgaeCpOhZrf0jXza8n/YIFXJosV+Rx5523ibHQtjuNgg c8lfbnW9RunNwd4S0/XmM9Wc9aayzlEddd0B7Qztflvl5fS6UVOHee0k7DUN LgS6H1T6ve5ypfnylJNxxZGrfSU8X85isZJ8l3C9e2NmJrftK6Z8S27rtoM1 +Ipi940rnM7O7uXy1lHuUbyhtR+qhdP6fgybqniAhT8CDACzPdbkDQplbmRz dHJlYW0NZW5kb2JqDTMyIDAgb2JqDTw8L0ZpbHRlci9GbGF0ZURlY29kZS9M ZW5ndGggODQ3Pj5zdHJlYW0NCkiJjFXBbtswDL0H6D/waAGNYNmOE2OndWg7 7NAVaG7tDo5jN0LduLOVZtnv7EdHUpITdzU6FFUkmSKfHh+pyX0wFT9g+e1s crk8m1zgv4IQ/xQslFykCSRRIrMMls9nk/vgWcRBLqZxoGuRBHAppklQl4Wh rbbZ0lIXMOJQJQs5H/r7LhbBlg7XGv3xrKQB7sjVXqjIrnl4oaEzeIQhPPFm 92kkWpQoGc2G4caQRUkiQzW0PQaHNWJreLbCWdnj5dmrtdlrsjcbMZ0FcGjw 645JgZdWj0SNZ5lcxMOov9nbOdCIXlLrBb0T3zUUDIN5MhgwxKkzsSgMLt8g hZwgFUYj0DQAzYcHCEfgzSMZRph/paTy8DgFzL6hdLv5Izr28XEk2HDtZ421 IM5KwHVub5AGaz6hTYcJhVvKd9us6YdhFXQ700k2+kzbgHYXYhqhh9RS8ARf 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 LYsyX+gWIruyqrSTsgIOLJF783voZfT3aPq/52tpJtceNE9cVsCcGOl9mF8z Mwh0Mx14rjl2f5wNOBhfxnbkVSahZot1+sVhSM4RiUHQDdV2895AgaqKuG8A BFwg+Vd7h2GWwBQ5M3QOgDBkKrV1W0wbJtAaWpybvNTHQ5ymcdGnsck3MIM3 zBUyS5nkl8HrcpBJJuMLB3AasvhV3UffG4QsNB8gbZxAY8MfiBLupRRGme9N r0gFLuGGUuhW4o2V6EfUV2QOjoff1rNlzhVcQeSX75H/AgwAa+CG2Q0KZW5k c3RyZWFtDWVuZG9iag0zNSAwIG9iag08PC9GaWx0ZXIvRmxhdGVEZWNvZGUv TGVuZ3RoIDc4NDQyL0xlbmd0aDEgMTczNDcyPj5zdHJlYW0NCnic7H0HfFRV 2v45904vmZkkkzZJ5oZJQiCkkFASQBhIo7cwmIBCelFKTKEJiqKgARTXrqjo 2rFMBtTYG/ZeVnftrK6rq9hWXUUg/+fed04IrPrf/b7dz/X75pw893nOe8o9 5z1lDj8zkXHGmBsPHZtdWjmlYvu5W8qZ1L2HsaS3yiaVzssb6riZsR3zGOOP l02aXnJZS7mdsSvTGZPyK0rLyv/86NeQG19lTP6sYvasymlDx0iMXZPM+Pbu isrApHPGTH2ESeNvZGzysFmVeQXfv/U7F9r6Pd5aU7+0tm1MSC1fYEIje+pX dCrBy/e8zFjtd4zpk5vampd+++0MG2MjnmXMnNRc29HGkpkP749FfWfzktVN pVFd7zPWjLR1VEtjbcPnLulqtH8c8ke1wGC/1SYjfQHS6S1LO1eN/tz4Bt5V xFjeiyc2ti/jg/hGxrZtR37CkuX1tUm3JDzMWPt0xlJnLq1d1ZZWmP4c6vci X1lWu7Qx5ZaTTkP53YzZx7ct7+js8zDUv+JrNb+tvbHtxNulQ4wd8xFe52Sq b/VvDWkbnJuy2DHuG5aIYSLc+8naZ1V+3r5o3w/7D242f2oahaSZSYwC6hnY Icb3WHb8sH//DvOnWksDgukR1eLIZLOYno2DlpiT5bFGxlzbtPdyJuuy+Tbk mvSX6gvRZCqx/CLbKDETkxx6SZJ0sqR7j0l9fnZLH72XsRmVisL8jKUUUx+M V0qZCuNXqXnyXfoodaRoPepwb/gL7P98MLzObvml+/C/Jega2dW/dB/+mWAw /Hv6K+/7dfnh3xF0I1jNL92HSPjvB+lpdukv3YdfQ5D+xCb/V+rxb9mSf3Vf IiESIiESIuG/HqTLueUn82rYvv/JvvxagjySbf6l+xAJkRAJkRAJv66gW8rO +aX7EAmREAmREAmREAmREAmREAmREAn/e0Lk35mREAmREAmREAmREAmREAmR 8CsOchjJ4W8brEEKSmpiOrYI6WjmhEX9joKdDWIzWANrZztSivv6tNJ2phxh 433fMNb3N3YnT+qr/2RTuM2oI98oT5UvZgb+qZb68uhvOWjfa6DvREjs5wMf 0N6/I5T+M4V50s/kbfnvduV/OMj/0tb+rSvJX9GweNHxxy1cUF0VmFc5d87s WTNnTJ82dcrkivKy0pJJE/0Txh8zbuyY4qLRo0bm5eYMy8rMSPcN8ibEupwO u9ViNhkNep0scTaszFdeowQza4K6TN/kyTlq2lcLQ+0AQ01Qgan8yDJBpUYr phxZ0o+STUeV9FNJf39J7lTGsXE5w5QynxJ8rtSn9PIFc6qgt5b6qpXgPk3P 0LQuU0vYkUhLQw2lLKGlVAnyGqUsWL6ipbusphTt9VgtJb6SRkvOMNZjsUJa oYJZvrYenjWea0LKKhvTIzGTXX1tUM4oq20Izp5TVVbqSUur1mysRGsraCgJ GrW2lFa1z2yz0jPsoe4tvU5WV5Nta/A11B5XFZRrUalbLuvu3hR0ZQeH+EqD Q9Z8kIAhNwaH+UrLgtk+NDZtbv8LeFCf4fQp3d8wdN6379MjLbVhiyHD+Q1T pTrEfjchX2iGvqGHGF9amtqXzb1+VodEcP2cKkorrM4TYv687OqgVKPmPCRy 3AE1Z73I6a9e40tTp6qsJvyzoiUhuL5OyRkG72s/GfhBvhKUM2vq6ltUrm3s 9pWWkt/mVQX9pRD+2vBYy3ry81C+tgaDaFXdMKcqmOdrC8b6JlEBGBR1Dlor q7Qq4WrB2JIgq6kP1wrmlZWq/VLKumtKqYNqW745VXezwr73ekYonl2FbASr VvsRjCvBpGSWdVc1NAW9NZ4GrM8mpcqTFvRXw33VvqrGanWWfM7gkPfwujTt jVotjO2o0qKwOnJjhkmpkjxytTpbMCjlePgmjUOGE9OlJdUZnTROqeIeJorh LeESqjqiHSTkjJLJapasVi2Z7EmrTqPwM13yhPukzwiaBrTlhKG/T/Sen+wa lVY7NEQpaywd0MEjGtWHOxhu7cf7Kam+CL8YNUzqdE4WWXIGdi5sEprRTOos JihBNlup8jX6qn1YQ/7ZVerYVF9r8zut0jdtzoIqbbbDq2TeESnKL6JUkKUh WySkEqzB8myPmFYtXaGl+5OTj8qeIrKVbpNvWmW32rgv3CBTsIMwaEPmlNrN RdEjsDXLcbr5ymt9ilMp767t7Vtf193j93e3ldW0jFHb8E1p6PZVVo3zaH2d W7XOs0Z9VTSbxqfNm5QzDGfPpB4fP2tOj5+fVbmg6m4nY8pZ86pCEpdKaiZV 96Qjr+puhTG/ZpVUq2pUE4qaUFuai4RJK++528/Yei1Xpxm0dH0vZ5rNJGyc 1fdKZHMKmwSbjmx+zaYGTFJCC1yM47ZMaVCnZ211S3dNtbq5WBymEj88yH3j WVDyje/hksEWtPgaJwWtvkmqfYJqn0B2g2o3YmHwOA7nqGdSd40P5xQWVBXz cFqKstqk0tvXN68q7TnPvuo0LLXjgAVVQXM2zn59xlSUq1BRA3NFcH19rdoP FqhS6xozptRXY9mKBlFkStCMFszhFlCiXKujLkdUqsfcYAK1+uuRCK6vDlZn qy+taq3WlrMzyCb7xmDaqU19pvqivOruaF+BtjexFSwZm1Qyo2+ssoosHiTx smpyktGGntf7kFVfo8DbOlZfiaVOZ6nFQ5ZGHIm6zEYNFk84k6nDkjOsdkvQ nIsG8aNqa666JfUZxupq6ryW2hQugHc7g1b0KHOAK8MV4B1kTVH7gp9N6Kpa 9GG1mTm9bK5vFU4WtdNaS0ZkB+0ZU2px+FN9Kyy+IlHZpJ4R1nAbe8hqVEdu g9/ljHm9fTf4VqcNCDnDfOqHg7owmeduLGxW3X20IbgwO2eY6WirXTN3d5vs P16B/GWy97NqVMrwqcFYyCwrvdIZu80JfCrEBiFOF+I0IdYLcaoQpwixToi1 QpwsxBohVguxSoiVQqwQokuITiE6hDhJiDYhlguxTIilQiwR4kQhThCiVYgW IZqFaBKiUYgGIeqFqBOiVogaIRYLsUiI44U4ToiFQiwQolqIKiGOFWK+EAEh 5glRKcRcIeYIMVuIWULMFGKGENOFmCbEVCGmCDFZiAohyoUoE6JUiBIhJgkx UQi/EBOEGC/EMUKME2KsEGOEKBaiSIjRQowSYqQQI4QoFKJAiOFC5AuRJ0Su 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 gEnARMAPTADGA8cA44CxwBigGCgCRgOjgJHACKAQKACGA/lAHpAL5ADDgGxg KDAEyAIGA5lABpAO+IBBQBqgAF4gFUgBkgEPkAQkAglAPBAHuIFYIAaIBlyA E3AAUYAdsAFWwAKYARNgBAyAHtBN7MNTBiSAA4w1cNj4IeAgcAD4AdgPfA98 B/wN+Bb4Bvga+CvwFfAl8AXwOfAZsA/4FPgE+AvwMfAR8GfgQ+BPwAfA+8Af gb3Ae8C7wDvA28BbwJvAG8AfgN8DrwOvAb8DXgVeAV4GXgJeBF4AngeeA54F ngGeBp4CngSeAB4HHgP2AI8CjwAPAw8BDwIPAPcD9wH3AvcAdwO9wF3AncAd wG5gFxACeoAgcDtwG3ArcAuwE7gZuAm4EbgBuB64DrgW+C1wDXA1sAO4CrgS uALYDlwOXAZcClwCXAxcBFwIXACcD/wGOA/YBpwLnANsBbYAm4Fu4GzgLGAT sBE4kzVMXM+x/zn2P8f+59j/HPufY/9z7H+O/c+x/zn2P8f+59j/HPufY/9z 7H+O/c+x/zn2P28HcAZwnAEcZwDHGcBxBnCcARxnAMcZwHEGcJwBHGcAxxnA cQZwnAEcZwDHGcBxBnCcARxnAMcZwHEGcJwBHGcAxxnAcQZwnAEcZwDHGcBx BnCcARxnAMcZwLH/OfY/x/7n2Psce59j73PsfY69z7H3OfY+x97n2Psce/+X Pod/5aH6l+7ArzwkLF7EmPFKxg6df8RvUc9mJ7AOth5xI9vKzmcPsjdZHdsA dSnbwa5nN7Ege5g9xV7/V/5K+KHV+qXMJt/FDCyGsb79ffsOXQ/06qMGWM5H KkanHLb0Ofs+O8r22aHz+5yHeg3RzKLVtUsvw/pXfrBvPz5fke4bpaalTdAO rcaXxisP3X7ohqN8MIctYAvZcex4VsNqMf4G1sJa4ZkT2RK2lC3TUsuQ14xn E1KLUQpniaYPl1rO2oB21sm62ArENuiOcErNO0lLd7GViKvYaraGnczWsnXh 50rNshY5a7T0KuAUdipm5jR2uqYEk2UDO4OdiVnbxM5iZ/9s6ux+1c02sy2Y 53PYuT+ptx6R2oZ4HvsN1sMF7EJ2EbsE6+Jytv0o68Wa/TJ2JbsKa0bNuxCW qzSl5t7HHmd3sNvY7exOzZf18Bp5RPilSfNhG3ywFiPcMKDH5L+V/d46BWNX x9YdHukq2E8fUGNF2I9qyQ0oSa3QPKitrDvKE9swBtKHR0SpC7XxH7YO9MrP WYU/tg/wzOVaSlVHW39KX8SuwA68Gk/Vq6q6BprUVZoeaL+yv+wOLf1bdi27 DnNxg6YEk+V66BvYjdjbN7Od7BbEw3qgIr6N3arNXJD1sBDbxXZjJu9kd7Fe zf5zeT9m3xW2h/otd7N72L1YIQ+wh3DSPIIoLPfD9mDYukezUfoR9ijSailK Pc6ewAn1NHuGPcteYI8h9bz2fBKpF9nL7BX2OrdDvcQ+xvMge1H/AYtiExnT 3wM/b2eLEPU4lTrkl3GKyMzIitkMNpMtvI/Z8XEfx8bwO+5wl5aacowP4KNc YgouAybGeYnfoZPsdyUlTfDdNdKwVXZN6eU5uycYt+KaO+HgOwefzzv4zr7o 4rx9PO/tve/sdX75vKs4r3Dvq3uH53NXmktDbJRkNMYafINypZGDM0cVFhaM l0aOyPQNipI024hRo8fLhQWpkhwrLOMlNc3llw8skGcdNEin+CbML9SnJjli 7Qa9lJwQnTMuw1m5MGNcbopRNhpkvcmYNXrSoGlLyga9YXSluONSok2m6JQ4 d4rLePBNfdT+r/RRP5TolvxwgWwYe9yEdPkSi0nSGQy9qQmJQ8emTZnviHHq rDFOV5zJGO2yZZUed3CjO1ltI9ntprYOzmCc3dK335AND45jt/idNePbxkv2 /Pz4vDxLbkJCUm/fR7ucfAb4i12OMNs1/naXTeOPdllVllz+1PThNpslAcUt Tof6QEGLBaUsCShiuQf/BmF9D/kTkWDpo+ZYE+LteQnDcw3erDneQHRAH2AT EKLji12FE3jeq9l7tY/AAlehs1+5io/JKyx0FQ7PPz5DONbl41GyqgZzn6vf OEKdk1QpnhdyTIQq3YZsU6w3MT4txiQdKpSt7pRYd2qsVTpUwU2xSmKCEmMc 5mlR8tMTzHylnm+0JnkzE5c6PDG2JJPNqNcbbSZd8w8XGC1GWWe0GOD4S/vt 1w9NtyVleQ4cK1+fOjTRao5JcWPBXc2YfACfe9HMywbdx2Lwj0TGkqRYv9mc 8H1Ug+d7fTObsG8C1hktLrXzvkGZWufT0GPjiFwYXOrakg9M6X5y6w+x6emx 3NX98IbSYFZg05LztjVtrB4mebc8u3FiSpp8bVpK2RkPnjJ3S/OYA58Nb7xY /bbd1X379Y3oQxGr2D3MnTM4oZf3+c2D7HmWnJxBIyxqysUGjWzIibPKKZkN KS3OFn2LmAh1GvYWRMPp0cXFzr0FruLi4fkDHW8w/H8dH+fWNxpjlPhEJdoo Hdqs82VhEZrlQ5dKxmglMdEbbcxMWOIdlgavD9HxAlti2pDkpsT0eKPVqNPh Ia88cIbNJhvMBnntgbP7rU8MUlSPHxwhPZk6NMmqDFL93bdf3o6xFjI/O+Zu ZpHcu4c7s10j1F8QyBzr6oXnHcnZrg/Hjo0v/lZpiA+PVNvrxZiEglf3Ypyv 7T08xsGDc2XfkYNTJ8atbv9UOT4+Lk4eMEfbTe6MZE+a2yLPd6TnTxzRrK2r tFgTJi2p5syF+Skjpw/35GSkOastxk/d+dP8F54zfmZBYowRg5PNUdavhpbm JR2a1T/IZ9JSMsubJ46YX1bgtKbl+7M+TkqU3vGNy048dFtinl/9tmVN3z55 O+5lmTj9Nvu9E8Zyq6dY3XnF6s4rdjrVB3ZjsboHi+/Fv9IZy+t7T93EeeHN nRfe3BrbwnarypLFb4lJK7cWD/boooaq/5kjYeqIXq7bFTVDPx2uw9qlVUIb 9NXwPi0euD1H0hqh8y8u3hU+B91ypnZaumNTJdV5o+XtRldyrHpAVVy6sH7L sVkFdectnrXBb4z1JmDtmK8vWVc6oWp0onvE/Ilpx/jLBydi98FNNtPKGfNn bOip67z3jIqyEslqtKub0m48WFZ57Li6tf7S0xuPiR5aMlzdDZfihnmD/DRW SP3utpE80xE+xxzhIYO/2O1w8umO8EHn6OXf+aOZPwZnlt+FhwIjS8K+yfCb s6dmOtzKFLfqCiwcdSPvwfg1L6g+4GEfqOM0DlhEYQ+4tU8Ig3SDZDCbTPEp 6e7E/JFjfKZoOowM0cnxcSlOY8bEMcUp9rT0FJtO5nJdXKrLbDabYnOnjz4Y NFlNOh0e8hkmqxlLyGraMKp0sEM2WSzmKI+6PiZLj0lrDC6WzkaygpA5ceS9 +CcyYzn8bL/T5V2aaJazgnEnFVxu65Q7wjNarM0oNn6xeiYZ/vFZHDVaWpOY 5opzGPJqx01aWJykTFw8YfjcLKMjKTY2yWk4K6siK32E12FLLchMn5IrfWCz 67CvJ+YNz5vVOq68Y1Z2ZibP1Zt0sqwz6Q9V5uYqI0p86eUj07JHqrO3RHqG v6T3sByWuWtQEsPcHOu3JVn2DD5pkMOd2ubuODwPX+6JLg6fqD8yAaPUY4nc r+MvSTqj3mR1uF2OZMUXp3dSZxN9vviEoZm+mKi0OKOO6152JUQZ9Qa9NSEr 5dCN6LZO7buUYEOo8GbFm3QmQ1Q8k7il71v+ln4Rc7MhLOoOfYZnhrMcHXv7 +cP9GSlnhv0Xc/T14H6j+vGcHG10cZPbl+zxuU1R5sQsr3dIAj41hni9WYlm 3mWyqfNuM8n32KJteoPNZfuhOC3bY7V6stPSchKt1sQczP2+vn38dt1irSfK fSxOamAKc0vFd1qdQ9GvVoZOOfcM/PRRjzx5xE/17UKjw+OO8zgN3GWISU/2 DMLBZY5LT0nOjDeb4zOTU9LjzHyk+gEp4yH12ZwWvd7qsB1QUgYnWK0Jg1NS shItlsQs9G2z3CRdpu8SXvJkVjgr4KXnCgZ6Kfxi41GWOLe0weCMj45OcBji LbFp8ThjzfzQpiNs+ZnyRuEm/oJQh4YfaXM6+/rYOdIL8rv6jySD6SGmrrNw mo1lRT05ieqvCPjyLSox38he6cw7cuOtcmqWqlI7XB36joEfl/sKnPsGjsEl hy8nsi/m7z4jYwpjxOVEftfoTHTHeKKMH3OzI87hjIsy87c4NzoTYHUYU2PK 45VEp+Ep+RVjtDsxeqolxmaW3tfjCMQhqJf8B++TcY2UdQYd9KP99teS3GjC dfAryR6d5DDobS679q/nq/8zIp/5q4jb/j1RMvwTcf0vHeX4/wNx239g/Pan o25KJEbi/5J4zhHxrf+cqB8UiZEYiT8Rh0ZiJEZiJEZiJEbiPxQvj8RIjMRI jMRIjMRIjMRIjMRI/PVF7b8nq3/rOxZPzgxacgtP6vtA/UUTaRATf5u8QXvK WukoLaVqiUXJOib+qn26HB3WugFl9CxBHhXWhgF2I1shzwxrExuq/a1xVZuZ Iu8Ja4u0o7+8lc2XPwhrGxuqGxPWdukSnSgTxZYYDvT/hfsCY0tYc2Y0XhbW EjOa/iL+lj2LNom/iK8bUEbPbGY5rA0D7EY21uwIaxNzG5eHtZk5zVPD2sJn 95e3smzzgrC2Mbf5zLC28+nmy/r/xvooy4fq/wVAZw77mTT5mTT5mTT5mbRu QBnyM2nDADv5mTT5mTT5mTT5mTT5mTT5mTT5mTT5+SamsAKWz4azQu2vyau/ Zd7OlrMOoIl1wlai/XY+/Y5+LSytUMtYLnImsiWICpsLWzNrQV6HlmoEN6L0 CjwbULIE9ZagTB1srSjRqpWrBZairQat7DKkOmBbpuVR/Vb0QAFqUa4VLaxG aiVUJ96laN8JqINegrKK1ucu1G7QvnPQrLWyPNxqJ0osDb9TLaFgjMu1dzZq 3y1QxzJFG2sTLLXa77y3a6NQNK7VRqm+l8ZRj5xhWstLNcsSrcVa+Ijs4i1L 0c4SzWNt4V4ug2Wp9lZqUx1n54AeqG9s08YivhNB3qa+q29aDg8o2rcBmjUv tGq//69+r6JTS6kj7uyfD/IZvUXR+r4sPK7lmm/rtJKHezxwRKrXVmn1aNQn Ip2rrYeBszlYa22p1sJqzQ9d4Zkf6G91xmj8jVr/1fHTvLRrq0FleqM61wra aOsfDfWxOVymA6k14dY7MQqaoRX9s1SrrZFaWJceMS6xmuvRk1rt/fXh9+dq K7ZZmys15+/3wJi/G/X88MppDa+xkWiliI36mZXeqb2zQVuJ6ltO7J8D4Zsf 23vN4XXd1l9aXbk048tQvlFbO9NRop5laT4dgjINWnsVWt3lWvudiG0YRx7i Si3manvqyPflhlvPg16trcBmrddtaGE1rKrHmrQRqyv1yFaFvUn7JlC7tl5E e9XaGGiVrNZmt0PrYae2jju0fUe1FW0M6h5o1GawVXtHozaHdVpd4a0yFsC4 J4brtg/Iof3ToPnk8J5YGf4GTctPvJfSatl6zGCX5sOG/jXWoOW3aStk9YB1 1aaNdFl4ZVFbjdpT3SlHj1vNpx2ZhVrqTKmroa7/TT/Wq2V/1/I/7qPDrYtT UQmfa51av+uPOF/+fuziNDm6X2MHeEAdCY2FTlnxOdHef2I3aGfWMu3sqv3J kZKfa4/wKe345eEnjYp0l7byurSaDdr+V0fT2N+OWnKJtmt+bob+Vfvi8J7I 03qj7gE6+XO1uWpjq25SCvKHFyozWuvbl3csb+pUSpa3ty1vr+1sXb4sV5m4 ZIkyt7W5pbNDmdvY0di+orEht6R2SWtde6vS2qHUKkuXNzS2L1M6apd1KMhv bVKa/h9zZwPeVHn//fskaZImaaHlrQWUBBB5syCgIMiLCgoFSwVxiJumtAUC bSltCi0IVIqIyhQVEV+myBwydejo5uZ0WQWGUF5EbGuljEIhtMbT0rImzZB5 ns85SUtBdv3Z/7qe53p6X5+T83Lfd+7f93u/nThnSqYro8C+zOVeYM/Nm+vO SLfnLM7LSnNlzc+1LyarOz2Tkllp9tTFOVnpObkJ9ilu+7z0FHdeTnquPSc9 JcPucvMdqbmD7bmZKbQgNSWbc7VIZl6G25VNlVl5mek55MxNd2sV5NqzcxbT brXZ1J6RsXiZfQENt7sys1NS3XZXlt2txkHLKGLPcGXxXYvn2ee65msVh77I nZ7vprBrUXqCPRzmzbn2zJSsAntqHsGH2u1ewPenL7PnpBBLjouwKZiSac/L Vr+GGudzJ9e1nOzuxQS0VA0pxb4sJScz9F2qzKkLUnJoWHpOwoz0+XkZKTlt Doxu/eqHEIdw7LcljLr9CtHdOSlp6ZkpOYvUCNTWXHZvPlpnq7dTFxN4lis9 N2FaXmr/lNwB9rR0+305ixe7F7jd2aOHDFm2bFlCZmu5BLIPcRdkL56fk5K9 oGBIqnve4ix3bjirej4vha9fpOZ7eHEekhTY83LT+XIapD62p+BAek6my+1O T7PPLdCaNWnWtLt4mqNd4E9aXsiJZQtcqQvaleXTlZWakZdGURRLc+VmZ/AF qlbZOS4ypJIrPcudYG/97sVZGNnfNcCenjlXLXS5qqzWzNdskZZd7YrYkuvO caWG+kvbt6vdpLWuMVoD+rv4FrqsOiZy1I6dtnhZVsbilPZfSptTQi3FeMJF Y/Ukz52d50b2pa7UdDXPgvSM7KsCuh4vNCeGpKXPS6HzJ6TkZue3vTcJJU6s E9f6k8jBzlt0EiZFER3C//Ut3sCk/nwOFqLtPebafxP1r9hsEnmkB683f1SU lr/wevN36KDl/+B683fsqOWvvN78MTFqfp3hevN36kT+idp/fczMu4+aXy0b of6Xw6TuvFVtEN31ieImcgzj/uir8o5rl7cLefuQN4Ecd6q1X5V3Tbu83cjb j7zDyHEX9xOvynuoXd548g4g723kmMT9pCvzav/Vsta8Pcg7mLx3kCOR+zOv ypvZLu8N5B1C3rHkmM79h9X+YjZLZsuePb/h79VXzRGS2WQ256/nL9+ol4yG U4Xqn1mSzAbtrFAU6vWSOWLr1q3mSMls/bzw88JtpE2k9aTICCmSGlqrMEjG iI9K1HKRkhQZriJUR6RaR6RFirSV8Pf2hLcnvKilDSSLUbKYDQaDe8PatWs3 uE0GyRSuptAi6SwRbfUUGgySxbiRP4tVskSVOEuc1Lr1BfsL9mdIa0lWo6T+ WzLXrMwq6aytlYVrs2q1WaMka4eSuJK4rf239t84eeNkNZwnzU+a15htJskW qeNv9L1r+Lt3tNkgmY3hCgttks5mLLyySptJrdIWLdk6nup5qmfjnUcHV2ZU ZuyfdujQ3g1fbNhj22OLMktRFj1/Y+bvUf/mj9GErDxVEvqL0umijCVtf6Kk JMIoRZkPqX/hXm8RH+s+EPrUgpwM0Xl+TvoikZSR4lb//fcbhe7u6TPtouPM GXfb1VHCXKH2eRMzRrfwlUSP6Sjiwlc6ZpUYEa/lCt3RU3+s6C66Cv2U5OTJ ou+M6ffbxdAHZ0y1q2NCy2Pgvb+T6KFd6Xnv7yx6hp9EiCjRRdwQvlJ/WehK q3qlZudmi8+0427tuF87HtGOZdrxuHY8tYjthzinHWXteEE7BrXjj+pRMmhH i3bsqC6bUlftOFA7jtOOM7TjPO24XDs+px23ZS7KXCR9rB092nGfdjyiHSu0 40nteE47NrTNNNd3lP6roxn99ZpOJs7VX1P+/7qnw9uo//VnNM6r77zqW9oa 8aLYJnaJ3eKYqBEXJLXfCa0vhpSQhfp7U2tfUv8rk0IaHfpcvy70+atguzL0 14ZtV1xLtktXXkdPvPI6ZuiV153+fOV1v55XXve/6vnAUVdej0gSkbp217fF tntuFNJ9c668nraDTwsjpL9IVn+jowzrhm6oLlms1r2j+0Zs1f9K/ytRZnAb 3hblEV8b10t6y0xLivSJ5SmrJO23dbRN0t1je8T2pq4gKi1qoe6vUaujNuj2 Ruuizbpj0S3RLbpvWa4DqjbGiqiPr5mOko5HnW2XfOF09BqpObp3W+pPGk2a SFqopS1Xp6ij0dui/9BxczhtbZfeU1OMuGayxCS3pWdiNrWlQCjF9rxGSiCN 6Pxau/ROKGlPrkqdd3Xe35aOdDlFOqemroZrpdiErrFd+3d7pl3apKXd10xH u11sTXGd47q3pYnhlHjNlKylh8KfV6bC8FHNt09LZW0pVPpkXGP8wPi0+Dfj d6jp6trjd14rhWqP/3N8TTg1X07qt8Rf1L6rUOWGaX1Gt6VpfWa0pbRwWkgq 7LOw7zDShJsSbprYZyHHhJt299t/c4WWmvvPIWUP6EcaPKBmQBBqBvw4cP+g N9U0oGbQZ4N8g3yDDYOjB3ce/BdSWcI4UnLCnCFvhJPn1sLh/YbXjXjx9hGk cSPjRs4ZmT9qVzh9NmrfqLLRA0mjRq8bc2KsUUsbx+7W0qVxt4/7IJw+HnuJ 6w/GNWpXjeN143XjPhg/eMJzEz67K2HSbNLJ+xaM3RjKzWdjKNeUcWq+KdMS eycOTRyXuGNqPy0lT12opfyp66a+wTF/ainp1LTl0wqnnbw/m7Q5yUmu5KQj SUemlnI8oZ6RapLkpIvTC7W0ffohLZ2cLsPJ6YFkw/QAz+XkOcknkmsecJNe nGEn3/bpgdCTGcunB2acndEwK/mhfbNn/yL2Fz1/0W++Yf6c+ZXzL7Z+LhhM 2pXVMat3dn72muyS7JpsOTuwxLBk2JKJS+YtyV6yfMn6JZuXfLDk4yV7lxzL yc55MWdHzoVckRubOzl3bu5nuRXuEe657jfyHspbn+fJa15qXDp46b1LP1h6 btnEZRfze+bfm+/Mz8l/I39nfmVB74KfF3xcUFlwcbltedflo5bfvTxt+fbl lSsGrpi44tEVW1a8t+LEisDjEx5f/vhnK40rJ6zMWfnRyn0rL63qvmrBqu2r 5NWjV+ev3lmY/B/mqo+vno+unG0Kl15O6jxSuPVyCs0g/2HsJV494q4cJ6Ge fs1Zp3XmaZeunDsK911O6uxQWHY5heYFdQ7t+F7cvm6bmIePj2tk1tTmYO2T +TYmmfl1S/S2jpujjrbNmeSNCfRJU8tGfRy95fLcGVKJ2XmiNv+GcvWO3taq nnpXnYu1vMfV51r+sILU+3HUWWbybZQ4rtV2lNZt5vO4li6vDr6rVoWJ7daB yyvBNrXdP5n93/vJ7G8Jz/nPaPO9Nstr9VA6eiLnW1pnQvzYEfaLuSk0/4Tm t7CPzInMgKpraW2zY6ujzHFxiYU1aonLHveZUVhTWENtaq5mniXH1/SZ8dM+ wTxY1m5GvcY8235e/emcGp6592m9KTSLTmudP9V5nTt8a6Ecv4M7M+KSbx+R dKSrIbSOaZ+sWd0udjlFr4ptXX1aV5XYnl0Nl1egUK9U1zYtt0HNQdndXWPV J+odNZd6P7Zn1NHWnhrXPbYnK2CsWl49D929vI62X0nVtmirZnjdbLdyxlLD 1evkpitWx6PhlbFza+t5fjH07er3T03ucipuIu25Qn1VNVVjnGo3Yls1Do1E Vc1QT+mTht6JqpuqEnHJnV/T/N6hetNuVI+O30msrStsWajWQjmusFAOJfUb 1M8+M1RX1LNQT1M/C+WbEvoOCxFa4foO01aldkld4UKrm7Y+/i+Ttqa2Sz/N oa207VJ4xW1LPy2hrrT/XdLW4utObSv2f0hXK6WmtnX8PyRtZb/upO02rjNd rY62R2mXfqqftndpl9R+H3L6v0s/rfl/bt31pZDO6t4lettYY2LvsZeijqu7 Hi1t1O4Y1Z2OdrUxsbe6Bwo/I7GDGqXumkJ31blfPVOTtjuare2s1D1U47hG bX/E7oiz3WM3aruTwrZdjJq2Ty9MOjG9UN3BaFfbw/uc0Pl2dkE16h11R6OW Swonbcfj1vZG5NWebleP8TvJvV3dTTFb9Es6oe278sMpWbvTT911aVfJSSfU eSn8jMTObSh7NXWHppZbp52RtH1atrafI6+2U2vbr01NHq/TFLmkavGAO6TE WKMWDy0OtXRqqVa3+k3rtLq0eq8ciT91tH0/uLkidCWMUolyXH+/8pl+luig ny1s+hylSe8RI4WOJ0e58mpnsn6WclZIHFuEjuMB/WzlKG/q7yuXxF7lkuQU naQUMUOaK+KlVOGQ0kSMtEjEkHMEOcfrM5S/CYl6zggDeW3kjSGvjbwWrT4v uRpEpPSo6MnzPjyfxfMbeN6Hum6iLgelX6c9J4WVs120N0b/OO1YqfyJ9o7W n1Fe0Z8VQ/VeMUxfKwbpv1O+0vt421VrP0rtNcLAmU4/+8cfaM0matoj8kUH kSg6wmgxQIyBNOUrkQ7zIFepFW6lWeTBUlgG+VAgbGK5ckysgMdhJayCIsqv hSdhHTwF6+FpeAaehQ3wibhb/AWCnP8IihggCZAgWYyRHoAZMBMeBJeYLu0T vYjYpX9I3Kl/RJj1j0GGWK9fLW7UPyHs+iJxo+Et5ZhhK7wNx8QAw9dQBuVQ Ad9AJXwLx6EKTsA/xICIjspXEaeUYxHfC1uEzHk9NCrHjBEi0TiAz+FigPF2 PjOUr4yZkAWLIU+pNS4FtDGijRFtjMsBbYwfijHGj+BP0CLGmAaKXqZB8JgY YHLCXFgCOVAAhfAEoJFpI7wAb8Hb4m7T+3zWQwM0QhNcgBZAQ3MqpEE65Ile kUKMiewseml99xz92qKdfYfrLaILvbaYXltMb+tHb7uL3raG3jaT3jaX3jaF 3jaB3O/QXxL0DynP6X+mLKcH3Ua/eZkanHqPsl1/hn7mFXr9Ofrgd+IRrZ+d JdcJtpmto+JRMaRd/ZOpfyn1T6L+keSeQ92bqPtPlBpO3Zup+3Xq+4z6HhLR 1HKeWs5TS0dquZlasqhlCLUMoZZB1HIzrTxJTf2pKY1ahlHDDi3SA5x9KOKo 42/U8Tfq6C89pvyFeoZQz2PUM4J6ZlLPeMmlfEldQ6Qtyp8p+Sn1GahvKS2b R52daFkRtT2rr1GaaV2pvo7R+p24Re8Lj9gYah1IrS5qHUmtk6i1LzX2p7av Kfk1I+9+opwlrOEZ5t/MJOrM8qooUmSxFp6EdfAUrIen4Rl4FjZAqRIUB+EQ HIYj8CUcha/gGHwNZVAOlfAPRREnoRpOwWmogTPKQXEWvHBBqRL/ZJw3gx8C 0AJBZrd/8fwi/ACX4N/wI21RFFkSIGmz4hn9HHrYz5Xz+kf5dCrnDccU2fA1 lEE5VMA3UAnfwnGoghPwD6hTgobvwAffgwz10ADnoRGa4AL8E5qBthh+BEU5 GBGrHDRNUIKmSZAIUyFJqTU9yOcsmMPzR+BReEyRTU6YC4t4toTPHHBzvgzy oYDrx/ks5PMJWMf5U4APpuf53MjnC/AS55vgZdgMr1D/W9zfxvk7nL/P+Yec fwp4ZMIjEx6Z8MhUpSimE4BHJjwy4ZHpFGVOQw3gkek7pcrkg++JRYZ65aip Ac7zrJG6m+ACNHONd6YAny1c45E5FdIgHb904jnRWVu59OI5+u4s+rC6ekVw 9TuuErmaQi/fq/9SDFL/v5mUgJhIz6yiZ1bRM6vomVX0zCp6ZhU9s4qeWUXP rKJnVpG7lp4WpKcF6WlBelqQnhakpwXpRTI9JkCPCdBjAvSYAN9XwvdV6X8h IvQpMJcelKqcoddU0Wuq6DVV9Joqek0VvaaKXlNFr6mi11TRa6roNVX0miqc DOBkACcDuFiFi1U4F8C1Klyrwq0ATgVwqgpXqnCjCtWDqB5E9SCqB1E9iKoy qsooGkDRAIoGULEKFQOoWIWKVahYpY3Y48KElncxks2svX9l7f2j/ihr7Ves Qqw2mr4+IvyKCE9r+j7OVRxXPdF3DTV8I2azTjpYJx2skw7WSQfrpIN10sE6 6WCddLBOOlgnHXzT7ayVfVkr+zJmyxizZYzZMsbsacasnzHrZ8z6GbN+xqyf 9TSWMetlzHoZs17GrJcxi99iKuvmCMbpacZpNeP0NOO0Wj9X9NOnQoZYyzra i3W0F+toD9ZOB2ung7XTwdrpYO10sHY6WDsdrJ0O1k4Ha6eDtdPB2ulgLHoZ i17GopexWMbY8zPmyhhzZYw5L2ucgzXOwfrmYH1zsK45GCte1jYHa1tfxoqX 9c1B/y+j/5fR/8vo/2X0/9P0/9P0fz/938/6F8v6F0v/99Lny+jzfvq8lzXQ wfrnYP1zsP451P6uXEDrC+zPnlOexIHJzOenmc/zcGIyTvyGpxvo7ZP0x9hJ lSk/6svFXM29KnIfJ1clK+Zzyiqu5lL2GGW/5u4Eyj5H2S8om0jZMso9LIzh cfQzcpaTs4ycidr+Su0z72o1pfN8PM+P8LyC52Oo6WmefkRNd1NTKTUN1fJ/ q+0TT2rHgLBIHUQvaQ5kQCYshmxYAjnghmdY6WOkEhHFt6yh9nzqOaDtjbaK bvpPxW36z/G/RvRh1Z7JLjGWlbs7u8Q++jpmhu9ogY9734vbWM9zlM8p0ZU9 ZW91Tad8hpjCCjaHPv+ImKJ/VNt9TRHRtKwHLetBy3rQsh60rAct60HLetCy HrSsBy3rQcnOlMyiZGdKZmkloygZRckoSkZRMoqSUZSMomQUJaMoGUXJfpS8 lZL9KHmrVtJGSRslbZS0UdJGSRslbZS0UdJGSVu45IhwyRFE8ogYyNlATeNi bY/QglpV6v8OHB6AGTATHhQW9m4W9m4W9m4W9m6WSPWf/RpQuBNlksM7jb2a R6dFmdRfqZEGwEAYBIPhFkiAITAUboVhMBxGwG1wO4yEUXAHjIYxcCeMhXEw HibAXXA33AMTYRLcC/fBZJgCiTAVpsH9kATT4TV4Hd6AN+Et2Apvwzb4NbwD v4Ht8C7sgN/Ce/A+fAC/g53wIXwEv4ddUAx/gD+yWyvh83PluLQb9sBe+Dvs 4/4XSrm0Hw5AKRyEQ8o56TAcgS/ZQczhbeVR5ajh7+wk9sEXsB8OQCkchENw WCk3HIEvlfKIGKUmojN0ga7QDeIgXqkxPg+vAhoY31TOGbcr543vwg74LbwH f+D+Hj7ZbRr/zvlRpdz4NfkrOQ8oNaYb4EboBXZwKOdNvaEP9IWboJ9SbroZ +ivHTQOAvmCiL5jw3TSM6+E8G6OcM93J5wzlvFmn1Jj1YIAIMIIJzBAJFrCC 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 w0pYBauhEJ6ANVAEa+FJWAfMjVbmRitzo5W50crcaGVutDI3WpkbrcyNVuZG K/OilXnRyrxoZV60Mi9amRetzItW5sXoSLCAlTlPndl9Wtv9jHEvY9zLGPei m/qe3o+nxxi7Xsaul7HrZex6Gbte2u6n7X7a7qftftrup+1+2u6n7X7a7qft ftrup+1+2u6n7X7a7qftftrup+1+2u6n7X7a7qftftrup+1+2u6n7X7a7qft ftrup+1+2u6n7X7ars5Zs5VvUfsQCn/eNmepEVWLYURUzPManrfgxiXcuIQb l8hbTV4zea2MFAuRJjBSLESbEP4NaB8OXcKhS0RZTJTFRFlMlMVEWUyUxURZ TJTFRFlMlMVEWUyUxURZTJTFRFlMlMVEWUyUxURZTJTFRFlMlMVEWUyUxURZ TJTFRFlMlMVEWUyUxURZTJTFRFksbiOSIrzZjzf7dS7RE3/2E0EqI+BfjIAA kawlkm7hX2a6qb/MEMkr6q9ZeLcf7/bj3X682493+4mqiKiKiKqIqIqIqoio ioiqiKiKiKqIqIqIqoioioiqiKiKiKqIqIqIqoioioiqiKiKiKqIqIqIqoio ioiqiKiKiKqIqIqIqoioioiqiKiKiKqIcTxbG8ejiOLL8D9zupdWv0Srdwkr 8R4m3sPEepi4uhBTF568TDyHiecw8RwmnsPEc1gYdXn4ulT5l26Zck63ln7x S6VB97L6Szt3L+rWKgEhcfyXGECOgC6fHlEAa5Vy3Tph1j1F6Q1KnW6z+u/q Kz/oXlV+sLK/tbK/td4AN0IvsIMDekMaedJhHsyHBeCChbAIMiATsmAxZMMS yIFccEMeLIVlkA8FsFz5QYvnIi09o1up1BLLWd0m5byONz0xR5dDb8+FPO7m E2UBrFaO6grhCVgDa0UX3TrlQ93z5NuonNK9AC/CS7BF+YT4PrHqlENWPRgg AoxgAjNEggWsYIMoiIYO0BFiIBY6QWfoAl2hG8RBPHSHHkoDGjagYQMaNqBh Axo2oGEDGjZYRytHrWPgThgL42A8TIC74G64BybCJLgX7oPJMAXSiCMd5sF8 WAAuWAiLIAMyIQsWQzYsgRzIBTfkwVJYBvlQAMuVT4SBnnMSFb9GxdO6zUoT fWmtcoF+0iKScSGIC0EcuIgDag87zYoTYMUJkCOAykFUDrLCBFhhAqwwAVaY ACtMgBUmgPpB1A+ifhD1g6gfRP0g6gdRP4j6QdQPon4Q9YOoH0T9IOoHUT+I +kHUD6J+EPWDqB9E/SDqB1E/iPpB1L+I+hdR/yLqX0T9i6h/EfUvov5FVrkA q1yAVS7AKhdglQuwygVY5QKscgHUDaJuEHWDqBtE3SDqBlE3iLpB1A2ibhB1 g6gbRN0g6gZRN4i6QdQNom4QdYOoG0TdIOoGUTfImFtK71bH4ko0XUXvXiui UfsMateg9nmRjcYeNPbQ0+vIuR+tz6D1Gd1yrlcq31HqAj1fpufL9HyZni/j w7/xwYMPHnxo0j2nfMEI+IYR8A0j4BtGwDeMpUPMDfvwqByPyvHIg0cePPLg kQePPHjkwSMPHnnwyINHHjzy4JEHjzx45MEjDx558MiDRx488uCRB488eOTB Iw8eefDIg0cePPLgkQePPHjkwSMPHp3BozN4dAaPzuDRGTw6g0dn8OgMI0Rm hMiMEJkRIjNCZEaIzAiRGSEyI0RmhMiMEJkRIjNCZEaIzAiRGSEyHnvw2IPH Hjz24LEHjz147MFjDx6X43E5HpfjcTkel+NxOR6X43E5HpfjcTkel+NxOR6X 43E5HpfjcTkel+NxOR6X43E5HpfjcTkelwsXDnpx0IuD/8Tv3bh4HueO49z3 ONeAcw0414BzDfhvw/9duCfjnqx7lnu/xOnnld/hYB0O1uFgHQ7W4WA9DjbR T/6Ki9W4WI2LMi7KuCjjooyLMi7KuOjFRS8uenHRi4teXPTiohcXvbjoxUUv Lnpx0YuLXlz04qIXF7246MVFLy56cdGLi15c9OKiFxe9uOjFpQZcasClBlxq wKUGXGrApQZcasClBlxqwKUGXGrApQZcasClBlxqwCUZl2RcknFJxiUZl2Rc knFJxqVqXKrGpWpcqsalalyqxqVqXKrGpWpcqsalalyqxqVqXKrGpWpcqsal alyqxqVqXKrGpWpcqsalajEUlwK4FNBGY8iFZlxowoUmHAjggPre1IS6Tajb hLpNqNuEuk2oG0DdAOoGUDeAugHUDaBuAHUDqBtA3QDqBlA3gLoB1A2gbgB1 A6gbQN0A6gZQN4C6AdQNoG4AdQOoG0CdJtRpQp0m1GlCnSbUaUKdJtRpEgOZ GS4xM1xi9Mus5xbds0SxgSi01nO+Gbaw3r/Kut2DXV1PuAFuhF5gBwf0hjTy pMM8mA8LgB0kWregdQtat6B1C1q3oHULWregdQtat6B1C1q3oHULWregdQta t6B1C1q3iAVoXYfWdbRYpsUyo8DHKPAxCnyMAp+mf+sIQPef9Hx28Dr1l43/ 3Nvr8KMOP+rwow4/6vCjDj/q8KMOP+rwow4/6vCjDj/q8KMOP+rwow4/6vCj Dj/q8KMOP+rwow4/6vCjDj/qUFBGQRkFZRSUUVBGQRkFZRSUGQ0+RoOP0eBj NPgYDT5Gg4/R4GM0+BgNPkaDj9HgYzT4GA0+RoOP0eBjNPiuYzT4cMiHQz4c 8uGQD4d8OOTDIR8O+XDIh0M+HPLhkA+HfDjkwyEfDvlwyIdDPhzy4ZAPh3w4 5NPW+Ebtn0LejlcyXsnMNjKzjRftZbRXNZbRWEZjGY1lNJbRWEZjGY1lNJbR WEZjGY1lNJbRWEZjGY1lNJbRWEZjGY1lNJbRWEZjGY1lNFZjlIlRJkaZGGVi lIlRJkaZGGVilIlRJkaZGGVilIlRJkaZGGWr2hfyYCksA/obMcrEKIuOzMX+ K8cMPe1ZbaQHmFMD/9MYYe++lD0qb6aMNhujzchoO81I68JIs4ikthklj9V4 JazivXwt3/W00kjPbiR3kLHZyOrcTKkEFA6gcHO7XVMjvbuR3t1I726kdzfS uxv/H802jfS+RnpfI72vkd7XSO9rpPc10vsa/6/uitS3lSBKfdH23tIs9OF7 QVz6QcxC21K0LcW/evyrR1v1zeY4TkSgby361mrz3/Ncb+Id4WV2Slu496pS i6616FqLrrXoWouutehai66l6FqKrqXoWoqupehaiq6l6FqKrqXoWoqupeha iq6l6FqKrqXoWoqupehaiq6l6FqKrqXoWoqupehaiq6l9Kl6+lQ9faqePlVP n6qnT9XTp+rpU/XoXovutehei+616F6L7rXo/n+Iu/Pwqspz7+MreyV7Jzs7 oog41GqtU6undajaVtty2nqsPW3taGu12vbU1gOVVhRUQKYO2tYBZ1DEoVKK WoGaoiLgiAVrAwnZwGYn0MhgSEgWJCSQAPKcz86hfe15z3W9f75/fK+118pa 63me+7mH350rbFrZvZXdW9m9ld1b2b2V3VvZvZXdW9m9ld1b2b2V3VvZvZXd W9m9ld1b2b21urTOMbgeN+BGjMW40Dpg4/4DkdAXHZpaEA1NvUJxvsovXwuT U8vCnNROOqM3TE31h/pY5ow/pHs9LcyLzwpb/vHXyt+MDo6/FeUO/E3h1lxT WGHHZnnvXLwqAl4L+dRSnv46lhlzueOboSm1QqebN9pqxzXYGlWl2kRqL427 ixLajT2hK45CS5xBJY7U/Z8WNsVnhJ3xmfgIzg674vPCxtz3Qkfuh6Eu92PI EbmfOl4TmnKjICfkxjtOcJwIGjr3c6iYudshKnNT/fwe1+S+3DTn0/GQd8wK /bknvH8e5oeduT/iGddqnS90tKZcvWsNWIW1zgto8rkZLe7rDC25ndgdWmqG hKTmMAyF7rBGd1hzgusjQl0NTV9jXjW3hJ6a28POmvvwAB4PSfTvB6xatE99 rLqWVTtZtZNV97HqZlYtsOpaVt3JqmtZdS1r7mLNbtbsZsluluxmyW5W7GfF XlbsZcVeFuxkwSILrmXBtSxYZMG1LFhgwQILFlmw8D8sWGTBThbsZMFOFiyw YJEFiyzYyYKdLLiW9TpZr5P1elmvl+U6WayXxXpZrJelelmql6U6WaqbpbpZ qpululmqm6W6WaqbpbpZqpul1h6wVJGlOlmql6V6WaqXpbqj96eeDONTC8J8 lnqRD+5lodmssi21IVzFz8ak2sIjvPubqR5Kuz98ip/9OY7D0jgd7ohz4Se8 fXU8JBwXHxv9KD4xjOb5748/HD7Dao/z/gv43Iz4U2Fi/Olw2YG/zvpb/K3w aHxJGBEPD0tKf79kVS/ISa+oEq9hWVhvxLftxwYjbjFCm7fu8MaN3rhdLJ0n lj6pI3zSjr0SGjxVipe/DsTI1ugYT6/y5Bue3GxuW8yt2hvyA/FwVsh78pXw hqfe9tSznjjUE28Z728D8aurHojhY8Xph5yfFjZ4qsUsl0bv5Vk7B55cyrNe x3Ie86anV/CqPBW52nFN2Mw7NvOOzTxjM894i2e8xSve4hU7ecVOXrGTR/Tx iD4e0ccj3uIJfTyhjydstnOb7dxOu1bK/Fujg8wnbeazjPekcZ+31oVYHvaw azN7bsndGHZ5f7f3d3t/d+4B5w+HXd7THZV7qsfMr/XExpLfU8JPyiULrOW1 UO9qU6pBHinZcENoZ7cG713rvWujS4w61d2TxdSmAW95Pkww+gRPdrHEHpbY 4w2bWCKwRM+BuOphiZ5UIcz1xlqeVJ/q4D1ZDAk/jIfajcNxBI4P18Un4MSw Lf6Aff4gPmT32D0e5uefHvjb5TPM5gyxt4l1e1i3R+xtYuEeFg4sHMTeJlaY wNKBJaayxFSWmCr+NrH2Htbew9p7WDuIv03ibxOr72H1Paw1geV7WGxC7mmZ aC4WhetySx3/ijqswDoUsd7P/ub4lndsDNfVROHPNRVhbk0aGRzn/CSMkKGm hKlicJPd3FNzf9hYMw3T8SBmhrlRNY/s5o0b7fRHZJ93ZJ93ZJ937PpHRfo7 Iv0dkf6OqH4nOtp+lPZyF9vvYPsdnkrLUV1yVJcc1WXtPdbeY+091r3DundY 9w5r3WGtO+SXLvmlS27pklu65JYu/t0lt3SZa4957pAruuSKLrmiqyxrxCk8 4H67/7Ldv9vu351aYkdfxCthWWqpqvg6loXHecHe1CrX83yrEMak1oXFqSKa 0Iz12BBuSf3NcSM2eedmxy1oxdZoCm+pTbX7vA0dPK/TMcH2cF1qB7p87sbO MFxuqpe5CzJ3QQR/U45akdrrZ/vwTliS2u8YVOEypFDKX+W8rcLntDyVDZPj ap9zYeRAPhvkeDAOwWAMCefx1gt564W89UK19eb4qHBD/B4/OxrHRt+Oj3N8 P46X807AieE78UnOT8YHnH8Qp/j8L/hQ+Kwc+X2Z5Wm7NsWuTbFrU3j7l+TL 2+Nz3PNRfCz8LP6447k4L0yKP+H4SXwqXC4qLoz/1edPh2tFxjcP/MXs0yLk hvjS6Ij4CgwPK+XXP+SGh/rcCFwT9oqSvSLkbhGyl5dM4SVTeMmU3BQ//xl+ hV/jN7gtGpq7HXdgqvvvc+1+THM+HQ94zwznDzs+EkbmHsPjmBVuzv0u3KCa Tco96fwp/AFPhwtE1QUq3CQeOIUHTqEPblblJuX+FH6WW4Bn3bfQtUXuW+zz Erzo+lLny1xf7r1/ce1N/NW1OqxAvXc1YBUa3b/WvQWs87MiZG/ePUXUXpDb EBaL3AtU0Umi90LRe0Fuk2t8MMcHc2+DH+a2oi28nOOHOX6Y6wAfzG3HDnTJ AN3Y5XNfWJLrxx6f3wGfy/E5WWFyDb+r4Xc1cVhSU+5YEcbIEmNkiTE1lc6r ZI8s+GBNLrxcU4ODfB6Eg10/BINxqOtDQkGlL6j0hZrDve8I9xyJo/AeHI33 uvdYP38fjjP++12TYWWjyTWTQr0In1JzSzS0xl7X2Osae11zK27D7X52T7hB 5E+RqS6QqS6QqS6QBabIVhfUzPCemeb9iHc+7v2znP8Os/H7cF10nCxxrSzx x4HK/OpAPX9dJmgV8VNF9uUie4GonSdq31Bze0XsSyJ2k6hsEI1/EYVLRGGj qPs3kXWFSJonYm4XMa+LmFZRcp8oaRQFL/L+3/H+L/P+l3l/6V8qnMPjV0b/ IV89YSZ/ULFWpeapUgvkhOddW4hX1bnX/GxpWCN7rlG5XpazOlWuBWpgp9m2 qV4LVK8F8tcsM39dnmoz8xVy0VKzLsg3G+WbjWbeKl/nzXy7nJ2Xs/PyyVKz f1oueFoueNos95rl10qaR/Valfu+TPvDsEAFW6CCrVLBFojNTrHZqYKtEp9P iM9O8fmE+HxCfD6hgq3K/cJzv8StuC2skdXXyOprxGanarZKNVslw6+R4deI zSdUswVi8wmx9DS/f5qfP82n29STvHqS57dtakqer7bx06X8cha/nMUvZ/HF Nr62ka9t5Gsb+VYb32rjVxv51UZ+tVQtyvOppSrcAj71hAq3SuVYwz9m8Y82 /rGRglzCD17EKxTasvA8S29WHRr4wmdk82bZvJk/vMmqLaxaz6r1fOI5mXsD yy6XqZtZdjnLLucb2/jG27Jxo2zcKBs38pF/4SO7ZdmiLFvkK+v4yRaZtU5m rZNZ6/jMatl0nSxakDkbZcQGGbGB1Tez+mbW3iwDNsiADTJggwzYIAM2sOxm Wa9B1muQ6RpktIIsVpTFirJYQRark8XqZLCCDLZOBlsnW62TrYqyU1F2KspO RdmpTnaqk53qZKd1slJRVioeyEp1slFRNirIRo12Z7nM0iyzNNul5XZoueyy QXbZIINskC2aZYtmmaFZZmiWGZrtVL2dqrdT9bLCBhmg2U7V26l6kd9sp5aL /AYR3yDiG0R8g4hvEPENIr5OtNeJ9qJoL4r2omivE+1F0d5sF+tFebMobxbl zaK8WU+8lTou6eqzwr7obFFW6rN+LKKmi6jpIupV+zxZ1PTb19n2tda+1oqW dvu6yb7Otadz7elcEdEnCvrsxWR7MVkE9NmPyTy+j5dP5+XTefl0ezGZl/fx 8j5ePp2XT+fN/ew1l53m8uZ+tprLVpvYahOv7mevTTy5n31q2aeWfWrZZxNv 7ufN/WxUy0a17DOX9/bx3uk8t9+aa63xtXA7j91tBUuc7TT33vAk39wQHWVl O51tsbI2K2uzsh1WVScPtFtZnZXVmd1Os6szuzqz22l2dWa104x2mlGbGbWZ UZvZ7DSbnWbTZjZtZlNnFqVeti061ki9RlpnpC1G2mKkrWxY6lHrjdZjtHqj 1Rut12j1Rqs3Wq/R6tmimy26jdrLFt1G7jXyFiNvMfIWtug2eq/Re42+xehb jF5v9FJ/uEWPsEG+3BlWWvVKI/cYsVkuWyjjrpVxS/3BcwMZN+2ungM9VPuB f8N0WnxJdOaA5Vr8pNlPWgbOSr3d3gE7Vhx4qttZh/ev8f4uarhA03aw8B7r zLJEhAqaNI0MjnN+EmaGHd6xYWBnGtzdpIqU5tgTneQdr/vJ8+zX7V0vuOPt v/f3A/Umkl8yqEQ2vGBVX7WaH7BjNztuYMcN7FjqrzewX7c5vGAOr5vD6+bw Olv+c9/9Hhz9rv77OPefIBZPcpzp/kdcK/XcZdacRIebX5c5dZnTNnPaduA3 ONvNvs28tpvXdvPYbh7bzWG7sbuM3WXsLuNuM+42424z3jbjbTPWduN0GWNb dIK3L7L6P1v58ndl2Tw7P22kXQNZNTvwlyK/PLCX66x+eOkvev6efax4uVEX GXWRURf9r5mnlGmOc18py5zkWMoYM937PzNG1UAV3UkH9Out0/b14nDNgb/u WGnkbw/8xeiZ5r3Bnc/ZtTp9wRrzf4mV5r0rg5QqQ4GlZtrrUt19m7VmstZM 63nJW2/1trl2sY52W8OCM1lwpp2sY8WZIqIgIgp2tM76XhIVBWvcYI0brHGD Xa2jwdbQYGvorTX/I3MU7HKdXa77R+Y4zjtOCDOt/SXr3mCX6wayx3tYvYnV mwZ+G9Eri/SH18y6k+WbzLjTjEu/w+lk7SbWbjLLTjPsZOUmVm5i5SZWbmLl JlZuYuEmI3WycBPrNrFuE+s2sW6TqOqVdfeofryHh/WGl6KUKriHUuqPYmpk mbMuZ63Rcc4SPUwffZLQJ4lKuVul3K1S7j7wO8J2mmUHHd+n4rWrdO0q3W6V bje93qfatdPofXRFQpP3qW67VbfdqttuuruP7u5T2XarbLvpjkRla6c9EpVm t0qzW3XZHVWp5f1m8pDanajZJV33tlETO/i4HXx8IKtUqfY98RCZ5EOhwwra 3NURnx0NkmH0PNEZxilE5d6z2XtKv3PtK63AinMDv0FoL93PEkPE09mhz/XS b2Xd4bmN0WHOSqvvsfoeq+8ZWPmltMIVYfW7Vt5j5T0Dq653bMAqNKEZVmdl PVbWY2U90fuMtoJ9e9l3LfuufXdnbuwOo2xh214jbDHCln90488M/MZvC9v2 su1atu39pw59rfPCwG8BBzp1tl1r9C1su/bd3XpUZuW90QlxjU9DwiPUUkIt JdRSYk7PmtOzrNVLMbVRTKXfrnWy0zbKKLED++zAU3bgKX3kYH1k6a8jS6qn jeppM69nqZs26qaNummjbtqomTZqps18nqVk2qiYxJyepSjaKIo2iqKNmmiL MmbzRyPvNGKfEXcard9obxrtzeh4P32L3VrNcZ05rnPnrgO/w/4/O3Q2ZXce v/40O8wKrWy4hw33/GOXnnGt1vlCx0WU1jLHd+/aWucF/H331runxf0bw7p/ 2sWhrNbCai2s1sJSLSzVYt5/O/A7qRYWaWGRFtZoYY0W1mhhjRbWaGGNFpZo YYkWVmhhhRZWaGGFlugo61xvjeutcb01brfGvDU2WmOjNTZSqiWva7SeRqqy napst5b1lGXJAxutpdFaGinJdutotI5G61hvDeutodEaGq2hceBfUR4ffzc6 PpoeXRkeiH6IH+G68Gg0LtwVjcdNmICJ2BSmR5uxBd3u6Q93RnuwF/vwTriz 7AOhvuyDOAWn4l/wIXwYp+F0nIEz8RGchbNxDj6Kj+HjOBfn4RP4JD6FYfhX fBqfwWdxPv4NF+BzuBCfx7/jC/givoSL8GUMjw4vezm8VPZKeK7sVbyGpXgd y8KSsuV4A3/Bm2FJ+SPhrvJH8RjqnK/ASlhr+X6EcGfFweGBisFhegWVXUFl V1DZFYfjCByJlnBXRYd7OrEj3JX+IM7B1eGB9Ej8BD/FmPBo+nqwe3pqqE/X hyVpHU/mpLAkczI+EJ7LfBBn4iPOP4FLw/TMZbgi3JmZhllocf4WNsKeZdrC o5l2bPezHue7wp2VqVBfGaMcFUiDUqykFCurkEU1cqjBQRiEg3EIBuNQfDws qTwX3/X5R46THX/vOCc8V9kb6qu8q+pQ+vjyaHBYER0K2S86DENxOE7GB/BB nIJT8QV8EV/CRfgyvoKv4mv4Or6Jb+PK8BDPfYjnPsRzJ0ajw8xoDK7HDbgR 48Ic3jyHN8/hzXN485zy34QV5bfiNtyOOzAVd+Iu3I17cC/uw/14xHOP4rEw x64/VLE2rKhoxnr8DS2uv+3Yig4/78QO194JK9JpZFCFLI7AkTgRJ4Ed0uzA O+akz3I8x/E8x8/hclyB7+J7uDo8xHMe4jkP8ZyHeM5EnjMxbb1p6+VBcyp/ WrJNdFeoj+7GPbgX9+F+zMbvMQdP4En8BW/ir6jDCqxEPRqwCo3IYzUK2BSe kROekROekRPeiHaiB73Yhd3oD/PkiXnyxDx5Yp48Ma98a6gvb0M7tqEDupPy BNuxA13oho6lvAel5/YjhHni7ZmMXJAR+xmxnhHrGXGeuSi8kfmG48W41D2X 4YowL/Nj56MxBjfgRtyEm3ELxFuGjTJslGGjDBuJp3mZ3zrOcpznuAjskGGH DDtk2EGsPSPWnhFrz4i1Z8TaG2Ltjcw2dGC7Z3tcZw9xN6/sw1F5dEhUgTQy qETpu8OzqEau9BWTOAjnRkOj83BlGM/Hx/Px8Xx8DB8fwcdH8PERfHwEHx8R jfWGcWEkPx/Jz0fy85H8fGT082hQ9Av8EjfjFvwKv8ZvcCtuw8LomOgFbArj 7Og4OzrOjt5rR+fY0Tl2dI4dnWNH50Slb5DuDxPs6gS7OsGuTrCrE8oeDKvL ZuAhPIxH8Cgew2/xOGbhd5iN32MOnsCTeAp/wNOYi3mYjz/iGdTiT2F16vRo UOqMaGjqLMdhuDCMT30+XJf6Ar7qfHiYkhoRrk79GFeHq2m2L8SXhdF02xfi 7zqODn+Jx4SGuD6qiBuiIXEj1btaV74mysabwpx4My2yJfpA/LZja+m7gRy3 RYPLR0eHlI/B9bgBN2IsxmE8bsIETMQkPBJGyhcj5YuR5auiQeWNyGM11mAt CliHIprQjPVgT94+gbdPkGvGVxwSVvP6cXLMyIptUVZ+GS+/jJdfRlbsjQ5J x+Bb6cE4FMfjg2Fk+hTHM/CRaKicMjL9UZ+vDuPlj/Hyx3j5Y7z8MUb+GCN/ jJA/RqT5Unoc+FL6gbA6/eDAv6BfnXkvjsGxeB/OwEVhjkgbJ9LGibQJmVHR oMy1mIwpuAvTXH/E8bHoGNE0IfOUzy3ufwsbwedEzr0i516RM0fkzMl0RlWZ BNvd3+Pn/E8ETcjsjgZVDgmrKw/DUByOI3AkjsJ7cDTMtdJcK8210lwrj8P7 cTxOwIn4gXddiR9igvOJmBRWV5WF1dlLwnXZSzEhXJ2dBHGTFTdZcZMVN1lx kxU32dtxB6biTlhv9m7cg3txH+7HNEzHA3gQM/AQZuJhsE/2UTyG3+JxzIoG VY/HTZiAiZgEtq1m2+qfQXxXi+9q8V0tvqvNs9o8q82z2jyrzbPaPKvNs9o8 q82z2jyrzbHaHKvNsdocq82x2hyrzbHaHHOnRoMOqkIW1aX/KSVeKVI2yUal T6XvHjk8dYNsliv9v42yWU42y8lmuaj0PxhmUY3cwDfY52SzHAVQpACKFECR AihSAEUKoEgBFCmAIgVQpACKFEBR5jtU5juUEminBNopgXZKoJ0SaKcE2imB dkqgnRJopwTaKYF2WfIqWfIqWfKq6D9DEg3HCPwYV2MkfoKf4hqMwrW4LgyX Ua+RUa+RUa+RUa+RUa+RTc+XTc+XTc+XTc+XTc+XTbOyaVY2zcqmWdk0K5tm ZdOsbJqVTbOyaVbdbVZ3m9XdZnW3Wd1tVneb1d3mqPT7jjl4Ak9iYXSkzHuk +puov4n6m6i/ifqbqL+J+puov4n6m6i/ifqbqL+J+pvI1qNk61Gy9aioVS+7 FW1oxzZ0oBMJtmMHutAdpsnss2X22TL7bJl9tsw+W1YfK6uPldXHyupjZfWx NH2Bpi/Q9AWavkDTF2j6Ak1foOkLNH2Bpi/Q9AWavkDTF2j6Ak1foOkLNH2B pi/Q9AWavkDTF2j6Ak1foOkLNH2Bpi/Q9AWavkDTF2j6Ak1foOkLNH2Bpi/Q 9AWavkDTF2j6Ak1foOkLZV+JhpZ9FV/D1/ENPBjyKlFeJcqrRHmVKK8S5VWi vEqUV4nyKlFeJcqrRHmVKK8S5VWivEqUV4nyKlFeJcqrRHmVKK8S5VWivEqU V4nyKlFeL1Grl1isl1isl1isl1isl1isl6jVS9TqJWr1ErV6idqyv0bZsjqs wMooq4rlVLGcKpZLnVv6N6qOn3W8MExSzS5SzS4aqGaXhY7UlRiuur2rqqVG hg6V7ZMq2wiV7ZMq2wi9+NT4uvB0vCi8Gr8YHRS/ovqt1M836NMbo8NVuXZV Lo7X6u//u9JVqHQnDHzHZLvr21Se0VFOlcupcjlVLqfK5VS5nCqXU+VyqlxO lcupcjlVLkdJt1PS7ZR0OyXdTkm3U9LtlHQ7Jd1OSbdT0u2UdDsl3U5Jt5dP C0n5dDyABzEDD2EmHsYj4XyV83yV83x9V62+q1bfVauKZlXRrCqaVUWzqmhW Fc2qollVNKuKZlXRrCqaVUWzdGZCZyZ0ZkJnJnRmQmcmdGZCZyZ0ZkJnJnRm QmcmdGZS3hs6yndhN/rQjz3Yi30QEyrzWJV5rMp8lcqcV5lH6f8K+r+C/q+g /yvo/wr6v4IuoahLKOoS2nUJRRX8/IrNIdEpFHUKRZX8KpX8qgpzqjAnFf18 FT2nayhW7HceQpKOUIYU4iin0ud0FEUdRVFHUdRRFFX+nMqf01kUdRbF9NHu fS+Od+1E5ydBrtVlFCmD8ymDXPp0P+eD1MGhuo4ihXA+hZDTeRR1HkWdR1Hn UdR5FHUeRcrhKsrhKsrhKsrhqrQ8mpZH0/Jo+jqMxpgwnJoYTk1cQ01cQ0Wc r58tUBJ5SiKffnjgG5mGpufjTwPfyjQ0/bpjfailMvJpe6nvLaR3R0MpjjzF kac48hRHXi9cqxeu1Qsv1gsvpkDy+uHF+uHazHlRVk9cqy9I9AWJviDRFyT6 gmYqZba+INEXJNTKKGplVOY7oSNzOa4IY/UHSeZqn8VU5if4Ka7BKO+8Ftal d2jWOyR6h0TvkFA4WQonq4dI9BBJ5jfuv3XgWwUTqiern0j0E4l+ItFPJFTQ WCooSwUdqa9IKKGxlFBWb5HoLRK9RaK3SPQWid4ioZBGUUijKKRRFNKozGbv 3oK3Iddn5HqqaRrVNI1qmk01zaaWxlJLo6il2dTSWGopq9cv6PULev2CXr+g 1y/o9Qt6/YJev6DXL+j1C3r9gl6/oNcv6PULev2CXr+g1y/o9QtUV57qylNd eaorT3Xlqa481ZWnuvJUV57qylNdeaorT3Xlqa481ZWnuvJUV57qyleeaU4f wcdDbeW5+K53/8D5lfghfuTaVY7/ieEYgZ+GdgotT6HlKbR85WTPTHX99+6d ExZXPuHzk+gNhaooGkrB5ausrerQUFt1WJTNfj1syn4D38Ql4SLK7qLsd3y+ MXRkx2I8/q70pvj8S9wS5Si+HMWXo/hyFF+O4stRfDmKL0fx5Si+HMWXo/hy FF+O4stRfDmKL0fx5Si+HMWXo/hyFF+O4stRfDmKL0fx5Si+HMWXo/hyFF+O 4sv9f1R8uX9SfIdFd4RPlF0Rfanse9HXy74f3Vj2H9G/lf0g+kTZldG3UhdG l6SGR9+MLw6fiS8Jn45fCLPjF8OX4o3hDdpwSCzDxW+Hu+KtYVncFr0nbtdv bQu7omOjO/a/Fj0VVkVLwypv/9SBb4M9x9tP9fZTvf1fy4aHXWrrFqPo5nRl F4dzjfJJo4yJF4dF8RK8uL8jfjksUOPWxq+G1+PXwh1G/4WR++ItodXo5xp9 qtFjoz9s9NeiynhFmBXXm5NOPl4VfhA3hoVx3lNrQpOquJ5OfSr82dz+7M5v q50r3D3N3ePjVfv3u/sxd39eHV3giRs88eDAdzueZrYTVPP3qt6fT31JJR8e hqd+EsWpJ+nk18J/pJaF6akN0dmpXhV5SDQoPi38Ll4c5VTp06zgj0Zaph+N 41V6zdXhT6p0hbfvt6K8Sj3+QKWOD/SksZW1xm1W1e76ttBZ9q2oPCyMKpBG BpWoQhbVyKEGB2FQWBQdjHNDU3Qefh7mR7/AL3EzbsGv8Gv8BrfiNtzBhgtD Q/RCaChLhaayGOWoQBoZVKIKWVSjBgfjEAzGoRiCwzAUh+MIHIljcCzeh+Pw fhyPE3AiTsLJ+EpYX/ZVfA1fxzcwARMxCZMxBT/Dz/EL/BI34xb8CneGdWV3 4W7cg3txH+7HtLAudXqYnzoLw/DV8Hzq16GY+k0o8vKL7UoHP9vHx+bbiQ4+ 9mU+ti/etX9rvFtE9IVM3L9/d7xnf1O8N6Tjfftb43fCsHi/6yEcWV6xf2t5 OnymPBMy5ZX7d5dX7W8qz4Z0efX+1vJcGFZe4/pB7hsdFpaPwfW4ATdiLMZh PG7CBEzEJPw2NJU/jln4HWbj95iDJ/AknsIf8DTmYh7m4494BrX4Exbg+bC+ fCFewCIsxhK8iJfwMl7Bq3gNS7EqzC9vRB6rsQZrUcA6FNGEZqwP8yv2hoXp GPw3XREWpQc7HorjcQrOwEdCU/qjjreF9en7Md25daZ/57P1pK0nbT1p60nP c20+nkEtnsNC11/AIiyGuafNPf0Xn9/EX32uwwqsxBqsDevSRT9rxTZ0oRs7 0YNe7A7rMwdhEA7GITgirMsciaPwHhyNs0JT5qMYFeZnrsVkTMFdeASPhYbM U467w/zKk8P6ylNDU+WHHU93vAhf9vnbYV3lD/z8SvwQv3Z9uusP4EHMwFPY G9ZVRWF91SGO4qtKXFUdhaNDU/YHoZgdgavxE1yD0RDvWfGeFe9Z8Z4V71nx nr0dd2Aq7oT5Zu/GPbgX9+F+TMN0PIAHMQMPYSYehjVmH8Vj+C0ex6wwv/rf Q7H6C/givoSL8GV8BV/F+PB89U2YgImYhMmYgp/h5/gFfombcQt+hV/jN7gV t+F23IGpuBN34x7ci/twP6ZhOh4Iz+dODfMPqgrPH5RFdXg+Klcr5sv87fHq 6MPy8r7ovmhcmBGNx02YgInoD0X9c1H/XNQ/F/XPRf1zon9O9M+J/jnRPyf6 50T/nOifE/1zon9O9M+J/jnRPyf650T/nOifE/1zon9O9M+J/jnRPyf650T/ nOifE/1zon9O9M+J/jnRPyf650T/nOifE/1zon9O9M+J/jnRPyf650T/nOif k9K3cJX92TyXhQ49a4eetUPP2qFn7dCHTteHTtd3Nuo7G/WdjalZYevA30f+ 918dvZXaHd5SzQqq2Ix4ZXSsetmigt2mh5uhh5uhh5uhh+vQw3Xo4Ur9U1H/ VNQ/FfVMiZ4p0TMleqZEz5TomRI90gx90Ax9ygw9yQw9xAw9RKJH6NAbJPqA Dn1AR+aUUMycOvB9nB20f0nLF+nsIm1dpIWLNHCR/k3o34T+TejfhP5N6N+E /k3o34T+TejfhP5N6N+E/k3o34T+TejfhP5N6N+EXu2gVzvo1YRG7agc492T ff596VvTQkJvJvRmR9UQ8XRJmE5jTqcpG2nKxtyEsDU3EZPC1poh4a2awzAU x+J9mOL64+GtKKWq/EFdp+PiF6KPx4uiy+OXorPil6Mj2Pe5+FVK6rXo5HhF dBFbX6Svr6AYPqW3HxznozPZ/W+UwzF0zkZXN0Wn0AsX0QsnxVujC7z31QO/ yz7VSK+Ep9x/z8CY8/1sBFWxKDrItTecrSx9L+X//V26ZcOjYf/79+mazxmi 4xNG/aJ6+Hlz+O8rZ6iWu139jGq5SLVsH/iO4m2l/43S1aOdfWrgd4qHu/dE cyj9XwRvRx9yx4edrYyGWeEQPzvGWkvf+nZJqItHR+ea/6vln6TXUq4sd/am u9UmmnC7s/XOro5qnO1xtjw6OSqPhkUVSCODSlQhi2rkUIODjHhxdFh8KY13 Ba62pkV04Mt05iuhoXx0NKx8DK7HDbgRYzEO43ETJmAiJkXD9PLD9OzD9OzD 9OjD9OjD9OTD9N/D9N7D9NvDBv7/ixrqtsdI663i7fglO1n630xeCc9St9us fTSbvGBeS9xltdZeEw0uq4+OL2uITmeZK9jhs/Gl7rosuiy+YuA75i6Lrw6v lL6VKL4+bIzvj86Jp0UfNU5ip0+kZOaWfzw6s/zc6HTWuiw6xhPHGOcsuzk6 ep+ROkvjD4xUc+D/NVkWf8fTl7v/e47fdxzNw+rDOhq5gz7uH/CfNVGlp+Io XfqfUNw91J1D3VnlzsQd26Oh0SZZlIaKttBN1xqptKfXh0a6u8OuD5JxGwbe l7eDqz3lnSVFXDE47NPD79PD79Mj79Mj79Mj79Mj79P77jPmxWFr6V88eeMp IiUz8LbVoSc6/J/G/I6c9T2MtLbRlPjK0GV2260j4XGHGbvXU68bt9q4ff/P cauNu7H0f7N422DjVnhjrzd2eGOPN1Z5W9eBVewTZxe7Wvq+wO9Q8t/DtX4y OjrSk1VmnPbkLk/u82SNuewvWc2Te0XFpuhz0WZsQT/P3oO92Id3ZIeLdS6X hNPj78gWl0ffjb/n+H3HkXqfa83n+vB4fBO/uD/6WOl/4mbxeiOeO7A3q8LM gdHyYY2YG6LL2XPAR84s9+7y/QjRyRWDo89lLsVluCI6OTMNs9Di/C1shHlm trvW47jL3Erf/7jdzPqtud/MTrHufjM7xbqPsu5Sxqi03qy1tsZro4MHvG6x J171xGZPHOWJzZ44yhMfc/fB5vz2gOetCnvNu8+Tmweeyg/8vwSXGu8ynnyF 43cdx8iKG6P3y3j/Rd13wFdVZP+fKXfmvvfuS0IIIQktdBBUQIQVRMHFiiy6 dhRFQbGAuoKISLGsiohSLOCKFEFdxcUOCgi6iooFRKRI76H3Hsj8vzPvJSYk EBJY/f3v/cy8uVPOnDv3zHfmzNx73nZgTBjImA5kLAO8m+b+Ucc+v8XIJRCz Hc/hGoSud33DWsNLFd0hVQ9hvFsPvjegxo1mm5O3lSi3FuXCoO6DMkfKYkqn zmYn3Q53B1x3PP1r8Dzbg6+b4R6EZNrcayAl69HSWeBpI/TLTaCyGeNkCyrv JZmd3ha4rWan6grXDe5euPvgHoTrCboJ8f8EWgTKi0F5seiOu3oQmL8az3EN pGgtepC7W+DwBrTRRvOj08XLg79s8JcN/rLjd2/XlJeDynJQ4aByGnhMApX9 oJIDKtbSvA8Kq+z/EYG/bPCXDf6ywV82+MsGf9ngL5tOp850Od0Odwdcb2pN j8D1gesL149ao8ZE1FgfmOWhha8EZnlo5SuBWW+hpT9ES38OOf0Wcnop5PRy 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 xTu6lm4svtbn6BZinm6pW4pF+q/6YvGbvkz/TSzXV+orxRp9tb5arNXX6mvF Ot1e3yLW6066s9ii79J3iW36Ht1LbNe9dT9xRD+qH5NcP6WfllIP1M9KpQfr EdLX/9L/ksl6pB4py+pRerRM0eP1eJmqJ+ipsrz+Ss+SdfRcvUCeqZfoXfJs vUcfkm31YW3k1X4tv5a83q/jnyZv8M/wz5Q3+Y39xvJm/xy/mbzFP9dvIW/1 W/otZSf/Ev8y2dm/3L9cdvH/5reTd/pX+dfIu/0b/BtkN7+T30Xe69/n/0N2 93v7vWVPv6/fVz7kP+o/Lnv5T/vPyEf8Z/1Bsp8/2B8sH/WH+cPkY/7L/qvy cf8t/99ygD/BnyAH+hP9ifJZf5e/Ww7y9/p75fP+Af+AHBwC8MkhIRmSclhI h8LyhVAQKi+Hh9JD6XJcqEKoshwfygxlyn+Hrwq3l2+HO4Y7yg/CncOd5Yfh O8N3yY/C94TvkZ+Eu4XvlZPC94fvl5+Ge4Z7ys/CvcO95ZRwn3B/OTX8dPhd OSP8Rfg7uS48P7xUbgsvD6+T+8IHIxkyJ1I9MsTLjAyLjPWej0yKTPdGReZE dnlvBTpI834I6gUXesuC64M7vQPBPcH9KhQ8EPRQiUHPoJdKDnoHvVW5oE/w pEoNBgTPq8xgSDBE1Q6GBS+qOsHLwRhVL3g9eF01CcYH76qmwXvBx6plMDmY qi4KPg8+V22CGcEMdXnwZfCdahv8GPyirgl+DX5VNwULgkWqQ7A4WKE6BquC HeqOYHdwQPUMDgWHVZ8gJ0qqf5RHuXo8KqNKPRH1o1H1VDQpmqoGRdOiaeqF aEa0onoxWjlaQw2P1orWUqOi/aP91ejoY9En1ZjogOhz6o3o0OgLakL0pejL amL0legr6v3oq9FX1QfR16Jj1YfRcdG31OQEnpCgpiUkJ5RXsxIqJFRScxL2 JxxSvxAPY/5OFFxQ5gqqQ5l0ig4zxawx66mB2YDwkiJz5JhXzXs4t5uBuLrC 3IgyMxHaEE/fYDbBXxW/2leovE3dZPbg/D1NF1HPbrgXi+X3EbjPC8QsRw2p tpZjHtC8kO83k41wgJH8Joriek1BHnPvpog6fzQrzTbzEyisxt1mFcfjCRw+ qL4cp77WbDEzzbr41a5CtW+GW2ZWmHnmgLmMQmi706hqvvSc4ioze/Hs9oDC 75yj/TFjiaW+Yd6gAC7vGR5VeivcOrMYNJbj0sM8qxadh1AVl/q1mW0WQH4g O9Dbi67/HfO6GYXfAXDnmzPMg6YHQvnaMffuEdpSqHSO+cZkQYK+MT+ADzwH 23oFS+Xl/bGYpiDoqUQJLvR8PGYbaP+UK5v5pSIeswd3vgttv8Tsxnw/EVGN 8RTyajeb3RPanJu7UPktZiP62LbcFrcro+53af48xfEdz7e4wNU/Clx9d2I0 cDR0+eOSZhbi+flmYTE178/XtxvSX4rJ/a75t+3R5psT5qlg+fVWOqzMFkqZ fwKlcWfmKReadHR/NredQHnIiPnY4dZy+9xKepi3HZq+jXYtfPgnRGG7meJQ 8wTloggKu05cqoooHUdY80upSr/v/IUWOU75cdYJ1L8+NpaZbMjR7hLXEBw3 tTbc310tuSPeqtgZT69SRJm6OKvgrFuAyzfjv3Ni53HKNyyyfLx1ISV7gU57 j8Uw8HOr2QkEW+n6lJXqAy7+BZdc2Xxhpptf7Yh+jPKH84WfpXTg/3XUzvaQ eNwyjA1TC2NxXpnsfOEhGHkS6VLqiPDEeNwatN7cY4+qufU7iX4F5UNAnwfi SG7jPzTvkTCTj1n+aCn0MHvqgvjn4unfmW/R/t/Hrwrj96F84YEonU5tyc6E zo/HfW4+A4X/HLP+tUXH5+CJWXw0V5q/mc6mXTz36ELlHweKvWH+Y342v+aL 5tSBnqBBCD1Pg+03M/QuJHciTcbscCpNp0ZuVaEJfUULqCn9RuuoDWUxRtez jqwjdYdG/3fqYXV56mm1eHqI38270cPQxxdRX76Er6F+fAPfQE/zTXwzDbC6 OQ3k+/h+GsSzeTY9b3VzGmx1cxoK3TxCL4gqogqNEDeJDvSK6ChupVflJDmJ rFZraJSX7CXTj+oT9Qn9pD5X02m2WqKW0s/KKEO/WJ2O5lmdjhbpK/SVtMzq dLQCOt11tNLqdLTa6nS0wep0tMnqdLTZ6nR00Op0lAOd7llG0OaGMqVf0CNY yOp0LNHqdCzJ6nSsjB6nx7OyVqdj5axOx2pBp9vFToc2Z1g7X/geu9H3/TC7 2Q/8BHarX8Yvyzr75fzyrIuf4Vdkd/uV/UzWza/u12T3++f557Pu0NpuZw9C OxvAekE7e5b1tvoXe8TqRKyP1YlY38gjkSHsMavpsOFBUpDGpgbvBu+yr4M1 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 mwqvzZldZpX5DSmFdiFKe+Sukhe8sv0nLtX51gvAu8gLbznWUzYrCq9qnqqj 6B2cYkuNN2Pd72G3Gv6ddXZ9yLyN0Kx4nlzJsj14r5mTG1+ietY6GV39+7Vd BTPL8uV4zq0H2bXyFS60FtzkR6h4+57o83Wr1quLz1fyA5KWj67ZZw7DHbJr XeZIgXzH25f6P3b8wX3+BA4z8iQKX1EEvdVUBzJY+SSoHv+oQw5bLZ46TC3y ADac8B7iyY8VR9ErwFX+vneC5T8008378f2BFDPaTHexa+zonn/0LtX8YRGw caWbP2S5uYlDMzsmmZX4nRDPtc3tt30PNxNnVsGVa4dk6ZS7Nvs1xoJZZi7c SMReZuaZH1z8r7FZhNvRvqHknBbifGOBKzeGmg/yxdxtxplu5hm7ym8eyItt jrhPbb8rvOtIds+18F7oJvMF7mXxqeupufJgxzEgWO68cBbF92fz8wBcztsb sXssxVD+6VTxWNoDrRR1v0PtfnOh1B7m6wJ5Y7/LMLqtsRJSivrmW6l38y3X TjaE8W1lvNXgm7vMbPe895MoYgyLUoNCNLehH2yN7y4JIEfurtP+WOrJj2+/ 70MX3K/MnaXYuZcbt9fi3FZo7rnCzT2L6O3ozacYu4o6jsKzeYXSDx8dE4// R9HxVJJ99BIf5o4SFoi9YzHAPOl+tzsE+Mg6hP5tJsVCLi13fub2O/GkPisF dx+aT4GYn8SvvjbvkH0/aLINwwE5gWJfAyVyZ8Hbgb4/xHEitn+WUIjmt+YT MyNOM8VexeMLoIMxJefWlUMvNb/lXeXqLqtsKFevjM3EHaLNsvIRe0ck3n92 OUTuYK5wVzPI7ubdD/cQQkPMCIx1D8Wp5Hu3BS0w1fQuBbe3mr7mddMNof+i V79uujh8eA6j0eto5xlmpLkTY+t2uwfo7myKmWjGxGqOjxoZ5r9H0cwyC6BV xnru2Xmh+LzTHIy5E58xF6C9x/X3vLeCCo5SbpzO03zdzHele+8h/xsXZxR8 Y+WPOgru4ro3mLYWz4m7o0LvX/0RR0FN1rYqZHh3cfjpns4p03RLcuSff6A3 WC1rIX6PsdOdl3PTyfNrXjN9zD/NcBeeA3kfa9+UiY9DsfniXvMx3PSTq8dR ahB7k+WkaKwx6zESuvERz3Q95DBvzh176mYH5hw7ipoBlriuUsy585X+IfZU wYvFwZ/iVyvi/SfO9Z/Tn4s6zB3mdjPNTCLurvqankDrjrEZgZlsDuBqkPmH OcdUB442Ng+Zu06irtj8MfOk+I1jUkynzXvfcGzB1FN5mPGngIaV3gUxVMf8 ttDTd+mrzS+/j8J/7gFulqDPuTVPyLDVFPM0ldhMF6nfwh3jXdU/+gC/z+fv uZhfTfkz+Tn2gd7Ww86dYm+6mu6YHf2K3hdLm+H8JeYzc6N5BqHBZmksrpR1 fXvy/Jawxj353/P6v3vkzXF3nfzblUW9634qj9jsEPPvdRj1TsGKRXHvKB+3 7AlKlHnPre1vLn1N+Y70U0LlhA7MhU565mqGngpOiqkjjnSY3Z70uvwpekrF 1bIGM9v/cU85dQdmPXtOWcsknwQfp6K//4H7EaWRRsx7VsdKxr/syF0Xme32 GWYft/C98bzvl7zeP/oozTcQhWgcczfkOGXcar1dKYppwrEVnby94PDx9GO3 tptO3UiVvF5XvhRfeZksN3b8/i1Z7prciep2Ebq45LX+qUdqaQuWfOeJ7FsN dl86T7M3U52/Ffhc7G7E/7UD8/69x/5mIl++A/97Xk7sODGELO2oXuS3UsXW 5d4g+P3bQbdjkSdZ4SIL5ea1a1UV6Ub0uT/hKDh3j6EGtKdicNbtxPwJ631m 5ymktYriK8pFfnFU133lZHfQ5xSRWhxt+x3VqtySuSG3wr8qHpNbZ3NX11F8 5bt6+neaubzY77UKcWW/ympod2lKo7WbkeZNMyXvO7B4yM4I4muac/L4aFiI 3zdLXl+B8qV4U8j84nYlvs+7du8AYb6pTnin7wS+3jtG3UV+m1xMmfVu1cqO 5A4L3NXX6HsxZAgfb37pRpREOu/Evtcsonxp3n+YZ7+3dG5f7Nr58VXz46ND /F4qFnzfCPK108x1biSVx5x0Y3w3aWWsTztZu7vknBZzH7EdtnzauuloHjJv mVHObkDeOz2mjfmwhJS//mNmzJbHY9djcoraVY7tKB4Vt7P4XZzSHu4dmTgy m12YT+zC/GiRWfw7EpktiLN7xn8x17rrjyABC0wHM9NemxnmRfONXTF3aS8U oL0sN75EHLUz3cxj5rL4lQtBAru48JtmnHkAcjASs7UpGHltjknmE/NxfNS2 q/Op1MDtOfcyXV1c7H3EUZhXv2afh7WSkPcWUIG1IHMw92v+EvH7inkbutq/ 4lezXd0jHc7Pdm1gd1/fN3vMly5D7Kv9+BsGcSk+u+S1/lnH/+Rr7MK1rMpF rNi+8591lGafCk96K+VbdcizkHAiY09Zsu/vXOXCFakxdM9MV3YdZh3r3GhS gc4y89FD7bnMLDfnoL90ocDExvW4noreGdOpysevP4zvVHDK+2Laxb97nPtw 71aY3hjn4iuQppW5Ba6NuYPKmtgYnGtDoy/chaa5ucbEv2ww35ml7m0J22M3 YUxaFddf61EdN3LWc7mOv7pRNF9jzTj4b+ddT7G6XIE3K66OB26kv9NfqJGz E1PTpeS/93DOLyaSs9+NlNPMPeYjO4aZfuYJGwLVgQWqjb0Ddk8p+O1q7sP9 3+cufIS6Otx8wo3Uc/Ess3JiX9JPdlZBcg/XsqZ7nMYJ6HhF1r2x+DyFymxx bwTYeYKTJifNX+NauuTguPMdWyqRzgX3nOYVY8eufdyO3eN0KeOsHHV21ul6 Oet0A5x1uoGsPetAQ9hd7C560dmle4k9yAbSCDaIDaeJ1jodTbHW6WiqtU5H 06x1Ovqcfcnm0AzegDek2bwxb0I/W+t0NI+fz8+nX611OprPL+VtaCF/gHen xbwXf5iW8iH8BVrOx/PxtJq/xSfSGj6JT6bN/DP+GW3l0/h02sa/5jNpJ5/F Z9Fu/hOfTXv4z3wu7ePz+Dw6wBfwBXRQBCJKh0SSSKbD1sIcGWdhjpyFOU/U EDWYdhbmfGdVLiKaiCYs6qzKJTircknOqlyysydXVrQXN7IUcbO4haXab+VY mrX6xjKs1Td2hpwsp7P21uobu81aemO3W0tv7A4vySvDungpXjq7y9p7Y/d5 S71VrKe198b6WHtvrK+198b6WXtv7FFr74095e31stnT1sYbe97aeGPDrY03 NtraeGNjrI03Nt7aeGMTrI03Nt3aeGMzrI039rPqoJ5iC611N86sdTcurXU3 7lnrblxb627cV2PUOJ5g7brxZGvXjZe1dt14RWvXjVe3dt14bTVLLeJ1rUU3 fo616MabqSy1mZ9rLbrxVtaiG29rLbrxK6xFN363tejGH7bfx/F+Pvc57+8r X/NH/Ygf4Y/7iX4Sf8JP8VP4k36an86f8iv5lfgAv6pfjT9jLa7xZ63FNT7I Wlzjg/2GfkM+1Npd48Os3TX+grW7xl/yW/qt+HBrd42/Yu2u8ZHW7hp/zdpd 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 yf7GcMtwj53Ds/kS09K/fmBgmSyNzWCL2TS2hHWwt5mJrWbL2TfYGhZj4+xj lmD/zH7LTrDfCensXwRFyGCfCpnCY4Ig8N84yfx7k8LjwjLBIuQJ3UJCKBFG hXVCo7Be+K7wZeHHwi+Fr2o+0nwkeLVurUcY1Ia0EWFIO6pdLQS072nfE0La 97XfFsLaD7TfF2LaXdrdwte1+7Q/Eca0P9X+VBjX/lz7T8J79HvMddoz2o+F 97WXtJeFb2uvaf9d2Kj9g/YPwmbtn7T/KXyPf4tO2KqbqZsp/FD3sW5K2C7p pELhrPSs9KxwV3pOKhP+JL0s1Qif8F94CJ9Kr0v1olZqkL4oStLb0nLRILVL JjFPglkQ50oeSRVfkL4urRFflsaljeJ86QNpm7iI/3JCbJV2Sb8Q35FOSafE fum0dF50SReli+KwdFm6LAak30s3xBH+fSwxLP1RuismpHvSlDiqZ/oM8T19 lv4x8QP94/qnxe/ri/Qvibv1r+nt4mH9gH6teFP/Lf23NIr+ff1GTYb+Q/0u zUz+76pqHtf/nX6/Jk9/QP8zTT7/PpCmSP/P+vOaSv0F/TVNtf7f9f+peUMu kvdoFst/THtK81vDJ4ZPtPz3cj62DaqwEv6b7bpTqSpK1aKH7aLVR9/MXn2i 3vzm3frm1adXn1t9sXFq9ZXV1+tXtewayxnLHyusPz9WMlY+VjVWO1Y31thU 3LRw9a2mdavvvmF9I7F6coyNSWPKWFbTwjc6cIXpcb3fpuv9T0zA9T6Jq/5T 4VOmwTU+nWkNnzd8nukM8w3zmYTRT9D3VJn4ofghE8SPxI+YKO4W/waj/0H8 B6aj76lK4i/FXzKZfieWJn4snmXp9A1Vhb6bmiH+VvwtM9C3UjPFP4h/wGeH f+80SyNohIf/prBOI7Fs+l1ZjiZbk81ma3I0OSyXvkc6R1OsKWZP0G/G8jW1 mlo2l34h9pRmoeY1VkC/mSmkb3Q8g1ekCFl0XrkyWwML2BpsTbZW21LbCpvJ 1mNz2ry2gC0CHbWtsa2zbaDabNtm24l1e2z7bYdsR20nbKdt52wXbVds1223 bHdtk3Zml+yKPcueY8+3F1KV2MvtVfZae5290d5sX2xf9hfLebvRbrbb7a6H i8+u2mP2VY8s4/YJ+0Y7CNa+/S+WSyjVvsu+134Aj58th+3H7CehfDljv4o9 3sC422jdsz/oFXvlXgP2ub13Vm9u79zeIrx+Ic2euqfwX7TPoHOSg0XD8rBo WRF7lulYKRY9+xwWmdVgSWO1WNLZAizTWD17g757/hbuSfxXmZnsK2wZm85W YMnCXcnEZjIrlllsgLnp95h++iVmkL5vHmW5uFu9x+aw97E8wb6DJZ/9ANf+ k+xDLE+xXVgK2E+wPM3+Hksh+wcsz7B/ZEfx/E5gKaZ/K/s5dp79Cp+WX2Mp Zb/D8gL7PZYydof9Ec/9Pvsv9iKbwjJPEAU9qxTScWesoW+Xv4I743RWS98u XyDkC0+xV4WnhafZ6/Rr0HrcK1vo957LWIPwNcHIviB0CB3sLfqmeRP99vOL gl2ws2ahT+hjbwsewctahBEhwlpxZ02wpbi3fp19RVgtjLGvCuPCOPsa/fbz /7L3NdBRHFe6PTM9wxiLsawoWMaYKArGWGCMBVEwUTAhGMRMzxhjGbMKQcp0 9/z0jEbzb8wSDCwmCkuIIJgQgjGPJYQoCiEEK0IWGLNYJkRPwUTGmCUsD7OY YK3MwzyZ5WGy937dIwkhx+TsvnPeOcmp831dqq66XT/33rpVgJhHfrZRqDA1 mZoE2bTf9JqgmFpMbwg+029MvxECpt+aWoUg9DdEPmKkELYX2guFavzdvaj9 YXuREMPf10vYJ9onCkn7JPskIYV/Z5TG3857xl5p/6bwrF22y8Lf09qeE7qg +8X8eye0YkIJYQqhlOAxUGagnFApPK2VaFO0Us2jlWnlWqXm08JaXJtPvEhb pq2gVKut0zZqW7Tt2g5tt9ak7ddatFbtqHZcO6Wd1S5oF7Uu7VrIHLKHHKHc 0JBQfmgEpdGhotCE0KTQ1JAzNDM0OzQ35A0FQpFQMrQgtDg8MLQ8tDK0JrQ+ tCm0NVQX2hlqCDWHDlA6FGoLtYdOUDodOhfqCF0KXQldD4uUssODw0P5/xe1 eq1B2iK/4ZiH377w2H+bfrsp3QEtz4aW3wkt/wy0PBda/llo+WBoeR60fAi0 /B5o+VBo+TBo+eeg5fnQ8gJo+Reg5cOh5fdBy0dAy++Hlj8gtFIqhK6Pgq6P hq6Pga4/BF0fC11/GLo+Drr+RdJ1s1AM/f4S9PsR072mYaT3rNkl0OyvQLMn 4V9PPAptngxt/iq0eQq0+Wukzd8iG3jO9BzZAP8biunQ5lJos9P0fdP3yR5Y pyX86wk3tNkDbZ5paiU9nmVqM7UJT9qfsj8llNnL7eXCU/agPcj/mjt7cfYK Wqcsmvvb8beGhOBuQhNhP6HFKGslHCUcJ5ziMvHOYEO0MVT254E65fHZwebo vuCB6MFQ5Y3gsuCh6OGQjxCOz2UE26JHQvE/D64TbI8eC56IngzN7wH/HDwd PRNaRFgW9wbPRc+HVvx5oE5tPBDsiHaG1kU7g5eil4Er0auhjYQtsYvIb49H QjviyeD1mKCJMVtodw/wc1N8gTYwlhXa/yloiS8OtcaXa9mxHGBwLE8bGhsW OqqD8zy20PEe8M9aQWx46FRsOD+BkbHC0NlPB9fTxsTGauNjxaELN0KbGCvJ yO0NbXJsSuhiD7RpsdJbQfXp9FBNinm0WbGyfjEnVs6oPpcuYGjzYpW3BCXm 07RY+CZEY3FGdUciW0vH5t8Kqi+lR2oLY4uApbFlQE1sBaP6SnoMPyMXU6O1 M7Gz2qpYrbY2tq4vqq+nx2sbYhs/DVExPREyNse2ANti27X62I4bsCu2+yY0 xppuwL7Y/lvGwViLdjjWehOOxI5qx2LHb8LJ2KkbwOO+BYS64iu187ELWmfs Yr+gd6Fr8TVhc3w96l2Odd0SrsauhYS4uS9YRthOcMQ3hWxx+60gnBvfGsqK O7qRE8/tBr8fQsiP1yE/Ir4zPDreEMqLD0F/+yBcFG/GmIbF8z8N4QnxA+FJ 8UO924eGx0fcgML46JvAbafG20Jj40VhZ7wdz5nxE/3155MQKo5PCJXEJ92E KfGpodK48yZ44jN7Izw7fjrj22/wxYavzPi48Nz4uYwPCnvjHb39SLee9FrX 7nXJzFEgfql7biPxK737xL4kOpB8Ctl+NFv3AdHBhg2zXQ2NbeR9g/U9WkAY mZ6c0efomNhx/g6/Dyfj18MLEmJ4cWJgeHkim/eX8MrEYC7nsYXXJIaG1ycK 2L+GNyVGsp8Mb02MCdclxvMeEN6ZmMi+HWMmfQ83JCZn/HO4OTEtfCAh8bjD hxKzeC7CbYk57DtZJtCemBc+kVDCpxNa+FwiGu5IpMOXEgvDVxJLsUfyHsR7 As/hddonjf2sSoxezsxz1cBEQVV2ooZl4N3gxKqqoYm12Hsye22vNeqWyTD2 lMxewH3ivbGqILGB+1Y1MrG5e525Pq0drz32ZdrzeGxVYxLbuKxqPO3hzTp4 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 7YTz5SecrzjhfMcJ57uOP69a5HdZ5oXqeSecVz/evnqNE85PbL/qhPPGJ5w3 OX4VL7nK0/nItA/GSqdgItW6nf9P/E4dI0GqcOoU7kJFJJ3byC3ObegWuQVu odekg53BTm+3J9ij7yaDfWKCg8FBsa6eqyehu8xd5u/Xmg/GXm51vYwpYop6 jX4ry+l4bCHfs6I/L+bfUfX07/kWy0Y5EuT5MWT5UeXlNhOT2zC3uWej3Os8 dXaFfQ3Xd5yV/DvCWm6rWFPYj+lnjovdNn8s6s+3c1zsVonxZ2s8F7u1np/4 uWqGlpBSbqMf6wLf+j3HxW6TPy705z9wXPw7y82J5Y+J5ZbE8qfE8u/jvZrx Nma81zDev7c0oeVaWpr+vsUtYYSfM8KljPDvLctpWUHLSlqMRMb/57fZSUbf yRc2hX1Ui/qo2twrcq/0UV/gFkjaj2mhj5QVfU0RWJ4f+v/L+f5D/ayG+tOT g5NlcFAiOFOG8O+FDgtaBa3l/qBr0E2G82+EjgzuCnrLQ8HIYKQ8FowLnpZR wd5grzweHAoOyRPBb8FvMkZTQ8aatEnLkybX5MpT5hRziowzxUwxedqcYc6Q 8eYcc45MMOVNeZloKpmmMsn0Nn1kvuln+skCX/0HyAfmr2aQLDTDzDBZZB40 D8pHZowZI4vNU+Yp+dhMM6vlE1vIZ81RW81Wk4ytbxtIgW1kGwXGTrKTAhv2 Dp8NwlT7VPugSqpjqmNQNXVb6ragWur21O3BRaleqV5B9VSfVJ/g4lS/VL+g Ruqr9PDgkpzrctoGu3MePCkIMrmFcy83d+fenDvZvFKoQ6EuZn+hwYUeNkec cVk2y53tzrYnu3PcObawK+PK2FPcue5cW8SVd+Xtqe48d57Ncxe4C2xRd6G7 0BZzlV1le5qr5qrZ4q66q25PdzVcDVvC1XQ17RmulqtlS7rarrY909V1de1Z rr6rb//kGrgGNt81dA3t2a6Na2NLuQ6ugz3HdXKdbGnX2XW2ZVw3182WdXe6 O+257i53ly3n+rg+trzr5/rZCu5ud7c9zw12g+357l53r73A3e/utxXdcDfc XuhGupG2knvEPWIru8fcY7aKe9w9bqu6MW6MreaedE/ai9w4N85Wd+PdeHux m+gm2hpusptsL3FT3BRb0011U+2lbpqbZmu56W66/bOb4WbY2m6mm2nruFlu lq3rXnYv23ruNfeare/ecG/Yy9yb7k3bwL3l3rKXu7fd2/YK9657117p5rv5 tqH7wH1gG7kP3Yf2KveR+8he7T52H9vG7lP3qb3GfeY+s03cF+4Le61b5pbZ pu5L96Vt5r5yX9nm7mv3tb3OrXarbQv3jfvGXu/WuXX2Bved+87e6Ha6nbal 2+P22JvcPrfPtnIH3AF7szvkfrGtffK2pX4JlSsIjgRHfBUrCAp89UgZ//6D fZZin6XZZ5EpYUpIlillSkm2KWfKSY5t6KvbSal2qXaSm+qQ6iCFUp1SncSl Oqc6y8mpnqmeUjjVO9VbTkn1TfWVIi7f5cuprpQr5fd4aVdairqyrqwUc+Vc OTnNVXAVpLg7350vp7uKrqKUcJVcJf4dgKpS0l3kLpIz3cXuYjnLXeIukT+5 S92lku/+7P4sZ7s6ro6vVlp/z6H+lnZXuiuljLvF3SJlXXvXXs51HV1HKedu c7dJedfVdZUKrrvrLue5Hq6HnO96u95ygevr+kpF19/1lwvdIDdIKrkhbohU dsPcMKniHnQPSlU3wo2Qau5h97Bc5B51j0p1N9qNlovdE+4JqeHGurFyiXvK PSU13dPuabnUTXATfL2e5CbJn90z7hmp7Z51z0od95x7Tuq6593zUs+94F6Q +u5F96Jc5l5yL0kDN9vNlsvdq+5VucK97l6XK90cN0caur+5v0kjN9fNlavc O+4dudrNc/OkMfXvGupfE187F8m1vnYulqbuE189m7klvto2d5/7anudW+qr bQu33FfZ690KX2VvcCt9lb3RrfL3jJZujb9n3OTW+ntGK7fBbZCb+Q3+1m63 2y23uL1ur7Rx+91++Ys76A7Krcm7NH3lU41aW97nViq4JbjFqzsGHSUI3wrf EpM+lj4mNqt2Vm1fh/8z2edr4H+z77/Zl2RfCbKvgr7aCm5Pr/tvjv03x/5D ORakuvjX84WDUqaavSJsKSWlJn+/0b9jtJMu/vX7AP/KcqQ8LuNlqsyU1+Ud WShLZIWslU2yTfb5V/YSpIPc7P5is3tl986+m2Of7AEc+2bfw7Ff9l/9sbeX BnHsnT2YY5/sIRz7Zt/LsV/2ff7Yx9sN49g7+36OfbIf4Ng3+0GO/bJH+GNf bzeSY+/shzj2yX6YY9/sRzj2y37MH/t5u1Ece2eP5tgn+3GOfbOf4Ngve6AY 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 hYWLjZ1dXF1DI74DwBPaj46f22TQAx9zd3QxMNjeKYOtKwZVA6C/CBCYAxA4 pf2/BIDQl6EnQyfuKwLXqR2cRbVIIDC4FgT6iQCCtSCw5V+DwD85d8KP8E59 eYidTneXCRezDj8tb3qhXWdl9os+t2J6bU0qphbvShyQPSd3MXdgXN7M1513 pDWpUN2+k/mut42mSepU/abJJUWnNx4btKOJffsxNtqB9UWVqqrDExlzvzSq t/3oLLOVWp9M1yW88Y8emL3SZtK15wtybg1b9jLGuLBjWPbr5F/1xnmf6ryh Xfmr5vMGt7nyKPmBYU7mgAEaDcuphS+1ZTv6dyva93jjsOXnwk/53m1Z+tav sir39k5Kt1lvi5s/eS5dM6eV2mN4wz7ylV6DH7wfldRqd91Tj9pfXHO3d8v3 w488iArvd/JixqSfU23Ejy9dz4SbrW/T31fouLep8HJLWtMVHqX15iqXT40C 2UbvArxbVo13bKhLfWOi1tS/h7m+BD1Yjbn1p817Yx+B6xjIoOHVdUTD73Zq fPOL2kFsVI0LNr/hQrfYWAAHcFR0VHR4aEKkRevhCQNi46MTkgiYgQBzUTs7 q5u4OAOYOddsOkub/02c/WcItiG+Z0gdMWKvWUY/C4s2ixIDBrU0uRR78sTr JwO/LDTQun2racJE461OOc7Pqm7ub+NnfTEelTTuzk47vsbC592rAYWdO6bm 707qODSzA3Otst6trOFTi1cNazfu8oSSt7vfuC07FtL++tqiFrcbDlhovCI/ fljQa8P5pZWN58fnXErsaz6i/cTJHgZnhvWiocuk5m+IdrpWh/syN8H2bqJT 4A09sWfZudSwyhPH+nqpu2xvoFvaSiyOt9VqaHXE3a9FjnOLOadyPRSTQ/yC Uhra0c5bO172D394ziHsdfsWDwuV6INXbvbZXjPrBzwatcr3jVexe3OP7E0j QvINs1NPaM8Oar6vUKOv7PxXBOsDLRIsakrIoCs93JgWZVDUQq8fIokEVmaa cjn0wCmijkKjJjTRx3KanBjk77d9lHSWyrNqv/P1p6fdSe/XrEAdu7z5risO Yp1vH9Kj5Lw5iwLQcAhn2qLW32GZUJjSr1VQg4X36+l+trvDBqT1LF0mdqnG Mh+xg9g+p21O6ymefx3Lvh2Oh64tQRBBscBaKOYtAijXQjGPf0XISQOmbfVZ /4hfFEY9m7QcV99r7dPYVuudN8c8FZyGFPh8fNp3+PNOzRwuty3ivpx47KBe an0yuUv6eMvehS2cOu3IKwhafC9u57ZNZUmbfeI/tnzSetzxO7xh9In8xRYO n7guB4NOOdzzPbcr7mGBKk+WH3R72/SO3d+ktVn8+u3LF/em1HVtvi0o41WA 9WS7ZSmm8+7OZ8ze3PUrm5l7/JFu/i9+R03OzY5Psxs6ONO4zPRVwKX+J62q QsxO5c3c3WBDUnhQu7yup8ofL+0RdCOTat/Oqe+7a2supDgP+bwsTbf0afTD lXn2e4420hIiZy0qeZ/3Sae+RqTH/Nej6vruPHsn6NGZkQuMQo41Nuh7Y56Z zyyHPUWu7UxfaOkbo943GveyPJ1+ROPFZGGm/2BB169Fsq334vizbwcd3/cs bmn3ud3HzE/NMfGWBX8sXtqfTch3e+7gZHj0Qby7zrvY9c37p5R325DqYhBp Lky/oXUz4l3saa8L5w0fJx2UbzpfYX+r7vTsQrZCt0GrotLyOyvHee1k+nWI 7NfKb12bZ37PNyYmXWFdNQabjlfXvSsE3rifW3G/g1ZRRHpVFwPH5L205ai7 aa0bRB+YNzvtWOqVTMs1qpDFr/LWTBkwkY9x2Jk4EJktKHpjMPqDwUSb7VOL Ywo6qJ0yrt8b2uIyGhvW4ezpqce2GX0S4lP3LW2xlmoVUxWdueCuVoHWJvcu yksHWogpCgbw++VX/DYY4Erw2/S/gd+iu+gqAmI3dhElMeqsJpsQasPmfy/c /2fovSR30PpbJd5z7ZIHOta5s/vuvUOLulp3KTp9w8jPRvPF2RVnOxUliBba T5mLgWn6PvNN2sxdkx4i1r+GBj4avfvZNEbzoyBPfzXtZN0TLjY/Z71519/U /vPoh1PNnjz0W5q7zzrgeOqn9sUaZ/qsPbOujTyvfPmgef0vN7zuFbBuypn7 Db0cGxRO8f+pG18qs6+ImTNHHPLz255i1qexlxZufGS5cGzZOd23yq0Bg7tt aj9niTfy7RCl3cA2qmBh6XnFBN+88kkrtDvoaaQsmfT8p5FfcIZZF+VkpCV6 Pd9609pr50GHwCVrzUe2Vo84mXmr2cR5uaHUZjPV+s8fMzfg01YdA6vK6QP7 Lbiv6L0aWmTFP0LvHwbC36G3Vm30ll5cLk5IrwbfCXPECak/ht/c8GWhf3v3 TNFKKjLI9c3JL+o0rMc7Rtcx8v8Z1P9LoTu0tdbC6QdCZO3cbjzeVDSi5HRS 1854vWPC0F6Ded3Vp/eMnr3N8YJO3szBYdu6Uyf8LHS7LLoxqtXd7jvX9sgw vWOGpxTuHPlmxplnzfCLu3tms/TRVO+7rwL0b/ivnlv6MDXm4vh9D+a/UThN lj3+xc7GKq7iw+fSkYscVR+Zu3G7jPyyZg1k49O25TZZ3N/hUFfhSViIp0H6 DAvPu4yxc/lJtW+iukWjeO7ok7gWVZNZ3Vv72dBZry5vM3zqN2PcocaN+izd +3TXGK7N6AsB8ZYvxOM7R0aG9MKGrJ5w7ppe+vvm26N6bHRwelg+ecrJrkGP suLmDyps0unCh6S9q4xGhdm+zMu0dVWMMA471sJ8cN2UV9wR+53FbTfeL382 ZvO9ZQUJjbf5HRpqrVM/kWvebebQYK+2ers2blzXuf/RJW2qxidZjs/WF6Me tdHpY3w028ryTNvHjR7vfOd90v7CFefxnerbedv0DX4S9HL5zUVZx5vG7p7Q IEGh/SLRcm9myr4GgVvWx7SYlpsYumlIru7yvas6vNKJrZzuPGjDl1tdj860 Pha1O8vsZ50IqoXD2p6zt5Va3t+87nj4ppGB9IXWjl0K56/LH7l6Y86C4cZX 5/6sO9zKyblAOSSn18x6e3NeTjpueempuf+xjBc+tz/iyNhp3Jij0UcfDHmy YuFptW2VcKhXyJXOJrlXPjllezr+ZDDwmO7SSnWKHIawfAWFsQjD7b+nl388 bfLbJHLOhIOSXKvpvxoyNV97hhou4LctTi2ItY/qS2Lw6z/K1QBKCxanzZqu GDvbq4V1M8OxvInhzc1xYkStf+HVQWJgjt34hqgzikbhKB7FkknuKJSALFAg SkJxsNUf9odCbQBKyq0/3uZPB2tCUlxs//jQuAFJFr8jFXkKRqG7ZL79/Irc M1d/LnHv9qLgl5lb3095UvzI3/PMJePk9+NLLsbMHn+8cwfPVy7FJZX+8/o7 7o5zS6mKP9ypZMHD7LvN6aFZOnNOqdqc3NgrOH3nle3KTvMOzl74ZuO5foqD q08XbR+ZP+Gq7r2zTaYcPKrjWfy88/TCGU4bVOleO5U60XxMRZZwcIRG6SCX 0LxJB6fW6WnQ4OHrlSfsNZrovO88L+oFvleOg4yTFqwvXctaFZYPHFVquGig d1bvoz5NRtXT7GRq9O5Twiq3AxsNuu27v/rkfZ+24rCpe5943rNM0/HZHBNW dOT+1YeeCZd+KYy4vv/NzTt67KJc3mNBx87n57YMf/ko4Lyr0+bcFKqhmELZ /OYjhTqF0odd2qRXzvqvqYD/NewzEkhpMtZAAjlJciNmVhiBlsNlWA35wYNu 5oYWhmbGRiaGURgp0s7J8ennsH5nU9Ftfq8uvl3nP1MiBq28BqWVhfEnVj2O uejbeX+avqY665wMZsdVi9lMHDac+Ne+r/cDt81CXze983uc1Doe8E0sKlNq zV/X/Tz3sJPjc7enktp+qfP++3AZFR6XWLrwXewhZqVbFksjOfRcGmMWGCWG LJKp4e+QreP8djAsSODdyshd2b95lnWz1P1Zece2d+cqubYIrjM2Ukwb/2WH ZG6qXRMyi9vs9AIbjYWnoq9MLf0pdrFM2HBtudpWlTPmlWxyXdkv/lz6oy1k yth4YW6VrMv/CpcFE0w/B0r6TLSVuiZnWB57ZGeG8nor4ZZN+nEHJO9Xb7jC eOHSB8a45ZpJGueOrz2mn7nkQuyaFu0Xi92P5avofr1e8JrzpAMDAJgMvw8N CmVuZHN0cmVhbQ1lbmRvYmoNMzYgMCBvYmoNPDwvRmlsdGVyL0ZsYXRlRGVj b2RlL0xlbmd0aCAzNDUzNi9MZW5ndGgxIDEwMDAyND4+c3RyZWFtDQp4nOx9 CXxU1fX/uW+Z92bL7FuGZCYZEsgeErYAkoEsLCFsYUmUQAIJBASJAkoUFBQE gwqtWBW1YG2VWpUJuARcQGttXRBa61atIm51iVIXsNVkft/7JozY+rPx85Hf /8+nOTP3e88999z7zr3vvHPvnSQTYkTkBEgULq0aNyblQ8+7xM5tIPJPmzCt auzou96dQKQ2EQk3T6rKK1jy4KoQEfsDWs2YVjVuxonCoWOIDqN4c8OM0srq GaOa24iMEpFt67wl9c23bJyLtueE0WbbvAuXB8+7bdzFRIs+wgXnzm9esKR5 2KqXiWa9hvL+BfXLmslPeqJDx9ChdcHilvl7f7MqmWjpZKLxpU0NS1bOK59y I1EfpJE7mxrrG566/zYX+oaNNLgJggS9/BzK61Du27Rk+UrrVPfjsD1IpBt7 buMF50kTxF1Ejz4BWfXipfPq/7bpq78Q7d1KJOcvqV/ZrJug5+13on3wvPol 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 6Wl9Q6kpwUByUh9/os/rcbucDjv/pUUz/2sEVdHJkigwyi4LldcFI+l1ESk9 NHZsDi+H6iGoP0VQFwlCVP5tnUiwTlMLflszDM35/6IZjmmG45rMGhxBI3Ky g2WhYORgaSjYzs6eUg3+mtJQTTDSofGVGi+lawUzCikpaBEs8zaVBiOsLlgW Kb+wqbWsrhT9tRkNJaGSRkNONrUZjGCN4CLloeY2Vj6SaYxQXjasTSDVDKsi 40OlZZFxoVJuQkRMK6tviEyeUl1W6k9JqcnJjrCSeaG5EQqNjliyNBUq0S4T 0ZVEFO0ywYV8OLQp2JZ9oPXqdivNrcsyNYQa6mdVR8T6Gn4NW1ZkTKg0Mubi t7052e3sjmnVEX1JO6Np1XtpfHRN27g1paU1/Gr2kuoNp6r7xdYy78IgL7a2 bghGdkypPrU2hWNNDTrNya6YWp0Cq0NlVwf5MKZWayNAp8ybByO5jA8zNuDG UBmX1C0KRvSh0aGm1kV1uFmJrRGa2pKyO3F8eG/0CI0vC7ZOqw6lRIr9oZr6 0j5tTmqd2rJnXDg47ts1OdltVltsptsSLN2MyXwq0xiv0zhNnXOw+uRUM25R aBxcJBKcF4Ql1aGIkDaUQ+NQap03FGqgGoYZXYj5q2u1DuM3Qk6zhoKtXxAc IdTx0bcl9d0SXZr1C+Isd5e4y6H+JB/JyopkZnJPUUpwa2HZSK08KCf7wkhF qNkajFRgymhyNRrVDMvDlKek8Lu8qT1Mc1GIrJlSHSsHaa5/N4XzsmoiQh2v OXCyxjWd16w5WRNvXheCO9+nPdyuiJoef1usbkdZ07AIc39PdWOsHo9PWbBN ktNaJ1en17du8qfXtV5dg1tTjkextbU8FCxvrWutb4+umRsKWkOtbRUVrc1l dSeH1B49sMkfCV9d08QwqZHC2GxEHCXVol+oiXGCX6zpeX/70F/51TURa53W ZUVVqGLK2dXBsta67vvdLRkaK/l+582hsHFpAXv1ocmBJbdMDuwTglSn0u7A U3XtPJtTNypD5R+CBYVcTEYeO5+2I+1C2o/0BtInSFEkBevN+WRFmoN0GdLm bk2dVjOpu60o9AnnnxgcyD8RPjH5RPOJNSe2nNhx4sAJ1QrB0hOHT0h0wnoi H3VrTsh664m6E0LRpFHXCEbagrQDKYJ0AOkIkg6W8X9xUCckoj6R/8sCYDHS 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 yAndaMNm6Ha+unc5veqM8YXhqOiSYgbwdEc8KuZMAd2Afc3W4CxXzoOtd2VN wRE1qzPCd0PLMVrOz+ejsNFG/zRr9hB4dKDRn8Q7s9Gl8XzWOzvRe9Wy1U9a P+9ofgLjJ1swt7Xaun7txPV3HJ9z8F//uf/m0aNufjxR1DB48aS/n8ZX/ydO 7Dtk7fn6iPWHTcW3PgH8GYsPWB9DyP+z9VH+lbTdnsb8naANPtjXT8x+Q5V9 LtITor3hdFZrikfTFEkKeAL+Kq/X49GyI1RHkM/ndGrAAzN8zp1aG3hsb0Z9 CV/Bz+FX8CziI7zJ18Bmt+HPAX9GfCm9OZ/GnxVpu825TGNSGZIu55TSnU7O Z/sn2leBi1FxigBmBbMYMRQD+idmLMNZDAxhIbCMElAuG/RJT5O7lWkUnmJ2 Pr/P744yxaQIU+1KJSRyVhLvrpbp+3YOiQ4f+OHbrYnqqoo2PH7O3UPvW2Gt 4o6NO7HsmfczehTcPMOai/scurcouYDpN/DuMbOXw0pGd3zFSoA0e+Ge5lzU G0uaZPBxpoaZLtRpdcG6zOm9+AqmKji+F22HyiGlTGkOyWdwLCfnHQf9dgjl RQU/rTzrIM0Knq/gHEeM4cK9lEXKg0qLskc5qvC8Mkz5vcL4AGcpcpH/YsAM 5V7pDJwKkEAbnn44vMTNoIu4rePkIW/ulfR42OW5Urdp3gnzKm5JkbRWX5NP 6vUF+QTeXmHFrMD+Dj92+rF/a369LppAlU6K50WI7fTiND3VgTwRQHhnTDmr Xt+K95so5fOKwd3SZCBt4rhgVz79gxIJmy0WFX1pH75MI6zUU4lEZ1dMnxJE L0Hl57pLs0i/lHXnFxM7LW+jWpxqaKH7lGbhuWj0o2rlE1M3PD5o/olnmyq+ en3NO7PZx9Tm1Q0b+vc/fHDEXXPu+Y/Gc9ZP+BO9vmHcutnXTLn6ir7TH596 8Ivb31qjNT5YX1PVp0/fPnlXHFm+7NQsrNL4VAi45q92pucucwyScIk0W5oj tUosR6pYhghI5H7HgzPlwful+AkdKJCkmJKPoBI024aYEHFPIwIcphWRQQhJ Il36rYlb5yXS6PdL/cuuqg2sm1YpKWvBh627maPWPM6xb98v/6bYG6JPP5iR GyJmTGd1TXe95DxicLoz2yj3MjER218VQnTKTQgiNW4bfUv0m5hqdKAr9g0o 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 /7rqqW89VfXQr++8Y3Tf7XeM1m8zBbjbPfWrqX+b+h9Tv9J2S/sPn/nBs3// zPdtyTpVT12i026s2Rd1S2ie290/o6RzfvbiXLmUmjH7gkzWzcy4oNTstJTb dcO6rXtvwRiyJ+vcb3PbdvpWa5EhElklzzmvO81lx7z1qfjh9L69LWTt3Omq eVbXrGwxt7ir2K1Nt6zezNRGnNOTn/3WttCcuemmuWlt4855S9Vifm1p6exo 1RZuZ4v+rbUMv+nMih9v3A5qwy7Nw4f5VRv3fn7olbvXHlzWcuOu93/yxt3b b52qN33rxvPPver3D039durls/qP/yH14A+f/P7zzz39U51vNZ1vp+h8Mx5g 3+k/5Zped2OvbgV06lZAYdbinJsudc7Slm1LplMbtdqWnVlKtUw4O1vLthHQ 9vZGwFzzWr56XCv4j2TO7DntHU35jqa2bc7svN60Z7RxOyc3a7qNA5nT3dNc 7C7Oqjf1NM+su7ryabBKZnR5qS6vUzcUUzPf0gBw26AB0A6WSIP9f+fCD666 79gTX33vX6244fjnjgxuv/GWwfcdnqp7uTPOdZe6pX9yq1u2fPJ/r0l95Uc/ ePLbL7/wPSd6o711VlkP9rfuyx/Kewv6M80ptzn/z7nH3BucZvc9/Xn7arfp Iu8R1+nPj+Wey3mrrA/FV/oXt6U8/Xa32Tc8Ulmsr6xjyzRjPkJNGveZrDQQ M2LL2gCMfIjtzXcVW9NNZqFpL9Oabq43FZvKiXpOue666RIgMoOz9u0X29Q5 G3hV9p1XnpNe8pmx9ad94aQzT987efwn+v7kiV+msvr+lrqz+rc0l9OLZ5c7 F08u+EH5u50/9X7W9tPOX3r/1PbLztLMBa47f1mpsuD0Ep+/bv6kd4N3U+nG 7tu9e0v3dN+54HPel7of9h7rfrr0vQXfW/pS6ZcLfl/sLsyvVB5x1/dXi4XO YrFQrMxPnVyoFc4qnF+4rPCBwncLPym8Uci/T3+5qvCxwr2F44XMdm1WFHrS M2+5tsvtesT9Yn/Qc0F71ljarrGxT2qeedXF+pcji/aWs66TrWRHtfTSxtHS tLGjsaCvZ3NZU7J2zdnbesS96hrnIRh39Bsn40ydbJxW3nj1DV1nH39jPHGF 2xn3bMycHunrrjC9GlpX0yNvTlqCezSWxB0aZmhWZmFF3lqavOSS+qnzrvjy ZP/f3DNw9LzWI51fvOT9p86+4e+GV377C1Pfc8+YM7b/4vWrFnYvUudcvfGj Xzrr4Ej332xYefqCzuWnr7ti813/0Whu/ol/cZ9puluXw0f62ys9fk9/z6ae sZ5rdZPigZ6cbngd6Z9fKuePthYyzj+7T3QdTjW3tJXam3PFbGu57B5x/me7 kaLqX5gttRfbdzpZ45TyRDZtdipZX+fWpuzjNqfy+q29w5Tm0KXwpjHfwCaO 7GJryR1f2WdaWu7OxTONx+8SZRpcbVU7IktngG5xPtx5Btvw/oXDw0dvv73U IXs+c3/5jEs/7elmZnZ46hMfP370/J5F5t7qhjukl+ga8oP9J/VklmZqmcOl O0tNvf2tabcwo7PTWGm6imw9rA21zhldOzsnHFtN5grN+eadZf1axdVkZMEf M92JEcyLBqbH74px6Uu1LW73WuvpcqojKSpsVRmxghWuNUbN061au9T7grjx gr23sqPzt4eXrj3ttvsuumj0S0e9W49//cHRNRe852kv1Ka0a9bUSkl9FwW3 qX/5lqajZr6HrPGLK/YXTRdIdltqe/a21L3ZdF9xVXFj8ZLiA8XHi68Xs4+c OL8/hE6QQ9OdIIdwJ0im6fVCQZclV5keu2tyqZtzD+S81ty8nJf7prvJDr27 o7/Lca/qb/XmeWNe6lrvIc/TrXXP8x7TJziu17+8YkzDTdah6rmmjGO/GM8q 41WVLTddov+k8uavFzY96rbafpPIkJ1lu/9mdb9a/scea2N1mx7/d+g1MYbk +OXO+PwEIruXTD183zcr3R0Lv3PX1DfSS45/ePjSrQe9j9p88xwn/RWdb23u SP/OTzmfaronc7vp0Sjd13K0LZcv59p6yt26ydXR17Gq49qOxzt+1HGiI3t2 60vOy00vZ36SfSH3QunFllxnupzfkj+SPpJv8tJevrW8Jr0m/6H0h/LPp5/P 518tZ7KVR04s/Hq+paT/Vvp3p522ipP2vENmKjRdbJRbWu7NZzvz+Wwp39x8 qFjSxVPJ2K73pjOd6XQmf0tav0fptG4MNesWRMY8lbYW40hRyJabi3lj6KZL Lfk2J+3rJ76paGjI9v5CZVX+obzXl3f12/fe/nxf2V2l2/te2X7r99P9ujGX SutT/7byuMGr7nW2/TSr57jpz7h85/Gdl8/qeXVnmxDmf+OMEHkkvL1XI+xr C/vKxxp9xBv/RL0al4/r8munfUAz9eOxG9OjkXKLU7+7+0ax4sa7rl/Obz8y 9Zu7b5r/Vf247j32sjdy/K4f/L235w8veVc//OaP9HMrar2frp9b2Z3fv7G1 fV57X/uq9o3tQ0317L7mS4v1lj2tT7QXs+lMLt+Sb013ZNx0UyaTby42F4op neOtrWWde15zc7G13FoqF3I6U1OumYM33/pN9wxtc2bcM/pPaX7Cdb18oVw+ 5OQ7HSef8kqlQ8WUfjqpqD8kUzauVfoNeEwHbdZCX1xp/UMmU3TyrxWOFFOv eUec0mt9+oGM6Ufy1+XXnnPca2zvyHVOm7HdjM0adY5Y34PuX+jsfrUxexuz 1Omxp/XoJsRh03mSW9ny1MrDOb1jpoDQ2xx8azGzQZg+pJ26KSd0nRCsso06 ndNF911TLz3ykcXdi+ce/erU8+7ah7/e9wtvqTv1+3V8LfvDVPH4D91ztk/t 1AmdPfXeVKjzeaYWzGV9Pat61jet79jYs71pe8e+pnrHoaYrOw433910Z/Nd Hf/a/G+tbYebP9b6QvN/aXm5tekSXTc83vN6T9rR1YW3tnR96celVFfp/NKR Uqo9l8uXyqVCOVsqlFoLh/I5rf1cVudzW3tnW1u7boi09pdyhbZy2RS/zi1d OoM/5KS0bVPoam0vZ3MlZ8I15syMUttVTrlcvqacurn8QNlrLc+z+t7U31XK 6xKpMK8wVkhdW3io4EU9P+anZeXSJaXXSymn1F/apNPzQOkf9Nesb7+Ola4t PVfK5M05XmhS8rXuium7jQggFEZxUaT/dh+z3X3OquP/WD4WYxvz1Fri5nbU y2WeivEoMQ/l8p26Ej+py/KqalJWtWgrel+ZLew7ozMrph6+/xsL5vYsfOy2 qYdXv+filadM7f1iecnSls+mlx6/e+JDVx/0LvvD0z/+xLtsDa3fh0X6ObU4 3+3fk/dyuXO8s3Mf8z6WyyzNLc5fmLukfMg7lHvGeyb3ovdi7tfer3K/936f a/FyhcIh0+Wn66JSIZfxnmg6qt+E0hOFoy2OGeRWyOSOlHW2jOn8SUf5c4nN oUzJWNzLM0eMnG1jeRM0iLNRUyVlusS8/Kg2dn7jpEJnqrX8O5uD2pDUJcsx 2z9qfDR/of/9rzY7liQZYH25UG5moXFfcLOBmD9jvrfs4rOnPuU9PbX0fbsv cI/emsplbr3i+Ps/kL9XX7/zxLHUgabnncB5tV9eOPNCf9/Mff4H/Jv8+/y/ nvnIzPzW7J7swezhbLorl+stzF3kLXZv87xlc1fc3HcHH17mar0s+3pLYXj2 Iy7rX9Tytx1fmttsPLab1MIlS+fOnd/rebWmcrnvuyu+rWuKI7p99oi3uH9+ 7+LFvU0fnv+U+vDSB+/v/U2v19rb17ux9+Lea3rv7/15b7b3UbfiVI0V/aYh 7KLP9Pi98aouKvU7bN/3tsioaTMl6huGsx5bdfyNaEQ/2DzR0DchTz5FnKI+ 78iT+fTQNzNd5YyFdqxbYGaV0CaDMYa0SRiNMj7JeBydpO2iJdFI1On+GXeN 6/26vG7DarV228fFygH/A+csWNS95fzZixd8+GB4/p7SZ/7qlBfuP/KfZh4t ffC9F16dOvm25adsf3Kwq+fk2uf6c5l5lUz+/V8Jn/nIGatu+9oFj7/ynUdn f+DwjZeNmhE86ROvpV/ST6Kk271V5/H+rqWLTlpyN7tD/Hv2OfH56qPzc+tz y29e9oib/w99O5Y+4m7ob27Z4bi9N897Ue1YYL73du3INvfumLd8x7zxZb+d tSN1Tsh3LH66fUdhfe3aq6OxqMd/F41F/d0xO62K/nr8WLQFv8i5TUu6F3cu mbOkvLi4ZGZm1rPujFz7s85cV++1lvReT7rrWacjrzezvZZn3bZmvXnLsDRD lStOW6eXXqj/yPZFMxfo5kvZ5nOgyictSc2EPtfgbZ1fo27WHfzq1Cufnvr9 1H1fded++r/e/cnP3vHsz+7R26bBnn+3/+OP/t3te2+bvatn4F07rz544dnj Tc9PrZz6z89Pffpb7pNu30/cXd/64FPfeHPqt499+amH33RbH/vK8fKi6275 b88999LVY3PP3fDZ+++6Z8gx6wdFn0t1i8J+3Fv05wWv0342eJd7R70nUvNS Q6kX0x9Nv9F0U4Zn6tlTsz/OZXJb4PNc/kThY81B8w+LG4p3F4+Vril9vyWt Px9t+Vbrg61T5fHyP7Rd2d7T/kbHGR0Pdp40Y6X+fLbx01WfmZl5uHtW9509 hZ5XZq2edd2sF2fvmn3zHD7nyJzX5t7YO7v3pnnb5j1ZWVL5zvxPL9i8cMnC z/3//Sy6NPksXvCXz18+f/n85dP4cex8Ut5WvR1wr3Uyznd1jbXoxIN6Wz3x it6u1NtObU3c4CxyUvr4In3c7Id2e9qJJ/V2pd3frs9c5Fxktzv09mSn9cRZ ettmtybOPh3Dk3prYuizMfTpGMx2pd3u0L8Kfc4rett64mS9bbPbRfpXZdOj dCizPc1uTdqq9vyqvVbVKeurVO0Vq85cu+21WxND1eH2zLX2yFl2e7bdnnvi Zb3dbPe36TRUnfNPXK63F9r9i2ycO/Q21FfZo7dlu99m9+fqc0J9FbM1Vwl1 /GZ7tj3nXH3FUMds9rfZcy60W3Onp+nYHtTbsj7nNB2b2Z9r93vtdpE9Z63d nm2PmDkST9Oxmf1tdnuh3e448S/OSpsPK22+rdRx7tHbNrs/V8e8Usd5VG9N ClfaFK7UcZpzztXxr9Rxmv0t9vhWu3+hDbVdb9c763XM22xqt9l0btf7N+ht m95eZI9fZI/vsMd32OOOw7zN06uMKCde1MW0UxXse07WORP2U87s6eNpdE6T 3t8E+xndBt0B+1lnp7MX9nNOt3MN7Oe13f8U7Jfcbc4vzMoy6ZS+VtE7ze43 2en0z7H7GXv8Iruftcf32P2c3T9o9/M6pku9j8C+63R7r8O+57SkCrCfcoLp 42l0TpPTnVoC+xmnK/Uu2M86j6W2wn7O8VMfhv28c2a6BfYL6TfTm2C/5H0p fy7sl/Uvz8F+m07/m3a/gO6x2aS/+Xd2v4iOt5j9YsbuG6fqlmKX3e/Q++3F RXa/E50/w+ZDtN+FjvfYsIHdn23OgTjnonPmof1F9vy1dv9Uu7/Z7OdQmnMo /iI6XoT0f7HCfT+obN03VNkwOjI6eeXYUGXN6PjY6PjAZH10ZEVl9fBwZXN9 777JicrmoYmh8YNDgytWj9cHhivnDYyPj16hj+49MDwwXjnNxnT+0PiEDlfh K0TVnhadFYWoT1QGKpPjA4ND+wfGL6uM7nnH61bqI5VJ/du2kfrk0GBly+TA 5JAOPDLYNzpeGdW/jFd2jx4YmRyvD02s2Dy6S59+Xn33vtHhgYnllU0D+vju +kBly8CBkUGdoO2jByr7B66sHJgY0rHqVOwZHZmsTI5WBusTY8P6Bx1xZWy8 rg/u1r8M6b8DE5WxofH99Ulz+V1X2sQM13cPjZgo9A8mjnF7dGx8dPDA7kmT 4iv26TSgK+i/9ZHdwwcGdZ5V4kSMjgxfWVlaP7kytH+XjhudPfInr25PH6yP 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 1Vq88jhWGNVYBfiu8PKtPtVaBfiu8AquPrEbXQF8V3gRV59q6wJ8V3gdV59q 7AJ8V3gpV5/Yk66AxCu8mqtP7EpXgOUVXtDVp9rZwOUVXtPVJzruKgDzCi/r 6lOtdCDzCk8h71PN9DBe3x4rjGinB368xj1WGNFQDwDOBz5WGNFSD4DOBz5W GNFUDwDPBz5WGNFWD4DPBz5WGNFYDwDQBz5WGNGLIABCH/hYYURX6QAQfeBj hRF9pQNg9IGPFUZ0lg4A0gc+VhjRWzoASh8wrDDi+M0AMH3AsMKIUy0GwOkD hhVGnGsxAFAfMKwwosdHAKQ+YFhhRBfxAFB9wLDCiD7iAbD6gGGFEce4BQDr A4YVRhzjFgCtDxhWGNE9PQBcHzCsMKJ/egC8PsATy/tEB/UAgH3AscKIHuoB EPuAY4URXdQDQPYBxwoj9lcHwOwDjhVG7LwOANoHHCuM6KUeALUPOFYY0U09 AGwfcKwwop96ANw+4FhhREf1AMB9wLHCiJ7qAZD7AE8xz4jd/QGg+wCv/cqI /f0BsPsAL/7KiB3+AcD7AK/+yogeUQHQ+wAv/8qIXf4B4PsA4XvGiH3+AfD7 AK//yohObwEA/AABfMaIHgMBEPwArwDLiI5cASD8AE81z4j+BgEw/ADPNc+I DgcBQPwATzbPiB4HAVD8AM82z4guBwFg/ABPN8+IPgcBcPwAzzfPiE7+AYD8 QGKFET0WAiD5gcQKI7odBIDyA7wOLCP6HQTA8gOJFUa09AOA+YHECqNa+kDz A0Tza9TFBgPA+QHC+TVJbSYAzw8wzyc2YgPg+QGRTwTA8AMikgiA2wdEChEA qw+I4CEAPB9gPP/nG7MHRup+vE5PgOC8+vPYNQoKQkFoXv35Xvko6OooKALz 6s/z2ijomRAU+SoTaW0AVD54B8Tw7s3r1168adO6DRXulzZtXrdl3XlbV29d v/G86GCVlzZt2rhlvTmy/rx3RweZlKU1G1ZvuvisjZs3rN5aYRW/4jccEfqY NFcplZzp/1z7MX+d2f36b2d0eHbNv362zORP+cjZH/nXkpv1Hrh+9mJ9aL7n uqzZz2ealrWkvFlNjj+QKSzLuGn3+qrnph/Y4r/XX46OzPls77VznJX2s9HZ 5Uw4o86wM+RM6n/vMh9/Poos3fngbx/ar9b8rHz7g7ed88uHJmfc9qR684Hr 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 PDwvRmlsdGVyL0ZsYXRlRGVjb2RlL0xlbmd0aCAzMTI5Ny9MZW5ndGgxIDk2 MzEyPj5zdHJlYW0NCnic7H0LeFTVufa31p49e88tM5O5ZTKQmWQkhlyBAOES yQAJCAG5h0QSknDRoCKBJASoUi8oJWiNFopgq1Q9CJ6jDIniREXQaqVWKvVS aa2CKFqrKdoi2irZ/7t2hgR72p76nz48z8+fb89+97fW+tba6/Lub621MwzE iMgNMFCkeNakiTVvbykhVvk6UWDRlNmzLl2TPO19ItVKxO+ZNitvyNJ9qx8g YgeRq2z2rEllX+SPmEj0bD3RPYvKiqeWl42t30Nk3knk3LRwaW39D5If+TXR 5SiDPbxwZWNoh3LPdKIl24lk9xX1Vy49du8LS4kqW1GBl6+sbainAJlQXg3K d1x5zeorYqffnE907WNEI4/XLVq66trnDsWI+hUSjdlZt7h20c+btuN+bArs h9chIiFLyUB4HcIX1S1tXPXzF11tqHsI9/vD1YtXXEsfnxlG9Ajqz355zbKF tXMWLv4T0c67kT5oae2qemWYugNpqD+Frq1duvjSBtdJot1Id+6oX9bQqIWm LkT9IiK9fsXi+nJ7WwpRbSX6aDyJvuTzY2rao7Oq7YWfU0AlIQ8EY/vE9cDv xlzWNenMbYqmLiBOFt1eCK7KdV2XoYyrkX5Q0fgkWkTnynxhw7fQEJL0MCcH 5RFqYZiM++pl8BOsFamqvE3OpzD9QL8u4xa6gieqMrcYjZxzMzcg83rcqafo 2VPHh1B6iB6RX+uay1zKDLYb3XXf0Tf1Yl+j7Pj17FnNZ9Nb9C8IbAfyPJqK ay17TXtY2kHNOP+Cc6FIx3Uqzqaz9tCvx7kc9jX/qExDjXbUUEOTDE/T3Tgn Q59i4DRFDtAD8XvWdNtRKcoaLzfD5mmagfRtIp+e9jRNg96MfL+Cfr+IMw6m V+P5XvhnbUKZk3GOkC6l+biW45yLe4p2ZIt41oQxOtv+JsrG/Yfr9jtoprRD Oyns0ScifwT5RBlLoK/rKf/Sf6Vn+6RP+qRP/t3CtzBdeiJYPCyieuJNNhHn oRQ9OQWpTi+AvL2ZkkQKJnJ3CjsrJCb2PumT/1uRSNKJJEsS4+BTkvyJ5QB9 qWpYzJi1M6CXQDNZgBayAq1kA9p0TKAEoJ0c2tdYOwl0klP7ihIpEbqLXEA3 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 OJL7pSSDT/aqybaWhBi7JmIxNznlQPKpfmRNjmkHIm6Mp9fj9BuSZINi48m2 +xMSkmNsXsRG/d4JBJTGGnfUzd0Y6ojpYmI3oJM4dfBV1F9/uJd3jsx73wHo RBck+nCOxPDjSSjqPPM++oSyxAOWoHeGeLiqqrKoKl/0xhimM8CoXDyGdfPD iCNVWRiaXfTV1obVM2evDdzp/dWmB56ZO/zrfSN4cv+n11Z/vqljwZIN378v +aXfHn9o862zT+1dtQP1mYrea4UHEz+F9ctI9m3W+6y7rfushq2GrfI2a8xq MIqfd7HgKYIqC25Y3UK32myiw9ySAY+WwSrJGQZZsZ1Sd3PGY+yNSLJZ8MUm cWaxGuCEZdVkJYei2EEHvibiNQX5NEzBu/l+/go/yk9yNShy8tVtCSCK4/SK 5VlrhLt2jswTWw9f3P/B81SJLsoqpJE6V9Zf//z63KSsbjekOAoLxSkeHwJ7 UgtYvpSvhC1YDrEvIl3eIP/Jmu27Ag9HRtR1jWUr26U7v67c3tXCvXzRmR+B S014zp/Fuj+NjkaGZ6gDHSPUEY4Rnjn969Q6yyp1laVFbbHeo+5WO1S7yehh qtvjeR0PuMPjdTg9PpujxR5jhyIJtiafL8XlPpXoNLAW8P/tJ4xNKbaSZAbi nIokm8wjPW67K/lYIktMNDdScih5ULI0CMn7+HewNnDzYeRk+9vs9ztifGjE ze4PUQTLqnoyTKdPxV/Nuv1GGH5j+YrOUzgcZ6qWd+brjxN4VEWCRIJMeMQE nRJHrle7vXWcTK4CxZ0C9sS5pFzsSlVSJd3dOISzyWXDVm7hl8zLL2pZsKbq psU3PsZL+3UVXL54xS1777r+yeotNeyBxLxJt0aueqf5u613W/gfd3RtvPw3 P+s6+di22heb4Gmv1z6Q2vFcJmH/MZjuicyHc0lXJ/kmZ1b45mUuzqjLWZmx Ouc2+RbLrRkbcrexbfJm2z2pmzIeSd2VtWPw/tSnsvYO/hlWch+wgJX6NeXl JaY1GeWBTYk2K6UHG+0mZsKpmg5nNx6zM/T72naPv1GKsd2PpzeSh3lEDw0R nlXvnc5TotmdoJHuY0W/6NMWiIKF8rChifqTZFRSmMfN4WyHDR3DXMLhDtc7 KIFJvQEjWzN+/P5Hfrhv8RVTik8/ctfPSuoqr5hdu65u5pi6osbmeStuq5+z 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 u20B0zO+eOmoIVNSaK1dBCq1FuKxD7psFc7g7nTd7ZsVru693Dc/eE+OWC6W e6aEb0mbkMlleUaGS3LvEetyN4sbfQ1pe7Q96SfSFNF3nCOuzPT0VvyiFae5 fPT9HdNdmWz2yngc/2nyogBTgjFuJfmWKizKlhIWDoovjifxrdhlJd1QnyNv lffLZ+Sz8nmZL5bn2N8ekKFMT5OJ3Erynk2tN1qxz0rBC2lfzIJlOAAg5a+t CtdCF0SnvXl8xG4Yzq2spz1VCNi2y3bIXqwcdOlSJU18sY487h1LaLSNatI+ at6N/dJByaXTVmJeLgWrhvPtHhjv98EaUNlHQ3zRPpyRuPW2DQd69f51Q86t E786t+5sPX4ID19TtmxDv35v75g1IBp9//f/gz/z9pkxpv/IbXeNKcifMjx1 8L6ZLZ/UnKsLa8nDlw5ZPGNyTs7s8TPvn9T64w9w+e8Dsg/YXaqd1jBeEDpE EyZcBUsqoOQIDvnipFVsI3uAbWHPslwdi0FhJUlV0irprMQS8QDTwpBVzFmG MK14ghXftaHCDwbH0ZQGpMIGLhUK9ZX4MpDnCOXPlfUdcorO5HTaab1GpGkv nkoovPxCdEE35tmE6OLfccbhwz9fgqv/Vfs37F/h6k30qjXR5HA6VyCPkGv4 WnEhv0TcxR3mjnEt/GlRdbndZbLqk2UVE1IWQD6ITJeqYiA0GcIirxSQg1AQ UQC07UpAwgWZPSNjWaYVMF7KDtwcKAnMCMwN3BvYGWgOnAicDcjnAzgQgGC0 5KAkwzLJgSCVSoXXlcMvqWyst8shiKazAIjYJLZDHsF9sFMnoUpgGrwjiPLi 6WO7L3pjv3w89uBeY+fCh2aMzt14YHvPxvfve/277kA1ltXl1zetmoEzmPSr h35qRyu/fWXc8+CXD0D7UZYRwpOtiy4kCS4RjPdzCShODPnSjLRQnpEXKjKK Qq2iLIvEYENDjaEhbr24zlgX+tD4xPwwxOtGnKmHmEl4mlhiTPaXhLhdzF5+ l7xXbTKbQmfEFqPV3xKSH3A/oO8P7otr4Y+5j2vHdbHYvGASnddV3RU2WdNn hnzLVMmnqpLh9ZZ5VJ/Ho4pmKLSMF330zbAxLnOG8rxqMiLyeiTa6wz5gKTQ wWt8CASNzzQ8Xm9CkVqtzlMZdfdoc5a5zDxrstjEhonNVjLbClhQY6qg6Ngl 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 m7Lcy9E9b6kudbmXo3uHEt7Rpd65IjqUgDNUe3Ve7KVNeL9XeLm4f+c23L8Y KK/Sy9stUbFXqmrvbMm7EPbq0S1/jXe2QB3JUgX31a1R9/scL+9SdK/dY+Ne Xv65g3j/HiWgRopBadV/OC6h84x6teLecz/vYoip8Wo6Fyky7rWhKq8+y0DD UU8D5ZAmyL/YSz0bzhmD63R/S4DegjqYoY90c/Njk7Uag7qNw3XEvONrvG/B Pe3nfZvrpT6SImZ4d9DXs3sl7i/lXm6+Kvz84rr9BS3Er3v3CvzrwW2rxDvz TC/WTz9H/xKD++ceU6bvu6+PuP6c6fWEUZRDUB6/FygDZYS9GiyGq495d6zM O6bSaze+Eiu8lLm/03WsQVNh/evFcFfKvbK4qpwNbdHvMcoaSlHufUvqNmij yRprfHXFcI7pXg41Xi2XNFJlNHSRjg/q1VV1ccP1zYA+JwFl9O9SwiuT3xP4 d9wtu9/SE9DL+O2oGhSW7Pf8X8u9+xHRT7CY10qqvXIk9Jn7NlKZf/YSr7Yq vfYxt+EqgnO76ed4v0e8mqiCc7itx6/FhJc+KHGQe6WnoHKvnwvKlqtnWG6P 6pcQnyvh1WlQJ36r8dXy+9Lh/GNwZLJH9L9HoK8JdJ1o6Pmne3kke4QYtOyg FH6KxvfGP9a/nhLvDiYaagdr4d9dQwzauqvSMp22BJ634T/UhJvCV14vffyp 3h0r93RVcsS8K/4frj2Ze0nDvfM1FTy9kvftj1eAn6+Ny3UaukfulfjX8vun VdDKSryxgXvlcU9RR1NCpNFdj8LT+vfP7LjXR1VCT+WWdnbDk9TPJ+iRjqYh 2ojIbdnRoxw5NOVsHZs46og0jsaGlJGr2xcde6w5V3872sjVvYZ/gv6Pct70 E9KHpA9Kz0+30/kxz3rM8XKK0VBzs46S27hQPCXi3beKo9bJMM/7acR76ngb rxz+afT2w6cc0TOu61DHNehPOXw4lJY1dNjwaSNGnzNuZLj7zLK5laVG9/Co oWEjPP6cccPCg/OLhoWHFQz1j/jDscw7lpGO5d6xnHSs8I4V4QkFo4aMHTps Yv7oCcOKwt0n9DEMbvR1/+TrYlJykl5OMsgpLAQpmfKSqWQySUpmesnMZDJF SmZ5yaxkMpOUzPaS2clkFimZ4yVzksls2r32hcGMZEKHlhBUwhoSSqK6fMkw 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 mxwrjGiobgK4NzlWGNFS3QRyb2IX84y43G8Cujfx3q+MuN5vArs38eavjLjg bwK8N/Hur4xoEWUCvTfx9q+MuORvAr43Eb5njLjmbwK/N/H+r4xo9GYCwDcR wGeMaDFgAsE38Q6wjGjIZQLCN7GreUa0NzCB4ZvY1zwjGhyYAPFN7GyeES0O TKD4JvY2z4gmByZgfBO7m2dEmwMTOL6J/c0zopG/CSDflFhhRIsFE0i+KbHC iGYHJqB8E+8Dy4h2ByawfFNihRFH+ibAfFNihVFH+kDzTUTzbepmgybgfBPh fFtSpwnA803M84mTWBN4vknkEyYwfJOIJEzg9iaRQpjA6k0ieDABz5sYzx97 MltTETOCfXpMBOfVsbGrnxSEgtC8OvaqvJ8030+KwLw6Nq/1kw6GpMhWmUhr TaDy5hEQw4jCUUOnjRs3bEyYG1njCocVDSsYnz9+1NgCP9LiWePGjS0a5caM KhjhRzIps4aMyR83bfjYwjH548MsbISNRjFCx0n3LFlZoYb/Urx/7t9QToH+ 286Pzhlu1OUMbtq894KRCw5kpTRLra/LETqqf2pKCmtpNG/apM9xaaknNAkZ kaYt+jRNSU+ps1JT0uuLjLONviim84qu8zuH8rx/Y0PTQ9WheKgsFA0l9P8D 3X9GN5RZeruZm39741DspPf2vdJm06CDT66bdfKqKfV17XcZdWmb9P/96tNS U1JTW494odPiXdcVDh9yYGf5yCx2r5HVUNSUJrpQtdd4hUybkN40O/XcfNbe yHa/ZGRnTopWJ6JVFeEhkcooa2e0daObZbccWlM1PVIxO1ZWFmWtdG46tkV2 0/GlkTmJKOti5LgRLbPb+RHhIdGqRGxGrDiSiMUr2IlGF/fntOwO8PP4WLk+ S6S8MlYxMzwk3+h6fJYhGDek4f137vFZzP0quFCOcs41ilBhJxSx4432/vmP mxitihXFZlb0DY+qKM5lfYxT/RN1D37wThUuCs5VFK2aHSuOVrsnrUvpjmsl pUkorS6lVUjHt0itS0kJrd762L3btocfbnHZVQ8trPn28YL9uza2emFm5LmV JZ3fX39wq1hzhXHV5Muv3TnrQ/PuVi+8sffi7+bcf3k874VbHs56tvSHslu3 PlfYb83I03988p3zp+WkLv+5/6yu9x5Yuez+Ezan/vNPows/Oe6CvYM6X/5M 1kdnvPL4roXPTZt3IctNW1qbvWpE+FVWnTWp3/aLpVjcdmnbZz4q7f/g7k/+ dvW1vV+8ptvCGc/9efKkeM0LeQ/2XHj+1tbt85Zf8eX4jS0qNh166cwPn2nW 5rbul+4ceMobXS/eu5xt2b+7e6edm9aNGLLshGn1XW/8dOqP+y7df9ma6Sk3 /Dim5Uevd5+4avH2tYtmr933bNb3n455r/6X0vq17U5bt3Dj+tQ0LfyVtTuN 2ncN2TRDK7ZJk2YpKem9jJ5Gj+C7kbKgY2kiUTmgf/94cXVl7mxd79W63nOL 4+Wedrpkp6QcTs8wmuo/qSkhI9+NOzF9gJ7ym/Wyni8wIHlxVVmj1P19rWCp DMnP1Ud5Su1ycnqm0SIoRVqGcZwb2co9V7puAU11CfX3Nulamfd2Mo4P9J2W nTm+KF8Lze7H+inxu1aRVlsbOnPWwS8n/21oZ3bV3KV9lrxQ91DKjs6jtz9y 9eSKXRmnrpy6eest2XvSC7O+GXFK/5D9yKdbbilY9nb36e0PnGF1G1vJ5u+/ xl647vPPbwsdem3CkoIeb64+pWDe2qci+d/3fnXPlvemfri+z5UDn7jriff+ Oenw84+/dPmPr2Xe/e1th/q8dVphTo59yoEzztRt+LBRl7oH2nHWF32+ffvd Uxd15E2aT102e9Hv2/H/Ssv4Y3M0bNwcJxFP2t/o55+057FO6v4WrTpmk3xs XK+RH75VOu+KjkNn1Jx/+aanlxf3PHz6kDsvbWO3PnlC9Xs1p8R+K3gmPOWt Fgfrc3p/PWFit8i7XXd++lcx65VvPlxpRa/PuSXzyaKuUy6doaY1uXrYodkF u4rmr6gN37V20ZQVGQc+Mw7u626NHtzi1V0vn7hpx4Qvas94onBl3wdT5n23 4sHr1KHlu8+/sMny02d98sKSDYe2XXBw0J5m9UO/qj274r7e3z15deteX9/w QdP6BeOWXXJmRpbRZWvru2cd+GLy2vTVg5Y+1uvzGzo8lPdJUfyst9RdT8RL uqxb0nf96XvmflU+72CH3T3/8vA3S4ueGtR38dNzHzz0duGaUxOXD97rdF1x YYfd56zvUfpuaP6Q1gvnz4ImudWofeV/2CQzG5pkqhEyhN8Y+xq9jV71Pet7 LOh+pMaYqK7uVxzxml8Hr/m5WRylBTbdQGqB8vct0L3LCy+ufL+gMCV83sdz t9QZm357ptOS524Kvfjc9u0v/3Dcu4cPjtkgphttXvoxkfP2zR9NuzOc/eil w54ft/3Pe+Yf/+cHTrllZvbwX7Y+fXt+2rY7zj6vyTV/WhX/PmdcTo/c72LX lXU/sH5rh8VfZyY2lM5576ul0xdurL7xX1cl5p20ZuXtl9z26IEbTr1oTG5N zsj89799Iis8fsec+tvqimO/NX/t6m9r1je/472DbSb0XBbhz89LfeSSBc+v ePGa7n0vfkPN/uvN1VMOPrN7dPsWJ2379M23Ze6oQe3zWl0wr8fL9834Zslr lV8N3PND1uUfvHHpytkXxTbeOXaEobo9uuLhE6bn9Xnv+gd7N7vk3Y7rplzy X3fdFz+Ud9VfjLr0troL+NnvAlqFNoauyctb1OaNgT8V7901CNdYuu4BKoO2 3TK7+5B45dyq2MzSRLhX8anuLrJWeEysuCpeHZ+RCA+JV1Xmsq5GZ//g9o1/ iVf5z+puxon+beqY/L0wHk+E82sSpfGqWGKu2z04luECDwu6B24wLhh8/Q+U 6JiP8tTnNlbuPu27gpxey2+7eKrx5YrV15087V+HFo9e+dShu1aEB1569oo7 VtxwAZ/1xuCSufsemr1l/PvffXXngs43LL9ixrqXZs2bftKOLnkftUq5+fMl m17oN2PZstKeS18f0PeFzCcm99w4fE+LgfaSvqt7Oav2jvrz4E+uaLV+WdmE yEN1l95zQb85o79Y+njJacvGdWYZPdotX73npj4dd59+e3G7CyY3iS7vYhUu PPDAN7emvpzz1gsThq27av4LA/aOv7Vg7W8PzCtPFDzccduS5r26hSbdeEHM Wn9W22Z5Ew+f98u9M1pk3P9m7cRJ3zx52tQOtXPS3//p+bXzFx96ZPufdjxw QtWUvK1//TZjZXdjXdMrt6wLz8m+chf0G6uM2vuM2hVuu0xJr11m1N42v/V5 r1d+E6u6+6SzL2/32JjrD//9nqr///ev7hga93qFxZ+33HDd97d1VF8/ndLj 3Tltvp9yAV9+d8u/D2xy06IbtgzY3e27byfd0veJ+hGbp3/z6z+2nXbauavN 8bFDPcrP2LLtwY+aXPohu+705a0rL1x/qO3YjrENv74+5JM254bHfjn9kocf 7LS5j3Vyv+ej97S9+uRWxSsPjO98sNuWHe2/L3yoYghv9lvd8f/6bGZZ1tk/ Pbe/8JXn9mwyfg2z5ou6LD71hDHvdEm9b//8j9MeP++HRz/cPGlfdNQrheOf fDytV9vDN+74NuOGy5++7aU1Vt9P5326as4ns+tDr194xsY3zas/zm+7Sl2Y c+FO9c+3O6d/umpY+uZzhV0xpnPW9KdarLj2rXfGnzF8e+cJ91fubDtg4S01 yx94s173Ci/qwcHDMDC4sOXSsRtCXda0eX9T6j0zTnk2mCR0+U91CYapxwuS WVIy6Q7gdRfPzaBLqL2/8ZAh22jjTzdaTIpUl+qhQEKfp7X3CNGTjWaF0ZLy eEVJULIWRyrZkS6T65P+4TJPMrr5l3EC/qUk6g0+3NHIOG9SEP5jT5Ll9iQZ Xk/y4rbwdX/ddXjguH3z/vZ2j5N/mv1qt8Pbe08s2HrnU3WPqbn9QptWZbxT vOWp+376YuPGHY9eu2RFs59bPVlXuOyrupefa/3Sqg37Zl1xfVHO+nE/l6Rc tbHD23WloUEXD/2xrV3wS/HZH/98+jOfWY/uKm520mkXDZIjfpi1dviPp1R3 7f73wZ26nv1k4bK3Vr6e/XKnMy5qWv7d4m5Dpw3+esOWpSXhpzfKX1cM3X3J Y136P33/Rz/cs+uObq0OTWb5E+zLH56859O958w9ec2B3v3bnGFfPHDwnx4o /fTy7qXH7z7z5k0XDy0ccc/YK6665Y4NMy/5svkvC9Iu+2npRXl9Hphx+7Zd /f6rT+oJreTI6I95bR/ev7Bzl56F8W1ae2kr61J66/ro+e/G4Wn/N7qXtk2b wwS8ve5fUtPSQuneFLXLcekd0tud/K8+Z52/uWr8Xz77qb738R1+2XiwqNbo 1JCkXWp6ZtcWoaJQjZ6uDwnlGy29gY837xhutGoYYDUx0vQf1C69bqz4k4+/ b/L0I1+2bCnfqGMDr5o+7J2MBw5Goptz0362R+a/9sR3p/z5rU9emli06olO r27bvb/+4MQnR946osdnq0/8YN7bP3WY13bn9zfm7M04f92VNz5z7eT1nbct fmvxreKHmz46vOiOqWeNGuf0HBDOGW/9etmU9re8+EHn67+NFOZ91uzrGd/M 3XvDq5OKo4s7jqqftyv61K6eaw9tbvvkyyu2vTztmsrvt+5cU1fR7INop2dW /bTgb80H376/50OxeY9u7PPAIzNOvO/hhRmzbst++hFzadcmK7PtlRseMgY+ 2+0fxv1bp7ft/PCk6z7bP6/Ns1PzMq39t2y8eVFB+rlNprzy2o7V7/3zspsu PuWXxyvuu6GpmPzo1N5tWhl1TYTuynL8bqxFZPjdfw+lh0Kh6B8Ixf+VLiPZ 9zlSSNOdLVl6bKS/KverkfhfuQ74Pe0Ivx9zSLS9dom9dsqK7zbu+uj1NYuv 25F314nXvHj+gtzzv3206sc1Dy268In3H+1+ScvNm+8766ap3bO/OPjjSXc9 8UPF7LXf7Ls375VNG86ZcsaaddWi5/3TayNz75n+Q8Wixa9XfPjK8jfvPbvN 7MizlVdH71nS4aoHzq99feiMz3ZOvHvQ1l8/mN0jd6gR+mzHZZcsbvPO5C4r Px/bcsuiD1bsKFpatrV469ILl908dfSYNp/3f+u886ZOK1xZ3e++9VcMy7q2 U/vZf894f9n9le0/H7M39tv5j8264etTz7bsa14ePqr9reNuf+SH0nv/8VHz i2Ym7p5zbZcrZ9325Z5pw7Z9vPuirDeKQ7dcwm6/vuXj2c+te33f/l3d9q2+ ILLPGnL6i/6QqC7lZl0j1/9h7pLsDPa9N2t1TdH2sftyCjo17bryzjWv3frb EXq+1W7sSem19xi1d8//t73IPYl7/xP9338Ps7HgDen4uRg4GTgssFtg02aF 1PHLhZkD7vkVZGeCRPULivJTSpNLivVBGQCU/oFp3wjcIfRH6ok6Gzga2MN7 okxtxlBzy8vLsZmbWoRpYAm2PqHFzfdTLWbHzBCJDcnLvM904vnm35cP+a7V X10fwnvLaNuPrGe8vxWlyu2WZlRtmVrXFfPJ+Ujz7NTajoDAmiaRr83F1xft iznFVHBOLUd8T5DI0s4D258sPLOwdO7EQlvpA2EMYVt/tKjdijP+fU21Km7W rWW/v3xylFoT6rbW485EC+EITs+Pnw3b5few9EULpTK/5A68sJCna+bemwdX XOAQVVXcui28U+ZidJvp0lN/V7W/WWluv905+7HCR9c9detefgzdtNBjT+q+ YJObJ1+wJbOwVeQF/PfYPfuVc1T77bVcDV8jj+o8eVof7fXUqPKdUuskHt3N AdHHDjlERKy+dPax/sGzb3Lnm1caNrFcBRabF5kYGQ0atw6ZwhGlgEcMYy9o /GQgAq9QNRgN2ZmB8QxUBKpmoVHPyWzIgzxyDnQ6gsdtyGeALCtqoIzQyGII zLcWDD/vLFhXUfb5UfeD5MqVr6yaLNca1CBp4THMM8hZ4NTgwODIUMSQyZDI kMOgwOAHpIuAMJ+hHMjzZCgBi2cyJAN5YQypQJliIC+fIQ/IN2LQYzBmMF+o 1qCCM5WXVBbkpxclFmRUorcrWZoYGSZuLBXVf/Gqq0hks+iNe87yH4PZkxwe qMubeyXk7Kte+EC6n0+e8/O13vPWSj5J3N5CvSdLLK/Hyt97tbmgwGL96T9f llxlZLsaUBg/ZeLJdWx1YWsEguMUpveK/P9+vCuuNXzWFb8dq2r17+UVpkyY lD5ld6CrAV9yJ9cb1ZJDKe/q+hOjei7PZY1v8pfmOpg/83xGDifXAXEd3+W7 NyUuU1v1MitYv/ltul5VqPTpcw9+1Jy6s+i74fO5569YFF6JNfs310fiqPuS HcEXhIxWO2SG7wxmueZ7WuPh7VsiHXNYyiNE/MUtVXf3r3xgGpf45peE2d2H J9wOiszW/8q9ik2/wT819ovbv4pdC5uADaQmxt+IuGMzbGJ8AxR6AUro6TQZ 3sQyqMrDxgFxABOwvFkQaSCBnAq5EZM8jMBECJdhNeQH1/zmhiaGFgaGxsBu jjxyIhRiEZjn67aL/9yULe377906Zdr/CksS0FnOfTr+W5SPF7dC7ieZFGeN B1X+fVf3uU65q7dJLlvq2I9H021rlgdfuSpx6NCys1wPvVRY7WRsFlmemnHz aPqamp/qz4Ldfh5LYT5w2OSOytdEUYFbLY8SQhaEcNy49OpNnKPZouhrTOVi jluXuEXU9yguVAhMmNOn7GqQOPHF7I4bOxvdivrPvZ2TsfW0xirj9siJO7/p Beo4TD90WdoqtP571c57PaWxzwumTpXXVlv0YHecf/cKQ9vZJ2Zw8p5XOj+x UupjrdBXzdJeq9w85wv+/49vqv8wzfKE5TK+X2Irb3nOn1R0IJfhepOFm9mm R3f1rvWc26VcGJ1XkHpnwaZlXdV3Dr2Y/C3hJgMDAG8D1BoNCmVuZHN0cmVh bQ1lbmRvYmoNMzggMCBvYmoNPDwvRmlsdGVyL0ZsYXRlRGVjb2RlL0xlbmd0 aCAyMDIzNy9MZW5ndGgxIDg3OTAwPj5zdHJlYW0NCnic7H0JXBRH9v+r7p6b Y4BhGESdxolH5BDFA5ToKJeICgoqqCgDjDAKzAiDBk1YNpeKJpBkk405VrO5 s9l1wBx4ZGVz7WoOzWmyMWqMiTEbo8kac2r/X9X0cBgk+E/++9/f5zevrW+/ evXq1auq16+7ZxCAAEAYggAJaXlZmTM3PNkAZNKPAFHFM/PzpseN5O8GUJ0B 4O7NyRs1pvqjNdkApB17zc/Py5pfXHx2AcBWF8A9m+anzSqYP9XVCqDdBBDy u9Iqm2vFxpw7AKoCsM/C0lVu8QbXjCEADUk44M5lrvKqOR/o9QDVFVh/odxW 64Io0KC9YrSvL6+sX1ZW+MAygOvOAijHVpRVXT05NDwKYKAIkPt5hd1Wts80 Og9tp6D++AoUBNkV32LdjfUrKqrcV0cWcGiLwzEUhyudpbb9U1+9BWDDCKyP qbJd7VJN0y1C/btQX6y2VdnrDj2OvtyyGP0/5nLWuqWRcCf6Y6Xtrhq7q+zO ncjWxgLoAoCuHbekPVxT+vzS4JSvwawGSg+Y25+l545Dr9VeOHF+k0pSH0Fd HXDgJeynuubCbAD1igsnLpxQScxSd1pAJdxdMFjuw4EeRgF6ISzAcZkN3sLt Bh7UirsViVi/3XvmdLCMC1UrOJ1KyXEczwkoW4cjdZrOn5UqAj1qFG9emEMC VavINlzOLUcOMrNvQqx8ZoUbBXfyg2Ax9EHczRDRV/t/khSrYfX/K9sCB+n/ N/1wfZy/ti9+8pOf/HT5xN1FGMnVi+88vVBM7+KePYf/Mq/85CckHngWnAqe JxzGqEnxua4DvlVL+ACjlc7jsyFFLegQdRCAGACBiIEMgyAIMRj00o/4vEQx BEKkHyAUQpEPgzBEA+IPEA4GRCOEI0Ygfg8miECMBBPiAIhEjGI4EAZI38Eg iEJ+MOK3YIZBKBFhMGI0iCgZwtAC0dI3cAUMQX4o4jcwDCyIw+EKxBEwFPFK GC6dg5EwAvkYGIl8LMQgH4d4DuIhVvoan/PikE9APAujIR4lY2AUYiIkII6F MSgfB4mI42Es4gTEf0MSjENMhvGIE2ECyichfgUpkISSq2Ai8pMZToFJiFZI kb6EqXAV8tMQv4RUmIyYBlMQ02GqdAYyYBpiJqQhTodUxCzIkE7DDMhEzIbp KJmJeBpmQZb0BcyGGcjnMEkuzETJHJiFOBdmS6cgj2E+5CDOg1zE+TAHcQHi 51AAcxELIQ9xIeRL/4JFMA/5xbAAsYjxS6AA5UthvvQZFEMh8jZYjHwJFCGW wlLEMuRPgh2KEZfBEsRyKEGsQPwUHFCKuBzKEFcweSUsk05AFZSjpBoqEJ2I J8AFDsSVyH8CNYyvhUrk3bAcsQ5WIK5CyXF83nRJH8PVUI1YD07ENVCD8rWI H8M1UIv8tbAKsQFWSx/BbxjfiPxx+C2sQcl1sBbxerhGOgY3MLwRJcfgJobr mGQ9XCt9CBvgN4hN0Ii4keEm+C3izXAd4i1wvXQUmhm2wA3SEbgV8SjcBjch 3g5NKPkdrEe8AzYg3gkbpcPwe9iErXfBzYib4RaU3w3NiPdAC+K9cCvifYiH 4Q9wO/JbEA/DVvid9AHcj3gY/gh3ID4Av0d8EPEDeAg2Iz7M8BG4G/FRxEPw GNyL+Djch/gnhk/AHxD/jPg+/AXuR9yG+E/wwB+Rb2XYBg+hZDs8jPgkPIL4 FDyK+DTDZ+Ax6T1oh8cRd8ATiDvhz9K7sIvhbvgL4rMM/wrbEPeARzoIHdCK /N+gDfnnYDvi8/Ak4gvwlPQOvAhPI77E8O/wDOI/GO6Fdult2Ae7EF9m+Ars RnwV/or4GuxB3A8d0ltwAP6G+Drim/AGPIf8m/A84lvwAkrehpcQcQTpDTgI f0f+XcQ34D34B+I/YS/i+7BPeh0OwcuIH8AriIfhVcQjDI/CfsQPGR6DA9IB +Ahel/bDccQD8DG8gfwn8CbiCXgb8VM4KL0GJ+Fd5D+D95D/F/wT8XN4H/EU wy/gkPQqnGZ4Bg4jfglHEL+Co4j/hg+lV+Asw6/hmPQynIOPkP8GjiN+i/gy fAefIH4PJxB/YPgjnJT2wXmGF+AzlEiI+y4jpwf/j8np57rl9HP9zOmjUfK/ KafnsZw+v1tOp/zFOf1fmNMXIZayzO7L6UtQ4svpxSynU3SADXE5y+9dOf0k 5nQ7YjXyNKdTdLEs3zOnL0cJzeknuuX0TzCnVyNezdCX013I05z+SWdOd6O8 AeoQaU7/uDOnX438dVCPeD3L7zcwvJFl+ZsYduX0j1hO/4jl9GPdcvoxltOP sZz+Icvpx1hO/5Dl9A87c/p65H/HkOb0oyynH/2VcvoH/pzuz+n+nH7Zz+n/ mZw+Vc7ppy8rp2eynD79Ejl9ppzTv8CcPovl9Nksp+fIOf0U5vRcltPnyDn9 886cPg+zsz+n+3O6P6dfXk4/8Kvm9Fd+5ZwOmEeBu1ej5IDj6LdJ8uc0P0vK 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 Gy0Xe9fdvkPW7MqI3rpNzjW+uHZ3Zv4SZqMrIzjkK9vnhbdHz73x6nrnU8Z2 0N25Ot1jobc5OORrnUZpJfYtk++z4k9WgvbwRt4I1L+S7VgVi6uyS9qu/gVz 77Je1rl33pjy3b269u2nM+h+f+3p16Rue0Rn4p3LxXcr31VWxp4L6MydLKL6 igRbj123y3fri+/ZTpajXHKmot6u6ryTeu34MlJfMdSf50THzzwnzkQ5zV2r sO5g945L62aydantvP6dfT47nkTpCjiHlk+i9NKa85m1S7dPZ9JV7Gm1L71c PNMZ17EnHye7s/dvffqYh2AWJguThFRhvJAkWIWrhGwhuQ+r+f146s6mUjIa tfrS8WbTFX2u8Ux2rdO2zv9QIg2n3272Sjz7XyMGIJIEfGBaesbSzJmFudPF IeWV9a6KhCFiVpqYIOYX5qaL06bmpYvps9O8Gj/RHc10R/dLdwzTHdMv3USm myjOm52VmpOWLib2r9tY1m1sV7fEfnUbx7qN6+o2tl/dxrNu47u6jetXtwms 24SubuP71S2JdUvq6jahX92SWbfkrm5J/dtYbxSMTujqmNy/jnJIjO7sOLaf oeSNj9Fjujr2L67+T3XnAR1VtQXsSaElREoAgVBCkRbKPXXuSCihSFFaQpMe QiChJDGEFhBJRKqIiqGpEII0aVIF6YoIERSkPAEBla4YOogo/De5+zI7T/3d 61/r/W89WK6YCSczc+c75+7znX32YTYszEuLpNHCbFyYlxdJ44XZwDAvMZJG DLORYU+Y6RrxQpeWUaFVu4QZBm9RN/dLRIuqtN9lc8S8IEkaSMwmiXlRkjSU mM0S88IkaTBxGybuhUnSYOI2TNwLk6LBxGGw8cKkiIOUDRP3wqRoMHEbJu6F SdFg4jZM3AuTosHEbZi4dwBStAGI2+RwLzmKRg63yeFechSNHG6Tw73kKBo5 wiZHGH/VYUSz3A4j3C1pHUbYMAkvTJoGk7BhEl6YNA0mAbcxL0yaePuzYRJe mDQNJmHDJLwwaRpMwoZJeGHSNJiEDZPwwqRpMAkbJuGFSdNgEjZMwguTpsEk bZikdxjStGFI2uRILzluGjnSJkd6yXHTyJE2OdJLjpsYAUEI5CXHTSNH2uRI LzluGjnSJkd6yXHTyJE2OdJLjptGjrTJkV5y3DRypE2O9JLjppGjbHKUlxw3 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 dhGdQ1moEWrke0RYj8ncZwkKcjl/fPL+5n51hbS1vpayHw5pZqSHNC5YpM6k 1pPuB/kU8s1MD2lgPRTm6+PDAo0iBQuEPeXnW76Ay4guGBBW0MffJ93t6+Of GWV0MuqiRypkVZpQwRWe97eDq79ruCvRNdQV60qx/muc+9eogn6Zf6kfQ0oW b7Hlx5aDr5UZUXj1JyfvPFVqbmZ66XNGut9e6796mX6+Pr6+xVvtKpdxbkbk c83vnx7WOoh9YAQ9eak+BawXlTY970X6dfEvGOzbI4KVNoJzvykcXLRb7PCU 2OSE0ObRSbGslFEy9+FCwYEtRiT3j04YGT90aCwrZv0269GA4IKd46JHpcSy ikZI7gOBwaXsB0KbxyanxA+Mj4lOiU9MYJWNirk/9gsuAz/uHD/MepboYUnx CYNCm0cYlZ4OMgTjhjTy/vR4Oojlfiu4UB7l6WFEoRfbJYo9bZS2n/+prrHJ 8VHxgxLqhrZJiKnPwoza9hNVdX6Q91ShUc5zRcUmj4yPiR2e+6TpPlXxVfEp 4PJL9ynmsh4P8E338XGtyF7/wcFDoWsDXp66avKIGxvb3zy3p9iuQdE7Fg+o cGrbg2yxcqIxtfv4108POaMXFNt15NroW6OWjk8M3zVrbdAncXeGvpO9I7Le ytaN7m4+3rtviO/C3xoMqfTB/cXzl5bf7/vDKy9Enn+q37WmFcZvDTrb5IuN 5ybv6Js6mNX3m5cWvLxV6FdseFC3eodGS5FRcl7JrWfjGnx46fyn016v89n0 KpMH7ni1e7fEEbvCP6wxuXd28dLhCyf+1HlPQMLeR5+3PbO1UIk5Vcedblzz SKXR1xayAzcvVS13eu+GVs3nl++bWenNC33u5oy7+fLK/j4z77YLPHu4atfl GYfWTBm5JueToNsX2p3MfBiXuaZUww2T92zz9bPAX5x22kj71pAFC1vEFihQ yMfHv5ZRw6jufG/4TCobl5KS9GyDBokxw5Pqj7Su+3DrutePSRyWx07FYB+f x/6FjYLWF18flxGR+1hl/2etGb/OlJl8kgHNY5KH5mvdwGYFo9I8or71r/JI rfiMf1EjwHkVfoWNp3IfLJb7XP5WDyhovULr+xL+FpkflDOedvj2Cy7aOSrC As2sx+op8W+9wi8tzdV2yIOfun/aogKbOmZe2Oxd6at8TlR44dBH07onnCtc e3Gf/dmzgi/7RwZdb1Wzgcv86MKBWe3nH6vav/T9Ju4qHZLYhJvTzckbrlyZ 43r0dZfZ7at/s6Jm+9Q1H0dH3K7z1eUDJ/uc2Rb2WuNN7286+UO3xzs3fj7+ 7tdFF9yY8yjsaMPIkBCz5v0mba0+/NhI970M/TjoatiNY9/WnlKWFyjSZ/7I Kf/ej/8jPePP3dEwcXfsRnzSBkY9+0lr/NOT5v4sNvkfu+T6jrVanzkalzqx bIuBI3qP37tlYUyNx42avzeuhFn8mS7DT46oGf9H+62hvY4GPMgMqfNLl65V or+tdPrCdjHki+tnFrtj3wiZVXRzVKVe4waqvgWmtXw0sv25qAlZaaHvr5nS K6vw/YvGg5yq7heaBXx1bl/lvSe6XE1rsilycd0PfVJvZX04Qz1aeKn34AIL Gw05v2v27kcH+z1oerlQZouf0zolLKlza/O04rV+mfldwcxJHeePbVs4yKiY XXzBkPtXu6/xX9F03vpaV2aWWRV+Pirx+aPq/U2JAypumF13W6PLY34elvqg zKUaq9denxf1cdO6GVvGfPjoWOTK2injm13zVMoaXObSi9uqx33rmtC8+OQJ Q6BLZhtpX/w/dsmiT7qkr+EyhN0Z6xp1jFqZNTKrT6r6d50xZfjwejHRed2v TF73y/0V/5ceWHA3qQfKf++BuZ/y5NFJp9pH+oT2/H7MgXRj7x9by83e8Zbr sx2HDu2789S3jx+02y36GyU+v5sScuzts33fCw1eN67lzo6HXr084elXl9Wc NSj4uYfZW+ZG+B18t1PPAtNfWZ54O6RjSPX6t+JnDK16f1t2mYxfiqbsjht1 8ud5/SfvGf7mr1NTUqutXDx37Jx192fWfqld/REhrSNO3dgUFNr5xKjMOekx 8X8U+XrajRHbirx78kGJLjXmR/Odqb4fjZ20M+uz6VXrjj6iRm5/e3ivB1sv vVA6oNrBC98ck/XbNC0dXqxfavV9SwZen/110s+NL98JGv/dkXGLR74Uv+e9 Dq0MVWVd1try/cPDTr7xYZ1CY78tu6HX2B/fX5L4KHzqaiPdv6Q1BPxmDwHF XHtc08PDp5Q40vhezLVzTfEV87dGgCSnbwcGV22emDQmOX5QXEporZjauQfQ ukPbxcckJw5PHJgS2jwxOak+q2RUsP9x6fw/SUy279VVjMr2x1TW+/PIxMSU 0IgRKXGJyfEpY3KHB4/byPUdbhgeuMG4YPDtf+EV/eOt3HfHnqRLDW+1D6m1 cM7oPsZPWStmPNP310cZLyz++NH7WaGNx3XKejdrZj8+5EizAWNyVo080PnU rZ/fm1Rh5sKJAzd8PiS1f7UTFcPPFvN5+8rsvbvqDZw/P67GvMPP1t1VdFP3 GnueuxzQ2Jxdd0Utz/JrbV5tdn5isW3zh3aJXpU+blG/eqNeuDpv44CG8ztW YIWrl1q44vJbYWUvNZobU6pf9wKxCyu6IyffX3b9Hd99IUd3dWm5YeqEXc9e 6/xO+zV/LEsdltJ+bdmDs4vUquLq9ma/ePe250sWCu/6uOfDDwYGFF76TVrX btc3N+xTJm2U/6l7O9dMyHj00aFXTiwrn9wrPHv7jcKLqxobCr52YEPoqODX zsG4sdxIW2KkZeX2Sx//tPlG2pwJxXseTroen7ygWqfxpda3e+Pxl4uS//9/ fun/wHjeqJBxJXD3jNtzyqpftvhU/3ZUidu9+vGFCwK/bFzgrSkzDzx7qcqt G91m1d2U2Wp//+u//+tgw4Y9VujO8Y+qD2ty4OCHZwuMO8NmNFpYPGnwtkcl O5SN3/374ebnS/QI7fBT/7FrPyy3P8z9TL2dsYtKTnumWMzi+50rPKhy4ETp 25GrEprzQn+kP/3rxUFDgzrd23Ez8osdl/cav4eyIlMqZtQu3+54Rd8lNyd8 77ex5511Z/Z3y4lt80Vk580b/WqVfPzmiRuFZ47fMufzle66F1IvLB91fmSm 6/DgJnu+0dO+jyi5XA0OGXxa/XCsgv+F5S399/cQZkK7CkH9Pw7Iev3o8c5N njtUocvSpNMln508a8TCZd9kWqPCZ1ZwsBYCg8GB8zrsdlVcWeLUXt9FA2t+ 4kwSKv63hgRDW/GCZG4pmcwN4K0hnmtnSEhbmj9kCDZK2NONgG7Rw+OsUCDF ep7iebcQa7JRKDJ2wLDEhAHOKwv4u1f2d2+TW0/6p7dZzahiv43y+CcDYvOC j9xopGPepCD0zyNJUO5IUjhvJPnsYOiM7eceN+6Yk/rpserP3Bv5VZXHh+p0 bZ/93sfp69WYeq69ywsfjznw8ZJ7V/fsObHu9dlZhX4rtjk9cv7P6ft2FP98 +e6cIRPfiArZ1vG3AT5T95Q5lh7najq6xd2SZvuHMZ2+/63R1ovudediClVr +FJT2erOkDXP3a05vFLVL5uVq9Rpc+T8o4sPB+8r1+SlgsNuZVRp0bfZL7sP zBsQumWP/D2rxaWx6ys22LL07J1F596tUuxRdxbRxRy/tvvlC9deHPPMyvt1 GpRoYo5u3OyVZXEXxleNe/pS27f3jm4R2WpRh4lTZ727e9DYn4o8nOT38r15 L4WHLRs49+C5ej+G+ZYvJlvH3g0vufbm5AoVa0QmHrTY81uc7lPHuh41/ioO 9/vfGF5KFiwCE/DS1vji6+fn8s+bolZ8yr+Mf6lnfg17vvf+5M6rL97LrPN0 mYd7HkSlGeWeNCnl61+0UoAryjXCmq43d0UYgXmBT9684zmj2JMAq4DhZ31B /TJvGIs5//3tAls++ikwUB5JZ42n9m95vPCyB9Gx++v7/Wa2jvh6062arx49 /3nXqOWbyn118NLNzAddN7d+p1X1iysqf5d67F6Z1JKnb78Zcq1w7w2vvbn1 9e7bKhzMOJrxjrjz1tnHU97t83ybjp4az4aGdHb//nKv0rM++67CGzeiI8Mv Fvpl4PUx12Z+1S0mNqNsm8zUc7Efn6ux5tH+kpv3ZR3c13d60u3s0yvTEwp9 F1tu6/J7kz4t0mzuzRqr4lPX7Qlb9tHAykvWTi48ZE7wlo/0vEoFFgebi3ev Mhp/UuVfxtLs/iUrrO024+LN1BKf9Akv6r45a8/bU9r79yjQ64uvT6w4+cPL b42u+XBjwpKZBUX3dX3qlChmpBcQ1lAWYg9jAdHPLfjS5e9yuWL/ZCj+V4YM 79jnkULq3NmS24qNrG9V7rdGyn/kfcDP/f7m5/8YEh1Km22u6ZV1a8+5s4dX Zsw4Ef5+5emf9Z5Uv/eNdcl3V66aMnjTqXVVxwbu37/k+bf6VA2++uButfc3 3UkYueZ6zgfhX+zd/WKvJis3DBc1lvZPix6zqP+dhCkZhxPOfLHwmw86lRgZ /UnStNhFs8tMXdY77XCLgRdPd13QNPv370ZWr9/CcF088fLYjBLHu1dcfKVD 4IEp32WdiJo3NDsme97g+W/3eaFdiSsNjvbs2adv5OLh9ZZsm9gy6PVypUd+ WfjU/KVJpa+0uxb/R+/1Q2b+UruT25y+77k2pd/pOPejO3Ef/OtskZcGpSwY 9XrF14bM+ely35YHv7/0UtCRGNessWzuG4Ebg3dsOJxz81yVnBX9onPczRt9 ZodE6T5vW1fkjT/NXbyDQc7JIStGRB3qkBPSvlzBSovfW/n1O3/8zci3IvfR av5pi4y0BRP+chRZlPLBf2P8+3Ow8Lw98WthNDOaZjbODJ/0LJr4DXN+T97M L2lIfO6jDZKSEweMiEkZ3iC3A+Tyb7HP8yaEHdBMtLkRYTR5MhP1nSTg944a Neqvfm9s8p9/YcpfzQnNk9czzHd7zS3Vu3NC/Dnf/Zc3PDz6abvVDVa+0jno FN/86+BLQQ+rlB/VeElc6saM8dN63Wq+99V3Y1+e0rHTuPRSd18d/q+snb2y fZO+qjH06e2RpZZM3f3xhUUHF414/62XGoXs7urquunXiTVO9REPTzyT2mf+ qaUP79yKKL+qy3OrW3/3lhncvUibm7fZ5Mrb/d/oWTLW72pgp8OLik6bt+Pk nuWHC5d+psqmzd2mVjjSc5Jakv3Hh5OvrXA3+bj5kPOhN1tuH7/m6s0u6xe1 3h67M0qePHClYIx/wdEJHR+33vbuT817TD69OmDC3Rc/r3vh4is9217kY3Kq vvZ20XobOvbc92nT7t1XfnPofIM9h64NW+gew9L9j1jD5iFfHx8jbdP/zOCY b4D3auzMtByj1JMbai0fVsjP+pytf5R7m4WPvogfK4rNufXSvd8FsqcM/NPS RjVvQ39m9dsatbLfOr1t2YJvBzccenx74UAfdXe/MRo1KcoGG3GZjSeEuyJc ya54V7RrqCvU1d76mmz9TXSNsr5rlifjB1j/19UVaz063Pp3ia4E63vuqu8S LveiGhOq/y3hKWOSEgclRyfFjfn3mNI/3ceVmL5dV3p921d1799bW63Xudqv hzcp0yd7zB+ZIw7U79G1/J3ulStevfhwyw9HjeWj3V+NE8NeWxibEei+lfbS jplfll+7fcvqEt/6ff32pIiwK9V2Db0dUnDroasXAuqsH71s1b7f2j86P2Ly v4LCeg2YN+3U/qXtpk5581a/M8dXjpz0KHpggBqzYeuYs6+aZ3+q9qjt1pkv xnsyZ63YOi2s6Y1VfQOWHand8Pk7AXE5SfGDds69eY3X/LVRk/o7wxp167L9 5Uo/hL0z5WBSu5dXP1ssZ/CCoKFXvjmYMiKn/xs7WJuNn65vmDq02jv1sisl zfz8YcDPe0c02LAx51jSosZnSnXIOXToYPK264PTR609WdqYtMNYlG4FR+k+ D72fW0GW7nPNeuhKLuSD/iNq8y+EatGChe0X4GuNNZkvGmUxgYHeBR4fC8An PynAiuXd9d1MMtNgwpriVMYAlvQv/nqbs/1+fC2p6lW1aemFtJdb/AUCLHDB xCEJDTo073Cv4lOnSte91Gt2/fd+bNu0puuLcjWG9khv+2PybyXrra5cr+2d gCJ3e+7c/fb+Vy5l1Z7Tb8zXwyeePXXrh7TJx7c92BSXmRS1fOjA1esHPGUO 61+u5pScjLAZNZ//vvS6hh23hse07tVvVsuNk3+Y/jAprE2HrMACnT6oscIv a2nM4iYZVXr4FtnU7/ycVw6M9Tty/L1fT6/pHdfr6VrDOkaEfFJqWKvf05sl v+dz/9iVRd809DuTk3pS1zpb6dLe332yu5yuN2be71We5XMH7FYhD49kdD3V +/sxxxd0+X7T9EOD0+YH7v5ia7t3zrIhswMq3Cve98CWvt99Ur3ihobLGp4d Gz9jwtRXDvVJXeFy/R9r8RpLDQplbmRzdHJlYW0NZW5kb2JqDTM5IDAgb2Jq DTw8L0JpdHNQZXJDb21wb25lbnQgOC9Db2xvclNwYWNlL0RldmljZVJHQi9G aWx0ZXIvRENURGVjb2RlL0hlaWdodCAxMzUvSW50ZXJwb2xhdGUgdHJ1ZS9M ZW5ndGggODUwMi9TdWJ0eXBlL0ltYWdlL1R5cGUvWE9iamVjdC9XaWR0aCA1 MDA+PnN0cmVhbQ0K/9j/4AAQSkZJRgABAQEA3ADcAAD/4QBaRXhpZgAASUkq AAgAAAAFAAEDBQABAAAASgAAAAMDAQABAAAAAAAAABBRAQABAAAAAQAAABFR BAABAAAA1SEAABJRBAABAAAA1SEAAAAAAACghgEAj7EAAP/bAEMACAYGBwYF CAcHBwkJCAoMFA0MCwsMGRITDxQdGh8eHRocHCAkLicgIiwjHBwoNyksMDE0 NDQfJzk9ODI8LjM0Mv/bAEMBCQkJDAsMGA0NGDIhHCEyMjIyMjIyMjIyMjIy MjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMv/AABEIAIcB 9AMBIgACEQEDEQH/xAAfAAABBQEBAQEBAQAAAAAAAAAAAQIDBAUGBwgJCgv/ xAC1EAACAQMDAgQDBQUEBAAAAX0BAgMABBEFEiExQQYTUWEHInEUMoGRoQgj QrHBFVLR8CQzYnKCCQoWFxgZGiUmJygpKjQ1Njc4OTpDREVGR0hJSlNUVVZX WFlaY2RlZmdoaWpzdHV2d3h5eoOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmq srO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4eLj5OXm5+jp6vHy8/T19vf4 +fr/xAAfAQADAQEBAQEBAQEBAAAAAAAAAQIDBAUGBwgJCgv/xAC1EQACAQIE BAMEBwUEBAABAncAAQIDEQQFITEGEkFRB2FxEyIygQgUQpGhscEJIzNS8BVi ctEKFiQ04SXxFxgZGiYnKCkqNTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZn aGlqc3R1dnd4eXqCg4SFhoeIiYqSk5SVlpeYmZqio6Slpqeoqaqys7S1tre4 ubrCw8TFxsfIycrS09TV1tfY2dri4+Tl5ufo6ery8/T19vf4+fr/2gAMAwEA AhEDEQA/APf6KKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAK KKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAoo ooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiii gAooooAKKKKACiqt5qNnYJuu7mKEf7bYP5Vy2pfE7w9p+Qssk7D+4uB+ZrWn Qq1Pgi2RKpCO7OzorzJvijqV7zpHhuedT0d923+WP1qJvF3xBn5i0XTYF/22 5/V/6Vr9TmviaXzRHtovZN/I9Soryd/EPxG6iPSx7Ar/AI1C3i34iwcvZ2Mg /wBkKf5NTWFv9uP3h7b+6/uPXqK8bb4p+KrH/j+0e1CjqxhkH67sVbtfjMWx 9o0pD6mOb/EVostrtXjZ+jRP1qmt9Pkes0VwVp8WtAmIFzFdWx9SgdR+Rz+l dNpvinQ9WIWy1O3kc9ELbW/I81hUwtal8cWjSNanL4Wa9FFFc5oFFFFABRRR QAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFA BRRRQAUUUUAFFU7434X/AEJrZT6zBj+gx/OuZ1S41W0tpJ7rU1KpztgQpWc6 nKr2MqlVwV+Vs7KivGdZ8aXVrEfJvrkN/vmuc0Pxdr+u+IIrFtcvIIMF5XR+ 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 jasdp3gf3hXsVRPbxSD5kBrjrYDD1neUdTWNacdmeR6fqWu6S+IVbb/d3Ar+ RrqLTxlqzKBJpaufVXA/rXUS6NZy9Yx+VQHw7aZ4GKiGAVNWp1JJeq/VDdbm 3SMz/hJNWkX93pUae7zr/jVC9vNbvFKyXtvbIeoiyx/pXRjQbcdzUyaNar/D mqlgYzVqk5SXa9l+FhKq18KSPOX8Ow3Eu6Xzr2T1lPy/98/45rc07ws7MpkQ Ko6KBgCu0js4IvuoPyqYADoK6KVGnRjy01ZESlKTu2U7LTorRAFUZq7UVxcR Wtu88zhI0GWJrznxJ4/uII3Nufs0PY/xt/hXbQw067tEwqVo09z0ea4htk3z ypGvq7AVh3njTw1Z5FxqtvkdQoL/AMga8SsrzUfGN9K73Tw2cbYklJ3Mx9Bm u10rwvpkW3yNNW4f/npc/vCfz4/StZ0cPSfLOTb8iYzqT1Ssjel+JXhEttSS ac+kcB/riuN8X65pWsL9o03TtRW5AwS1qdrj3x3r0C10e6VAqJHCv91ECj9K t/2HcOMPKaKWJp0Zc9OLv6/8AJ0pTVpP8D5su/NVt09tJECf40I/nVjStYvd ImE2n3TwtnJAPyn6joa+gbjwfDcoRLhweoYZBrjdb+FVu4aSzzBJ22fdP4V6 FPNIVPdrR0+855YSUdYMTw98YlTZBrloFHT7RAP5r/h+Veo6bq1jq9ot1YXM c8LdGQ5/P0NfM+saBfaLP5N5HjP3XHRqZ4Y8T3nhbXoJoZW+zyOEnizw6k+n qO1LFYClKHtaP/ACliJqXJM+qK4TxrpniHV2EdtLZwWkZyoLMWY+p4/Suq03 UVu4wc81dkgSUYYZrwKkFNcr2OurSjVjyy2PnHUfBuuSSnfPA30J/wAKdo3h zxDpN0ZrS4gjZuGzkg/UYr6DOlWjHJiB/Ck/siz/AOeQ/Ks44anHYxjg6Ufh VjhNFv8AxcrolxfaYkXc+QzN+WRXe2t15sSq7h3x8zBcA/hSDS7VekYqxHbx x/dXFaxjY3jDl6mZrGg2esWrQ3MEcqN2Zc15TrvwpMbtJp07xj+443L+fWvb qayK4wwBqZ0oT+JHXRxVah/DlY+Ybrwdr9oxAt0lA/uuB/PFRWsHifTZd9tb 3cDj+KGXafzBr6Ym0u1m+9GPyqlJ4asnP3AKweDp7o71nWJtZ2Z4vZ+KfiFG AiPdP/11ZD+rVrwav8RL3Ak1GCzU9SxQn/x0GvTf+EWss/dqWPw5Zp/DVrDp dX95hPMZy+xH/wABRxOn6PcXEiya5r+o6n626yNHD+IB5/Su708iOFYre3SC JeAiKFA/AVYi022h+7GKtKiqMAYraMIx2OSpWnU+JirnHNLRRVGQUUUUAFFF FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUU AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAcx48aePw400KM6xSK8ir128/wAi QfwrwPXtSbUicH5fSvp+aISxlGAIIwQa8s8U/C+2upXudOY2rsclVXKE/Tt+ FergMbSpRdOovmceIoSm+aJw/wAPdStLSVtOvHWLfJvjdjgEnAwT+Fe/aZBC tupQA8dRXzpe+CtdsnIECTAd0bH86t6VrXjLQcJbG8SMf8syvmJ+RziqrYWj Wlz0pq76MIVZwVpxPpGivGbX4oeKYlAn0qOY/wDXFlP6Vox/FPXX4Hhd3P8A s7/8K5pZfVXVfejRYmD7/ceq0hUEYIrzMePfF1yMW/hhI895n24/MioJ7vxz qylJ9Ss9MibqIfmbH4f4is/qvL8ckvnf8i/a32TZJ8Vr7S4bCK03xtdb/MYA jKDB6+mc15LoWgz6zqsd28TJYxOG3EY8wg9B6+9elWvgfTlm867efVLknJab hM+u3v8AiTXVWHh1pGUugRF6KBgAVvPFxhR9hS1XczjRcp+0mWfDcUgQE5xX WDpVa0s0towqirVecdIUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFF ABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUA FFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABSFQwwRmlooApzabbT/AH41 /Ks+XwxZSfwAVuUUAc0fCVvn5WIpR4VjH/LRvzrpKKAMBPDMQ6ux/GrMeg2y dRn61rUUAVorGCL7sY/KrAUDoKWigAooooAKKKKACiiigAooooAKKKKACiii gAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKA CiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAK KKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAoo ooAKKKKAP//ZDQplbmRzdHJlYW0NZW5kb2JqDTEgMCBvYmoNPDwvQ29udGVu dHMgMiAwIFIvQ3JvcEJveFswIDAgNjEyIDc5Ml0vR3JvdXA8PC9DUy9EZXZp Y2VSR0IvUy9UcmFuc3BhcmVuY3kvVHlwZS9Hcm91cD4+L01lZGlhQm94WzAg MCA2MTIgNzkyXS9QYXJlbnQgMjEgMCBSL1Jlc291cmNlczw8L0V4dEdTdGF0 ZTw8L0dTNCA0MSAwIFIvR1M4IDQyIDAgUj4+L0ZvbnQ8PC9GMSA0NSAwIFIv RjIgNDggMCBSL0YzIDUxIDAgUi9GNSAxOSAwIFIvRjYgMjAgMCBSPj4vUHJv Y1NldFsvUERGL1RleHQvSW1hZ2VCL0ltYWdlQy9JbWFnZUldPj4vUm90YXRl IDAvVGFicy9TL1R5cGUvUGFnZT4+DWVuZG9iag0yIDAgb2JqDTw8L0ZpbHRl ci9GbGF0ZURlY29kZS9MZW5ndGggNDM3MD4+c3RyZWFtDQp4nM1a224cSXJ9 F6B/qHkxSGNVU3mvXBiGd6QZAba1a+zINoyBHzi8SA2Tam13SwN+kv/S55zI qq6i2KKwflnMiOysyoyMy4kTkdn8/vXPsXu3f/7MdQP+2717/swPrveu82Pu U+3u+MD3hQ9K72vnh9h7DMZ+wLMh9UWD0l1yZtXTMfQVj93Q59T5UrUcozFi lPrqNdk5TS6+dxCIpQVr8thXyi29w9KcuaUkx37MeAAJUMfjV/Z9Lp2rtfdF o+g409Xch6AHEOuqt3X4lToHRbE5pPQla/IY+5q1T+brQXrn2idILsX0C32K moxPAxyA5zHj9SB3jK4P2Ad6J44Sp3AyRFZ5ZnSdMzs8lMEvjmhHTX1MNheb 1rHPJid0ASEI2iFWDAJ/SQFYMeJB4i8HT44eI7gKg0rRHAzeLEPQODfTYsdg 2sqMyRWByRh5+lqTK93AbSMMx8hTiaEfzGcpmn6T4KS1ckLpS9WIDotc7hGR MM76wt0Vk2iOo9o0e9Qg0yOBemmuo5W+wnKK8v2QzX3cJUgwjGjGYSeKAs5c lRIEC6LnsoIYGKXccOYQEz8KZ0OQcTkrxg4j7p+EOoyEnqKtMp3q4YEcNCCG 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 XTtyNuKHXfXfa751ydazP3V//vmWA+Mefl1m6Z35+fVPNQ319bXXedTideMa fq6lOV2D69jjRv07p79/bUpF7loqYtGIKf96Hf9brow/X46aHV+O3Ykv2lhr WPSiAf/0ogXPRSf+4yX5See67X84FZMysWLrgcP7jNu/IyMq4Hmz4I/GetrL 1e6adHZ4ndhnITv9e59yf5zpW+/Xrt2qR35f9fzlz8SQQ7d/yLFFf+A7p8y2 sKq9xw5UfV2ntckfEZIXNj471X/J+im9s0s+uqI9vlXD9mYr96/yDlbbf6br jdQWW0NzGqyxptzLXjND5Wdc7TPYNaPZkEt75u3NP9bvcctrJTJb/5LaJW55 vXvbppWr++vMC26ZkzovGvN6SQ+tytFyS4c8utFjvcvqlgs/qXt9ZoV1gZfC 4t84pZZsjR9QZfO8BruaXRv9y7CUxxWuBny84fbCsO0tG6TvGL0m/3To2teS x7W66aiaPbjC1bd21Yr53jI+uNzk8UPgkjyqpR76X16SZV5ckk6aRRNFF2MD rZ5WNzMgs9akGn93MSYnJTWMiiy8/CoUXn4Fv+L/cwW67SVdgfJfr8CCb3ny qIRzIaFW/14/jj6Spu1/trPSvN2zLPt2Hz9+8MEr3z9/3HGv6K95HniY7Ht6 9sW+H/l7bxrb5vPOxydcG//qhJV15gzybvv06I4FQc7HFnfp5Tr93VXx9307 +9ZqdC92xtAaj3YdrZD+a5nkvTEjz/6ysP/k3KQPf5+anFJzbc6CMfM3PZr5 2tsdGw33bR907s5WD//wMyMz56dFxT4r9fW0O8N3lVp89rFn14BFkfzzFKeN YyZ9nr1veo0Go06qEZ/NTur9eOfVN33cax67/M1p2ahDS5/Asv1Sah1cPvD2 vK8Tfml+7YHHuAsnx+aMeDs296NO7TRVfVP2hsr9A+uf/WBNvRJjvq+4ufeY /1myPD4/cOrHWpqLl9EEPClqAspaci3TAwOneJ5s/lvUzbyW+Iy5GC1Agnlt l/auERyfMDoxdlBMsn/dqNcKdpG1+XeMjUqMT4ofmOwfHJ+Y0IhV1fyK/mef 4s/EJxbdq6tr1Yq+poovnw+Nj0/2DxqeHBOfGJs8uqB5cNi0AvCwQfPANcYF gx//A+/oH2/lTrtzE642vRfiWzdj/qgI7efs1TNq9/09P/3NnO35S7L9m4/t kr04e2Y/PuRkqwGjb60bcST83L1fPprkNzNj4sDNB4ak9K95pkrgxbLW2dfn 7d/TcOCiRTEBC080abCnzNYeAbltr7k3t89rsLquY9XNDhNaXZpYdteioV0j 16WNzerXcOSbNxZuGdB0UWc/VrJW+YzV12bVr3i12YKo8v16uEZnVLGFTn60 8vZcp4O+p/Z0bbN56vg9TW6Gzw1Z/2xlyrDkkA0Vj80rVbe6pfuH/WJtu97w KhHY7Xmvp8sGupdc8U1qt+63tzWNqJA60uXcb5+vH5+ev/H4u2dWVk7sHXj0 szslc2pom93eO7LZf6T3e3nQbqzSUpdrqdkF16XVJXWRljp/fLleJxJuxyYu rdllXPlPOn7w/MusxP/77y/tH2K8sFVIv15674z78yuqX3dYa30/0vN+7348 Y2npL5u7zpoy80iTq9Xv3ek+p8HWzHaH+9/+47tjTZv2XK2Hx+bXGtbiyLE1 F13H/sBmNMsolzB4V75Xp4qxe/84EXzJs6d/p5/7j9mwptLh+rbaDT+PzvKa VrtsVM6jcL/H1Y+c8bkfui4umJd4lvbq71cGDfXo8tvuu6GHdl/br/3hz0pN qZL+WuWO31ZxWn53/I/OW3o92PTD4e63ojscCg3ftsW5rtfzD8/cKTlz3I75 B9baGlxOubxq5KURmZYTg1vkfqNP+zHIa5Ua7Dv4vPrptJ/L5VVtXA73FPa4 jn4e/be7Z79/6tvwFm2P+3VdkXDeq8nkOcMzVn6TabQK+4zkYAMkBoNLL+y0 11Jlree5/U5ZA+t8anYSqvynmgRNN/IFyWxSMlmQwBtNPNfNJiF1RfGUwVvz LOpuuHePTIoxUoFk43XKFd5CjM5GidDoAcPi4waY78z9797Z331Mbrzonz5m Ta160ceojJ8ZEF2YfBRkI50LOwX+f25JPApakpKFLcm+Y/4zPst73rzzrZQv Tteq/duIr6o/P16vW8jRj7anfaJGN7TsX1Xy26gj25f/diM398ym9+dll3hS dlta6KJf0g7uLndg1d5bQyZ+EOa7q/OTAdapuRVOp8VYWo5q/dDLHvI0qsuP T5rtvGLblBdVombTt1vKdg+GrG/7sE5S1RpftqpUtcu20EWnck54H6zU4m23 YffSq7fu2+rXvUcWDvDfkSv/yG59dcwnVRrvWHHxQVbe4upl83uwoK72cRt6 XLt8863Rtdc+qtfYs4V9VPNW766MuTyuRsyrV1+fvX9U69B2WZ0mTp2zeO+g MT+XejrJ+Z3fFr4dWH/lwAXH8hr+T32nymVl++iHgV4b7k72qxIQGn/MiD3n nDRrPeN8BPxVHu7839G8eLmVgg64j9G+ODk7W1wKu6hVXnGp4FK+9u/13+hz ODH84yu/ZdZ7tcLT3MdhqVqlF4eUd3IpU9XdEmYZbnTXgy1BWunCxKew39FW K/siwXLVnI2/0HVZ2IxFXfrxvuuOjT+XLi1PprHmU/u3+bbkyseR0YcbOT+x tw/6euu9OhNOXTrQLWzV1kpfHbt6N/Nxt23t57ardWV1tQspp3+rkOJ1/v6H vjdL9tn83oc73++xy+9Y+qn0ueLBrIvPpyyOeKNDZ0dAE3/fcNsf7/T2mbPv gt8HdyJDA6+U+HXg7dE3Z37VPSo6vWKHzJS86O15AevzD3ttO5h97GDf6Qn3 j55fmxZX4kJ0pZ2rfpv0RalWC+4GrItN2ZRbf+XGgdWWb5hccsh87x0b9YVV XXO87Tl712nNP63+nbbiaH8vvw3dZ1y5m+L5aURgGdvdObmzp4S49HTtfejr M6vP/vTOrFF1nm6JWz7TTfTYFFHPs6yW5iqMpsy3qBlzj2y79EuLi8Viif6T UPy3NBkv2z6HFFIv6C3ZjNzI+FEV/Kgl/1s+Bzzv/DfP/2NKdDx1nn197+x7 uXkXT6xNn3EmcEm16fv6TGrU586mxIdr100ZvPXcphpjSh8+vPyNWRE1vG88 flhzydYHcSPW3761LPDQ/r1v9W6xdnOSCFjRPzVydFb/B3FT0k/E/XAo45tl XTxHRH6aMC06a16FqSv7pJ5oPfDK+W5LWx7948KIWo1aa5YrZ94Zk+75bY8q Odc7lT4y5UL2mbCFQ49GHV04eNHsiDc7el5vfKpXr4i+oTlJDZfvmtjG4/1K PiO+LHlu0YoEn+sdb8Y+6/PJkJm/vtbFZp9+sG0Hn7mdF2x8ELPsu4ul3h6U vHTk+1XeGzL/52t92xz78erbHiejLHPGsAUflN7ivXvziVt386rfWt0v8pYt uNm+opQozTrbOCMf/Knv8rIxuHV2yOrhYcc73fINqeRWNeejtV/PffY3Ld/q gkdruqRmaalLx/9lK5KVvOw/0f79OVl4o6jj11prpbXMbJ4ZOKkJ6vgNM39P Yc8vYUhswaONExLjBwyPSk5qXHABFMS/Efu8sEPYCfVEg7UgrcWLnqjTJAG/ d+TIkX/1e6MT//wLk/+qT2g/ezvdvrj3gvJ9wuNi85wOX9v89NQXHT9uvPbd cI9zfNvvg696PK1eeWTz5TEpW9LHTet9L3j/hMXR70zp3GVsWvmHE5K+y/68 91GnhK8Chr76WWj55VP3br+cdSxr+JJZbzfz3dvN0m3r7xMDzkWIp2dqp0Qs Orfi6YN7QZXXdW37cfsLs+zePUp1uHufTa72mcsHvbyinW+U7nIiq8y0hbvP 5q46UdKndvWt27pP9TvZa5JafvTZmsk3V9tabA8ecsn/bpvPxq2/cbfrJ1nt P4v+PEyePXLdLcrFbVRc5+ftdy3+Objn5PMfu49/+NaBBpevvNvr9St89K0a 780u03Bz514Hv2jZo8fab45fapx7/OawDNtoluZyqCADdLJatdSt/zWNY7EG /iVjZ6Ze1sq/uKHWtbISzsb3bPxPBbdZ+OpLObMyWM6Nt/7yp9LsFQ0/66PV fHmgCzOu27zzjZ/k7r1z4aucI3HNnyqvXQmTIrU4dEgZ1k+LyJTjuSXIkmiJ tURahlr8LSHG34nGn3jLSOOnbpZo47+TjGfjLXHGz9zSyCIstqyA8bX+Nq6T RyfED0qMTIgZ/a+ZpEua1ZI2+kiZ7q8nrX6a0z9nbbvbiys7HclVJyZ4Vusw LNLxpPvB77Y0uXH8RoVxl6bIXiGlP/GNWJhbu4O2bfmgiYFnc/pUftRtXquB fo0ObA9Zk/1LepfL3zrFdf21brWJa5vxFj7DJiwodVjdKNHvQIxfs1HTZ01M rLTuds0mS7ZW8Ln3zP1Bn/oj1107/Ub56LzMDX1+3/Nh9xNPWi3I8P0y8Obt 161nUm87TmuOhZmHLF9t3j91+Z5vVu7Ys6j1CRUxdfynPWadWJvx+YSTU348 7Ki18PH1yy1+u3AspseqRlPveIjNqaOa9Zp6+Pj9gx81XjIhMGrx99sD7w9z e3LaeefGiMMdDw2O/WZ4v5u1U56UmTR7TVJWmpESpVmfvvy23Fia9abx0PWC 0B70bwHNv2DUMm4li96Ak9HCZL6lVcRxV/rlsI7VCLsXz7iysoX3ehuTzK4x 7uhptL0o7Lxcyn3pvmbpTdX1XPhj9707gk9O+YsQGPdLg4+du+V/u+LB+5/O 7ulZoUn/w0unvDOt9uXXelezLn06OqRBvwPnbtRZOjvro6/5uiHHtvR6ZVfI wxn5WWu2znl2Nyh8xfjc25u/yPZKT2G/78g4NnTW7mN1EnucO99xrX7ou9Ur /HJK2X3ktotPywR32N1lYPsf56QOW7d5Wr94y7ORY4MbnV5TqtmZiKaRiQFv XLBu+Oxqfne/8E15F6JrBQ6t/WNYRELmxrCA2C36gcdb8ktkNRzhcXDBwfF9 3/PYVHPfLwN/6rZgq3/1vvmT/crOGdd0ecbyuXVdMyqOsC9ov65tr6xHxyOt 3ru66QfGv93ac1e9Wmef3nruOnXGB7dHZHgd6tTLJ6qb54h9By0L/x9Ysr/X DQplbmRzdHJlYW0NZW5kb2JqDTQgMCBvYmoNPDwvRmlsdGVyL0ZsYXRlRGVj b2RlL0xlbmd0aCAyMjU+PnN0cmVhbQ0KeJxdkMFqwzAMhu9+Ch3bQ3Gaw04h 0HUMcug2lu0BHFvJDItsFOeQt5/shQ4msEH+/0/8lr52Tx35BPqNg+0xwejJ MS5hZYsw4ORJnStw3qa9K7edTVRa4H5bEs4djUE1Deh3EZfEGxwuLgx4VPqV HbKnCQ6f1176fo3xG2ekBJVqW3A4yqCbiS9mRtAFO3VOdJ+2kzB/jo8tItSl P/+GscHhEo1FNjShaiqpFppnqVYhuX/6Tg2j/TKc3ZdHcddV/VDc+3vm8vfu oezKLHnKDkqQHMET3tcUQ8xUPj8PgW8/DQplbmRzdHJlYW0NZW5kb2JqDTUg MCBvYmoNPDwvRmlsdGVyL0ZsYXRlRGVjb2RlL0xlbmd0aCAyMDA3NS9MZW5n dGgxIDgzMDQwPj5zdHJlYW0NCnic7H0JfBRF9v+r6p7pmUyOyTUkBJgOwx0C uSAJIJlAAsRwh0CCEDIkEzIhyYRkEg6PBQ9gIygeq7uuu6Lueq9OgmhAd8EV d71AVlfd9QBEERCjeIAKSv9fVXcunWGHz/r//T7/z39eM99+9epV1atXr15X JyEBAgDRCCKk5BUVTD+bf+8WICNOAyQ0zFxQNEMQhUcApE8B6G/nFI1Nqz++ 7hQA6cBWCxcUFSz8Jj1rOsDWLQC/rVyYN6tkYW5DG0DIZoDI2yvqHA1rfjvz AYDF+7DN4ooWj/xG/NPvALgaAHT1VQ0r6p4PuWkgwBIZDTizwtHUAAlgxP6u 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 yVHy84LjKzajfGv2Taf+Yj1IQQqYBvbrhwFo8BebPvJfjG/NiD6lYGwG6b8m OT4eY9Po5+XbV4xZfGua+5T8fBE0SEEKnBL798fkaPTz8u0rNvv51ozsU/KX h4MUpIBp6MCB7Mf4/Lx8+8p/8b41+/4PMX95OEhBCphGJSayHys1+6n2kf8G +taM7VPyl4eDFKSAacyQIRibYX5evn3FmNW3Zt9HfYRvpSAFKXBKGz4ck2N4 tJ9qH8/6wb41+z7qzf+VUUEKEtL4UaPwcBgR66faR/4b6lszoU8p0rdSkIIU OE1ITsYHt9nPy7ev/DfCt2bfY6i/PBykIAVMUzMyMDlG9fdT7eMcOsa3Zt9H vb88HKQgBUyFEybgAzjGz8u3r28CpfvWHNanFPffWRWkIAEU5ebiA7if7Kfa x7M+27fmqD4lf3k4SEEKmJbMmIEP4Pghfqp9fKE9x7dm30e9vzwcpCAFTJWz Z2NyTBjupzrhpyI/v4Y1rU9J/q+MClKQVKLa76CMAYFxBJ/HRN/ziykJ5Tp9 iVX6/c+ZPpJmim/N6X1KxYHZ+z9FIvud0RAKBpy9iO96E2AWVEKjoqA0saek fNh1/fh3edpzciZfNmlCdlZmVmZGelpqytgxyaOTRo0cMXzY0CG2wYmyddDA AQn94+P6WWJjoqMizRHhYaGmEKNB0utEgRIYnW+bVi57h5V7xWG2GTOSWdnm QIGjl6DcK6NoWl8dr1zO1eS+mnbUrPqRpl3VtHdrErM8CSYlj5bzbbJ3f55N 7iCL55UgvzXPVip7Ozk/i/PiMF4Iw0JiIraQ8+Oq82QvKZfzvdNaqlvzy/Ow vzZTyFTbVGdI8mhoCzEha0LOO83W0EamTSacodPyJ7RRMIShVd7LbXn53gJb HjPBKwzNd1R6584ryc9LSEwsTR7tJVMrbMu9YJvijUjiKjCVD+PVT/VKfBjZ xaYDN8pto/e2bukww/LypNBKW6VjSYlXcJSyMSKTvNNted7p6z6KSx7dQR5Y UOI1Tu0gsKBkF1yurG8rWJ+XV8pGi5pasqm3eoLQmh/nklmxtXWT7N0+r6R3 bSLD0lLsNHl04fySRLTalr9FZtOYX8JngJ2SuLFoJJOxaaoTdtrymaS8RvYa bVNs1a015bhY/Vu9MH9tYnv/y+27lCNweb7cuqDElujNSbCVOvIGtMVA6/y1 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 4j6v4G09vL6e98Lua7vXz6VFcgPvm1lUwa1q4qP1rILM/cjsb+ajdUVHj1Vd 68o8ysqred/Vvdaa6bp5X+rYXXJ1jTyaRyq0SGv6iZ4H+3Ryr7h4ZqjmM1cl zdzTY3pFpJvvyUbuz1othp08Buq0Nl39qxmvRRvTpc2T1Xm0eOvyQRVqst5U aY9XXZpv3do8XFy/mZe61jSZl9by1v4iooqvoBrPbCaspo73pkaF2p8b91/X DlF9z2agzqf33qrkI6/Qck0tX5NqbWfIXKcW112NDzfiCp5fnb166LJHzQK1 WmTI3IMV2uxdfMVquU4D3zdqJNbzlmN+FNeu7piSsXaNtip13BYWlS3aXlQz Rm23FXW81BO3XXu0x2N9Z1ehjbGc99DMvVzZJyqdsArlXX5lUV3RPb8qLed4 NBvVVfJwm9RMoK44s13d6R4ty6j7qEmLsJ68p9bW8fVw4JPSxXdJE7fDgyOP 7hNl6uiV3FsNfH+s7Z5F19is/Wpe7+CeaNTGYLtH9aKHt++yuKv3Bh5BdTzP ddk2Bkp5RlUt7D2Wh/u0yyfqrlGj5cfW9e7fpWn2ZES17NByTVdce7oz/3Le R09GcGk7u8sKtUXftVF11flU8hX0dHundyz4moNL2+ssSmuxbaX2/JZ/4gnW Qo28Eag/kq9YHY+rSr991/8Xc+/pvbJ77dSY6np69azbT2fQ+/na166JvdaI zUSdy4+fVl27rJKfEdjM3TyiLhYJjj6r7tSe1j9+Zrt5jmrQMhWztqX7Sar2 05WRLhZDgZxkXdpJdmqAJ9mZKGe5rAXLLv4s6XviZFL/radzzzG/9JyjWGZx XvRky/4g5Uo4i72fVPc6mYcSTwDjdGUiN3Sdsbqs9N92IW/T2yMsc/rXn8Gl Lfy8HvD5u4//3Zo/PtD28kWsE63iZHGiOFUcL2aJdvEysVDMRml/lNjFXJSl XWTMBdpbyAcQ+FvItEuaVSGTklS2q0hK9wqvvGgL9bmwknsB9xZx8Givv+ga zeRZzKU9Edbxvergf31OOTtzvzIc3vbzMzYC/58ZMUAUBYSwvPxpy6bPLJ07 Qx68onZtQ3XKYLkgT06RF5TOzZen5Bbly/mz81SNn+imct3UgHTTuG5aQLrp XDddLp5dMHVOXv7C3JnF+UXy4OKklJS0lNHslotmBtJTBu8po6snOT09oGbj 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 z66QZ7eJKQMKPLsy8HYM4vcLnl0hz24Th3LF3MO9EFfEAgwKPLtCnp1681Lg 2RXy7NR7lwLPrpBnt4mrsQo8u0Ke3SZ6DQWeXSHPbhO9hgLPrpBnt4mLwAo8 u0Ke3SZuS1Tg2RXy7DZxUVOBZ1fIs9tEn6LAsyuOt/kQ2eDuuXGIK+opyODZ FfLsNtGJKPDsCnl2m7iFU4FnV8iz28QtnAo8u8JJ8sQKlgo8u8I58sSQRoFn V3lS5KlH+wFXeTLkqaf7AVd5EuSJbIBnV3ny44lsgGdXOD2emN6khHskId4+ RmQDPLvCyfHEbacKPLvKkxtP/I7As6s8qfHU7wi4ypMZT/2OgKs8ifHU7wi4 ypMXT/yOwLOrvGnxxLbAVZ6seOL3C55d5UmKJ36/4NlVnpx4Yt+X7mmXOJ2U 2PfBsyucEU90iwo8u8IJ8US3qMCzK5kn04/YFrjC6fDEnAAFnl3hbHhimp9y T07FyfDEvHDlHp6Kc+GJXlK556fiVHiil1TuEao4E57oJZV7iipOhCd6SfX4 IFWcIEPsv+5ZqrhMjUENztzzVHGdGoManblnquIi8gY1PHPPVUWq3WlMZAtc u0Ku3WlMhAtku0KynRnE1TIFtl3hOvIGNbwD3a5wIXmDGt+Bb1e4krxBDfBA uCsk3J3G1MN63dN6MWHU8BCUu9KYMGp8CM5daUwYNcgD6a5wLXmDGuWBdVe4 mLxBDfNAu6s8B7FS4zzw7irPWazUQA/Eu8pzHCs10gPzrvKcyEoN9UC9q7yH slJPdQbC8pzLSg0UTfdMaEwYNVIE+a7ynM5KXFpVIN9VngNaiWurCuS7ynNG KzVIBfmu8DGtBjVKBfmu8EmtBjVMBfmu8GGtBjVOBfmu8HmtBjVQBfmu8JGt BjVSBfmu8KmtBjVUBfmu8MGtBjVWtdyTxzFh1GAV5LvCx7ca1GgV5LvCJ7ga xGV0BfJd4UNcDWqsC/Jd4XNcDWqwC/Jd4aNcDeJKugITr/BprgZxKV2Bllf4 QFeDGmeDl1f4TFeDmLirQMwrfKyrQY3SwcwrXELeoIbptnu+PSaMGKdrwz3j HhNGDNQ1yHltYMKIkboGO68NTBgxVNeg57WBCSPG6hr8vDYwYcRgXYOg1wYm jJhFoMHQawMTRkyV1qDotYEJI+ZKa3D02sCEEZOlNUh6bWDCiNnSGiy9Zpgw 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 74jbb51+NHFuj+datbXDG4SFdjB/f6lbqemfnyz/5vXYmIjz+X/pe23klalf d46Ln1GmVeaoM/GbzoSveri7xMZdWft29ZyScmvviRUZSflPxpf9eOnd8Z8V bPLujfCVCaPWZNde8lHfpxatnlAgcVbI5o/07Ir5FoRYC3asNBp+Uul7Y/He 3iXKr+78xvkbo4p/0iOiiHljevbbE6MDX8zX7ctvjiw79uNLb42o/mB90qKp QaLLmh61ihc1MvIJZygL9Q5jhWKbf/CVJ9Dj8cT/yVD8rwwZvrHPlkLqnNmS 6cRGzkOV89BI+498Dvh5wN/8/B9Dov3pM61V3bJuZp85fWDFjDeORLz/1JTP u4+v1/36mtQ7K1ZOHLDh+JrKowvv3r3oubd6VA756f6dKu9vuJ00bNW1qwsj vty544VujVasGyLCF/dOjx05v/ftpIkzDiSd+nLetwvbFR8W+0nK5Pj5M0tP WtI9/UDTvudPdPqg8d7fTw6rWq+p4Tl/5KXRM4p/16XCgkttCu+ZeDLrSPvZ A/fG7Z09YM7bPZ5vXfxS/UNdu/boGbNgSN1FW15tFvx62VLDvipwfM7ilFKX Wl9J+KP72sSpv9RsZ1pTdjVvVeqdtu9+dLv/wu9PFxzcL+2D4a9XeC1x1uWL PZvt++HC4OCDcZ7po9m7bxZeH7J13YGrN85UurqsV+xVM+qZz70hUYbf284V efNPcxffYHD1WOKyoe33t7kaGl02qOKC91Z8884ffzPyLct5tkpg+nwj/YNx fzmKzE9b+N8Y//4cLDznnfg1NZoYjTMbZkaMb4AmfoPc35M780tJTMh5tn5K anKfoXFpQ+rndIAc/h32ee6EsA2aiUYZkUajxzNR//ECfu/w4cP/6vfGp/75 F6b91ZzQOnZthjW327slu3dISjjjv/viugeHPmv9Yf0VL3cIPs43/jrgQvCD SuWGN1zUf9T6GWMnd7sZtfOVufEvTWzbbkxGyTuvDPk+a1u3vf4pX4cPfPLT mJKLJu3YdG7+vvlD339r8DOhOzp5Om349dXw4z3EgyPVRvWYc3zxg9s3I8ut 7Nj8w5Yn37JCuhRsdeMWm/DUp4Fvdi0RH/BT4XYH5heZPHvrseylBwqUqlZp w8bOk8of7DpeLdr7x/IJV5aZjTZFJZ4Nu9Hs07GrfrrRce38lp/Gb2svj+25 FBQXGDQiqe2jllvmXo56ccKJDwuNu/PCF3XOnX+567Pn+cirlV97u0jddW27 7vqscZcuK77df7Z+9v4rg+aZI1lG4A/OsHnS38/PSN/wPzM45hngfRo7M/0P o+TjG2oNP5Y/wPmenX+Uc5uFr75gACuCzbnz1n2PCrMnDPzTUkYVX8NA5vTb 6/cLD04cMXvrtu5NZ1ept2rz2F1Nthjp41GbImyEMSzz+XHPeiI9qZ4ET6xn oCfME+38ner8SfYMdx41ybXxfZz/18qTlvsvEjxxzqNOnnjn3wxxHiV7kpzH 3FPPIzzm/PBxVf8W+LSRKcn9UmNT+o/89xAzMMPPE/LazJoNyp6YNbtBx6nD Nm9qurVV+l6/cslBFQLOHHlv7SfL/HesGRi1tePY2Cf8ptfbkqXOVX3t7i/R 445U+r3o6gczx/fbUPBWRGbjAdu3vd5vz4CyQcWHv2IMPTdr6ncHP5z75p6u /d5tPKH58qP9fl+456MOQ7tMe+12u6wxn50cFl/p3H57WNHGD6pfubKm2Zjb Tb/2zE0oMWt54fLH1lxn7X4od2ZC2Je/ljt5OmnJzE6TX7reecbrYwoEPgq4 N2Bm6WdPspgiF6Zkzbs2fdKM4CKvLPik6MKY8lf/lf/gpulm4vrM6FM7bs9v nb05tfGCNaV+aHXuoeo/pEW73ftG9PLEXWaPHox8d0SVaVWv/rzPr9SLGd/P z3BipQy/B76vMYhl+F1xnrqUw3y//4jp/Au/WiSogPcN+DtDT+YLRhkMZGHf eo+fw+Pjn+RjRXODAJNJZhlMODOepzCPJQKLLe/ccVy3+VPnNO545MvUtb13 /wUClfrfYs9sqx5+9OUe32dEbKm6cXm55gWiZp7/ZfDDI02yv3pl+azEaeEH eatlrZOCj/Vpc/3DcTvrDG7cMmVds4SIjFrZn9wJV4N+LDts2rSV/vXLnKt7 aljTUQcjrx6PmVGz9s/7E3WFR5EVw7ovuHz0tnlgVMZH1+oNWPVbpWrvtDi7 d37c0SXffH4l/FK5X68v737tk8WHF/7Sb/nM+VNVmx+PPFrvuVvw++ozf249 JuzDdoM6XU55uv7oL5LUvjevLq19pHtK0fSQgx37Jcofyz/V8q1ODZ4dezLh 95fqjdt70C9j5r9SsoLW9r5RutOKa/WOHIl6FN2oV5Wae1Y2nt3xrVrhP/Ve dPk7UXL74Tb1+vTvOvrzEKf//x8uUbsgDQplbmRzdHJlYW0NZW5kb2JqDTYg MCBvYmoNPDwvRmlsdGVyL0ZsYXRlRGVjb2RlL0ZpcnN0IDQ2L0xlbmd0aCAz OTEvTiA3L1R5cGUvT2JqU3RtPj5zdHJlYW0NCmjelJFfS9xAFMW/yoW+KO16 Z+7kL4iQbNw2UC240i0seRjNNA5kk5CMrfvtvZOtKMKCfUom55655+QnCQRI BSGBDICSGGQISiiQEQQhSzE/EpAJRGkE5+f4Y6zNaLvmpKxN56zbn+KNaezk xv1JVvd35hTXj8PQmh3LIC4u2JNN9/6QqgizP83G1u4BVES41MM3Y5sHBzEl WJjD2IKkwFWrmwkU4arvXJ73T9uFTGjWQAohvKOaxZVtDYHiGjfz+VrvDGb5 sri8/JyNVrefSFzrcez/zvLmsDAQAkunW3ufdU1rQOB3o2vuxf3xSj8dQkre iWtndj85L97uBzPf4ZOOdnD9iL/+FaCQq26DLXEsGcttQqKquHquJ+MtRxIt y2K9n3hB2f3uQdLcgj/e9l/L4koP+PKXsdjMvd/t9+i8Zf1453w6tvoBn5Re 8+LGw+U5jsh4+aU6RiX9XyokguNUwg9Q+ZL3bX1A8RZQ/A7QIj2L34AhoV7A pB8AQ7GqngUYAP+j4dsNCmVuZHN0cmVhbQ1lbmRvYmoNNyAwIG9iag08PC9G aWx0ZXIvRmxhdGVEZWNvZGUvRmlyc3QgMTIvTGVuZ3RoIDE5OC9OIDIvVHlw ZS9PYmpTdG0+PnN0cmVhbQ0KaN6Ej80KwjAQhF8l4FFlG/GnghRarSiIB614 jk3QhbqRZEV8e5OC9uhlYZeZ+WblXCRilAgpU7FYQKG8WVtiyIvlqiz7uUPV 9EbJXjlnX7AyvjakFXEUeSGnwX2Akmqrka6w1YYY+T3cwPF54ffDQBVGApU9 EQaREePWEa8QM7LsL3VQ2EZvWTVYd6QzUk4ef/saneflTTkxSdvgWNXhg60T ctYyd6pT7NU98KddS/c01bdu6w8EzbfwYhrNWfYRYACpnGF+DQplbmRzdHJl YW0NZW5kb2JqDTggMCBvYmoNPDwvTGVuZ3RoIDMxNjEvU3VidHlwZS9YTUwv VHlwZS9NZXRhZGF0YT4+c3RyZWFtDQo8P3hwYWNrZXQgYmVnaW49Iu+7vyIg aWQ9Ilc1TTBNcENlaGlIenJlU3pOVGN6a2M5ZCI/Pgo8eDp4bXBtZXRhIHht bG5zOng9ImFkb2JlOm5zOm1ldGEvIiB4OnhtcHRrPSJBZG9iZSBYTVAgQ29y ZSA1LjQtYzAwNSA3OC4xNDczMjYsIDIwMTIvMDgvMjMtMTM6MDM6MDMgICAg ICAgICI+CiAgIDxyZGY6UkRGIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5v cmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyI+CiAgICAgIDxyZGY6RGVz Y3JpcHRpb24gcmRmOmFib3V0PSIiCiAgICAgICAgICAgIHhtbG5zOnhtcD0i aHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyIKICAgICAgICAgICAgeG1s bnM6cGRmPSJodHRwOi8vbnMuYWRvYmUuY29tL3BkZi8xLjMvIgogICAgICAg ICAgICB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4w L21tLyIKICAgICAgICAgICAgeG1sbnM6ZGM9Imh0dHA6Ly9wdXJsLm9yZy9k Yy9lbGVtZW50cy8xLjEvIj4KICAgICAgICAgPHhtcDpDcmVhdGVEYXRlPjIw MTQtMDctMDdUMDc6MDU6Mjc8L3htcDpDcmVhdGVEYXRlPgogICAgICAgICA8 eG1wOkNyZWF0b3JUb29sPmNvbnZlcnRvbmxpbmVmcmVlLmNvbTwveG1wOkNy ZWF0b3JUb29sPgogICAgICAgICA8eG1wOk1vZGlmeURhdGU+MjAxNC0wNy0w N1QwODowNTo1NSswMTowMDwveG1wOk1vZGlmeURhdGU+CiAgICAgICAgIDx4 bXA6TWV0YWRhdGFEYXRlPjIwMTQtMDctMDdUMDg6MDU6NTUrMDE6MDA8L3ht cDpNZXRhZGF0YURhdGU+CiAgICAgICAgIDxwZGY6UHJvZHVjZXI+Y29udmVy dG9ubGluZWZyZWUuY29tPC9wZGY6UHJvZHVjZXI+CiAgICAgICAgIDx4bXBN TTpEb2N1bWVudElEPnV1aWQ6MTRlMDJkOGQtYWFlYi00YjY1LTgwMjUtYmJj NjM3NWI4ZjNiPC94bXBNTTpEb2N1bWVudElEPgogICAgICAgICA8eG1wTU06 SW5zdGFuY2VJRD51dWlkOmE5ZDdlNDcxLTM3NmEtNGJhZi1iMDlkLTZmMTM2 NjkxZjU5YjwveG1wTU06SW5zdGFuY2VJRD4KICAgICAgICAgPGRjOmZvcm1h dD5hcHBsaWNhdGlvbi9wZGY8L2RjOmZvcm1hdD4KICAgICAgPC9yZGY6RGVz Y3JpcHRpb24+CiAgIDwvcmRmOlJERj4KPC94OnhtcG1ldGE+CiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAK ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAg ICAgICAgICAgICAgICAKPD94cGFja2V0IGVuZD0idyI/Pg0KZW5kc3RyZWFt DWVuZG9iag05IDAgb2JqDTw8L0ZpbHRlci9GbGF0ZURlY29kZS9GaXJzdCA1 L0xlbmd0aCA1NC9OIDEvVHlwZS9PYmpTdG0+PnN0cmVhbQ0KaN4yMlQwULCx 0XfOL80rUTDS985MKY42MgUKBimApIJi9UMqC1L1AxLTU4vt7AACDAAkNQzw DQplbmRzdHJlYW0NZW5kb2JqDTEwIDAgb2JqDTw8L0ZpbHRlci9GbGF0ZURl Y29kZS9GaXJzdCA1L0xlbmd0aCAxMDQvTiAxL1R5cGUvT2JqU3RtPj5zdHJl YW0NCmjeMjJSMFCwsdF3LkpNLMnMz3NJLEnVcLEyMjA0MTAHQ1Mj8yhNiHx+ kUZyfl5ZalFJfl5OZl5qWlFqql5yfq6mvm9+CrpOCwNTU1NtA0N1AwN1Tf2A ovyU0uRUXAbY2QEEGAALcip+DQplbmRzdHJlYW0NZW5kb2JqDTExIDAgb2Jq DTw8L0RlY29kZVBhcm1zPDwvQ29sdW1ucyA1L1ByZWRpY3RvciAxMj4+L0Zp bHRlci9GbGF0ZURlY29kZS9JRFs8NDRGNEQxNzA4RDQyMUY0NzkwMDIzRUZB MEU5MUFEMjE+PDAyNDdFMUE1RjI2NTdBNDNBMTM5MUU2RDlFMjY0NjZFPl0v SW5mbyAyMiAwIFIvTGVuZ3RoIDc2L1Jvb3QgMjQgMCBSL1NpemUgMjMvVHlw ZS9YUmVmL1dbMSAzIDFdPj5zdHJlYW0NCmjeYmIAASZGppNfGZiADBsQKRgB JBl9DUBsRjUQ6X8ALPsULKICInmXgUiGSWCRY0AT/pYlgEUYGAmTjL8QbKb/ YBEGgAADAG97CzsNCmVuZHN0cmVhbQ1lbmRvYmoNc3RhcnR4cmVmDQoxMTYN CiUlRU9GDQo= ------=_NextPart_000_00A9_01C2A9A6.210A6442 Content-Type: application/octet-stream; name="Google PROMO.pdf" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="Google PROMO.pdf" JVBERi0xLjUNJeLjz9MNCjIzIDAgb2JqDTw8L0xpbmVhcml6ZWQgMS9MIDIz MjQzMy9PIDI1L0UgMTgyNzczL04gMi9UIDIzMjEwMS9IIFsgNDk2IDE5OV0+ Pg1lbmRvYmoNICAgICAgICAgICAgICAgDQo0MCAwIG9iag08PC9EZWNvZGVQ YXJtczw8L0NvbHVtbnMgNS9QcmVkaWN0b3IgMTI+Pi9GaWx0ZXIvRmxhdGVE ZWNvZGUvSURbPDQ0RjREMTcwOEQ0MjFGNDc5MDAyM0VGQTBFOTFBRDIxPjww MjQ3RTFBNUYyNjU3QTQzQTEzOTFFNkQ5RTI2NDY2RT5dL0luZGV4WzIzIDMz XS9JbmZvIDIyIDAgUi9MZW5ndGggOTAvUHJldiAyMzIxMDIvUm9vdCAyNCAw IFIvU2l6ZSA1Ni9UeXBlL1hSZWYvV1sxIDMgMV0+PnN0cmVhbQ0KaN5iYmRg EGBgYmBgWg4iGb3AZCOIZOYHkSzMYJIHTMqByTKwbAqYPRXM5gOTd4Ako9FB ELvDHsSumg5iByQDyX8RQBJo1zKQCNAGqpH/GRivfQYIMAD+kg01DQplbmRz dHJlYW0NZW5kb2JqDXN0YXJ0eHJlZg0KMA0KJSVFT0YNCiAgICAgICAgICAN CjU1IDAgb2JqDTw8L0ZpbHRlci9GbGF0ZURlY29kZS9JIDExOC9MZW5ndGgg MTE4L1MgNTg+PnN0cmVhbQ0KaN5iYGBgY2BgsmJgYWDY2M8gxIAAQgzMQFEW Bo4JrZEODAxTGBjkVx/g6GDuaADzgYCdgbm6GUjzA7EASIBRhUGQQa+h6kD0 A70G8QucHiwNTIUMXxny1IxXJG4+PdPij2MD1HQuBubO+yAtQHwMIMAAPpkY rQ0KZW5kc3RyZWFtDWVuZG9iag0yNCAwIG9iag08PC9MYW5nKGVuLVVTKS9N ZXRhZGF0YSA4IDAgUi9QYWdlcyAyMSAwIFIvVHlwZS9DYXRhbG9nPj4NZW5k b2JqDTI1IDAgb2JqDTw8L0NvbnRlbnRzWzI3IDAgUiAyOCAwIFIgMjkgMCBS IDMwIDAgUiAzMSAwIFIgMzIgMCBSIDMzIDAgUiAzNCAwIFJdL0Nyb3BCb3hb MCAwIDYxMiA3OTJdL0dyb3VwPDwvQ1MvRGV2aWNlUkdCL1MvVHJhbnNwYXJl bmN5L1R5cGUvR3JvdXA+Pi9NZWRpYUJveFswIDAgNjEyIDc5Ml0vUGFyZW50 IDIxIDAgUi9SZXNvdXJjZXM8PC9FeHRHU3RhdGU8PC9HUzQgNDEgMCBSL0dT OCA0MiAwIFI+Pi9Gb250PDwvRjEgNDUgMCBSL0YyIDQ4IDAgUi9GMyA1MSAw IFIvRjQgNTQgMCBSPj4vUHJvY1NldFsvUERGL1RleHQvSW1hZ2VCL0ltYWdl Qy9JbWFnZUldL1hPYmplY3Q8PC9JbWFnZTE1IDM5IDAgUj4+Pj4vUm90YXRl IDAvVGFicy9TL1R5cGUvUGFnZT4+DWVuZG9iag0yNiAwIG9iag08PC9GaWx0 ZXIvRmxhdGVEZWNvZGUvRmlyc3QgMTAxL0xlbmd0aCA2ODYvTiAxNC9UeXBl L09ialN0bT4+c3RyZWFtDQpo3qxV207bQBD9lZH62MLOXm1LKFISkrYS8ACo VEI8LMEKloyDHNPSv+/MOk6cEIKTVquJd+eycz0bIwHBKDD0qyEyYAyohM6W PhEYRwyiCFxMzBikRAsmAamcAosgLcZgJcgoScAqkInTYDUohfSlu5RGODkR g3NxMSuffC6u/zynYvRafb2qfJWKiQc8tkh2vd4HejJo9OeTtKggsij6v6Y3 2UP1SI6lGPrnb2k2faxFp2mtdqToMM79dA5aifGsqAaD2evtkaXwWEaJUOpk cReE4yxPFWhLRbkMjAv/lIr+YHg6Gn0e+jy7L7PAv6ldGUTxvSL+pF9M8xRQ nPvXOiYZGS2uqvTpB4VXZ8OGHFiZPVezUvxcxEth9Hq3Srk7LoCfp6y36XRU TGYPWTEVN1nRL+bZ8jzOynk1fPRlk+DKA7eUEznzK42Q0FiKq5f7imO6Ll/S ENwyQhHin/MkkHG75ol2q5prp9o1V3Gr5nJrzSWNEMtAIiJbrNXcba15v8x8 /knhhS/L2e/dpT9LPVeEZrLVBXK66AIF36ULMcXRLEuDj6AiHYg5LA9n/hIZ 6zpRo1/fy5xYq3B/IEJcIN6jBKfjcK4tmMsWLtaBG6QMyYVWY9Xso8gsY2+v ZTwS1+Jq9twfJpbzl/29yYNyZ/nSjvbsN9y5oP+92M/q5NBsw8nGoBwGF7cO F+mSBV5UF7xEB+MF4214UdIE2Xa8RB3w8qUGyC7YHCXH0RI5SrWQQ+73Rc46 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 KWjc90nGYV0jHzSq/LNky1HsedcdcWv/Jy6UtN6Cjf+4YzjXdK0un4onc3Su WZfMQ3Ub9dA0k8g9axJ4vRX1LrqqbpixYS3g6Aa1nJ2SDASYMTTQrzzIXgZI nt1alGZ3t5GE9QrKow8whNRbWkdao0XqNF7KjeWPELBOjIuRNyFYTBzb1Jp4 h5g7trrUa43w3csZz/defBk4u6yKd3prUCBdl3IJolbWBLmt6oAQali8+m16 gAavFCcbzpiB4BKb5wkbI8JecOzR5oFyPVDBRWv1DEN2jHP/i30z0kgWcSGa eIGidPSeINaZfgaZCTyOfMDA+OLAjTS1qyV+3Z9qN45rcjr7QcVNrjK3za0X 1qNDV+sQgXMuQGTX+5nWrXrIcfMMCHhhM4XefoqJJTrtnuLAPLVQMSCKnLDH l85O9thSzj3ycMXVed8Y7nmEZD840qCIu2n1Q+F8h713zTsHEdQF1xpfrTjc C9w3fK3x8MTo87Ihzz8BBgANzZB4DQplbmRzdHJlYW0NZW5kb2JqDTI5IDAg b2JqDTw8L0ZpbHRlci9GbGF0ZURlY29kZS9MZW5ndGggOTg0Pj5zdHJlYW0N CkiJXFWxjlw3DOwX2H94ZZKClkRSotoAtgG32S5IZcBO48r/D3hmdD7vGQfc QnoSOZwZUjePbqOuaN1mXO5pvV++02JdPso2NmubX5/vt//vty9/3W+e3QpX +rAR1zds+La9rxhhPXSrYeXTml/ep40rYtkejOF9mXNjW0t8LYu4Ipt15Ovb cmIFSFuH3W04Dk99RpDWserm8/LZbJ40Q+gIS5HT8BWHNkMFf9wH9mKGuf+M i2pjpjnieijSnBZdFCzknMti6jDSTmxkWuJwAiOzIAJWq1tg5d1W6fBqxB4O cChvbgKPgTugYhZrDvCDPEIcBhQAw6/RlMbLnCRO20tpXlCgTufnkEAsssT4 QhpAawjUodqJ69Kjo15+HbZxszuRvRXvSdRy5mXCJU3XsEoR2HFrDnJOBpFW MQBuJasTRZvKB+4EEkIukoLiF+tiRNB5Dg7RM0UBS66tg0XitwVWoHQcehCH Za1la6mMxOcKqkwZOuDtRiQ8DDskNuBVOndCfq7AOFcu9DVtzp+HJxCiZjDj uURJdZUKMhl5FWvR4TxmWbLSghfphqU8DDlk0H30r6SYNCEqc4ANriATV08U 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 UC71RK6rZ3RSraQaDRAFyguGAfpeUDnl4PS0REukkwiNrD4owbraEmdtYL/W XIzFGba19DwbhKoXuNI2ND2ScxytNrrRrtL4KDgQrMEoabsw9FPXCIdjzsee b1mTztU8aXNiJqcS6Oev/PA0aDioTTDbofzAC1QdjNIlz6eExecBcy2m7NgD 51asbcnif+yx3p6nYKtoRPlkoaJgyHKsKfipzzb3sVdNwfJH1VFhneUuUVyr XAqFXf3GG10PmI5Lgs8nSoWBHToWj/X7gdYNb214W6a7Qi5Gkoi8SCVXttyy MI6V77CXjmZO9qq+96onbmuMDOM6gx8ysinxJYIlesqjV9cE4ag3XUxGQoM5 7y6VPohvlTrtdLZzTvcvrs2dvehuPA621hdqoyGVc9yeRKN+l0mtwheG3MUz 7Eyxa0zbOs/pZo9oFgaeCpOhZrf0jXza8n/YIFXJosV+Rx5523ibHQtjuNgg c8lfbnW9RunNwd4S0/XmM9Wc9aayzlEddd0B7Qztflvl5fS6UVOHee0k7DUN LgS6H1T6ve5ypfnylJNxxZGrfSU8X85isZJ8l3C9e2NmJrftK6Z8S27rtoM1 +Ipi940rnM7O7uXy1lHuUbyhtR+qhdP6fgybqniAhT8CDACzPdbkDQplbmRz dHJlYW0NZW5kb2JqDTMyIDAgb2JqDTw8L0ZpbHRlci9GbGF0ZURlY29kZS9M ZW5ndGggODQ3Pj5zdHJlYW0NCkiJjFXBbtswDL0H6D/waAGNYNmOE2OndWg7 7NAVaG7tDo5jN0LduLOVZtnv7EdHUpITdzU6FFUkmSKfHh+pyX0wFT9g+e1s crk8m1zgv4IQ/xQslFykCSRRIrMMls9nk/vgWcRBLqZxoGuRBHAppklQl4Wh rbbZ0lIXMOJQJQs5H/r7LhbBlg7XGv3xrKQB7sjVXqjIrnl4oaEzeIQhPPFm 92kkWpQoGc2G4caQRUkiQzW0PQaHNWJreLbCWdnj5dmrtdlrsjcbMZ0FcGjw 645JgZdWj0SNZ5lcxMOov9nbOdCIXlLrBb0T3zUUDIN5MhgwxKkzsSgMLt8g hZwgFUYj0DQAzYcHCEfgzSMZRph/paTy8DgFzL6hdLv5Izr28XEk2HDtZ421 IM5KwHVub5AGaz6hTYcJhVvKd9us6YdhFXQ700k2+kzbgHYXYhqhh9RS8ARf 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 LYsyX+gWIruyqrSTsgIOLJF783voZfT3aPq/52tpJtceNE9cVsCcGOl9mF8z Mwh0Mx14rjl2f5wNOBhfxnbkVSahZot1+sVhSM4RiUHQDdV2895AgaqKuG8A BFwg+Vd7h2GWwBQ5M3QOgDBkKrV1W0wbJtAaWpybvNTHQ5ymcdGnsck3MIM3 zBUyS5nkl8HrcpBJJuMLB3AasvhV3UffG4QsNB8gbZxAY8MfiBLupRRGme9N r0gFLuGGUuhW4o2V6EfUV2QOjoff1rNlzhVcQeSX75H/AgwAa+CG2Q0KZW5k c3RyZWFtDWVuZG9iag0zNSAwIG9iag08PC9GaWx0ZXIvRmxhdGVEZWNvZGUv TGVuZ3RoIDc4NDQyL0xlbmd0aDEgMTczNDcyPj5zdHJlYW0NCnic7H0HfFRV 2v45904vmZkkkzZJ5oZJQiCkkFASQBhIo7cwmIBCelFKTKEJiqKgARTXrqjo 2rFMBtTYG/ZeVnftrK6rq9hWXUUg/+fed04IrPrf/b7dz/X75pw893nOe8o9 5z1lDj8zkXHGmBsPHZtdWjmlYvu5W8qZ1L2HsaS3yiaVzssb6riZsR3zGOOP l02aXnJZS7mdsSvTGZPyK0rLyv/86NeQG19lTP6sYvasymlDx0iMXZPM+Pbu isrApHPGTH2ESeNvZGzysFmVeQXfv/U7F9r6Pd5aU7+0tm1MSC1fYEIje+pX dCrBy/e8zFjtd4zpk5vampd+++0MG2MjnmXMnNRc29HGkpkP749FfWfzktVN pVFd7zPWjLR1VEtjbcPnLulqtH8c8ke1wGC/1SYjfQHS6S1LO1eN/tz4Bt5V xFjeiyc2ti/jg/hGxrZtR37CkuX1tUm3JDzMWPt0xlJnLq1d1ZZWmP4c6vci X1lWu7Qx5ZaTTkP53YzZx7ct7+js8zDUv+JrNb+tvbHtxNulQ4wd8xFe52Sq b/VvDWkbnJuy2DHuG5aIYSLc+8naZ1V+3r5o3w/7D242f2oahaSZSYwC6hnY Icb3WHb8sH//DvOnWksDgukR1eLIZLOYno2DlpiT5bFGxlzbtPdyJuuy+Tbk mvSX6gvRZCqx/CLbKDETkxx6SZJ0sqR7j0l9fnZLH72XsRmVisL8jKUUUx+M V0qZCuNXqXnyXfoodaRoPepwb/gL7P98MLzObvml+/C/Jega2dW/dB/+mWAw /Hv6K+/7dfnh3xF0I1jNL92HSPjvB+lpdukv3YdfQ5D+xCb/V+rxb9mSf3Vf IiESIiESIuG/HqTLueUn82rYvv/JvvxagjySbf6l+xAJkRAJkRAJv66gW8rO +aX7EAmREAmREAmREAmREAmREAmREAn/e0Lk35mREAmREAmREAmREAmREAmR 8CsOchjJ4W8brEEKSmpiOrYI6WjmhEX9joKdDWIzWANrZztSivv6tNJ2phxh 433fMNb3N3YnT+qr/2RTuM2oI98oT5UvZgb+qZb68uhvOWjfa6DvREjs5wMf 0N6/I5T+M4V50s/kbfnvduV/OMj/0tb+rSvJX9GweNHxxy1cUF0VmFc5d87s WTNnTJ82dcrkivKy0pJJE/0Txh8zbuyY4qLRo0bm5eYMy8rMSPcN8ibEupwO u9ViNhkNep0scTaszFdeowQza4K6TN/kyTlq2lcLQ+0AQ01Qgan8yDJBpUYr phxZ0o+STUeV9FNJf39J7lTGsXE5w5QynxJ8rtSn9PIFc6qgt5b6qpXgPk3P 0LQuU0vYkUhLQw2lLKGlVAnyGqUsWL6ipbusphTt9VgtJb6SRkvOMNZjsUJa oYJZvrYenjWea0LKKhvTIzGTXX1tUM4oq20Izp5TVVbqSUur1mysRGsraCgJ GrW2lFa1z2yz0jPsoe4tvU5WV5Nta/A11B5XFZRrUalbLuvu3hR0ZQeH+EqD Q9Z8kIAhNwaH+UrLgtk+NDZtbv8LeFCf4fQp3d8wdN6379MjLbVhiyHD+Q1T pTrEfjchX2iGvqGHGF9amtqXzb1+VodEcP2cKkorrM4TYv687OqgVKPmPCRy 3AE1Z73I6a9e40tTp6qsJvyzoiUhuL5OyRkG72s/GfhBvhKUM2vq6ltUrm3s 9pWWkt/mVQX9pRD+2vBYy3ry81C+tgaDaFXdMKcqmOdrC8b6JlEBGBR1Dlor q7Qq4WrB2JIgq6kP1wrmlZWq/VLKumtKqYNqW745VXezwr73ekYonl2FbASr VvsRjCvBpGSWdVc1NAW9NZ4GrM8mpcqTFvRXw33VvqrGanWWfM7gkPfwujTt jVotjO2o0qKwOnJjhkmpkjxytTpbMCjlePgmjUOGE9OlJdUZnTROqeIeJorh LeESqjqiHSTkjJLJapasVi2Z7EmrTqPwM13yhPukzwiaBrTlhKG/T/Sen+wa lVY7NEQpaywd0MEjGtWHOxhu7cf7Kam+CL8YNUzqdE4WWXIGdi5sEprRTOos JihBNlup8jX6qn1YQ/7ZVerYVF9r8zut0jdtzoIqbbbDq2TeESnKL6JUkKUh WySkEqzB8myPmFYtXaGl+5OTj8qeIrKVbpNvWmW32rgv3CBTsIMwaEPmlNrN RdEjsDXLcbr5ymt9ilMp767t7Vtf193j93e3ldW0jFHb8E1p6PZVVo3zaH2d W7XOs0Z9VTSbxqfNm5QzDGfPpB4fP2tOj5+fVbmg6m4nY8pZ86pCEpdKaiZV 96Qjr+puhTG/ZpVUq2pUE4qaUFuai4RJK++528/Yei1Xpxm0dH0vZ5rNJGyc 1fdKZHMKmwSbjmx+zaYGTFJCC1yM47ZMaVCnZ211S3dNtbq5WBymEj88yH3j WVDyje/hksEWtPgaJwWtvkmqfYJqn0B2g2o3YmHwOA7nqGdSd40P5xQWVBXz cFqKstqk0tvXN68q7TnPvuo0LLXjgAVVQXM2zn59xlSUq1BRA3NFcH19rdoP FqhS6xozptRXY9mKBlFkStCMFszhFlCiXKujLkdUqsfcYAK1+uuRCK6vDlZn qy+taq3WlrMzyCb7xmDaqU19pvqivOruaF+BtjexFSwZm1Qyo2+ssoosHiTx smpyktGGntf7kFVfo8DbOlZfiaVOZ6nFQ5ZGHIm6zEYNFk84k6nDkjOsdkvQ nIsG8aNqa666JfUZxupq6ryW2hQugHc7g1b0KHOAK8MV4B1kTVH7gp9N6Kpa 9GG1mTm9bK5vFU4WtdNaS0ZkB+0ZU2px+FN9Kyy+IlHZpJ4R1nAbe8hqVEdu g9/ljHm9fTf4VqcNCDnDfOqHg7owmeduLGxW3X20IbgwO2eY6WirXTN3d5vs P16B/GWy97NqVMrwqcFYyCwrvdIZu80JfCrEBiFOF+I0IdYLcaoQpwixToi1 QpwsxBohVguxSoiVQqwQokuITiE6hDhJiDYhlguxTIilQiwR4kQhThCiVYgW IZqFaBKiUYgGIeqFqBOiVogaIRYLsUiI44U4ToiFQiwQolqIKiGOFWK+EAEh 5glRKcRcIeYIMVuIWULMFGKGENOFmCbEVCGmCDFZiAohyoUoE6JUiBIhJgkx UQi/EBOEGC/EMUKME2KsEGOEKBaiSIjRQowSYqQQI4QoFKJAiOFC5AuRJ0Su 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 gEnARMAPTADGA8cA44CxwBigGCgCRgOjgJHACKAQKACGA/lAHpAL5ADDgGxg KDAEyAIGA5lABpAO+IBBQBqgAF4gFUgBkgEPkAQkAglAPBAHuIFYIAaIBlyA E3AAUYAdsAFWwAKYARNgBAyAHtBN7MNTBiSAA4w1cNj4IeAgcAD4AdgPfA98 B/wN+Bb4Bvga+CvwFfAl8AXwOfAZsA/4FPgE+AvwMfAR8GfgQ+BPwAfA+8Af gb3Ae8C7wDvA28BbwJvAG8AfgN8DrwOvAb8DXgVeAV4GXgJeBF4AngeeA54F ngGeBp4CngSeAB4HHgP2AI8CjwAPAw8BDwIPAPcD9wH3AvcAdwO9wF3AncAd wG5gFxACeoAgcDtwG3ArcAuwE7gZuAm4EbgBuB64DrgW+C1wDXA1sAO4CrgS uALYDlwOXAZcClwCXAxcBFwIXACcD/wGOA/YBpwLnANsBbYAm4Fu4GzgLGAT sBE4kzVMXM+x/zn2P8f+59j/HPufY/9z7H+O/c+x/zn2P8f+59j/HPufY/9z 7H+O/c+x/zn2P28HcAZwnAEcZwDHGcBxBnCcARxnAMcZwHEGcJwBHGcAxxnA cQZwnAEcZwDHGcBxBnCcARxnAMcZwHEGcJwBHGcAxxnAcQZwnAEcZwDHGcBx BnCcARxnAMcZwLH/OfY/x/7n2Psce59j73PsfY69z7H3OfY+x97n2Psce/+X Pod/5aH6l+7ArzwkLF7EmPFKxg6df8RvUc9mJ7AOth5xI9vKzmcPsjdZHdsA dSnbwa5nN7Ege5g9xV7/V/5K+KHV+qXMJt/FDCyGsb79ffsOXQ/06qMGWM5H KkanHLb0Ofs+O8r22aHz+5yHeg3RzKLVtUsvw/pXfrBvPz5fke4bpaalTdAO rcaXxisP3X7ohqN8MIctYAvZcex4VsNqMf4G1sJa4ZkT2RK2lC3TUsuQ14xn E1KLUQpniaYPl1rO2oB21sm62ArENuiOcErNO0lLd7GViKvYaraGnczWsnXh 50rNshY5a7T0KuAUdipm5jR2uqYEk2UDO4OdiVnbxM5iZ/9s6ux+1c02sy2Y 53PYuT+ptx6R2oZ4HvsN1sMF7EJ2EbsE6+Jytv0o68Wa/TJ2JbsKa0bNuxCW qzSl5t7HHmd3sNvY7exOzZf18Bp5RPilSfNhG3ywFiPcMKDH5L+V/d46BWNX x9YdHukq2E8fUGNF2I9qyQ0oSa3QPKitrDvKE9swBtKHR0SpC7XxH7YO9MrP WYU/tg/wzOVaSlVHW39KX8SuwA68Gk/Vq6q6BprUVZoeaL+yv+wOLf1bdi27 DnNxg6YEk+V66BvYjdjbN7Od7BbEw3qgIr6N3arNXJD1sBDbxXZjJu9kd7Fe zf5zeT9m3xW2h/otd7N72L1YIQ+wh3DSPIIoLPfD9mDYukezUfoR9ijSailK Pc6ewAn1NHuGPcteYI8h9bz2fBKpF9nL7BX2OrdDvcQ+xvMge1H/AYtiExnT 3wM/b2eLEPU4lTrkl3GKyMzIitkMNpMtvI/Z8XEfx8bwO+5wl5aacowP4KNc YgouAybGeYnfoZPsdyUlTfDdNdKwVXZN6eU5uycYt+KaO+HgOwefzzv4zr7o 4rx9PO/tve/sdX75vKs4r3Dvq3uH53NXmktDbJRkNMYafINypZGDM0cVFhaM l0aOyPQNipI024hRo8fLhQWpkhwrLOMlNc3llw8skGcdNEin+CbML9SnJjli 7Qa9lJwQnTMuw1m5MGNcbopRNhpkvcmYNXrSoGlLyga9YXSluONSok2m6JQ4 d4rLePBNfdT+r/RRP5TolvxwgWwYe9yEdPkSi0nSGQy9qQmJQ8emTZnviHHq rDFOV5zJGO2yZZUed3CjO1ltI9ntprYOzmCc3dK335AND45jt/idNePbxkv2 /Pz4vDxLbkJCUm/fR7ucfAb4i12OMNs1/naXTeOPdllVllz+1PThNpslAcUt Tof6QEGLBaUsCShiuQf/BmF9D/kTkWDpo+ZYE+LteQnDcw3erDneQHRAH2AT EKLji12FE3jeq9l7tY/AAlehs1+5io/JKyx0FQ7PPz5DONbl41GyqgZzn6vf OEKdk1QpnhdyTIQq3YZsU6w3MT4txiQdKpSt7pRYd2qsVTpUwU2xSmKCEmMc 5mlR8tMTzHylnm+0JnkzE5c6PDG2JJPNqNcbbSZd8w8XGC1GWWe0GOD4S/vt 1w9NtyVleQ4cK1+fOjTRao5JcWPBXc2YfACfe9HMywbdx2Lwj0TGkqRYv9mc 8H1Ug+d7fTObsG8C1hktLrXzvkGZWufT0GPjiFwYXOrakg9M6X5y6w+x6emx 3NX98IbSYFZg05LztjVtrB4mebc8u3FiSpp8bVpK2RkPnjJ3S/OYA58Nb7xY /bbd1X379Y3oQxGr2D3MnTM4oZf3+c2D7HmWnJxBIyxqysUGjWzIibPKKZkN KS3OFn2LmAh1GvYWRMPp0cXFzr0FruLi4fkDHW8w/H8dH+fWNxpjlPhEJdoo Hdqs82VhEZrlQ5dKxmglMdEbbcxMWOIdlgavD9HxAlti2pDkpsT0eKPVqNPh Ia88cIbNJhvMBnntgbP7rU8MUlSPHxwhPZk6NMmqDFL93bdf3o6xFjI/O+Zu ZpHcu4c7s10j1F8QyBzr6oXnHcnZrg/Hjo0v/lZpiA+PVNvrxZiEglf3Ypyv 7T08xsGDc2XfkYNTJ8atbv9UOT4+Lk4eMEfbTe6MZE+a2yLPd6TnTxzRrK2r tFgTJi2p5syF+Skjpw/35GSkOastxk/d+dP8F54zfmZBYowRg5PNUdavhpbm JR2a1T/IZ9JSMsubJ46YX1bgtKbl+7M+TkqU3vGNy048dFtinl/9tmVN3z55 O+5lmTj9Nvu9E8Zyq6dY3XnF6s4rdjrVB3ZjsboHi+/Fv9IZy+t7T93EeeHN nRfe3BrbwnarypLFb4lJK7cWD/boooaq/5kjYeqIXq7bFTVDPx2uw9qlVUIb 9NXwPi0euD1H0hqh8y8u3hU+B91ypnZaumNTJdV5o+XtRldyrHpAVVy6sH7L sVkFdectnrXBb4z1JmDtmK8vWVc6oWp0onvE/Ilpx/jLBydi98FNNtPKGfNn bOip67z3jIqyEslqtKub0m48WFZ57Li6tf7S0xuPiR5aMlzdDZfihnmD/DRW SP3utpE80xE+xxzhIYO/2O1w8umO8EHn6OXf+aOZPwZnlt+FhwIjS8K+yfCb s6dmOtzKFLfqCiwcdSPvwfg1L6g+4GEfqOM0DlhEYQ+4tU8Ig3SDZDCbTPEp 6e7E/JFjfKZoOowM0cnxcSlOY8bEMcUp9rT0FJtO5nJdXKrLbDabYnOnjz4Y NFlNOh0e8hkmqxlLyGraMKp0sEM2WSzmKI+6PiZLj0lrDC6WzkaygpA5ceS9 +CcyYzn8bL/T5V2aaJazgnEnFVxu65Q7wjNarM0oNn6xeiYZ/vFZHDVaWpOY 5opzGPJqx01aWJykTFw8YfjcLKMjKTY2yWk4K6siK32E12FLLchMn5IrfWCz 67CvJ+YNz5vVOq68Y1Z2ZibP1Zt0sqwz6Q9V5uYqI0p86eUj07JHqrO3RHqG v6T3sByWuWtQEsPcHOu3JVn2DD5pkMOd2ubuODwPX+6JLg6fqD8yAaPUY4nc r+MvSTqj3mR1uF2OZMUXp3dSZxN9vviEoZm+mKi0OKOO6152JUQZ9Qa9NSEr 5dCN6LZO7buUYEOo8GbFm3QmQ1Q8k7il71v+ln4Rc7MhLOoOfYZnhrMcHXv7 +cP9GSlnhv0Xc/T14H6j+vGcHG10cZPbl+zxuU1R5sQsr3dIAj41hni9WYlm 3mWyqfNuM8n32KJteoPNZfuhOC3bY7V6stPSchKt1sQczP2+vn38dt1irSfK fSxOamAKc0vFd1qdQ9GvVoZOOfcM/PRRjzx5xE/17UKjw+OO8zgN3GWISU/2 DMLBZY5LT0nOjDeb4zOTU9LjzHyk+gEp4yH12ZwWvd7qsB1QUgYnWK0Jg1NS shItlsQs9G2z3CRdpu8SXvJkVjgr4KXnCgZ6Kfxi41GWOLe0weCMj45OcBji LbFp8ThjzfzQpiNs+ZnyRuEm/oJQh4YfaXM6+/rYOdIL8rv6jySD6SGmrrNw mo1lRT05ieqvCPjyLSox38he6cw7cuOtcmqWqlI7XB36joEfl/sKnPsGjsEl hy8nsi/m7z4jYwpjxOVEftfoTHTHeKKMH3OzI87hjIsy87c4NzoTYHUYU2PK 45VEp+Ep+RVjtDsxeqolxmaW3tfjCMQhqJf8B++TcY2UdQYd9KP99teS3GjC dfAryR6d5DDobS679q/nq/8zIp/5q4jb/j1RMvwTcf0vHeX4/wNx239g/Pan o25KJEbi/5J4zhHxrf+cqB8UiZEYiT8Rh0ZiJEZiJEZiJEbiPxQvj8RIjMRI jMRIjMRIjMRIjMRI/PVF7b8nq3/rOxZPzgxacgtP6vtA/UUTaRATf5u8QXvK WukoLaVqiUXJOib+qn26HB3WugFl9CxBHhXWhgF2I1shzwxrExuq/a1xVZuZ Iu8Ja4u0o7+8lc2XPwhrGxuqGxPWdukSnSgTxZYYDvT/hfsCY0tYc2Y0XhbW EjOa/iL+lj2LNom/iK8bUEbPbGY5rA0D7EY21uwIaxNzG5eHtZk5zVPD2sJn 95e3smzzgrC2Mbf5zLC28+nmy/r/xvooy4fq/wVAZw77mTT5mTT5mTT5mbRu QBnyM2nDADv5mTT5mTT5mTT5mTT5mTT5mTT5mTT5+SamsAKWz4azQu2vyau/ Zd7OlrMOoIl1wlai/XY+/Y5+LSytUMtYLnImsiWICpsLWzNrQV6HlmoEN6L0 CjwbULIE9ZagTB1srSjRqpWrBZairQat7DKkOmBbpuVR/Vb0QAFqUa4VLaxG aiVUJ96laN8JqINegrKK1ucu1G7QvnPQrLWyPNxqJ0osDb9TLaFgjMu1dzZq 3y1QxzJFG2sTLLXa77y3a6NQNK7VRqm+l8ZRj5xhWstLNcsSrcVa+Ijs4i1L 0c4SzWNt4V4ug2Wp9lZqUx1n54AeqG9s08YivhNB3qa+q29aDg8o2rcBmjUv tGq//69+r6JTS6kj7uyfD/IZvUXR+r4sPK7lmm/rtJKHezxwRKrXVmn1aNQn Ip2rrYeBszlYa22p1sJqzQ9d4Zkf6G91xmj8jVr/1fHTvLRrq0FleqM61wra aOsfDfWxOVymA6k14dY7MQqaoRX9s1SrrZFaWJceMS6xmuvRk1rt/fXh9+dq K7ZZmys15+/3wJi/G/X88MppDa+xkWiliI36mZXeqb2zQVuJ6ltO7J8D4Zsf 23vN4XXd1l9aXbk048tQvlFbO9NRop5laT4dgjINWnsVWt3lWvudiG0YRx7i Si3manvqyPflhlvPg16trcBmrddtaGE1rKrHmrQRqyv1yFaFvUn7JlC7tl5E e9XaGGiVrNZmt0PrYae2jju0fUe1FW0M6h5o1GawVXtHozaHdVpd4a0yFsC4 J4brtg/Iof3ToPnk8J5YGf4GTctPvJfSatl6zGCX5sOG/jXWoOW3aStk9YB1 1aaNdFl4ZVFbjdpT3SlHj1vNpx2ZhVrqTKmroa7/TT/Wq2V/1/I/7qPDrYtT UQmfa51av+uPOF/+fuziNDm6X2MHeEAdCY2FTlnxOdHef2I3aGfWMu3sqv3J kZKfa4/wKe345eEnjYp0l7byurSaDdr+V0fT2N+OWnKJtmt+bob+Vfvi8J7I 03qj7gE6+XO1uWpjq25SCvKHFyozWuvbl3csb+pUSpa3ty1vr+1sXb4sV5m4 ZIkyt7W5pbNDmdvY0di+orEht6R2SWtde6vS2qHUKkuXNzS2L1M6apd1KMhv bVKa/h9zZwPeVHn//fskaZImaaHlrQWUBBB5syCgIMiLCgoFSwVxiJumtAUC bSltCi0IVIqIyhQVEV+myBwydejo5uZ0WQWGUF5EbGuljEIhtMbT0rImzZB5 ns85SUtBdv3Z/7qe53p6X5+T83Lfd+7f93u/nThnSqYro8C+zOVeYM/Nm+vO SLfnLM7LSnNlzc+1LyarOz2Tkllp9tTFOVnpObkJ9ilu+7z0FHdeTnquPSc9 JcPucvMdqbmD7bmZKbQgNSWbc7VIZl6G25VNlVl5mek55MxNd2sV5NqzcxbT brXZ1J6RsXiZfQENt7sys1NS3XZXlt2txkHLKGLPcGXxXYvn2ee65msVh77I nZ7vprBrUXqCPRzmzbn2zJSsAntqHsGH2u1ewPenL7PnpBBLjouwKZiSac/L Vr+GGudzJ9e1nOzuxQS0VA0pxb4sJScz9F2qzKkLUnJoWHpOwoz0+XkZKTlt Doxu/eqHEIdw7LcljLr9CtHdOSlp6ZkpOYvUCNTWXHZvPlpnq7dTFxN4lis9 N2FaXmr/lNwB9rR0+305ixe7F7jd2aOHDFm2bFlCZmu5BLIPcRdkL56fk5K9 oGBIqnve4ix3bjirej4vha9fpOZ7eHEekhTY83LT+XIapD62p+BAek6my+1O T7PPLdCaNWnWtLt4mqNd4E9aXsiJZQtcqQvaleXTlZWakZdGURRLc+VmZ/AF qlbZOS4ypJIrPcudYG/97sVZGNnfNcCenjlXLXS5qqzWzNdskZZd7YrYkuvO caWG+kvbt6vdpLWuMVoD+rv4FrqsOiZy1I6dtnhZVsbilPZfSptTQi3FeMJF Y/Ukz52d50b2pa7UdDXPgvSM7KsCuh4vNCeGpKXPS6HzJ6TkZue3vTcJJU6s E9f6k8jBzlt0EiZFER3C//Ut3sCk/nwOFqLtPebafxP1r9hsEnmkB683f1SU lr/wevN36KDl/+B683fsqOWvvN78MTFqfp3hevN36kT+idp/fczMu4+aXy0b of6Xw6TuvFVtEN31ieImcgzj/uir8o5rl7cLefuQN4Ecd6q1X5V3Tbu83cjb j7zDyHEX9xOvynuoXd548g4g723kmMT9pCvzav/Vsta8Pcg7mLx3kCOR+zOv ypvZLu8N5B1C3rHkmM79h9X+YjZLZsuePb/h79VXzRGS2WQ256/nL9+ol4yG U4Xqn1mSzAbtrFAU6vWSOWLr1q3mSMls/bzw88JtpE2k9aTICCmSGlqrMEjG iI9K1HKRkhQZriJUR6RaR6RFirSV8Pf2hLcnvKilDSSLUbKYDQaDe8PatWs3 uE0GyRSuptAi6SwRbfUUGgySxbiRP4tVskSVOEuc1Lr1BfsL9mdIa0lWo6T+ WzLXrMwq6aytlYVrs2q1WaMka4eSuJK4rf239t84eeNkNZwnzU+a15htJskW qeNv9L1r+Lt3tNkgmY3hCgttks5mLLyySptJrdIWLdk6nup5qmfjnUcHV2ZU ZuyfdujQ3g1fbNhj22OLMktRFj1/Y+bvUf/mj9GErDxVEvqL0umijCVtf6Kk JMIoRZkPqX/hXm8RH+s+EPrUgpwM0Xl+TvoikZSR4lb//fcbhe7u6TPtouPM GXfb1VHCXKH2eRMzRrfwlUSP6Sjiwlc6ZpUYEa/lCt3RU3+s6C66Cv2U5OTJ ou+M6ffbxdAHZ0y1q2NCy2Pgvb+T6KFd6Xnv7yx6hp9EiCjRRdwQvlJ/WehK q3qlZudmi8+0427tuF87HtGOZdrxuHY8tYjthzinHWXteEE7BrXjj+pRMmhH i3bsqC6bUlftOFA7jtOOM7TjPO24XDs+px23ZS7KXCR9rB092nGfdjyiHSu0 40nteE47NrTNNNd3lP6roxn99ZpOJs7VX1P+/7qnw9uo//VnNM6r77zqW9oa 8aLYJnaJ3eKYqBEXJLXfCa0vhpSQhfp7U2tfUv8rk0IaHfpcvy70+atguzL0 14ZtV1xLtktXXkdPvPI6ZuiV153+fOV1v55XXve/6vnAUVdej0gSkbp217fF tntuFNJ9c668nraDTwsjpL9IVn+jowzrhm6oLlms1r2j+0Zs1f9K/ytRZnAb 3hblEV8b10t6y0xLivSJ5SmrJO23dbRN0t1je8T2pq4gKi1qoe6vUaujNuj2 Ruuizbpj0S3RLbpvWa4DqjbGiqiPr5mOko5HnW2XfOF09BqpObp3W+pPGk2a SFqopS1Xp6ij0dui/9BxczhtbZfeU1OMuGayxCS3pWdiNrWlQCjF9rxGSiCN 6Pxau/ROKGlPrkqdd3Xe35aOdDlFOqemroZrpdiErrFd+3d7pl3apKXd10xH u11sTXGd47q3pYnhlHjNlKylh8KfV6bC8FHNt09LZW0pVPpkXGP8wPi0+Dfj d6jp6trjd14rhWqP/3N8TTg1X07qt8Rf1L6rUOWGaX1Gt6VpfWa0pbRwWkgq 7LOw7zDShJsSbprYZyHHhJt299t/c4WWmvvPIWUP6EcaPKBmQBBqBvw4cP+g N9U0oGbQZ4N8g3yDDYOjB3ce/BdSWcI4UnLCnCFvhJPn1sLh/YbXjXjx9hGk cSPjRs4ZmT9qVzh9NmrfqLLRA0mjRq8bc2KsUUsbx+7W0qVxt4/7IJw+HnuJ 6w/GNWpXjeN143XjPhg/eMJzEz67K2HSbNLJ+xaM3RjKzWdjKNeUcWq+KdMS eycOTRyXuGNqPy0lT12opfyp66a+wTF/ainp1LTl0wqnnbw/m7Q5yUmu5KQj SUemlnI8oZ6RapLkpIvTC7W0ffohLZ2cLsPJ6YFkw/QAz+XkOcknkmsecJNe nGEn3/bpgdCTGcunB2acndEwK/mhfbNn/yL2Fz1/0W++Yf6c+ZXzL7Z+LhhM 2pXVMat3dn72muyS7JpsOTuwxLBk2JKJS+YtyV6yfMn6JZuXfLDk4yV7lxzL yc55MWdHzoVckRubOzl3bu5nuRXuEe657jfyHspbn+fJa15qXDp46b1LP1h6 btnEZRfze+bfm+/Mz8l/I39nfmVB74KfF3xcUFlwcbltedflo5bfvTxt+fbl lSsGrpi44tEVW1a8t+LEisDjEx5f/vhnK40rJ6zMWfnRyn0rL63qvmrBqu2r 5NWjV+ev3lmY/B/mqo+vno+unG0Kl15O6jxSuPVyCs0g/2HsJV494q4cJ6Ge fs1Zp3XmaZeunDsK911O6uxQWHY5heYFdQ7t+F7cvm6bmIePj2tk1tTmYO2T +TYmmfl1S/S2jpujjrbNmeSNCfRJU8tGfRy95fLcGVKJ2XmiNv+GcvWO3taq nnpXnYu1vMfV51r+sILU+3HUWWbybZQ4rtV2lNZt5vO4li6vDr6rVoWJ7daB yyvBNrXdP5n93/vJ7G8Jz/nPaPO9Nstr9VA6eiLnW1pnQvzYEfaLuSk0/4Tm t7CPzInMgKpraW2zY6ujzHFxiYU1aonLHveZUVhTWENtaq5mniXH1/SZ8dM+ wTxY1m5GvcY8235e/emcGp6592m9KTSLTmudP9V5nTt8a6Ecv4M7M+KSbx+R dKSrIbSOaZ+sWd0udjlFr4ptXX1aV5XYnl0Nl1egUK9U1zYtt0HNQdndXWPV J+odNZd6P7Zn1NHWnhrXPbYnK2CsWl49D929vI62X0nVtmirZnjdbLdyxlLD 1evkpitWx6PhlbFza+t5fjH07er3T03ucipuIu25Qn1VNVVjnGo3Yls1Do1E Vc1QT+mTht6JqpuqEnHJnV/T/N6hetNuVI+O30msrStsWajWQjmusFAOJfUb 1M8+M1RX1LNQT1M/C+WbEvoOCxFa4foO01aldkld4UKrm7Y+/i+Ttqa2Sz/N oa207VJ4xW1LPy2hrrT/XdLW4utObSv2f0hXK6WmtnX8PyRtZb/upO02rjNd rY62R2mXfqqftndpl9R+H3L6v0s/rfl/bt31pZDO6t4lettYY2LvsZeijqu7 Hi1t1O4Y1Z2OdrUxsbe6Bwo/I7GDGqXumkJ31blfPVOTtjuare2s1D1U47hG bX/E7oiz3WM3aruTwrZdjJq2Ty9MOjG9UN3BaFfbw/uc0Pl2dkE16h11R6OW Swonbcfj1vZG5NWebleP8TvJvV3dTTFb9Es6oe278sMpWbvTT911aVfJSSfU eSn8jMTObSh7NXWHppZbp52RtH1atrafI6+2U2vbr01NHq/TFLmkavGAO6TE WKMWDy0OtXRqqVa3+k3rtLq0eq8ciT91tH0/uLkidCWMUolyXH+/8pl+luig ny1s+hylSe8RI4WOJ0e58mpnsn6WclZIHFuEjuMB/WzlKG/q7yuXxF7lkuQU naQUMUOaK+KlVOGQ0kSMtEjEkHMEOcfrM5S/CYl6zggDeW3kjSGvjbwWrT4v uRpEpPSo6MnzPjyfxfMbeN6Hum6iLgelX6c9J4WVs120N0b/OO1YqfyJ9o7W n1Fe0Z8VQ/VeMUxfKwbpv1O+0vt421VrP0rtNcLAmU4/+8cfaM0matoj8kUH kSg6wmgxQIyBNOUrkQ7zIFepFW6lWeTBUlgG+VAgbGK5ckysgMdhJayCIsqv hSdhHTwF6+FpeAaehQ3wibhb/AWCnP8IihggCZAgWYyRHoAZMBMeBJeYLu0T vYjYpX9I3Kl/RJj1j0GGWK9fLW7UPyHs+iJxo+Et5ZhhK7wNx8QAw9dQBuVQ Ad9AJXwLx6EKTsA/xICIjspXEaeUYxHfC1uEzHk9NCrHjBEi0TiAz+FigPF2 PjOUr4yZkAWLIU+pNS4FtDGijRFtjMsBbYwfijHGj+BP0CLGmAaKXqZB8JgY YHLCXFgCOVAAhfAEoJFpI7wAb8Hb4m7T+3zWQwM0QhNcgBZAQ3MqpEE65Ile kUKMiewseml99xz92qKdfYfrLaILvbaYXltMb+tHb7uL3raG3jaT3jaX3jaF 3jaB3O/QXxL0DynP6X+mLKcH3Ua/eZkanHqPsl1/hn7mFXr9Ofrgd+IRrZ+d JdcJtpmto+JRMaRd/ZOpfyn1T6L+keSeQ92bqPtPlBpO3Zup+3Xq+4z6HhLR 1HKeWs5TS0dquZlasqhlCLUMoZZB1HIzrTxJTf2pKY1ahlHDDi3SA5x9KOKo 42/U8Tfq6C89pvyFeoZQz2PUM4J6ZlLPeMmlfEldQ6Qtyp8p+Sn1GahvKS2b R52daFkRtT2rr1GaaV2pvo7R+p24Re8Lj9gYah1IrS5qHUmtk6i1LzX2p7av Kfk1I+9+opwlrOEZ5t/MJOrM8qooUmSxFp6EdfAUrIen4Rl4FjZAqRIUB+EQ HIYj8CUcha/gGHwNZVAOlfAPRREnoRpOwWmogTPKQXEWvHBBqRL/ZJw3gx8C 0AJBZrd/8fwi/ACX4N/wI21RFFkSIGmz4hn9HHrYz5Xz+kf5dCrnDccU2fA1 lEE5VMA3UAnfwnGoghPwD6hTgobvwAffgwz10ADnoRGa4AL8E5qBthh+BEU5 GBGrHDRNUIKmSZAIUyFJqTU9yOcsmMPzR+BReEyRTU6YC4t4toTPHHBzvgzy oYDrx/ks5PMJWMf5U4APpuf53MjnC/AS55vgZdgMr1D/W9zfxvk7nL/P+Yec fwp4ZMIjEx6Z8MhUpSimE4BHJjwy4ZHpFGVOQw3gkek7pcrkg++JRYZ65aip Ac7zrJG6m+ACNHONd6YAny1c45E5FdIgHb904jnRWVu59OI5+u4s+rC6ekVw 9TuuErmaQi/fq/9SDFL/v5mUgJhIz6yiZ1bRM6vomVX0zCp6ZhU9s4qeWUXP rKJnVpG7lp4WpKcF6WlBelqQnhakpwXpRTI9JkCPCdBjAvSYAN9XwvdV6X8h IvQpMJcelKqcoddU0Wuq6DVV9Joqek0VvaaKXlNFr6mi11TRa6roNVX0miqc DOBkACcDuFiFi1U4F8C1Klyrwq0ATgVwqgpXqnCjCtWDqB5E9SCqB1E9iKoy qsooGkDRAIoGULEKFQOoWIWKVahYpY3Y48KElncxks2svX9l7f2j/ihr7Ves Qqw2mr4+IvyKCE9r+j7OVRxXPdF3DTV8I2azTjpYJx2skw7WSQfrpIN10sE6 6WCddLBOOlgnHXzT7ayVfVkr+zJmyxizZYzZMsbsacasnzHrZ8z6GbN+xqyf 9TSWMetlzHoZs17GrJcxi99iKuvmCMbpacZpNeP0NOO0Wj9X9NOnQoZYyzra i3W0F+toD9ZOB2ung7XTwdrpYO10sHY6WDsdrJ0O1k4Ha6eDtdPB2ulgLHoZ i17GopexWMbY8zPmyhhzZYw5L2ucgzXOwfrmYH1zsK45GCte1jYHa1tfxoqX 9c1B/y+j/5fR/8vo/2X0/9P0/9P0fz/938/6F8v6F0v/99Lny+jzfvq8lzXQ wfrnYP1zsP451P6uXEDrC+zPnlOexIHJzOenmc/zcGIyTvyGpxvo7ZP0x9hJ lSk/6svFXM29KnIfJ1clK+Zzyiqu5lL2GGW/5u4Eyj5H2S8om0jZMso9LIzh cfQzcpaTs4ycidr+Su0z72o1pfN8PM+P8LyC52Oo6WmefkRNd1NTKTUN1fJ/ q+0TT2rHgLBIHUQvaQ5kQCYshmxYAjnghmdY6WOkEhHFt6yh9nzqOaDtjbaK bvpPxW36z/G/RvRh1Z7JLjGWlbs7u8Q++jpmhu9ogY9734vbWM9zlM8p0ZU9 ZW91Tad8hpjCCjaHPv+ImKJ/VNt9TRHRtKwHLetBy3rQsh60rAct60HLetCy HrSsBy3rQcnOlMyiZGdKZmkloygZRckoSkZRMoqSUZSMomQUJaMoGUXJfpS8 lZL9KHmrVtJGSRslbZS0UdJGSRslbZS0UdJGSVu45IhwyRFE8ogYyNlATeNi bY/QglpV6v8OHB6AGTATHhQW9m4W9m4W9m4W9m6WSPWf/RpQuBNlksM7jb2a R6dFmdRfqZEGwEAYBIPhFkiAITAUboVhMBxGwG1wO4yEUXAHjIYxcCeMhXEw HibAXXA33AMTYRLcC/fBZJgCiTAVpsH9kATT4TV4Hd6AN+Et2Apvwzb4NbwD v4Ht8C7sgN/Ce/A+fAC/g53wIXwEv4ddUAx/gD+yWyvh83PluLQb9sBe+Dvs 4/4XSrm0Hw5AKRyEQ8o56TAcgS/ZQczhbeVR5ajh7+wk9sEXsB8OQCkchENw WCk3HIEvlfKIGKUmojN0ga7QDeIgXqkxPg+vAhoY31TOGbcr543vwg74LbwH f+D+Hj7ZbRr/zvlRpdz4NfkrOQ8oNaYb4EboBXZwKOdNvaEP9IWboJ9SbroZ +ivHTQOAvmCiL5jw3TSM6+E8G6OcM93J5wzlvFmn1Jj1YIAIMIIJzBAJFrCC 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 w0pYBauhEJ6ANVAEa+FJWAfMjVbmRitzo5W50crcaGVutDI3WpkbrcyNVuZG K/OilXnRyrxoZV60Mi9amRetzItW5sXoSLCAlTlPndl9Wtv9jHEvY9zLGPei m/qe3o+nxxi7Xsaul7HrZex6Gbte2u6n7X7a7qftftrup+1+2u6n7X7a7qft ftrup+1+2u6n7X7a7qftftrup+1+2u6n7X7a7qftftrup+1+2u6n7X7a7qft ftrup+1+2u6n7X7ars5Zs5VvUfsQCn/eNmepEVWLYURUzPManrfgxiXcuIQb l8hbTV4zea2MFAuRJjBSLESbEP4NaB8OXcKhS0RZTJTFRFlMlMVEWUyUxURZ TJTFRFlMlMVEWUyUxURZTJTFRFlMlMVEWUyUxURZTJTFRFlMlMVEWUyUxURZ TJTFRFlMlMVEWUyUxURZTJTFRFksbiOSIrzZjzf7dS7RE3/2E0EqI+BfjIAA kawlkm7hX2a6qb/MEMkr6q9ZeLcf7/bj3X682493+4mqiKiKiKqIqIqIqoio ioiqiKiKiKqIqIqIqoioioiqiKiKiKqIqIqIqoioioiqiKiKiKqIqIqIqoio ioiqiKiKiKqIqIqIqoioioiqiKiKiKqIcTxbG8ejiOLL8D9zupdWv0Srdwkr 8R4m3sPEepi4uhBTF568TDyHiecw8RwmnsPEc1gYdXn4ulT5l26Zck63ln7x S6VB97L6Szt3L+rWKgEhcfyXGECOgC6fHlEAa5Vy3Tph1j1F6Q1KnW6z+u/q Kz/oXlV+sLK/tbK/td4AN0IvsIMDekMaedJhHsyHBeCChbAIMiATsmAxZMMS yIFccEMeLIVlkA8FsFz5QYvnIi09o1up1BLLWd0m5byONz0xR5dDb8+FPO7m E2UBrFaO6grhCVgDa0UX3TrlQ93z5NuonNK9AC/CS7BF+YT4PrHqlENWPRgg AoxgAjNEggWsYIMoiIYO0BFiIBY6QWfoAl2hG8RBPHSHHkoDGjagYQMaNqBh Axo2oGEDGjZYRytHrWPgThgL42A8TIC74G64BybCJLgX7oPJMAXSiCMd5sF8 WAAuWAiLIAMyIQsWQzYsgRzIBTfkwVJYBvlQAMuVT4SBnnMSFb9GxdO6zUoT fWmtcoF+0iKScSGIC0EcuIgDag87zYoTYMUJkCOAykFUDrLCBFhhAqwwAVaY ACtMgBUmgPpB1A+ifhD1g6gfRP0g6gdRP4j6QdQPon4Q9YOoH0T9IOoHUT+I +kHUD6J+EPWDqB9E/SDqB1E/iPpB1L+I+hdR/yLqX0T9i6h/EfUvov5FVrkA q1yAVS7AKhdglQuwygVY5QKscgHUDaJuEHWDqBtE3SDqBlE3iLpB1A2ibhB1 g6gbRN0g6gZRN4i6QdQNom4QdYOoG0TdIOoGUTfImFtK71bH4ko0XUXvXiui UfsMateg9nmRjcYeNPbQ0+vIuR+tz6D1Gd1yrlcq31HqAj1fpufL9HyZni/j w7/xwYMPHnxo0j2nfMEI+IYR8A0j4BtGwDeMpUPMDfvwqByPyvHIg0cePPLg kQePPHjkwSMPHnnwyINHHjzy4JEHjzx45MEjDx558MiDRx488uCRB488eOTB Iw8eefDIg0cePPLgkQePPHjkwSMPHp3BozN4dAaPzuDRGTw6g0dn8OgMI0Rm hMiMEJkRIjNCZEaIzAiRGSEyI0RmhMiMEJkRIjNCZEaIzAiRGSEyHnvw2IPH Hjz24LEHjz147MFjDx6X43E5HpfjcTkel+NxOR6X43E5HpfjcTkel+NxOR6X 43E5HpfjcTkel+NxOR6X43E5HpfjcTkelwsXDnpx0IuD/8Tv3bh4HueO49z3 ONeAcw0414BzDfhvw/9duCfjnqx7lnu/xOnnld/hYB0O1uFgHQ7W4WA9DjbR T/6Ki9W4WI2LMi7KuCjjooyLMi7KuOjFRS8uenHRi4teXPTiohcXvbjoxUUv Lnpx0YuLXlz04qIXF7246MVFLy56cdGLi15c9OKiFxe9uOjFpQZcasClBlxq wKUGXGrApQZcasClBlxqwKUGXGrApQZcasClBlxqwCUZl2RcknFJxiUZl2Rc knFJxqVqXKrGpWpcqsalalyqxqVqXKrGpWpcqsalalyqxqVqXKrGpWpcqsal alyqxqVqXKrGpWpcqsalajEUlwK4FNBGY8iFZlxowoUmHAjggPre1IS6Tajb hLpNqNuEuk2oG0DdAOoGUDeAugHUDaBuAHUDqBtA3QDqBlA3gLoB1A2gbgB1 A6gbQN0A6gZQN4C6AdQNoG4AdQOoG0CdJtRpQp0m1GlCnSbUaUKdJtRpEgOZ GS4xM1xi9Mus5xbds0SxgSi01nO+Gbaw3r/Kut2DXV1PuAFuhF5gBwf0hjTy pMM8mA8LgB0kWregdQtat6B1C1q3oHULWregdQtat6B1C1q3oHULWregdQta t6B1C1q3iAVoXYfWdbRYpsUyo8DHKPAxCnyMAp+mf+sIQPef9Hx28Dr1l43/ 3Nvr8KMOP+rwow4/6vCjDj/q8KMOP+rwow4/6vCjDj/q8KMOP+rwow4/6vCj Dj/q8KMOP+rwow4/6vCjDj/qUFBGQRkFZRSUUVBGQRkFZRSUGQ0+RoOP0eBj NPgYDT5Gg4/R4GM0+BgNPkaDj9HgYzT4GA0+RoOP0eBjNPiuYzT4cMiHQz4c 8uGQD4d8OOTDIR8O+XDIh0M+HPLhkA+HfDjkwyEfDvlwyIdDPhzy4ZAPh3w4 5NPW+Ebtn0LejlcyXsnMNjKzjRftZbRXNZbRWEZjGY1lNJbRWEZjGY1lNJbR WEZjGY1lNJbRWEZjGY1lNJbRWEZjGY1lNJbRWEZjGY1lNFZjlIlRJkaZGGVi lIlRJkaZGGVilIlRJkaZGGVilIlRJkaZGGWr2hfyYCksA/obMcrEKIuOzMX+ K8cMPe1ZbaQHmFMD/9MYYe++lD0qb6aMNhujzchoO81I68JIs4ikthklj9V4 JazivXwt3/W00kjPbiR3kLHZyOrcTKkEFA6gcHO7XVMjvbuR3t1I726kdzfS uxv/H802jfS+RnpfI72vkd7XSO9rpPc10vsa/6/uitS3lSBKfdH23tIs9OF7 QVz6QcxC21K0LcW/evyrR1v1zeY4TkSgby361mrz3/Ncb+Id4WV2Slu496pS i6616FqLrrXoWouutehai66l6FqKrqXoWoqupehaiq6l6FqKrqXoWoqupeha iq6l6FqKrqXoWoqupehaiq6l6FqKrqXoWoqupehaiq6l9Kl6+lQ9faqePlVP n6qnT9XTp+rpU/XoXovutehei+616F6L7rXo/n+Iu/Pwqspz7+MreyV7Jzs7 oog41GqtU6undajaVtty2nqsPW3taGu12vbU1gOVVhRUQKYO2tYBZ1DEoVKK WoGaoiLgiAVrAwnZwGYn0MhgSEgWJCSQAPKcz86hfe15z3W9f75/fK+118pa 63me+7mH350rbFrZvZXdW9m9ld1b2b2V3VvZvZXdW9m9ld1b2b2V3VvZvZXd W9m9ld1b2b21urTOMbgeN+BGjMW40Dpg4/4DkdAXHZpaEA1NvUJxvsovXwuT U8vCnNROOqM3TE31h/pY5ow/pHs9LcyLzwpb/vHXyt+MDo6/FeUO/E3h1lxT WGHHZnnvXLwqAl4L+dRSnv46lhlzueOboSm1QqebN9pqxzXYGlWl2kRqL427 ixLajT2hK45CS5xBJY7U/Z8WNsVnhJ3xmfgIzg674vPCxtz3Qkfuh6Eu92PI EbmfOl4TmnKjICfkxjtOcJwIGjr3c6iYudshKnNT/fwe1+S+3DTn0/GQd8wK /bknvH8e5oeduT/iGddqnS90tKZcvWsNWIW1zgto8rkZLe7rDC25ndgdWmqG hKTmMAyF7rBGd1hzgusjQl0NTV9jXjW3hJ6a28POmvvwAB4PSfTvB6xatE99 rLqWVTtZtZNV97HqZlYtsOpaVt3JqmtZdS1r7mLNbtbsZsluluxmyW5W7GfF XlbsZcVeFuxkwSILrmXBtSxYZMG1LFhgwQILFlmw8D8sWGTBThbsZMFOFiyw YJEFiyzYyYKdLLiW9TpZr5P1elmvl+U6WayXxXpZrJelelmql6U6WaqbpbpZ qpululmqm6W6WaqbpbpZqpul1h6wVJGlOlmql6V6WaqXpbqj96eeDONTC8J8 lnqRD+5lodmssi21IVzFz8ak2sIjvPubqR5Kuz98ip/9OY7D0jgd7ohz4Se8 fXU8JBwXHxv9KD4xjOb5748/HD7Dao/z/gv43Iz4U2Fi/Olw2YG/zvpb/K3w aHxJGBEPD0tKf79kVS/ISa+oEq9hWVhvxLftxwYjbjFCm7fu8MaN3rhdLJ0n lj6pI3zSjr0SGjxVipe/DsTI1ugYT6/y5Bue3GxuW8yt2hvyA/FwVsh78pXw hqfe9tSznjjUE28Z728D8aurHojhY8Xph5yfFjZ4qsUsl0bv5Vk7B55cyrNe x3Ie86anV/CqPBW52nFN2Mw7NvOOzTxjM894i2e8xSve4hU7ecVOXrGTR/Tx iD4e0ccj3uIJfTyhjydstnOb7dxOu1bK/Fujg8wnbeazjPekcZ+31oVYHvaw azN7bsndGHZ5f7f3d3t/d+4B5w+HXd7THZV7qsfMr/XExpLfU8JPyiULrOW1 UO9qU6pBHinZcENoZ7cG713rvWujS4w61d2TxdSmAW95Pkww+gRPdrHEHpbY 4w2bWCKwRM+BuOphiZ5UIcz1xlqeVJ/q4D1ZDAk/jIfajcNxBI4P18Un4MSw Lf6Aff4gPmT32D0e5uefHvjb5TPM5gyxt4l1e1i3R+xtYuEeFg4sHMTeJlaY wNKBJaayxFSWmCr+NrH2Htbew9p7WDuIv03ibxOr72H1Paw1geV7WGxC7mmZ aC4WhetySx3/ijqswDoUsd7P/ub4lndsDNfVROHPNRVhbk0aGRzn/CSMkKGm hKlicJPd3FNzf9hYMw3T8SBmhrlRNY/s5o0b7fRHZJ93ZJ93ZJ937PpHRfo7 Iv0dkf6OqH4nOtp+lPZyF9vvYPsdnkrLUV1yVJcc1WXtPdbeY+091r3DundY 9w5r3WGtO+SXLvmlS27pklu65JYu/t0lt3SZa4957pAruuSKLrmiqyxrxCk8 4H67/7Ldv9vu351aYkdfxCthWWqpqvg6loXHecHe1CrX83yrEMak1oXFqSKa 0Iz12BBuSf3NcSM2eedmxy1oxdZoCm+pTbX7vA0dPK/TMcH2cF1qB7p87sbO MFxuqpe5CzJ3QQR/U45akdrrZ/vwTliS2u8YVOEypFDKX+W8rcLntDyVDZPj ap9zYeRAPhvkeDAOwWAMCefx1gt564W89UK19eb4qHBD/B4/OxrHRt+Oj3N8 P46X807AieE78UnOT8YHnH8Qp/j8L/hQ+Kwc+X2Z5Wm7NsWuTbFrU3j7l+TL 2+Nz3PNRfCz8LP6447k4L0yKP+H4SXwqXC4qLoz/1edPh2tFxjcP/MXs0yLk hvjS6Ij4CgwPK+XXP+SGh/rcCFwT9oqSvSLkbhGyl5dM4SVTeMmU3BQ//xl+ hV/jN7gtGpq7HXdgqvvvc+1+THM+HQ94zwznDzs+EkbmHsPjmBVuzv0u3KCa Tco96fwp/AFPhwtE1QUq3CQeOIUHTqEPblblJuX+FH6WW4Bn3bfQtUXuW+zz Erzo+lLny1xf7r1/ce1N/NW1OqxAvXc1YBUa3b/WvQWs87MiZG/ePUXUXpDb EBaL3AtU0Umi90LRe0Fuk2t8MMcHc2+DH+a2oi28nOOHOX6Y6wAfzG3HDnTJ AN3Y5XNfWJLrxx6f3wGfy/E5WWFyDb+r4Xc1cVhSU+5YEcbIEmNkiTE1lc6r ZI8s+GBNLrxcU4ODfB6Eg10/BINxqOtDQkGlL6j0hZrDve8I9xyJo/AeHI33 uvdYP38fjjP++12TYWWjyTWTQr0In1JzSzS0xl7X2Osae11zK27D7X52T7hB 5E+RqS6QqS6QqS6QBabIVhfUzPCemeb9iHc+7v2znP8Os/H7cF10nCxxrSzx x4HK/OpAPX9dJmgV8VNF9uUie4GonSdq31Bze0XsSyJ2k6hsEI1/EYVLRGGj qPs3kXWFSJonYm4XMa+LmFZRcp8oaRQFL/L+3/H+L/P+l3l/6V8qnMPjV0b/ IV89YSZ/ULFWpeapUgvkhOddW4hX1bnX/GxpWCN7rlG5XpazOlWuBWpgp9m2 qV4LVK8F8tcsM39dnmoz8xVy0VKzLsg3G+WbjWbeKl/nzXy7nJ2Xs/PyyVKz f1oueFoueNos95rl10qaR/Valfu+TPvDsEAFW6CCrVLBFojNTrHZqYKtEp9P iM9O8fmE+HxCfD6hgq3K/cJzv8StuC2skdXXyOprxGanarZKNVslw6+R4deI zSdUswVi8wmx9DS/f5qfP82n29STvHqS57dtakqer7bx06X8cha/nMUvZ/HF Nr62ka9t5Gsb+VYb32rjVxv51UZ+tVQtyvOppSrcAj71hAq3SuVYwz9m8Y82 /rGRglzCD17EKxTasvA8S29WHRr4wmdk82bZvJk/vMmqLaxaz6r1fOI5mXsD yy6XqZtZdjnLLucb2/jG27Jxo2zcKBs38pF/4SO7ZdmiLFvkK+v4yRaZtU5m rZNZ6/jMatl0nSxakDkbZcQGGbGB1Tez+mbW3iwDNsiADTJggwzYIAM2sOxm Wa9B1muQ6RpktIIsVpTFirJYQRark8XqZLCCDLZOBlsnW62TrYqyU1F2KspO RdmpTnaqk53qZKd1slJRVioeyEp1slFRNirIRo12Z7nM0iyzNNul5XZoueyy QXbZIINskC2aZYtmmaFZZmiWGZrtVL2dqrdT9bLCBhmg2U7V26l6kd9sp5aL /AYR3yDiG0R8g4hvEPENIr5OtNeJ9qJoL4r2omivE+1F0d5sF+tFebMobxbl zaK8WU+8lTou6eqzwr7obFFW6rN+LKKmi6jpIupV+zxZ1PTb19n2tda+1oqW dvu6yb7Otadz7elcEdEnCvrsxWR7MVkE9NmPyTy+j5dP5+XTefl0ezGZl/fx 8j5ePp2XT+fN/ew1l53m8uZ+tprLVpvYahOv7mevTTy5n31q2aeWfWrZZxNv 7ufN/WxUy0a17DOX9/bx3uk8t9+aa63xtXA7j91tBUuc7TT33vAk39wQHWVl O51tsbI2K2uzsh1WVScPtFtZnZXVmd1Os6szuzqz22l2dWa104x2mlGbGbWZ UZvZ7DSbnWbTZjZtZlNnFqVeti061ki9RlpnpC1G2mKkrWxY6lHrjdZjtHqj 1Rut12j1Rqs3Wq/R6tmimy26jdrLFt1G7jXyFiNvMfIWtug2eq/Re42+xehb jF5v9FJ/uEWPsEG+3BlWWvVKI/cYsVkuWyjjrpVxS/3BcwMZN+2ungM9VPuB f8N0WnxJdOaA5Vr8pNlPWgbOSr3d3gE7Vhx4qttZh/ev8f4uarhA03aw8B7r zLJEhAqaNI0MjnN+EmaGHd6xYWBnGtzdpIqU5tgTneQdr/vJ8+zX7V0vuOPt v/f3A/Umkl8yqEQ2vGBVX7WaH7BjNztuYMcN7FjqrzewX7c5vGAOr5vD6+bw Olv+c9/9Hhz9rv77OPefIBZPcpzp/kdcK/XcZdacRIebX5c5dZnTNnPaduA3 ONvNvs28tpvXdvPYbh7bzWG7sbuM3WXsLuNuM+42424z3jbjbTPWduN0GWNb dIK3L7L6P1v58ndl2Tw7P22kXQNZNTvwlyK/PLCX66x+eOkvev6efax4uVEX GXWRURf9r5mnlGmOc18py5zkWMoYM937PzNG1UAV3UkH9Out0/b14nDNgb/u WGnkbw/8xeiZ5r3Bnc/ZtTp9wRrzf4mV5r0rg5QqQ4GlZtrrUt19m7VmstZM 63nJW2/1trl2sY52W8OCM1lwpp2sY8WZIqIgIgp2tM76XhIVBWvcYI0brHGD Xa2jwdbQYGvorTX/I3MU7HKdXa77R+Y4zjtOCDOt/SXr3mCX6wayx3tYvYnV mwZ+G9Eri/SH18y6k+WbzLjTjEu/w+lk7SbWbjLLTjPsZOUmVm5i5SZWbmLl JlZuYuEmI3WycBPrNrFuE+s2sW6TqOqVdfeofryHh/WGl6KUKriHUuqPYmpk mbMuZ63Rcc4SPUwffZLQJ4lKuVul3K1S7j7wO8J2mmUHHd+n4rWrdO0q3W6V bje93qfatdPofXRFQpP3qW67VbfdqttuuruP7u5T2XarbLvpjkRla6c9EpVm t0qzW3XZHVWp5f1m8pDanajZJV33tlETO/i4HXx8IKtUqfY98RCZ5EOhwwra 3NURnx0NkmH0PNEZxilE5d6z2XtKv3PtK63AinMDv0FoL93PEkPE09mhz/XS b2Xd4bmN0WHOSqvvsfoeq+8ZWPmltMIVYfW7Vt5j5T0Dq653bMAqNKEZVmdl PVbWY2U90fuMtoJ9e9l3LfuufXdnbuwOo2xh214jbDHCln90488M/MZvC9v2 su1atu39pw59rfPCwG8BBzp1tl1r9C1su/bd3XpUZuW90QlxjU9DwiPUUkIt JdRSYk7PmtOzrNVLMbVRTKXfrnWy0zbKKLED++zAU3bgKX3kYH1k6a8jS6qn jeppM69nqZs26qaNummjbtqomTZqps18nqVk2qiYxJyepSjaKIo2iqKNmmiL MmbzRyPvNGKfEXcard9obxrtzeh4P32L3VrNcZ05rnPnrgO/w/4/O3Q2ZXce v/40O8wKrWy4hw33/GOXnnGt1vlCx0WU1jLHd+/aWucF/H331runxf0bw7p/ 2sWhrNbCai2s1sJSLSzVYt5/O/A7qRYWaWGRFtZoYY0W1mhhjRbWaGGNFpZo YYkWVmhhhRZWaGGFlugo61xvjeutcb01brfGvDU2WmOjNTZSqiWva7SeRqqy napst5b1lGXJAxutpdFaGinJdutotI5G61hvDeutodEaGq2hceBfUR4ffzc6 PpoeXRkeiH6IH+G68Gg0LtwVjcdNmICJ2BSmR5uxBd3u6Q93RnuwF/vwTriz 7AOhvuyDOAWn4l/wIXwYp+F0nIEz8RGchbNxDj6Kj+HjOBfn4RP4JD6FYfhX fBqfwWdxPv4NF+BzuBCfx7/jC/givoSL8GUMjw4vezm8VPZKeK7sVbyGpXgd y8KSsuV4A3/Bm2FJ+SPhrvJH8RjqnK/ASlhr+X6EcGfFweGBisFhegWVXUFl V1DZFYfjCByJlnBXRYd7OrEj3JX+IM7B1eGB9Ej8BD/FmPBo+nqwe3pqqE/X hyVpHU/mpLAkczI+EJ7LfBBn4iPOP4FLw/TMZbgi3JmZhllocf4WNsKeZdrC o5l2bPezHue7wp2VqVBfGaMcFUiDUqykFCurkEU1cqjBQRiEg3EIBuNQfDws qTwX3/X5R46THX/vOCc8V9kb6qu8q+pQ+vjyaHBYER0K2S86DENxOE7GB/BB nIJT8QV8EV/CRfgyvoKv4mv4Or6Jb+PK8BDPfYjnPsRzJ0ajw8xoDK7HDbgR 48Ic3jyHN8/hzXN485zy34QV5bfiNtyOOzAVd+Iu3I17cC/uw/14xHOP4rEw x64/VLE2rKhoxnr8DS2uv+3Yig4/78QO194JK9JpZFCFLI7AkTgRJ4Ed0uzA O+akz3I8x/E8x8/hclyB7+J7uDo8xHMe4jkP8ZyHeM5EnjMxbb1p6+VBcyp/ WrJNdFeoj+7GPbgX9+F+zMbvMQdP4En8BW/ir6jDCqxEPRqwCo3IYzUK2BSe kROekROekRPeiHaiB73Yhd3oD/PkiXnyxDx5Yp48Ma98a6gvb0M7tqEDupPy BNuxA13oho6lvAel5/YjhHni7ZmMXJAR+xmxnhHrGXGeuSi8kfmG48W41D2X 4YowL/Nj56MxBjfgRtyEm3ELxFuGjTJslGGjDBuJp3mZ3zrOcpznuAjskGGH DDtk2EGsPSPWnhFrz4i1Z8TaG2Ltjcw2dGC7Z3tcZw9xN6/sw1F5dEhUgTQy qETpu8OzqEau9BWTOAjnRkOj83BlGM/Hx/Px8Xx8DB8fwcdH8PERfHwEHx8R jfWGcWEkPx/Jz0fy85H8fGT082hQ9Av8EjfjFvwKv8ZvcCtuw8LomOgFbArj 7Og4OzrOjt5rR+fY0Tl2dI4dnWNH50Slb5DuDxPs6gS7OsGuTrCrE8oeDKvL ZuAhPIxH8Cgew2/xOGbhd5iN32MOnsCTeAp/wNOYi3mYjz/iGdTiT2F16vRo UOqMaGjqLMdhuDCMT30+XJf6Ar7qfHiYkhoRrk79GFeHq2m2L8SXhdF02xfi 7zqODn+Jx4SGuD6qiBuiIXEj1btaV74mysabwpx4My2yJfpA/LZja+m7gRy3 RYPLR0eHlI/B9bgBN2IsxmE8bsIETMQkPBJGyhcj5YuR5auiQeWNyGM11mAt CliHIprQjPVgT94+gbdPkGvGVxwSVvP6cXLMyIptUVZ+GS+/jJdfRlbsjQ5J x+Bb6cE4FMfjg2Fk+hTHM/CRaKicMjL9UZ+vDuPlj/Hyx3j5Y7z8MUb+GCN/ jJA/RqT5Unoc+FL6gbA6/eDAv6BfnXkvjsGxeB/OwEVhjkgbJ9LGibQJmVHR oMy1mIwpuAvTXH/E8bHoGNE0IfOUzy3ufwsbwedEzr0i516RM0fkzMl0RlWZ BNvd3+Pn/E8ETcjsjgZVDgmrKw/DUByOI3AkjsJ7cDTMtdJcK8210lwrj8P7 cTxOwIn4gXddiR9igvOJmBRWV5WF1dlLwnXZSzEhXJ2dBHGTFTdZcZMVN1lx kxU32dtxB6biTlhv9m7cg3txH+7HNEzHA3gQM/AQZuJhsE/2UTyG3+JxzIoG VY/HTZiAiZgEtq1m2+qfQXxXi+9q8V0tvqvNs9o8q82z2jyrzbPaPKvNs9o8 q82z2jyrzbHaHKvNsdocq82x2hyrzbHaHHOnRoMOqkIW1aX/KSVeKVI2yUal T6XvHjk8dYNsliv9v42yWU42y8lmuaj0PxhmUY3cwDfY52SzHAVQpACKFECR AihSAEUKoEgBFCmAIgVQpACKFEBR5jtU5juUEminBNopgXZKoJ0SaKcE2imB dkqgnRJopwTaKYF2WfIqWfIqWfKq6D9DEg3HCPwYV2MkfoKf4hqMwrW4LgyX Ua+RUa+RUa+RUa+RUa+RTc+XTc+XTc+XTc+XTc+XTbOyaVY2zcqmWdk0K5tm ZdOsbJqVTbOyaVbdbVZ3m9XdZnW3Wd1tVneb1d3mqPT7jjl4Ak9iYXSkzHuk +puov4n6m6i/ifqbqL+J+puov4n6m6i/ifqbqL+J+pvI1qNk61Gy9aioVS+7 FW1oxzZ0oBMJtmMHutAdpsnss2X22TL7bJl9tsw+W1YfK6uPldXHyupjZfWx NH2Bpi/Q9AWavkDTF2j6Ak1foOkLNH2Bpi/Q9AWavkDTF2j6Ak1foOkLNH2B pi/Q9AWavkDTF2j6Ak1foOkLNH2Bpi/Q9AWavkDTF2j6Ak1foOkLNH2Bpi/Q 9AWavkDTF2j6Ak1foOkLZV+JhpZ9FV/D1/ENPBjyKlFeJcqrRHmVKK8S5VWi vEqUV4nyKlFeJcqrRHmVKK8S5VWivEqUV4nyKlFeJcqrRHmVKK8S5VWivEqU V4nyKlFeL1Grl1isl1isl1isl1isl1isl6jVS9TqJWr1ErV6idqyv0bZsjqs wMooq4rlVLGcKpZLnVv6N6qOn3W8MExSzS5SzS4aqGaXhY7UlRiuur2rqqVG hg6V7ZMq2wiV7ZMq2wi9+NT4uvB0vCi8Gr8YHRS/ovqt1M836NMbo8NVuXZV Lo7X6u//u9JVqHQnDHzHZLvr21Se0VFOlcupcjlVLqfK5VS5nCqXU+VyqlxO lcupcjlVLkdJt1PS7ZR0OyXdTkm3U9LtlHQ7Jd1OSbdT0u2UdDsl3U5Jt5dP C0n5dDyABzEDD2EmHsYj4XyV83yV83x9V62+q1bfVauKZlXRrCqaVUWzqmhW Fc2qollVNKuKZlXRrCqaVUWzdGZCZyZ0ZkJnJnRmQmcmdGZCZyZ0ZkJnJnRm QmcmdGZS3hs6yndhN/rQjz3Yi30QEyrzWJV5rMp8lcqcV5lH6f8K+r+C/q+g /yvo/wr6v4IuoahLKOoS2nUJRRX8/IrNIdEpFHUKRZX8KpX8qgpzqjAnFf18 FT2nayhW7HceQpKOUIYU4iin0ud0FEUdRVFHUdRRFFX+nMqf01kUdRbF9NHu fS+Od+1E5ydBrtVlFCmD8ymDXPp0P+eD1MGhuo4ihXA+hZDTeRR1HkWdR1Hn UdR5FHUeRcrhKsrhKsrhKsrhqrQ8mpZH0/Jo+jqMxpgwnJoYTk1cQ01cQ0Wc r58tUBJ5SiKffnjgG5mGpufjTwPfyjQ0/bpjfailMvJpe6nvLaR3R0MpjjzF kac48hRHXi9cqxeu1Qsv1gsvpkDy+uHF+uHazHlRVk9cqy9I9AWJviDRFyT6 gmYqZba+INEXJNTKKGplVOY7oSNzOa4IY/UHSeZqn8VU5if4Ka7BKO+8Ftal d2jWOyR6h0TvkFA4WQonq4dI9BBJ5jfuv3XgWwUTqiern0j0E4l+ItFPJFTQ WCooSwUdqa9IKKGxlFBWb5HoLRK9RaK3SPQWid4ioZBGUUijKKRRFNKozGbv 3oK3Iddn5HqqaRrVNI1qmk01zaaWxlJLo6il2dTSWGopq9cv6PULev2CXr+g 1y/o9Qt6/YJev6DXL+j1C3r9gl6/oNcv6PULev2CXr+g1y/o9QtUV57qylNd eaorT3Xlqa481ZWnuvJUV57qylNdeaorT3Xlqa481ZWnuvJUV57qyleeaU4f wcdDbeW5+K53/8D5lfghfuTaVY7/ieEYgZ+GdgotT6HlKbR85WTPTHX99+6d ExZXPuHzk+gNhaooGkrB5ausrerQUFt1WJTNfj1syn4D38Ql4SLK7qLsd3y+ MXRkx2I8/q70pvj8S9wS5Si+HMWXo/hyFF+O4stRfDmKL0fx5Si+HMWXo/hy FF+O4stRfDmKL0fx5Si+HMWXo/hyFF+O4stRfDmKL0fx5Si+HMWXo/hyFF+O 4sv9f1R8uX9SfIdFd4RPlF0Rfanse9HXy74f3Vj2H9G/lf0g+kTZldG3UhdG l6SGR9+MLw6fiS8Jn45fCLPjF8OX4o3hDdpwSCzDxW+Hu+KtYVncFr0nbtdv bQu7omOjO/a/Fj0VVkVLwypv/9SBb4M9x9tP9fZTvf1fy4aHXWrrFqPo5nRl F4dzjfJJo4yJF4dF8RK8uL8jfjksUOPWxq+G1+PXwh1G/4WR++ItodXo5xp9 qtFjoz9s9NeiynhFmBXXm5NOPl4VfhA3hoVx3lNrQpOquJ5OfSr82dz+7M5v q50r3D3N3ePjVfv3u/sxd39eHV3giRs88eDAdzueZrYTVPP3qt6fT31JJR8e hqd+EsWpJ+nk18J/pJaF6akN0dmpXhV5SDQoPi38Ll4c5VTp06zgj0Zaph+N 41V6zdXhT6p0hbfvt6K8Sj3+QKWOD/SksZW1xm1W1e76ttBZ9q2oPCyMKpBG BpWoQhbVyKEGB2FQWBQdjHNDU3Qefh7mR7/AL3EzbsGv8Gv8BrfiNtzBhgtD Q/RCaChLhaayGOWoQBoZVKIKWVSjBgfjEAzGoRiCwzAUh+MIHIljcCzeh+Pw fhyPE3AiTsLJ+EpYX/ZVfA1fxzcwARMxCZMxBT/Dz/EL/BI34xb8CneGdWV3 4W7cg3txH+7HtLAudXqYnzoLw/DV8Hzq16GY+k0o8vKL7UoHP9vHx+bbiQ4+ 9mU+ti/etX9rvFtE9IVM3L9/d7xnf1O8N6Tjfftb43fCsHi/6yEcWV6xf2t5 OnymPBMy5ZX7d5dX7W8qz4Z0efX+1vJcGFZe4/pB7hsdFpaPwfW4ATdiLMZh PG7CBEzEJPw2NJU/jln4HWbj95iDJ/AknsIf8DTmYh7m4494BrX4Exbg+bC+ fCFewCIsxhK8iJfwMl7Bq3gNS7EqzC9vRB6rsQZrUcA6FNGEZqwP8yv2hoXp GPw3XREWpQc7HorjcQrOwEdCU/qjjreF9en7Md25daZ/57P1pK0nbT1p60nP c20+nkEtnsNC11/AIiyGuafNPf0Xn9/EX32uwwqsxBqsDevSRT9rxTZ0oRs7 0YNe7A7rMwdhEA7GITgirMsciaPwHhyNs0JT5qMYFeZnrsVkTMFdeASPhYbM U467w/zKk8P6ylNDU+WHHU93vAhf9vnbYV3lD/z8SvwQv3Z9uusP4EHMwFPY G9ZVRWF91SGO4qtKXFUdhaNDU/YHoZgdgavxE1yD0RDvWfGeFe9Z8Z4V71nx nr0dd2Aq7oT5Zu/GPbgX9+F+TMN0PIAHMQMPYSYehjVmH8Vj+C0ex6wwv/rf Q7H6C/givoSL8GV8BV/F+PB89U2YgImYhMmYgp/h5/gFfombcQt+hV/jN7gV t+F23IGpuBN34x7ci/twP6ZhOh4Iz+dODfMPqgrPH5RFdXg+Klcr5sv87fHq 6MPy8r7ovmhcmBGNx02YgInoD0X9c1H/XNQ/F/XPRf1zon9O9M+J/jnRPyf6 50T/nOifE/1zon9O9M+J/jnRPyf650T/nOifE/1zon9O9M+J/jnRPyf650T/ nOifE/1zon9O9M+J/jnRPyf650T/nOifE/1zon9O9M+J/jnRPyf650T/nOif k9K3cJX92TyXhQ49a4eetUPP2qFn7dCHTteHTtd3Nuo7G/WdjalZYevA30f+ 918dvZXaHd5SzQqq2Ix4ZXSsetmigt2mh5uhh5uhh5uhh+vQw3Xo4Ur9U1H/ VNQ/FfVMiZ4p0TMleqZEz5TomRI90gx90Ax9ygw9yQw9xAw9RKJH6NAbJPqA Dn1AR+aUUMycOvB9nB20f0nLF+nsIm1dpIWLNHCR/k3o34T+TejfhP5N6N+E /k3o34T+TejfhP5N6N+E/k3o34T+TejfhP5N6N+EXu2gVzvo1YRG7agc492T ff596VvTQkJvJvRmR9UQ8XRJmE5jTqcpG2nKxtyEsDU3EZPC1poh4a2awzAU x+J9mOL64+GtKKWq/EFdp+PiF6KPx4uiy+OXorPil6Mj2Pe5+FVK6rXo5HhF dBFbX6Svr6AYPqW3HxznozPZ/W+UwzF0zkZXN0Wn0AsX0QsnxVujC7z31QO/ yz7VSK+Ep9x/z8CY8/1sBFWxKDrItTecrSx9L+X//V26ZcOjYf/79+mazxmi 4xNG/aJ6+Hlz+O8rZ6iWu139jGq5SLVsH/iO4m2l/43S1aOdfWrgd4qHu/dE cyj9XwRvRx9yx4edrYyGWeEQPzvGWkvf+nZJqItHR+ea/6vln6TXUq4sd/am u9UmmnC7s/XOro5qnO1xtjw6OSqPhkUVSCODSlQhi2rkUIODjHhxdFh8KY13 Ba62pkV04Mt05iuhoXx0NKx8DK7HDbgRYzEO43ETJmAiJkXD9PLD9OzD9OzD 9OjD9OjD9OTD9N/D9N7D9NvDBv7/ixrqtsdI663i7fglO1n630xeCc9St9us fTSbvGBeS9xltdZeEw0uq4+OL2uITmeZK9jhs/Gl7rosuiy+YuA75i6Lrw6v lL6VKL4+bIzvj86Jp0UfNU5ip0+kZOaWfzw6s/zc6HTWuiw6xhPHGOcsuzk6 ep+ROkvjD4xUc+D/NVkWf8fTl7v/e47fdxzNw+rDOhq5gz7uH/CfNVGlp+Io XfqfUNw91J1D3VnlzsQd26Oh0SZZlIaKttBN1xqptKfXh0a6u8OuD5JxGwbe l7eDqz3lnSVFXDE47NPD79PD79Mj79Mj79Mj79Mj79P77jPmxWFr6V88eeMp IiUz8LbVoSc6/J/G/I6c9T2MtLbRlPjK0GV2260j4XGHGbvXU68bt9q4ff/P cauNu7H0f7N422DjVnhjrzd2eGOPN1Z5W9eBVewTZxe7Wvq+wO9Q8t/DtX4y OjrSk1VmnPbkLk/u82SNuewvWc2Te0XFpuhz0WZsQT/P3oO92Id3ZIeLdS6X hNPj78gWl0ffjb/n+H3HkXqfa83n+vB4fBO/uD/6WOl/4mbxeiOeO7A3q8LM gdHyYY2YG6LL2XPAR84s9+7y/QjRyRWDo89lLsVluCI6OTMNs9Di/C1shHlm trvW47jL3Erf/7jdzPqtud/MTrHufjM7xbqPsu5Sxqi03qy1tsZro4MHvG6x J171xGZPHOWJzZ44yhMfc/fB5vz2gOetCnvNu8+Tmweeyg/8vwSXGu8ynnyF 43cdx8iKG6P3y3j/Rd13wFdVZP+fKXfmvvfuS0IIIQktdBBUQIQVRMHFiiy6 dhRFQbGAuoKISLGsiohSLOCKFEFdxcUOCgi6iooFRKRI76H3Hsj8vzPvJSYk EBJY/f3v/cy8uVPOnDv3zHfmzNx73nZgTBjImA5kLAO8m+b+Ucc+v8XIJRCz Hc/hGoSud33DWsNLFd0hVQ9hvFsPvjegxo1mm5O3lSi3FuXCoO6DMkfKYkqn zmYn3Q53B1x3PP1r8Dzbg6+b4R6EZNrcayAl69HSWeBpI/TLTaCyGeNkCyrv JZmd3ha4rWan6grXDe5euPvgHoTrCboJ8f8EWgTKi0F5seiOu3oQmL8az3EN pGgtepC7W+DwBrTRRvOj08XLg79s8JcN/rLjd2/XlJeDynJQ4aByGnhMApX9 oJIDKtbSvA8Kq+z/EYG/bPCXDf6ywV82+MsGf9ngL5tOp850Od0Odwdcb2pN j8D1gesL149ao8ZE1FgfmOWhha8EZnlo5SuBWW+hpT9ES38OOf0Wcnop5PRy 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 xTu6lm4svtbn6BZinm6pW4pF+q/6YvGbvkz/TSzXV+orxRp9tb5arNXX6mvF Ot1e3yLW6066s9ii79J3iW36Ht1LbNe9dT9xRD+qH5NcP6WfllIP1M9KpQfr EdLX/9L/ksl6pB4py+pRerRM0eP1eJmqJ+ipsrz+Ss+SdfRcvUCeqZfoXfJs vUcfkm31YW3k1X4tv5a83q/jnyZv8M/wz5Q3+Y39xvJm/xy/mbzFP9dvIW/1 W/otZSf/Ev8y2dm/3L9cdvH/5reTd/pX+dfIu/0b/BtkN7+T30Xe69/n/0N2 93v7vWVPv6/fVz7kP+o/Lnv5T/vPyEf8Z/1Bsp8/2B8sH/WH+cPkY/7L/qvy cf8t/99ygD/BnyAH+hP9ifJZf5e/Ww7y9/p75fP+Af+AHBwC8MkhIRmSclhI h8LyhVAQKi+Hh9JD6XJcqEKoshwfygxlyn+Hrwq3l2+HO4Y7yg/CncOd5Yfh O8N3yY/C94TvkZ+Eu4XvlZPC94fvl5+Ge4Z7ys/CvcO95ZRwn3B/OTX8dPhd OSP8Rfg7uS48P7xUbgsvD6+T+8IHIxkyJ1I9MsTLjAyLjPWej0yKTPdGReZE dnlvBTpI834I6gUXesuC64M7vQPBPcH9KhQ8EPRQiUHPoJdKDnoHvVW5oE/w pEoNBgTPq8xgSDBE1Q6GBS+qOsHLwRhVL3g9eF01CcYH76qmwXvBx6plMDmY qi4KPg8+V22CGcEMdXnwZfCdahv8GPyirgl+DX5VNwULgkWqQ7A4WKE6BquC HeqOYHdwQPUMDgWHVZ8gJ0qqf5RHuXo8KqNKPRH1o1H1VDQpmqoGRdOiaeqF aEa0onoxWjlaQw2P1orWUqOi/aP91ejoY9En1ZjogOhz6o3o0OgLakL0pejL amL0legr6v3oq9FX1QfR16Jj1YfRcdG31OQEnpCgpiUkJ5RXsxIqJFRScxL2 JxxSvxAPY/5OFFxQ5gqqQ5l0ig4zxawx66mB2YDwkiJz5JhXzXs4t5uBuLrC 3IgyMxHaEE/fYDbBXxW/2leovE3dZPbg/D1NF1HPbrgXi+X3EbjPC8QsRw2p tpZjHtC8kO83k41wgJH8Joriek1BHnPvpog6fzQrzTbzEyisxt1mFcfjCRw+ qL4cp77WbDEzzbr41a5CtW+GW2ZWmHnmgLmMQmi706hqvvSc4ioze/Hs9oDC 75yj/TFjiaW+Yd6gAC7vGR5VeivcOrMYNJbj0sM8qxadh1AVl/q1mW0WQH4g O9Dbi67/HfO6GYXfAXDnmzPMg6YHQvnaMffuEdpSqHSO+cZkQYK+MT+ADzwH 23oFS+Xl/bGYpiDoqUQJLvR8PGYbaP+UK5v5pSIeswd3vgttv8Tsxnw/EVGN 8RTyajeb3RPanJu7UPktZiP62LbcFrcro+53af48xfEdz7e4wNU/Clx9d2I0 cDR0+eOSZhbi+flmYTE178/XtxvSX4rJ/a75t+3R5psT5qlg+fVWOqzMFkqZ fwKlcWfmKReadHR/NredQHnIiPnY4dZy+9xKepi3HZq+jXYtfPgnRGG7meJQ 8wTloggKu05cqoooHUdY80upSr/v/IUWOU75cdYJ1L8+NpaZbMjR7hLXEBw3 tTbc310tuSPeqtgZT69SRJm6OKvgrFuAyzfjv3Ni53HKNyyyfLx1ISV7gU57 j8Uw8HOr2QkEW+n6lJXqAy7+BZdc2Xxhpptf7Yh+jPKH84WfpXTg/3XUzvaQ eNwyjA1TC2NxXpnsfOEhGHkS6VLqiPDEeNwatN7cY4+qufU7iX4F5UNAnwfi SG7jPzTvkTCTj1n+aCn0MHvqgvjn4unfmW/R/t/Hrwrj96F84YEonU5tyc6E zo/HfW4+A4X/HLP+tUXH5+CJWXw0V5q/mc6mXTz36ELlHweKvWH+Y342v+aL 5tSBnqBBCD1Pg+03M/QuJHciTcbscCpNp0ZuVaEJfUULqCn9RuuoDWUxRtez jqwjdYdG/3fqYXV56mm1eHqI38270cPQxxdRX76Er6F+fAPfQE/zTXwzDbC6 OQ3k+/h+GsSzeTY9b3VzGmx1cxoK3TxCL4gqogqNEDeJDvSK6ChupVflJDmJ rFZraJSX7CXTj+oT9Qn9pD5X02m2WqKW0s/KKEO/WJ2O5lmdjhbpK/SVtMzq dLQCOt11tNLqdLTa6nS0wep0tMnqdLTZ6nR00Op0lAOd7llG0OaGMqVf0CNY yOp0LNHqdCzJ6nSsjB6nx7OyVqdj5axOx2pBp9vFToc2Z1g7X/geu9H3/TC7 2Q/8BHarX8Yvyzr75fzyrIuf4Vdkd/uV/UzWza/u12T3++f557Pu0NpuZw9C OxvAekE7e5b1tvoXe8TqRKyP1YlY38gjkSHsMavpsOFBUpDGpgbvBu+yr4M1 wQ420+oabJ7VNdhvVtdgS62uwVZYXYOttLoGW2N1DbbR6hpsh9U12E6ra7A9 Vtdg2VaPYIetHsGOWD2C84RQQoTrhHIJ5Xk44UDCIW73FBY6iWFOYjgk5mVo FMPpX5DpV2k8Yt7AqelNegej1ATIk3LypCBP09DrPodUhZ1UhSFVsxD/Pf1K EZqPk0PKFmBW/RstxexqGa1GH1sDmatKWbQTPX4Xzmq0m/ZTdTqAswYdpCNU k3IgkWWcRFZyEimcRAZOIgNIZFdK4t0gl4GTy2TI5TJK5cv5cirLV/BVVJ6v 5qspja+BvFZ08lrByWuak9dyTl4znLyW5YYbKisw/acUSC2Hj4PKQXY1wnj4 lC5CkOMUJ8cVIMc3US3RAdJcG9LcEeFbIdO1nUxXgkwvIyaXy3XE5XqZRUpu kNsoIrfLPVRZ7pX7KFHul4epijwC6a/ppL+qk/5KTvorOemv5KS/EqT/r5Si W+vWFNEX6gtJ6ovQHzz0h8sQ00a3Qczl+nLSuq1uS77+G/pJdfSTK1D2SvSW kOstEbsCQlF9HfpMAvrMjVRV36Q7UKK+Wd9MNfUt6EVlXC8q43oRQy+6B6W6 6vuR5x/6AcR0192J6x76QdTSU/cE5YfQ0yLoaY+gVB/dB/F9dV/k74e+F3V9 j9n1FOQZoJ9BvQP1s0gdrAcjZogeglJD9VDkeUG/jJjhejg4GaFHIAb9k8K2 f4LOKD0KpUbr0Ygfp8eBzng9Hjkn6AmIeVdPRNn39Htoh/f1x2iZT/Rn4HOK noI2maqngquv9Exw+42eBZpzNSRTz9eQSb1QLwa1JXoFZeqVeg3aZK3egLo2 6k1UTW/WW9CSW/U2qqG36+2ocYfeBZ736D3IuVfvReo+vQ/x+/V+cHJAHwT9 Q/oQKGfrbFA+rA9TWX1EH0HtOToHZY029v9VfY8qWTSBDzSBDzSBDzSBDzSB DzSBDzSBDzSBDzQhBjR5Gv4AfwBxiykkLaYQs5hCATClD/y+4f6UZJGFBJBl AQWRhZFFFI38FtlFSRZlSFiUoXSgzBoqG6wN1lJKsC5YR9FgfbCeUoOsIAup G4INlBZsDDZSxWBTsBXhbcE25N8ebEeeHcEO5Nkd7EZ4T7CXMoJ9wT7k2R8c QJ5DwSGkZgeHKRLkBIbSola1LmvxC76MSvheVFEyUMyn8tFQNEzlopFoBDmD aJQqAtfKIiYlmkoZFt0oFeiWAb9CtCLyVI5WoZRoZjQTdKpGqyFcPVod+WtE ayAM7EM8sA8xr0VHoZbR0TEoNTY6FpTHRceD5hvRt6icRUMSFg0pyaIhJQGx Poij4RCcwqGhBzQcgfCrwEHhcFABBd9FeCJ9Cv8zgrQBDb9A+L/AQEEzgYMC ODgfiLkA+Crc+r3vcFA4HCzncDDV4WDY4WB5h4NpDgfTHQ5mOBwMWCJLpChr z9rD78q6wb+PPQC/B+sBfyAbSFGg5JXEHUqGgJKd4VuUjDiUDDmUTHCYmMK3 8C1UxuFgssPBsvwIP0KJDgGThBSSkoF9PsJhEaYyor1oTxXFje5NNot9lRz2 VRE3i5sRf4t7u83iYCWHg1XEbaITVcjDwSwSQMA95AP7DlPYoV6GQ71Uu2qL /tlKt0LvvUBfQMJhnK8vBsZJYFwbhC26CYduyqFbmm6n2yHGopvQV+mr4F+t r0FOi3HSoVuqQ7ewQ7cMoFtHCvRt+jb4nXQn5L9d3w6/i+4C3yKd75AuHEe6 HroHYh4E0imHcb5+WD+Msr11b+TPRbr+CMcw7nH9BMIW6XyHdMIhXVgP0oNQ 6jn9PGIs6vkO9YI46g3TwxBvsc932JfhUE841JP6NaCeiKPeGD0G4bF6LBDt df068lscFA4HM/LhoHA46AMHpyAcw75p+kuEv9I/w7fY5wP7FiNsUa+cQ71U h3phh3rlHeqlOdRLd6iX4VAv0Lv1bpSy2JfqsC/NYV9GHPsOA+OEw7jAZz4j EUOrcK/wwxQKPxJ+BH7fcF+KhPsDmyLhx8KPIebJ8JMUcjjFI8MirxB3iJMS bAXWJAU7g12U7PAlySFLCpBlP8IHgoOUCEzJQT+3mFImKqKCEoEmmhIcjiQ7 HEkBgiQjbBGkbLR8tDzyWOxIiVaKVkJ8lTh2VAUFix3JDjuSHHaUcdiRDOx4 DTRHR0ej1LjoOOQfD9RIdqjBiTfaYVdem67/axO6jK4/1jz//4/DbDAbrYtf rSxK77LrPG6tr6S019oVLqd5f+Gul+TW6fyf49rnFqt/Ol10sVltsgqu6BRf b+4Knbm/5Bye2sO0geZpf4+pexcqsQGa9relX5fJo7Pl6Cuz0/nxeOiKe9Cy q802uLyVvXyaaEq+0ouRaxHZdY/yCMVXGHO16z/oCOdxk7/egG5wcZuLWl0w mwqvzZldZpX5DSmFdiFKe+Sukhe8sv0nLtX51gvAu8gLbznWUzYrCq9qnqqj 6B2cYkuNN2Pd72G3Gv6ddXZ9yLyN0Kx4nlzJsj14r5mTG1+ietY6GV39+7Vd BTPL8uV4zq0H2bXyFS60FtzkR6h4+57o83Wr1quLz1fyA5KWj67ZZw7DHbJr XeZIgXzH25f6P3b8wX3+BA4z8iQKX1EEvdVUBzJY+SSoHv+oQw5bLZ46TC3y ADac8B7iyY8VR9ErwFX+vneC5T8008378f2BFDPaTHexa+zonn/0LtX8YRGw caWbP2S5uYlDMzsmmZX4nRDPtc3tt30PNxNnVsGVa4dk6ZS7Nvs1xoJZZi7c SMReZuaZH1z8r7FZhNvRvqHknBbifGOBKzeGmg/yxdxtxplu5hm7ym8eyItt jrhPbb8rvOtIds+18F7oJvMF7mXxqeupufJgxzEgWO68cBbF92fz8wBcztsb sXssxVD+6VTxWNoDrRR1v0PtfnOh1B7m6wJ5Y7/LMLqtsRJSivrmW6l38y3X TjaE8W1lvNXgm7vMbPe895MoYgyLUoNCNLehH2yN7y4JIEfurtP+WOrJj2+/ 70MX3K/MnaXYuZcbt9fi3FZo7rnCzT2L6O3ozacYu4o6jsKzeYXSDx8dE4// R9HxVJJ99BIf5o4SFoi9YzHAPOl+tzsE+Mg6hP5tJsVCLi13fub2O/GkPisF dx+aT4GYn8SvvjbvkH0/aLINwwE5gWJfAyVyZ8Hbgb4/xHEitn+WUIjmt+YT MyNOM8VexeMLoIMxJefWlUMvNb/lXeXqLqtsKFevjM3EHaLNsvIRe0ck3n92 OUTuYK5wVzPI7ubdD/cQQkPMCIx1D8Wp5Hu3BS0w1fQuBbe3mr7mddMNof+i V79uujh8eA6j0eto5xlmpLkTY+t2uwfo7myKmWjGxGqOjxoZ5r9H0cwyC6BV xnru2Xmh+LzTHIy5E58xF6C9x/X3vLeCCo5SbpzO03zdzHele+8h/xsXZxR8 Y+WPOgru4ro3mLYWz4m7o0LvX/0RR0FN1rYqZHh3cfjpns4p03RLcuSff6A3 WC1rIX6PsdOdl3PTyfNrXjN9zD/NcBeeA3kfa9+UiY9DsfniXvMx3PSTq8dR ahB7k+WkaKwx6zESuvERz3Q95DBvzh176mYH5hw7ipoBlriuUsy585X+IfZU wYvFwZ/iVyvi/SfO9Z/Tn4s6zB3mdjPNTCLurvqankDrjrEZgZlsDuBqkPmH OcdUB442Ng+Zu06irtj8MfOk+I1jUkynzXvfcGzB1FN5mPGngIaV3gUxVMf8 ttDTd+mrzS+/j8J/7gFulqDPuTVPyLDVFPM0ldhMF6nfwh3jXdU/+gC/z+fv uZhfTfkz+Tn2gd7Ww86dYm+6mu6YHf2K3hdLm+H8JeYzc6N5BqHBZmksrpR1 fXvy/Jawxj353/P6v3vkzXF3nfzblUW9634qj9jsEPPvdRj1TsGKRXHvKB+3 7AlKlHnPre1vLn1N+Y70U0LlhA7MhU565mqGngpOiqkjjnSY3Z70uvwpekrF 1bIGM9v/cU85dQdmPXtOWcsknwQfp6K//4H7EaWRRsx7VsdKxr/syF0Xme32 GWYft/C98bzvl7zeP/oozTcQhWgcczfkOGXcar1dKYppwrEVnby94PDx9GO3 tptO3UiVvF5XvhRfeZksN3b8/i1Z7prciep2Ebq45LX+qUdqaQuWfOeJ7FsN dl86T7M3U52/Ffhc7G7E/7UD8/69x/5mIl++A/97Xk7sODGELO2oXuS3UsXW 5d4g+P3bQbdjkSdZ4SIL5ea1a1UV6Ub0uT/hKDh3j6EGtKdicNbtxPwJ631m 5ymktYriK8pFfnFU133lZHfQ5xSRWhxt+x3VqtySuSG3wr8qHpNbZ3NX11F8 5bt6+neaubzY77UKcWW/ympod2lKo7WbkeZNMyXvO7B4yM4I4muac/L4aFiI 3zdLXl+B8qV4U8j84nYlvs+7du8AYb6pTnin7wS+3jtG3UV+m1xMmfVu1cqO 5A4L3NXX6HsxZAgfb37pRpREOu/Evtcsonxp3n+YZ7+3dG5f7Nr58VXz46ND /F4qFnzfCPK108x1biSVx5x0Y3w3aWWsTztZu7vknBZzH7EdtnzauuloHjJv mVHObkDeOz2mjfmwhJS//mNmzJbHY9djcoraVY7tKB4Vt7P4XZzSHu4dmTgy m12YT+zC/GiRWfw7EpktiLN7xn8x17rrjyABC0wHM9NemxnmRfONXTF3aS8U oL0sN75EHLUz3cxj5rL4lQtBAru48JtmnHkAcjASs7UpGHltjknmE/NxfNS2 q/Op1MDtOfcyXV1c7H3EUZhXv2afh7WSkPcWUIG1IHMw92v+EvH7inkbutq/ 4lezXd0jHc7Pdm1gd1/fN3vMly5D7Kv9+BsGcSk+u+S1/lnH/+Rr7MK1rMpF rNi+8591lGafCk96K+VbdcizkHAiY09Zsu/vXOXCFakxdM9MV3YdZh3r3GhS gc4y89FD7bnMLDfnoL90ocDExvW4noreGdOpysevP4zvVHDK+2Laxb97nPtw 71aY3hjn4iuQppW5Ba6NuYPKmtgYnGtDoy/chaa5ucbEv2ww35ml7m0J22M3 YUxaFddf61EdN3LWc7mOv7pRNF9jzTj4b+ddT7G6XIE3K66OB26kv9NfqJGz E1PTpeS/93DOLyaSs9+NlNPMPeYjO4aZfuYJGwLVgQWqjb0Ddk8p+O1q7sP9 3+cufIS6Otx8wo3Uc/Ess3JiX9JPdlZBcg/XsqZ7nMYJ6HhF1r2x+DyFymxx bwTYeYKTJifNX+NauuTguPMdWyqRzgX3nOYVY8eufdyO3eN0KeOsHHV21ul6 Oet0A5x1uoGsPetAQ9hd7C560dmle4k9yAbSCDaIDaeJ1jodTbHW6WiqtU5H 06x1Ovqcfcnm0AzegDek2bwxb0I/W+t0NI+fz8+nX611OprPL+VtaCF/gHen xbwXf5iW8iH8BVrOx/PxtJq/xSfSGj6JT6bN/DP+GW3l0/h02sa/5jNpJ5/F Z9Fu/hOfTXv4z3wu7ePz+Dw6wBfwBXRQBCJKh0SSSKbD1sIcGWdhjpyFOU/U EDWYdhbmfGdVLiKaiCYs6qzKJTircknOqlyysydXVrQXN7IUcbO4haXab+VY mrX6xjKs1Td2hpwsp7P21uobu81aemO3W0tv7A4vySvDungpXjq7y9p7Y/d5 S71VrKe198b6WHtvrK+198b6WXtv7FFr74095e31stnT1sYbe97aeGPDrY03 NtraeGNjrI03Nt7aeGMTrI03Nt3aeGMzrI039rPqoJ5iC611N86sdTcurXU3 7lnrblxb627cV2PUOJ5g7brxZGvXjZe1dt14RWvXjVe3dt14bTVLLeJ1rUU3 fo616MabqSy1mZ9rLbrxVtaiG29rLbrxK6xFN363tejGH7bfx/F+Pvc57+8r X/NH/Ygf4Y/7iX4Sf8JP8VP4k36an86f8iv5lfgAv6pfjT9jLa7xZ63FNT7I Wlzjg/2GfkM+1Npd48Os3TX+grW7xl/yW/qt+HBrd42/Yu2u8ZHW7hp/zdpd 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 yf7GcMtwj53Ds/kS09K/fmBgmSyNzWCL2TS2hHWwt5mJrWbL2TfYGhZj4+xj lmD/zH7LTrDfCensXwRFyGCfCpnCY4Ig8N84yfx7k8LjwjLBIuQJ3UJCKBFG hXVCo7Be+K7wZeHHwi+Fr2o+0nwkeLVurUcY1Ia0EWFIO6pdLQS072nfE0La 97XfFsLaD7TfF2LaXdrdwte1+7Q/Eca0P9X+VBjX/lz7T8J79HvMddoz2o+F 97WXtJeFb2uvaf9d2Kj9g/YPwmbtn7T/KXyPf4tO2KqbqZsp/FD3sW5K2C7p pELhrPSs9KxwV3pOKhP+JL0s1Qif8F94CJ9Kr0v1olZqkL4oStLb0nLRILVL JjFPglkQ50oeSRVfkL4urRFflsaljeJ86QNpm7iI/3JCbJV2Sb8Q35FOSafE fum0dF50SReli+KwdFm6LAak30s3xBH+fSwxLP1RuismpHvSlDiqZ/oM8T19 lv4x8QP94/qnxe/ri/Qvibv1r+nt4mH9gH6teFP/Lf23NIr+ff1GTYb+Q/0u zUz+76pqHtf/nX6/Jk9/QP8zTT7/PpCmSP/P+vOaSv0F/TVNtf7f9f+peUMu kvdoFst/THtK81vDJ4ZPtPz3cj62DaqwEv6b7bpTqSpK1aKH7aLVR9/MXn2i 3vzm3frm1adXn1t9sXFq9ZXV1+tXtewayxnLHyusPz9WMlY+VjVWO1Y31thU 3LRw9a2mdavvvmF9I7F6coyNSWPKWFbTwjc6cIXpcb3fpuv9T0zA9T6Jq/5T 4VOmwTU+nWkNnzd8nukM8w3zmYTRT9D3VJn4ofghE8SPxI+YKO4W/waj/0H8 B6aj76lK4i/FXzKZfieWJn4snmXp9A1Vhb6bmiH+VvwtM9C3UjPFP4h/wGeH f+80SyNohIf/prBOI7Fs+l1ZjiZbk81ma3I0OSyXvkc6R1OsKWZP0G/G8jW1 mlo2l34h9pRmoeY1VkC/mSmkb3Q8g1ekCFl0XrkyWwML2BpsTbZW21LbCpvJ 1mNz2ry2gC0CHbWtsa2zbaDabNtm24l1e2z7bYdsR20nbKdt52wXbVds1223 bHdtk3Zml+yKPcueY8+3F1KV2MvtVfZae5290d5sX2xf9hfLebvRbrbb7a6H i8+u2mP2VY8s4/YJ+0Y7CNa+/S+WSyjVvsu+134Aj58th+3H7CehfDljv4o9 3sC422jdsz/oFXvlXgP2ub13Vm9u79zeIrx+Ic2euqfwX7TPoHOSg0XD8rBo WRF7lulYKRY9+xwWmdVgSWO1WNLZAizTWD17g757/hbuSfxXmZnsK2wZm85W YMnCXcnEZjIrlllsgLnp95h++iVmkL5vHmW5uFu9x+aw97E8wb6DJZ/9ANf+ k+xDLE+xXVgK2E+wPM3+Hksh+wcsz7B/ZEfx/E5gKaZ/K/s5dp79Cp+WX2Mp Zb/D8gL7PZYydof9Ec/9Pvsv9iKbwjJPEAU9qxTScWesoW+Xv4I743RWS98u XyDkC0+xV4WnhafZ6/Rr0HrcK1vo957LWIPwNcHIviB0CB3sLfqmeRP99vOL gl2ws2ahT+hjbwsewctahBEhwlpxZ02wpbi3fp19RVgtjLGvCuPCOPsa/fbz /7L3NdBRHFe6PTM9wxiLsawoWMaYKArGWGCMBVEwUTAhGMRMzxhjGbMKQcp0 9/z0jEbzb8wSDCwmCkuIIJgQgjGPJYQoCiEEK0IWGLNYJkRPwUTGmCUsD7OY YK3MwzyZ5WGy937dIwkhx+TsvnPeOcmp831dqq66XT/33rpVgJhHfrZRqDA1 mZoE2bTf9JqgmFpMbwg+029MvxECpt+aWoUg9DdEPmKkELYX2guFavzdvaj9 YXuREMPf10vYJ9onCkn7JPskIYV/Z5TG3857xl5p/6bwrF22y8Lf09qeE7qg +8X8eye0YkIJYQqhlOAxUGagnFApPK2VaFO0Us2jlWnlWqXm08JaXJtPvEhb pq2gVKut0zZqW7Tt2g5tt9ak7ddatFbtqHZcO6Wd1S5oF7Uu7VrIHLKHHKHc 0JBQfmgEpdGhotCE0KTQ1JAzNDM0OzQ35A0FQpFQMrQgtDg8MLQ8tDK0JrQ+ tCm0NVQX2hlqCDWHDlA6FGoLtYdOUDodOhfqCF0KXQldD4uUssODw0P5/xe1 eq1B2iK/4ZiH377w2H+bfrsp3QEtz4aW3wkt/wy0PBda/llo+WBoeR60fAi0 /B5o+VBo+TBo+eeg5fnQ8gJo+Reg5cOh5fdBy0dAy++Hlj8gtFIqhK6Pgq6P hq6Pga4/BF0fC11/GLo+Drr+RdJ1s1AM/f4S9PsR072mYaT3rNkl0OyvQLMn 4V9PPAptngxt/iq0eQq0+Wukzd8iG3jO9BzZAP8biunQ5lJos9P0fdP3yR5Y pyX86wk3tNkDbZ5paiU9nmVqM7UJT9qfsj8llNnL7eXCU/agPcj/mjt7cfYK Wqcsmvvb8beGhOBuQhNhP6HFKGslHCUcJ5ziMvHOYEO0MVT254E65fHZwebo vuCB6MFQ5Y3gsuCh6OGQjxCOz2UE26JHQvE/D64TbI8eC56IngzN7wH/HDwd PRNaRFgW9wbPRc+HVvx5oE5tPBDsiHaG1kU7g5eil4Er0auhjYQtsYvIb49H QjviyeD1mKCJMVtodw/wc1N8gTYwlhXa/yloiS8OtcaXa9mxHGBwLE8bGhsW OqqD8zy20PEe8M9aQWx46FRsOD+BkbHC0NlPB9fTxsTGauNjxaELN0KbGCvJ yO0NbXJsSuhiD7RpsdJbQfXp9FBNinm0WbGyfjEnVs6oPpcuYGjzYpW3BCXm 07RY+CZEY3FGdUciW0vH5t8Kqi+lR2oLY4uApbFlQE1sBaP6SnoMPyMXU6O1 M7Gz2qpYrbY2tq4vqq+nx2sbYhs/DVExPREyNse2ANti27X62I4bsCu2+yY0 xppuwL7Y/lvGwViLdjjWehOOxI5qx2LHb8LJ2KkbwOO+BYS64iu187ELWmfs Yr+gd6Fr8TVhc3w96l2Odd0SrsauhYS4uS9YRthOcMQ3hWxx+60gnBvfGsqK O7qRE8/tBr8fQsiP1yE/Ir4zPDreEMqLD0F/+yBcFG/GmIbF8z8N4QnxA+FJ 8UO924eGx0fcgML46JvAbafG20Jj40VhZ7wdz5nxE/3155MQKo5PCJXEJ92E KfGpodK48yZ44jN7Izw7fjrj22/wxYavzPi48Nz4uYwPCnvjHb39SLee9FrX 7nXJzFEgfql7biPxK737xL4kOpB8Ctl+NFv3AdHBhg2zXQ2NbeR9g/U9WkAY mZ6c0efomNhx/g6/Dyfj18MLEmJ4cWJgeHkim/eX8MrEYC7nsYXXJIaG1ycK 2L+GNyVGsp8Mb02MCdclxvMeEN6ZmMi+HWMmfQ83JCZn/HO4OTEtfCAh8bjD hxKzeC7CbYk57DtZJtCemBc+kVDCpxNa+FwiGu5IpMOXEgvDVxJLsUfyHsR7 As/hddonjf2sSoxezsxz1cBEQVV2ooZl4N3gxKqqoYm12Hsye22vNeqWyTD2 lMxewH3ivbGqILGB+1Y1MrG5e525Pq0drz32ZdrzeGxVYxLbuKxqPO3hzTp4 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 7YTz5SecrzjhfMcJ57uOP69a5HdZ5oXqeSecVz/evnqNE85PbL/qhPPGJ5w3 OX4VL7nK0/nItA/GSqdgItW6nf9P/E4dI0GqcOoU7kJFJJ3byC3ObegWuQVu odekg53BTm+3J9ij7yaDfWKCg8FBsa6eqyehu8xd5u/Xmg/GXm51vYwpYop6 jX4ry+l4bCHfs6I/L+bfUfX07/kWy0Y5EuT5MWT5UeXlNhOT2zC3uWej3Os8 dXaFfQ3Xd5yV/DvCWm6rWFPYj+lnjovdNn8s6s+3c1zsVonxZ2s8F7u1np/4 uWqGlpBSbqMf6wLf+j3HxW6TPy705z9wXPw7y82J5Y+J5ZbE8qfE8u/jvZrx Nma81zDev7c0oeVaWpr+vsUtYYSfM8KljPDvLctpWUHLSlqMRMb/57fZSUbf yRc2hX1Ui/qo2twrcq/0UV/gFkjaj2mhj5QVfU0RWJ4f+v/L+f5D/ayG+tOT g5NlcFAiOFOG8O+FDgtaBa3l/qBr0E2G82+EjgzuCnrLQ8HIYKQ8FowLnpZR wd5grzweHAoOyRPBb8FvMkZTQ8aatEnLkybX5MpT5hRziowzxUwxedqcYc6Q 8eYcc45MMOVNeZloKpmmMsn0Nn1kvuln+skCX/0HyAfmr2aQLDTDzDBZZB40 D8pHZowZI4vNU+Yp+dhMM6vlE1vIZ81RW81Wk4ytbxtIgW1kGwXGTrKTAhv2 Dp8NwlT7VPugSqpjqmNQNXVb6ragWur21O3BRaleqV5B9VSfVJ/g4lS/VL+g Ruqr9PDgkpzrctoGu3MePCkIMrmFcy83d+fenDvZvFKoQ6EuZn+hwYUeNkec cVk2y53tzrYnu3PcObawK+PK2FPcue5cW8SVd+Xtqe48d57Ncxe4C2xRd6G7 0BZzlV1le5qr5qrZ4q66q25PdzVcDVvC1XQ17RmulqtlS7rarrY909V1de1Z rr6rb//kGrgGNt81dA3t2a6Na2NLuQ6ugz3HdXKdbGnX2XW2ZVw3182WdXe6 O+257i53ly3n+rg+trzr5/rZCu5ud7c9zw12g+357l53r73A3e/utxXdcDfc XuhGupG2knvEPWIru8fcY7aKe9w9bqu6MW6MreaedE/ai9w4N85Wd+PdeHux m+gm2hpusptsL3FT3BRb0011U+2lbpqbZmu56W66/bOb4WbY2m6mm2nruFlu lq3rXnYv23ruNfeare/ecG/Yy9yb7k3bwL3l3rKXu7fd2/YK9657117p5rv5 tqH7wH1gG7kP3Yf2KveR+8he7T52H9vG7lP3qb3GfeY+s03cF+4Le61b5pbZ pu5L96Vt5r5yX9nm7mv3tb3OrXarbQv3jfvGXu/WuXX2Bved+87e6Ha6nbal 2+P22JvcPrfPtnIH3AF7szvkfrGtffK2pX4JlSsIjgRHfBUrCAp89UgZ//6D fZZin6XZZ5EpYUpIlillSkm2KWfKSY5t6KvbSal2qXaSm+qQ6iCFUp1SncSl Oqc6y8mpnqmeUjjVO9VbTkn1TfWVIi7f5cuprpQr5fd4aVdairqyrqwUc+Vc OTnNVXAVpLg7350vp7uKrqKUcJVcJf4dgKpS0l3kLpIz3cXuYjnLXeIukT+5 S92lku/+7P4sZ7s6ro6vVlp/z6H+lnZXuiuljLvF3SJlXXvXXs51HV1HKedu c7dJedfVdZUKrrvrLue5Hq6HnO96u95ygevr+kpF19/1lwvdIDdIKrkhbohU dsPcMKniHnQPSlU3wo2Qau5h97Bc5B51j0p1N9qNlovdE+4JqeHGurFyiXvK PSU13dPuabnUTXATfL2e5CbJn90z7hmp7Z51z0od95x7Tuq6593zUs+94F6Q +u5F96Jc5l5yL0kDN9vNlsvdq+5VucK97l6XK90cN0caur+5v0kjN9fNlavc O+4dudrNc/OkMfXvGupfE187F8m1vnYulqbuE189m7klvto2d5/7anudW+qr bQu33FfZ690KX2VvcCt9lb3RrfL3jJZujb9n3OTW+ntGK7fBbZCb+Q3+1m63 2y23uL1ur7Rx+91++Ys76A7Krcm7NH3lU41aW97nViq4JbjFqzsGHSUI3wrf EpM+lj4mNqt2Vm1fh/8z2edr4H+z77/Zl2RfCbKvgr7aCm5Pr/tvjv03x/5D ORakuvjX84WDUqaavSJsKSWlJn+/0b9jtJMu/vX7AP/KcqQ8LuNlqsyU1+Ud WShLZIWslU2yTfb5V/YSpIPc7P5is3tl986+m2Of7AEc+2bfw7Ff9l/9sbeX BnHsnT2YY5/sIRz7Zt/LsV/2ff7Yx9sN49g7+36OfbIf4Ng3+0GO/bJH+GNf bzeSY+/shzj2yX6YY9/sRzj2y37MH/t5u1Ece2eP5tgn+3GOfbOf4Ngve6AY 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 hYWLjZ1dXF1DI74DwBPaj46f22TQAx9zd3QxMNjeKYOtKwZVA6C/CBCYAxA4 pf2/BIDQl6EnQyfuKwLXqR2cRbVIIDC4FgT6iQCCtSCw5V+DwD85d8KP8E59 eYidTneXCRezDj8tb3qhXWdl9os+t2J6bU0qphbvShyQPSd3MXdgXN7M1513 pDWpUN2+k/mut42mSepU/abJJUWnNx4btKOJffsxNtqB9UWVqqrDExlzvzSq t/3oLLOVWp9M1yW88Y8emL3SZtK15wtybg1b9jLGuLBjWPbr5F/1xnmf6ryh Xfmr5vMGt7nyKPmBYU7mgAEaDcuphS+1ZTv6dyva93jjsOXnwk/53m1Z+tav sir39k5Kt1lvi5s/eS5dM6eV2mN4wz7ylV6DH7wfldRqd91Tj9pfXHO3d8v3 w488iArvd/JixqSfU23Ejy9dz4SbrW/T31fouLep8HJLWtMVHqX15iqXT40C 2UbvArxbVo13bKhLfWOi1tS/h7m+BD1Yjbn1p817Yx+B6xjIoOHVdUTD73Zq fPOL2kFsVI0LNr/hQrfYWAAHcFR0VHR4aEKkRevhCQNi46MTkgiYgQBzUTs7 q5u4OAOYOddsOkub/02c/WcItiG+Z0gdMWKvWUY/C4s2ixIDBrU0uRR78sTr JwO/LDTQun2racJE461OOc7Pqm7ub+NnfTEelTTuzk47vsbC592rAYWdO6bm 707qODSzA3Otst6trOFTi1cNazfu8oSSt7vfuC07FtL++tqiFrcbDlhovCI/ fljQa8P5pZWN58fnXErsaz6i/cTJHgZnhvWiocuk5m+IdrpWh/syN8H2bqJT 4A09sWfZudSwyhPH+nqpu2xvoFvaSiyOt9VqaHXE3a9FjnOLOadyPRSTQ/yC Uhra0c5bO172D394ziHsdfsWDwuV6INXbvbZXjPrBzwatcr3jVexe3OP7E0j QvINs1NPaM8Oar6vUKOv7PxXBOsDLRIsakrIoCs93JgWZVDUQq8fIokEVmaa cjn0wCmijkKjJjTRx3KanBjk77d9lHSWyrNqv/P1p6fdSe/XrEAdu7z5risO Yp1vH9Kj5Lw5iwLQcAhn2qLW32GZUJjSr1VQg4X36+l+trvDBqT1LF0mdqnG Mh+xg9g+p21O6ymefx3Lvh2Oh64tQRBBscBaKOYtAijXQjGPf0XISQOmbfVZ /4hfFEY9m7QcV99r7dPYVuudN8c8FZyGFPh8fNp3+PNOzRwuty3ivpx47KBe an0yuUv6eMvehS2cOu3IKwhafC9u57ZNZUmbfeI/tnzSetzxO7xh9In8xRYO n7guB4NOOdzzPbcr7mGBKk+WH3R72/SO3d+ktVn8+u3LF/em1HVtvi0o41WA 9WS7ZSmm8+7OZ8ze3PUrm5l7/JFu/i9+R03OzY5Psxs6ONO4zPRVwKX+J62q QsxO5c3c3WBDUnhQu7yup8ofL+0RdCOTat/Oqe+7a2supDgP+bwsTbf0afTD lXn2e4420hIiZy0qeZ/3Sae+RqTH/Nej6vruPHsn6NGZkQuMQo41Nuh7Y56Z zyyHPUWu7UxfaOkbo943GveyPJ1+ROPFZGGm/2BB169Fsq334vizbwcd3/cs bmn3ud3HzE/NMfGWBX8sXtqfTch3e+7gZHj0Qby7zrvY9c37p5R325DqYhBp Lky/oXUz4l3saa8L5w0fJx2UbzpfYX+r7vTsQrZCt0GrotLyOyvHee1k+nWI 7NfKb12bZ37PNyYmXWFdNQabjlfXvSsE3rifW3G/g1ZRRHpVFwPH5L205ai7 aa0bRB+YNzvtWOqVTMs1qpDFr/LWTBkwkY9x2Jk4EJktKHpjMPqDwUSb7VOL Ywo6qJ0yrt8b2uIyGhvW4ezpqce2GX0S4lP3LW2xlmoVUxWdueCuVoHWJvcu yksHWogpCgbw++VX/DYY4Erw2/S/gd+iu+gqAmI3dhElMeqsJpsQasPmfy/c /2fovSR30PpbJd5z7ZIHOta5s/vuvUOLulp3KTp9w8jPRvPF2RVnOxUliBba T5mLgWn6PvNN2sxdkx4i1r+GBj4avfvZNEbzoyBPfzXtZN0TLjY/Z71519/U /vPoh1PNnjz0W5q7zzrgeOqn9sUaZ/qsPbOujTyvfPmgef0vN7zuFbBuypn7 Db0cGxRO8f+pG18qs6+ImTNHHPLz255i1qexlxZufGS5cGzZOd23yq0Bg7tt aj9niTfy7RCl3cA2qmBh6XnFBN+88kkrtDvoaaQsmfT8p5FfcIZZF+VkpCV6 Pd9609pr50GHwCVrzUe2Vo84mXmr2cR5uaHUZjPV+s8fMzfg01YdA6vK6QP7 Lbiv6L0aWmTFP0LvHwbC36G3Vm30ll5cLk5IrwbfCXPECak/ht/c8GWhf3v3 TNFKKjLI9c3JL+o0rMc7Rtcx8v8Z1P9LoTu0tdbC6QdCZO3cbjzeVDSi5HRS 1854vWPC0F6Ded3Vp/eMnr3N8YJO3szBYdu6Uyf8LHS7LLoxqtXd7jvX9sgw vWOGpxTuHPlmxplnzfCLu3tms/TRVO+7rwL0b/ivnlv6MDXm4vh9D+a/UThN lj3+xc7GKq7iw+fSkYscVR+Zu3G7jPyyZg1k49O25TZZ3N/hUFfhSViIp0H6 DAvPu4yxc/lJtW+iukWjeO7ok7gWVZNZ3Vv72dBZry5vM3zqN2PcocaN+izd +3TXGK7N6AsB8ZYvxOM7R0aG9MKGrJ5w7ppe+vvm26N6bHRwelg+ecrJrkGP suLmDyps0unCh6S9q4xGhdm+zMu0dVWMMA471sJ8cN2UV9wR+53FbTfeL382 ZvO9ZQUJjbf5HRpqrVM/kWvebebQYK+2ers2blzXuf/RJW2qxidZjs/WF6Me tdHpY3w028ryTNvHjR7vfOd90v7CFefxnerbedv0DX4S9HL5zUVZx5vG7p7Q IEGh/SLRcm9myr4GgVvWx7SYlpsYumlIru7yvas6vNKJrZzuPGjDl1tdj860 Pha1O8vsZ50IqoXD2p6zt5Va3t+87nj4ppGB9IXWjl0K56/LH7l6Y86C4cZX 5/6sO9zKyblAOSSn18x6e3NeTjpueempuf+xjBc+tz/iyNhp3Jij0UcfDHmy YuFptW2VcKhXyJXOJrlXPjllezr+ZDDwmO7SSnWKHIawfAWFsQjD7b+nl388 bfLbJHLOhIOSXKvpvxoyNV97hhou4LctTi2ItY/qS2Lw6z/K1QBKCxanzZqu GDvbq4V1M8OxvInhzc1xYkStf+HVQWJgjt34hqgzikbhKB7FkknuKJSALFAg SkJxsNUf9odCbQBKyq0/3uZPB2tCUlxs//jQuAFJFr8jFXkKRqG7ZL79/Irc M1d/LnHv9qLgl5lb3095UvzI3/PMJePk9+NLLsbMHn+8cwfPVy7FJZX+8/o7 7o5zS6mKP9ypZMHD7LvN6aFZOnNOqdqc3NgrOH3nle3KTvMOzl74ZuO5foqD q08XbR+ZP+Gq7r2zTaYcPKrjWfy88/TCGU4bVOleO5U60XxMRZZwcIRG6SCX 0LxJB6fW6WnQ4OHrlSfsNZrovO88L+oFvleOg4yTFqwvXctaFZYPHFVquGig d1bvoz5NRtXT7GRq9O5Twiq3AxsNuu27v/rkfZ+24rCpe5943rNM0/HZHBNW dOT+1YeeCZd+KYy4vv/NzTt67KJc3mNBx87n57YMf/ko4Lyr0+bcFKqhmELZ /OYjhTqF0odd2qRXzvqvqYD/NewzEkhpMtZAAjlJciNmVhiBlsNlWA35wYNu 5oYWhmbGRiaGURgp0s7J8ennsH5nU9Ftfq8uvl3nP1MiBq28BqWVhfEnVj2O uejbeX+avqY665wMZsdVi9lMHDac+Ne+r/cDt81CXze983uc1Doe8E0sKlNq zV/X/Tz3sJPjc7enktp+qfP++3AZFR6XWLrwXewhZqVbFksjOfRcGmMWGCWG LJKp4e+QreP8djAsSODdyshd2b95lnWz1P1Zece2d+cqubYIrjM2Ukwb/2WH ZG6qXRMyi9vs9AIbjYWnoq9MLf0pdrFM2HBtudpWlTPmlWxyXdkv/lz6oy1k yth4YW6VrMv/CpcFE0w/B0r6TLSVuiZnWB57ZGeG8nor4ZZN+nEHJO9Xb7jC eOHSB8a45ZpJGueOrz2mn7nkQuyaFu0Xi92P5avofr1e8JrzpAMDAJgMvw8N CmVuZHN0cmVhbQ1lbmRvYmoNMzYgMCBvYmoNPDwvRmlsdGVyL0ZsYXRlRGVj b2RlL0xlbmd0aCAzNDUzNi9MZW5ndGgxIDEwMDAyND4+c3RyZWFtDQp4nOx9 CXxU1fX/uW+Z92bL7FuGZCYZEsgeErYAkoEsLCFsYUmUQAIJBASJAkoUFBQE gwqtWBW1YG2VWpUJuARcQGttXRBa61atIm51iVIXsNVkft/7JozY+rPx85Hf /8+nOTP3e88999z7zr3vvHPvnSQTYkTkBEgULq0aNyblQ8+7xM5tIPJPmzCt auzou96dQKQ2EQk3T6rKK1jy4KoQEfsDWs2YVjVuxonCoWOIDqN4c8OM0srq GaOa24iMEpFt67wl9c23bJyLtueE0WbbvAuXB8+7bdzFRIs+wgXnzm9esKR5 2KqXiWa9hvL+BfXLmslPeqJDx9ChdcHilvl7f7MqmWjpZKLxpU0NS1bOK59y I1EfpJE7mxrrG566/zYX+oaNNLgJggS9/BzK61Du27Rk+UrrVPfjsD1IpBt7 buMF50kTxF1Ejz4BWfXipfPq/7bpq78Q7d1KJOcvqV/ZrJug5+13on3wvPol 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 6Wl9Q6kpwUByUh9/os/rcbucDjv/pUUz/2sEVdHJkigwyi4LldcFI+l1ESk9 NHZsDi+H6iGoP0VQFwlCVP5tnUiwTlMLflszDM35/6IZjmmG45rMGhxBI3Ky g2WhYORgaSjYzs6eUg3+mtJQTTDSofGVGi+lawUzCikpaBEs8zaVBiOsLlgW Kb+wqbWsrhT9tRkNJaGSRkNONrUZjGCN4CLloeY2Vj6SaYxQXjasTSDVDKsi 40OlZZFxoVJuQkRMK6tviEyeUl1W6k9JqcnJjrCSeaG5EQqNjliyNBUq0S4T 0ZVEFO0ywYV8OLQp2JZ9oPXqdivNrcsyNYQa6mdVR8T6Gn4NW1ZkTKg0Mubi t7052e3sjmnVEX1JO6Np1XtpfHRN27g1paU1/Gr2kuoNp6r7xdYy78IgL7a2 bghGdkypPrU2hWNNDTrNya6YWp0Cq0NlVwf5MKZWayNAp8ybByO5jA8zNuDG UBmX1C0KRvSh0aGm1kV1uFmJrRGa2pKyO3F8eG/0CI0vC7ZOqw6lRIr9oZr6 0j5tTmqd2rJnXDg47ts1OdltVltsptsSLN2MyXwq0xiv0zhNnXOw+uRUM25R aBxcJBKcF4Ql1aGIkDaUQ+NQap03FGqgGoYZXYj5q2u1DuM3Qk6zhoKtXxAc IdTx0bcl9d0SXZr1C+Isd5e4y6H+JB/JyopkZnJPUUpwa2HZSK08KCf7wkhF qNkajFRgymhyNRrVDMvDlKek8Lu8qT1Mc1GIrJlSHSsHaa5/N4XzsmoiQh2v OXCyxjWd16w5WRNvXheCO9+nPdyuiJoef1usbkdZ07AIc39PdWOsHo9PWbBN ktNaJ1en17du8qfXtV5dg1tTjkextbU8FCxvrWutb4+umRsKWkOtbRUVrc1l dSeH1B49sMkfCV9d08QwqZHC2GxEHCXVol+oiXGCX6zpeX/70F/51TURa53W ZUVVqGLK2dXBsta67vvdLRkaK/l+582hsHFpAXv1ocmBJbdMDuwTglSn0u7A U3XtPJtTNypD5R+CBYVcTEYeO5+2I+1C2o/0BtInSFEkBevN+WRFmoN0GdLm bk2dVjOpu60o9AnnnxgcyD8RPjH5RPOJNSe2nNhx4sAJ1QrB0hOHT0h0wnoi H3VrTsh664m6E0LRpFHXCEbagrQDKYJ0AOkIkg6W8X9xUCckoj6R/8sCYDHS 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 yAndaMNm6Ha+unc5veqM8YXhqOiSYgbwdEc8KuZMAd2Afc3W4CxXzoOtd2VN wRE1qzPCd0PLMVrOz+ejsNFG/zRr9hB4dKDRn8Q7s9Gl8XzWOzvRe9Wy1U9a P+9ofgLjJ1swt7Xaun7txPV3HJ9z8F//uf/m0aNufjxR1DB48aS/n8ZX/ydO 7Dtk7fn6iPWHTcW3PgH8GYsPWB9DyP+z9VH+lbTdnsb8naANPtjXT8x+Q5V9 LtITor3hdFZrikfTFEkKeAL+Kq/X49GyI1RHkM/ndGrAAzN8zp1aG3hsb0Z9 CV/Bz+FX8CziI7zJ18Bmt+HPAX9GfCm9OZ/GnxVpu825TGNSGZIu55TSnU7O Z/sn2leBi1FxigBmBbMYMRQD+idmLMNZDAxhIbCMElAuG/RJT5O7lWkUnmJ2 Pr/P744yxaQIU+1KJSRyVhLvrpbp+3YOiQ4f+OHbrYnqqoo2PH7O3UPvW2Gt 4o6NO7HsmfczehTcPMOai/scurcouYDpN/DuMbOXw0pGd3zFSoA0e+Ge5lzU G0uaZPBxpoaZLtRpdcG6zOm9+AqmKji+F22HyiGlTGkOyWdwLCfnHQf9dgjl RQU/rTzrIM0Knq/gHEeM4cK9lEXKg0qLskc5qvC8Mkz5vcL4AGcpcpH/YsAM 5V7pDJwKkEAbnn44vMTNoIu4rePkIW/ulfR42OW5Urdp3gnzKm5JkbRWX5NP 6vUF+QTeXmHFrMD+Dj92+rF/a369LppAlU6K50WI7fTiND3VgTwRQHhnTDmr Xt+K95so5fOKwd3SZCBt4rhgVz79gxIJmy0WFX1pH75MI6zUU4lEZ1dMnxJE L0Hl57pLs0i/lHXnFxM7LW+jWpxqaKH7lGbhuWj0o2rlE1M3PD5o/olnmyq+ en3NO7PZx9Tm1Q0b+vc/fHDEXXPu+Y/Gc9ZP+BO9vmHcutnXTLn6ir7TH596 8Ivb31qjNT5YX1PVp0/fPnlXHFm+7NQsrNL4VAi45q92pucucwyScIk0W5oj tUosR6pYhghI5H7HgzPlwful+AkdKJCkmJKPoBI024aYEHFPIwIcphWRQQhJ Il36rYlb5yXS6PdL/cuuqg2sm1YpKWvBh627maPWPM6xb98v/6bYG6JPP5iR GyJmTGd1TXe95DxicLoz2yj3MjER218VQnTKTQgiNW4bfUv0m5hqdKAr9g0o 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 /7rqqW89VfXQr++8Y3Tf7XeM1m8zBbjbPfWrqX+b+h9Tv9J2S/sPn/nBs3// zPdtyTpVT12i026s2Rd1S2ie290/o6RzfvbiXLmUmjH7gkzWzcy4oNTstJTb dcO6rXtvwRiyJ+vcb3PbdvpWa5EhElklzzmvO81lx7z1qfjh9L69LWTt3Omq eVbXrGwxt7ir2K1Nt6zezNRGnNOTn/3WttCcuemmuWlt4855S9Vifm1p6exo 1RZuZ4v+rbUMv+nMih9v3A5qwy7Nw4f5VRv3fn7olbvXHlzWcuOu93/yxt3b b52qN33rxvPPver3D039durls/qP/yH14A+f/P7zzz39U51vNZ1vp+h8Mx5g 3+k/5Zped2OvbgV06lZAYdbinJsudc7Slm1LplMbtdqWnVlKtUw4O1vLthHQ 9vZGwFzzWr56XCv4j2TO7DntHU35jqa2bc7svN60Z7RxOyc3a7qNA5nT3dNc 7C7Oqjf1NM+su7ryabBKZnR5qS6vUzcUUzPf0gBw26AB0A6WSIP9f+fCD666 79gTX33vX6244fjnjgxuv/GWwfcdnqp7uTPOdZe6pX9yq1u2fPJ/r0l95Uc/ ePLbL7/wPSd6o711VlkP9rfuyx/Kewv6M80ptzn/z7nH3BucZvc9/Xn7arfp Iu8R1+nPj+Wey3mrrA/FV/oXt6U8/Xa32Tc8Ulmsr6xjyzRjPkJNGveZrDQQ M2LL2gCMfIjtzXcVW9NNZqFpL9Oabq43FZvKiXpOue666RIgMoOz9u0X29Q5 G3hV9p1XnpNe8pmx9ad94aQzT987efwn+v7kiV+msvr+lrqz+rc0l9OLZ5c7 F08u+EH5u50/9X7W9tPOX3r/1PbLztLMBa47f1mpsuD0Ep+/bv6kd4N3U+nG 7tu9e0v3dN+54HPel7of9h7rfrr0vQXfW/pS6ZcLfl/sLsyvVB5x1/dXi4XO YrFQrMxPnVyoFc4qnF+4rPCBwncLPym8Uci/T3+5qvCxwr2F44XMdm1WFHrS M2+5tsvtesT9Yn/Qc0F71ljarrGxT2qeedXF+pcji/aWs66TrWRHtfTSxtHS tLGjsaCvZ3NZU7J2zdnbesS96hrnIRh39Bsn40ydbJxW3nj1DV1nH39jPHGF 2xn3bMycHunrrjC9GlpX0yNvTlqCezSWxB0aZmhWZmFF3lqavOSS+qnzrvjy ZP/f3DNw9LzWI51fvOT9p86+4e+GV377C1Pfc8+YM7b/4vWrFnYvUudcvfGj Xzrr4Ej332xYefqCzuWnr7ti813/0Whu/ol/cZ9puluXw0f62ys9fk9/z6ae sZ5rdZPigZ6cbngd6Z9fKuePthYyzj+7T3QdTjW3tJXam3PFbGu57B5x/me7 kaLqX5gttRfbdzpZ45TyRDZtdipZX+fWpuzjNqfy+q29w5Tm0KXwpjHfwCaO 7GJryR1f2WdaWu7OxTONx+8SZRpcbVU7IktngG5xPtx5Btvw/oXDw0dvv73U IXs+c3/5jEs/7elmZnZ46hMfP370/J5F5t7qhjukl+ga8oP9J/VklmZqmcOl O0tNvf2tabcwo7PTWGm6imw9rA21zhldOzsnHFtN5grN+eadZf1axdVkZMEf M92JEcyLBqbH74px6Uu1LW73WuvpcqojKSpsVRmxghWuNUbN061au9T7grjx gr23sqPzt4eXrj3ttvsuumj0S0e9W49//cHRNRe852kv1Ka0a9bUSkl9FwW3 qX/5lqajZr6HrPGLK/YXTRdIdltqe/a21L3ZdF9xVXFj8ZLiA8XHi68Xs4+c OL8/hE6QQ9OdIIdwJ0im6fVCQZclV5keu2tyqZtzD+S81ty8nJf7prvJDr27 o7/Lca/qb/XmeWNe6lrvIc/TrXXP8x7TJziu17+8YkzDTdah6rmmjGO/GM8q 41WVLTddov+k8uavFzY96rbafpPIkJ1lu/9mdb9a/scea2N1mx7/d+g1MYbk +OXO+PwEIruXTD183zcr3R0Lv3PX1DfSS45/ePjSrQe9j9p88xwn/RWdb23u SP/OTzmfaronc7vp0Sjd13K0LZcv59p6yt26ydXR17Gq49qOxzt+1HGiI3t2 60vOy00vZ36SfSH3QunFllxnupzfkj+SPpJv8tJevrW8Jr0m/6H0h/LPp5/P 518tZ7KVR04s/Hq+paT/Vvp3p522ipP2vENmKjRdbJRbWu7NZzvz+Wwp39x8 qFjSxVPJ2K73pjOd6XQmf0tav0fptG4MNesWRMY8lbYW40hRyJabi3lj6KZL Lfk2J+3rJ76paGjI9v5CZVX+obzXl3f12/fe/nxf2V2l2/te2X7r99P9ujGX SutT/7byuMGr7nW2/TSr57jpz7h85/Gdl8/qeXVnmxDmf+OMEHkkvL1XI+xr C/vKxxp9xBv/RL0al4/r8munfUAz9eOxG9OjkXKLU7+7+0ax4sa7rl/Obz8y 9Zu7b5r/Vf247j32sjdy/K4f/L235w8veVc//OaP9HMrar2frp9b2Z3fv7G1 fV57X/uq9o3tQ0317L7mS4v1lj2tT7QXs+lMLt+Sb013ZNx0UyaTby42F4op neOtrWWde15zc7G13FoqF3I6U1OumYM33/pN9wxtc2bcM/pPaX7Cdb18oVw+ 5OQ7HSef8kqlQ8WUfjqpqD8kUzauVfoNeEwHbdZCX1xp/UMmU3TyrxWOFFOv eUec0mt9+oGM6Ufy1+XXnnPca2zvyHVOm7HdjM0adY5Y34PuX+jsfrUxexuz 1Omxp/XoJsRh03mSW9ny1MrDOb1jpoDQ2xx8azGzQZg+pJ26KSd0nRCsso06 ndNF911TLz3ykcXdi+ce/erU8+7ah7/e9wtvqTv1+3V8LfvDVPH4D91ztk/t 1AmdPfXeVKjzeaYWzGV9Pat61jet79jYs71pe8e+pnrHoaYrOw433910Z/Nd Hf/a/G+tbYebP9b6QvN/aXm5tekSXTc83vN6T9rR1YW3tnR96celVFfp/NKR Uqo9l8uXyqVCOVsqlFoLh/I5rf1cVudzW3tnW1u7boi09pdyhbZy2RS/zi1d OoM/5KS0bVPoam0vZ3MlZ8I15syMUttVTrlcvqacurn8QNlrLc+z+t7U31XK 6xKpMK8wVkhdW3io4EU9P+anZeXSJaXXSymn1F/apNPzQOkf9Nesb7+Ola4t PVfK5M05XmhS8rXuium7jQggFEZxUaT/dh+z3X3OquP/WD4WYxvz1Fri5nbU y2WeivEoMQ/l8p26Ej+py/KqalJWtWgrel+ZLew7ozMrph6+/xsL5vYsfOy2 qYdXv+filadM7f1iecnSls+mlx6/e+JDVx/0LvvD0z/+xLtsDa3fh0X6ObU4 3+3fk/dyuXO8s3Mf8z6WyyzNLc5fmLukfMg7lHvGeyb3ovdi7tfer3K/936f a/FyhcIh0+Wn66JSIZfxnmg6qt+E0hOFoy2OGeRWyOSOlHW2jOn8SUf5c4nN oUzJWNzLM0eMnG1jeRM0iLNRUyVlusS8/Kg2dn7jpEJnqrX8O5uD2pDUJcsx 2z9qfDR/of/9rzY7liQZYH25UG5moXFfcLOBmD9jvrfs4rOnPuU9PbX0fbsv cI/emsplbr3i+Ps/kL9XX7/zxLHUgabnncB5tV9eOPNCf9/Mff4H/Jv8+/y/ nvnIzPzW7J7swezhbLorl+stzF3kLXZv87xlc1fc3HcHH17mar0s+3pLYXj2 Iy7rX9Tytx1fmttsPLab1MIlS+fOnd/rebWmcrnvuyu+rWuKI7p99oi3uH9+ 7+LFvU0fnv+U+vDSB+/v/U2v19rb17ux9+Lea3rv7/15b7b3UbfiVI0V/aYh 7KLP9Pi98aouKvU7bN/3tsioaTMl6huGsx5bdfyNaEQ/2DzR0DchTz5FnKI+ 78iT+fTQNzNd5YyFdqxbYGaV0CaDMYa0SRiNMj7JeBydpO2iJdFI1On+GXeN 6/26vG7DarV228fFygH/A+csWNS95fzZixd8+GB4/p7SZ/7qlBfuP/KfZh4t ffC9F16dOvm25adsf3Kwq+fk2uf6c5l5lUz+/V8Jn/nIGatu+9oFj7/ynUdn f+DwjZeNmhE86ROvpV/ST6Kk271V5/H+rqWLTlpyN7tD/Hv2OfH56qPzc+tz y29e9oib/w99O5Y+4m7ob27Z4bi9N897Ue1YYL73du3INvfumLd8x7zxZb+d tSN1Tsh3LH66fUdhfe3aq6OxqMd/F41F/d0xO62K/nr8WLQFv8i5TUu6F3cu mbOkvLi4ZGZm1rPujFz7s85cV++1lvReT7rrWacjrzezvZZn3bZmvXnLsDRD lStOW6eXXqj/yPZFMxfo5kvZ5nOgyictSc2EPtfgbZ1fo27WHfzq1Cufnvr9 1H1fded++r/e/cnP3vHsz+7R26bBnn+3/+OP/t3te2+bvatn4F07rz544dnj Tc9PrZz6z89Pffpb7pNu30/cXd/64FPfeHPqt499+amH33RbH/vK8fKi6275 b88999LVY3PP3fDZ+++6Z8gx6wdFn0t1i8J+3Fv05wWv0342eJd7R70nUvNS Q6kX0x9Nv9F0U4Zn6tlTsz/OZXJb4PNc/kThY81B8w+LG4p3F4+Vril9vyWt Px9t+Vbrg61T5fHyP7Rd2d7T/kbHGR0Pdp40Y6X+fLbx01WfmZl5uHtW9509 hZ5XZq2edd2sF2fvmn3zHD7nyJzX5t7YO7v3pnnb5j1ZWVL5zvxPL9i8cMnC z/3//Sy6NPksXvCXz18+f/n85dP4cex8Ut5WvR1wr3Uyznd1jbXoxIN6Wz3x it6u1NtObU3c4CxyUvr4In3c7Id2e9qJJ/V2pd3frs9c5Fxktzv09mSn9cRZ ettmtybOPh3Dk3prYuizMfTpGMx2pd3u0L8Kfc4rett64mS9bbPbRfpXZdOj dCizPc1uTdqq9vyqvVbVKeurVO0Vq85cu+21WxND1eH2zLX2yFl2e7bdnnvi Zb3dbPe36TRUnfNPXK63F9r9i2ycO/Q21FfZo7dlu99m9+fqc0J9FbM1Vwl1 /GZ7tj3nXH3FUMds9rfZcy60W3Onp+nYHtTbsj7nNB2b2Z9r93vtdpE9Z63d nm2PmDkST9Oxmf1tdnuh3e448S/OSpsPK22+rdRx7tHbNrs/V8e8Usd5VG9N ClfaFK7UcZpzztXxr9Rxmv0t9vhWu3+hDbVdb9c763XM22xqt9l0btf7N+ht m95eZI9fZI/vsMd32OOOw7zN06uMKCde1MW0UxXse07WORP2U87s6eNpdE6T 3t8E+xndBt0B+1lnp7MX9nNOt3MN7Oe13f8U7Jfcbc4vzMoy6ZS+VtE7ze43 2en0z7H7GXv8Iruftcf32P2c3T9o9/M6pku9j8C+63R7r8O+57SkCrCfcoLp 42l0TpPTnVoC+xmnK/Uu2M86j6W2wn7O8VMfhv28c2a6BfYL6TfTm2C/5H0p fy7sl/Uvz8F+m07/m3a/gO6x2aS/+Xd2v4iOt5j9YsbuG6fqlmKX3e/Q++3F RXa/E50/w+ZDtN+FjvfYsIHdn23OgTjnonPmof1F9vy1dv9Uu7/Z7OdQmnMo /iI6XoT0f7HCfT+obN03VNkwOjI6eeXYUGXN6PjY6PjAZH10ZEVl9fBwZXN9 777JicrmoYmh8YNDgytWj9cHhivnDYyPj16hj+49MDwwXjnNxnT+0PiEDlfh K0TVnhadFYWoT1QGKpPjA4ND+wfGL6uM7nnH61bqI5VJ/du2kfrk0GBly+TA 5JAOPDLYNzpeGdW/jFd2jx4YmRyvD02s2Dy6S59+Xn33vtHhgYnllU0D+vju +kBly8CBkUGdoO2jByr7B66sHJgY0rHqVOwZHZmsTI5WBusTY8P6Bx1xZWy8 rg/u1r8M6b8DE5WxofH99Ulz+V1X2sQM13cPjZgo9A8mjnF7dGx8dPDA7kmT 4iv26TSgK+i/9ZHdwwcGdZ5V4kSMjgxfWVlaP7kytH+XjhudPfInr25PH6yP 7K2MD02YGzT5lFwgyjGI63R7R0vr+iqTQ/tNpo7X9VUHR68YGR4dGGzMhIHo 1nWWTuft6IHJsQOTlcGhg/qWzTn7hobHGnNohXOeM+qMO/udATvz8ZX62y7n SrfkDOk2wojza/0v+X2LM6n/jjiDejvuDKbuSX0t9a3U4/rfo6nHUl92vqgb 9lw37X3dsq44W519OpaKs0HHYGKZ1LGP2SNrbJxjdjugj9ftGSv0L6vtbMEV Z7M+ZuYOnnQm7Lch/XdIn31Qbwf1mav1ft2mqaLvwKRmXMdxBZy71zmgfzFH K7oGSNJ0vo1jAq5njq/QNWgVxYbjwteo23QM6H+TNs2DOqb99tzL9LFRZ8// xf2aWEdsjFG4bfqbmX/b3GEF8nrS3nkFcr3PxlCxce+z91JxdutvB/Svkza1 5uwVOg/MU4xiP0//3a3PHrU5MuEst7NyDsD5u+0dmqsN2FgGIYfefg9rbdqv sLHu1d836nveY2MwvzJdb9dsfppnGKVqxKZ+//R9j+u4Kjpucy8Tdm/IpsHk 3aBNuXnmIzaFOO/juAbstU3I/TZGc919OtX7bYzmCU3as/fZaw3ovUm4woTN 89027KT9fcTGMmAVHz+/OqhtzMZtUrTbpmrCXi15ChWbjyb9B+zVYnUkqYqf q8lR8/0KG/c+9KzNuaM2ruja8fHoGU1CjuwGpU287bxJHeeQzRXzzKO4d8OR AzanVyBFjtr3Ztzm5zBoeMhqYD+EiePfbUMfhGvW4T7Nb5OgtzgP9th3bBiO Jrlah7wdhfuo2/MP2G/xMz3VfrvShn4nReyxTzDSs7mTIVsKmdgiVUTxjer3 L35Dorw3dxDdD363Bu2V99qjUfgr9C91eH7mnGH93CN9jOrtXv3bQcjpKIY4 PVEpMAzKqNgc3A13X7dPbNieM2bfm0iJIzbkirfouj6tqYr+9RA8lf02LUaV B+FdjEqM4elU7LffEt3G72iSY413txuuscvGcMDm8mCDKoecy/XxOF+NqndP 398eKHMmIY3RU5q0aYpKguiJm7RHb/oklDLRezQBCkvKvejX/fZ5DDhX2fBR qk28u+2vicqiqw/a3Bqz78eV03cRX9uEv8L+PmBzYhyuYd6eKBcnbfg4xXHs Y1ZB+205F6dthbbdTYkapRBfa9LmaZwn0VsTqeWtqcPx1+HMpESMvg9AWRPr enK65N9l40hKhDq82XEqohCNzyY6N7qfQfsEJ6dzB2vhj91DHd51o1IzU/8g 1LGVt+WECREpb6k+/2T7xPZbXQ2+Y9wj/w/3nsQ+OP3sIk3FtVfy3N5+B7h+ bUzX6egZmTuJ7uWttVX8lg1aa8Dc+ahV1J9SwkDDUx+C2vqtdfaoLaPGoKQy qT04XZNG8cQl0p/SELbdBqxO4u//3dpyQw223VCD9Wbtt3RvmqXfk353+gy9 Da3tc9Deoan5V1s76AC8u9OLdZ446R1XF0mZIXROp+OeOOGkSmvXnXXxu8/d vunsyoK9w1eO7fMXVNavrfiVrds3raucuXrLusq689ZGZ7ztXGbPZaRzuT2X k84V9lxR2Xbe+jUb1647f/W529ZtqSzYtsz3ub/c/Fmtk0mJSdqYZBxTRQhS MGWDqSSYJAULbLAgCaZIwao2WDUJFpCC1WywWhKsSgoW2mBhEqxGe9aRMJif BAxpAUElbDqgJKorkgzjSUCa1FikHyaSgDTdsUguLNGLpOmFRYJhiWIkTTEs kgwL/qjW10ZaX0vTOot0xBIhSZqQWKQklkhJ0qTEIi2xREySJiYeiYknYpI0 MfFITDwRk6KJiUP5k4hJEcutSEw8EZOiiYlHYuKJmBRNTDwSE0/EpGhi4pGY eFIAKVoBxCPl8EQ5iqYcHimHJ8pRNOXwSDk8UY6iKUdEyhH+H3thxJnmhRHV dbQXRkRiEomYApqYRCQmkYgpoIlJQM2WiCkg1oiRmEQipoAmJhGJSSRiCmhi EpGYRCKmgCYmEYlJJGIKaGISkZhEIqaAJiYRiUkkYgpoYpKRmGRSDAW0YkhG ypGJcqo05chIOTJRTpWmHBkpRybKqdKUI8EESpRTpSlHRsqRiXKqNOXISDky UU6VphwZKUcmyqnSlCMj5chEOVWacmSkHJkop0pTjoqUoxLlVGnKUZFyVKKc Gk05KlKOSpRToylHRcpRiXJqNOWoSDkqUU6NaD2D+Zwop0ZTjoqUoxLl1GjK UZFyVKKcGk05KlKOSpRToylHRcpRiXJqNOUEkXKCRDk1mnKCSDlBopyQppwg Uk6QKCekKSeIlBMkyglpygki5QSJckKacoJIOUGinJDY8oKmV6KckKacIFJO kCgnpCkniJQTJMoJacoJIuUEiXJCmnKqkXKqiXJCmnKqkXKqiXKYT5NONZJO laOQNO1UI+1UBQpJE081Ek9VopA09VQj9VQVCkmTTzWSTzVAIYltd2i8V1FI moCqkYCqNRSSpqBqpKBqiELSJFSLJFTzUUiahmqRhmpIQ4ymoVqkoRrSEKNp qBZpqIY0xGgaqkUaqiENMZqGapGGakhDjKahWqShGtIQo2moFmmohjTEiAgI GBDSEKNpqBZpqIY0xGgaCiMNhUhDjKahMNJQiDTEaRoKIw2FSEOcpqEw0lCI NMRpGgojDYVIQ5ymoTDSUIg0xGkaCiMNhUhDnKahMNJQiDTEaRoKIw2FSEPE KjAElIg0RKwDdf0DNBGpiFib6RoIwiY64sRaSddBEJajsNTrAlb0Ey1xYtmg 6yEIm6iJE7WvayIIq1BYmip0XQRhAxSWmmbgiX4VhSUSRR+Qol9DYamgGaii H6KwRF3FlBphas6pnDoG1UhXgqirmFUjWM2JfQ0sxtWIV3NBBNYxsUbImhM7 K1gMrRG15sQeCxZza4Z0Rex/YDGnRqCaE7s8WIyqEavm1A6MmFYjXM2pfRgA rBki1pzaGwHMmiFozan9CjzuA0G6onZmALlmCF1zarcEwGuG6DWn9iYAv2YI YHNJ1BUgbIYYNicSfgYUmyGMzYndCgxANkMkmxM7CBiwbIZgNif2ETDA2Uwg HEAuoIFfMwSwGZGYMUDYDDFsRmTRTMT9a8ioIuJoBiCbIZLNiJiXActmCGbX yDUS8GyGgDYjgjAGSJsJXBNSbxiUhbA2I4JUBmCbIbLNiISaAdtmCG7XJPWG gW8zBLgZkVMyQNxMYmURi2ig3Axh7lqNyCqYjHtvkbSIaIUB7GaIdnNiG4wB 72YIeNeq1EoYmDdD0JsR4TUD7M0Q99a5Rb0waEtigkmEHgzwN0P8mxG7hxgQ cKawtohFLUBwhil4lchbGIBwhkl4ldiMZADDGabhVWK7l6nYPYCaRaAoDMKr 1D55YOFMYUURXyHA4QzxcEYk6QyIOMNIXFIDAxVnCItzQUw0gHEWYPuK+N4D G2cIjjMiHWeAx1mAq0FqWJATQuSM2KHHAJIzRMl1eUPNrNjhJJGWJIJZBqyc IVheq1INDuDlLMBdLUSEyICZMwTNGbHjlAE2Z4ibM2InDwNyzhA6r5F1CfCc YXpO7EBhgM8Z5ufEHg0GAJ0hgs6J9JMBQmeIoQtq+wogOkMUXVDbV9XYdwlJ ixMxMQOSzhBK14GpOQ3SQjS9RkYzwNNZrcF8JyYbkDqrYXFRjQ6g6gxhdR2Y KGsA66yGW4bUsKAuxNbDgGrQAl1nCK9zaqUIfJ0hwC6ohQ8QdpYg9sRtiPtS Ltd/uOEhtNhifzmkN0F0q2EA3lkN643aTAX2zkKsN2r7GPA7Q/w9kJzosMUA wTPE4E1oYtkAGJ6F2AuBCjGBxLMQ215UqgcwnoW40Ujs6mDA4xkC8jrZxJIF kDwLcZlG9X0FKs8asDxRYmHslomABLGO537smYnBPNFvEcA8bwDz1LDgn9kA 5omunQDmOQbzxJYMBzDPMZgnNig4gHmOwTyxC5cDmOcYzBObbhzAPMdgnlhX cgDzHIN5YlXJAcxzDOaJFhwHMM8xmCe+hZzFTr9IV8SmFwcwzzGYJ1aTHMA8 R2BeUHUFYJ4jME+1djmAeY7AfJXYIcABzHME5qtE448DmOcIzFeJnTYcwDxH YJ5aRHMA8xyBeWp7hsee5Bxb98T3KHYmR2C+Suy04dP+5MiTk9hZxGOXcgTm q9T3N/YqR2BeEA1OHjuWIzAviJUZj33LOR7dQg0LukJgXlB94WMPcwTmBZEW 8djJnOPBLsQ0A5jnAhMuYr0AXJ4LXA8S3yPg8lzgDh/iuyDioQqoHqRqA7g8 R1yeU58RcHkucAc1NZ9BVwJ3+BDfX8DyXGAeQb4wCEvgipBYuAOX55jLEz1V OXB5jrg8Izodc8DyHGN5ot8xByzPMZYnep5ywPIcYXlGdHflMh4Gg6k8UdBA 5Tmi8jVBHdMCWJ4jLM+JOJIDleeIynMiM+JA5Tmi8oJq2QGU5wjKC+oAJ2Dy HDF5QR3jBEyeIybPib2BHJg8R0yeE3sDOSB5jpA8J/YVcSDyHBF5Tuwc4yoe YoVKLOKwCA5wniM4z4gDHDiweY7ZPNGpngOb5wp3UVPzCnSlcBc1Ma8AzXOM 5onjpDigeY7RPBGRc0DzHKF5TuzH4IDmOULznMiLOaB5jtA8J6J5DmieIzTP if2mPIhH7+Hyippm0FWAyytqmkFXCMxzqiaBy3PE5QW1tQFcniMuL4judBy4 PEdcXlBbdYDlOcLygtoSBSzPEZYX1JYoYHlexZY7URuA5TnG8kQHBA5YnmMs T/Qw4dV4YCiy3ImueByoPEdUXlBbkwDlOYLygugixoHJc8TkBdE1jQOS5wjJ C6r1DUSeIyIviC5iHIA8R0BeEF21OAB5joC8ILpbceDxvIanOqDmM+gK83hi JwIHHs9ruEVIvd94zDHSFdUmBPjOa9i+It4vsHceYvuKOtoZdIXQu6C2JgG8 cwTeBdFjigN25wi7C6p9BdSdI+ouqPYVQHeOoLsgerVwYO48xP081DSDrhBy F9QGEhB3HmLSQHz3w3g4OxrURWxMCj8e0Y7GdRHrBQHEXSDiHhI9jwQQd4GI e0gsNwQQd4GIe0h0uRBA3AUi7iGx/0sAcReIuIfUgfBA3AUi7iF1LDwQd+Hj YYLEUe1A3IXf0DtNzWgY2u7j3kIidxPA3AVi7jWquSJYPDkC6p0WxDaDAOou EHWvKaLvgwDsLhB214GJTxm4u0DcXQcmPmYA7wKBdx2Y+KiAvAuGRy8TR9II QO8CoXcdmDj9AbB3gdh7LSA6EgiA7wLB91qVOAxAAH0XiL7XqtRCBPC7QPi9 ViMO5BE8noIDKSykTqYBAF4gAF8Lib4EAgi8QAS+FlK1DQheIASvAxO1DQxe IAYfSmLTVACEFwjC68DEFwMovEAUXpf31MCgMIThdWBibRHP94I4vK4tiPcc T/CCQLwOTHzO8SQviMSHitglLaYnehE4MPWeQWGIxYeK+j7HE74gGB8qYntP xJO+CDyOntj1KOKJXxCODxW1roonf0E4XgcmvhjxBDCIx+vAxHsGIC8QkNeB iWUYEHmBiLwOTHxUgOSFxAojNikEMHkhscKokyjJeDohrDBq5Q5UXkisMOrM SUDlhcQKo86eBFheSKww8gxKoDCJFUY1HgHMC4kVRrUegcwLhRVGnU0J0LxQ WGFU2xPYvFBYYdRZlQDOC4UVRmw9CqDzQmGFEZuPQsWTVmGFEdmvAD4vFFYY Ef4KAPRCYYVRq1gg9EJhhRG7FQQgeqGwwqj1MzB6EWCFETslBEB6gWeWUVRr CCi9wLPLKGJTXwCmF3iGGUVs6wvg9ALPMqOIjX0BoF7gmWYUsbUvgnhqNNyS pFoGgOpFw4wzxP5BAaxe4FlnAqpZAbBe4JlnAqLvlwBaL/DsM+Q2BuB6gXC9 DkwUCfB6gXi9Dky8ZwD2AgF7HZgoEiD2oopdnanWECB7UcWogsh0BTB7UcUK I3YEi2o8AR9WGNUyAGovqlhh1ModsL2oYoVRawzg9qKGFUYtwwDcixpWGLWN AeRe1LDCiL4RAtC9QOg+rBL9DASwe4Gd6atERwMB8F4geK8DU+8ZFIbofVil tqsA3wuE73VgorZr8TSPSGE1agMFAL6o4dmziD1SAgi+QARfByY+Z0D4AiH8 sEb0UhTA8AVi+Dow8Z4B4gsE8XVg4osBFF9gik/0bxZA8QWm+ET/ZgEUX2CK T85qkFej4zxRm4DxRYhxK3G6BRHGM4niMYzEVqj049lE8YhrorEtgeRLTPID ojOqBJQvMcoPiBkmgeVLzPIDYoZJgPnSbxgNRJxEFWi+xDS/ShyoIAHnS+xA T2x4S8D5EjvQE9vdEnC+xA70xIagBJovsQM9sR0oAeZL7EBPbAZKFk9Xi91w iPcLKF9iB3rqRLBA8iWe2YY6FyyAfIlntqFOBwscX+KZbagzwgLGl3hmG2KT RALFl3hmG+rLABBf4pltiIRVAsOXeGYboj+qBIQv8cw2RCNCAsGXeGYbot0k eTwTMtIV0S9UAr+XeGYb4qhtCfhe4pltiHaPBHov8cw2RHgvAd5LPLMN0WSS wO4lntmG2C0lAd1LPLMNEYFLIPcSz2xD7JSSAO4lAvecOBuHBG4vsQM9cXY4 CdheImwviG1zKeJJtvGAH+r83KArgQ0toq6A2UuBDS2irgDZS4TsBZEISCD2 EhF7QZwNTwKwlwjYC+IAJwm8XgrsNkjM53jOdondBqlToYOuJHYbJL5H8czt ErsNEt+jePJ2xOoFcfCrnJ6/HbsNUq8LupJ4ND/xGcWzuEs8mp/6jEBXiNML IjeR8Vzu2H2eagfH07lj93liK0sCpJfYfZ7YyJLA6KXCboPE+wVELxV2G6TO 0A+6UthtkPjuA6CXCrsNEt99FS8NgHRFBEwS8LxUeCAZ9bqgK0TnBZFNSYDz EsF5Qex3ksDmJWLzgtjtJAHNS4TmBbHXSQKZlwF2G6QuwgC6CrDbIFHPwOUl 4vKCusAFYHmJsLygrnEBVF4G2G2Qms/xqhPYbZCaz6CrALsNUvMZdIWQvKC2 cYDIS+w+T3S9lwDkJQLyigh2JPB4iXi8IoIdCTheIhxPdWyQQOMlovGKam8A jJcIxiuqvQEsXiIWr6j2BqB4iVE81TarxguaoAHVNXJmgbAQideBqbkFykIk vlqjZheQeIlIvA5MzC8g8RKReB2Y+BIDiZeIxOvAxNwGEi8Ria+GxOGgEki8 RCReB6ZeGfRVa5hjhPiogMTLGp5jhOi8IoHES0Tia1SPdlmLl81BqFRS26RA 4iWex0YRp3uSQOIlnsdGEQdaSCDxEpF4HZgoTyDxMsSeqVRbDUi8pLb5Ab6T 8xSAu0TAPaS2XQG4yxCXU9RMARUh4B5S267A2yXi7SGxO1uG8fJLqDeHOMGG 8uMVmFBnDrH+UwDbFYbtxGJZAWtXmLUTC1YFqF1h1E4sVxWQdoVJO7FYVQDa FQbtxFJVAWdX2G2eOExPAWdX2G2e2GZWwNkV4uwh0WVAAWdXPh6OQXy+wNkV 4uwhsShXLF7cC+mKOAGDAs6uEGenVl4KOLtCnJ1adyng7Apx9pDYG6uAsyvE 2UMi11DA2RXi7CGRayjg7Apx9pDYCayAsyvE2UPisEQFnF0hzh4SOzUVcHaF OHtI5CkKOLvieJgPURs8XjcO6Yq6CjJwdoU4e0hkIgo4u0KcPSQO4VTA2RXi 7CFxCKcCzq6wkzxxBksFnF1hH3miSaOAs6sGF3nq0n6gqwYPeerqfqCrBgd5 ojaAs6sG/3iiNoCzK+weT3RvUiJekhAPHyNqAzi7ws7xxGGnCji7avCNJz4j 4OyqwTWe+oxAVw2e8dRnBLpqcIynPiPQVYNfPPEZAWdXjW7xxLCgqwaveOLz Bc6uGpziic8XOLtq8IknvvsyXu0Su5MS333g7Ap7xBPZogLOrrBDPJEtKuDs SjZ4+hHDgq6wOzzRJ0ABZ1fYG57o5qfilVOxMzzRL1zFi6diX3gil1Tx+qnY FZ7IJVW8hCr2hCdySRWvoood4YlcUk0vpIodZIjvb7yWKp6mxqcaZ/F6qnie Gp9qncVrquJJ5H2qeRavq4pQuw5M1BawdoVYuw5MFBfAdoVgO/OJvWUKaLvC 88j7VPMOcLvCE8n7VPsOeLvCM8n7VAMPgLtCwF0Hpi7WG6/WixVGNQ8BuasA K4xqHwJzVwFWGNXIA+iu8FzyPtXKA+qu8GTyPtXMA+yuGhZipdp5wN1Vw1qs VEMPwLtqWI6VaukBeVcNK7JSTT1A76pxUVbqqs6gsIZ1WamGYjVeExorjGop AnxXDauzErtWFcB31bBAK7FvVQF8Vw1rtFKNVIDvCi/T6lOtVIDvCq/U6lPN VIDvCi/W6lPtVIDvCq/X6lMNVYDvCi/Z6lMtVYDvCq/a6lNNVYDvCi/c6lNt 1Vq88jhWGNVYBfiu8PKtPtVaBfiu8AquPrEbXQF8V3gRV59q6wJ8V3gdV59q 7AJ8V3gpV5/Yk66AxCu8mqtP7EpXgOUVXtDVp9rZwOUVXtPVJzruKgDzCi/r 6lOtdCDzCk8h71PN9DBe3x4rjGinB368xj1WGNFQDwDOBz5WGNFSD4DOBz5W GNFUDwDPBz5WGNFWD4DPBz5WGNFYDwDQBz5WGNGLIABCH/hYYURX6QAQfeBj hRF9pQNg9IGPFUZ0lg4A0gc+VhjRWzoASh8wrDDi+M0AMH3AsMKIUy0GwOkD hhVGnGsxAFAfMKwwosdHAKQ+YFhhRBfxAFB9wLDCiD7iAbD6gGGFEce4BQDr A4YVRhzjFgCtDxhWGNE9PQBcHzCsMKJ/egC8PsATy/tEB/UAgH3AscKIHuoB EPuAY4URXdQDQPYBxwoj9lcHwOwDjhVG7LwOANoHHCuM6KUeALUPOFYY0U09 AGwfcKwwop96ANw+4FhhREf1AMB9wLHCiJ7qAZD7AE8xz4jd/QGg+wCv/cqI /f0BsPsAL/7KiB3+AcD7AK/+yogeUQHQ+wAv/8qIXf4B4PsA4XvGiH3+AfD7 AK//yohObwEA/AABfMaIHgMBEPwArwDLiI5cASD8AE81z4j+BgEw/ADPNc+I DgcBQPwATzbPiB4HAVD8AM82z4guBwFg/ABPN8+IPgcBcPwAzzfPiE7+AYD8 QGKFET0WAiD5gcQKI7odBIDyA7wOLCP6HQTA8gOJFUa09AOA+YHECqNa+kDz A0Tza9TFBgPA+QHC+TVJbSYAzw8wzyc2YgPg+QGRTwTA8AMikgiA2wdEChEA qw+I4CEAPB9gPP/nG7MHRup+vE5PgOC8+vPYNQoKQkFoXv35Xvko6OooKALz 6s/z2ijomRAU+SoTaW0AVD54B8Tw7s3r1168adO6DRXulzZtXrdl3XlbV29d v/G86GCVlzZt2rhlvTmy/rx3RweZlKU1G1ZvuvisjZs3rN5aYRW/4jccEfqY NFcplZzp/1z7MX+d2f36b2d0eHbNv362zORP+cjZH/nXkpv1Hrh+9mJ9aL7n uqzZz2ealrWkvFlNjj+QKSzLuGn3+qrnph/Y4r/XX46OzPls77VznJX2s9HZ 5Uw4o86wM+RM6n/vMh9/Poos3fngbx/ar9b8rHz7g7ed88uHJmfc9qR684Hr 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 PDwvRmlsdGVyL0ZsYXRlRGVjb2RlL0xlbmd0aCAzMTI5Ny9MZW5ndGgxIDk2 MzEyPj5zdHJlYW0NCnic7H0LeFTVufa31p49e88tM5O5ZTKQmWQkhlyBAOES yQAJCAG5h0QSknDRoCKBJASoUi8oJWiNFopgq1Q9CJ6jDIniREXQaqVWKvVS aa2CKFqrKdoi2irZ/7t2hgR72p76nz48z8+fb89+97fW+tba6/Lub621MwzE iMgNMFCkeNakiTVvbykhVvk6UWDRlNmzLl2TPO19ItVKxO+ZNitvyNJ9qx8g YgeRq2z2rEllX+SPmEj0bD3RPYvKiqeWl42t30Nk3knk3LRwaW39D5If+TXR 5SiDPbxwZWNoh3LPdKIl24lk9xX1Vy49du8LS4kqW1GBl6+sbainAJlQXg3K d1x5zeorYqffnE907WNEI4/XLVq66trnDsWI+hUSjdlZt7h20c+btuN+bArs h9chIiFLyUB4HcIX1S1tXPXzF11tqHsI9/vD1YtXXEsfnxlG9Ajqz355zbKF tXMWLv4T0c67kT5oae2qemWYugNpqD+Frq1duvjSBtdJot1Id+6oX9bQqIWm LkT9IiK9fsXi+nJ7WwpRbSX6aDyJvuTzY2rao7Oq7YWfU0AlIQ8EY/vE9cDv xlzWNenMbYqmLiBOFt1eCK7KdV2XoYyrkX5Q0fgkWkTnynxhw7fQEJL0MCcH 5RFqYZiM++pl8BOsFamqvE3OpzD9QL8u4xa6gieqMrcYjZxzMzcg83rcqafo 2VPHh1B6iB6RX+uay1zKDLYb3XXf0Tf1Yl+j7Pj17FnNZ9Nb9C8IbAfyPJqK ay17TXtY2kHNOP+Cc6FIx3Uqzqaz9tCvx7kc9jX/qExDjXbUUEOTDE/T3Tgn Q59i4DRFDtAD8XvWdNtRKcoaLzfD5mmagfRtIp+e9jRNg96MfL+Cfr+IMw6m V+P5XvhnbUKZk3GOkC6l+biW45yLe4p2ZIt41oQxOtv+JsrG/Yfr9jtoprRD Oyns0ScifwT5RBlLoK/rKf/Sf6Vn+6RP+qRP/t3CtzBdeiJYPCyieuJNNhHn oRQ9OQWpTi+AvL2ZkkQKJnJ3CjsrJCb2PumT/1uRSNKJJEsS4+BTkvyJ5QB9 qWpYzJi1M6CXQDNZgBayAq1kA9p0TKAEoJ0c2tdYOwl0klP7ihIpEbqLXEA3 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 OJL7pSSDT/aqybaWhBi7JmIxNznlQPKpfmRNjmkHIm6Mp9fj9BuSZINi48m2 +xMSkmNsXsRG/d4JBJTGGnfUzd0Y6ojpYmI3oJM4dfBV1F9/uJd3jsx73wHo RBck+nCOxPDjSSjqPPM++oSyxAOWoHeGeLiqqrKoKl/0xhimM8CoXDyGdfPD iCNVWRiaXfTV1obVM2evDdzp/dWmB56ZO/zrfSN4cv+n11Z/vqljwZIN378v +aXfHn9o862zT+1dtQP1mYrea4UHEz+F9ctI9m3W+6y7rfushq2GrfI2a8xq MIqfd7HgKYIqC25Y3UK32myiw9ySAY+WwSrJGQZZsZ1Sd3PGY+yNSLJZ8MUm cWaxGuCEZdVkJYei2EEHvibiNQX5NEzBu/l+/go/yk9yNShy8tVtCSCK4/SK 5VlrhLt2jswTWw9f3P/B81SJLsoqpJE6V9Zf//z63KSsbjekOAoLxSkeHwJ7 UgtYvpSvhC1YDrEvIl3eIP/Jmu27Ag9HRtR1jWUr26U7v67c3tXCvXzRmR+B S014zp/Fuj+NjkaGZ6gDHSPUEY4Rnjn969Q6yyp1laVFbbHeo+5WO1S7yehh qtvjeR0PuMPjdTg9PpujxR5jhyIJtiafL8XlPpXoNLAW8P/tJ4xNKbaSZAbi nIokm8wjPW67K/lYIktMNDdScih5ULI0CMn7+HewNnDzYeRk+9vs9ztifGjE ze4PUQTLqnoyTKdPxV/Nuv1GGH5j+YrOUzgcZ6qWd+brjxN4VEWCRIJMeMQE nRJHrle7vXWcTK4CxZ0C9sS5pFzsSlVSJd3dOISzyWXDVm7hl8zLL2pZsKbq psU3PsZL+3UVXL54xS1777r+yeotNeyBxLxJt0aueqf5u613W/gfd3RtvPw3 P+s6+di22heb4Gmv1z6Q2vFcJmH/MZjuicyHc0lXJ/kmZ1b45mUuzqjLWZmx Ouc2+RbLrRkbcrexbfJm2z2pmzIeSd2VtWPw/tSnsvYO/hlWch+wgJX6NeXl JaY1GeWBTYk2K6UHG+0mZsKpmg5nNx6zM/T72naPv1GKsd2PpzeSh3lEDw0R nlXvnc5TotmdoJHuY0W/6NMWiIKF8rChifqTZFRSmMfN4WyHDR3DXMLhDtc7 KIFJvQEjWzN+/P5Hfrhv8RVTik8/ctfPSuoqr5hdu65u5pi6osbmeStuq5+z 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 u20B0zO+eOmoIVNSaK1dBCq1FuKxD7psFc7g7nTd7ZsVru693Dc/eE+OWC6W e6aEb0mbkMlleUaGS3LvEetyN4sbfQ1pe7Q96SfSFNF3nCOuzPT0VvyiFae5 fPT9HdNdmWz2yngc/2nyogBTgjFuJfmWKizKlhIWDoovjifxrdhlJd1QnyNv lffLZ+Sz8nmZL5bn2N8ekKFMT5OJ3Erynk2tN1qxz0rBC2lfzIJlOAAg5a+t CtdCF0SnvXl8xG4Yzq2spz1VCNi2y3bIXqwcdOlSJU18sY487h1LaLSNatI+ at6N/dJByaXTVmJeLgWrhvPtHhjv98EaUNlHQ3zRPpyRuPW2DQd69f51Q86t E786t+5sPX4ID19TtmxDv35v75g1IBp9//f/gz/z9pkxpv/IbXeNKcifMjx1 8L6ZLZ/UnKsLa8nDlw5ZPGNyTs7s8TPvn9T64w9w+e8Dsg/YXaqd1jBeEDpE EyZcBUsqoOQIDvnipFVsI3uAbWHPslwdi0FhJUlV0irprMQS8QDTwpBVzFmG MK14ghXftaHCDwbH0ZQGpMIGLhUK9ZX4MpDnCOXPlfUdcorO5HTaab1GpGkv nkoovPxCdEE35tmE6OLfccbhwz9fgqv/Vfs37F/h6k30qjXR5HA6VyCPkGv4 WnEhv0TcxR3mjnEt/GlRdbndZbLqk2UVE1IWQD6ITJeqYiA0GcIirxSQg1AQ UQC07UpAwgWZPSNjWaYVMF7KDtwcKAnMCMwN3BvYGWgOnAicDcjnAzgQgGC0 5KAkwzLJgSCVSoXXlcMvqWyst8shiKazAIjYJLZDHsF9sFMnoUpgGrwjiPLi 6WO7L3pjv3w89uBeY+fCh2aMzt14YHvPxvfve/277kA1ltXl1zetmoEzmPSr h35qRyu/fWXc8+CXD0D7UZYRwpOtiy4kCS4RjPdzCShODPnSjLRQnpEXKjKK Qq2iLIvEYENDjaEhbr24zlgX+tD4xPwwxOtGnKmHmEl4mlhiTPaXhLhdzF5+ l7xXbTKbQmfEFqPV3xKSH3A/oO8P7otr4Y+5j2vHdbHYvGASnddV3RU2WdNn hnzLVMmnqpLh9ZZ5VJ/Ho4pmKLSMF330zbAxLnOG8rxqMiLyeiTa6wz5gKTQ wWt8CASNzzQ8Xm9CkVqtzlMZdfdoc5a5zDxrstjEhonNVjLbClhQY6qg6Ngl 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 m7Lcy9E9b6kudbmXo3uHEt7Rpd65IjqUgDNUe3Ve7KVNeL9XeLm4f+c23L8Y KK/Sy9stUbFXqmrvbMm7EPbq0S1/jXe2QB3JUgX31a1R9/scL+9SdK/dY+Ne Xv65g3j/HiWgRopBadV/OC6h84x6teLecz/vYoip8Wo6Fyky7rWhKq8+y0DD UU8D5ZAmyL/YSz0bzhmD63R/S4DegjqYoY90c/Njk7Uag7qNw3XEvONrvG/B Pe3nfZvrpT6SImZ4d9DXs3sl7i/lXm6+Kvz84rr9BS3Er3v3CvzrwW2rxDvz TC/WTz9H/xKD++ceU6bvu6+PuP6c6fWEUZRDUB6/FygDZYS9GiyGq495d6zM O6bSaze+Eiu8lLm/03WsQVNh/evFcFfKvbK4qpwNbdHvMcoaSlHufUvqNmij yRprfHXFcI7pXg41Xi2XNFJlNHSRjg/q1VV1ccP1zYA+JwFl9O9SwiuT3xP4 d9wtu9/SE9DL+O2oGhSW7Pf8X8u9+xHRT7CY10qqvXIk9Jn7NlKZf/YSr7Yq vfYxt+EqgnO76ed4v0e8mqiCc7itx6/FhJc+KHGQe6WnoHKvnwvKlqtnWG6P 6pcQnyvh1WlQJ36r8dXy+9Lh/GNwZLJH9L9HoK8JdJ1o6Pmne3kke4QYtOyg FH6KxvfGP9a/nhLvDiYaagdr4d9dQwzauqvSMp22BJ634T/UhJvCV14vffyp 3h0r93RVcsS8K/4frj2Ze0nDvfM1FTy9kvftj1eAn6+Ny3UaukfulfjX8vun VdDKSryxgXvlcU9RR1NCpNFdj8LT+vfP7LjXR1VCT+WWdnbDk9TPJ+iRjqYh 2ojIbdnRoxw5NOVsHZs46og0jsaGlJGr2xcde6w5V3872sjVvYZ/gv6Pct70 E9KHpA9Kz0+30/kxz3rM8XKK0VBzs46S27hQPCXi3beKo9bJMM/7acR76ngb rxz+afT2w6cc0TOu61DHNehPOXw4lJY1dNjwaSNGnzNuZLj7zLK5laVG9/Co oWEjPP6cccPCg/OLhoWHFQz1j/jDscw7lpGO5d6xnHSs8I4V4QkFo4aMHTps Yv7oCcOKwt0n9DEMbvR1/+TrYlJykl5OMsgpLAQpmfKSqWQySUpmesnMZDJF SmZ5yaxkMpOUzPaS2clkFimZ4yVzksls2r32hcGMZEKHlhBUwhoSSqK6fMkw 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 mxwrjGiobgK4NzlWGNFS3QRyb2IX84y43G8Cujfx3q+MuN5vArs38eavjLjg bwK8N/Hur4xoEWUCvTfx9q+MuORvAr43Eb5njLjmbwK/N/H+r4xo9GYCwDcR wGeMaDFgAsE38Q6wjGjIZQLCN7GreUa0NzCB4ZvY1zwjGhyYAPFN7GyeES0O TKD4JvY2z4gmByZgfBO7m2dEmwMTOL6J/c0zopG/CSDflFhhRIsFE0i+KbHC iGYHJqB8E+8Dy4h2ByawfFNihRFH+ibAfFNihVFH+kDzTUTzbepmgybgfBPh fFtSpwnA803M84mTWBN4vknkEyYwfJOIJEzg9iaRQpjA6k0ieDABz5sYzx97 MltTETOCfXpMBOfVsbGrnxSEgtC8OvaqvJ8030+KwLw6Nq/1kw6GpMhWmUhr TaDy5hEQw4jCUUOnjRs3bEyYG1njCocVDSsYnz9+1NgCP9LiWePGjS0a5caM KhjhRzIps4aMyR83bfjYwjH548MsbISNRjFCx0n3LFlZoYb/Urx/7t9QToH+ 286Pzhlu1OUMbtq894KRCw5kpTRLra/LETqqf2pKCmtpNG/apM9xaaknNAkZ kaYt+jRNSU+ps1JT0uuLjLONviim84qu8zuH8rx/Y0PTQ9WheKgsFA0l9P8D 3X9GN5RZeruZm39741DspPf2vdJm06CDT66bdfKqKfV17XcZdWmb9P/96tNS U1JTW494odPiXdcVDh9yYGf5yCx2r5HVUNSUJrpQtdd4hUybkN40O/XcfNbe yHa/ZGRnTopWJ6JVFeEhkcooa2e0daObZbccWlM1PVIxO1ZWFmWtdG46tkV2 0/GlkTmJKOti5LgRLbPb+RHhIdGqRGxGrDiSiMUr2IlGF/fntOwO8PP4WLk+ S6S8MlYxMzwk3+h6fJYhGDek4f137vFZzP0quFCOcs41ilBhJxSx4432/vmP mxitihXFZlb0DY+qKM5lfYxT/RN1D37wThUuCs5VFK2aHSuOVrsnrUvpjmsl pUkorS6lVUjHt0itS0kJrd762L3btocfbnHZVQ8trPn28YL9uza2emFm5LmV JZ3fX39wq1hzhXHV5Muv3TnrQ/PuVi+8sffi7+bcf3k874VbHs56tvSHslu3 PlfYb83I03988p3zp+WkLv+5/6yu9x5Yuez+Ezan/vNPows/Oe6CvYM6X/5M 1kdnvPL4roXPTZt3IctNW1qbvWpE+FVWnTWp3/aLpVjcdmnbZz4q7f/g7k/+ dvW1vV+8ptvCGc/9efKkeM0LeQ/2XHj+1tbt85Zf8eX4jS0qNh166cwPn2nW 5rbul+4ceMobXS/eu5xt2b+7e6edm9aNGLLshGn1XW/8dOqP+y7df9ma6Sk3 /Dim5Uevd5+4avH2tYtmr933bNb3n455r/6X0vq17U5bt3Dj+tQ0LfyVtTuN 2ncN2TRDK7ZJk2YpKem9jJ5Gj+C7kbKgY2kiUTmgf/94cXVl7mxd79W63nOL 4+Wedrpkp6QcTs8wmuo/qSkhI9+NOzF9gJ7ym/Wyni8wIHlxVVmj1P19rWCp DMnP1Ud5Su1ycnqm0SIoRVqGcZwb2co9V7puAU11CfX3Nulamfd2Mo4P9J2W nTm+KF8Lze7H+inxu1aRVlsbOnPWwS8n/21oZ3bV3KV9lrxQ91DKjs6jtz9y 9eSKXRmnrpy6eest2XvSC7O+GXFK/5D9yKdbbilY9nb36e0PnGF1G1vJ5u+/ xl647vPPbwsdem3CkoIeb64+pWDe2qci+d/3fnXPlvemfri+z5UDn7jriff+ Oenw84+/dPmPr2Xe/e1th/q8dVphTo59yoEzztRt+LBRl7oH2nHWF32+ffvd Uxd15E2aT102e9Hv2/H/Ssv4Y3M0bNwcJxFP2t/o55+057FO6v4WrTpmk3xs XK+RH75VOu+KjkNn1Jx/+aanlxf3PHz6kDsvbWO3PnlC9Xs1p8R+K3gmPOWt Fgfrc3p/PWFit8i7XXd++lcx65VvPlxpRa/PuSXzyaKuUy6doaY1uXrYodkF u4rmr6gN37V20ZQVGQc+Mw7u626NHtzi1V0vn7hpx4Qvas94onBl3wdT5n23 4sHr1KHlu8+/sMny02d98sKSDYe2XXBw0J5m9UO/qj274r7e3z15deteX9/w QdP6BeOWXXJmRpbRZWvru2cd+GLy2vTVg5Y+1uvzGzo8lPdJUfyst9RdT8RL uqxb0nf96XvmflU+72CH3T3/8vA3S4ueGtR38dNzHzz0duGaUxOXD97rdF1x YYfd56zvUfpuaP6Q1gvnz4ImudWofeV/2CQzG5pkqhEyhN8Y+xq9jV71Pet7 LOh+pMaYqK7uVxzxml8Hr/m5WRylBTbdQGqB8vct0L3LCy+ufL+gMCV83sdz t9QZm357ptOS524Kvfjc9u0v/3Dcu4cPjtkgphttXvoxkfP2zR9NuzOc/eil w54ft/3Pe+Yf/+cHTrllZvbwX7Y+fXt+2rY7zj6vyTV/WhX/PmdcTo/c72LX lXU/sH5rh8VfZyY2lM5576ul0xdurL7xX1cl5p20ZuXtl9z26IEbTr1oTG5N zsj89799Iis8fsec+tvqimO/NX/t6m9r1je/472DbSb0XBbhz89LfeSSBc+v ePGa7n0vfkPN/uvN1VMOPrN7dPsWJ2379M23Ze6oQe3zWl0wr8fL9834Zslr lV8N3PND1uUfvHHpytkXxTbeOXaEobo9uuLhE6bn9Xnv+gd7N7vk3Y7rplzy X3fdFz+Ud9VfjLr0troL+NnvAlqFNoauyctb1OaNgT8V7901CNdYuu4BKoO2 3TK7+5B45dyq2MzSRLhX8anuLrJWeEysuCpeHZ+RCA+JV1Xmsq5GZ//g9o1/ iVf5z+puxon+beqY/L0wHk+E82sSpfGqWGKu2z04luECDwu6B24wLhh8/Q+U 6JiP8tTnNlbuPu27gpxey2+7eKrx5YrV15087V+HFo9e+dShu1aEB1569oo7 VtxwAZ/1xuCSufsemr1l/PvffXXngs43LL9ixrqXZs2bftKOLnkftUq5+fMl m17oN2PZstKeS18f0PeFzCcm99w4fE+LgfaSvqt7Oav2jvrz4E+uaLV+WdmE yEN1l95zQb85o79Y+njJacvGdWYZPdotX73npj4dd59+e3G7CyY3iS7vYhUu PPDAN7emvpzz1gsThq27av4LA/aOv7Vg7W8PzCtPFDzccduS5r26hSbdeEHM Wn9W22Z5Ew+f98u9M1pk3P9m7cRJ3zx52tQOtXPS3//p+bXzFx96ZPufdjxw QtWUvK1//TZjZXdjXdMrt6wLz8m+chf0G6uM2vuM2hVuu0xJr11m1N42v/V5 r1d+E6u6+6SzL2/32JjrD//9nqr///ev7hga93qFxZ+33HDd97d1VF8/ndLj 3Tltvp9yAV9+d8u/D2xy06IbtgzY3e27byfd0veJ+hGbp3/z6z+2nXbauavN 8bFDPcrP2LLtwY+aXPohu+705a0rL1x/qO3YjrENv74+5JM254bHfjn9kocf 7LS5j3Vyv+ej97S9+uRWxSsPjO98sNuWHe2/L3yoYghv9lvd8f/6bGZZ1tk/ Pbe/8JXn9mwyfg2z5ou6LD71hDHvdEm9b//8j9MeP++HRz/cPGlfdNQrheOf fDytV9vDN+74NuOGy5++7aU1Vt9P5326as4ns+tDr194xsY3zas/zm+7Sl2Y c+FO9c+3O6d/umpY+uZzhV0xpnPW9KdarLj2rXfGnzF8e+cJ91fubDtg4S01 yx94s173Ci/qwcHDMDC4sOXSsRtCXda0eX9T6j0zTnk2mCR0+U91CYapxwuS WVIy6Q7gdRfPzaBLqL2/8ZAh22jjTzdaTIpUl+qhQEKfp7X3CNGTjWaF0ZLy eEVJULIWRyrZkS6T65P+4TJPMrr5l3EC/qUk6g0+3NHIOG9SEP5jT5Ll9iQZ Xk/y4rbwdX/ddXjguH3z/vZ2j5N/mv1qt8Pbe08s2HrnU3WPqbn9QptWZbxT vOWp+376YuPGHY9eu2RFs59bPVlXuOyrupefa/3Sqg37Zl1xfVHO+nE/l6Rc tbHD23WloUEXD/2xrV3wS/HZH/98+jOfWY/uKm520mkXDZIjfpi1dviPp1R3 7f73wZ26nv1k4bK3Vr6e/XKnMy5qWv7d4m5Dpw3+esOWpSXhpzfKX1cM3X3J Y136P33/Rz/cs+uObq0OTWb5E+zLH56859O958w9ec2B3v3bnGFfPHDwnx4o /fTy7qXH7z7z5k0XDy0ccc/YK6665Y4NMy/5svkvC9Iu+2npRXl9Hphx+7Zd /f6rT+oJreTI6I95bR/ev7Bzl56F8W1ae2kr61J66/ro+e/G4Wn/N7qXtk2b wwS8ve5fUtPSQuneFLXLcekd0tud/K8+Z52/uWr8Xz77qb738R1+2XiwqNbo 1JCkXWp6ZtcWoaJQjZ6uDwnlGy29gY837xhutGoYYDUx0vQf1C69bqz4k4+/ b/L0I1+2bCnfqGMDr5o+7J2MBw5Goptz0362R+a/9sR3p/z5rU9emli06olO r27bvb/+4MQnR946osdnq0/8YN7bP3WY13bn9zfm7M04f92VNz5z7eT1nbct fmvxreKHmz46vOiOqWeNGuf0HBDOGW/9etmU9re8+EHn67+NFOZ91uzrGd/M 3XvDq5OKo4s7jqqftyv61K6eaw9tbvvkyyu2vTztmsrvt+5cU1fR7INop2dW /bTgb80H376/50OxeY9u7PPAIzNOvO/hhRmzbst++hFzadcmK7PtlRseMgY+ 2+0fxv1bp7ft/PCk6z7bP6/Ns1PzMq39t2y8eVFB+rlNprzy2o7V7/3zspsu PuWXxyvuu6GpmPzo1N5tWhl1TYTuynL8bqxFZPjdfw+lh0Kh6B8Ixf+VLiPZ 9zlSSNOdLVl6bKS/KverkfhfuQ74Pe0Ivx9zSLS9dom9dsqK7zbu+uj1NYuv 25F314nXvHj+gtzzv3206sc1Dy268In3H+1+ScvNm+8766ap3bO/OPjjSXc9 8UPF7LXf7Ls375VNG86ZcsaaddWi5/3TayNz75n+Q8Wixa9XfPjK8jfvPbvN 7MizlVdH71nS4aoHzq99feiMz3ZOvHvQ1l8/mN0jd6gR+mzHZZcsbvPO5C4r Px/bcsuiD1bsKFpatrV469ILl908dfSYNp/3f+u886ZOK1xZ3e++9VcMy7q2 U/vZf894f9n9le0/H7M39tv5j8264etTz7bsa14ePqr9reNuf+SH0nv/8VHz i2Ym7p5zbZcrZ9325Z5pw7Z9vPuirDeKQ7dcwm6/vuXj2c+te33f/l3d9q2+ ILLPGnL6i/6QqC7lZl0j1/9h7pLsDPa9N2t1TdH2sftyCjo17bryzjWv3frb EXq+1W7sSem19xi1d8//t73IPYl7/xP9338Ps7HgDen4uRg4GTgssFtg02aF 1PHLhZkD7vkVZGeCRPULivJTSpNLivVBGQCU/oFp3wjcIfRH6ok6Gzga2MN7 okxtxlBzy8vLsZmbWoRpYAm2PqHFzfdTLWbHzBCJDcnLvM904vnm35cP+a7V X10fwnvLaNuPrGe8vxWlyu2WZlRtmVrXFfPJ+Ujz7NTajoDAmiaRr83F1xft iznFVHBOLUd8T5DI0s4D258sPLOwdO7EQlvpA2EMYVt/tKjdijP+fU21Km7W rWW/v3xylFoT6rbW485EC+EITs+Pnw3b5few9EULpTK/5A68sJCna+bemwdX XOAQVVXcui28U+ZidJvp0lN/V7W/WWluv905+7HCR9c9detefgzdtNBjT+q+ YJObJ1+wJbOwVeQF/PfYPfuVc1T77bVcDV8jj+o8eVof7fXUqPKdUuskHt3N AdHHDjlERKy+dPax/sGzb3Lnm1caNrFcBRabF5kYGQ0atw6ZwhGlgEcMYy9o /GQgAq9QNRgN2ZmB8QxUBKpmoVHPyWzIgzxyDnQ6gsdtyGeALCtqoIzQyGII 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 wlLEMuRPgh2KEZfBEsRyKEGsQPwUHFCKuBzKEFcweSUsk05AFZSjpBoqEJ2I J8AFDsSVyH8CNYyvhUrk3bAcsQ5WIK5CyXF83nRJH8PVUI1YD07ENVCD8rWI H8M1UIv8tbAKsQFWSx/BbxjfiPxx+C2sQcl1sBbxerhGOgY3MLwRJcfgJobr mGQ9XCt9CBvgN4hN0Ii4keEm+C3izXAd4i1wvXQUmhm2wA3SEbgV8SjcBjch 3g5NKPkdrEe8AzYg3gkbpcPwe9iErXfBzYib4RaU3w3NiPdAC+K9cCvifYiH 4Q9wO/JbEA/DVvid9AHcj3gY/gh3ID4Av0d8EPEDeAg2Iz7M8BG4G/FRxEPw GNyL+Djch/gnhk/AHxD/jPg+/AXuR9yG+E/wwB+Rb2XYBg+hZDs8jPgkPIL4 FDyK+DTDZ+Ax6T1oh8cRd8ATiDvhz9K7sIvhbvgL4rMM/wrbEPeARzoIHdCK /N+gDfnnYDvi8/Ak4gvwlPQOvAhPI77E8O/wDOI/GO6Fdult2Ae7EF9m+Ars RnwV/or4GuxB3A8d0ltwAP6G+Drim/AGPIf8m/A84lvwAkrehpcQcQTpDTgI f0f+XcQ34D34B+I/YS/i+7BPeh0OwcuIH8AriIfhVcQjDI/CfsQPGR6DA9IB +Ahel/bDccQD8DG8gfwn8CbiCXgb8VM4KL0GJ+Fd5D+D95D/F/wT8XN4H/EU wy/gkPQqnGZ4Bg4jfglHEL+Co4j/hg+lV+Asw6/hmPQynIOPkP8GjiN+i/gy fAefIH4PJxB/YPgjnJT2wXmGF+AzlEiI+y4jpwf/j8np57rl9HP9zOmjUfK/ KafnsZw+v1tOp/zFOf1fmNMXIZayzO7L6UtQ4svpxSynU3SADXE5y+9dOf0k 5nQ7YjXyNKdTdLEs3zOnL0cJzeknuuX0TzCnVyNezdCX013I05z+SWdOd6O8 AeoQaU7/uDOnX438dVCPeD3L7zcwvJFl+ZsYduX0j1hO/4jl9GPdcvoxltOP sZz+Icvpx1hO/5Dl9A87c/p65H/HkOb0oyynH/2VcvoH/pzuz+n+nH7Zz+n/ mZw+Vc7ppy8rp2eynD79Ejl9ppzTv8CcPovl9Nksp+fIOf0U5vRcltPnyDn9 886cPg+zsz+n+3O6P6dfXk4/8Kvm9Fd+5ZwOmEeBu1ej5IDj6LdJ8uc0P0vK 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 Gy0Xe9fdvkPW7MqI3rpNzjW+uHZ3Zv4SZqMrIzjkK9vnhbdHz73x6nrnU8Z2 0N25Ot1jobc5OORrnUZpJfYtk++z4k9WgvbwRt4I1L+S7VgVi6uyS9qu/gVz 77Je1rl33pjy3b269u2nM+h+f+3p16Rue0Rn4p3LxXcr31VWxp4L6MydLKL6 igRbj123y3fri+/ZTpajXHKmot6u6ryTeu34MlJfMdSf50THzzwnzkQ5zV2r sO5g945L62aydantvP6dfT47nkTpCjiHlk+i9NKa85m1S7dPZ9JV7Gm1L71c PNMZ17EnHye7s/dvffqYh2AWJguThFRhvJAkWIWrhGwhuQ+r+f146s6mUjIa tfrS8WbTFX2u8Ux2rdO2zv9QIg2n3272Sjz7XyMGIJIEfGBaesbSzJmFudPF IeWV9a6KhCFiVpqYIOYX5qaL06bmpYvps9O8Gj/RHc10R/dLdwzTHdMv3USm myjOm52VmpOWLib2r9tY1m1sV7fEfnUbx7qN6+o2tl/dxrNu47u6jetXtwms 24SubuP71S2JdUvq6jahX92SWbfkrm5J/dtYbxSMTujqmNy/jnJIjO7sOLaf oeSNj9Fjujr2L67+T3XnAR1VtQXsSaElREoAgVBCkRbKPXXuSCihSFFaQpMe QiChJDGEFhBJRKqIiqGpEII0aVIF6YoIERSkPAEBla4YOogo/De5+zI7T/3d 61/r/W89WK6YCSczc+c75+7znX32YTYszEuLpNHCbFyYlxdJ44XZwDAvMZJG DLORYU+Y6RrxQpeWUaFVu4QZBm9RN/dLRIuqtN9lc8S8IEkaSMwmiXlRkjSU mM0S88IkaTBxGybuhUnSYOI2TNwLk6LBxGGw8cKkiIOUDRP3wqRoMHEbJu6F SdFg4jZM3AuTosHEbZi4dwBStAGI2+RwLzmKRg63yeFechSNHG6Tw73kKBo5 wiZHGH/VYUSz3A4j3C1pHUbYMAkvTJoGk7BhEl6YNA0mAbcxL0yaePuzYRJe mDQNJmHDJLwwaRpMwoZJeGHSNJiEDZPwwqRpMAkbJuGFSdNgEjZMwguTpsEk bZikdxjStGFI2uRILzluGjnSJkd6yXHTyJE2OdJLjpsYAUEI5CXHTSNH2uRI LzluGjnSJkd6yXHTyJE2OdJLjptGjrTJkV5y3DRypE2O9JLjppGjbHKUlxw3 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 dhGdQ1moEWrke0RYj8ncZwkKcjl/fPL+5n51hbS1vpayHw5pZqSHNC5YpM6k 1pPuB/kU8s1MD2lgPRTm6+PDAo0iBQuEPeXnW76Ay4guGBBW0MffJ93t6+Of GWV0MuqiRypkVZpQwRWe97eDq79ruCvRNdQV60qx/muc+9eogn6Zf6kfQ0oW b7Hlx5aDr5UZUXj1JyfvPFVqbmZ66XNGut9e6796mX6+Pr6+xVvtKpdxbkbk c83vnx7WOoh9YAQ9eak+BawXlTY970X6dfEvGOzbI4KVNoJzvykcXLRb7PCU 2OSE0ObRSbGslFEy9+FCwYEtRiT3j04YGT90aCwrZv0269GA4IKd46JHpcSy ikZI7gOBwaXsB0KbxyanxA+Mj4lOiU9MYJWNirk/9gsuAz/uHD/MepboYUnx CYNCm0cYlZ4OMgTjhjTy/vR4Oojlfiu4UB7l6WFEoRfbJYo9bZS2n/+prrHJ 8VHxgxLqhrZJiKnPwoza9hNVdX6Q91ShUc5zRcUmj4yPiR2e+6TpPlXxVfEp 4PJL9ynmsh4P8E338XGtyF7/wcFDoWsDXp66avKIGxvb3zy3p9iuQdE7Fg+o cGrbg2yxcqIxtfv4108POaMXFNt15NroW6OWjk8M3zVrbdAncXeGvpO9I7Le ytaN7m4+3rtviO/C3xoMqfTB/cXzl5bf7/vDKy9Enn+q37WmFcZvDTrb5IuN 5ybv6Js6mNX3m5cWvLxV6FdseFC3eodGS5FRcl7JrWfjGnx46fyn016v89n0 KpMH7ni1e7fEEbvCP6wxuXd28dLhCyf+1HlPQMLeR5+3PbO1UIk5Vcedblzz SKXR1xayAzcvVS13eu+GVs3nl++bWenNC33u5oy7+fLK/j4z77YLPHu4atfl GYfWTBm5JueToNsX2p3MfBiXuaZUww2T92zz9bPAX5x22kj71pAFC1vEFihQ yMfHv5ZRw6jufG/4TCobl5KS9GyDBokxw5Pqj7Su+3DrutePSRyWx07FYB+f x/6FjYLWF18flxGR+1hl/2etGb/OlJl8kgHNY5KH5mvdwGYFo9I8or71r/JI rfiMf1EjwHkVfoWNp3IfLJb7XP5WDyhovULr+xL+FpkflDOedvj2Cy7aOSrC As2sx+op8W+9wi8tzdV2yIOfun/aogKbOmZe2Oxd6at8TlR44dBH07onnCtc e3Gf/dmzgi/7RwZdb1Wzgcv86MKBWe3nH6vav/T9Ju4qHZLYhJvTzckbrlyZ 43r0dZfZ7at/s6Jm+9Q1H0dH3K7z1eUDJ/uc2Rb2WuNN7286+UO3xzs3fj7+ 7tdFF9yY8yjsaMPIkBCz5v0mba0+/NhI970M/TjoatiNY9/WnlKWFyjSZ/7I Kf/ej/8jPePP3dEwcXfsRnzSBkY9+0lr/NOT5v4sNvkfu+T6jrVanzkalzqx bIuBI3qP37tlYUyNx42avzeuhFn8mS7DT46oGf9H+62hvY4GPMgMqfNLl65V or+tdPrCdjHki+tnFrtj3wiZVXRzVKVe4waqvgWmtXw0sv25qAlZaaHvr5nS K6vw/YvGg5yq7heaBXx1bl/lvSe6XE1rsilycd0PfVJvZX04Qz1aeKn34AIL Gw05v2v27kcH+z1oerlQZouf0zolLKlza/O04rV+mfldwcxJHeePbVs4yKiY XXzBkPtXu6/xX9F03vpaV2aWWRV+Pirx+aPq/U2JAypumF13W6PLY34elvqg zKUaq9denxf1cdO6GVvGfPjoWOTK2injm13zVMoaXObSi9uqx33rmtC8+OQJ Q6BLZhtpX/w/dsmiT7qkr+EyhN0Z6xp1jFqZNTKrT6r6d50xZfjwejHRed2v TF73y/0V/5ceWHA3qQfKf++BuZ/y5NFJp9pH+oT2/H7MgXRj7x9by83e8Zbr sx2HDu2789S3jx+02y36GyU+v5sScuzts33fCw1eN67lzo6HXr084elXl9Wc NSj4uYfZW+ZG+B18t1PPAtNfWZ54O6RjSPX6t+JnDK16f1t2mYxfiqbsjht1 8ud5/SfvGf7mr1NTUqutXDx37Jx192fWfqld/REhrSNO3dgUFNr5xKjMOekx 8X8U+XrajRHbirx78kGJLjXmR/Odqb4fjZ20M+uz6VXrjj6iRm5/e3ivB1sv vVA6oNrBC98ck/XbNC0dXqxfavV9SwZen/110s+NL98JGv/dkXGLR74Uv+e9 Dq0MVWVd1try/cPDTr7xYZ1CY78tu6HX2B/fX5L4KHzqaiPdv6Q1BPxmDwHF XHtc08PDp5Q40vhezLVzTfEV87dGgCSnbwcGV22emDQmOX5QXEporZjauQfQ ukPbxcckJw5PHJgS2jwxOak+q2RUsP9x6fw/SUy279VVjMr2x1TW+/PIxMSU 0IgRKXGJyfEpY3KHB4/byPUdbhgeuMG4YPDtf+EV/eOt3HfHnqRLDW+1D6m1 cM7oPsZPWStmPNP310cZLyz++NH7WaGNx3XKejdrZj8+5EizAWNyVo080PnU rZ/fm1Rh5sKJAzd8PiS1f7UTFcPPFvN5+8rsvbvqDZw/P67GvMPP1t1VdFP3 GnueuxzQ2Jxdd0Utz/JrbV5tdn5isW3zh3aJXpU+blG/eqNeuDpv44CG8ztW YIWrl1q44vJbYWUvNZobU6pf9wKxCyu6IyffX3b9Hd99IUd3dWm5YeqEXc9e 6/xO+zV/LEsdltJ+bdmDs4vUquLq9ma/ePe250sWCu/6uOfDDwYGFF76TVrX btc3N+xTJm2U/6l7O9dMyHj00aFXTiwrn9wrPHv7jcKLqxobCr52YEPoqODX zsG4sdxIW2KkZeX2Sx//tPlG2pwJxXseTroen7ygWqfxpda3e+Pxl4uS//9/ fun/wHjeqJBxJXD3jNtzyqpftvhU/3ZUidu9+vGFCwK/bFzgrSkzDzx7qcqt G91m1d2U2Wp//+u//+tgw4Y9VujO8Y+qD2ty4OCHZwuMO8NmNFpYPGnwtkcl O5SN3/374ebnS/QI7fBT/7FrPyy3P8z9TL2dsYtKTnumWMzi+50rPKhy4ETp 25GrEprzQn+kP/3rxUFDgzrd23Ez8osdl/cav4eyIlMqZtQu3+54Rd8lNyd8 77ex5511Z/Z3y4lt80Vk580b/WqVfPzmiRuFZ47fMufzle66F1IvLB91fmSm 6/DgJnu+0dO+jyi5XA0OGXxa/XCsgv+F5S399/cQZkK7CkH9Pw7Iev3o8c5N njtUocvSpNMln508a8TCZd9kWqPCZ1ZwsBYCg8GB8zrsdlVcWeLUXt9FA2t+ 4kwSKv63hgRDW/GCZG4pmcwN4K0hnmtnSEhbmj9kCDZK2NONgG7Rw+OsUCDF ep7iebcQa7JRKDJ2wLDEhAHOKwv4u1f2d2+TW0/6p7dZzahiv43y+CcDYvOC j9xopGPepCD0zyNJUO5IUjhvJPnsYOiM7eceN+6Yk/rpserP3Bv5VZXHh+p0 bZ/93sfp69WYeq69ywsfjznw8ZJ7V/fsObHu9dlZhX4rtjk9cv7P6ft2FP98 +e6cIRPfiArZ1vG3AT5T95Q5lh7najq6xd2SZvuHMZ2+/63R1ovudediClVr +FJT2erOkDXP3a05vFLVL5uVq9Rpc+T8o4sPB+8r1+SlgsNuZVRp0bfZL7sP zBsQumWP/D2rxaWx6ys22LL07J1F596tUuxRdxbRxRy/tvvlC9deHPPMyvt1 GpRoYo5u3OyVZXEXxleNe/pS27f3jm4R2WpRh4lTZ727e9DYn4o8nOT38r15 L4WHLRs49+C5ej+G+ZYvJlvH3g0vufbm5AoVa0QmHrTY81uc7lPHuh41/ioO 9/vfGF5KFiwCE/DS1vji6+fn8s+bolZ8yr+Mf6lnfg17vvf+5M6rL97LrPN0 mYd7HkSlGeWeNCnl61+0UoAryjXCmq43d0UYgXmBT9684zmj2JMAq4DhZ31B /TJvGIs5//3tAls++ikwUB5JZ42n9m95vPCyB9Gx++v7/Wa2jvh6062arx49 /3nXqOWbyn118NLNzAddN7d+p1X1iysqf5d67F6Z1JKnb78Zcq1w7w2vvbn1 9e7bKhzMOJrxjrjz1tnHU97t83ybjp4az4aGdHb//nKv0rM++67CGzeiI8Mv Fvpl4PUx12Z+1S0mNqNsm8zUc7Efn6ux5tH+kpv3ZR3c13d60u3s0yvTEwp9 F1tu6/J7kz4t0mzuzRqr4lPX7Qlb9tHAykvWTi48ZE7wlo/0vEoFFgebi3ev Mhp/UuVfxtLs/iUrrO024+LN1BKf9Akv6r45a8/bU9r79yjQ64uvT6w4+cPL b42u+XBjwpKZBUX3dX3qlChmpBcQ1lAWYg9jAdHPLfjS5e9yuWL/ZCj+V4YM 79jnkULq3NmS24qNrG9V7rdGyn/kfcDP/f7m5/8YEh1Km22u6ZV1a8+5s4dX Zsw4Ef5+5emf9Z5Uv/eNdcl3V66aMnjTqXVVxwbu37/k+bf6VA2++uButfc3 3UkYueZ6zgfhX+zd/WKvJis3DBc1lvZPix6zqP+dhCkZhxPOfLHwmw86lRgZ /UnStNhFs8tMXdY77XCLgRdPd13QNPv370ZWr9/CcF088fLYjBLHu1dcfKVD 4IEp32WdiJo3NDsme97g+W/3eaFdiSsNjvbs2adv5OLh9ZZsm9gy6PVypUd+ WfjU/KVJpa+0uxb/R+/1Q2b+UruT25y+77k2pd/pOPejO3Ef/OtskZcGpSwY 9XrF14bM+ely35YHv7/0UtCRGNessWzuG4Ebg3dsOJxz81yVnBX9onPczRt9 ZodE6T5vW1fkjT/NXbyDQc7JIStGRB3qkBPSvlzBSovfW/n1O3/8zci3IvfR av5pi4y0BRP+chRZlPLBf2P8+3Ow8Lw98WthNDOaZjbODJ/0LJr4DXN+T97M L2lIfO6jDZKSEweMiEkZ3iC3A+Tyb7HP8yaEHdBMtLkRYTR5MhP1nSTg944a Neqvfm9s8p9/YcpfzQnNk9czzHd7zS3Vu3NC/Dnf/Zc3PDz6abvVDVa+0jno FN/86+BLQQ+rlB/VeElc6saM8dN63Wq+99V3Y1+e0rHTuPRSd18d/q+snb2y fZO+qjH06e2RpZZM3f3xhUUHF414/62XGoXs7urquunXiTVO9REPTzyT2mf+ qaUP79yKKL+qy3OrW3/3lhncvUibm7fZ5Mrb/d/oWTLW72pgp8OLik6bt+Pk nuWHC5d+psqmzd2mVjjSc5Jakv3Hh5OvrXA3+bj5kPOhN1tuH7/m6s0u6xe1 3h67M0qePHClYIx/wdEJHR+33vbuT817TD69OmDC3Rc/r3vh4is9217kY3Kq vvZ20XobOvbc92nT7t1XfnPofIM9h64NW+gew9L9j1jD5iFfHx8jbdP/zOCY b4D3auzMtByj1JMbai0fVsjP+pytf5R7m4WPvogfK4rNufXSvd8FsqcM/NPS RjVvQ39m9dsatbLfOr1t2YJvBzccenx74UAfdXe/MRo1KcoGG3GZjSeEuyJc ya54V7RrqCvU1d76mmz9TXSNsr5rlifjB1j/19UVaz063Pp3ia4E63vuqu8S LveiGhOq/y3hKWOSEgclRyfFjfn3mNI/3ceVmL5dV3p921d1799bW63Xudqv hzcp0yd7zB+ZIw7U79G1/J3ulStevfhwyw9HjeWj3V+NE8NeWxibEei+lfbS jplfll+7fcvqEt/6ff32pIiwK9V2Db0dUnDroasXAuqsH71s1b7f2j86P2Ly v4LCeg2YN+3U/qXtpk5581a/M8dXjpz0KHpggBqzYeuYs6+aZ3+q9qjt1pkv xnsyZ63YOi2s6Y1VfQOWHand8Pk7AXE5SfGDds69eY3X/LVRk/o7wxp167L9 5Uo/hL0z5WBSu5dXP1ssZ/CCoKFXvjmYMiKn/xs7WJuNn65vmDq02jv1sisl zfz8YcDPe0c02LAx51jSosZnSnXIOXToYPK264PTR609WdqYtMNYlG4FR+k+ D72fW0GW7nPNeuhKLuSD/iNq8y+EatGChe0X4GuNNZkvGmUxgYHeBR4fC8An PynAiuXd9d1MMtNgwpriVMYAlvQv/nqbs/1+fC2p6lW1aemFtJdb/AUCLHDB xCEJDTo073Cv4lOnSte91Gt2/fd+bNu0puuLcjWG9khv+2PybyXrra5cr+2d gCJ3e+7c/fb+Vy5l1Z7Tb8zXwyeePXXrh7TJx7c92BSXmRS1fOjA1esHPGUO 61+u5pScjLAZNZ//vvS6hh23hse07tVvVsuNk3+Y/jAprE2HrMACnT6oscIv a2nM4iYZVXr4FtnU7/ycVw6M9Tty/L1fT6/pHdfr6VrDOkaEfFJqWKvf05sl v+dz/9iVRd809DuTk3pS1zpb6dLe332yu5yuN2be71We5XMH7FYhD49kdD3V +/sxxxd0+X7T9EOD0+YH7v5ia7t3zrIhswMq3Cve98CWvt99Ur3ihobLGp4d Gz9jwtRXDvVJXeFy/R9r8RpLDQplbmRzdHJlYW0NZW5kb2JqDTM5IDAgb2Jq DTw8L0JpdHNQZXJDb21wb25lbnQgOC9Db2xvclNwYWNlL0RldmljZVJHQi9G aWx0ZXIvRENURGVjb2RlL0hlaWdodCAxMzUvSW50ZXJwb2xhdGUgdHJ1ZS9M ZW5ndGggODUwMi9TdWJ0eXBlL0ltYWdlL1R5cGUvWE9iamVjdC9XaWR0aCA1 MDA+PnN0cmVhbQ0K/9j/4AAQSkZJRgABAQEA3ADcAAD/4QBaRXhpZgAASUkq AAgAAAAFAAEDBQABAAAASgAAAAMDAQABAAAAAAAAABBRAQABAAAAAQAAABFR BAABAAAA1SEAABJRBAABAAAA1SEAAAAAAACghgEAj7EAAP/bAEMACAYGBwYF CAcHBwkJCAoMFA0MCwsMGRITDxQdGh8eHRocHCAkLicgIiwjHBwoNyksMDE0 NDQfJzk9ODI8LjM0Mv/bAEMBCQkJDAsMGA0NGDIhHCEyMjIyMjIyMjIyMjIy MjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMv/AABEIAIcB 9AMBIgACEQEDEQH/xAAfAAABBQEBAQEBAQAAAAAAAAAAAQIDBAUGBwgJCgv/ xAC1EAACAQMDAgQDBQUEBAAAAX0BAgMABBEFEiExQQYTUWEHInEUMoGRoQgj QrHBFVLR8CQzYnKCCQoWFxgZGiUmJygpKjQ1Njc4OTpDREVGR0hJSlNUVVZX WFlaY2RlZmdoaWpzdHV2d3h5eoOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmq srO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4eLj5OXm5+jp6vHy8/T19vf4 +fr/xAAfAQADAQEBAQEBAQEBAAAAAAAAAQIDBAUGBwgJCgv/xAC1EQACAQIE BAMEBwUEBAABAncAAQIDEQQFITEGEkFRB2FxEyIygQgUQpGhscEJIzNS8BVi ctEKFiQ04SXxFxgZGiYnKCkqNTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZn aGlqc3R1dnd4eXqCg4SFhoeIiYqSk5SVlpeYmZqio6Slpqeoqaqys7S1tre4 ubrCw8TFxsfIycrS09TV1tfY2dri4+Tl5ufo6ery8/T19vf4+fr/2gAMAwEA AhEDEQA/APf6KKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAK KKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAoo ooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiii gAooooAKKKKACiqt5qNnYJuu7mKEf7bYP5Vy2pfE7w9p+Qssk7D+4uB+ZrWn Qq1Pgi2RKpCO7OzorzJvijqV7zpHhuedT0d923+WP1qJvF3xBn5i0XTYF/22 5/V/6Vr9TmviaXzRHtovZN/I9Soryd/EPxG6iPSx7Ar/AI1C3i34iwcvZ2Mg /wBkKf5NTWFv9uP3h7b+6/uPXqK8bb4p+KrH/j+0e1CjqxhkH67sVbtfjMWx 9o0pD6mOb/EVostrtXjZ+jRP1qmt9Pkes0VwVp8WtAmIFzFdWx9SgdR+Rz+l dNpvinQ9WIWy1O3kc9ELbW/I81hUwtal8cWjSNanL4Wa9FFFc5oFFFFABRRR QAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFA BRRRQAUUUUAFFU7434X/AEJrZT6zBj+gx/OuZ1S41W0tpJ7rU1KpztgQpWc6 nKr2MqlVwV+Vs7KivGdZ8aXVrEfJvrkN/vmuc0Pxdr+u+IIrFtcvIIMF5XR+ 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 jasdp3gf3hXsVRPbxSD5kBrjrYDD1neUdTWNacdmeR6fqWu6S+IVbb/d3Ar+ RrqLTxlqzKBJpaufVXA/rXUS6NZy9Yx+VQHw7aZ4GKiGAVNWp1JJeq/VDdbm 3SMz/hJNWkX93pUae7zr/jVC9vNbvFKyXtvbIeoiyx/pXRjQbcdzUyaNar/D mqlgYzVqk5SXa9l+FhKq18KSPOX8Ow3Eu6Xzr2T1lPy/98/45rc07ws7MpkQ Ko6KBgCu0js4IvuoPyqYADoK6KVGnRjy01ZESlKTu2U7LTorRAFUZq7UVxcR Wtu88zhI0GWJrznxJ4/uII3Nufs0PY/xt/hXbQw067tEwqVo09z0ea4htk3z ypGvq7AVh3njTw1Z5FxqtvkdQoL/AMga8SsrzUfGN9K73Tw2cbYklJ3Mx9Bm u10rwvpkW3yNNW4f/npc/vCfz4/StZ0cPSfLOTb8iYzqT1Ssjel+JXhEttSS ac+kcB/riuN8X65pWsL9o03TtRW5AwS1qdrj3x3r0C10e6VAqJHCv91ECj9K t/2HcOMPKaKWJp0Zc9OLv6/8AJ0pTVpP8D5su/NVt09tJECf40I/nVjStYvd ImE2n3TwtnJAPyn6joa+gbjwfDcoRLhweoYZBrjdb+FVu4aSzzBJ22fdP4V6 FPNIVPdrR0+855YSUdYMTw98YlTZBrloFHT7RAP5r/h+Veo6bq1jq9ot1YXM c8LdGQ5/P0NfM+saBfaLP5N5HjP3XHRqZ4Y8T3nhbXoJoZW+zyOEnizw6k+n qO1LFYClKHtaP/ACliJqXJM+qK4TxrpniHV2EdtLZwWkZyoLMWY+p4/Suq03 UVu4wc81dkgSUYYZrwKkFNcr2OurSjVjyy2PnHUfBuuSSnfPA30J/wAKdo3h zxDpN0ZrS4gjZuGzkg/UYr6DOlWjHJiB/Ck/siz/AOeQ/Ks44anHYxjg6Ufh VjhNFv8AxcrolxfaYkXc+QzN+WRXe2t15sSq7h3x8zBcA/hSDS7VekYqxHbx x/dXFaxjY3jDl6mZrGg2esWrQ3MEcqN2Zc15TrvwpMbtJp07xj+443L+fWvb qayK4wwBqZ0oT+JHXRxVah/DlY+Ybrwdr9oxAt0lA/uuB/PFRWsHifTZd9tb 3cDj+KGXafzBr6Ym0u1m+9GPyqlJ4asnP3AKweDp7o71nWJtZ2Z4vZ+KfiFG AiPdP/11ZD+rVrwav8RL3Ak1GCzU9SxQn/x0GvTf+EWss/dqWPw5Zp/DVrDp dX95hPMZy+xH/wABRxOn6PcXEiya5r+o6n626yNHD+IB5/Su708iOFYre3SC JeAiKFA/AVYi022h+7GKtKiqMAYraMIx2OSpWnU+JirnHNLRRVGQUUUUAFFF FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUU AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAcx48aePw400KM6xSK8ir128/wAi QfwrwPXtSbUicH5fSvp+aISxlGAIIwQa8s8U/C+2upXudOY2rsclVXKE/Tt+ FergMbSpRdOovmceIoSm+aJw/wAPdStLSVtOvHWLfJvjdjgEnAwT+Fe/aZBC tupQA8dRXzpe+CtdsnIECTAd0bH86t6VrXjLQcJbG8SMf8syvmJ+RziqrYWj Wlz0pq76MIVZwVpxPpGivGbX4oeKYlAn0qOY/wDXFlP6Vox/FPXX4Hhd3P8A s7/8K5pZfVXVfejRYmD7/ceq0hUEYIrzMePfF1yMW/hhI895n24/MioJ7vxz qylJ9Ss9MibqIfmbH4f4is/qvL8ckvnf8i/a32TZJ8Vr7S4bCK03xtdb/MYA jKDB6+mc15LoWgz6zqsd28TJYxOG3EY8wg9B6+9elWvgfTlm867efVLknJab hM+u3v8AiTXVWHh1pGUugRF6KBgAVvPFxhR9hS1XczjRcp+0mWfDcUgQE5xX WDpVa0s0towqirVecdIUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFF ABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUA FFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABSFQwwRmlooApzabbT/AH41 /Ks+XwxZSfwAVuUUAc0fCVvn5WIpR4VjH/LRvzrpKKAMBPDMQ6ux/GrMeg2y dRn61rUUAVorGCL7sY/KrAUDoKWigAooooAKKKKACiiigAooooAKKKKACiii gAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKA CiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAK KKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAoo ooAKKKKAP//ZDQplbmRzdHJlYW0NZW5kb2JqDTEgMCBvYmoNPDwvQ29udGVu dHMgMiAwIFIvQ3JvcEJveFswIDAgNjEyIDc5Ml0vR3JvdXA8PC9DUy9EZXZp Y2VSR0IvUy9UcmFuc3BhcmVuY3kvVHlwZS9Hcm91cD4+L01lZGlhQm94WzAg MCA2MTIgNzkyXS9QYXJlbnQgMjEgMCBSL1Jlc291cmNlczw8L0V4dEdTdGF0 ZTw8L0dTNCA0MSAwIFIvR1M4IDQyIDAgUj4+L0ZvbnQ8PC9GMSA0NSAwIFIv RjIgNDggMCBSL0YzIDUxIDAgUi9GNSAxOSAwIFIvRjYgMjAgMCBSPj4vUHJv Y1NldFsvUERGL1RleHQvSW1hZ2VCL0ltYWdlQy9JbWFnZUldPj4vUm90YXRl IDAvVGFicy9TL1R5cGUvUGFnZT4+DWVuZG9iag0yIDAgb2JqDTw8L0ZpbHRl ci9GbGF0ZURlY29kZS9MZW5ndGggNDM3MD4+c3RyZWFtDQp4nM1a224cSXJ9 F6B/qHkxSGNVU3mvXBiGd6QZAba1a+zINoyBHzi8SA2Tam13SwN+kv/S55zI qq6i2KKwflnMiOysyoyMy4kTkdn8/vXPsXu3f/7MdQP+2717/swPrveu82Pu U+3u+MD3hQ9K72vnh9h7DMZ+wLMh9UWD0l1yZtXTMfQVj93Q59T5UrUcozFi lPrqNdk5TS6+dxCIpQVr8thXyi29w9KcuaUkx37MeAAJUMfjV/Z9Lp2rtfdF o+g409Xch6AHEOuqt3X4lToHRbE5pPQla/IY+5q1T+brQXrn2idILsX0C32K moxPAxyA5zHj9SB3jK4P2Ad6J44Sp3AyRFZ5ZnSdMzs8lMEvjmhHTX1MNheb 1rHPJid0ASEI2iFWDAJ/SQFYMeJB4i8HT44eI7gKg0rRHAzeLEPQODfTYsdg 2sqMyRWByRh5+lqTK93AbSMMx8hTiaEfzGcpmn6T4KS1ckLpS9WIDotc7hGR MM76wt0Vk2iOo9o0e9Qg0yOBemmuo5W+wnKK8v2QzX3cJUgwjGjGYSeKAs5c lRIEC6LnsoIYGKXccOYQEz8KZ0OQcTkrxg4j7p+EOoyEnqKtMp3q4YEcNCCG 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 XTtyNuKHXfXfa751ydazP3V//vmWA+Mefl1m6Z35+fVPNQ319bXXedTideMa fq6lOV2D69jjRv07p79/bUpF7loqYtGIKf96Hf9brow/X46aHV+O3Ykv2lhr WPSiAf/0ogXPRSf+4yX5See67X84FZMysWLrgcP7jNu/IyMq4Hmz4I/GetrL 1e6adHZ4ndhnITv9e59yf5zpW+/Xrt2qR35f9fzlz8SQQ7d/yLFFf+A7p8y2 sKq9xw5UfV2ntckfEZIXNj471X/J+im9s0s+uqI9vlXD9mYr96/yDlbbf6br jdQWW0NzGqyxptzLXjND5Wdc7TPYNaPZkEt75u3NP9bvcctrJTJb/5LaJW55 vXvbppWr++vMC26ZkzovGvN6SQ+tytFyS4c8utFjvcvqlgs/qXt9ZoV1gZfC 4t84pZZsjR9QZfO8BruaXRv9y7CUxxWuBny84fbCsO0tG6TvGL0m/3To2teS x7W66aiaPbjC1bd21Yr53jI+uNzk8UPgkjyqpR76X16SZV5ckk6aRRNFF2MD rZ5WNzMgs9akGn93MSYnJTWMiiy8/CoUXn4Fv+L/cwW67SVdgfJfr8CCb3ny qIRzIaFW/14/jj6Spu1/trPSvN2zLPt2Hz9+8MEr3z9/3HGv6K95HniY7Ht6 9sW+H/l7bxrb5vPOxydcG//qhJV15gzybvv06I4FQc7HFnfp5Tr93VXx9307 +9ZqdC92xtAaj3YdrZD+a5nkvTEjz/6ysP/k3KQPf5+anFJzbc6CMfM3PZr5 2tsdGw33bR907s5WD//wMyMz56dFxT4r9fW0O8N3lVp89rFn14BFkfzzFKeN YyZ9nr1veo0Go06qEZ/NTur9eOfVN33cax67/M1p2ahDS5/Asv1Sah1cPvD2 vK8Tfml+7YHHuAsnx+aMeDs296NO7TRVfVP2hsr9A+uf/WBNvRJjvq+4ufeY /1myPD4/cOrHWpqLl9EEPClqAspaci3TAwOneJ5s/lvUzbyW+Iy5GC1Agnlt l/auERyfMDoxdlBMsn/dqNcKdpG1+XeMjUqMT4ofmOwfHJ+Y0IhV1fyK/mef 4s/EJxbdq6tr1Yq+poovnw+Nj0/2DxqeHBOfGJs8uqB5cNi0AvCwQfPANcYF gx//A+/oH2/lTrtzE642vRfiWzdj/qgI7efs1TNq9/09P/3NnO35S7L9m4/t kr04e2Y/PuRkqwGjb60bcST83L1fPprkNzNj4sDNB4ak9K95pkrgxbLW2dfn 7d/TcOCiRTEBC080abCnzNYeAbltr7k3t89rsLquY9XNDhNaXZpYdteioV0j 16WNzerXcOSbNxZuGdB0UWc/VrJW+YzV12bVr3i12YKo8v16uEZnVLGFTn60 8vZcp4O+p/Z0bbN56vg9TW6Gzw1Z/2xlyrDkkA0Vj80rVbe6pfuH/WJtu97w KhHY7Xmvp8sGupdc8U1qt+63tzWNqJA60uXcb5+vH5+ev/H4u2dWVk7sHXj0 szslc2pom93eO7LZf6T3e3nQbqzSUpdrqdkF16XVJXWRljp/fLleJxJuxyYu rdllXPlPOn7w/MusxP/77y/tH2K8sFVIv15674z78yuqX3dYa30/0vN+7348 Y2npL5u7zpoy80iTq9Xv3ek+p8HWzHaH+9/+47tjTZv2XK2Hx+bXGtbiyLE1 F13H/sBmNMsolzB4V75Xp4qxe/84EXzJs6d/p5/7j9mwptLh+rbaDT+PzvKa VrtsVM6jcL/H1Y+c8bkfui4umJd4lvbq71cGDfXo8tvuu6GHdl/br/3hz0pN qZL+WuWO31ZxWn53/I/OW3o92PTD4e63ojscCg3ftsW5rtfzD8/cKTlz3I75 B9baGlxOubxq5KURmZYTg1vkfqNP+zHIa5Ua7Dv4vPrptJ/L5VVtXA73FPa4 jn4e/be7Z79/6tvwFm2P+3VdkXDeq8nkOcMzVn6TabQK+4zkYAMkBoNLL+y0 11Jlree5/U5ZA+t8anYSqvynmgRNN/IFyWxSMlmQwBtNPNfNJiF1RfGUwVvz LOpuuHePTIoxUoFk43XKFd5CjM5GidDoAcPi4waY78z9797Z331Mbrzonz5m Ta160ceojJ8ZEF2YfBRkI50LOwX+f25JPApakpKFLcm+Y/4zPst73rzzrZQv Tteq/duIr6o/P16vW8jRj7anfaJGN7TsX1Xy26gj25f/diM398ym9+dll3hS dlta6KJf0g7uLndg1d5bQyZ+EOa7q/OTAdapuRVOp8VYWo5q/dDLHvI0qsuP T5rtvGLblBdVombTt1vKdg+GrG/7sE5S1RpftqpUtcu20EWnck54H6zU4m23 YffSq7fu2+rXvUcWDvDfkSv/yG59dcwnVRrvWHHxQVbe4upl83uwoK72cRt6 XLt8863Rtdc+qtfYs4V9VPNW766MuTyuRsyrV1+fvX9U69B2WZ0mTp2zeO+g MT+XejrJ+Z3fFr4dWH/lwAXH8hr+T32nymVl++iHgV4b7k72qxIQGn/MiD3n nDRrPeN8BPxVHu7839G8eLmVgg64j9G+ODk7W1wKu6hVXnGp4FK+9u/13+hz ODH84yu/ZdZ7tcLT3MdhqVqlF4eUd3IpU9XdEmYZbnTXgy1BWunCxKew39FW K/siwXLVnI2/0HVZ2IxFXfrxvuuOjT+XLi1PprHmU/u3+bbkyseR0YcbOT+x tw/6euu9OhNOXTrQLWzV1kpfHbt6N/Nxt23t57ardWV1tQspp3+rkOJ1/v6H vjdL9tn83oc73++xy+9Y+qn0ueLBrIvPpyyOeKNDZ0dAE3/fcNsf7/T2mbPv gt8HdyJDA6+U+HXg7dE3Z37VPSo6vWKHzJS86O15AevzD3ttO5h97GDf6Qn3 j55fmxZX4kJ0pZ2rfpv0RalWC+4GrItN2ZRbf+XGgdWWb5hccsh87x0b9YVV XXO87Tl712nNP63+nbbiaH8vvw3dZ1y5m+L5aURgGdvdObmzp4S49HTtfejr M6vP/vTOrFF1nm6JWz7TTfTYFFHPs6yW5iqMpsy3qBlzj2y79EuLi8Viif6T UPy3NBkv2z6HFFIv6C3ZjNzI+FEV/Kgl/1s+Bzzv/DfP/2NKdDx1nn197+x7 uXkXT6xNn3EmcEm16fv6TGrU586mxIdr100ZvPXcphpjSh8+vPyNWRE1vG88 flhzydYHcSPW3761LPDQ/r1v9W6xdnOSCFjRPzVydFb/B3FT0k/E/XAo45tl XTxHRH6aMC06a16FqSv7pJ5oPfDK+W5LWx7948KIWo1aa5YrZ94Zk+75bY8q Odc7lT4y5UL2mbCFQ49GHV04eNHsiDc7el5vfKpXr4i+oTlJDZfvmtjG4/1K PiO+LHlu0YoEn+sdb8Y+6/PJkJm/vtbFZp9+sG0Hn7mdF2x8ELPsu4ul3h6U vHTk+1XeGzL/52t92xz78erbHiejLHPGsAUflN7ivXvziVt386rfWt0v8pYt uNm+opQozTrbOCMf/Knv8rIxuHV2yOrhYcc73fINqeRWNeejtV/PffY3Ld/q gkdruqRmaalLx/9lK5KVvOw/0f79OVl4o6jj11prpbXMbJ4ZOKkJ6vgNM39P Yc8vYUhswaONExLjBwyPSk5qXHABFMS/Efu8sEPYCfVEg7UgrcWLnqjTJAG/ d+TIkX/1e6MT//wLk/+qT2g/ezvdvrj3gvJ9wuNi85wOX9v89NQXHT9uvPbd cI9zfNvvg696PK1eeWTz5TEpW9LHTet9L3j/hMXR70zp3GVsWvmHE5K+y/68 91GnhK8Chr76WWj55VP3br+cdSxr+JJZbzfz3dvN0m3r7xMDzkWIp2dqp0Qs Orfi6YN7QZXXdW37cfsLs+zePUp1uHufTa72mcsHvbyinW+U7nIiq8y0hbvP 5q46UdKndvWt27pP9TvZa5JafvTZmsk3V9tabA8ecsn/bpvPxq2/cbfrJ1nt P4v+PEyePXLdLcrFbVRc5+ftdy3+Objn5PMfu49/+NaBBpevvNvr9St89K0a 780u03Bz514Hv2jZo8fab45fapx7/OawDNtoluZyqCADdLJatdSt/zWNY7EG /iVjZ6Ze1sq/uKHWtbISzsb3bPxPBbdZ+OpLObMyWM6Nt/7yp9LsFQ0/66PV fHmgCzOu27zzjZ/k7r1z4aucI3HNnyqvXQmTIrU4dEgZ1k+LyJTjuSXIkmiJ tURahlr8LSHG34nGn3jLSOOnbpZo47+TjGfjLXHGz9zSyCIstqyA8bX+Nq6T RyfED0qMTIgZ/a+ZpEua1ZI2+kiZ7q8nrX6a0z9nbbvbiys7HclVJyZ4Vusw LNLxpPvB77Y0uXH8RoVxl6bIXiGlP/GNWJhbu4O2bfmgiYFnc/pUftRtXquB fo0ObA9Zk/1LepfL3zrFdf21brWJa5vxFj7DJiwodVjdKNHvQIxfs1HTZ01M rLTuds0mS7ZW8Ln3zP1Bn/oj1107/Ub56LzMDX1+3/Nh9xNPWi3I8P0y8Obt 161nUm87TmuOhZmHLF9t3j91+Z5vVu7Ys6j1CRUxdfynPWadWJvx+YSTU348 7Ki18PH1yy1+u3AspseqRlPveIjNqaOa9Zp6+Pj9gx81XjIhMGrx99sD7w9z e3LaeefGiMMdDw2O/WZ4v5u1U56UmTR7TVJWmpESpVmfvvy23Fia9abx0PWC 0B70bwHNv2DUMm4li96Ak9HCZL6lVcRxV/rlsI7VCLsXz7iysoX3ehuTzK4x 7uhptL0o7Lxcyn3pvmbpTdX1XPhj9707gk9O+YsQGPdLg4+du+V/u+LB+5/O 7ulZoUn/w0unvDOt9uXXelezLn06OqRBvwPnbtRZOjvro6/5uiHHtvR6ZVfI wxn5WWu2znl2Nyh8xfjc25u/yPZKT2G/78g4NnTW7mN1EnucO99xrX7ou9Ur /HJK2X3ktotPywR32N1lYPsf56QOW7d5Wr94y7ORY4MbnV5TqtmZiKaRiQFv XLBu+Oxqfne/8E15F6JrBQ6t/WNYRELmxrCA2C36gcdb8ktkNRzhcXDBwfF9 3/PYVHPfLwN/6rZgq3/1vvmT/crOGdd0ecbyuXVdMyqOsC9ov65tr6xHxyOt 3ru66QfGv93ac1e9Wmef3nruOnXGB7dHZHgd6tTLJ6qb54h9By0L/x9Ysr/X DQplbmRzdHJlYW0NZW5kb2JqDTQgMCBvYmoNPDwvRmlsdGVyL0ZsYXRlRGVj b2RlL0xlbmd0aCAyMjU+PnN0cmVhbQ0KeJxdkMFqwzAMhu9+Ch3bQ3Gaw04h 0HUMcug2lu0BHFvJDItsFOeQt5/shQ4msEH+/0/8lr52Tx35BPqNg+0xwejJ MS5hZYsw4ORJnStw3qa9K7edTVRa4H5bEs4djUE1Deh3EZfEGxwuLgx4VPqV HbKnCQ6f1176fo3xG2ekBJVqW3A4yqCbiS9mRtAFO3VOdJ+2kzB/jo8tItSl P/+GscHhEo1FNjShaiqpFppnqVYhuX/6Tg2j/TKc3ZdHcddV/VDc+3vm8vfu oezKLHnKDkqQHMET3tcUQ8xUPj8PgW8/DQplbmRzdHJlYW0NZW5kb2JqDTUg MCBvYmoNPDwvRmlsdGVyL0ZsYXRlRGVjb2RlL0xlbmd0aCAyMDA3NS9MZW5n dGgxIDgzMDQwPj5zdHJlYW0NCnic7H0JfBRF9v+r6p7pmUyOyTUkBJgOwx0C uSAJIJlAAsRwh0CCEDIkEzIhyYRkEg6PBQ9gIygeq7uuu6Lueq9OgmhAd8EV d71AVlfd9QBEERCjeIAKSv9fVXcunWGHz/r//T7/z39eM99+9epV1atXr15X JyEBAgDRCCKk5BUVTD+bf+8WICNOAyQ0zFxQNEMQhUcApE8B6G/nFI1Nqz++ 7hQA6cBWCxcUFSz8Jj1rOsDWLQC/rVyYN6tkYW5DG0DIZoDI2yvqHA1rfjvz AYDF+7DN4ooWj/xG/NPvALgaAHT1VQ0r6p4PuWkgwBIZDTizwtHUAAlgxP6u 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 yVHy84LjKzajfGv2Taf+Yj1IQQqYBvbrhwFo8BebPvJfjG/NiD6lYGwG6b8m OT4eY9Po5+XbV4xZfGua+5T8fBE0SEEKnBL798fkaPTz8u0rNvv51ozsU/KX h4MUpIBp6MCB7Mf4/Lx8+8p/8b41+/4PMX95OEhBCphGJSayHys1+6n2kf8G +taM7VPyl4eDFKSAacyQIRibYX5evn3FmNW3Zt9HfYRvpSAFKXBKGz4ck2N4 tJ9qH8/6wb41+z7qzf+VUUEKEtL4UaPwcBgR66faR/4b6lszoU8p0rdSkIIU OE1ITsYHt9nPy7ev/DfCt2bfY6i/PBykIAVMUzMyMDlG9fdT7eMcOsa3Zt9H vb88HKQgBUyFEybgAzjGz8u3r28CpfvWHNanFPffWRWkIAEU5ebiA7if7Kfa x7M+27fmqD4lf3k4SEEKmJbMmIEP4Pghfqp9fKE9x7dm30e9vzwcpCAFTJWz Z2NyTBjupzrhpyI/v4Y1rU9J/q+MClKQVKLa76CMAYFxBJ/HRN/ziykJ5Tp9 iVX6/c+ZPpJmim/N6X1KxYHZ+z9FIvud0RAKBpy9iO96E2AWVEKjoqA0saek fNh1/fh3edpzciZfNmlCdlZmVmZGelpqytgxyaOTRo0cMXzY0CG2wYmyddDA AQn94+P6WWJjoqMizRHhYaGmEKNB0utEgRIYnW+bVi57h5V7xWG2GTOSWdnm QIGjl6DcK6NoWl8dr1zO1eS+mnbUrPqRpl3VtHdrErM8CSYlj5bzbbJ3f55N 7iCL55UgvzXPVip7Ozk/i/PiMF4Iw0JiIraQ8+Oq82QvKZfzvdNaqlvzy/Ow vzZTyFTbVGdI8mhoCzEha0LOO83W0EamTSacodPyJ7RRMIShVd7LbXn53gJb HjPBKwzNd1R6584ryc9LSEwsTR7tJVMrbMu9YJvijUjiKjCVD+PVT/VKfBjZ xaYDN8pto/e2bukww/LypNBKW6VjSYlXcJSyMSKTvNNted7p6z6KSx7dQR5Y UOI1Tu0gsKBkF1yurG8rWJ+XV8pGi5pasqm3eoLQmh/nklmxtXWT7N0+r6R3 bSLD0lLsNHl04fySRLTalr9FZtOYX8JngJ2SuLFoJJOxaaoTdtrymaS8RvYa bVNs1a015bhY/Vu9MH9tYnv/y+27lCNweb7cuqDElujNSbCVOvIGtMVA6/y1 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 4j6v4G09vL6e98Lua7vXz6VFcgPvm1lUwa1q4qP1rILM/cjsb+ajdUVHj1Vd 68o8ysqred/Vvdaa6bp5X+rYXXJ1jTyaRyq0SGv6iZ4H+3Ryr7h4ZqjmM1cl zdzTY3pFpJvvyUbuz1othp08Buq0Nl39qxmvRRvTpc2T1Xm0eOvyQRVqst5U aY9XXZpv3do8XFy/mZe61jSZl9by1v4iooqvoBrPbCaspo73pkaF2p8b91/X DlF9z2agzqf33qrkI6/Qck0tX5NqbWfIXKcW112NDzfiCp5fnb166LJHzQK1 WmTI3IMV2uxdfMVquU4D3zdqJNbzlmN+FNeu7piSsXaNtip13BYWlS3aXlQz Rm23FXW81BO3XXu0x2N9Z1ehjbGc99DMvVzZJyqdsArlXX5lUV3RPb8qLed4 NBvVVfJwm9RMoK44s13d6R4ty6j7qEmLsJ68p9bW8fVw4JPSxXdJE7fDgyOP 7hNl6uiV3FsNfH+s7Z5F19is/Wpe7+CeaNTGYLtH9aKHt++yuKv3Bh5BdTzP ddk2Bkp5RlUt7D2Wh/u0yyfqrlGj5cfW9e7fpWn2ZES17NByTVdce7oz/3Le R09GcGk7u8sKtUXftVF11flU8hX0dHundyz4moNL2+ssSmuxbaX2/JZ/4gnW Qo28Eag/kq9YHY+rSr991/8Xc+/pvbJ77dSY6np69azbT2fQ+/na166JvdaI zUSdy4+fVl27rJKfEdjM3TyiLhYJjj6r7tSe1j9+Zrt5jmrQMhWztqX7Sar2 05WRLhZDgZxkXdpJdmqAJ9mZKGe5rAXLLv4s6XviZFL/radzzzG/9JyjWGZx XvRky/4g5Uo4i72fVPc6mYcSTwDjdGUiN3Sdsbqs9N92IW/T2yMsc/rXn8Gl Lfy8HvD5u4//3Zo/PtD28kWsE63iZHGiOFUcL2aJdvEysVDMRml/lNjFXJSl XWTMBdpbyAcQ+FvItEuaVSGTklS2q0hK9wqvvGgL9bmwknsB9xZx8Givv+ga zeRZzKU9Edbxvergf31OOTtzvzIc3vbzMzYC/58ZMUAUBYSwvPxpy6bPLJ07 Qx68onZtQ3XKYLkgT06RF5TOzZen5Bbly/mz81SNn+imct3UgHTTuG5aQLrp XDddLp5dMHVOXv7C3JnF+UXy4OKklJS0lNHslotmBtJTBu8po6snOT09oGbj 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 z66QZ7eJKQMKPLsy8HYM4vcLnl0hz24Th3LF3MO9EFfEAgwKPLtCnp1681Lg 2RXy7NR7lwLPrpBnt4mrsQo8u0Ke3SZ6DQWeXSHPbhO9hgLPrpBnt4mLwAo8 u0Ke3SZuS1Tg2RXy7DZxUVOBZ1fIs9tEn6LAsyuOt/kQ2eDuuXGIK+opyODZ FfLsNtGJKPDsCnl2m7iFU4FnV8iz28QtnAo8u8JJ8sQKlgo8u8I58sSQRoFn V3lS5KlH+wFXeTLkqaf7AVd5EuSJbIBnV3ny44lsgGdXOD2emN6khHskId4+ RmQDPLvCyfHEbacKPLvKkxtP/I7As6s8qfHU7wi4ypMZT/2OgKs8ifHU7wi4 ypMXT/yOwLOrvGnxxLbAVZ6seOL3C55d5UmKJ36/4NlVnpx4Yt+X7mmXOJ2U 2PfBsyucEU90iwo8u8IJ8US3qMCzK5kn04/YFrjC6fDEnAAFnl3hbHhimp9y T07FyfDEvHDlHp6Kc+GJXlK556fiVHiil1TuEao4E57oJZV7iipOhCd6SfX4 IFWcIEPsv+5ZqrhMjUENztzzVHGdGoManblnquIi8gY1PHPPVUWq3WlMZAtc u0Ku3WlMhAtku0KynRnE1TIFtl3hOvIGNbwD3a5wIXmDGt+Bb1e4krxBDfBA uCsk3J3G1MN63dN6MWHU8BCUu9KYMGp8CM5daUwYNcgD6a5wLXmDGuWBdVe4 mLxBDfNAu6s8B7FS4zzw7irPWazUQA/Eu8pzHCs10gPzrvKcyEoN9UC9q7yH slJPdQbC8pzLSg0UTfdMaEwYNVIE+a7ynM5KXFpVIN9VngNaiWurCuS7ynNG KzVIBfmu8DGtBjVKBfmu8EmtBjVMBfmu8GGtBjVOBfmu8HmtBjVQBfmu8JGt BjVSBfmu8KmtBjVUBfmu8MGtBjVWtdyTxzFh1GAV5LvCx7ca1GgV5LvCJ7ga xGV0BfJd4UNcDWqsC/Jd4XNcDWqwC/Jd4aNcDeJKugITr/BprgZxKV2Bllf4 QFeDGmeDl1f4TFeDmLirQMwrfKyrQY3SwcwrXELeoIbptnu+PSaMGKdrwz3j HhNGDNQ1yHltYMKIkboGO68NTBgxVNeg57WBCSPG6hr8vDYwYcRgXYOg1wYm jJhFoMHQawMTRkyV1qDotYEJI+ZKa3D02sCEEZOlNUh6bWDCiNnSGiy9Zpgw 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 74jbb51+NHFuj+datbXDG4SFdjB/f6lbqemfnyz/5vXYmIjz+X/pe23klalf d46Ln1GmVeaoM/GbzoSveri7xMZdWft29ZyScmvviRUZSflPxpf9eOnd8Z8V bPLujfCVCaPWZNde8lHfpxatnlAgcVbI5o/07Ir5FoRYC3asNBp+Uul7Y/He 3iXKr+78xvkbo4p/0iOiiHljevbbE6MDX8zX7ctvjiw79uNLb42o/mB90qKp QaLLmh61ihc1MvIJZygL9Q5jhWKbf/CVJ9Dj8cT/yVD8rwwZvrHPlkLqnNmS 6cRGzkOV89BI+498Dvh5wN/8/B9Dov3pM61V3bJuZp85fWDFjDeORLz/1JTP u4+v1/36mtQ7K1ZOHLDh+JrKowvv3r3oubd6VA756f6dKu9vuJ00bNW1qwsj vty544VujVasGyLCF/dOjx05v/ftpIkzDiSd+nLetwvbFR8W+0nK5Pj5M0tP WtI9/UDTvudPdPqg8d7fTw6rWq+p4Tl/5KXRM4p/16XCgkttCu+ZeDLrSPvZ A/fG7Z09YM7bPZ5vXfxS/UNdu/boGbNgSN1FW15tFvx62VLDvipwfM7ilFKX Wl9J+KP72sSpv9RsZ1pTdjVvVeqdtu9+dLv/wu9PFxzcL+2D4a9XeC1x1uWL PZvt++HC4OCDcZ7po9m7bxZeH7J13YGrN85UurqsV+xVM+qZz70hUYbf284V efNPcxffYHD1WOKyoe33t7kaGl02qOKC91Z8884ffzPyLct5tkpg+nwj/YNx fzmKzE9b+N8Y//4cLDznnfg1NZoYjTMbZkaMb4AmfoPc35M780tJTMh5tn5K anKfoXFpQ+rndIAc/h32ee6EsA2aiUYZkUajxzNR//ECfu/w4cP/6vfGp/75 F6b91ZzQOnZthjW327slu3dISjjjv/viugeHPmv9Yf0VL3cIPs43/jrgQvCD SuWGN1zUf9T6GWMnd7sZtfOVufEvTWzbbkxGyTuvDPk+a1u3vf4pX4cPfPLT mJKLJu3YdG7+vvlD339r8DOhOzp5Om349dXw4z3EgyPVRvWYc3zxg9s3I8ut 7Nj8w5Yn37JCuhRsdeMWm/DUp4Fvdi0RH/BT4XYH5heZPHvrseylBwqUqlZp w8bOk8of7DpeLdr7x/IJV5aZjTZFJZ4Nu9Hs07GrfrrRce38lp/Gb2svj+25 FBQXGDQiqe2jllvmXo56ccKJDwuNu/PCF3XOnX+567Pn+cirlV97u0jddW27 7vqscZcuK77df7Z+9v4rg+aZI1lG4A/OsHnS38/PSN/wPzM45hngfRo7M/0P o+TjG2oNP5Y/wPmenX+Uc5uFr75gACuCzbnz1n2PCrMnDPzTUkYVX8NA5vTb 6/cLD04cMXvrtu5NZ1ept2rz2F1Nthjp41GbImyEMSzz+XHPeiI9qZ4ET6xn oCfME+38ner8SfYMdx41ybXxfZz/18qTlvsvEjxxzqNOnnjn3wxxHiV7kpzH 3FPPIzzm/PBxVf8W+LSRKcn9UmNT+o/89xAzMMPPE/LazJoNyp6YNbtBx6nD Nm9qurVV+l6/cslBFQLOHHlv7SfL/HesGRi1tePY2Cf8ptfbkqXOVX3t7i/R 445U+r3o6gczx/fbUPBWRGbjAdu3vd5vz4CyQcWHv2IMPTdr6ncHP5z75p6u /d5tPKH58qP9fl+456MOQ7tMe+12u6wxn50cFl/p3H57WNHGD6pfubKm2Zjb Tb/2zE0oMWt54fLH1lxn7X4od2ZC2Je/ljt5OmnJzE6TX7reecbrYwoEPgq4 N2Bm6WdPspgiF6Zkzbs2fdKM4CKvLPik6MKY8lf/lf/gpulm4vrM6FM7bs9v nb05tfGCNaV+aHXuoeo/pEW73ftG9PLEXWaPHox8d0SVaVWv/rzPr9SLGd/P z3BipQy/B76vMYhl+F1xnrqUw3y//4jp/Au/WiSogPcN+DtDT+YLRhkMZGHf eo+fw+Pjn+RjRXODAJNJZhlMODOepzCPJQKLLe/ccVy3+VPnNO545MvUtb13 /wUClfrfYs9sqx5+9OUe32dEbKm6cXm55gWiZp7/ZfDDI02yv3pl+azEaeEH eatlrZOCj/Vpc/3DcTvrDG7cMmVds4SIjFrZn9wJV4N+LDts2rSV/vXLnKt7 aljTUQcjrx6PmVGz9s/7E3WFR5EVw7ovuHz0tnlgVMZH1+oNWPVbpWrvtDi7 d37c0SXffH4l/FK5X68v737tk8WHF/7Sb/nM+VNVmx+PPFrvuVvw++ozf249 JuzDdoM6XU55uv7oL5LUvjevLq19pHtK0fSQgx37Jcofyz/V8q1ODZ4dezLh 95fqjdt70C9j5r9SsoLW9r5RutOKa/WOHIl6FN2oV5Wae1Y2nt3xrVrhP/Ve dPk7UXL74Tb1+vTvOvrzEKf//x8uUbsgDQplbmRzdHJlYW0NZW5kb2JqDTYg MCBvYmoNPDwvRmlsdGVyL0ZsYXRlRGVjb2RlL0ZpcnN0IDQ2L0xlbmd0aCAz OTEvTiA3L1R5cGUvT2JqU3RtPj5zdHJlYW0NCmjelJFfS9xAFMW/yoW+KO16 Z+7kL4iQbNw2UC240i0seRjNNA5kk5CMrfvtvZOtKMKCfUom55655+QnCQRI BSGBDICSGGQISiiQEQQhSzE/EpAJRGkE5+f4Y6zNaLvmpKxN56zbn+KNaezk xv1JVvd35hTXj8PQmh3LIC4u2JNN9/6QqgizP83G1u4BVES41MM3Y5sHBzEl WJjD2IKkwFWrmwkU4arvXJ73T9uFTGjWQAohvKOaxZVtDYHiGjfz+VrvDGb5 sri8/JyNVrefSFzrcez/zvLmsDAQAkunW3ufdU1rQOB3o2vuxf3xSj8dQkre iWtndj85L97uBzPf4ZOOdnD9iL/+FaCQq26DLXEsGcttQqKquHquJ+MtRxIt y2K9n3hB2f3uQdLcgj/e9l/L4koP+PKXsdjMvd/t9+i8Zf1453w6tvoBn5Re 8+LGw+U5jsh4+aU6RiX9XyokguNUwg9Q+ZL3bX1A8RZQ/A7QIj2L34AhoV7A pB8AQ7GqngUYAP+j4dsNCmVuZHN0cmVhbQ1lbmRvYmoNNyAwIG9iag08PC9G aWx0ZXIvRmxhdGVEZWNvZGUvRmlyc3QgMTIvTGVuZ3RoIDE5OC9OIDIvVHlw ZS9PYmpTdG0+PnN0cmVhbQ0KaN6Ej80KwjAQhF8l4FFlG/GnghRarSiIB614 jk3QhbqRZEV8e5OC9uhlYZeZ+WblXCRilAgpU7FYQKG8WVtiyIvlqiz7uUPV 9EbJXjlnX7AyvjakFXEUeSGnwX2Akmqrka6w1YYY+T3cwPF54ffDQBVGApU9 EQaREePWEa8QM7LsL3VQ2EZvWTVYd6QzUk4ef/saneflTTkxSdvgWNXhg60T ctYyd6pT7NU98KddS/c01bdu6w8EzbfwYhrNWfYRYACpnGF+DQplbmRzdHJl YW0NZW5kb2JqDTggMCBvYmoNPDwvTGVuZ3RoIDMxNjEvU3VidHlwZS9YTUwv VHlwZS9NZXRhZGF0YT4+c3RyZWFtDQo8P3hwYWNrZXQgYmVnaW49Iu+7vyIg aWQ9Ilc1TTBNcENlaGlIenJlU3pOVGN6a2M5ZCI/Pgo8eDp4bXBtZXRhIHht bG5zOng9ImFkb2JlOm5zOm1ldGEvIiB4OnhtcHRrPSJBZG9iZSBYTVAgQ29y ZSA1LjQtYzAwNSA3OC4xNDczMjYsIDIwMTIvMDgvMjMtMTM6MDM6MDMgICAg ICAgICI+CiAgIDxyZGY6UkRGIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5v cmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyI+CiAgICAgIDxyZGY6RGVz Y3JpcHRpb24gcmRmOmFib3V0PSIiCiAgICAgICAgICAgIHhtbG5zOnhtcD0i aHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyIKICAgICAgICAgICAgeG1s bnM6cGRmPSJodHRwOi8vbnMuYWRvYmUuY29tL3BkZi8xLjMvIgogICAgICAg ICAgICB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4w L21tLyIKICAgICAgICAgICAgeG1sbnM6ZGM9Imh0dHA6Ly9wdXJsLm9yZy9k Yy9lbGVtZW50cy8xLjEvIj4KICAgICAgICAgPHhtcDpDcmVhdGVEYXRlPjIw MTQtMDctMDdUMDc6MDU6Mjc8L3htcDpDcmVhdGVEYXRlPgogICAgICAgICA8 eG1wOkNyZWF0b3JUb29sPmNvbnZlcnRvbmxpbmVmcmVlLmNvbTwveG1wOkNy ZWF0b3JUb29sPgogICAgICAgICA8eG1wOk1vZGlmeURhdGU+MjAxNC0wNy0w N1QwODowNTo1NSswMTowMDwveG1wOk1vZGlmeURhdGU+CiAgICAgICAgIDx4 bXA6TWV0YWRhdGFEYXRlPjIwMTQtMDctMDdUMDg6MDU6NTUrMDE6MDA8L3ht cDpNZXRhZGF0YURhdGU+CiAgICAgICAgIDxwZGY6UHJvZHVjZXI+Y29udmVy dG9ubGluZWZyZWUuY29tPC9wZGY6UHJvZHVjZXI+CiAgICAgICAgIDx4bXBN TTpEb2N1bWVudElEPnV1aWQ6MTRlMDJkOGQtYWFlYi00YjY1LTgwMjUtYmJj NjM3NWI4ZjNiPC94bXBNTTpEb2N1bWVudElEPgogICAgICAgICA8eG1wTU06 SW5zdGFuY2VJRD51dWlkOmE5ZDdlNDcxLTM3NmEtNGJhZi1iMDlkLTZmMTM2 NjkxZjU5YjwveG1wTU06SW5zdGFuY2VJRD4KICAgICAgICAgPGRjOmZvcm1h dD5hcHBsaWNhdGlvbi9wZGY8L2RjOmZvcm1hdD4KICAgICAgPC9yZGY6RGVz Y3JpcHRpb24+CiAgIDwvcmRmOlJERj4KPC94OnhtcG1ldGE+CiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAK ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAg ICAgICAgICAgICAgICAKPD94cGFja2V0IGVuZD0idyI/Pg0KZW5kc3RyZWFt DWVuZG9iag05IDAgb2JqDTw8L0ZpbHRlci9GbGF0ZURlY29kZS9GaXJzdCA1 L0xlbmd0aCA1NC9OIDEvVHlwZS9PYmpTdG0+PnN0cmVhbQ0KaN4yMlQwULCx 0XfOL80rUTDS985MKY42MgUKBimApIJi9UMqC1L1AxLTU4vt7AACDAAkNQzw DQplbmRzdHJlYW0NZW5kb2JqDTEwIDAgb2JqDTw8L0ZpbHRlci9GbGF0ZURl Y29kZS9GaXJzdCA1L0xlbmd0aCAxMDQvTiAxL1R5cGUvT2JqU3RtPj5zdHJl YW0NCmjeMjJSMFCwsdF3LkpNLMnMz3NJLEnVcLEyMjA0MTAHQ1Mj8yhNiHx+ kUZyfl5ZalFJfl5OZl5qWlFqql5yfq6mvm9+CrpOCwNTU1NtA0N1AwN1Tf2A ovyU0uRUXAbY2QEEGAALcip+DQplbmRzdHJlYW0NZW5kb2JqDTExIDAgb2Jq DTw8L0RlY29kZVBhcm1zPDwvQ29sdW1ucyA1L1ByZWRpY3RvciAxMj4+L0Zp bHRlci9GbGF0ZURlY29kZS9JRFs8NDRGNEQxNzA4RDQyMUY0NzkwMDIzRUZB MEU5MUFEMjE+PDAyNDdFMUE1RjI2NTdBNDNBMTM5MUU2RDlFMjY0NjZFPl0v SW5mbyAyMiAwIFIvTGVuZ3RoIDc2L1Jvb3QgMjQgMCBSL1NpemUgMjMvVHlw ZS9YUmVmL1dbMSAzIDFdPj5zdHJlYW0NCmjeYmIAASZGppNfGZiADBsQKRgB JBl9DUBsRjUQ6X8ALPsULKICInmXgUiGSWCRY0AT/pYlgEUYGAmTjL8QbKb/ YBEGgAADAG97CzsNCmVuZHN0cmVhbQ1lbmRvYmoNc3RhcnR4cmVmDQoxMTYN CiUlRU9GDQo= ------=_NextPart_000_00A9_01C2A9A6.210A6442 Content-Type: application/octet-stream; name="Google PROMO.pdf" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="Google PROMO.pdf" JVBERi0xLjUNJeLjz9MNCjIzIDAgb2JqDTw8L0xpbmVhcml6ZWQgMS9MIDIz MjQzMy9PIDI1L0UgMTgyNzczL04gMi9UIDIzMjEwMS9IIFsgNDk2IDE5OV0+ Pg1lbmRvYmoNICAgICAgICAgICAgICAgDQo0MCAwIG9iag08PC9EZWNvZGVQ YXJtczw8L0NvbHVtbnMgNS9QcmVkaWN0b3IgMTI+Pi9GaWx0ZXIvRmxhdGVE ZWNvZGUvSURbPDQ0RjREMTcwOEQ0MjFGNDc5MDAyM0VGQTBFOTFBRDIxPjww MjQ3RTFBNUYyNjU3QTQzQTEzOTFFNkQ5RTI2NDY2RT5dL0luZGV4WzIzIDMz XS9JbmZvIDIyIDAgUi9MZW5ndGggOTAvUHJldiAyMzIxMDIvUm9vdCAyNCAw IFIvU2l6ZSA1Ni9UeXBlL1hSZWYvV1sxIDMgMV0+PnN0cmVhbQ0KaN5iYmRg EGBgYmBgWg4iGb3AZCOIZOYHkSzMYJIHTMqByTKwbAqYPRXM5gOTd4Ako9FB ELvDHsSumg5iByQDyX8RQBJo1zKQCNAGqpH/GRivfQYIMAD+kg01DQplbmRz dHJlYW0NZW5kb2JqDXN0YXJ0eHJlZg0KMA0KJSVFT0YNCiAgICAgICAgICAN CjU1IDAgb2JqDTw8L0ZpbHRlci9GbGF0ZURlY29kZS9JIDExOC9MZW5ndGgg MTE4L1MgNTg+PnN0cmVhbQ0KaN5iYGBgY2BgsmJgYWDY2M8gxIAAQgzMQFEW Bo4JrZEODAxTGBjkVx/g6GDuaADzgYCdgbm6GUjzA7EASIBRhUGQQa+h6kD0 A70G8QucHiwNTIUMXxny1IxXJG4+PdPij2MD1HQuBubO+yAtQHwMIMAAPpkY rQ0KZW5kc3RyZWFtDWVuZG9iag0yNCAwIG9iag08PC9MYW5nKGVuLVVTKS9N ZXRhZGF0YSA4IDAgUi9QYWdlcyAyMSAwIFIvVHlwZS9DYXRhbG9nPj4NZW5k b2JqDTI1IDAgb2JqDTw8L0NvbnRlbnRzWzI3IDAgUiAyOCAwIFIgMjkgMCBS IDMwIDAgUiAzMSAwIFIgMzIgMCBSIDMzIDAgUiAzNCAwIFJdL0Nyb3BCb3hb MCAwIDYxMiA3OTJdL0dyb3VwPDwvQ1MvRGV2aWNlUkdCL1MvVHJhbnNwYXJl bmN5L1R5cGUvR3JvdXA+Pi9NZWRpYUJveFswIDAgNjEyIDc5Ml0vUGFyZW50 IDIxIDAgUi9SZXNvdXJjZXM8PC9FeHRHU3RhdGU8PC9HUzQgNDEgMCBSL0dT OCA0MiAwIFI+Pi9Gb250PDwvRjEgNDUgMCBSL0YyIDQ4IDAgUi9GMyA1MSAw IFIvRjQgNTQgMCBSPj4vUHJvY1NldFsvUERGL1RleHQvSW1hZ2VCL0ltYWdl Qy9JbWFnZUldL1hPYmplY3Q8PC9JbWFnZTE1IDM5IDAgUj4+Pj4vUm90YXRl IDAvVGFicy9TL1R5cGUvUGFnZT4+DWVuZG9iag0yNiAwIG9iag08PC9GaWx0 ZXIvRmxhdGVEZWNvZGUvRmlyc3QgMTAxL0xlbmd0aCA2ODYvTiAxNC9UeXBl L09ialN0bT4+c3RyZWFtDQpo3qxV207bQBD9lZH62MLOXm1LKFISkrYS8ACo VEI8LMEKloyDHNPSv+/MOk6cEIKTVquJd+eycz0bIwHBKDD0qyEyYAyohM6W PhEYRwyiCFxMzBikRAsmAamcAosgLcZgJcgoScAqkInTYDUohfSlu5RGODkR g3NxMSuffC6u/zynYvRafb2qfJWKiQc8tkh2vd4HejJo9OeTtKggsij6v6Y3 2UP1SI6lGPrnb2k2faxFp2mtdqToMM79dA5aifGsqAaD2evtkaXwWEaJUOpk cReE4yxPFWhLRbkMjAv/lIr+YHg6Gn0e+jy7L7PAv6ldGUTxvSL+pF9M8xRQ nPvXOiYZGS2uqvTpB4VXZ8OGHFiZPVezUvxcxEth9Hq3Srk7LoCfp6y36XRU TGYPWTEVN1nRL+bZ8jzOynk1fPRlk+DKA7eUEznzK42Q0FiKq5f7imO6Ll/S ENwyQhHin/MkkHG75ol2q5prp9o1V3Gr5nJrzSWNEMtAIiJbrNXcba15v8x8 /knhhS/L2e/dpT9LPVeEZrLVBXK66AIF36ULMcXRLEuDj6AiHYg5LA9n/hIZ 6zpRo1/fy5xYq3B/IEJcIN6jBKfjcK4tmMsWLtaBG6QMyYVWY9Xso8gsY2+v ZTwS1+Jq9twfJpbzl/29yYNyZ/nSjvbsN9y5oP+92M/q5NBsw8nGoBwGF7cO F+mSBV5UF7xEB+MF4214UdIE2Xa8RB3w8qUGyC7YHCXH0RI5SrWQQ+73Rc46 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 KWjc90nGYV0jHzSq/LNky1HsedcdcWv/Jy6UtN6Cjf+4YzjXdK0un4onc3Su WZfMQ3Ub9dA0k8g9axJ4vRX1LrqqbpixYS3g6Aa1nJ2SDASYMTTQrzzIXgZI nt1alGZ3t5GE9QrKow8whNRbWkdao0XqNF7KjeWPELBOjIuRNyFYTBzb1Jp4 h5g7trrUa43w3csZz/defBk4u6yKd3prUCBdl3IJolbWBLmt6oAQali8+m16 gAavFCcbzpiB4BKb5wkbI8JecOzR5oFyPVDBRWv1DEN2jHP/i30z0kgWcSGa eIGidPSeINaZfgaZCTyOfMDA+OLAjTS1qyV+3Z9qN45rcjr7QcVNrjK3za0X 1qNDV+sQgXMuQGTX+5nWrXrIcfMMCHhhM4XefoqJJTrtnuLAPLVQMSCKnLDH l85O9thSzj3ycMXVed8Y7nmEZD840qCIu2n1Q+F8h713zTsHEdQF1xpfrTjc C9w3fK3x8MTo87Ihzz8BBgANzZB4DQplbmRzdHJlYW0NZW5kb2JqDTI5IDAg b2JqDTw8L0ZpbHRlci9GbGF0ZURlY29kZS9MZW5ndGggOTg0Pj5zdHJlYW0N CkiJXFWxjlw3DOwX2H94ZZKClkRSotoAtgG32S5IZcBO48r/D3hmdD7vGQfc QnoSOZwZUjePbqOuaN1mXO5pvV++02JdPso2NmubX5/vt//vty9/3W+e3QpX +rAR1zds+La9rxhhPXSrYeXTml/ep40rYtkejOF9mXNjW0t8LYu4Ipt15Ovb cmIFSFuH3W04Dk99RpDWserm8/LZbJ40Q+gIS5HT8BWHNkMFf9wH9mKGuf+M i2pjpjnieijSnBZdFCzknMti6jDSTmxkWuJwAiOzIAJWq1tg5d1W6fBqxB4O cChvbgKPgTugYhZrDvCDPEIcBhQAw6/RlMbLnCRO20tpXlCgTufnkEAsssT4 QhpAawjUodqJ69Kjo15+HbZxszuRvRXvSdRy5mXCJU3XsEoR2HFrDnJOBpFW MQBuJasTRZvKB+4EEkIukoLiF+tiRNB5Dg7RM0UBS66tg0XitwVWoHQcehCH Za1la6mMxOcKqkwZOuDtRiQ8DDskNuBVOndCfq7AOFcu9DVtzp+HJxCiZjDj uURJdZUKMhl5FWvR4TxmWbLSghfphqU8DDlk0H30r6SYNCEqc4ANriATV08U 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 UC71RK6rZ3RSraQaDRAFyguGAfpeUDnl4PS0REukkwiNrD4owbraEmdtYL/W XIzFGba19DwbhKoXuNI2ND2ScxytNrrRrtL4KDgQrMEoabsw9FPXCIdjzsee b1mTztU8aXNiJqcS6Oev/PA0aDioTTDbofzAC1QdjNIlz6eExecBcy2m7NgD 51asbcnif+yx3p6nYKtoRPlkoaJgyHKsKfipzzb3sVdNwfJH1VFhneUuUVyr XAqFXf3GG10PmI5Lgs8nSoWBHToWj/X7gdYNb214W6a7Qi5Gkoi8SCVXttyy MI6V77CXjmZO9qq+96onbmuMDOM6gx8ysinxJYIlesqjV9cE4ag3XUxGQoM5 7y6VPohvlTrtdLZzTvcvrs2dvehuPA621hdqoyGVc9yeRKN+l0mtwheG3MUz 7Eyxa0zbOs/pZo9oFgaeCpOhZrf0jXza8n/YIFXJosV+Rx5523ibHQtjuNgg c8lfbnW9RunNwd4S0/XmM9Wc9aayzlEddd0B7Qztflvl5fS6UVOHee0k7DUN LgS6H1T6ve5ypfnylJNxxZGrfSU8X85isZJ8l3C9e2NmJrftK6Z8S27rtoM1 +Ipi940rnM7O7uXy1lHuUbyhtR+qhdP6fgybqniAhT8CDACzPdbkDQplbmRz dHJlYW0NZW5kb2JqDTMyIDAgb2JqDTw8L0ZpbHRlci9GbGF0ZURlY29kZS9M ZW5ndGggODQ3Pj5zdHJlYW0NCkiJjFXBbtswDL0H6D/waAGNYNmOE2OndWg7 7NAVaG7tDo5jN0LduLOVZtnv7EdHUpITdzU6FFUkmSKfHh+pyX0wFT9g+e1s crk8m1zgv4IQ/xQslFykCSRRIrMMls9nk/vgWcRBLqZxoGuRBHAppklQl4Wh rbbZ0lIXMOJQJQs5H/r7LhbBlg7XGv3xrKQB7sjVXqjIrnl4oaEzeIQhPPFm 92kkWpQoGc2G4caQRUkiQzW0PQaHNWJreLbCWdnj5dmrtdlrsjcbMZ0FcGjw 645JgZdWj0SNZ5lcxMOov9nbOdCIXlLrBb0T3zUUDIN5MhgwxKkzsSgMLt8g hZwgFUYj0DQAzYcHCEfgzSMZRph/paTy8DgFzL6hdLv5Izr28XEk2HDtZ421 IM5KwHVub5AGaz6hTYcJhVvKd9us6YdhFXQ700k2+kzbgHYXYhqhh9RS8ARf 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 LYsyX+gWIruyqrSTsgIOLJF783voZfT3aPq/52tpJtceNE9cVsCcGOl9mF8z Mwh0Mx14rjl2f5wNOBhfxnbkVSahZot1+sVhSM4RiUHQDdV2895AgaqKuG8A BFwg+Vd7h2GWwBQ5M3QOgDBkKrV1W0wbJtAaWpybvNTHQ5ymcdGnsck3MIM3 zBUyS5nkl8HrcpBJJuMLB3AasvhV3UffG4QsNB8gbZxAY8MfiBLupRRGme9N r0gFLuGGUuhW4o2V6EfUV2QOjoff1rNlzhVcQeSX75H/AgwAa+CG2Q0KZW5k c3RyZWFtDWVuZG9iag0zNSAwIG9iag08PC9GaWx0ZXIvRmxhdGVEZWNvZGUv TGVuZ3RoIDc4NDQyL0xlbmd0aDEgMTczNDcyPj5zdHJlYW0NCnic7H0HfFRV 2v45904vmZkkkzZJ5oZJQiCkkFASQBhIo7cwmIBCelFKTKEJiqKgARTXrqjo 2rFMBtTYG/ZeVnftrK6rq9hWXUUg/+fed04IrPrf/b7dz/X75pw893nOe8o9 5z1lDj8zkXHGmBsPHZtdWjmlYvu5W8qZ1L2HsaS3yiaVzssb6riZsR3zGOOP l02aXnJZS7mdsSvTGZPyK0rLyv/86NeQG19lTP6sYvasymlDx0iMXZPM+Pbu isrApHPGTH2ESeNvZGzysFmVeQXfv/U7F9r6Pd5aU7+0tm1MSC1fYEIje+pX dCrBy/e8zFjtd4zpk5vampd+++0MG2MjnmXMnNRc29HGkpkP749FfWfzktVN pVFd7zPWjLR1VEtjbcPnLulqtH8c8ke1wGC/1SYjfQHS6S1LO1eN/tz4Bt5V xFjeiyc2ti/jg/hGxrZtR37CkuX1tUm3JDzMWPt0xlJnLq1d1ZZWmP4c6vci X1lWu7Qx5ZaTTkP53YzZx7ct7+js8zDUv+JrNb+tvbHtxNulQ4wd8xFe52Sq b/VvDWkbnJuy2DHuG5aIYSLc+8naZ1V+3r5o3w/7D242f2oahaSZSYwC6hnY Icb3WHb8sH//DvOnWksDgukR1eLIZLOYno2DlpiT5bFGxlzbtPdyJuuy+Tbk mvSX6gvRZCqx/CLbKDETkxx6SZJ0sqR7j0l9fnZLH72XsRmVisL8jKUUUx+M V0qZCuNXqXnyXfoodaRoPepwb/gL7P98MLzObvml+/C/Jega2dW/dB/+mWAw /Hv6K+/7dfnh3xF0I1jNL92HSPjvB+lpdukv3YdfQ5D+xCb/V+rxb9mSf3Vf IiESIiESIuG/HqTLueUn82rYvv/JvvxagjySbf6l+xAJkRAJkRAJv66gW8rO +aX7EAmREAmREAmREAmREAmREAmREAn/e0Lk35mREAmREAmREAmREAmREAmR 8CsOchjJ4W8brEEKSmpiOrYI6WjmhEX9joKdDWIzWANrZztSivv6tNJ2phxh 433fMNb3N3YnT+qr/2RTuM2oI98oT5UvZgb+qZb68uhvOWjfa6DvREjs5wMf 0N6/I5T+M4V50s/kbfnvduV/OMj/0tb+rSvJX9GweNHxxy1cUF0VmFc5d87s WTNnTJ82dcrkivKy0pJJE/0Txh8zbuyY4qLRo0bm5eYMy8rMSPcN8ibEupwO u9ViNhkNep0scTaszFdeowQza4K6TN/kyTlq2lcLQ+0AQ01Qgan8yDJBpUYr phxZ0o+STUeV9FNJf39J7lTGsXE5w5QynxJ8rtSn9PIFc6qgt5b6qpXgPk3P 0LQuU0vYkUhLQw2lLKGlVAnyGqUsWL6ipbusphTt9VgtJb6SRkvOMNZjsUJa oYJZvrYenjWea0LKKhvTIzGTXX1tUM4oq20Izp5TVVbqSUur1mysRGsraCgJ GrW2lFa1z2yz0jPsoe4tvU5WV5Nta/A11B5XFZRrUalbLuvu3hR0ZQeH+EqD Q9Z8kIAhNwaH+UrLgtk+NDZtbv8LeFCf4fQp3d8wdN6379MjLbVhiyHD+Q1T pTrEfjchX2iGvqGHGF9amtqXzb1+VodEcP2cKkorrM4TYv687OqgVKPmPCRy 3AE1Z73I6a9e40tTp6qsJvyzoiUhuL5OyRkG72s/GfhBvhKUM2vq6ltUrm3s 9pWWkt/mVQX9pRD+2vBYy3ry81C+tgaDaFXdMKcqmOdrC8b6JlEBGBR1Dlor q7Qq4WrB2JIgq6kP1wrmlZWq/VLKumtKqYNqW745VXezwr73ekYonl2FbASr VvsRjCvBpGSWdVc1NAW9NZ4GrM8mpcqTFvRXw33VvqrGanWWfM7gkPfwujTt jVotjO2o0qKwOnJjhkmpkjxytTpbMCjlePgmjUOGE9OlJdUZnTROqeIeJorh LeESqjqiHSTkjJLJapasVi2Z7EmrTqPwM13yhPukzwiaBrTlhKG/T/Sen+wa lVY7NEQpaywd0MEjGtWHOxhu7cf7Kam+CL8YNUzqdE4WWXIGdi5sEprRTOos JihBNlup8jX6qn1YQ/7ZVerYVF9r8zut0jdtzoIqbbbDq2TeESnKL6JUkKUh WySkEqzB8myPmFYtXaGl+5OTj8qeIrKVbpNvWmW32rgv3CBTsIMwaEPmlNrN RdEjsDXLcbr5ymt9ilMp767t7Vtf193j93e3ldW0jFHb8E1p6PZVVo3zaH2d W7XOs0Z9VTSbxqfNm5QzDGfPpB4fP2tOj5+fVbmg6m4nY8pZ86pCEpdKaiZV 96Qjr+puhTG/ZpVUq2pUE4qaUFuai4RJK++528/Yei1Xpxm0dH0vZ5rNJGyc 1fdKZHMKmwSbjmx+zaYGTFJCC1yM47ZMaVCnZ211S3dNtbq5WBymEj88yH3j WVDyje/hksEWtPgaJwWtvkmqfYJqn0B2g2o3YmHwOA7nqGdSd40P5xQWVBXz cFqKstqk0tvXN68q7TnPvuo0LLXjgAVVQXM2zn59xlSUq1BRA3NFcH19rdoP FqhS6xozptRXY9mKBlFkStCMFszhFlCiXKujLkdUqsfcYAK1+uuRCK6vDlZn qy+taq3WlrMzyCb7xmDaqU19pvqivOruaF+BtjexFSwZm1Qyo2+ssoosHiTx smpyktGGntf7kFVfo8DbOlZfiaVOZ6nFQ5ZGHIm6zEYNFk84k6nDkjOsdkvQ nIsG8aNqa666JfUZxupq6ryW2hQugHc7g1b0KHOAK8MV4B1kTVH7gp9N6Kpa 9GG1mTm9bK5vFU4WtdNaS0ZkB+0ZU2px+FN9Kyy+IlHZpJ4R1nAbe8hqVEdu g9/ljHm9fTf4VqcNCDnDfOqHg7owmeduLGxW3X20IbgwO2eY6WirXTN3d5vs P16B/GWy97NqVMrwqcFYyCwrvdIZu80JfCrEBiFOF+I0IdYLcaoQpwixToi1 QpwsxBohVguxSoiVQqwQokuITiE6hDhJiDYhlguxTIilQiwR4kQhThCiVYgW IZqFaBKiUYgGIeqFqBOiVogaIRYLsUiI44U4ToiFQiwQolqIKiGOFWK+EAEh 5glRKcRcIeYIMVuIWULMFGKGENOFmCbEVCGmCDFZiAohyoUoE6JUiBIhJgkx UQi/EBOEGC/EMUKME2KsEGOEKBaiSIjRQowSYqQQI4QoFKJAiOFC5AuRJ0Su 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 gEnARMAPTADGA8cA44CxwBigGCgCRgOjgJHACKAQKACGA/lAHpAL5ADDgGxg KDAEyAIGA5lABpAO+IBBQBqgAF4gFUgBkgEPkAQkAglAPBAHuIFYIAaIBlyA E3AAUYAdsAFWwAKYARNgBAyAHtBN7MNTBiSAA4w1cNj4IeAgcAD4AdgPfA98 B/wN+Bb4Bvga+CvwFfAl8AXwOfAZsA/4FPgE+AvwMfAR8GfgQ+BPwAfA+8Af gb3Ae8C7wDvA28BbwJvAG8AfgN8DrwOvAb8DXgVeAV4GXgJeBF4AngeeA54F ngGeBp4CngSeAB4HHgP2AI8CjwAPAw8BDwIPAPcD9wH3AvcAdwO9wF3AncAd wG5gFxACeoAgcDtwG3ArcAuwE7gZuAm4EbgBuB64DrgW+C1wDXA1sAO4CrgS uALYDlwOXAZcClwCXAxcBFwIXACcD/wGOA/YBpwLnANsBbYAm4Fu4GzgLGAT sBE4kzVMXM+x/zn2P8f+59j/HPufY/9z7H+O/c+x/zn2P8f+59j/HPufY/9z 7H+O/c+x/zn2P28HcAZwnAEcZwDHGcBxBnCcARxnAMcZwHEGcJwBHGcAxxnA cQZwnAEcZwDHGcBxBnCcARxnAMcZwHEGcJwBHGcAxxnAcQZwnAEcZwDHGcBx BnCcARxnAMcZwLH/OfY/x/7n2Psce59j73PsfY69z7H3OfY+x97n2Psce/+X Pod/5aH6l+7ArzwkLF7EmPFKxg6df8RvUc9mJ7AOth5xI9vKzmcPsjdZHdsA dSnbwa5nN7Ege5g9xV7/V/5K+KHV+qXMJt/FDCyGsb79ffsOXQ/06qMGWM5H KkanHLb0Ofs+O8r22aHz+5yHeg3RzKLVtUsvw/pXfrBvPz5fke4bpaalTdAO rcaXxisP3X7ohqN8MIctYAvZcex4VsNqMf4G1sJa4ZkT2RK2lC3TUsuQ14xn E1KLUQpniaYPl1rO2oB21sm62ArENuiOcErNO0lLd7GViKvYaraGnczWsnXh 50rNshY5a7T0KuAUdipm5jR2uqYEk2UDO4OdiVnbxM5iZ/9s6ux+1c02sy2Y 53PYuT+ptx6R2oZ4HvsN1sMF7EJ2EbsE6+Jytv0o68Wa/TJ2JbsKa0bNuxCW qzSl5t7HHmd3sNvY7exOzZf18Bp5RPilSfNhG3ywFiPcMKDH5L+V/d46BWNX x9YdHukq2E8fUGNF2I9qyQ0oSa3QPKitrDvKE9swBtKHR0SpC7XxH7YO9MrP WYU/tg/wzOVaSlVHW39KX8SuwA68Gk/Vq6q6BprUVZoeaL+yv+wOLf1bdi27 DnNxg6YEk+V66BvYjdjbN7Od7BbEw3qgIr6N3arNXJD1sBDbxXZjJu9kd7Fe zf5zeT9m3xW2h/otd7N72L1YIQ+wh3DSPIIoLPfD9mDYukezUfoR9ijSailK Pc6ewAn1NHuGPcteYI8h9bz2fBKpF9nL7BX2OrdDvcQ+xvMge1H/AYtiExnT 3wM/b2eLEPU4lTrkl3GKyMzIitkMNpMtvI/Z8XEfx8bwO+5wl5aacowP4KNc YgouAybGeYnfoZPsdyUlTfDdNdKwVXZN6eU5uycYt+KaO+HgOwefzzv4zr7o 4rx9PO/tve/sdX75vKs4r3Dvq3uH53NXmktDbJRkNMYafINypZGDM0cVFhaM l0aOyPQNipI024hRo8fLhQWpkhwrLOMlNc3llw8skGcdNEin+CbML9SnJjli 7Qa9lJwQnTMuw1m5MGNcbopRNhpkvcmYNXrSoGlLyga9YXSluONSok2m6JQ4 d4rLePBNfdT+r/RRP5TolvxwgWwYe9yEdPkSi0nSGQy9qQmJQ8emTZnviHHq rDFOV5zJGO2yZZUed3CjO1ltI9ntprYOzmCc3dK335AND45jt/idNePbxkv2 /Pz4vDxLbkJCUm/fR7ucfAb4i12OMNs1/naXTeOPdllVllz+1PThNpslAcUt Tof6QEGLBaUsCShiuQf/BmF9D/kTkWDpo+ZYE+LteQnDcw3erDneQHRAH2AT EKLji12FE3jeq9l7tY/AAlehs1+5io/JKyx0FQ7PPz5DONbl41GyqgZzn6vf OEKdk1QpnhdyTIQq3YZsU6w3MT4txiQdKpSt7pRYd2qsVTpUwU2xSmKCEmMc 5mlR8tMTzHylnm+0JnkzE5c6PDG2JJPNqNcbbSZd8w8XGC1GWWe0GOD4S/vt 1w9NtyVleQ4cK1+fOjTRao5JcWPBXc2YfACfe9HMywbdx2Lwj0TGkqRYv9mc 8H1Ug+d7fTObsG8C1hktLrXzvkGZWufT0GPjiFwYXOrakg9M6X5y6w+x6emx 3NX98IbSYFZg05LztjVtrB4mebc8u3FiSpp8bVpK2RkPnjJ3S/OYA58Nb7xY /bbd1X379Y3oQxGr2D3MnTM4oZf3+c2D7HmWnJxBIyxqysUGjWzIibPKKZkN KS3OFn2LmAh1GvYWRMPp0cXFzr0FruLi4fkDHW8w/H8dH+fWNxpjlPhEJdoo Hdqs82VhEZrlQ5dKxmglMdEbbcxMWOIdlgavD9HxAlti2pDkpsT0eKPVqNPh Ia88cIbNJhvMBnntgbP7rU8MUlSPHxwhPZk6NMmqDFL93bdf3o6xFjI/O+Zu ZpHcu4c7s10j1F8QyBzr6oXnHcnZrg/Hjo0v/lZpiA+PVNvrxZiEglf3Ypyv 7T08xsGDc2XfkYNTJ8atbv9UOT4+Lk4eMEfbTe6MZE+a2yLPd6TnTxzRrK2r tFgTJi2p5syF+Skjpw/35GSkOastxk/d+dP8F54zfmZBYowRg5PNUdavhpbm JR2a1T/IZ9JSMsubJ46YX1bgtKbl+7M+TkqU3vGNy048dFtinl/9tmVN3z55 O+5lmTj9Nvu9E8Zyq6dY3XnF6s4rdjrVB3ZjsboHi+/Fv9IZy+t7T93EeeHN nRfe3BrbwnarypLFb4lJK7cWD/boooaq/5kjYeqIXq7bFTVDPx2uw9qlVUIb 9NXwPi0euD1H0hqh8y8u3hU+B91ypnZaumNTJdV5o+XtRldyrHpAVVy6sH7L sVkFdectnrXBb4z1JmDtmK8vWVc6oWp0onvE/Ilpx/jLBydi98FNNtPKGfNn bOip67z3jIqyEslqtKub0m48WFZ57Li6tf7S0xuPiR5aMlzdDZfihnmD/DRW SP3utpE80xE+xxzhIYO/2O1w8umO8EHn6OXf+aOZPwZnlt+FhwIjS8K+yfCb s6dmOtzKFLfqCiwcdSPvwfg1L6g+4GEfqOM0DlhEYQ+4tU8Ig3SDZDCbTPEp 6e7E/JFjfKZoOowM0cnxcSlOY8bEMcUp9rT0FJtO5nJdXKrLbDabYnOnjz4Y NFlNOh0e8hkmqxlLyGraMKp0sEM2WSzmKI+6PiZLj0lrDC6WzkaygpA5ceS9 +CcyYzn8bL/T5V2aaJazgnEnFVxu65Q7wjNarM0oNn6xeiYZ/vFZHDVaWpOY 5opzGPJqx01aWJykTFw8YfjcLKMjKTY2yWk4K6siK32E12FLLchMn5IrfWCz 67CvJ+YNz5vVOq68Y1Z2ZibP1Zt0sqwz6Q9V5uYqI0p86eUj07JHqrO3RHqG v6T3sByWuWtQEsPcHOu3JVn2DD5pkMOd2ubuODwPX+6JLg6fqD8yAaPUY4nc r+MvSTqj3mR1uF2OZMUXp3dSZxN9vviEoZm+mKi0OKOO6152JUQZ9Qa9NSEr 5dCN6LZO7buUYEOo8GbFm3QmQ1Q8k7il71v+ln4Rc7MhLOoOfYZnhrMcHXv7 +cP9GSlnhv0Xc/T14H6j+vGcHG10cZPbl+zxuU1R5sQsr3dIAj41hni9WYlm 3mWyqfNuM8n32KJteoPNZfuhOC3bY7V6stPSchKt1sQczP2+vn38dt1irSfK fSxOamAKc0vFd1qdQ9GvVoZOOfcM/PRRjzx5xE/17UKjw+OO8zgN3GWISU/2 DMLBZY5LT0nOjDeb4zOTU9LjzHyk+gEp4yH12ZwWvd7qsB1QUgYnWK0Jg1NS shItlsQs9G2z3CRdpu8SXvJkVjgr4KXnCgZ6Kfxi41GWOLe0weCMj45OcBji LbFp8ThjzfzQpiNs+ZnyRuEm/oJQh4YfaXM6+/rYOdIL8rv6jySD6SGmrrNw mo1lRT05ieqvCPjyLSox38he6cw7cuOtcmqWqlI7XB36joEfl/sKnPsGjsEl hy8nsi/m7z4jYwpjxOVEftfoTHTHeKKMH3OzI87hjIsy87c4NzoTYHUYU2PK 45VEp+Ep+RVjtDsxeqolxmaW3tfjCMQhqJf8B++TcY2UdQYd9KP99teS3GjC dfAryR6d5DDobS679q/nq/8zIp/5q4jb/j1RMvwTcf0vHeX4/wNx239g/Pan o25KJEbi/5J4zhHxrf+cqB8UiZEYiT8Rh0ZiJEZiJEZiJEbiPxQvj8RIjMRI jMRIjMRIjMRIjMRI/PVF7b8nq3/rOxZPzgxacgtP6vtA/UUTaRATf5u8QXvK WukoLaVqiUXJOib+qn26HB3WugFl9CxBHhXWhgF2I1shzwxrExuq/a1xVZuZ Iu8Ja4u0o7+8lc2XPwhrGxuqGxPWdukSnSgTxZYYDvT/hfsCY0tYc2Y0XhbW EjOa/iL+lj2LNom/iK8bUEbPbGY5rA0D7EY21uwIaxNzG5eHtZk5zVPD2sJn 95e3smzzgrC2Mbf5zLC28+nmy/r/xvooy4fq/wVAZw77mTT5mTT5mTT5mbRu QBnyM2nDADv5mTT5mTT5mTT5mTT5mTT5mTT5mTT5+SamsAKWz4azQu2vyau/ Zd7OlrMOoIl1wlai/XY+/Y5+LSytUMtYLnImsiWICpsLWzNrQV6HlmoEN6L0 CjwbULIE9ZagTB1srSjRqpWrBZairQat7DKkOmBbpuVR/Vb0QAFqUa4VLaxG aiVUJ96laN8JqINegrKK1ucu1G7QvnPQrLWyPNxqJ0osDb9TLaFgjMu1dzZq 3y1QxzJFG2sTLLXa77y3a6NQNK7VRqm+l8ZRj5xhWstLNcsSrcVa+Ijs4i1L 0c4SzWNt4V4ug2Wp9lZqUx1n54AeqG9s08YivhNB3qa+q29aDg8o2rcBmjUv tGq//69+r6JTS6kj7uyfD/IZvUXR+r4sPK7lmm/rtJKHezxwRKrXVmn1aNQn Ip2rrYeBszlYa22p1sJqzQ9d4Zkf6G91xmj8jVr/1fHTvLRrq0FleqM61wra aOsfDfWxOVymA6k14dY7MQqaoRX9s1SrrZFaWJceMS6xmuvRk1rt/fXh9+dq K7ZZmys15+/3wJi/G/X88MppDa+xkWiliI36mZXeqb2zQVuJ6ltO7J8D4Zsf 23vN4XXd1l9aXbk048tQvlFbO9NRop5laT4dgjINWnsVWt3lWvudiG0YRx7i Si3manvqyPflhlvPg16trcBmrddtaGE1rKrHmrQRqyv1yFaFvUn7JlC7tl5E e9XaGGiVrNZmt0PrYae2jju0fUe1FW0M6h5o1GawVXtHozaHdVpd4a0yFsC4 J4brtg/Iof3ToPnk8J5YGf4GTctPvJfSatl6zGCX5sOG/jXWoOW3aStk9YB1 1aaNdFl4ZVFbjdpT3SlHj1vNpx2ZhVrqTKmroa7/TT/Wq2V/1/I/7qPDrYtT UQmfa51av+uPOF/+fuziNDm6X2MHeEAdCY2FTlnxOdHef2I3aGfWMu3sqv3J kZKfa4/wKe345eEnjYp0l7byurSaDdr+V0fT2N+OWnKJtmt+bob+Vfvi8J7I 03qj7gE6+XO1uWpjq25SCvKHFyozWuvbl3csb+pUSpa3ty1vr+1sXb4sV5m4 ZIkyt7W5pbNDmdvY0di+orEht6R2SWtde6vS2qHUKkuXNzS2L1M6apd1KMhv bVKa/h9zZwPeVHn//fskaZImaaHlrQWUBBB5syCgIMiLCgoFSwVxiJumtAUC bSltCi0IVIqIyhQVEV+myBwydejo5uZ0WQWGUF5EbGuljEIhtMbT0rImzZB5 ns85SUtBdv3Z/7qe53p6X5+T83Lfd+7f93u/nThnSqYro8C+zOVeYM/Nm+vO SLfnLM7LSnNlzc+1LyarOz2Tkllp9tTFOVnpObkJ9ilu+7z0FHdeTnquPSc9 JcPucvMdqbmD7bmZKbQgNSWbc7VIZl6G25VNlVl5mek55MxNd2sV5NqzcxbT brXZ1J6RsXiZfQENt7sys1NS3XZXlt2txkHLKGLPcGXxXYvn2ee65msVh77I nZ7vprBrUXqCPRzmzbn2zJSsAntqHsGH2u1ewPenL7PnpBBLjouwKZiSac/L Vr+GGudzJ9e1nOzuxQS0VA0pxb4sJScz9F2qzKkLUnJoWHpOwoz0+XkZKTlt Doxu/eqHEIdw7LcljLr9CtHdOSlp6ZkpOYvUCNTWXHZvPlpnq7dTFxN4lis9 N2FaXmr/lNwB9rR0+305ixe7F7jd2aOHDFm2bFlCZmu5BLIPcRdkL56fk5K9 oGBIqnve4ix3bjirej4vha9fpOZ7eHEekhTY83LT+XIapD62p+BAek6my+1O T7PPLdCaNWnWtLt4mqNd4E9aXsiJZQtcqQvaleXTlZWakZdGURRLc+VmZ/AF qlbZOS4ypJIrPcudYG/97sVZGNnfNcCenjlXLXS5qqzWzNdskZZd7YrYkuvO caWG+kvbt6vdpLWuMVoD+rv4FrqsOiZy1I6dtnhZVsbilPZfSptTQi3FeMJF Y/Ukz52d50b2pa7UdDXPgvSM7KsCuh4vNCeGpKXPS6HzJ6TkZue3vTcJJU6s E9f6k8jBzlt0EiZFER3C//Ut3sCk/nwOFqLtPebafxP1r9hsEnmkB683f1SU lr/wevN36KDl/+B683fsqOWvvN78MTFqfp3hevN36kT+idp/fczMu4+aXy0b of6Xw6TuvFVtEN31ieImcgzj/uir8o5rl7cLefuQN4Ecd6q1X5V3Tbu83cjb j7zDyHEX9xOvynuoXd548g4g723kmMT9pCvzav/Vsta8Pcg7mLx3kCOR+zOv ypvZLu8N5B1C3rHkmM79h9X+YjZLZsuePb/h79VXzRGS2WQ256/nL9+ol4yG U4Xqn1mSzAbtrFAU6vWSOWLr1q3mSMls/bzw88JtpE2k9aTICCmSGlqrMEjG iI9K1HKRkhQZriJUR6RaR6RFirSV8Pf2hLcnvKilDSSLUbKYDQaDe8PatWs3 uE0GyRSuptAi6SwRbfUUGgySxbiRP4tVskSVOEuc1Lr1BfsL9mdIa0lWo6T+ WzLXrMwq6aytlYVrs2q1WaMka4eSuJK4rf239t84eeNkNZwnzU+a15htJskW qeNv9L1r+Lt3tNkgmY3hCgttks5mLLyySptJrdIWLdk6nup5qmfjnUcHV2ZU ZuyfdujQ3g1fbNhj22OLMktRFj1/Y+bvUf/mj9GErDxVEvqL0umijCVtf6Kk JMIoRZkPqX/hXm8RH+s+EPrUgpwM0Xl+TvoikZSR4lb//fcbhe7u6TPtouPM GXfb1VHCXKH2eRMzRrfwlUSP6Sjiwlc6ZpUYEa/lCt3RU3+s6C66Cv2U5OTJ ou+M6ffbxdAHZ0y1q2NCy2Pgvb+T6KFd6Xnv7yx6hp9EiCjRRdwQvlJ/WehK q3qlZudmi8+0427tuF87HtGOZdrxuHY8tYjthzinHWXteEE7BrXjj+pRMmhH i3bsqC6bUlftOFA7jtOOM7TjPO24XDs+px23ZS7KXCR9rB092nGfdjyiHSu0 40nteE47NrTNNNd3lP6roxn99ZpOJs7VX1P+/7qnw9uo//VnNM6r77zqW9oa 8aLYJnaJ3eKYqBEXJLXfCa0vhpSQhfp7U2tfUv8rk0IaHfpcvy70+atguzL0 14ZtV1xLtktXXkdPvPI6ZuiV153+fOV1v55XXve/6vnAUVdej0gSkbp217fF tntuFNJ9c668nraDTwsjpL9IVn+jowzrhm6oLlms1r2j+0Zs1f9K/ytRZnAb 3hblEV8b10t6y0xLivSJ5SmrJO23dbRN0t1je8T2pq4gKi1qoe6vUaujNuj2 Ruuizbpj0S3RLbpvWa4DqjbGiqiPr5mOko5HnW2XfOF09BqpObp3W+pPGk2a SFqopS1Xp6ij0dui/9BxczhtbZfeU1OMuGayxCS3pWdiNrWlQCjF9rxGSiCN 6Pxau/ROKGlPrkqdd3Xe35aOdDlFOqemroZrpdiErrFd+3d7pl3apKXd10xH u11sTXGd47q3pYnhlHjNlKylh8KfV6bC8FHNt09LZW0pVPpkXGP8wPi0+Dfj d6jp6trjd14rhWqP/3N8TTg1X07qt8Rf1L6rUOWGaX1Gt6VpfWa0pbRwWkgq 7LOw7zDShJsSbprYZyHHhJt299t/c4WWmvvPIWUP6EcaPKBmQBBqBvw4cP+g N9U0oGbQZ4N8g3yDDYOjB3ce/BdSWcI4UnLCnCFvhJPn1sLh/YbXjXjx9hGk cSPjRs4ZmT9qVzh9NmrfqLLRA0mjRq8bc2KsUUsbx+7W0qVxt4/7IJw+HnuJ 6w/GNWpXjeN143XjPhg/eMJzEz67K2HSbNLJ+xaM3RjKzWdjKNeUcWq+KdMS eycOTRyXuGNqPy0lT12opfyp66a+wTF/ainp1LTl0wqnnbw/m7Q5yUmu5KQj SUemlnI8oZ6RapLkpIvTC7W0ffohLZ2cLsPJ6YFkw/QAz+XkOcknkmsecJNe nGEn3/bpgdCTGcunB2acndEwK/mhfbNn/yL2Fz1/0W++Yf6c+ZXzL7Z+LhhM 2pXVMat3dn72muyS7JpsOTuwxLBk2JKJS+YtyV6yfMn6JZuXfLDk4yV7lxzL yc55MWdHzoVckRubOzl3bu5nuRXuEe657jfyHspbn+fJa15qXDp46b1LP1h6 btnEZRfze+bfm+/Mz8l/I39nfmVB74KfF3xcUFlwcbltedflo5bfvTxt+fbl lSsGrpi44tEVW1a8t+LEisDjEx5f/vhnK40rJ6zMWfnRyn0rL63qvmrBqu2r 5NWjV+ev3lmY/B/mqo+vno+unG0Kl15O6jxSuPVyCs0g/2HsJV494q4cJ6Ge fs1Zp3XmaZeunDsK911O6uxQWHY5heYFdQ7t+F7cvm6bmIePj2tk1tTmYO2T +TYmmfl1S/S2jpujjrbNmeSNCfRJU8tGfRy95fLcGVKJ2XmiNv+GcvWO3taq nnpXnYu1vMfV51r+sILU+3HUWWbybZQ4rtV2lNZt5vO4li6vDr6rVoWJ7daB yyvBNrXdP5n93/vJ7G8Jz/nPaPO9Nstr9VA6eiLnW1pnQvzYEfaLuSk0/4Tm t7CPzInMgKpraW2zY6ujzHFxiYU1aonLHveZUVhTWENtaq5mniXH1/SZ8dM+ wTxY1m5GvcY8235e/emcGp6592m9KTSLTmudP9V5nTt8a6Ecv4M7M+KSbx+R dKSrIbSOaZ+sWd0udjlFr4ptXX1aV5XYnl0Nl1egUK9U1zYtt0HNQdndXWPV J+odNZd6P7Zn1NHWnhrXPbYnK2CsWl49D929vI62X0nVtmirZnjdbLdyxlLD 1evkpitWx6PhlbFza+t5fjH07er3T03ucipuIu25Qn1VNVVjnGo3Yls1Do1E Vc1QT+mTht6JqpuqEnHJnV/T/N6hetNuVI+O30msrStsWajWQjmusFAOJfUb 1M8+M1RX1LNQT1M/C+WbEvoOCxFa4foO01aldkld4UKrm7Y+/i+Ttqa2Sz/N oa207VJ4xW1LPy2hrrT/XdLW4utObSv2f0hXK6WmtnX8PyRtZb/upO02rjNd rY62R2mXfqqftndpl9R+H3L6v0s/rfl/bt31pZDO6t4lettYY2LvsZeijqu7 Hi1t1O4Y1Z2OdrUxsbe6Bwo/I7GDGqXumkJ31blfPVOTtjuare2s1D1U47hG bX/E7oiz3WM3aruTwrZdjJq2Ty9MOjG9UN3BaFfbw/uc0Pl2dkE16h11R6OW Swonbcfj1vZG5NWebleP8TvJvV3dTTFb9Es6oe278sMpWbvTT911aVfJSSfU eSn8jMTObSh7NXWHppZbp52RtH1atrafI6+2U2vbr01NHq/TFLmkavGAO6TE WKMWDy0OtXRqqVa3+k3rtLq0eq8ciT91tH0/uLkidCWMUolyXH+/8pl+luig ny1s+hylSe8RI4WOJ0e58mpnsn6WclZIHFuEjuMB/WzlKG/q7yuXxF7lkuQU naQUMUOaK+KlVOGQ0kSMtEjEkHMEOcfrM5S/CYl6zggDeW3kjSGvjbwWrT4v uRpEpPSo6MnzPjyfxfMbeN6Hum6iLgelX6c9J4WVs120N0b/OO1YqfyJ9o7W n1Fe0Z8VQ/VeMUxfKwbpv1O+0vt421VrP0rtNcLAmU4/+8cfaM0matoj8kUH kSg6wmgxQIyBNOUrkQ7zIFepFW6lWeTBUlgG+VAgbGK5ckysgMdhJayCIsqv hSdhHTwF6+FpeAaehQ3wibhb/AWCnP8IihggCZAgWYyRHoAZMBMeBJeYLu0T vYjYpX9I3Kl/RJj1j0GGWK9fLW7UPyHs+iJxo+Et5ZhhK7wNx8QAw9dQBuVQ Ad9AJXwLx6EKTsA/xICIjspXEaeUYxHfC1uEzHk9NCrHjBEi0TiAz+FigPF2 PjOUr4yZkAWLIU+pNS4FtDGijRFtjMsBbYwfijHGj+BP0CLGmAaKXqZB8JgY YHLCXFgCOVAAhfAEoJFpI7wAb8Hb4m7T+3zWQwM0QhNcgBZAQ3MqpEE65Ile kUKMiewseml99xz92qKdfYfrLaILvbaYXltMb+tHb7uL3raG3jaT3jaX3jaF 3jaB3O/QXxL0DynP6X+mLKcH3Ua/eZkanHqPsl1/hn7mFXr9Ofrgd+IRrZ+d JdcJtpmto+JRMaRd/ZOpfyn1T6L+keSeQ92bqPtPlBpO3Zup+3Xq+4z6HhLR 1HKeWs5TS0dquZlasqhlCLUMoZZB1HIzrTxJTf2pKY1ahlHDDi3SA5x9KOKo 42/U8Tfq6C89pvyFeoZQz2PUM4J6ZlLPeMmlfEldQ6Qtyp8p+Sn1GahvKS2b R52daFkRtT2rr1GaaV2pvo7R+p24Re8Lj9gYah1IrS5qHUmtk6i1LzX2p7av Kfk1I+9+opwlrOEZ5t/MJOrM8qooUmSxFp6EdfAUrIen4Rl4FjZAqRIUB+EQ HIYj8CUcha/gGHwNZVAOlfAPRREnoRpOwWmogTPKQXEWvHBBqRL/ZJw3gx8C 0AJBZrd/8fwi/ACX4N/wI21RFFkSIGmz4hn9HHrYz5Xz+kf5dCrnDccU2fA1 lEE5VMA3UAnfwnGoghPwD6hTgobvwAffgwz10ADnoRGa4AL8E5qBthh+BEU5 GBGrHDRNUIKmSZAIUyFJqTU9yOcsmMPzR+BReEyRTU6YC4t4toTPHHBzvgzy oYDrx/ks5PMJWMf5U4APpuf53MjnC/AS55vgZdgMr1D/W9zfxvk7nL/P+Yec fwp4ZMIjEx6Z8MhUpSimE4BHJjwy4ZHpFGVOQw3gkek7pcrkg++JRYZ65aip Ac7zrJG6m+ACNHONd6YAny1c45E5FdIgHb904jnRWVu59OI5+u4s+rC6ekVw 9TuuErmaQi/fq/9SDFL/v5mUgJhIz6yiZ1bRM6vomVX0zCp6ZhU9s4qeWUXP rKJnVpG7lp4WpKcF6WlBelqQnhakpwXpRTI9JkCPCdBjAvSYAN9XwvdV6X8h IvQpMJcelKqcoddU0Wuq6DVV9Joqek0VvaaKXlNFr6mi11TRa6roNVX0miqc DOBkACcDuFiFi1U4F8C1Klyrwq0ATgVwqgpXqnCjCtWDqB5E9SCqB1E9iKoy qsooGkDRAIoGULEKFQOoWIWKVahYpY3Y48KElncxks2svX9l7f2j/ihr7Ves Qqw2mr4+IvyKCE9r+j7OVRxXPdF3DTV8I2azTjpYJx2skw7WSQfrpIN10sE6 6WCddLBOOlgnHXzT7ayVfVkr+zJmyxizZYzZMsbsacasnzHrZ8z6GbN+xqyf 9TSWMetlzHoZs17GrJcxi99iKuvmCMbpacZpNeP0NOO0Wj9X9NOnQoZYyzra i3W0F+toD9ZOB2ung7XTwdrpYO10sHY6WDsdrJ0O1k4Ha6eDtdPB2ulgLHoZ i17GopexWMbY8zPmyhhzZYw5L2ucgzXOwfrmYH1zsK45GCte1jYHa1tfxoqX 9c1B/y+j/5fR/8vo/2X0/9P0/9P0fz/938/6F8v6F0v/99Lny+jzfvq8lzXQ wfrnYP1zsP451P6uXEDrC+zPnlOexIHJzOenmc/zcGIyTvyGpxvo7ZP0x9hJ lSk/6svFXM29KnIfJ1clK+Zzyiqu5lL2GGW/5u4Eyj5H2S8om0jZMso9LIzh cfQzcpaTs4ycidr+Su0z72o1pfN8PM+P8LyC52Oo6WmefkRNd1NTKTUN1fJ/ q+0TT2rHgLBIHUQvaQ5kQCYshmxYAjnghmdY6WOkEhHFt6yh9nzqOaDtjbaK bvpPxW36z/G/RvRh1Z7JLjGWlbs7u8Q++jpmhu9ogY9734vbWM9zlM8p0ZU9 ZW91Tad8hpjCCjaHPv+ImKJ/VNt9TRHRtKwHLetBy3rQsh60rAct60HLetCy HrSsBy3rQcnOlMyiZGdKZmkloygZRckoSkZRMoqSUZSMomQUJaMoGUXJfpS8 lZL9KHmrVtJGSRslbZS0UdJGSRslbZS0UdJGSVu45IhwyRFE8ogYyNlATeNi bY/QglpV6v8OHB6AGTATHhQW9m4W9m4W9m4W9m6WSPWf/RpQuBNlksM7jb2a R6dFmdRfqZEGwEAYBIPhFkiAITAUboVhMBxGwG1wO4yEUXAHjIYxcCeMhXEw HibAXXA33AMTYRLcC/fBZJgCiTAVpsH9kATT4TV4Hd6AN+Et2Apvwzb4NbwD v4Ht8C7sgN/Ce/A+fAC/g53wIXwEv4ddUAx/gD+yWyvh83PluLQb9sBe+Dvs 4/4XSrm0Hw5AKRyEQ8o56TAcgS/ZQczhbeVR5ajh7+wk9sEXsB8OQCkchENw WCk3HIEvlfKIGKUmojN0ga7QDeIgXqkxPg+vAhoY31TOGbcr543vwg74LbwH f+D+Hj7ZbRr/zvlRpdz4NfkrOQ8oNaYb4EboBXZwKOdNvaEP9IWboJ9SbroZ +ivHTQOAvmCiL5jw3TSM6+E8G6OcM93J5wzlvFmn1Jj1YIAIMIIJzBAJFrCC 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 w0pYBauhEJ6ANVAEa+FJWAfMjVbmRitzo5W50crcaGVutDI3WpkbrcyNVuZG K/OilXnRyrxoZV60Mi9amRetzItW5sXoSLCAlTlPndl9Wtv9jHEvY9zLGPei m/qe3o+nxxi7Xsaul7HrZex6Gbte2u6n7X7a7qftftrup+1+2u6n7X7a7qft ftrup+1+2u6n7X7a7qftftrup+1+2u6n7X7a7qftftrup+1+2u6n7X7a7qft ftrup+1+2u6n7X7ars5Zs5VvUfsQCn/eNmepEVWLYURUzPManrfgxiXcuIQb l8hbTV4zea2MFAuRJjBSLESbEP4NaB8OXcKhS0RZTJTFRFlMlMVEWUyUxURZ TJTFRFlMlMVEWUyUxURZTJTFRFlMlMVEWUyUxURZTJTFRFlMlMVEWUyUxURZ TJTFRFlMlMVEWUyUxURZTJTFRFksbiOSIrzZjzf7dS7RE3/2E0EqI+BfjIAA kawlkm7hX2a6qb/MEMkr6q9ZeLcf7/bj3X682493+4mqiKiKiKqIqIqIqoio ioiqiKiKiKqIqIqIqoioioiqiKiKiKqIqIqIqoioioiqiKiKiKqIqIqIqoio ioiqiKiKiKqIqIqIqoioioiqiKiKiKqIcTxbG8ejiOLL8D9zupdWv0Srdwkr 8R4m3sPEepi4uhBTF568TDyHiecw8RwmnsPEc1gYdXn4ulT5l26Zck63ln7x S6VB97L6Szt3L+rWKgEhcfyXGECOgC6fHlEAa5Vy3Tph1j1F6Q1KnW6z+u/q Kz/oXlV+sLK/tbK/td4AN0IvsIMDekMaedJhHsyHBeCChbAIMiATsmAxZMMS yIFccEMeLIVlkA8FsFz5QYvnIi09o1up1BLLWd0m5byONz0xR5dDb8+FPO7m E2UBrFaO6grhCVgDa0UX3TrlQ93z5NuonNK9AC/CS7BF+YT4PrHqlENWPRgg AoxgAjNEggWsYIMoiIYO0BFiIBY6QWfoAl2hG8RBPHSHHkoDGjagYQMaNqBh Axo2oGEDGjZYRytHrWPgThgL42A8TIC74G64BybCJLgX7oPJMAXSiCMd5sF8 WAAuWAiLIAMyIQsWQzYsgRzIBTfkwVJYBvlQAMuVT4SBnnMSFb9GxdO6zUoT fWmtcoF+0iKScSGIC0EcuIgDag87zYoTYMUJkCOAykFUDrLCBFhhAqwwAVaY ACtMgBUmgPpB1A+ifhD1g6gfRP0g6gdRP4j6QdQPon4Q9YOoH0T9IOoHUT+I +kHUD6J+EPWDqB9E/SDqB1E/iPpB1L+I+hdR/yLqX0T9i6h/EfUvov5FVrkA q1yAVS7AKhdglQuwygVY5QKscgHUDaJuEHWDqBtE3SDqBlE3iLpB1A2ibhB1 g6gbRN0g6gZRN4i6QdQNom4QdYOoG0TdIOoGUTfImFtK71bH4ko0XUXvXiui UfsMateg9nmRjcYeNPbQ0+vIuR+tz6D1Gd1yrlcq31HqAj1fpufL9HyZni/j w7/xwYMPHnxo0j2nfMEI+IYR8A0j4BtGwDeMpUPMDfvwqByPyvHIg0cePPLg kQePPHjkwSMPHnnwyINHHjzy4JEHjzx45MEjDx558MiDRx488uCRB488eOTB Iw8eefDIg0cePPLgkQePPHjkwSMPHp3BozN4dAaPzuDRGTw6g0dn8OgMI0Rm hMiMEJkRIjNCZEaIzAiRGSEyI0RmhMiMEJkRIjNCZEaIzAiRGSEyHnvw2IPH Hjz24LEHjz147MFjDx6X43E5HpfjcTkel+NxOR6X43E5HpfjcTkel+NxOR6X 43E5HpfjcTkel+NxOR6X43E5HpfjcTkelwsXDnpx0IuD/8Tv3bh4HueO49z3 ONeAcw0414BzDfhvw/9duCfjnqx7lnu/xOnnld/hYB0O1uFgHQ7W4WA9DjbR T/6Ki9W4WI2LMi7KuCjjooyLMi7KuOjFRS8uenHRi4teXPTiohcXvbjoxUUv Lnpx0YuLXlz04qIXF7246MVFLy56cdGLi15c9OKiFxe9uOjFpQZcasClBlxq wKUGXGrApQZcasClBlxqwKUGXGrApQZcasClBlxqwCUZl2RcknFJxiUZl2Rc knFJxqVqXKrGpWpcqsalalyqxqVqXKrGpWpcqsalalyqxqVqXKrGpWpcqsal alyqxqVqXKrGpWpcqsalajEUlwK4FNBGY8iFZlxowoUmHAjggPre1IS6Tajb hLpNqNuEuk2oG0DdAOoGUDeAugHUDaBuAHUDqBtA3QDqBlA3gLoB1A2gbgB1 A6gbQN0A6gZQN4C6AdQNoG4AdQOoG0CdJtRpQp0m1GlCnSbUaUKdJtRpEgOZ GS4xM1xi9Mus5xbds0SxgSi01nO+Gbaw3r/Kut2DXV1PuAFuhF5gBwf0hjTy pMM8mA8LgB0kWregdQtat6B1C1q3oHULWregdQtat6B1C1q3oHULWregdQta t6B1C1q3iAVoXYfWdbRYpsUyo8DHKPAxCnyMAp+mf+sIQPef9Hx28Dr1l43/ 3Nvr8KMOP+rwow4/6vCjDj/q8KMOP+rwow4/6vCjDj/q8KMOP+rwow4/6vCj Dj/q8KMOP+rwow4/6vCjDj/qUFBGQRkFZRSUUVBGQRkFZRSUGQ0+RoOP0eBj NPgYDT5Gg4/R4GM0+BgNPkaDj9HgYzT4GA0+RoOP0eBjNPiuYzT4cMiHQz4c 8uGQD4d8OOTDIR8O+XDIh0M+HPLhkA+HfDjkwyEfDvlwyIdDPhzy4ZAPh3w4 5NPW+Ebtn0LejlcyXsnMNjKzjRftZbRXNZbRWEZjGY1lNJbRWEZjGY1lNJbR WEZjGY1lNJbRWEZjGY1lNJbRWEZjGY1lNJbRWEZjGY1lNFZjlIlRJkaZGGVi lIlRJkaZGGVilIlRJkaZGGVilIlRJkaZGGWr2hfyYCksA/obMcrEKIuOzMX+ K8cMPe1ZbaQHmFMD/9MYYe++lD0qb6aMNhujzchoO81I68JIs4ikthklj9V4 JazivXwt3/W00kjPbiR3kLHZyOrcTKkEFA6gcHO7XVMjvbuR3t1I726kdzfS uxv/H802jfS+RnpfI72vkd7XSO9rpPc10vsa/6/uitS3lSBKfdH23tIs9OF7 QVz6QcxC21K0LcW/evyrR1v1zeY4TkSgby361mrz3/Ncb+Id4WV2Slu496pS i6616FqLrrXoWouutehai66l6FqKrqXoWoqupehaiq6l6FqKrqXoWoqupeha iq6l6FqKrqXoWoqupehaiq6l6FqKrqXoWoqupehaiq6l9Kl6+lQ9faqePlVP n6qnT9XTp+rpU/XoXovutehei+616F6L7rXo/n+Iu/Pwqspz7+MreyV7Jzs7 oog41GqtU6undajaVtty2nqsPW3taGu12vbU1gOVVhRUQKYO2tYBZ1DEoVKK WoGaoiLgiAVrAwnZwGYn0MhgSEgWJCSQAPKcz86hfe15z3W9f75/fK+118pa 63me+7mH350rbFrZvZXdW9m9ld1b2b2V3VvZvZXdW9m9ld1b2b2V3VvZvZXd W9m9ld1b2b21urTOMbgeN+BGjMW40Dpg4/4DkdAXHZpaEA1NvUJxvsovXwuT U8vCnNROOqM3TE31h/pY5ow/pHs9LcyLzwpb/vHXyt+MDo6/FeUO/E3h1lxT WGHHZnnvXLwqAl4L+dRSnv46lhlzueOboSm1QqebN9pqxzXYGlWl2kRqL427 ixLajT2hK45CS5xBJY7U/Z8WNsVnhJ3xmfgIzg674vPCxtz3Qkfuh6Eu92PI EbmfOl4TmnKjICfkxjtOcJwIGjr3c6iYudshKnNT/fwe1+S+3DTn0/GQd8wK /bknvH8e5oeduT/iGddqnS90tKZcvWsNWIW1zgto8rkZLe7rDC25ndgdWmqG hKTmMAyF7rBGd1hzgusjQl0NTV9jXjW3hJ6a28POmvvwAB4PSfTvB6xatE99 rLqWVTtZtZNV97HqZlYtsOpaVt3JqmtZdS1r7mLNbtbsZsluluxmyW5W7GfF XlbsZcVeFuxkwSILrmXBtSxYZMG1LFhgwQILFlmw8D8sWGTBThbsZMFOFiyw YJEFiyzYyYKdLLiW9TpZr5P1elmvl+U6WayXxXpZrJelelmql6U6WaqbpbpZ qpululmqm6W6WaqbpbpZqpul1h6wVJGlOlmql6V6WaqXpbqj96eeDONTC8J8 lnqRD+5lodmssi21IVzFz8ak2sIjvPubqR5Kuz98ip/9OY7D0jgd7ohz4Se8 fXU8JBwXHxv9KD4xjOb5748/HD7Dao/z/gv43Iz4U2Fi/Olw2YG/zvpb/K3w aHxJGBEPD0tKf79kVS/ISa+oEq9hWVhvxLftxwYjbjFCm7fu8MaN3rhdLJ0n lj6pI3zSjr0SGjxVipe/DsTI1ugYT6/y5Bue3GxuW8yt2hvyA/FwVsh78pXw hqfe9tSznjjUE28Z728D8aurHojhY8Xph5yfFjZ4qsUsl0bv5Vk7B55cyrNe x3Ie86anV/CqPBW52nFN2Mw7NvOOzTxjM894i2e8xSve4hU7ecVOXrGTR/Tx iD4e0ccj3uIJfTyhjydstnOb7dxOu1bK/Fujg8wnbeazjPekcZ+31oVYHvaw azN7bsndGHZ5f7f3d3t/d+4B5w+HXd7THZV7qsfMr/XExpLfU8JPyiULrOW1 UO9qU6pBHinZcENoZ7cG713rvWujS4w61d2TxdSmAW95Pkww+gRPdrHEHpbY 4w2bWCKwRM+BuOphiZ5UIcz1xlqeVJ/q4D1ZDAk/jIfajcNxBI4P18Un4MSw Lf6Aff4gPmT32D0e5uefHvjb5TPM5gyxt4l1e1i3R+xtYuEeFg4sHMTeJlaY wNKBJaayxFSWmCr+NrH2Htbew9p7WDuIv03ibxOr72H1Paw1geV7WGxC7mmZ aC4WhetySx3/ijqswDoUsd7P/ub4lndsDNfVROHPNRVhbk0aGRzn/CSMkKGm hKlicJPd3FNzf9hYMw3T8SBmhrlRNY/s5o0b7fRHZJ93ZJ93ZJ937PpHRfo7 Iv0dkf6OqH4nOtp+lPZyF9vvYPsdnkrLUV1yVJcc1WXtPdbeY+091r3DundY 9w5r3WGtO+SXLvmlS27pklu65JYu/t0lt3SZa4957pAruuSKLrmiqyxrxCk8 4H67/7Ldv9vu351aYkdfxCthWWqpqvg6loXHecHe1CrX83yrEMak1oXFqSKa 0Iz12BBuSf3NcSM2eedmxy1oxdZoCm+pTbX7vA0dPK/TMcH2cF1qB7p87sbO MFxuqpe5CzJ3QQR/U45akdrrZ/vwTliS2u8YVOEypFDKX+W8rcLntDyVDZPj ap9zYeRAPhvkeDAOwWAMCefx1gt564W89UK19eb4qHBD/B4/OxrHRt+Oj3N8 P46X807AieE78UnOT8YHnH8Qp/j8L/hQ+Kwc+X2Z5Wm7NsWuTbFrU3j7l+TL 2+Nz3PNRfCz8LP6447k4L0yKP+H4SXwqXC4qLoz/1edPh2tFxjcP/MXs0yLk hvjS6Ij4CgwPK+XXP+SGh/rcCFwT9oqSvSLkbhGyl5dM4SVTeMmU3BQ//xl+ hV/jN7gtGpq7HXdgqvvvc+1+THM+HQ94zwznDzs+EkbmHsPjmBVuzv0u3KCa Tco96fwp/AFPhwtE1QUq3CQeOIUHTqEPblblJuX+FH6WW4Bn3bfQtUXuW+zz Erzo+lLny1xf7r1/ce1N/NW1OqxAvXc1YBUa3b/WvQWs87MiZG/ePUXUXpDb EBaL3AtU0Umi90LRe0Fuk2t8MMcHc2+DH+a2oi28nOOHOX6Y6wAfzG3HDnTJ AN3Y5XNfWJLrxx6f3wGfy/E5WWFyDb+r4Xc1cVhSU+5YEcbIEmNkiTE1lc6r ZI8s+GBNLrxcU4ODfB6Eg10/BINxqOtDQkGlL6j0hZrDve8I9xyJo/AeHI33 uvdYP38fjjP++12TYWWjyTWTQr0In1JzSzS0xl7X2Osae11zK27D7X52T7hB 5E+RqS6QqS6QqS6QBabIVhfUzPCemeb9iHc+7v2znP8Os/H7cF10nCxxrSzx x4HK/OpAPX9dJmgV8VNF9uUie4GonSdq31Bze0XsSyJ2k6hsEI1/EYVLRGGj qPs3kXWFSJonYm4XMa+LmFZRcp8oaRQFL/L+3/H+L/P+l3l/6V8qnMPjV0b/ IV89YSZ/ULFWpeapUgvkhOddW4hX1bnX/GxpWCN7rlG5XpazOlWuBWpgp9m2 qV4LVK8F8tcsM39dnmoz8xVy0VKzLsg3G+WbjWbeKl/nzXy7nJ2Xs/PyyVKz f1oueFoueNos95rl10qaR/Valfu+TPvDsEAFW6CCrVLBFojNTrHZqYKtEp9P iM9O8fmE+HxCfD6hgq3K/cJzv8StuC2skdXXyOprxGanarZKNVslw6+R4deI zSdUswVi8wmx9DS/f5qfP82n29STvHqS57dtakqer7bx06X8cha/nMUvZ/HF Nr62ka9t5Gsb+VYb32rjVxv51UZ+tVQtyvOppSrcAj71hAq3SuVYwz9m8Y82 /rGRglzCD17EKxTasvA8S29WHRr4wmdk82bZvJk/vMmqLaxaz6r1fOI5mXsD yy6XqZtZdjnLLucb2/jG27Jxo2zcKBs38pF/4SO7ZdmiLFvkK+v4yRaZtU5m rZNZ6/jMatl0nSxakDkbZcQGGbGB1Tez+mbW3iwDNsiADTJggwzYIAM2sOxm Wa9B1muQ6RpktIIsVpTFirJYQRark8XqZLCCDLZOBlsnW62TrYqyU1F2KspO RdmpTnaqk53qZKd1slJRVioeyEp1slFRNirIRo12Z7nM0iyzNNul5XZoueyy QXbZIINskC2aZYtmmaFZZmiWGZrtVL2dqrdT9bLCBhmg2U7V26l6kd9sp5aL /AYR3yDiG0R8g4hvEPENIr5OtNeJ9qJoL4r2omivE+1F0d5sF+tFebMobxbl zaK8WU+8lTou6eqzwr7obFFW6rN+LKKmi6jpIupV+zxZ1PTb19n2tda+1oqW dvu6yb7Otadz7elcEdEnCvrsxWR7MVkE9NmPyTy+j5dP5+XTefl0ezGZl/fx 8j5ePp2XT+fN/ew1l53m8uZ+tprLVpvYahOv7mevTTy5n31q2aeWfWrZZxNv 7ufN/WxUy0a17DOX9/bx3uk8t9+aa63xtXA7j91tBUuc7TT33vAk39wQHWVl O51tsbI2K2uzsh1WVScPtFtZnZXVmd1Os6szuzqz22l2dWa104x2mlGbGbWZ UZvZ7DSbnWbTZjZtZlNnFqVeti061ki9RlpnpC1G2mKkrWxY6lHrjdZjtHqj 1Rut12j1Rqs3Wq/R6tmimy26jdrLFt1G7jXyFiNvMfIWtug2eq/Re42+xehb jF5v9FJ/uEWPsEG+3BlWWvVKI/cYsVkuWyjjrpVxS/3BcwMZN+2ungM9VPuB f8N0WnxJdOaA5Vr8pNlPWgbOSr3d3gE7Vhx4qttZh/ev8f4uarhA03aw8B7r zLJEhAqaNI0MjnN+EmaGHd6xYWBnGtzdpIqU5tgTneQdr/vJ8+zX7V0vuOPt v/f3A/Umkl8yqEQ2vGBVX7WaH7BjNztuYMcN7FjqrzewX7c5vGAOr5vD6+bw Olv+c9/9Hhz9rv77OPefIBZPcpzp/kdcK/XcZdacRIebX5c5dZnTNnPaduA3 ONvNvs28tpvXdvPYbh7bzWG7sbuM3WXsLuNuM+42424z3jbjbTPWduN0GWNb dIK3L7L6P1v58ndl2Tw7P22kXQNZNTvwlyK/PLCX66x+eOkvev6efax4uVEX GXWRURf9r5mnlGmOc18py5zkWMoYM937PzNG1UAV3UkH9Out0/b14nDNgb/u WGnkbw/8xeiZ5r3Bnc/ZtTp9wRrzf4mV5r0rg5QqQ4GlZtrrUt19m7VmstZM 63nJW2/1trl2sY52W8OCM1lwpp2sY8WZIqIgIgp2tM76XhIVBWvcYI0brHGD Xa2jwdbQYGvorTX/I3MU7HKdXa77R+Y4zjtOCDOt/SXr3mCX6wayx3tYvYnV mwZ+G9Eri/SH18y6k+WbzLjTjEu/w+lk7SbWbjLLTjPsZOUmVm5i5SZWbmLl JlZuYuEmI3WycBPrNrFuE+s2sW6TqOqVdfeofryHh/WGl6KUKriHUuqPYmpk mbMuZ63Rcc4SPUwffZLQJ4lKuVul3K1S7j7wO8J2mmUHHd+n4rWrdO0q3W6V bje93qfatdPofXRFQpP3qW67VbfdqttuuruP7u5T2XarbLvpjkRla6c9EpVm t0qzW3XZHVWp5f1m8pDanajZJV33tlETO/i4HXx8IKtUqfY98RCZ5EOhwwra 3NURnx0NkmH0PNEZxilE5d6z2XtKv3PtK63AinMDv0FoL93PEkPE09mhz/XS b2Xd4bmN0WHOSqvvsfoeq+8ZWPmltMIVYfW7Vt5j5T0Dq653bMAqNKEZVmdl PVbWY2U90fuMtoJ9e9l3LfuufXdnbuwOo2xh214jbDHCln90488M/MZvC9v2 su1atu39pw59rfPCwG8BBzp1tl1r9C1su/bd3XpUZuW90QlxjU9DwiPUUkIt JdRSYk7PmtOzrNVLMbVRTKXfrnWy0zbKKLED++zAU3bgKX3kYH1k6a8jS6qn jeppM69nqZs26qaNummjbtqomTZqps18nqVk2qiYxJyepSjaKIo2iqKNmmiL MmbzRyPvNGKfEXcard9obxrtzeh4P32L3VrNcZ05rnPnrgO/w/4/O3Q2ZXce v/40O8wKrWy4hw33/GOXnnGt1vlCx0WU1jLHd+/aWucF/H331runxf0bw7p/ 2sWhrNbCai2s1sJSLSzVYt5/O/A7qRYWaWGRFtZoYY0W1mhhjRbWaGGNFpZo YYkWVmhhhRZWaGGFlugo61xvjeutcb01brfGvDU2WmOjNTZSqiWva7SeRqqy napst5b1lGXJAxutpdFaGinJdutotI5G61hvDeutodEaGq2hceBfUR4ffzc6 PpoeXRkeiH6IH+G68Gg0LtwVjcdNmICJ2BSmR5uxBd3u6Q93RnuwF/vwTriz 7AOhvuyDOAWn4l/wIXwYp+F0nIEz8RGchbNxDj6Kj+HjOBfn4RP4JD6FYfhX fBqfwWdxPv4NF+BzuBCfx7/jC/givoSL8GUMjw4vezm8VPZKeK7sVbyGpXgd y8KSsuV4A3/Bm2FJ+SPhrvJH8RjqnK/ASlhr+X6EcGfFweGBisFhegWVXUFl V1DZFYfjCByJlnBXRYd7OrEj3JX+IM7B1eGB9Ej8BD/FmPBo+nqwe3pqqE/X hyVpHU/mpLAkczI+EJ7LfBBn4iPOP4FLw/TMZbgi3JmZhllocf4WNsKeZdrC o5l2bPezHue7wp2VqVBfGaMcFUiDUqykFCurkEU1cqjBQRiEg3EIBuNQfDws qTwX3/X5R46THX/vOCc8V9kb6qu8q+pQ+vjyaHBYER0K2S86DENxOE7GB/BB nIJT8QV8EV/CRfgyvoKv4mv4Or6Jb+PK8BDPfYjnPsRzJ0ajw8xoDK7HDbgR 48Ic3jyHN8/hzXN485zy34QV5bfiNtyOOzAVd+Iu3I17cC/uw/14xHOP4rEw x64/VLE2rKhoxnr8DS2uv+3Yig4/78QO194JK9JpZFCFLI7AkTgRJ4Ed0uzA O+akz3I8x/E8x8/hclyB7+J7uDo8xHMe4jkP8ZyHeM5EnjMxbb1p6+VBcyp/ WrJNdFeoj+7GPbgX9+F+zMbvMQdP4En8BW/ir6jDCqxEPRqwCo3IYzUK2BSe kROekROekRPeiHaiB73Yhd3oD/PkiXnyxDx5Yp48Ma98a6gvb0M7tqEDupPy BNuxA13oho6lvAel5/YjhHni7ZmMXJAR+xmxnhHrGXGeuSi8kfmG48W41D2X 4YowL/Nj56MxBjfgRtyEm3ELxFuGjTJslGGjDBuJp3mZ3zrOcpznuAjskGGH DDtk2EGsPSPWnhFrz4i1Z8TaG2Ltjcw2dGC7Z3tcZw9xN6/sw1F5dEhUgTQy qETpu8OzqEau9BWTOAjnRkOj83BlGM/Hx/Px8Xx8DB8fwcdH8PERfHwEHx8R jfWGcWEkPx/Jz0fy85H8fGT082hQ9Av8EjfjFvwKv8ZvcCtuw8LomOgFbArj 7Og4OzrOjt5rR+fY0Tl2dI4dnWNH50Slb5DuDxPs6gS7OsGuTrCrE8oeDKvL ZuAhPIxH8Cgew2/xOGbhd5iN32MOnsCTeAp/wNOYi3mYjz/iGdTiT2F16vRo UOqMaGjqLMdhuDCMT30+XJf6Ar7qfHiYkhoRrk79GFeHq2m2L8SXhdF02xfi 7zqODn+Jx4SGuD6qiBuiIXEj1btaV74mysabwpx4My2yJfpA/LZja+m7gRy3 RYPLR0eHlI/B9bgBN2IsxmE8bsIETMQkPBJGyhcj5YuR5auiQeWNyGM11mAt CliHIprQjPVgT94+gbdPkGvGVxwSVvP6cXLMyIptUVZ+GS+/jJdfRlbsjQ5J x+Bb6cE4FMfjg2Fk+hTHM/CRaKicMjL9UZ+vDuPlj/Hyx3j5Y7z8MUb+GCN/ jJA/RqT5Unoc+FL6gbA6/eDAv6BfnXkvjsGxeB/OwEVhjkgbJ9LGibQJmVHR oMy1mIwpuAvTXH/E8bHoGNE0IfOUzy3ufwsbwedEzr0i516RM0fkzMl0RlWZ BNvd3+Pn/E8ETcjsjgZVDgmrKw/DUByOI3AkjsJ7cDTMtdJcK8210lwrj8P7 cTxOwIn4gXddiR9igvOJmBRWV5WF1dlLwnXZSzEhXJ2dBHGTFTdZcZMVN1lx kxU32dtxB6biTlhv9m7cg3txH+7HNEzHA3gQM/AQZuJhsE/2UTyG3+JxzIoG VY/HTZiAiZgEtq1m2+qfQXxXi+9q8V0tvqvNs9o8q82z2jyrzbPaPKvNs9o8 q82z2jyrzbHaHKvNsdocq82x2hyrzbHaHHOnRoMOqkIW1aX/KSVeKVI2yUal T6XvHjk8dYNsliv9v42yWU42y8lmuaj0PxhmUY3cwDfY52SzHAVQpACKFECR AihSAEUKoEgBFCmAIgVQpACKFEBR5jtU5juUEminBNopgXZKoJ0SaKcE2imB dkqgnRJopwTaKYF2WfIqWfIqWfKq6D9DEg3HCPwYV2MkfoKf4hqMwrW4LgyX Ua+RUa+RUa+RUa+RUa+RTc+XTc+XTc+XTc+XTc+XTbOyaVY2zcqmWdk0K5tm ZdOsbJqVTbOyaVbdbVZ3m9XdZnW3Wd1tVneb1d3mqPT7jjl4Ak9iYXSkzHuk +puov4n6m6i/ifqbqL+J+puov4n6m6i/ifqbqL+J+pvI1qNk61Gy9aioVS+7 FW1oxzZ0oBMJtmMHutAdpsnss2X22TL7bJl9tsw+W1YfK6uPldXHyupjZfWx NH2Bpi/Q9AWavkDTF2j6Ak1foOkLNH2Bpi/Q9AWavkDTF2j6Ak1foOkLNH2B pi/Q9AWavkDTF2j6Ak1foOkLNH2Bpi/Q9AWavkDTF2j6Ak1foOkLNH2Bpi/Q 9AWavkDTF2j6Ak1foOkLZV+JhpZ9FV/D1/ENPBjyKlFeJcqrRHmVKK8S5VWi vEqUV4nyKlFeJcqrRHmVKK8S5VWivEqUV4nyKlFeJcqrRHmVKK8S5VWivEqU V4nyKlFeL1Grl1isl1isl1isl1isl1isl6jVS9TqJWr1ErV6idqyv0bZsjqs wMooq4rlVLGcKpZLnVv6N6qOn3W8MExSzS5SzS4aqGaXhY7UlRiuur2rqqVG hg6V7ZMq2wiV7ZMq2wi9+NT4uvB0vCi8Gr8YHRS/ovqt1M836NMbo8NVuXZV Lo7X6u//u9JVqHQnDHzHZLvr21Se0VFOlcupcjlVLqfK5VS5nCqXU+VyqlxO lcupcjlVLkdJt1PS7ZR0OyXdTkm3U9LtlHQ7Jd1OSbdT0u2UdDsl3U5Jt5dP C0n5dDyABzEDD2EmHsYj4XyV83yV83x9V62+q1bfVauKZlXRrCqaVUWzqmhW Fc2qollVNKuKZlXRrCqaVUWzdGZCZyZ0ZkJnJnRmQmcmdGZCZyZ0ZkJnJnRm QmcmdGZS3hs6yndhN/rQjz3Yi30QEyrzWJV5rMp8lcqcV5lH6f8K+r+C/q+g /yvo/wr6v4IuoahLKOoS2nUJRRX8/IrNIdEpFHUKRZX8KpX8qgpzqjAnFf18 FT2nayhW7HceQpKOUIYU4iin0ud0FEUdRVFHUdRRFFX+nMqf01kUdRbF9NHu fS+Od+1E5ydBrtVlFCmD8ymDXPp0P+eD1MGhuo4ihXA+hZDTeRR1HkWdR1Hn UdR5FHUeRcrhKsrhKsrhKsrhqrQ8mpZH0/Jo+jqMxpgwnJoYTk1cQ01cQ0Wc r58tUBJ5SiKffnjgG5mGpufjTwPfyjQ0/bpjfailMvJpe6nvLaR3R0MpjjzF kac48hRHXi9cqxeu1Qsv1gsvpkDy+uHF+uHazHlRVk9cqy9I9AWJviDRFyT6 gmYqZba+INEXJNTKKGplVOY7oSNzOa4IY/UHSeZqn8VU5if4Ka7BKO+8Ftal d2jWOyR6h0TvkFA4WQonq4dI9BBJ5jfuv3XgWwUTqiern0j0E4l+ItFPJFTQ WCooSwUdqa9IKKGxlFBWb5HoLRK9RaK3SPQWid4ioZBGUUijKKRRFNKozGbv 3oK3Iddn5HqqaRrVNI1qmk01zaaWxlJLo6il2dTSWGopq9cv6PULev2CXr+g 1y/o9Qt6/YJev6DXL+j1C3r9gl6/oNcv6PULev2CXr+g1y/o9QtUV57qylNd eaorT3Xlqa481ZWnuvJUV57qylNdeaorT3Xlqa481ZWnuvJUV57qyleeaU4f wcdDbeW5+K53/8D5lfghfuTaVY7/ieEYgZ+GdgotT6HlKbR85WTPTHX99+6d ExZXPuHzk+gNhaooGkrB5ausrerQUFt1WJTNfj1syn4D38Ql4SLK7qLsd3y+ MXRkx2I8/q70pvj8S9wS5Si+HMWXo/hyFF+O4stRfDmKL0fx5Si+HMWXo/hy FF+O4stRfDmKL0fx5Si+HMWXo/hyFF+O4stRfDmKL0fx5Si+HMWXo/hyFF+O 4sv9f1R8uX9SfIdFd4RPlF0Rfanse9HXy74f3Vj2H9G/lf0g+kTZldG3UhdG l6SGR9+MLw6fiS8Jn45fCLPjF8OX4o3hDdpwSCzDxW+Hu+KtYVncFr0nbtdv bQu7omOjO/a/Fj0VVkVLwypv/9SBb4M9x9tP9fZTvf1fy4aHXWrrFqPo5nRl F4dzjfJJo4yJF4dF8RK8uL8jfjksUOPWxq+G1+PXwh1G/4WR++ItodXo5xp9 qtFjoz9s9NeiynhFmBXXm5NOPl4VfhA3hoVx3lNrQpOquJ5OfSr82dz+7M5v q50r3D3N3ePjVfv3u/sxd39eHV3giRs88eDAdzueZrYTVPP3qt6fT31JJR8e hqd+EsWpJ+nk18J/pJaF6akN0dmpXhV5SDQoPi38Ll4c5VTp06zgj0Zaph+N 41V6zdXhT6p0hbfvt6K8Sj3+QKWOD/SksZW1xm1W1e76ttBZ9q2oPCyMKpBG BpWoQhbVyKEGB2FQWBQdjHNDU3Qefh7mR7/AL3EzbsGv8Gv8BrfiNtzBhgtD Q/RCaChLhaayGOWoQBoZVKIKWVSjBgfjEAzGoRiCwzAUh+MIHIljcCzeh+Pw fhyPE3AiTsLJ+EpYX/ZVfA1fxzcwARMxCZMxBT/Dz/EL/BI34xb8CneGdWV3 4W7cg3txH+7HtLAudXqYnzoLw/DV8Hzq16GY+k0o8vKL7UoHP9vHx+bbiQ4+ 9mU+ti/etX9rvFtE9IVM3L9/d7xnf1O8N6Tjfftb43fCsHi/6yEcWV6xf2t5 OnymPBMy5ZX7d5dX7W8qz4Z0efX+1vJcGFZe4/pB7hsdFpaPwfW4ATdiLMZh PG7CBEzEJPw2NJU/jln4HWbj95iDJ/AknsIf8DTmYh7m4494BrX4Exbg+bC+ fCFewCIsxhK8iJfwMl7Bq3gNS7EqzC9vRB6rsQZrUcA6FNGEZqwP8yv2hoXp GPw3XREWpQc7HorjcQrOwEdCU/qjjreF9en7Md25daZ/57P1pK0nbT1p60nP c20+nkEtnsNC11/AIiyGuafNPf0Xn9/EX32uwwqsxBqsDevSRT9rxTZ0oRs7 0YNe7A7rMwdhEA7GITgirMsciaPwHhyNs0JT5qMYFeZnrsVkTMFdeASPhYbM U467w/zKk8P6ylNDU+WHHU93vAhf9vnbYV3lD/z8SvwQv3Z9uusP4EHMwFPY G9ZVRWF91SGO4qtKXFUdhaNDU/YHoZgdgavxE1yD0RDvWfGeFe9Z8Z4V71nx nr0dd2Aq7oT5Zu/GPbgX9+F+TMN0PIAHMQMPYSYehjVmH8Vj+C0ex6wwv/rf Q7H6C/givoSL8GV8BV/F+PB89U2YgImYhMmYgp/h5/gFfombcQt+hV/jN7gV t+F23IGpuBN34x7ci/twP6ZhOh4Iz+dODfMPqgrPH5RFdXg+Klcr5sv87fHq 6MPy8r7ovmhcmBGNx02YgInoD0X9c1H/XNQ/F/XPRf1zon9O9M+J/jnRPyf6 50T/nOifE/1zon9O9M+J/jnRPyf650T/nOifE/1zon9O9M+J/jnRPyf650T/ nOifE/1zon9O9M+J/jnRPyf650T/nOifE/1zon9O9M+J/jnRPyf650T/nOif k9K3cJX92TyXhQ49a4eetUPP2qFn7dCHTteHTtd3Nuo7G/WdjalZYevA30f+ 918dvZXaHd5SzQqq2Ix4ZXSsetmigt2mh5uhh5uhh5uhh+vQw3Xo4Ur9U1H/ VNQ/FfVMiZ4p0TMleqZEz5TomRI90gx90Ax9ygw9yQw9xAw9RKJH6NAbJPqA Dn1AR+aUUMycOvB9nB20f0nLF+nsIm1dpIWLNHCR/k3o34T+TejfhP5N6N+E /k3o34T+TejfhP5N6N+E/k3o34T+TejfhP5N6N+EXu2gVzvo1YRG7agc492T ff596VvTQkJvJvRmR9UQ8XRJmE5jTqcpG2nKxtyEsDU3EZPC1poh4a2awzAU x+J9mOL64+GtKKWq/EFdp+PiF6KPx4uiy+OXorPil6Mj2Pe5+FVK6rXo5HhF dBFbX6Svr6AYPqW3HxznozPZ/W+UwzF0zkZXN0Wn0AsX0QsnxVujC7z31QO/ yz7VSK+Ep9x/z8CY8/1sBFWxKDrItTecrSx9L+X//V26ZcOjYf/79+mazxmi 4xNG/aJ6+Hlz+O8rZ6iWu139jGq5SLVsH/iO4m2l/43S1aOdfWrgd4qHu/dE cyj9XwRvRx9yx4edrYyGWeEQPzvGWkvf+nZJqItHR+ea/6vln6TXUq4sd/am u9UmmnC7s/XOro5qnO1xtjw6OSqPhkUVSCODSlQhi2rkUIODjHhxdFh8KY13 Ba62pkV04Mt05iuhoXx0NKx8DK7HDbgRYzEO43ETJmAiJkXD9PLD9OzD9OzD 9OjD9OjD9OTD9N/D9N7D9NvDBv7/ixrqtsdI663i7fglO1n630xeCc9St9us fTSbvGBeS9xltdZeEw0uq4+OL2uITmeZK9jhs/Gl7rosuiy+YuA75i6Lrw6v lL6VKL4+bIzvj86Jp0UfNU5ip0+kZOaWfzw6s/zc6HTWuiw6xhPHGOcsuzk6 ep+ROkvjD4xUc+D/NVkWf8fTl7v/e47fdxzNw+rDOhq5gz7uH/CfNVGlp+Io XfqfUNw91J1D3VnlzsQd26Oh0SZZlIaKttBN1xqptKfXh0a6u8OuD5JxGwbe l7eDqz3lnSVFXDE47NPD79PD79Mj79Mj79Mj79Mj79P77jPmxWFr6V88eeMp IiUz8LbVoSc6/J/G/I6c9T2MtLbRlPjK0GV2260j4XGHGbvXU68bt9q4ff/P cauNu7H0f7N422DjVnhjrzd2eGOPN1Z5W9eBVewTZxe7Wvq+wO9Q8t/DtX4y OjrSk1VmnPbkLk/u82SNuewvWc2Te0XFpuhz0WZsQT/P3oO92Id3ZIeLdS6X hNPj78gWl0ffjb/n+H3HkXqfa83n+vB4fBO/uD/6WOl/4mbxeiOeO7A3q8LM gdHyYY2YG6LL2XPAR84s9+7y/QjRyRWDo89lLsVluCI6OTMNs9Di/C1shHlm trvW47jL3Erf/7jdzPqtud/MTrHufjM7xbqPsu5Sxqi03qy1tsZro4MHvG6x J171xGZPHOWJzZ44yhMfc/fB5vz2gOetCnvNu8+Tmweeyg/8vwSXGu8ynnyF 43cdx8iKG6P3y3j/Rd13wFdVZP+fKXfmvvfuS0IIIQktdBBUQIQVRMHFiiy6 dhRFQbGAuoKISLGsiohSLOCKFEFdxcUOCgi6iooFRKRI76H3Hsj8vzPvJSYk EBJY/f3v/cy8uVPOnDv3zHfmzNx73nZgTBjImA5kLAO8m+b+Ucc+v8XIJRCz Hc/hGoSud33DWsNLFd0hVQ9hvFsPvjegxo1mm5O3lSi3FuXCoO6DMkfKYkqn zmYn3Q53B1x3PP1r8Dzbg6+b4R6EZNrcayAl69HSWeBpI/TLTaCyGeNkCyrv JZmd3ha4rWan6grXDe5euPvgHoTrCboJ8f8EWgTKi0F5seiOu3oQmL8az3EN pGgtepC7W+DwBrTRRvOj08XLg79s8JcN/rLjd2/XlJeDynJQ4aByGnhMApX9 oJIDKtbSvA8Kq+z/EYG/bPCXDf6ywV82+MsGf9ngL5tOp850Od0Odwdcb2pN j8D1gesL149ao8ZE1FgfmOWhha8EZnlo5SuBWW+hpT9ES38OOf0Wcnop5PRy 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 xTu6lm4svtbn6BZinm6pW4pF+q/6YvGbvkz/TSzXV+orxRp9tb5arNXX6mvF Ot1e3yLW6066s9ii79J3iW36Ht1LbNe9dT9xRD+qH5NcP6WfllIP1M9KpQfr EdLX/9L/ksl6pB4py+pRerRM0eP1eJmqJ+ipsrz+Ss+SdfRcvUCeqZfoXfJs vUcfkm31YW3k1X4tv5a83q/jnyZv8M/wz5Q3+Y39xvJm/xy/mbzFP9dvIW/1 W/otZSf/Ev8y2dm/3L9cdvH/5reTd/pX+dfIu/0b/BtkN7+T30Xe69/n/0N2 93v7vWVPv6/fVz7kP+o/Lnv5T/vPyEf8Z/1Bsp8/2B8sH/WH+cPkY/7L/qvy cf8t/99ygD/BnyAH+hP9ifJZf5e/Ww7y9/p75fP+Af+AHBwC8MkhIRmSclhI h8LyhVAQKi+Hh9JD6XJcqEKoshwfygxlyn+Hrwq3l2+HO4Y7yg/CncOd5Yfh O8N3yY/C94TvkZ+Eu4XvlZPC94fvl5+Ge4Z7ys/CvcO95ZRwn3B/OTX8dPhd OSP8Rfg7uS48P7xUbgsvD6+T+8IHIxkyJ1I9MsTLjAyLjPWej0yKTPdGReZE dnlvBTpI834I6gUXesuC64M7vQPBPcH9KhQ8EPRQiUHPoJdKDnoHvVW5oE/w pEoNBgTPq8xgSDBE1Q6GBS+qOsHLwRhVL3g9eF01CcYH76qmwXvBx6plMDmY qi4KPg8+V22CGcEMdXnwZfCdahv8GPyirgl+DX5VNwULgkWqQ7A4WKE6BquC HeqOYHdwQPUMDgWHVZ8gJ0qqf5RHuXo8KqNKPRH1o1H1VDQpmqoGRdOiaeqF aEa0onoxWjlaQw2P1orWUqOi/aP91ejoY9En1ZjogOhz6o3o0OgLakL0pejL amL0legr6v3oq9FX1QfR16Jj1YfRcdG31OQEnpCgpiUkJ5RXsxIqJFRScxL2 JxxSvxAPY/5OFFxQ5gqqQ5l0ig4zxawx66mB2YDwkiJz5JhXzXs4t5uBuLrC 3IgyMxHaEE/fYDbBXxW/2leovE3dZPbg/D1NF1HPbrgXi+X3EbjPC8QsRw2p tpZjHtC8kO83k41wgJH8Joriek1BHnPvpog6fzQrzTbzEyisxt1mFcfjCRw+ qL4cp77WbDEzzbr41a5CtW+GW2ZWmHnmgLmMQmi706hqvvSc4ioze/Hs9oDC 75yj/TFjiaW+Yd6gAC7vGR5VeivcOrMYNJbj0sM8qxadh1AVl/q1mW0WQH4g O9Dbi67/HfO6GYXfAXDnmzPMg6YHQvnaMffuEdpSqHSO+cZkQYK+MT+ADzwH 23oFS+Xl/bGYpiDoqUQJLvR8PGYbaP+UK5v5pSIeswd3vgttv8Tsxnw/EVGN 8RTyajeb3RPanJu7UPktZiP62LbcFrcro+53af48xfEdz7e4wNU/Clx9d2I0 cDR0+eOSZhbi+flmYTE178/XtxvSX4rJ/a75t+3R5psT5qlg+fVWOqzMFkqZ fwKlcWfmKReadHR/NredQHnIiPnY4dZy+9xKepi3HZq+jXYtfPgnRGG7meJQ 8wTloggKu05cqoooHUdY80upSr/v/IUWOU75cdYJ1L8+NpaZbMjR7hLXEBw3 tTbc310tuSPeqtgZT69SRJm6OKvgrFuAyzfjv3Ni53HKNyyyfLx1ISV7gU57 j8Uw8HOr2QkEW+n6lJXqAy7+BZdc2Xxhpptf7Yh+jPKH84WfpXTg/3XUzvaQ eNwyjA1TC2NxXpnsfOEhGHkS6VLqiPDEeNwatN7cY4+qufU7iX4F5UNAnwfi SG7jPzTvkTCTj1n+aCn0MHvqgvjn4unfmW/R/t/Hrwrj96F84YEonU5tyc6E zo/HfW4+A4X/HLP+tUXH5+CJWXw0V5q/mc6mXTz36ELlHweKvWH+Y342v+aL 5tSBnqBBCD1Pg+03M/QuJHciTcbscCpNp0ZuVaEJfUULqCn9RuuoDWUxRtez jqwjdYdG/3fqYXV56mm1eHqI38270cPQxxdRX76Er6F+fAPfQE/zTXwzDbC6 OQ3k+/h+GsSzeTY9b3VzGmx1cxoK3TxCL4gqogqNEDeJDvSK6ChupVflJDmJ rFZraJSX7CXTj+oT9Qn9pD5X02m2WqKW0s/KKEO/WJ2O5lmdjhbpK/SVtMzq dLQCOt11tNLqdLTa6nS0wep0tMnqdLTZ6nR00Op0lAOd7llG0OaGMqVf0CNY yOp0LNHqdCzJ6nSsjB6nx7OyVqdj5axOx2pBp9vFToc2Z1g7X/geu9H3/TC7 2Q/8BHarX8Yvyzr75fzyrIuf4Vdkd/uV/UzWza/u12T3++f557Pu0NpuZw9C OxvAekE7e5b1tvoXe8TqRKyP1YlY38gjkSHsMavpsOFBUpDGpgbvBu+yr4M1 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 mwqvzZldZpX5DSmFdiFKe+Sukhe8sv0nLtX51gvAu8gLbznWUzYrCq9qnqqj 6B2cYkuNN2Pd72G3Gv6ddXZ9yLyN0Kx4nlzJsj14r5mTG1+ietY6GV39+7Vd BTPL8uV4zq0H2bXyFS60FtzkR6h4+57o83Wr1quLz1fyA5KWj67ZZw7DHbJr XeZIgXzH25f6P3b8wX3+BA4z8iQKX1EEvdVUBzJY+SSoHv+oQw5bLZ46TC3y ADac8B7iyY8VR9ErwFX+vneC5T8008378f2BFDPaTHexa+zonn/0LtX8YRGw caWbP2S5uYlDMzsmmZX4nRDPtc3tt30PNxNnVsGVa4dk6ZS7Nvs1xoJZZi7c SMReZuaZH1z8r7FZhNvRvqHknBbifGOBKzeGmg/yxdxtxplu5hm7ym8eyItt jrhPbb8rvOtIds+18F7oJvMF7mXxqeupufJgxzEgWO68cBbF92fz8wBcztsb sXssxVD+6VTxWNoDrRR1v0PtfnOh1B7m6wJ5Y7/LMLqtsRJSivrmW6l38y3X TjaE8W1lvNXgm7vMbPe895MoYgyLUoNCNLehH2yN7y4JIEfurtP+WOrJj2+/ 70MX3K/MnaXYuZcbt9fi3FZo7rnCzT2L6O3ozacYu4o6jsKzeYXSDx8dE4// R9HxVJJ99BIf5o4SFoi9YzHAPOl+tzsE+Mg6hP5tJsVCLi13fub2O/GkPisF dx+aT4GYn8SvvjbvkH0/aLINwwE5gWJfAyVyZ8Hbgb4/xHEitn+WUIjmt+YT MyNOM8VexeMLoIMxJefWlUMvNb/lXeXqLqtsKFevjM3EHaLNsvIRe0ck3n92 OUTuYK5wVzPI7ubdD/cQQkPMCIx1D8Wp5Hu3BS0w1fQuBbe3mr7mddMNof+i V79uujh8eA6j0eto5xlmpLkTY+t2uwfo7myKmWjGxGqOjxoZ5r9H0cwyC6BV xnru2Xmh+LzTHIy5E58xF6C9x/X3vLeCCo5SbpzO03zdzHele+8h/xsXZxR8 Y+WPOgru4ro3mLYWz4m7o0LvX/0RR0FN1rYqZHh3cfjpns4p03RLcuSff6A3 WC1rIX6PsdOdl3PTyfNrXjN9zD/NcBeeA3kfa9+UiY9DsfniXvMx3PSTq8dR ahB7k+WkaKwx6zESuvERz3Q95DBvzh176mYH5hw7ipoBlriuUsy585X+IfZU wYvFwZ/iVyvi/SfO9Z/Tn4s6zB3mdjPNTCLurvqankDrjrEZgZlsDuBqkPmH OcdUB442Ng+Zu06irtj8MfOk+I1jUkynzXvfcGzB1FN5mPGngIaV3gUxVMf8 ttDTd+mrzS+/j8J/7gFulqDPuTVPyLDVFPM0ldhMF6nfwh3jXdU/+gC/z+fv uZhfTfkz+Tn2gd7Ww86dYm+6mu6YHf2K3hdLm+H8JeYzc6N5BqHBZmksrpR1 fXvy/Jawxj353/P6v3vkzXF3nfzblUW9634qj9jsEPPvdRj1TsGKRXHvKB+3 7AlKlHnPre1vLn1N+Y70U0LlhA7MhU565mqGngpOiqkjjnSY3Z70uvwpekrF 1bIGM9v/cU85dQdmPXtOWcsknwQfp6K//4H7EaWRRsx7VsdKxr/syF0Xme32 GWYft/C98bzvl7zeP/oozTcQhWgcczfkOGXcar1dKYppwrEVnby94PDx9GO3 tptO3UiVvF5XvhRfeZksN3b8/i1Z7prciep2Ebq45LX+qUdqaQuWfOeJ7FsN dl86T7M3U52/Ffhc7G7E/7UD8/69x/5mIl++A/97Xk7sODGELO2oXuS3UsXW 5d4g+P3bQbdjkSdZ4SIL5ea1a1UV6Ub0uT/hKDh3j6EGtKdicNbtxPwJ631m 5ymktYriK8pFfnFU133lZHfQ5xSRWhxt+x3VqtySuSG3wr8qHpNbZ3NX11F8 5bt6+neaubzY77UKcWW/ympod2lKo7WbkeZNMyXvO7B4yM4I4muac/L4aFiI 3zdLXl+B8qV4U8j84nYlvs+7du8AYb6pTnin7wS+3jtG3UV+m1xMmfVu1cqO 5A4L3NXX6HsxZAgfb37pRpREOu/Evtcsonxp3n+YZ7+3dG5f7Nr58VXz46ND /F4qFnzfCPK108x1biSVx5x0Y3w3aWWsTztZu7vknBZzH7EdtnzauuloHjJv mVHObkDeOz2mjfmwhJS//mNmzJbHY9djcoraVY7tKB4Vt7P4XZzSHu4dmTgy m12YT+zC/GiRWfw7EpktiLN7xn8x17rrjyABC0wHM9NemxnmRfONXTF3aS8U oL0sN75EHLUz3cxj5rL4lQtBAru48JtmnHkAcjASs7UpGHltjknmE/NxfNS2 q/Op1MDtOfcyXV1c7H3EUZhXv2afh7WSkPcWUIG1IHMw92v+EvH7inkbutq/ 4lezXd0jHc7Pdm1gd1/fN3vMly5D7Kv9+BsGcSk+u+S1/lnH/+Rr7MK1rMpF rNi+8591lGafCk96K+VbdcizkHAiY09Zsu/vXOXCFakxdM9MV3YdZh3r3GhS gc4y89FD7bnMLDfnoL90ocDExvW4noreGdOpysevP4zvVHDK+2Laxb97nPtw 71aY3hjn4iuQppW5Ba6NuYPKmtgYnGtDoy/chaa5ucbEv2ww35ml7m0J22M3 YUxaFddf61EdN3LWc7mOv7pRNF9jzTj4b+ddT7G6XIE3K66OB26kv9NfqJGz E1PTpeS/93DOLyaSs9+NlNPMPeYjO4aZfuYJGwLVgQWqjb0Ddk8p+O1q7sP9 3+cufIS6Otx8wo3Uc/Ess3JiX9JPdlZBcg/XsqZ7nMYJ6HhF1r2x+DyFymxx bwTYeYKTJifNX+NauuTguPMdWyqRzgX3nOYVY8eufdyO3eN0KeOsHHV21ul6 Oet0A5x1uoGsPetAQ9hd7C560dmle4k9yAbSCDaIDaeJ1jodTbHW6WiqtU5H 06x1Ovqcfcnm0AzegDek2bwxb0I/W+t0NI+fz8+nX611OprPL+VtaCF/gHen xbwXf5iW8iH8BVrOx/PxtJq/xSfSGj6JT6bN/DP+GW3l0/h02sa/5jNpJ5/F Z9Fu/hOfTXv4z3wu7ePz+Dw6wBfwBXRQBCJKh0SSSKbD1sIcGWdhjpyFOU/U EDWYdhbmfGdVLiKaiCYs6qzKJTircknOqlyysydXVrQXN7IUcbO4haXab+VY mrX6xjKs1Td2hpwsp7P21uobu81aemO3W0tv7A4vySvDungpXjq7y9p7Y/d5 S71VrKe198b6WHtvrK+198b6WXtv7FFr74095e31stnT1sYbe97aeGPDrY03 NtraeGNjrI03Nt7aeGMTrI03Nt3aeGMzrI039rPqoJ5iC611N86sdTcurXU3 7lnrblxb627cV2PUOJ5g7brxZGvXjZe1dt14RWvXjVe3dt14bTVLLeJ1rUU3 fo616MabqSy1mZ9rLbrxVtaiG29rLbrxK6xFN363tejGH7bfx/F+Pvc57+8r X/NH/Ygf4Y/7iX4Sf8JP8VP4k36an86f8iv5lfgAv6pfjT9jLa7xZ63FNT7I Wlzjg/2GfkM+1Npd48Os3TX+grW7xl/yW/qt+HBrd42/Yu2u8ZHW7hp/zdpd 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 yf7GcMtwj53Ds/kS09K/fmBgmSyNzWCL2TS2hHWwt5mJrWbL2TfYGhZj4+xj lmD/zH7LTrDfCensXwRFyGCfCpnCY4Ig8N84yfx7k8LjwjLBIuQJ3UJCKBFG hXVCo7Be+K7wZeHHwi+Fr2o+0nwkeLVurUcY1Ia0EWFIO6pdLQS072nfE0La 97XfFsLaD7TfF2LaXdrdwte1+7Q/Eca0P9X+VBjX/lz7T8J79HvMddoz2o+F 97WXtJeFb2uvaf9d2Kj9g/YPwmbtn7T/KXyPf4tO2KqbqZsp/FD3sW5K2C7p pELhrPSs9KxwV3pOKhP+JL0s1Qif8F94CJ9Kr0v1olZqkL4oStLb0nLRILVL JjFPglkQ50oeSRVfkL4urRFflsaljeJ86QNpm7iI/3JCbJV2Sb8Q35FOSafE fum0dF50SReli+KwdFm6LAak30s3xBH+fSwxLP1RuismpHvSlDiqZ/oM8T19 lv4x8QP94/qnxe/ri/Qvibv1r+nt4mH9gH6teFP/Lf23NIr+ff1GTYb+Q/0u zUz+76pqHtf/nX6/Jk9/QP8zTT7/PpCmSP/P+vOaSv0F/TVNtf7f9f+peUMu kvdoFst/THtK81vDJ4ZPtPz3cj62DaqwEv6b7bpTqSpK1aKH7aLVR9/MXn2i 3vzm3frm1adXn1t9sXFq9ZXV1+tXtewayxnLHyusPz9WMlY+VjVWO1Y31thU 3LRw9a2mdavvvmF9I7F6coyNSWPKWFbTwjc6cIXpcb3fpuv9T0zA9T6Jq/5T 4VOmwTU+nWkNnzd8nukM8w3zmYTRT9D3VJn4ofghE8SPxI+YKO4W/waj/0H8 B6aj76lK4i/FXzKZfieWJn4snmXp9A1Vhb6bmiH+VvwtM9C3UjPFP4h/wGeH f+80SyNohIf/prBOI7Fs+l1ZjiZbk81ma3I0OSyXvkc6R1OsKWZP0G/G8jW1 mlo2l34h9pRmoeY1VkC/mSmkb3Q8g1ekCFl0XrkyWwML2BpsTbZW21LbCpvJ 1mNz2ry2gC0CHbWtsa2zbaDabNtm24l1e2z7bYdsR20nbKdt52wXbVds1223 bHdtk3Zml+yKPcueY8+3F1KV2MvtVfZae5290d5sX2xf9hfLebvRbrbb7a6H i8+u2mP2VY8s4/YJ+0Y7CNa+/S+WSyjVvsu+134Aj58th+3H7CehfDljv4o9 3sC422jdsz/oFXvlXgP2ub13Vm9u79zeIrx+Ic2euqfwX7TPoHOSg0XD8rBo WRF7lulYKRY9+xwWmdVgSWO1WNLZAizTWD17g757/hbuSfxXmZnsK2wZm85W YMnCXcnEZjIrlllsgLnp95h++iVmkL5vHmW5uFu9x+aw97E8wb6DJZ/9ANf+ k+xDLE+xXVgK2E+wPM3+Hksh+wcsz7B/ZEfx/E5gKaZ/K/s5dp79Cp+WX2Mp Zb/D8gL7PZYydof9Ec/9Pvsv9iKbwjJPEAU9qxTScWesoW+Xv4I743RWS98u XyDkC0+xV4WnhafZ6/Rr0HrcK1vo957LWIPwNcHIviB0CB3sLfqmeRP99vOL gl2ws2ahT+hjbwsewctahBEhwlpxZ02wpbi3fp19RVgtjLGvCuPCOPsa/fbz /7L3NdBRHFe6PTM9wxiLsawoWMaYKArGWGCMBVEwUTAhGMRMzxhjGbMKQcp0 9/z0jEbzb8wSDCwmCkuIIJgQgjGPJYQoCiEEK0IWGLNYJkRPwUTGmCUsD7OY YK3MwzyZ5WGy937dIwkhx+TsvnPeOcmp831dqq66XT/33rpVgJhHfrZRqDA1 mZoE2bTf9JqgmFpMbwg+029MvxECpt+aWoUg9DdEPmKkELYX2guFavzdvaj9 YXuREMPf10vYJ9onCkn7JPskIYV/Z5TG3857xl5p/6bwrF22y8Lf09qeE7qg +8X8eye0YkIJYQqhlOAxUGagnFApPK2VaFO0Us2jlWnlWqXm08JaXJtPvEhb pq2gVKut0zZqW7Tt2g5tt9ak7ddatFbtqHZcO6Wd1S5oF7Uu7VrIHLKHHKHc 0JBQfmgEpdGhotCE0KTQ1JAzNDM0OzQ35A0FQpFQMrQgtDg8MLQ8tDK0JrQ+ tCm0NVQX2hlqCDWHDlA6FGoLtYdOUDodOhfqCF0KXQldD4uUssODw0P5/xe1 eq1B2iK/4ZiH377w2H+bfrsp3QEtz4aW3wkt/wy0PBda/llo+WBoeR60fAi0 /B5o+VBo+TBo+eeg5fnQ8gJo+Reg5cOh5fdBy0dAy++Hlj8gtFIqhK6Pgq6P hq6Pga4/BF0fC11/GLo+Drr+RdJ1s1AM/f4S9PsR072mYaT3rNkl0OyvQLMn 4V9PPAptngxt/iq0eQq0+Wukzd8iG3jO9BzZAP8biunQ5lJos9P0fdP3yR5Y pyX86wk3tNkDbZ5paiU9nmVqM7UJT9qfsj8llNnL7eXCU/agPcj/mjt7cfYK Wqcsmvvb8beGhOBuQhNhP6HFKGslHCUcJ5ziMvHOYEO0MVT254E65fHZwebo vuCB6MFQ5Y3gsuCh6OGQjxCOz2UE26JHQvE/D64TbI8eC56IngzN7wH/HDwd PRNaRFgW9wbPRc+HVvx5oE5tPBDsiHaG1kU7g5eil4Er0auhjYQtsYvIb49H QjviyeD1mKCJMVtodw/wc1N8gTYwlhXa/yloiS8OtcaXa9mxHGBwLE8bGhsW OqqD8zy20PEe8M9aQWx46FRsOD+BkbHC0NlPB9fTxsTGauNjxaELN0KbGCvJ yO0NbXJsSuhiD7RpsdJbQfXp9FBNinm0WbGyfjEnVs6oPpcuYGjzYpW3BCXm 07RY+CZEY3FGdUciW0vH5t8Kqi+lR2oLY4uApbFlQE1sBaP6SnoMPyMXU6O1 M7Gz2qpYrbY2tq4vqq+nx2sbYhs/DVExPREyNse2ANti27X62I4bsCu2+yY0 xppuwL7Y/lvGwViLdjjWehOOxI5qx2LHb8LJ2KkbwOO+BYS64iu187ELWmfs Yr+gd6Fr8TVhc3w96l2Odd0SrsauhYS4uS9YRthOcMQ3hWxx+60gnBvfGsqK O7qRE8/tBr8fQsiP1yE/Ir4zPDreEMqLD0F/+yBcFG/GmIbF8z8N4QnxA+FJ 8UO924eGx0fcgML46JvAbafG20Jj40VhZ7wdz5nxE/3155MQKo5PCJXEJ92E KfGpodK48yZ44jN7Izw7fjrj22/wxYavzPi48Nz4uYwPCnvjHb39SLee9FrX 7nXJzFEgfql7biPxK737xL4kOpB8Ctl+NFv3AdHBhg2zXQ2NbeR9g/U9WkAY mZ6c0efomNhx/g6/Dyfj18MLEmJ4cWJgeHkim/eX8MrEYC7nsYXXJIaG1ycK 2L+GNyVGsp8Mb02MCdclxvMeEN6ZmMi+HWMmfQ83JCZn/HO4OTEtfCAh8bjD hxKzeC7CbYk57DtZJtCemBc+kVDCpxNa+FwiGu5IpMOXEgvDVxJLsUfyHsR7 As/hddonjf2sSoxezsxz1cBEQVV2ooZl4N3gxKqqoYm12Hsye22vNeqWyTD2 lMxewH3ivbGqILGB+1Y1MrG5e525Pq0drz32ZdrzeGxVYxLbuKxqPO3hzTp4 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 7YTz5SecrzjhfMcJ57uOP69a5HdZ5oXqeSecVz/evnqNE85PbL/qhPPGJ5w3 OX4VL7nK0/nItA/GSqdgItW6nf9P/E4dI0GqcOoU7kJFJJ3byC3ObegWuQVu odekg53BTm+3J9ij7yaDfWKCg8FBsa6eqyehu8xd5u/Xmg/GXm51vYwpYop6 jX4ry+l4bCHfs6I/L+bfUfX07/kWy0Y5EuT5MWT5UeXlNhOT2zC3uWej3Os8 dXaFfQ3Xd5yV/DvCWm6rWFPYj+lnjovdNn8s6s+3c1zsVonxZ2s8F7u1np/4 uWqGlpBSbqMf6wLf+j3HxW6TPy705z9wXPw7y82J5Y+J5ZbE8qfE8u/jvZrx Nma81zDev7c0oeVaWpr+vsUtYYSfM8KljPDvLctpWUHLSlqMRMb/57fZSUbf yRc2hX1Ui/qo2twrcq/0UV/gFkjaj2mhj5QVfU0RWJ4f+v/L+f5D/ayG+tOT g5NlcFAiOFOG8O+FDgtaBa3l/qBr0E2G82+EjgzuCnrLQ8HIYKQ8FowLnpZR wd5grzweHAoOyRPBb8FvMkZTQ8aatEnLkybX5MpT5hRziowzxUwxedqcYc6Q 8eYcc45MMOVNeZloKpmmMsn0Nn1kvuln+skCX/0HyAfmr2aQLDTDzDBZZB40 D8pHZowZI4vNU+Yp+dhMM6vlE1vIZ81RW81Wk4ytbxtIgW1kGwXGTrKTAhv2 Dp8NwlT7VPugSqpjqmNQNXVb6ragWur21O3BRaleqV5B9VSfVJ/g4lS/VL+g Ruqr9PDgkpzrctoGu3MePCkIMrmFcy83d+fenDvZvFKoQ6EuZn+hwYUeNkec cVk2y53tzrYnu3PcObawK+PK2FPcue5cW8SVd+Xtqe48d57Ncxe4C2xRd6G7 0BZzlV1le5qr5qrZ4q66q25PdzVcDVvC1XQ17RmulqtlS7rarrY909V1de1Z rr6rb//kGrgGNt81dA3t2a6Na2NLuQ6ugz3HdXKdbGnX2XW2ZVw3182WdXe6 O+257i53ly3n+rg+trzr5/rZCu5ud7c9zw12g+357l53r73A3e/utxXdcDfc XuhGupG2knvEPWIru8fcY7aKe9w9bqu6MW6MreaedE/ai9w4N85Wd+PdeHux m+gm2hpusptsL3FT3BRb0011U+2lbpqbZmu56W66/bOb4WbY2m6mm2nruFlu lq3rXnYv23ruNfeare/ecG/Yy9yb7k3bwL3l3rKXu7fd2/YK9657117p5rv5 tqH7wH1gG7kP3Yf2KveR+8he7T52H9vG7lP3qb3GfeY+s03cF+4Le61b5pbZ pu5L96Vt5r5yX9nm7mv3tb3OrXarbQv3jfvGXu/WuXX2Bved+87e6Ha6nbal 2+P22JvcPrfPtnIH3AF7szvkfrGtffK2pX4JlSsIjgRHfBUrCAp89UgZ//6D fZZin6XZZ5EpYUpIlillSkm2KWfKSY5t6KvbSal2qXaSm+qQ6iCFUp1SncSl Oqc6y8mpnqmeUjjVO9VbTkn1TfWVIi7f5cuprpQr5fd4aVdairqyrqwUc+Vc OTnNVXAVpLg7350vp7uKrqKUcJVcJf4dgKpS0l3kLpIz3cXuYjnLXeIukT+5 S92lku/+7P4sZ7s6ro6vVlp/z6H+lnZXuiuljLvF3SJlXXvXXs51HV1HKedu c7dJedfVdZUKrrvrLue5Hq6HnO96u95ygevr+kpF19/1lwvdIDdIKrkhbohU dsPcMKniHnQPSlU3wo2Qau5h97Bc5B51j0p1N9qNlovdE+4JqeHGurFyiXvK PSU13dPuabnUTXATfL2e5CbJn90z7hmp7Z51z0od95x7Tuq6593zUs+94F6Q +u5F96Jc5l5yL0kDN9vNlsvdq+5VucK97l6XK90cN0caur+5v0kjN9fNlavc O+4dudrNc/OkMfXvGupfE187F8m1vnYulqbuE189m7klvto2d5/7anudW+qr bQu33FfZ690KX2VvcCt9lb3RrfL3jJZujb9n3OTW+ntGK7fBbZCb+Q3+1m63 2y23uL1ur7Rx+91++Ys76A7Krcm7NH3lU41aW97nViq4JbjFqzsGHSUI3wrf EpM+lj4mNqt2Vm1fh/8z2edr4H+z77/Zl2RfCbKvgr7aCm5Pr/tvjv03x/5D ORakuvjX84WDUqaavSJsKSWlJn+/0b9jtJMu/vX7AP/KcqQ8LuNlqsyU1+Ud WShLZIWslU2yTfb5V/YSpIPc7P5is3tl986+m2Of7AEc+2bfw7Ff9l/9sbeX BnHsnT2YY5/sIRz7Zt/LsV/2ff7Yx9sN49g7+36OfbIf4Ng3+0GO/bJH+GNf bzeSY+/shzj2yX6YY9/sRzj2y37MH/t5u1Ece2eP5tgn+3GOfbOf4Ngve6AY 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 hYWLjZ1dXF1DI74DwBPaj46f22TQAx9zd3QxMNjeKYOtKwZVA6C/CBCYAxA4 pf2/BIDQl6EnQyfuKwLXqR2cRbVIIDC4FgT6iQCCtSCw5V+DwD85d8KP8E59 eYidTneXCRezDj8tb3qhXWdl9os+t2J6bU0qphbvShyQPSd3MXdgXN7M1513 pDWpUN2+k/mut42mSepU/abJJUWnNx4btKOJffsxNtqB9UWVqqrDExlzvzSq t/3oLLOVWp9M1yW88Y8emL3SZtK15wtybg1b9jLGuLBjWPbr5F/1xnmf6ryh Xfmr5vMGt7nyKPmBYU7mgAEaDcuphS+1ZTv6dyva93jjsOXnwk/53m1Z+tav sir39k5Kt1lvi5s/eS5dM6eV2mN4wz7ylV6DH7wfldRqd91Tj9pfXHO3d8v3 w488iArvd/JixqSfU23Ejy9dz4SbrW/T31fouLep8HJLWtMVHqX15iqXT40C 2UbvArxbVo13bKhLfWOi1tS/h7m+BD1Yjbn1p817Yx+B6xjIoOHVdUTD73Zq fPOL2kFsVI0LNr/hQrfYWAAHcFR0VHR4aEKkRevhCQNi46MTkgiYgQBzUTs7 q5u4OAOYOddsOkub/02c/WcItiG+Z0gdMWKvWUY/C4s2ixIDBrU0uRR78sTr JwO/LDTQun2racJE461OOc7Pqm7ub+NnfTEelTTuzk47vsbC592rAYWdO6bm 707qODSzA3Otst6trOFTi1cNazfu8oSSt7vfuC07FtL++tqiFrcbDlhovCI/ fljQa8P5pZWN58fnXErsaz6i/cTJHgZnhvWiocuk5m+IdrpWh/syN8H2bqJT 4A09sWfZudSwyhPH+nqpu2xvoFvaSiyOt9VqaHXE3a9FjnOLOadyPRSTQ/yC Uhra0c5bO172D394ziHsdfsWDwuV6INXbvbZXjPrBzwatcr3jVexe3OP7E0j QvINs1NPaM8Oar6vUKOv7PxXBOsDLRIsakrIoCs93JgWZVDUQq8fIokEVmaa cjn0wCmijkKjJjTRx3KanBjk77d9lHSWyrNqv/P1p6fdSe/XrEAdu7z5risO Yp1vH9Kj5Lw5iwLQcAhn2qLW32GZUJjSr1VQg4X36+l+trvDBqT1LF0mdqnG Mh+xg9g+p21O6ymefx3Lvh2Oh64tQRBBscBaKOYtAijXQjGPf0XISQOmbfVZ /4hfFEY9m7QcV99r7dPYVuudN8c8FZyGFPh8fNp3+PNOzRwuty3ivpx47KBe an0yuUv6eMvehS2cOu3IKwhafC9u57ZNZUmbfeI/tnzSetzxO7xh9In8xRYO n7guB4NOOdzzPbcr7mGBKk+WH3R72/SO3d+ktVn8+u3LF/em1HVtvi0o41WA 9WS7ZSmm8+7OZ8ze3PUrm5l7/JFu/i9+R03OzY5Psxs6ONO4zPRVwKX+J62q QsxO5c3c3WBDUnhQu7yup8ofL+0RdCOTat/Oqe+7a2supDgP+bwsTbf0afTD lXn2e4420hIiZy0qeZ/3Sae+RqTH/Nej6vruPHsn6NGZkQuMQo41Nuh7Y56Z zyyHPUWu7UxfaOkbo943GveyPJ1+ROPFZGGm/2BB169Fsq334vizbwcd3/cs bmn3ud3HzE/NMfGWBX8sXtqfTch3e+7gZHj0Qby7zrvY9c37p5R325DqYhBp Lky/oXUz4l3saa8L5w0fJx2UbzpfYX+r7vTsQrZCt0GrotLyOyvHee1k+nWI 7NfKb12bZ37PNyYmXWFdNQabjlfXvSsE3rifW3G/g1ZRRHpVFwPH5L205ai7 aa0bRB+YNzvtWOqVTMs1qpDFr/LWTBkwkY9x2Jk4EJktKHpjMPqDwUSb7VOL Ywo6qJ0yrt8b2uIyGhvW4ezpqce2GX0S4lP3LW2xlmoVUxWdueCuVoHWJvcu yksHWogpCgbw++VX/DYY4Erw2/S/gd+iu+gqAmI3dhElMeqsJpsQasPmfy/c /2fovSR30PpbJd5z7ZIHOta5s/vuvUOLulp3KTp9w8jPRvPF2RVnOxUliBba T5mLgWn6PvNN2sxdkx4i1r+GBj4avfvZNEbzoyBPfzXtZN0TLjY/Z71519/U /vPoh1PNnjz0W5q7zzrgeOqn9sUaZ/qsPbOujTyvfPmgef0vN7zuFbBuypn7 Db0cGxRO8f+pG18qs6+ImTNHHPLz255i1qexlxZufGS5cGzZOd23yq0Bg7tt aj9niTfy7RCl3cA2qmBh6XnFBN+88kkrtDvoaaQsmfT8p5FfcIZZF+VkpCV6 Pd9609pr50GHwCVrzUe2Vo84mXmr2cR5uaHUZjPV+s8fMzfg01YdA6vK6QP7 Lbiv6L0aWmTFP0LvHwbC36G3Vm30ll5cLk5IrwbfCXPECak/ht/c8GWhf3v3 TNFKKjLI9c3JL+o0rMc7Rtcx8v8Z1P9LoTu0tdbC6QdCZO3cbjzeVDSi5HRS 1854vWPC0F6Ded3Vp/eMnr3N8YJO3szBYdu6Uyf8LHS7LLoxqtXd7jvX9sgw vWOGpxTuHPlmxplnzfCLu3tms/TRVO+7rwL0b/ivnlv6MDXm4vh9D+a/UThN lj3+xc7GKq7iw+fSkYscVR+Zu3G7jPyyZg1k49O25TZZ3N/hUFfhSViIp0H6 DAvPu4yxc/lJtW+iukWjeO7ok7gWVZNZ3Vv72dBZry5vM3zqN2PcocaN+izd +3TXGK7N6AsB8ZYvxOM7R0aG9MKGrJ5w7ppe+vvm26N6bHRwelg+ecrJrkGP suLmDyps0unCh6S9q4xGhdm+zMu0dVWMMA471sJ8cN2UV9wR+53FbTfeL382 ZvO9ZQUJjbf5HRpqrVM/kWvebebQYK+2ers2blzXuf/RJW2qxidZjs/WF6Me tdHpY3w028ryTNvHjR7vfOd90v7CFefxnerbedv0DX4S9HL5zUVZx5vG7p7Q IEGh/SLRcm9myr4GgVvWx7SYlpsYumlIru7yvas6vNKJrZzuPGjDl1tdj860 Pha1O8vsZ50IqoXD2p6zt5Va3t+87nj4ppGB9IXWjl0K56/LH7l6Y86C4cZX 5/6sO9zKyblAOSSn18x6e3NeTjpueempuf+xjBc+tz/iyNhp3Jij0UcfDHmy YuFptW2VcKhXyJXOJrlXPjllezr+ZDDwmO7SSnWKHIawfAWFsQjD7b+nl388 bfLbJHLOhIOSXKvpvxoyNV97hhou4LctTi2ItY/qS2Lw6z/K1QBKCxanzZqu GDvbq4V1M8OxvInhzc1xYkStf+HVQWJgjt34hqgzikbhKB7FkknuKJSALFAg SkJxsNUf9odCbQBKyq0/3uZPB2tCUlxs//jQuAFJFr8jFXkKRqG7ZL79/Irc M1d/LnHv9qLgl5lb3095UvzI3/PMJePk9+NLLsbMHn+8cwfPVy7FJZX+8/o7 7o5zS6mKP9ypZMHD7LvN6aFZOnNOqdqc3NgrOH3nle3KTvMOzl74ZuO5foqD q08XbR+ZP+Gq7r2zTaYcPKrjWfy88/TCGU4bVOleO5U60XxMRZZwcIRG6SCX 0LxJB6fW6WnQ4OHrlSfsNZrovO88L+oFvleOg4yTFqwvXctaFZYPHFVquGig d1bvoz5NRtXT7GRq9O5Twiq3AxsNuu27v/rkfZ+24rCpe5943rNM0/HZHBNW dOT+1YeeCZd+KYy4vv/NzTt67KJc3mNBx87n57YMf/ko4Lyr0+bcFKqhmELZ /OYjhTqF0odd2qRXzvqvqYD/NewzEkhpMtZAAjlJciNmVhiBlsNlWA35wYNu 5oYWhmbGRiaGURgp0s7J8ennsH5nU9Ftfq8uvl3nP1MiBq28BqWVhfEnVj2O uejbeX+avqY665wMZsdVi9lMHDac+Ne+r/cDt81CXze983uc1Doe8E0sKlNq zV/X/Tz3sJPjc7enktp+qfP++3AZFR6XWLrwXewhZqVbFksjOfRcGmMWGCWG LJKp4e+QreP8djAsSODdyshd2b95lnWz1P1Zece2d+cqubYIrjM2Ukwb/2WH ZG6qXRMyi9vs9AIbjYWnoq9MLf0pdrFM2HBtudpWlTPmlWxyXdkv/lz6oy1k yth4YW6VrMv/CpcFE0w/B0r6TLSVuiZnWB57ZGeG8nor4ZZN+nEHJO9Xb7jC eOHSB8a45ZpJGueOrz2mn7nkQuyaFu0Xi92P5avofr1e8JrzpAMDAJgMvw8N CmVuZHN0cmVhbQ1lbmRvYmoNMzYgMCBvYmoNPDwvRmlsdGVyL0ZsYXRlRGVj b2RlL0xlbmd0aCAzNDUzNi9MZW5ndGgxIDEwMDAyND4+c3RyZWFtDQp4nOx9 CXxU1fX/uW+Z92bL7FuGZCYZEsgeErYAkoEsLCFsYUmUQAIJBASJAkoUFBQE gwqtWBW1YG2VWpUJuARcQGttXRBa61atIm51iVIXsNVkft/7JozY+rPx85Hf /8+nOTP3e88999z7zr3vvHPvnSQTYkTkBEgULq0aNyblQ8+7xM5tIPJPmzCt auzou96dQKQ2EQk3T6rKK1jy4KoQEfsDWs2YVjVuxonCoWOIDqN4c8OM0srq GaOa24iMEpFt67wl9c23bJyLtueE0WbbvAuXB8+7bdzFRIs+wgXnzm9esKR5 2KqXiWa9hvL+BfXLmslPeqJDx9ChdcHilvl7f7MqmWjpZKLxpU0NS1bOK59y I1EfpJE7mxrrG566/zYX+oaNNLgJggS9/BzK61Du27Rk+UrrVPfjsD1IpBt7 buMF50kTxF1Ejz4BWfXipfPq/7bpq78Q7d1KJOcvqV/ZrJug5+13on3wvPol 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 6Wl9Q6kpwUByUh9/os/rcbucDjv/pUUz/2sEVdHJkigwyi4LldcFI+l1ESk9 NHZsDi+H6iGoP0VQFwlCVP5tnUiwTlMLflszDM35/6IZjmmG45rMGhxBI3Ky g2WhYORgaSjYzs6eUg3+mtJQTTDSofGVGi+lawUzCikpaBEs8zaVBiOsLlgW Kb+wqbWsrhT9tRkNJaGSRkNONrUZjGCN4CLloeY2Vj6SaYxQXjasTSDVDKsi 40OlZZFxoVJuQkRMK6tviEyeUl1W6k9JqcnJjrCSeaG5EQqNjliyNBUq0S4T 0ZVEFO0ywYV8OLQp2JZ9oPXqdivNrcsyNYQa6mdVR8T6Gn4NW1ZkTKg0Mubi t7052e3sjmnVEX1JO6Np1XtpfHRN27g1paU1/Gr2kuoNp6r7xdYy78IgL7a2 bghGdkypPrU2hWNNDTrNya6YWp0Cq0NlVwf5MKZWayNAp8ybByO5jA8zNuDG UBmX1C0KRvSh0aGm1kV1uFmJrRGa2pKyO3F8eG/0CI0vC7ZOqw6lRIr9oZr6 0j5tTmqd2rJnXDg47ts1OdltVltsptsSLN2MyXwq0xiv0zhNnXOw+uRUM25R aBxcJBKcF4Ql1aGIkDaUQ+NQap03FGqgGoYZXYj5q2u1DuM3Qk6zhoKtXxAc IdTx0bcl9d0SXZr1C+Isd5e4y6H+JB/JyopkZnJPUUpwa2HZSK08KCf7wkhF qNkajFRgymhyNRrVDMvDlKek8Lu8qT1Mc1GIrJlSHSsHaa5/N4XzsmoiQh2v OXCyxjWd16w5WRNvXheCO9+nPdyuiJoef1usbkdZ07AIc39PdWOsHo9PWbBN ktNaJ1en17du8qfXtV5dg1tTjkextbU8FCxvrWutb4+umRsKWkOtbRUVrc1l dSeH1B49sMkfCV9d08QwqZHC2GxEHCXVol+oiXGCX6zpeX/70F/51TURa53W ZUVVqGLK2dXBsta67vvdLRkaK/l+582hsHFpAXv1ocmBJbdMDuwTglSn0u7A U3XtPJtTNypD5R+CBYVcTEYeO5+2I+1C2o/0BtInSFEkBevN+WRFmoN0GdLm bk2dVjOpu60o9AnnnxgcyD8RPjH5RPOJNSe2nNhx4sAJ1QrB0hOHT0h0wnoi H3VrTsh664m6E0LRpFHXCEbagrQDKYJ0AOkIkg6W8X9xUCckoj6R/8sCYDHS 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 yAndaMNm6Ha+unc5veqM8YXhqOiSYgbwdEc8KuZMAd2Afc3W4CxXzoOtd2VN wRE1qzPCd0PLMVrOz+ejsNFG/zRr9hB4dKDRn8Q7s9Gl8XzWOzvRe9Wy1U9a P+9ofgLjJ1swt7Xaun7txPV3HJ9z8F//uf/m0aNufjxR1DB48aS/n8ZX/ydO 7Dtk7fn6iPWHTcW3PgH8GYsPWB9DyP+z9VH+lbTdnsb8naANPtjXT8x+Q5V9 LtITor3hdFZrikfTFEkKeAL+Kq/X49GyI1RHkM/ndGrAAzN8zp1aG3hsb0Z9 CV/Bz+FX8CziI7zJ18Bmt+HPAX9GfCm9OZ/GnxVpu825TGNSGZIu55TSnU7O Z/sn2leBi1FxigBmBbMYMRQD+idmLMNZDAxhIbCMElAuG/RJT5O7lWkUnmJ2 Pr/P744yxaQIU+1KJSRyVhLvrpbp+3YOiQ4f+OHbrYnqqoo2PH7O3UPvW2Gt 4o6NO7HsmfczehTcPMOai/scurcouYDpN/DuMbOXw0pGd3zFSoA0e+Ge5lzU G0uaZPBxpoaZLtRpdcG6zOm9+AqmKji+F22HyiGlTGkOyWdwLCfnHQf9dgjl RQU/rTzrIM0Knq/gHEeM4cK9lEXKg0qLskc5qvC8Mkz5vcL4AGcpcpH/YsAM 5V7pDJwKkEAbnn44vMTNoIu4rePkIW/ulfR42OW5Urdp3gnzKm5JkbRWX5NP 6vUF+QTeXmHFrMD+Dj92+rF/a369LppAlU6K50WI7fTiND3VgTwRQHhnTDmr Xt+K95so5fOKwd3SZCBt4rhgVz79gxIJmy0WFX1pH75MI6zUU4lEZ1dMnxJE L0Hl57pLs0i/lHXnFxM7LW+jWpxqaKH7lGbhuWj0o2rlE1M3PD5o/olnmyq+ en3NO7PZx9Tm1Q0b+vc/fHDEXXPu+Y/Gc9ZP+BO9vmHcutnXTLn6ir7TH596 8Ivb31qjNT5YX1PVp0/fPnlXHFm+7NQsrNL4VAi45q92pucucwyScIk0W5oj tUosR6pYhghI5H7HgzPlwful+AkdKJCkmJKPoBI024aYEHFPIwIcphWRQQhJ Il36rYlb5yXS6PdL/cuuqg2sm1YpKWvBh627maPWPM6xb98v/6bYG6JPP5iR GyJmTGd1TXe95DxicLoz2yj3MjER218VQnTKTQgiNW4bfUv0m5hqdKAr9g0o 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 /7rqqW89VfXQr++8Y3Tf7XeM1m8zBbjbPfWrqX+b+h9Tv9J2S/sPn/nBs3// zPdtyTpVT12i026s2Rd1S2ie290/o6RzfvbiXLmUmjH7gkzWzcy4oNTstJTb dcO6rXtvwRiyJ+vcb3PbdvpWa5EhElklzzmvO81lx7z1qfjh9L69LWTt3Omq eVbXrGwxt7ir2K1Nt6zezNRGnNOTn/3WttCcuemmuWlt4855S9Vifm1p6exo 1RZuZ4v+rbUMv+nMih9v3A5qwy7Nw4f5VRv3fn7olbvXHlzWcuOu93/yxt3b b52qN33rxvPPver3D039durls/qP/yH14A+f/P7zzz39U51vNZ1vp+h8Mx5g 3+k/5Zped2OvbgV06lZAYdbinJsudc7Slm1LplMbtdqWnVlKtUw4O1vLthHQ 9vZGwFzzWr56XCv4j2TO7DntHU35jqa2bc7svN60Z7RxOyc3a7qNA5nT3dNc 7C7Oqjf1NM+su7ryabBKZnR5qS6vUzcUUzPf0gBw26AB0A6WSIP9f+fCD666 79gTX33vX6244fjnjgxuv/GWwfcdnqp7uTPOdZe6pX9yq1u2fPJ/r0l95Uc/ ePLbL7/wPSd6o711VlkP9rfuyx/Kewv6M80ptzn/z7nH3BucZvc9/Xn7arfp Iu8R1+nPj+Wey3mrrA/FV/oXt6U8/Xa32Tc8Ulmsr6xjyzRjPkJNGveZrDQQ M2LL2gCMfIjtzXcVW9NNZqFpL9Oabq43FZvKiXpOue666RIgMoOz9u0X29Q5 G3hV9p1XnpNe8pmx9ad94aQzT987efwn+v7kiV+msvr+lrqz+rc0l9OLZ5c7 F08u+EH5u50/9X7W9tPOX3r/1PbLztLMBa47f1mpsuD0Ep+/bv6kd4N3U+nG 7tu9e0v3dN+54HPel7of9h7rfrr0vQXfW/pS6ZcLfl/sLsyvVB5x1/dXi4XO YrFQrMxPnVyoFc4qnF+4rPCBwncLPym8Uci/T3+5qvCxwr2F44XMdm1WFHrS M2+5tsvtesT9Yn/Qc0F71ljarrGxT2qeedXF+pcji/aWs66TrWRHtfTSxtHS tLGjsaCvZ3NZU7J2zdnbesS96hrnIRh39Bsn40ydbJxW3nj1DV1nH39jPHGF 2xn3bMycHunrrjC9GlpX0yNvTlqCezSWxB0aZmhWZmFF3lqavOSS+qnzrvjy ZP/f3DNw9LzWI51fvOT9p86+4e+GV377C1Pfc8+YM7b/4vWrFnYvUudcvfGj Xzrr4Ej332xYefqCzuWnr7ti813/0Whu/ol/cZ9puluXw0f62ys9fk9/z6ae sZ5rdZPigZ6cbngd6Z9fKuePthYyzj+7T3QdTjW3tJXam3PFbGu57B5x/me7 kaLqX5gttRfbdzpZ45TyRDZtdipZX+fWpuzjNqfy+q29w5Tm0KXwpjHfwCaO 7GJryR1f2WdaWu7OxTONx+8SZRpcbVU7IktngG5xPtx5Btvw/oXDw0dvv73U IXs+c3/5jEs/7elmZnZ46hMfP370/J5F5t7qhjukl+ga8oP9J/VklmZqmcOl O0tNvf2tabcwo7PTWGm6imw9rA21zhldOzsnHFtN5grN+eadZf1axdVkZMEf M92JEcyLBqbH74px6Uu1LW73WuvpcqojKSpsVRmxghWuNUbN061au9T7grjx gr23sqPzt4eXrj3ttvsuumj0S0e9W49//cHRNRe852kv1Ka0a9bUSkl9FwW3 qX/5lqajZr6HrPGLK/YXTRdIdltqe/a21L3ZdF9xVXFj8ZLiA8XHi68Xs4+c OL8/hE6QQ9OdIIdwJ0im6fVCQZclV5keu2tyqZtzD+S81ty8nJf7prvJDr27 o7/Lca/qb/XmeWNe6lrvIc/TrXXP8x7TJziu17+8YkzDTdah6rmmjGO/GM8q 41WVLTddov+k8uavFzY96rbafpPIkJ1lu/9mdb9a/scea2N1mx7/d+g1MYbk +OXO+PwEIruXTD183zcr3R0Lv3PX1DfSS45/ePjSrQe9j9p88xwn/RWdb23u SP/OTzmfaronc7vp0Sjd13K0LZcv59p6yt26ydXR17Gq49qOxzt+1HGiI3t2 60vOy00vZ36SfSH3QunFllxnupzfkj+SPpJv8tJevrW8Jr0m/6H0h/LPp5/P 518tZ7KVR04s/Hq+paT/Vvp3p522ipP2vENmKjRdbJRbWu7NZzvz+Wwp39x8 qFjSxVPJ2K73pjOd6XQmf0tav0fptG4MNesWRMY8lbYW40hRyJabi3lj6KZL Lfk2J+3rJ76paGjI9v5CZVX+obzXl3f12/fe/nxf2V2l2/te2X7r99P9ujGX SutT/7byuMGr7nW2/TSr57jpz7h85/Gdl8/qeXVnmxDmf+OMEHkkvL1XI+xr C/vKxxp9xBv/RL0al4/r8munfUAz9eOxG9OjkXKLU7+7+0ax4sa7rl/Obz8y 9Zu7b5r/Vf247j32sjdy/K4f/L235w8veVc//OaP9HMrar2frp9b2Z3fv7G1 fV57X/uq9o3tQ0317L7mS4v1lj2tT7QXs+lMLt+Sb013ZNx0UyaTby42F4op neOtrWWde15zc7G13FoqF3I6U1OumYM33/pN9wxtc2bcM/pPaX7Cdb18oVw+ 5OQ7HSef8kqlQ8WUfjqpqD8kUzauVfoNeEwHbdZCX1xp/UMmU3TyrxWOFFOv eUec0mt9+oGM6Ufy1+XXnnPca2zvyHVOm7HdjM0adY5Y34PuX+jsfrUxexuz 1Omxp/XoJsRh03mSW9ny1MrDOb1jpoDQ2xx8azGzQZg+pJ26KSd0nRCsso06 ndNF911TLz3ykcXdi+ce/erU8+7ah7/e9wtvqTv1+3V8LfvDVPH4D91ztk/t 1AmdPfXeVKjzeaYWzGV9Pat61jet79jYs71pe8e+pnrHoaYrOw433910Z/Nd Hf/a/G+tbYebP9b6QvN/aXm5tekSXTc83vN6T9rR1YW3tnR96celVFfp/NKR Uqo9l8uXyqVCOVsqlFoLh/I5rf1cVudzW3tnW1u7boi09pdyhbZy2RS/zi1d OoM/5KS0bVPoam0vZ3MlZ8I15syMUttVTrlcvqacurn8QNlrLc+z+t7U31XK 6xKpMK8wVkhdW3io4EU9P+anZeXSJaXXSymn1F/apNPzQOkf9Nesb7+Ola4t PVfK5M05XmhS8rXuium7jQggFEZxUaT/dh+z3X3OquP/WD4WYxvz1Fri5nbU y2WeivEoMQ/l8p26Ej+py/KqalJWtWgrel+ZLew7ozMrph6+/xsL5vYsfOy2 qYdXv+filadM7f1iecnSls+mlx6/e+JDVx/0LvvD0z/+xLtsDa3fh0X6ObU4 3+3fk/dyuXO8s3Mf8z6WyyzNLc5fmLukfMg7lHvGeyb3ovdi7tfer3K/936f a/FyhcIh0+Wn66JSIZfxnmg6qt+E0hOFoy2OGeRWyOSOlHW2jOn8SUf5c4nN oUzJWNzLM0eMnG1jeRM0iLNRUyVlusS8/Kg2dn7jpEJnqrX8O5uD2pDUJcsx 2z9qfDR/of/9rzY7liQZYH25UG5moXFfcLOBmD9jvrfs4rOnPuU9PbX0fbsv cI/emsplbr3i+Ps/kL9XX7/zxLHUgabnncB5tV9eOPNCf9/Mff4H/Jv8+/y/ nvnIzPzW7J7swezhbLorl+stzF3kLXZv87xlc1fc3HcHH17mar0s+3pLYXj2 Iy7rX9Tytx1fmttsPLab1MIlS+fOnd/rebWmcrnvuyu+rWuKI7p99oi3uH9+ 7+LFvU0fnv+U+vDSB+/v/U2v19rb17ux9+Lea3rv7/15b7b3UbfiVI0V/aYh 7KLP9Pi98aouKvU7bN/3tsioaTMl6huGsx5bdfyNaEQ/2DzR0DchTz5FnKI+ 78iT+fTQNzNd5YyFdqxbYGaV0CaDMYa0SRiNMj7JeBydpO2iJdFI1On+GXeN 6/26vG7DarV228fFygH/A+csWNS95fzZixd8+GB4/p7SZ/7qlBfuP/KfZh4t ffC9F16dOvm25adsf3Kwq+fk2uf6c5l5lUz+/V8Jn/nIGatu+9oFj7/ynUdn f+DwjZeNmhE86ROvpV/ST6Kk271V5/H+rqWLTlpyN7tD/Hv2OfH56qPzc+tz y29e9oib/w99O5Y+4m7ob27Z4bi9N897Ue1YYL73du3INvfumLd8x7zxZb+d tSN1Tsh3LH66fUdhfe3aq6OxqMd/F41F/d0xO62K/nr8WLQFv8i5TUu6F3cu mbOkvLi4ZGZm1rPujFz7s85cV++1lvReT7rrWacjrzezvZZn3bZmvXnLsDRD lStOW6eXXqj/yPZFMxfo5kvZ5nOgyictSc2EPtfgbZ1fo27WHfzq1Cufnvr9 1H1fded++r/e/cnP3vHsz+7R26bBnn+3/+OP/t3te2+bvatn4F07rz544dnj Tc9PrZz6z89Pffpb7pNu30/cXd/64FPfeHPqt499+amH33RbH/vK8fKi6275 b88999LVY3PP3fDZ+++6Z8gx6wdFn0t1i8J+3Fv05wWv0342eJd7R70nUvNS Q6kX0x9Nv9F0U4Zn6tlTsz/OZXJb4PNc/kThY81B8w+LG4p3F4+Vril9vyWt Px9t+Vbrg61T5fHyP7Rd2d7T/kbHGR0Pdp40Y6X+fLbx01WfmZl5uHtW9509 hZ5XZq2edd2sF2fvmn3zHD7nyJzX5t7YO7v3pnnb5j1ZWVL5zvxPL9i8cMnC z/3//Sy6NPksXvCXz18+f/n85dP4cex8Ut5WvR1wr3Uyznd1jbXoxIN6Wz3x it6u1NtObU3c4CxyUvr4In3c7Id2e9qJJ/V2pd3frs9c5Fxktzv09mSn9cRZ ettmtybOPh3Dk3prYuizMfTpGMx2pd3u0L8Kfc4rett64mS9bbPbRfpXZdOj dCizPc1uTdqq9vyqvVbVKeurVO0Vq85cu+21WxND1eH2zLX2yFl2e7bdnnvi Zb3dbPe36TRUnfNPXK63F9r9i2ycO/Q21FfZo7dlu99m9+fqc0J9FbM1Vwl1 /GZ7tj3nXH3FUMds9rfZcy60W3Onp+nYHtTbsj7nNB2b2Z9r93vtdpE9Z63d nm2PmDkST9Oxmf1tdnuh3e448S/OSpsPK22+rdRx7tHbNrs/V8e8Usd5VG9N ClfaFK7UcZpzztXxr9Rxmv0t9vhWu3+hDbVdb9c763XM22xqt9l0btf7N+ht m95eZI9fZI/vsMd32OOOw7zN06uMKCde1MW0UxXse07WORP2U87s6eNpdE6T 3t8E+xndBt0B+1lnp7MX9nNOt3MN7Oe13f8U7Jfcbc4vzMoy6ZS+VtE7ze43 2en0z7H7GXv8Iruftcf32P2c3T9o9/M6pku9j8C+63R7r8O+57SkCrCfcoLp 42l0TpPTnVoC+xmnK/Uu2M86j6W2wn7O8VMfhv28c2a6BfYL6TfTm2C/5H0p fy7sl/Uvz8F+m07/m3a/gO6x2aS/+Xd2v4iOt5j9YsbuG6fqlmKX3e/Q++3F RXa/E50/w+ZDtN+FjvfYsIHdn23OgTjnonPmof1F9vy1dv9Uu7/Z7OdQmnMo /iI6XoT0f7HCfT+obN03VNkwOjI6eeXYUGXN6PjY6PjAZH10ZEVl9fBwZXN9 777JicrmoYmh8YNDgytWj9cHhivnDYyPj16hj+49MDwwXjnNxnT+0PiEDlfh K0TVnhadFYWoT1QGKpPjA4ND+wfGL6uM7nnH61bqI5VJ/du2kfrk0GBly+TA 5JAOPDLYNzpeGdW/jFd2jx4YmRyvD02s2Dy6S59+Xn33vtHhgYnllU0D+vju +kBly8CBkUGdoO2jByr7B66sHJgY0rHqVOwZHZmsTI5WBusTY8P6Bx1xZWy8 rg/u1r8M6b8DE5WxofH99Ulz+V1X2sQM13cPjZgo9A8mjnF7dGx8dPDA7kmT 4iv26TSgK+i/9ZHdwwcGdZ5V4kSMjgxfWVlaP7kytH+XjhudPfInr25PH6yP 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 1Vq88jhWGNVYBfiu8PKtPtVaBfiu8AquPrEbXQF8V3gRV59q6wJ8V3gdV59q 7AJ8V3gpV5/Yk66AxCu8mqtP7EpXgOUVXtDVp9rZwOUVXtPVJzruKgDzCi/r 6lOtdCDzCk8h71PN9DBe3x4rjGinB368xj1WGNFQDwDOBz5WGNFSD4DOBz5W GNFUDwDPBz5WGNFWD4DPBz5WGNFYDwDQBz5WGNGLIABCH/hYYURX6QAQfeBj hRF9pQNg9IGPFUZ0lg4A0gc+VhjRWzoASh8wrDDi+M0AMH3AsMKIUy0GwOkD hhVGnGsxAFAfMKwwosdHAKQ+YFhhRBfxAFB9wLDCiD7iAbD6gGGFEce4BQDr A4YVRhzjFgCtDxhWGNE9PQBcHzCsMKJ/egC8PsATy/tEB/UAgH3AscKIHuoB EPuAY4URXdQDQPYBxwoj9lcHwOwDjhVG7LwOANoHHCuM6KUeALUPOFYY0U09 AGwfcKwwop96ANw+4FhhREf1AMB9wLHCiJ7qAZD7AE8xz4jd/QGg+wCv/cqI /f0BsPsAL/7KiB3+AcD7AK/+yogeUQHQ+wAv/8qIXf4B4PsA4XvGiH3+AfD7 AK//yohObwEA/AABfMaIHgMBEPwArwDLiI5cASD8AE81z4j+BgEw/ADPNc+I DgcBQPwATzbPiB4HAVD8AM82z4guBwFg/ABPN8+IPgcBcPwAzzfPiE7+AYD8 QGKFET0WAiD5gcQKI7odBIDyA7wOLCP6HQTA8gOJFUa09AOA+YHECqNa+kDz A0Tza9TFBgPA+QHC+TVJbSYAzw8wzyc2YgPg+QGRTwTA8AMikgiA2wdEChEA qw+I4CEAPB9gPP/nG7MHRup+vE5PgOC8+vPYNQoKQkFoXv35Xvko6OooKALz 6s/z2ijomRAU+SoTaW0AVD54B8Tw7s3r1168adO6DRXulzZtXrdl3XlbV29d v/G86GCVlzZt2rhlvTmy/rx3RweZlKU1G1ZvuvisjZs3rN5aYRW/4jccEfqY NFcplZzp/1z7MX+d2f36b2d0eHbNv362zORP+cjZH/nXkpv1Hrh+9mJ9aL7n uqzZz2ealrWkvFlNjj+QKSzLuGn3+qrnph/Y4r/XX46OzPls77VznJX2s9HZ 5Uw4o86wM+RM6n/vMh9/Poos3fngbx/ar9b8rHz7g7ed88uHJmfc9qR684Hr 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 PDwvRmlsdGVyL0ZsYXRlRGVjb2RlL0xlbmd0aCAzMTI5Ny9MZW5ndGgxIDk2 MzEyPj5zdHJlYW0NCnic7H0LeFTVufa31p49e88tM5O5ZTKQmWQkhlyBAOES yQAJCAG5h0QSknDRoCKBJASoUi8oJWiNFopgq1Q9CJ6jDIniREXQaqVWKvVS aa2CKFqrKdoi2irZ/7t2hgR72p76nz48z8+fb89+97fW+tba6/Lub621MwzE iMgNMFCkeNakiTVvbykhVvk6UWDRlNmzLl2TPO19ItVKxO+ZNitvyNJ9qx8g YgeRq2z2rEllX+SPmEj0bD3RPYvKiqeWl42t30Nk3knk3LRwaW39D5If+TXR 5SiDPbxwZWNoh3LPdKIl24lk9xX1Vy49du8LS4kqW1GBl6+sbainAJlQXg3K d1x5zeorYqffnE907WNEI4/XLVq66trnDsWI+hUSjdlZt7h20c+btuN+bArs h9chIiFLyUB4HcIX1S1tXPXzF11tqHsI9/vD1YtXXEsfnxlG9Ajqz355zbKF tXMWLv4T0c67kT5oae2qemWYugNpqD+Frq1duvjSBtdJot1Id+6oX9bQqIWm LkT9IiK9fsXi+nJ7WwpRbSX6aDyJvuTzY2rao7Oq7YWfU0AlIQ8EY/vE9cDv xlzWNenMbYqmLiBOFt1eCK7KdV2XoYyrkX5Q0fgkWkTnynxhw7fQEJL0MCcH 5RFqYZiM++pl8BOsFamqvE3OpzD9QL8u4xa6gieqMrcYjZxzMzcg83rcqafo 2VPHh1B6iB6RX+uay1zKDLYb3XXf0Tf1Yl+j7Pj17FnNZ9Nb9C8IbAfyPJqK ay17TXtY2kHNOP+Cc6FIx3Uqzqaz9tCvx7kc9jX/qExDjXbUUEOTDE/T3Tgn Q59i4DRFDtAD8XvWdNtRKcoaLzfD5mmagfRtIp+e9jRNg96MfL+Cfr+IMw6m V+P5XvhnbUKZk3GOkC6l+biW45yLe4p2ZIt41oQxOtv+JsrG/Yfr9jtoprRD Oyns0ScifwT5RBlLoK/rKf/Sf6Vn+6RP+qRP/t3CtzBdeiJYPCyieuJNNhHn oRQ9OQWpTi+AvL2ZkkQKJnJ3CjsrJCb2PumT/1uRSNKJJEsS4+BTkvyJ5QB9 qWpYzJi1M6CXQDNZgBayAq1kA9p0TKAEoJ0c2tdYOwl0klP7ihIpEbqLXEA3 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 OJL7pSSDT/aqybaWhBi7JmIxNznlQPKpfmRNjmkHIm6Mp9fj9BuSZINi48m2 +xMSkmNsXsRG/d4JBJTGGnfUzd0Y6ojpYmI3oJM4dfBV1F9/uJd3jsx73wHo RBck+nCOxPDjSSjqPPM++oSyxAOWoHeGeLiqqrKoKl/0xhimM8CoXDyGdfPD iCNVWRiaXfTV1obVM2evDdzp/dWmB56ZO/zrfSN4cv+n11Z/vqljwZIN378v +aXfHn9o862zT+1dtQP1mYrea4UHEz+F9ctI9m3W+6y7rfushq2GrfI2a8xq MIqfd7HgKYIqC25Y3UK32myiw9ySAY+WwSrJGQZZsZ1Sd3PGY+yNSLJZ8MUm cWaxGuCEZdVkJYei2EEHvibiNQX5NEzBu/l+/go/yk9yNShy8tVtCSCK4/SK 5VlrhLt2jswTWw9f3P/B81SJLsoqpJE6V9Zf//z63KSsbjekOAoLxSkeHwJ7 UgtYvpSvhC1YDrEvIl3eIP/Jmu27Ag9HRtR1jWUr26U7v67c3tXCvXzRmR+B S014zp/Fuj+NjkaGZ6gDHSPUEY4Rnjn969Q6yyp1laVFbbHeo+5WO1S7yehh qtvjeR0PuMPjdTg9PpujxR5jhyIJtiafL8XlPpXoNLAW8P/tJ4xNKbaSZAbi nIokm8wjPW67K/lYIktMNDdScih5ULI0CMn7+HewNnDzYeRk+9vs9ztifGjE ze4PUQTLqnoyTKdPxV/Nuv1GGH5j+YrOUzgcZ6qWd+brjxN4VEWCRIJMeMQE nRJHrle7vXWcTK4CxZ0C9sS5pFzsSlVSJd3dOISzyWXDVm7hl8zLL2pZsKbq psU3PsZL+3UVXL54xS1777r+yeotNeyBxLxJt0aueqf5u613W/gfd3RtvPw3 P+s6+di22heb4Gmv1z6Q2vFcJmH/MZjuicyHc0lXJ/kmZ1b45mUuzqjLWZmx Ouc2+RbLrRkbcrexbfJm2z2pmzIeSd2VtWPw/tSnsvYO/hlWch+wgJX6NeXl JaY1GeWBTYk2K6UHG+0mZsKpmg5nNx6zM/T72naPv1GKsd2PpzeSh3lEDw0R nlXvnc5TotmdoJHuY0W/6NMWiIKF8rChifqTZFRSmMfN4WyHDR3DXMLhDtc7 KIFJvQEjWzN+/P5Hfrhv8RVTik8/ctfPSuoqr5hdu65u5pi6osbmeStuq5+z 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 u20B0zO+eOmoIVNSaK1dBCq1FuKxD7psFc7g7nTd7ZsVru693Dc/eE+OWC6W e6aEb0mbkMlleUaGS3LvEetyN4sbfQ1pe7Q96SfSFNF3nCOuzPT0VvyiFae5 fPT9HdNdmWz2yngc/2nyogBTgjFuJfmWKizKlhIWDoovjifxrdhlJd1QnyNv lffLZ+Sz8nmZL5bn2N8ekKFMT5OJ3Erynk2tN1qxz0rBC2lfzIJlOAAg5a+t CtdCF0SnvXl8xG4Yzq2spz1VCNi2y3bIXqwcdOlSJU18sY487h1LaLSNatI+ at6N/dJByaXTVmJeLgWrhvPtHhjv98EaUNlHQ3zRPpyRuPW2DQd69f51Q86t E786t+5sPX4ID19TtmxDv35v75g1IBp9//f/gz/z9pkxpv/IbXeNKcifMjx1 8L6ZLZ/UnKsLa8nDlw5ZPGNyTs7s8TPvn9T64w9w+e8Dsg/YXaqd1jBeEDpE EyZcBUsqoOQIDvnipFVsI3uAbWHPslwdi0FhJUlV0irprMQS8QDTwpBVzFmG MK14ghXftaHCDwbH0ZQGpMIGLhUK9ZX4MpDnCOXPlfUdcorO5HTaab1GpGkv nkoovPxCdEE35tmE6OLfccbhwz9fgqv/Vfs37F/h6k30qjXR5HA6VyCPkGv4 WnEhv0TcxR3mjnEt/GlRdbndZbLqk2UVE1IWQD6ITJeqYiA0GcIirxSQg1AQ UQC07UpAwgWZPSNjWaYVMF7KDtwcKAnMCMwN3BvYGWgOnAicDcjnAzgQgGC0 5KAkwzLJgSCVSoXXlcMvqWyst8shiKazAIjYJLZDHsF9sFMnoUpgGrwjiPLi 6WO7L3pjv3w89uBeY+fCh2aMzt14YHvPxvfve/277kA1ltXl1zetmoEzmPSr h35qRyu/fWXc8+CXD0D7UZYRwpOtiy4kCS4RjPdzCShODPnSjLRQnpEXKjKK Qq2iLIvEYENDjaEhbr24zlgX+tD4xPwwxOtGnKmHmEl4mlhiTPaXhLhdzF5+ l7xXbTKbQmfEFqPV3xKSH3A/oO8P7otr4Y+5j2vHdbHYvGASnddV3RU2WdNn hnzLVMmnqpLh9ZZ5VJ/Ho4pmKLSMF330zbAxLnOG8rxqMiLyeiTa6wz5gKTQ wWt8CASNzzQ8Xm9CkVqtzlMZdfdoc5a5zDxrstjEhonNVjLbClhQY6qg6Ngl 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 m7Lcy9E9b6kudbmXo3uHEt7Rpd65IjqUgDNUe3Ve7KVNeL9XeLm4f+c23L8Y KK/Sy9stUbFXqmrvbMm7EPbq0S1/jXe2QB3JUgX31a1R9/scL+9SdK/dY+Ne Xv65g3j/HiWgRopBadV/OC6h84x6teLecz/vYoip8Wo6Fyky7rWhKq8+y0DD UU8D5ZAmyL/YSz0bzhmD63R/S4DegjqYoY90c/Njk7Uag7qNw3XEvONrvG/B Pe3nfZvrpT6SImZ4d9DXs3sl7i/lXm6+Kvz84rr9BS3Er3v3CvzrwW2rxDvz TC/WTz9H/xKD++ceU6bvu6+PuP6c6fWEUZRDUB6/FygDZYS9GiyGq495d6zM O6bSaze+Eiu8lLm/03WsQVNh/evFcFfKvbK4qpwNbdHvMcoaSlHufUvqNmij yRprfHXFcI7pXg41Xi2XNFJlNHSRjg/q1VV1ccP1zYA+JwFl9O9SwiuT3xP4 d9wtu9/SE9DL+O2oGhSW7Pf8X8u9+xHRT7CY10qqvXIk9Jn7NlKZf/YSr7Yq vfYxt+EqgnO76ed4v0e8mqiCc7itx6/FhJc+KHGQe6WnoHKvnwvKlqtnWG6P 6pcQnyvh1WlQJ36r8dXy+9Lh/GNwZLJH9L9HoK8JdJ1o6Pmne3kke4QYtOyg FH6KxvfGP9a/nhLvDiYaagdr4d9dQwzauqvSMp22BJ634T/UhJvCV14vffyp 3h0r93RVcsS8K/4frj2Ze0nDvfM1FTy9kvftj1eAn6+Ny3UaukfulfjX8vun VdDKSryxgXvlcU9RR1NCpNFdj8LT+vfP7LjXR1VCT+WWdnbDk9TPJ+iRjqYh 2ojIbdnRoxw5NOVsHZs46og0jsaGlJGr2xcde6w5V3872sjVvYZ/gv6Pct70 E9KHpA9Kz0+30/kxz3rM8XKK0VBzs46S27hQPCXi3beKo9bJMM/7acR76ngb rxz+afT2w6cc0TOu61DHNehPOXw4lJY1dNjwaSNGnzNuZLj7zLK5laVG9/Co oWEjPP6cccPCg/OLhoWHFQz1j/jDscw7lpGO5d6xnHSs8I4V4QkFo4aMHTps Yv7oCcOKwt0n9DEMbvR1/+TrYlJykl5OMsgpLAQpmfKSqWQySUpmesnMZDJF SmZ5yaxkMpOUzPaS2clkFimZ4yVzksls2r32hcGMZEKHlhBUwhoSSqK6fMkw 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 mxwrjGiobgK4NzlWGNFS3QRyb2IX84y43G8Cujfx3q+MuN5vArs38eavjLjg bwK8N/Hur4xoEWUCvTfx9q+MuORvAr43Eb5njLjmbwK/N/H+r4xo9GYCwDcR wGeMaDFgAsE38Q6wjGjIZQLCN7GreUa0NzCB4ZvY1zwjGhyYAPFN7GyeES0O TKD4JvY2z4gmByZgfBO7m2dEmwMTOL6J/c0zopG/CSDflFhhRIsFE0i+KbHC iGYHJqB8E+8Dy4h2ByawfFNihRFH+ibAfFNihVFH+kDzTUTzbepmgybgfBPh fFtSpwnA803M84mTWBN4vknkEyYwfJOIJEzg9iaRQpjA6k0ieDABz5sYzx97 MltTETOCfXpMBOfVsbGrnxSEgtC8OvaqvJ8030+KwLw6Nq/1kw6GpMhWmUhr TaDy5hEQw4jCUUOnjRs3bEyYG1njCocVDSsYnz9+1NgCP9LiWePGjS0a5caM KhjhRzIps4aMyR83bfjYwjH548MsbISNRjFCx0n3LFlZoYb/Urx/7t9QToH+ 286Pzhlu1OUMbtq894KRCw5kpTRLra/LETqqf2pKCmtpNG/apM9xaaknNAkZ kaYt+jRNSU+ps1JT0uuLjLONviim84qu8zuH8rx/Y0PTQ9WheKgsFA0l9P8D 3X9GN5RZeruZm39741DspPf2vdJm06CDT66bdfKqKfV17XcZdWmb9P/96tNS U1JTW494odPiXdcVDh9yYGf5yCx2r5HVUNSUJrpQtdd4hUybkN40O/XcfNbe yHa/ZGRnTopWJ6JVFeEhkcooa2e0daObZbccWlM1PVIxO1ZWFmWtdG46tkV2 0/GlkTmJKOti5LgRLbPb+RHhIdGqRGxGrDiSiMUr2IlGF/fntOwO8PP4WLk+ S6S8MlYxMzwk3+h6fJYhGDek4f137vFZzP0quFCOcs41ilBhJxSx4432/vmP mxitihXFZlb0DY+qKM5lfYxT/RN1D37wThUuCs5VFK2aHSuOVrsnrUvpjmsl pUkorS6lVUjHt0itS0kJrd762L3btocfbnHZVQ8trPn28YL9uza2emFm5LmV JZ3fX39wq1hzhXHV5Muv3TnrQ/PuVi+8sffi7+bcf3k874VbHs56tvSHslu3 PlfYb83I03988p3zp+WkLv+5/6yu9x5Yuez+Ezan/vNPows/Oe6CvYM6X/5M 1kdnvPL4roXPTZt3IctNW1qbvWpE+FVWnTWp3/aLpVjcdmnbZz4q7f/g7k/+ dvW1vV+8ptvCGc/9efKkeM0LeQ/2XHj+1tbt85Zf8eX4jS0qNh166cwPn2nW 5rbul+4ceMobXS/eu5xt2b+7e6edm9aNGLLshGn1XW/8dOqP+y7df9ma6Sk3 /Dim5Uevd5+4avH2tYtmr933bNb3n455r/6X0vq17U5bt3Dj+tQ0LfyVtTuN 2ncN2TRDK7ZJk2YpKem9jJ5Gj+C7kbKgY2kiUTmgf/94cXVl7mxd79W63nOL 4+Wedrpkp6QcTs8wmuo/qSkhI9+NOzF9gJ7ym/Wyni8wIHlxVVmj1P19rWCp DMnP1Ud5Su1ycnqm0SIoRVqGcZwb2co9V7puAU11CfX3Nulamfd2Mo4P9J2W nTm+KF8Lze7H+inxu1aRVlsbOnPWwS8n/21oZ3bV3KV9lrxQ91DKjs6jtz9y 9eSKXRmnrpy6eest2XvSC7O+GXFK/5D9yKdbbilY9nb36e0PnGF1G1vJ5u+/ xl647vPPbwsdem3CkoIeb64+pWDe2qci+d/3fnXPlvemfri+z5UDn7jriff+ Oenw84+/dPmPr2Xe/e1th/q8dVphTo59yoEzztRt+LBRl7oH2nHWF32+ffvd Uxd15E2aT102e9Hv2/H/Ssv4Y3M0bNwcJxFP2t/o55+057FO6v4WrTpmk3xs XK+RH75VOu+KjkNn1Jx/+aanlxf3PHz6kDsvbWO3PnlC9Xs1p8R+K3gmPOWt Fgfrc3p/PWFit8i7XXd++lcx65VvPlxpRa/PuSXzyaKuUy6doaY1uXrYodkF u4rmr6gN37V20ZQVGQc+Mw7u626NHtzi1V0vn7hpx4Qvas94onBl3wdT5n23 4sHr1KHlu8+/sMny02d98sKSDYe2XXBw0J5m9UO/qj274r7e3z15deteX9/w QdP6BeOWXXJmRpbRZWvru2cd+GLy2vTVg5Y+1uvzGzo8lPdJUfyst9RdT8RL uqxb0nf96XvmflU+72CH3T3/8vA3S4ueGtR38dNzHzz0duGaUxOXD97rdF1x YYfd56zvUfpuaP6Q1gvnz4ImudWofeV/2CQzG5pkqhEyhN8Y+xq9jV71Pet7 LOh+pMaYqK7uVxzxml8Hr/m5WRylBTbdQGqB8vct0L3LCy+ufL+gMCV83sdz t9QZm357ptOS524Kvfjc9u0v/3Dcu4cPjtkgphttXvoxkfP2zR9NuzOc/eil w54ft/3Pe+Yf/+cHTrllZvbwX7Y+fXt+2rY7zj6vyTV/WhX/PmdcTo/c72LX lXU/sH5rh8VfZyY2lM5576ul0xdurL7xX1cl5p20ZuXtl9z26IEbTr1oTG5N zsj89799Iis8fsec+tvqimO/NX/t6m9r1je/472DbSb0XBbhz89LfeSSBc+v ePGa7n0vfkPN/uvN1VMOPrN7dPsWJ2379M23Ze6oQe3zWl0wr8fL9834Zslr lV8N3PND1uUfvHHpytkXxTbeOXaEobo9uuLhE6bn9Xnv+gd7N7vk3Y7rplzy X3fdFz+Ud9VfjLr0troL+NnvAlqFNoauyctb1OaNgT8V7901CNdYuu4BKoO2 3TK7+5B45dyq2MzSRLhX8anuLrJWeEysuCpeHZ+RCA+JV1Xmsq5GZ//g9o1/ iVf5z+puxon+beqY/L0wHk+E82sSpfGqWGKu2z04luECDwu6B24wLhh8/Q+U 6JiP8tTnNlbuPu27gpxey2+7eKrx5YrV15087V+HFo9e+dShu1aEB1569oo7 VtxwAZ/1xuCSufsemr1l/PvffXXngs43LL9ixrqXZs2bftKOLnkftUq5+fMl m17oN2PZstKeS18f0PeFzCcm99w4fE+LgfaSvqt7Oav2jvrz4E+uaLV+WdmE yEN1l95zQb85o79Y+njJacvGdWYZPdotX73npj4dd59+e3G7CyY3iS7vYhUu PPDAN7emvpzz1gsThq27av4LA/aOv7Vg7W8PzCtPFDzccduS5r26hSbdeEHM Wn9W22Z5Ew+f98u9M1pk3P9m7cRJ3zx52tQOtXPS3//p+bXzFx96ZPufdjxw QtWUvK1//TZjZXdjXdMrt6wLz8m+chf0G6uM2vuM2hVuu0xJr11m1N42v/V5 r1d+E6u6+6SzL2/32JjrD//9nqr///ev7hga93qFxZ+33HDd97d1VF8/ndLj 3Tltvp9yAV9+d8u/D2xy06IbtgzY3e27byfd0veJ+hGbp3/z6z+2nXbauavN 8bFDPcrP2LLtwY+aXPohu+705a0rL1x/qO3YjrENv74+5JM254bHfjn9kocf 7LS5j3Vyv+ej97S9+uRWxSsPjO98sNuWHe2/L3yoYghv9lvd8f/6bGZZ1tk/ Pbe/8JXn9mwyfg2z5ou6LD71hDHvdEm9b//8j9MeP++HRz/cPGlfdNQrheOf fDytV9vDN+74NuOGy5++7aU1Vt9P5326as4ns+tDr194xsY3zas/zm+7Sl2Y c+FO9c+3O6d/umpY+uZzhV0xpnPW9KdarLj2rXfGnzF8e+cJ91fubDtg4S01 yx94s173Ci/qwcHDMDC4sOXSsRtCXda0eX9T6j0zTnk2mCR0+U91CYapxwuS WVIy6Q7gdRfPzaBLqL2/8ZAh22jjTzdaTIpUl+qhQEKfp7X3CNGTjWaF0ZLy eEVJULIWRyrZkS6T65P+4TJPMrr5l3EC/qUk6g0+3NHIOG9SEP5jT5Ll9iQZ Xk/y4rbwdX/ddXjguH3z/vZ2j5N/mv1qt8Pbe08s2HrnU3WPqbn9QptWZbxT vOWp+376YuPGHY9eu2RFs59bPVlXuOyrupefa/3Sqg37Zl1xfVHO+nE/l6Rc tbHD23WloUEXD/2xrV3wS/HZH/98+jOfWY/uKm520mkXDZIjfpi1dviPp1R3 7f73wZ26nv1k4bK3Vr6e/XKnMy5qWv7d4m5Dpw3+esOWpSXhpzfKX1cM3X3J Y136P33/Rz/cs+uObq0OTWb5E+zLH56859O958w9ec2B3v3bnGFfPHDwnx4o /fTy7qXH7z7z5k0XDy0ccc/YK6665Y4NMy/5svkvC9Iu+2npRXl9Hphx+7Zd /f6rT+oJreTI6I95bR/ev7Bzl56F8W1ae2kr61J66/ro+e/G4Wn/N7qXtk2b wwS8ve5fUtPSQuneFLXLcekd0tud/K8+Z52/uWr8Xz77qb738R1+2XiwqNbo 1JCkXWp6ZtcWoaJQjZ6uDwnlGy29gY837xhutGoYYDUx0vQf1C69bqz4k4+/ b/L0I1+2bCnfqGMDr5o+7J2MBw5Goptz0362R+a/9sR3p/z5rU9emli06olO r27bvb/+4MQnR946osdnq0/8YN7bP3WY13bn9zfm7M04f92VNz5z7eT1nbct fmvxreKHmz46vOiOqWeNGuf0HBDOGW/9etmU9re8+EHn67+NFOZ91uzrGd/M 3XvDq5OKo4s7jqqftyv61K6eaw9tbvvkyyu2vTztmsrvt+5cU1fR7INop2dW /bTgb80H376/50OxeY9u7PPAIzNOvO/hhRmzbst++hFzadcmK7PtlRseMgY+ 2+0fxv1bp7ft/PCk6z7bP6/Ns1PzMq39t2y8eVFB+rlNprzy2o7V7/3zspsu PuWXxyvuu6GpmPzo1N5tWhl1TYTuynL8bqxFZPjdfw+lh0Kh6B8Ixf+VLiPZ 9zlSSNOdLVl6bKS/KverkfhfuQ74Pe0Ivx9zSLS9dom9dsqK7zbu+uj1NYuv 25F314nXvHj+gtzzv3206sc1Dy268In3H+1+ScvNm+8766ap3bO/OPjjSXc9 8UPF7LXf7Ls375VNG86ZcsaaddWi5/3TayNz75n+Q8Wixa9XfPjK8jfvPbvN 7MizlVdH71nS4aoHzq99feiMz3ZOvHvQ1l8/mN0jd6gR+mzHZZcsbvPO5C4r Px/bcsuiD1bsKFpatrV469ILl908dfSYNp/3f+u886ZOK1xZ3e++9VcMy7q2 U/vZf894f9n9le0/H7M39tv5j8264etTz7bsa14ePqr9reNuf+SH0nv/8VHz i2Ym7p5zbZcrZ9325Z5pw7Z9vPuirDeKQ7dcwm6/vuXj2c+te33f/l3d9q2+ ILLPGnL6i/6QqC7lZl0j1/9h7pLsDPa9N2t1TdH2sftyCjo17bryzjWv3frb EXq+1W7sSem19xi1d8//t73IPYl7/xP9338Ps7HgDen4uRg4GTgssFtg02aF 1PHLhZkD7vkVZGeCRPULivJTSpNLivVBGQCU/oFp3wjcIfRH6ok6Gzga2MN7 okxtxlBzy8vLsZmbWoRpYAm2PqHFzfdTLWbHzBCJDcnLvM904vnm35cP+a7V X10fwnvLaNuPrGe8vxWlyu2WZlRtmVrXFfPJ+Ujz7NTajoDAmiaRr83F1xft iznFVHBOLUd8T5DI0s4D258sPLOwdO7EQlvpA2EMYVt/tKjdijP+fU21Km7W rWW/v3xylFoT6rbW485EC+EITs+Pnw3b5few9EULpTK/5A68sJCna+bemwdX XOAQVVXcui28U+ZidJvp0lN/V7W/WWluv905+7HCR9c9detefgzdtNBjT+q+ YJObJ1+wJbOwVeQF/PfYPfuVc1T77bVcDV8jj+o8eVof7fXUqPKdUuskHt3N AdHHDjlERKy+dPax/sGzb3Lnm1caNrFcBRabF5kYGQ0atw6ZwhGlgEcMYy9o /GQgAq9QNRgN2ZmB8QxUBKpmoVHPyWzIgzxyDnQ6gsdtyGeALCtqoIzQyGII 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 wlLEMuRPgh2KEZfBEsRyKEGsQPwUHFCKuBzKEFcweSUsk05AFZSjpBoqEJ2I J8AFDsSVyH8CNYyvhUrk3bAcsQ5WIK5CyXF83nRJH8PVUI1YD07ENVCD8rWI H8M1UIv8tbAKsQFWSx/BbxjfiPxx+C2sQcl1sBbxerhGOgY3MLwRJcfgJobr mGQ9XCt9CBvgN4hN0Ii4keEm+C3izXAd4i1wvXQUmhm2wA3SEbgV8SjcBjch 3g5NKPkdrEe8AzYg3gkbpcPwe9iErXfBzYib4RaU3w3NiPdAC+K9cCvifYiH 4Q9wO/JbEA/DVvid9AHcj3gY/gh3ID4Av0d8EPEDeAg2Iz7M8BG4G/FRxEPw GNyL+Djch/gnhk/AHxD/jPg+/AXuR9yG+E/wwB+Rb2XYBg+hZDs8jPgkPIL4 FDyK+DTDZ+Ax6T1oh8cRd8ATiDvhz9K7sIvhbvgL4rMM/wrbEPeARzoIHdCK /N+gDfnnYDvi8/Ak4gvwlPQOvAhPI77E8O/wDOI/GO6Fdult2Ae7EF9m+Ars RnwV/or4GuxB3A8d0ltwAP6G+Drim/AGPIf8m/A84lvwAkrehpcQcQTpDTgI f0f+XcQ34D34B+I/YS/i+7BPeh0OwcuIH8AriIfhVcQjDI/CfsQPGR6DA9IB +Ahel/bDccQD8DG8gfwn8CbiCXgb8VM4KL0GJ+Fd5D+D95D/F/wT8XN4H/EU wy/gkPQqnGZ4Bg4jfglHEL+Co4j/hg+lV+Asw6/hmPQynIOPkP8GjiN+i/gy fAefIH4PJxB/YPgjnJT2wXmGF+AzlEiI+y4jpwf/j8np57rl9HP9zOmjUfK/ KafnsZw+v1tOp/zFOf1fmNMXIZayzO7L6UtQ4svpxSynU3SADXE5y+9dOf0k 5nQ7YjXyNKdTdLEs3zOnL0cJzeknuuX0TzCnVyNezdCX013I05z+SWdOd6O8 AeoQaU7/uDOnX438dVCPeD3L7zcwvJFl+ZsYduX0j1hO/4jl9GPdcvoxltOP sZz+Icvpx1hO/5Dl9A87c/p65H/HkOb0oyynH/2VcvoH/pzuz+n+nH7Zz+n/ mZw+Vc7ppy8rp2eynD79Ejl9ppzTv8CcPovl9Nksp+fIOf0U5vRcltPnyDn9 886cPg+zsz+n+3O6P6dfXk4/8Kvm9Fd+5ZwOmEeBu1ej5IDj6LdJ8uc0P0vK 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 Gy0Xe9fdvkPW7MqI3rpNzjW+uHZ3Zv4SZqMrIzjkK9vnhbdHz73x6nrnU8Z2 0N25Ot1jobc5OORrnUZpJfYtk++z4k9WgvbwRt4I1L+S7VgVi6uyS9qu/gVz 77Je1rl33pjy3b269u2nM+h+f+3p16Rue0Rn4p3LxXcr31VWxp4L6MydLKL6 igRbj123y3fri+/ZTpajXHKmot6u6ryTeu34MlJfMdSf50THzzwnzkQ5zV2r sO5g945L62aydantvP6dfT47nkTpCjiHlk+i9NKa85m1S7dPZ9JV7Gm1L71c PNMZ17EnHye7s/dvffqYh2AWJguThFRhvJAkWIWrhGwhuQ+r+f146s6mUjIa tfrS8WbTFX2u8Ux2rdO2zv9QIg2n3272Sjz7XyMGIJIEfGBaesbSzJmFudPF IeWV9a6KhCFiVpqYIOYX5qaL06bmpYvps9O8Gj/RHc10R/dLdwzTHdMv3USm myjOm52VmpOWLib2r9tY1m1sV7fEfnUbx7qN6+o2tl/dxrNu47u6jetXtwms 24SubuP71S2JdUvq6jahX92SWbfkrm5J/dtYbxSMTujqmNy/jnJIjO7sOLaf oeSNj9Fjujr2L67+T3XnAR1VtQXsSaElREoAgVBCkRbKPXXuSCihSFFaQpMe QiChJDGEFhBJRKqIiqGpEII0aVIF6YoIERSkPAEBla4YOogo/De5+zI7T/3d 61/r/W89WK6YCSczc+c75+7znX32YTYszEuLpNHCbFyYlxdJ44XZwDAvMZJG DLORYU+Y6RrxQpeWUaFVu4QZBm9RN/dLRIuqtN9lc8S8IEkaSMwmiXlRkjSU mM0S88IkaTBxGybuhUnSYOI2TNwLk6LBxGGw8cKkiIOUDRP3wqRoMHEbJu6F SdFg4jZM3AuTosHEbZi4dwBStAGI2+RwLzmKRg63yeFechSNHG6Tw73kKBo5 wiZHGH/VYUSz3A4j3C1pHUbYMAkvTJoGk7BhEl6YNA0mAbcxL0yaePuzYRJe mDQNJmHDJLwwaRpMwoZJeGHSNJiEDZPwwqRpMAkbJuGFSdNgEjZMwguTpsEk bZikdxjStGFI2uRILzluGjnSJkd6yXHTyJE2OdJLjpsYAUEI5CXHTSNH2uRI LzluGjnSJkd6yXHTyJE2OdJLjptGjrTJkV5y3DRypE2O9JLjppGjbHKUlxw3 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 dhGdQ1moEWrke0RYj8ncZwkKcjl/fPL+5n51hbS1vpayHw5pZqSHNC5YpM6k 1pPuB/kU8s1MD2lgPRTm6+PDAo0iBQuEPeXnW76Ay4guGBBW0MffJ93t6+Of GWV0MuqiRypkVZpQwRWe97eDq79ruCvRNdQV60qx/muc+9eogn6Zf6kfQ0oW b7Hlx5aDr5UZUXj1JyfvPFVqbmZ66XNGut9e6796mX6+Pr6+xVvtKpdxbkbk c83vnx7WOoh9YAQ9eak+BawXlTY970X6dfEvGOzbI4KVNoJzvykcXLRb7PCU 2OSE0ObRSbGslFEy9+FCwYEtRiT3j04YGT90aCwrZv0269GA4IKd46JHpcSy ikZI7gOBwaXsB0KbxyanxA+Mj4lOiU9MYJWNirk/9gsuAz/uHD/MepboYUnx CYNCm0cYlZ4OMgTjhjTy/vR4Oojlfiu4UB7l6WFEoRfbJYo9bZS2n/+prrHJ 8VHxgxLqhrZJiKnPwoza9hNVdX6Q91ShUc5zRcUmj4yPiR2e+6TpPlXxVfEp 4PJL9ynmsh4P8E338XGtyF7/wcFDoWsDXp66avKIGxvb3zy3p9iuQdE7Fg+o cGrbg2yxcqIxtfv4108POaMXFNt15NroW6OWjk8M3zVrbdAncXeGvpO9I7Le ytaN7m4+3rtviO/C3xoMqfTB/cXzl5bf7/vDKy9Enn+q37WmFcZvDTrb5IuN 5ybv6Js6mNX3m5cWvLxV6FdseFC3eodGS5FRcl7JrWfjGnx46fyn016v89n0 KpMH7ni1e7fEEbvCP6wxuXd28dLhCyf+1HlPQMLeR5+3PbO1UIk5Vcedblzz SKXR1xayAzcvVS13eu+GVs3nl++bWenNC33u5oy7+fLK/j4z77YLPHu4atfl GYfWTBm5JueToNsX2p3MfBiXuaZUww2T92zz9bPAX5x22kj71pAFC1vEFihQ yMfHv5ZRw6jufG/4TCobl5KS9GyDBokxw5Pqj7Su+3DrutePSRyWx07FYB+f x/6FjYLWF18flxGR+1hl/2etGb/OlJl8kgHNY5KH5mvdwGYFo9I8or71r/JI rfiMf1EjwHkVfoWNp3IfLJb7XP5WDyhovULr+xL+FpkflDOedvj2Cy7aOSrC As2sx+op8W+9wi8tzdV2yIOfun/aogKbOmZe2Oxd6at8TlR44dBH07onnCtc e3Gf/dmzgi/7RwZdb1Wzgcv86MKBWe3nH6vav/T9Ju4qHZLYhJvTzckbrlyZ 43r0dZfZ7at/s6Jm+9Q1H0dH3K7z1eUDJ/uc2Rb2WuNN7286+UO3xzs3fj7+ 7tdFF9yY8yjsaMPIkBCz5v0mba0+/NhI970M/TjoatiNY9/WnlKWFyjSZ/7I Kf/ej/8jPePP3dEwcXfsRnzSBkY9+0lr/NOT5v4sNvkfu+T6jrVanzkalzqx bIuBI3qP37tlYUyNx42avzeuhFn8mS7DT46oGf9H+62hvY4GPMgMqfNLl65V or+tdPrCdjHki+tnFrtj3wiZVXRzVKVe4waqvgWmtXw0sv25qAlZaaHvr5nS K6vw/YvGg5yq7heaBXx1bl/lvSe6XE1rsilycd0PfVJvZX04Qz1aeKn34AIL Gw05v2v27kcH+z1oerlQZouf0zolLKlza/O04rV+mfldwcxJHeePbVs4yKiY XXzBkPtXu6/xX9F03vpaV2aWWRV+Pirx+aPq/U2JAypumF13W6PLY34elvqg zKUaq9denxf1cdO6GVvGfPjoWOTK2injm13zVMoaXObSi9uqx33rmtC8+OQJ Q6BLZhtpX/w/dsmiT7qkr+EyhN0Z6xp1jFqZNTKrT6r6d50xZfjwejHRed2v TF73y/0V/5ceWHA3qQfKf++BuZ/y5NFJp9pH+oT2/H7MgXRj7x9by83e8Zbr sx2HDu2789S3jx+02y36GyU+v5sScuzts33fCw1eN67lzo6HXr084elXl9Wc NSj4uYfZW+ZG+B18t1PPAtNfWZ54O6RjSPX6t+JnDK16f1t2mYxfiqbsjht1 8ud5/SfvGf7mr1NTUqutXDx37Jx192fWfqld/REhrSNO3dgUFNr5xKjMOekx 8X8U+XrajRHbirx78kGJLjXmR/Odqb4fjZ20M+uz6VXrjj6iRm5/e3ivB1sv vVA6oNrBC98ck/XbNC0dXqxfavV9SwZen/110s+NL98JGv/dkXGLR74Uv+e9 Dq0MVWVd1try/cPDTr7xYZ1CY78tu6HX2B/fX5L4KHzqaiPdv6Q1BPxmDwHF XHtc08PDp5Q40vhezLVzTfEV87dGgCSnbwcGV22emDQmOX5QXEporZjauQfQ ukPbxcckJw5PHJgS2jwxOak+q2RUsP9x6fw/SUy279VVjMr2x1TW+/PIxMSU 0IgRKXGJyfEpY3KHB4/byPUdbhgeuMG4YPDtf+EV/eOt3HfHnqRLDW+1D6m1 cM7oPsZPWStmPNP310cZLyz++NH7WaGNx3XKejdrZj8+5EizAWNyVo080PnU rZ/fm1Rh5sKJAzd8PiS1f7UTFcPPFvN5+8rsvbvqDZw/P67GvMPP1t1VdFP3 GnueuxzQ2Jxdd0Utz/JrbV5tdn5isW3zh3aJXpU+blG/eqNeuDpv44CG8ztW YIWrl1q44vJbYWUvNZobU6pf9wKxCyu6IyffX3b9Hd99IUd3dWm5YeqEXc9e 6/xO+zV/LEsdltJ+bdmDs4vUquLq9ma/ePe250sWCu/6uOfDDwYGFF76TVrX btc3N+xTJm2U/6l7O9dMyHj00aFXTiwrn9wrPHv7jcKLqxobCr52YEPoqODX zsG4sdxIW2KkZeX2Sx//tPlG2pwJxXseTroen7ygWqfxpda3e+Pxl4uS//9/ fun/wHjeqJBxJXD3jNtzyqpftvhU/3ZUidu9+vGFCwK/bFzgrSkzDzx7qcqt G91m1d2U2Wp//+u//+tgw4Y9VujO8Y+qD2ty4OCHZwuMO8NmNFpYPGnwtkcl O5SN3/374ebnS/QI7fBT/7FrPyy3P8z9TL2dsYtKTnumWMzi+50rPKhy4ETp 25GrEprzQn+kP/3rxUFDgzrd23Ez8osdl/cav4eyIlMqZtQu3+54Rd8lNyd8 77ex5511Z/Z3y4lt80Vk580b/WqVfPzmiRuFZ47fMufzle66F1IvLB91fmSm 6/DgJnu+0dO+jyi5XA0OGXxa/XCsgv+F5S399/cQZkK7CkH9Pw7Iev3o8c5N njtUocvSpNMln508a8TCZd9kWqPCZ1ZwsBYCg8GB8zrsdlVcWeLUXt9FA2t+ 4kwSKv63hgRDW/GCZG4pmcwN4K0hnmtnSEhbmj9kCDZK2NONgG7Rw+OsUCDF ep7iebcQa7JRKDJ2wLDEhAHOKwv4u1f2d2+TW0/6p7dZzahiv43y+CcDYvOC j9xopGPepCD0zyNJUO5IUjhvJPnsYOiM7eceN+6Yk/rpserP3Bv5VZXHh+p0 bZ/93sfp69WYeq69ywsfjznw8ZJ7V/fsObHu9dlZhX4rtjk9cv7P6ft2FP98 +e6cIRPfiArZ1vG3AT5T95Q5lh7najq6xd2SZvuHMZ2+/63R1ovudediClVr +FJT2erOkDXP3a05vFLVL5uVq9Rpc+T8o4sPB+8r1+SlgsNuZVRp0bfZL7sP zBsQumWP/D2rxaWx6ys22LL07J1F596tUuxRdxbRxRy/tvvlC9deHPPMyvt1 GpRoYo5u3OyVZXEXxleNe/pS27f3jm4R2WpRh4lTZ727e9DYn4o8nOT38r15 L4WHLRs49+C5ej+G+ZYvJlvH3g0vufbm5AoVa0QmHrTY81uc7lPHuh41/ioO 9/vfGF5KFiwCE/DS1vji6+fn8s+bolZ8yr+Mf6lnfg17vvf+5M6rL97LrPN0 mYd7HkSlGeWeNCnl61+0UoAryjXCmq43d0UYgXmBT9684zmj2JMAq4DhZ31B /TJvGIs5//3tAls++ikwUB5JZ42n9m95vPCyB9Gx++v7/Wa2jvh6062arx49 /3nXqOWbyn118NLNzAddN7d+p1X1iysqf5d67F6Z1JKnb78Zcq1w7w2vvbn1 9e7bKhzMOJrxjrjz1tnHU97t83ybjp4az4aGdHb//nKv0rM++67CGzeiI8Mv Fvpl4PUx12Z+1S0mNqNsm8zUc7Efn6ux5tH+kpv3ZR3c13d60u3s0yvTEwp9 F1tu6/J7kz4t0mzuzRqr4lPX7Qlb9tHAykvWTi48ZE7wlo/0vEoFFgebi3ev Mhp/UuVfxtLs/iUrrO024+LN1BKf9Akv6r45a8/bU9r79yjQ64uvT6w4+cPL b42u+XBjwpKZBUX3dX3qlChmpBcQ1lAWYg9jAdHPLfjS5e9yuWL/ZCj+V4YM 79jnkULq3NmS24qNrG9V7rdGyn/kfcDP/f7m5/8YEh1Km22u6ZV1a8+5s4dX Zsw4Ef5+5emf9Z5Uv/eNdcl3V66aMnjTqXVVxwbu37/k+bf6VA2++uButfc3 3UkYueZ6zgfhX+zd/WKvJis3DBc1lvZPix6zqP+dhCkZhxPOfLHwmw86lRgZ /UnStNhFs8tMXdY77XCLgRdPd13QNPv370ZWr9/CcF088fLYjBLHu1dcfKVD 4IEp32WdiJo3NDsme97g+W/3eaFdiSsNjvbs2adv5OLh9ZZsm9gy6PVypUd+ WfjU/KVJpa+0uxb/R+/1Q2b+UruT25y+77k2pd/pOPejO3Ef/OtskZcGpSwY 9XrF14bM+ely35YHv7/0UtCRGNessWzuG4Ebg3dsOJxz81yVnBX9onPczRt9 ZodE6T5vW1fkjT/NXbyDQc7JIStGRB3qkBPSvlzBSovfW/n1O3/8zci3IvfR av5pi4y0BRP+chRZlPLBf2P8+3Ow8Lw98WthNDOaZjbODJ/0LJr4DXN+T97M L2lIfO6jDZKSEweMiEkZ3iC3A+Tyb7HP8yaEHdBMtLkRYTR5MhP1nSTg944a Neqvfm9s8p9/YcpfzQnNk9czzHd7zS3Vu3NC/Dnf/Zc3PDz6abvVDVa+0jno FN/86+BLQQ+rlB/VeElc6saM8dN63Wq+99V3Y1+e0rHTuPRSd18d/q+snb2y fZO+qjH06e2RpZZM3f3xhUUHF414/62XGoXs7urquunXiTVO9REPTzyT2mf+ qaUP79yKKL+qy3OrW3/3lhncvUibm7fZ5Mrb/d/oWTLW72pgp8OLik6bt+Pk nuWHC5d+psqmzd2mVjjSc5Jakv3Hh5OvrXA3+bj5kPOhN1tuH7/m6s0u6xe1 3h67M0qePHClYIx/wdEJHR+33vbuT817TD69OmDC3Rc/r3vh4is9217kY3Kq vvZ20XobOvbc92nT7t1XfnPofIM9h64NW+gew9L9j1jD5iFfHx8jbdP/zOCY b4D3auzMtByj1JMbai0fVsjP+pytf5R7m4WPvogfK4rNufXSvd8FsqcM/NPS RjVvQ39m9dsatbLfOr1t2YJvBzccenx74UAfdXe/MRo1KcoGG3GZjSeEuyJc ya54V7RrqCvU1d76mmz9TXSNsr5rlifjB1j/19UVaz063Pp3ia4E63vuqu8S LveiGhOq/y3hKWOSEgclRyfFjfn3mNI/3ceVmL5dV3p921d1799bW63Xudqv hzcp0yd7zB+ZIw7U79G1/J3ulStevfhwyw9HjeWj3V+NE8NeWxibEei+lfbS jplfll+7fcvqEt/6ff32pIiwK9V2Db0dUnDroasXAuqsH71s1b7f2j86P2Ly v4LCeg2YN+3U/qXtpk5581a/M8dXjpz0KHpggBqzYeuYs6+aZ3+q9qjt1pkv xnsyZ63YOi2s6Y1VfQOWHand8Pk7AXE5SfGDds69eY3X/LVRk/o7wxp167L9 5Uo/hL0z5WBSu5dXP1ssZ/CCoKFXvjmYMiKn/xs7WJuNn65vmDq02jv1sisl zfz8YcDPe0c02LAx51jSosZnSnXIOXToYPK264PTR609WdqYtMNYlG4FR+k+ D72fW0GW7nPNeuhKLuSD/iNq8y+EatGChe0X4GuNNZkvGmUxgYHeBR4fC8An PynAiuXd9d1MMtNgwpriVMYAlvQv/nqbs/1+fC2p6lW1aemFtJdb/AUCLHDB xCEJDTo073Cv4lOnSte91Gt2/fd+bNu0puuLcjWG9khv+2PybyXrra5cr+2d gCJ3e+7c/fb+Vy5l1Z7Tb8zXwyeePXXrh7TJx7c92BSXmRS1fOjA1esHPGUO 61+u5pScjLAZNZ//vvS6hh23hse07tVvVsuNk3+Y/jAprE2HrMACnT6oscIv a2nM4iYZVXr4FtnU7/ycVw6M9Tty/L1fT6/pHdfr6VrDOkaEfFJqWKvf05sl v+dz/9iVRd809DuTk3pS1zpb6dLe332yu5yuN2be71We5XMH7FYhD49kdD3V +/sxxxd0+X7T9EOD0+YH7v5ia7t3zrIhswMq3Cve98CWvt99Ur3ihobLGp4d Gz9jwtRXDvVJXeFy/R9r8RpLDQplbmRzdHJlYW0NZW5kb2JqDTM5IDAgb2Jq DTw8L0JpdHNQZXJDb21wb25lbnQgOC9Db2xvclNwYWNlL0RldmljZVJHQi9G aWx0ZXIvRENURGVjb2RlL0hlaWdodCAxMzUvSW50ZXJwb2xhdGUgdHJ1ZS9M ZW5ndGggODUwMi9TdWJ0eXBlL0ltYWdlL1R5cGUvWE9iamVjdC9XaWR0aCA1 MDA+PnN0cmVhbQ0K/9j/4AAQSkZJRgABAQEA3ADcAAD/4QBaRXhpZgAASUkq AAgAAAAFAAEDBQABAAAASgAAAAMDAQABAAAAAAAAABBRAQABAAAAAQAAABFR BAABAAAA1SEAABJRBAABAAAA1SEAAAAAAACghgEAj7EAAP/bAEMACAYGBwYF CAcHBwkJCAoMFA0MCwsMGRITDxQdGh8eHRocHCAkLicgIiwjHBwoNyksMDE0 NDQfJzk9ODI8LjM0Mv/bAEMBCQkJDAsMGA0NGDIhHCEyMjIyMjIyMjIyMjIy MjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMv/AABEIAIcB 9AMBIgACEQEDEQH/xAAfAAABBQEBAQEBAQAAAAAAAAAAAQIDBAUGBwgJCgv/ xAC1EAACAQMDAgQDBQUEBAAAAX0BAgMABBEFEiExQQYTUWEHInEUMoGRoQgj QrHBFVLR8CQzYnKCCQoWFxgZGiUmJygpKjQ1Njc4OTpDREVGR0hJSlNUVVZX WFlaY2RlZmdoaWpzdHV2d3h5eoOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmq srO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4eLj5OXm5+jp6vHy8/T19vf4 +fr/xAAfAQADAQEBAQEBAQEBAAAAAAAAAQIDBAUGBwgJCgv/xAC1EQACAQIE BAMEBwUEBAABAncAAQIDEQQFITEGEkFRB2FxEyIygQgUQpGhscEJIzNS8BVi ctEKFiQ04SXxFxgZGiYnKCkqNTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZn aGlqc3R1dnd4eXqCg4SFhoeIiYqSk5SVlpeYmZqio6Slpqeoqaqys7S1tre4 ubrCw8TFxsfIycrS09TV1tfY2dri4+Tl5ufo6ery8/T19vf4+fr/2gAMAwEA AhEDEQA/APf6KKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAK KKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAoo ooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiii gAooooAKKKKACiqt5qNnYJuu7mKEf7bYP5Vy2pfE7w9p+Qssk7D+4uB+ZrWn Qq1Pgi2RKpCO7OzorzJvijqV7zpHhuedT0d923+WP1qJvF3xBn5i0XTYF/22 5/V/6Vr9TmviaXzRHtovZN/I9Soryd/EPxG6iPSx7Ar/AI1C3i34iwcvZ2Mg /wBkKf5NTWFv9uP3h7b+6/uPXqK8bb4p+KrH/j+0e1CjqxhkH67sVbtfjMWx 9o0pD6mOb/EVostrtXjZ+jRP1qmt9Pkes0VwVp8WtAmIFzFdWx9SgdR+Rz+l dNpvinQ9WIWy1O3kc9ELbW/I81hUwtal8cWjSNanL4Wa9FFFc5oFFFFABRRR QAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFA BRRRQAUUUUAFFU7434X/AEJrZT6zBj+gx/OuZ1S41W0tpJ7rU1KpztgQpWc6 nKr2MqlVwV+Vs7KivGdZ8aXVrEfJvrkN/vmuc0Pxdr+u+IIrFtcvIIMF5XR+ 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 jasdp3gf3hXsVRPbxSD5kBrjrYDD1neUdTWNacdmeR6fqWu6S+IVbb/d3Ar+ RrqLTxlqzKBJpaufVXA/rXUS6NZy9Yx+VQHw7aZ4GKiGAVNWp1JJeq/VDdbm 3SMz/hJNWkX93pUae7zr/jVC9vNbvFKyXtvbIeoiyx/pXRjQbcdzUyaNar/D mqlgYzVqk5SXa9l+FhKq18KSPOX8Ow3Eu6Xzr2T1lPy/98/45rc07ws7MpkQ Ko6KBgCu0js4IvuoPyqYADoK6KVGnRjy01ZESlKTu2U7LTorRAFUZq7UVxcR Wtu88zhI0GWJrznxJ4/uII3Nufs0PY/xt/hXbQw067tEwqVo09z0ea4htk3z ypGvq7AVh3njTw1Z5FxqtvkdQoL/AMga8SsrzUfGN9K73Tw2cbYklJ3Mx9Bm u10rwvpkW3yNNW4f/npc/vCfz4/StZ0cPSfLOTb8iYzqT1Ssjel+JXhEttSS ac+kcB/riuN8X65pWsL9o03TtRW5AwS1qdrj3x3r0C10e6VAqJHCv91ECj9K t/2HcOMPKaKWJp0Zc9OLv6/8AJ0pTVpP8D5su/NVt09tJECf40I/nVjStYvd ImE2n3TwtnJAPyn6joa+gbjwfDcoRLhweoYZBrjdb+FVu4aSzzBJ22fdP4V6 FPNIVPdrR0+855YSUdYMTw98YlTZBrloFHT7RAP5r/h+Veo6bq1jq9ot1YXM c8LdGQ5/P0NfM+saBfaLP5N5HjP3XHRqZ4Y8T3nhbXoJoZW+zyOEnizw6k+n qO1LFYClKHtaP/ACliJqXJM+qK4TxrpniHV2EdtLZwWkZyoLMWY+p4/Suq03 UVu4wc81dkgSUYYZrwKkFNcr2OurSjVjyy2PnHUfBuuSSnfPA30J/wAKdo3h zxDpN0ZrS4gjZuGzkg/UYr6DOlWjHJiB/Ck/siz/AOeQ/Ks44anHYxjg6Ufh VjhNFv8AxcrolxfaYkXc+QzN+WRXe2t15sSq7h3x8zBcA/hSDS7VekYqxHbx x/dXFaxjY3jDl6mZrGg2esWrQ3MEcqN2Zc15TrvwpMbtJp07xj+443L+fWvb qayK4wwBqZ0oT+JHXRxVah/DlY+Ybrwdr9oxAt0lA/uuB/PFRWsHifTZd9tb 3cDj+KGXafzBr6Ym0u1m+9GPyqlJ4asnP3AKweDp7o71nWJtZ2Z4vZ+KfiFG AiPdP/11ZD+rVrwav8RL3Ak1GCzU9SxQn/x0GvTf+EWss/dqWPw5Zp/DVrDp dX95hPMZy+xH/wABRxOn6PcXEiya5r+o6n626yNHD+IB5/Su708iOFYre3SC JeAiKFA/AVYi022h+7GKtKiqMAYraMIx2OSpWnU+JirnHNLRRVGQUUUUAFFF FABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUU AFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAcx48aePw400KM6xSK8ir128/wAi QfwrwPXtSbUicH5fSvp+aISxlGAIIwQa8s8U/C+2upXudOY2rsclVXKE/Tt+ FergMbSpRdOovmceIoSm+aJw/wAPdStLSVtOvHWLfJvjdjgEnAwT+Fe/aZBC tupQA8dRXzpe+CtdsnIECTAd0bH86t6VrXjLQcJbG8SMf8syvmJ+RziqrYWj Wlz0pq76MIVZwVpxPpGivGbX4oeKYlAn0qOY/wDXFlP6Vox/FPXX4Hhd3P8A s7/8K5pZfVXVfejRYmD7/ceq0hUEYIrzMePfF1yMW/hhI895n24/MioJ7vxz qylJ9Ss9MibqIfmbH4f4is/qvL8ckvnf8i/a32TZJ8Vr7S4bCK03xtdb/MYA jKDB6+mc15LoWgz6zqsd28TJYxOG3EY8wg9B6+9elWvgfTlm867efVLknJab hM+u3v8AiTXVWHh1pGUugRF6KBgAVvPFxhR9hS1XczjRcp+0mWfDcUgQE5xX WDpVa0s0towqirVecdIUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFF ABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABRRRQAUUUUA FFFFABRRRQAUUUUAFFFFABRRRQAUUUUAFFFFABSFQwwRmlooApzabbT/AH41 /Ks+XwxZSfwAVuUUAc0fCVvn5WIpR4VjH/LRvzrpKKAMBPDMQ6ux/GrMeg2y dRn61rUUAVorGCL7sY/KrAUDoKWigAooooAKKKKACiiigAooooAKKKKACiii gAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKA CiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAK KKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAoo ooAKKKKAP//ZDQplbmRzdHJlYW0NZW5kb2JqDTEgMCBvYmoNPDwvQ29udGVu dHMgMiAwIFIvQ3JvcEJveFswIDAgNjEyIDc5Ml0vR3JvdXA8PC9DUy9EZXZp Y2VSR0IvUy9UcmFuc3BhcmVuY3kvVHlwZS9Hcm91cD4+L01lZGlhQm94WzAg MCA2MTIgNzkyXS9QYXJlbnQgMjEgMCBSL1Jlc291cmNlczw8L0V4dEdTdGF0 ZTw8L0dTNCA0MSAwIFIvR1M4IDQyIDAgUj4+L0ZvbnQ8PC9GMSA0NSAwIFIv RjIgNDggMCBSL0YzIDUxIDAgUi9GNSAxOSAwIFIvRjYgMjAgMCBSPj4vUHJv Y1NldFsvUERGL1RleHQvSW1hZ2VCL0ltYWdlQy9JbWFnZUldPj4vUm90YXRl IDAvVGFicy9TL1R5cGUvUGFnZT4+DWVuZG9iag0yIDAgb2JqDTw8L0ZpbHRl ci9GbGF0ZURlY29kZS9MZW5ndGggNDM3MD4+c3RyZWFtDQp4nM1a224cSXJ9 F6B/qHkxSGNVU3mvXBiGd6QZAba1a+zINoyBHzi8SA2Tam13SwN+kv/S55zI qq6i2KKwflnMiOysyoyMy4kTkdn8/vXPsXu3f/7MdQP+2717/swPrveu82Pu U+3u+MD3hQ9K72vnh9h7DMZ+wLMh9UWD0l1yZtXTMfQVj93Q59T5UrUcozFi lPrqNdk5TS6+dxCIpQVr8thXyi29w9KcuaUkx37MeAAJUMfjV/Z9Lp2rtfdF o+g409Xch6AHEOuqt3X4lToHRbE5pPQla/IY+5q1T+brQXrn2idILsX0C32K moxPAxyA5zHj9SB3jK4P2Ad6J44Sp3AyRFZ5ZnSdMzs8lMEvjmhHTX1MNheb 1rHPJid0ASEI2iFWDAJ/SQFYMeJB4i8HT44eI7gKg0rRHAzeLEPQODfTYsdg 2sqMyRWByRh5+lqTK93AbSMMx8hTiaEfzGcpmn6T4KS1ckLpS9WIDotc7hGR MM76wt0Vk2iOo9o0e9Qg0yOBemmuo5W+wnKK8v2QzX3cJUgwjGjGYSeKAs5c lRIEC6LnsoIYGKXccOYQEz8KZ0OQcTkrxg4j7p+EOoyEnqKtMp3q4YEcNCCG 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 XTtyNuKHXfXfa751ydazP3V//vmWA+Mefl1m6Z35+fVPNQ319bXXedTideMa fq6lOV2D69jjRv07p79/bUpF7loqYtGIKf96Hf9brow/X46aHV+O3Ykv2lhr WPSiAf/0ogXPRSf+4yX5See67X84FZMysWLrgcP7jNu/IyMq4Hmz4I/GetrL 1e6adHZ4ndhnITv9e59yf5zpW+/Xrt2qR35f9fzlz8SQQ7d/yLFFf+A7p8y2 sKq9xw5UfV2ntckfEZIXNj471X/J+im9s0s+uqI9vlXD9mYr96/yDlbbf6br jdQWW0NzGqyxptzLXjND5Wdc7TPYNaPZkEt75u3NP9bvcctrJTJb/5LaJW55 vXvbppWr++vMC26ZkzovGvN6SQ+tytFyS4c8utFjvcvqlgs/qXt9ZoV1gZfC 4t84pZZsjR9QZfO8BruaXRv9y7CUxxWuBny84fbCsO0tG6TvGL0m/3To2teS x7W66aiaPbjC1bd21Yr53jI+uNzk8UPgkjyqpR76X16SZV5ckk6aRRNFF2MD rZ5WNzMgs9akGn93MSYnJTWMiiy8/CoUXn4Fv+L/cwW67SVdgfJfr8CCb3ny qIRzIaFW/14/jj6Spu1/trPSvN2zLPt2Hz9+8MEr3z9/3HGv6K95HniY7Ht6 9sW+H/l7bxrb5vPOxydcG//qhJV15gzybvv06I4FQc7HFnfp5Tr93VXx9307 +9ZqdC92xtAaj3YdrZD+a5nkvTEjz/6ysP/k3KQPf5+anFJzbc6CMfM3PZr5 2tsdGw33bR907s5WD//wMyMz56dFxT4r9fW0O8N3lVp89rFn14BFkfzzFKeN YyZ9nr1veo0Go06qEZ/NTur9eOfVN33cax67/M1p2ahDS5/Asv1Sah1cPvD2 vK8Tfml+7YHHuAsnx+aMeDs296NO7TRVfVP2hsr9A+uf/WBNvRJjvq+4ufeY /1myPD4/cOrHWpqLl9EEPClqAspaci3TAwOneJ5s/lvUzbyW+Iy5GC1Agnlt l/auERyfMDoxdlBMsn/dqNcKdpG1+XeMjUqMT4ofmOwfHJ+Y0IhV1fyK/mef 4s/EJxbdq6tr1Yq+poovnw+Nj0/2DxqeHBOfGJs8uqB5cNi0AvCwQfPANcYF gx//A+/oH2/lTrtzE642vRfiWzdj/qgI7efs1TNq9/09P/3NnO35S7L9m4/t kr04e2Y/PuRkqwGjb60bcST83L1fPprkNzNj4sDNB4ak9K95pkrgxbLW2dfn 7d/TcOCiRTEBC080abCnzNYeAbltr7k3t89rsLquY9XNDhNaXZpYdteioV0j 16WNzerXcOSbNxZuGdB0UWc/VrJW+YzV12bVr3i12YKo8v16uEZnVLGFTn60 8vZcp4O+p/Z0bbN56vg9TW6Gzw1Z/2xlyrDkkA0Vj80rVbe6pfuH/WJtu97w KhHY7Xmvp8sGupdc8U1qt+63tzWNqJA60uXcb5+vH5+ev/H4u2dWVk7sHXj0 szslc2pom93eO7LZf6T3e3nQbqzSUpdrqdkF16XVJXWRljp/fLleJxJuxyYu rdllXPlPOn7w/MusxP/77y/tH2K8sFVIv15674z78yuqX3dYa30/0vN+7348 Y2npL5u7zpoy80iTq9Xv3ek+p8HWzHaH+9/+47tjTZv2XK2Hx+bXGtbiyLE1 F13H/sBmNMsolzB4V75Xp4qxe/84EXzJs6d/p5/7j9mwptLh+rbaDT+PzvKa VrtsVM6jcL/H1Y+c8bkfui4umJd4lvbq71cGDfXo8tvuu6GHdl/br/3hz0pN qZL+WuWO31ZxWn53/I/OW3o92PTD4e63ojscCg3ftsW5rtfzD8/cKTlz3I75 B9baGlxOubxq5KURmZYTg1vkfqNP+zHIa5Ua7Dv4vPrptJ/L5VVtXA73FPa4 jn4e/be7Z79/6tvwFm2P+3VdkXDeq8nkOcMzVn6TabQK+4zkYAMkBoNLL+y0 11Jlree5/U5ZA+t8anYSqvynmgRNN/IFyWxSMlmQwBtNPNfNJiF1RfGUwVvz LOpuuHePTIoxUoFk43XKFd5CjM5GidDoAcPi4waY78z9797Z331Mbrzonz5m Ta160ceojJ8ZEF2YfBRkI50LOwX+f25JPApakpKFLcm+Y/4zPst73rzzrZQv Tteq/duIr6o/P16vW8jRj7anfaJGN7TsX1Xy26gj25f/diM398ym9+dll3hS dlta6KJf0g7uLndg1d5bQyZ+EOa7q/OTAdapuRVOp8VYWo5q/dDLHvI0qsuP T5rtvGLblBdVombTt1vKdg+GrG/7sE5S1RpftqpUtcu20EWnck54H6zU4m23 YffSq7fu2+rXvUcWDvDfkSv/yG59dcwnVRrvWHHxQVbe4upl83uwoK72cRt6 XLt8863Rtdc+qtfYs4V9VPNW766MuTyuRsyrV1+fvX9U69B2WZ0mTp2zeO+g MT+XejrJ+Z3fFr4dWH/lwAXH8hr+T32nymVl++iHgV4b7k72qxIQGn/MiD3n nDRrPeN8BPxVHu7839G8eLmVgg64j9G+ODk7W1wKu6hVXnGp4FK+9u/13+hz ODH84yu/ZdZ7tcLT3MdhqVqlF4eUd3IpU9XdEmYZbnTXgy1BWunCxKew39FW K/siwXLVnI2/0HVZ2IxFXfrxvuuOjT+XLi1PprHmU/u3+bbkyseR0YcbOT+x tw/6euu9OhNOXTrQLWzV1kpfHbt6N/Nxt23t57ardWV1tQspp3+rkOJ1/v6H vjdL9tn83oc73++xy+9Y+qn0ueLBrIvPpyyOeKNDZ0dAE3/fcNsf7/T2mbPv gt8HdyJDA6+U+HXg7dE3Z37VPSo6vWKHzJS86O15AevzD3ttO5h97GDf6Qn3 j55fmxZX4kJ0pZ2rfpv0RalWC+4GrItN2ZRbf+XGgdWWb5hccsh87x0b9YVV XXO87Tl712nNP63+nbbiaH8vvw3dZ1y5m+L5aURgGdvdObmzp4S49HTtfejr M6vP/vTOrFF1nm6JWz7TTfTYFFHPs6yW5iqMpsy3qBlzj2y79EuLi8Viif6T UPy3NBkv2z6HFFIv6C3ZjNzI+FEV/Kgl/1s+Bzzv/DfP/2NKdDx1nn197+x7 uXkXT6xNn3EmcEm16fv6TGrU586mxIdr100ZvPXcphpjSh8+vPyNWRE1vG88 flhzydYHcSPW3761LPDQ/r1v9W6xdnOSCFjRPzVydFb/B3FT0k/E/XAo45tl XTxHRH6aMC06a16FqSv7pJ5oPfDK+W5LWx7948KIWo1aa5YrZ94Zk+75bY8q Odc7lT4y5UL2mbCFQ49GHV04eNHsiDc7el5vfKpXr4i+oTlJDZfvmtjG4/1K PiO+LHlu0YoEn+sdb8Y+6/PJkJm/vtbFZp9+sG0Hn7mdF2x8ELPsu4ul3h6U vHTk+1XeGzL/52t92xz78erbHiejLHPGsAUflN7ivXvziVt386rfWt0v8pYt uNm+opQozTrbOCMf/Knv8rIxuHV2yOrhYcc73fINqeRWNeejtV/PffY3Ld/q gkdruqRmaalLx/9lK5KVvOw/0f79OVl4o6jj11prpbXMbJ4ZOKkJ6vgNM39P Yc8vYUhswaONExLjBwyPSk5qXHABFMS/Efu8sEPYCfVEg7UgrcWLnqjTJAG/ d+TIkX/1e6MT//wLk/+qT2g/ezvdvrj3gvJ9wuNi85wOX9v89NQXHT9uvPbd cI9zfNvvg696PK1eeWTz5TEpW9LHTet9L3j/hMXR70zp3GVsWvmHE5K+y/68 91GnhK8Chr76WWj55VP3br+cdSxr+JJZbzfz3dvN0m3r7xMDzkWIp2dqp0Qs Orfi6YN7QZXXdW37cfsLs+zePUp1uHufTa72mcsHvbyinW+U7nIiq8y0hbvP 5q46UdKndvWt27pP9TvZa5JafvTZmsk3V9tabA8ecsn/bpvPxq2/cbfrJ1nt P4v+PEyePXLdLcrFbVRc5+ftdy3+Objn5PMfu49/+NaBBpevvNvr9St89K0a 780u03Bz514Hv2jZo8fab45fapx7/OawDNtoluZyqCADdLJatdSt/zWNY7EG /iVjZ6Ze1sq/uKHWtbISzsb3bPxPBbdZ+OpLObMyWM6Nt/7yp9LsFQ0/66PV fHmgCzOu27zzjZ/k7r1z4aucI3HNnyqvXQmTIrU4dEgZ1k+LyJTjuSXIkmiJ tURahlr8LSHG34nGn3jLSOOnbpZo47+TjGfjLXHGz9zSyCIstqyA8bX+Nq6T RyfED0qMTIgZ/a+ZpEua1ZI2+kiZ7q8nrX6a0z9nbbvbiys7HclVJyZ4Vusw LNLxpPvB77Y0uXH8RoVxl6bIXiGlP/GNWJhbu4O2bfmgiYFnc/pUftRtXquB fo0ObA9Zk/1LepfL3zrFdf21brWJa5vxFj7DJiwodVjdKNHvQIxfs1HTZ01M rLTuds0mS7ZW8Ln3zP1Bn/oj1107/Ub56LzMDX1+3/Nh9xNPWi3I8P0y8Obt 161nUm87TmuOhZmHLF9t3j91+Z5vVu7Ys6j1CRUxdfynPWadWJvx+YSTU348 7Ki18PH1yy1+u3AspseqRlPveIjNqaOa9Zp6+Pj9gx81XjIhMGrx99sD7w9z e3LaeefGiMMdDw2O/WZ4v5u1U56UmTR7TVJWmpESpVmfvvy23Fia9abx0PWC 0B70bwHNv2DUMm4li96Ak9HCZL6lVcRxV/rlsI7VCLsXz7iysoX3ehuTzK4x 7uhptL0o7Lxcyn3pvmbpTdX1XPhj9707gk9O+YsQGPdLg4+du+V/u+LB+5/O 7ulZoUn/w0unvDOt9uXXelezLn06OqRBvwPnbtRZOjvro6/5uiHHtvR6ZVfI wxn5WWu2znl2Nyh8xfjc25u/yPZKT2G/78g4NnTW7mN1EnucO99xrX7ou9Ur /HJK2X3ktotPywR32N1lYPsf56QOW7d5Wr94y7ORY4MbnV5TqtmZiKaRiQFv XLBu+Oxqfne/8E15F6JrBQ6t/WNYRELmxrCA2C36gcdb8ktkNRzhcXDBwfF9 3/PYVHPfLwN/6rZgq3/1vvmT/crOGdd0ecbyuXVdMyqOsC9ov65tr6xHxyOt 3ru66QfGv93ac1e9Wmef3nruOnXGB7dHZHgd6tTLJ6qb54h9By0L/x9Ysr/X DQplbmRzdHJlYW0NZW5kb2JqDTQgMCBvYmoNPDwvRmlsdGVyL0ZsYXRlRGVj b2RlL0xlbmd0aCAyMjU+PnN0cmVhbQ0KeJxdkMFqwzAMhu9+Ch3bQ3Gaw04h 0HUMcug2lu0BHFvJDItsFOeQt5/shQ4msEH+/0/8lr52Tx35BPqNg+0xwejJ MS5hZYsw4ORJnStw3qa9K7edTVRa4H5bEs4djUE1Deh3EZfEGxwuLgx4VPqV HbKnCQ6f1176fo3xG2ekBJVqW3A4yqCbiS9mRtAFO3VOdJ+2kzB/jo8tItSl P/+GscHhEo1FNjShaiqpFppnqVYhuX/6Tg2j/TKc3ZdHcddV/VDc+3vm8vfu oezKLHnKDkqQHMET3tcUQ8xUPj8PgW8/DQplbmRzdHJlYW0NZW5kb2JqDTUg MCBvYmoNPDwvRmlsdGVyL0ZsYXRlRGVjb2RlL0xlbmd0aCAyMDA3NS9MZW5n dGgxIDgzMDQwPj5zdHJlYW0NCnic7H0JfBRF9v+r6p7pmUyOyTUkBJgOwx0C uSAJIJlAAsRwh0CCEDIkEzIhyYRkEg6PBQ9gIygeq7uuu6Lueq9OgmhAd8EV d71AVlfd9QBEERCjeIAKSv9fVXcunWGHz/r//T7/z39eM99+9epV1atXr15X JyEBAgDRCCKk5BUVTD+bf+8WICNOAyQ0zFxQNEMQhUcApE8B6G/nFI1Nqz++ 7hQA6cBWCxcUFSz8Jj1rOsDWLQC/rVyYN6tkYW5DG0DIZoDI2yvqHA1rfjvz AYDF+7DN4ooWj/xG/NPvALgaAHT1VQ0r6p4PuWkgwBIZDTizwtHUAAlgxP6u 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 yVHy84LjKzajfGv2Taf+Yj1IQQqYBvbrhwFo8BebPvJfjG/NiD6lYGwG6b8m OT4eY9Po5+XbV4xZfGua+5T8fBE0SEEKnBL798fkaPTz8u0rNvv51ozsU/KX h4MUpIBp6MCB7Mf4/Lx8+8p/8b41+/4PMX95OEhBCphGJSayHys1+6n2kf8G +taM7VPyl4eDFKSAacyQIRibYX5evn3FmNW3Zt9HfYRvpSAFKXBKGz4ck2N4 tJ9qH8/6wb41+z7qzf+VUUEKEtL4UaPwcBgR66faR/4b6lszoU8p0rdSkIIU OE1ITsYHt9nPy7ev/DfCt2bfY6i/PBykIAVMUzMyMDlG9fdT7eMcOsa3Zt9H vb88HKQgBUyFEybgAzjGz8u3r28CpfvWHNanFPffWRWkIAEU5ebiA7if7Kfa x7M+27fmqD4lf3k4SEEKmJbMmIEP4Pghfqp9fKE9x7dm30e9vzwcpCAFTJWz Z2NyTBjupzrhpyI/v4Y1rU9J/q+MClKQVKLa76CMAYFxBJ/HRN/ziykJ5Tp9 iVX6/c+ZPpJmim/N6X1KxYHZ+z9FIvud0RAKBpy9iO96E2AWVEKjoqA0saek fNh1/fh3edpzciZfNmlCdlZmVmZGelpqytgxyaOTRo0cMXzY0CG2wYmyddDA AQn94+P6WWJjoqMizRHhYaGmEKNB0utEgRIYnW+bVi57h5V7xWG2GTOSWdnm QIGjl6DcK6NoWl8dr1zO1eS+mnbUrPqRpl3VtHdrErM8CSYlj5bzbbJ3f55N 7iCL55UgvzXPVip7Ozk/i/PiMF4Iw0JiIraQ8+Oq82QvKZfzvdNaqlvzy/Ow vzZTyFTbVGdI8mhoCzEha0LOO83W0EamTSacodPyJ7RRMIShVd7LbXn53gJb HjPBKwzNd1R6584ryc9LSEwsTR7tJVMrbMu9YJvijUjiKjCVD+PVT/VKfBjZ xaYDN8pto/e2bukww/LypNBKW6VjSYlXcJSyMSKTvNNted7p6z6KSx7dQR5Y UOI1Tu0gsKBkF1yurG8rWJ+XV8pGi5pasqm3eoLQmh/nklmxtXWT7N0+r6R3 bSLD0lLsNHl04fySRLTalr9FZtOYX8JngJ2SuLFoJJOxaaoTdtrymaS8RvYa bVNs1a015bhY/Vu9MH9tYnv/y+27lCNweb7cuqDElujNSbCVOvIGtMVA6/y1 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 4j6v4G09vL6e98Lua7vXz6VFcgPvm1lUwa1q4qP1rILM/cjsb+ajdUVHj1Vd 68o8ysqred/Vvdaa6bp5X+rYXXJ1jTyaRyq0SGv6iZ4H+3Ryr7h4ZqjmM1cl zdzTY3pFpJvvyUbuz1othp08Buq0Nl39qxmvRRvTpc2T1Xm0eOvyQRVqst5U aY9XXZpv3do8XFy/mZe61jSZl9by1v4iooqvoBrPbCaspo73pkaF2p8b91/X DlF9z2agzqf33qrkI6/Qck0tX5NqbWfIXKcW112NDzfiCp5fnb166LJHzQK1 WmTI3IMV2uxdfMVquU4D3zdqJNbzlmN+FNeu7piSsXaNtip13BYWlS3aXlQz Rm23FXW81BO3XXu0x2N9Z1ehjbGc99DMvVzZJyqdsArlXX5lUV3RPb8qLed4 NBvVVfJwm9RMoK44s13d6R4ty6j7qEmLsJ68p9bW8fVw4JPSxXdJE7fDgyOP 7hNl6uiV3FsNfH+s7Z5F19is/Wpe7+CeaNTGYLtH9aKHt++yuKv3Bh5BdTzP ddk2Bkp5RlUt7D2Wh/u0yyfqrlGj5cfW9e7fpWn2ZES17NByTVdce7oz/3Le R09GcGk7u8sKtUXftVF11flU8hX0dHundyz4moNL2+ssSmuxbaX2/JZ/4gnW Qo28Eag/kq9YHY+rSr991/8Xc+/pvbJ77dSY6np69azbT2fQ+/na166JvdaI zUSdy4+fVl27rJKfEdjM3TyiLhYJjj6r7tSe1j9+Zrt5jmrQMhWztqX7Sar2 05WRLhZDgZxkXdpJdmqAJ9mZKGe5rAXLLv4s6XviZFL/radzzzG/9JyjWGZx XvRky/4g5Uo4i72fVPc6mYcSTwDjdGUiN3Sdsbqs9N92IW/T2yMsc/rXn8Gl Lfy8HvD5u4//3Zo/PtD28kWsE63iZHGiOFUcL2aJdvEysVDMRml/lNjFXJSl XWTMBdpbyAcQ+FvItEuaVSGTklS2q0hK9wqvvGgL9bmwknsB9xZx8Givv+ga zeRZzKU9Edbxvergf31OOTtzvzIc3vbzMzYC/58ZMUAUBYSwvPxpy6bPLJ07 Qx68onZtQ3XKYLkgT06RF5TOzZen5Bbly/mz81SNn+imct3UgHTTuG5aQLrp XDddLp5dMHVOXv7C3JnF+UXy4OKklJS0lNHslotmBtJTBu8po6snOT09oGbj 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 z66QZ7eJKQMKPLsy8HYM4vcLnl0hz24Th3LF3MO9EFfEAgwKPLtCnp1681Lg 2RXy7NR7lwLPrpBnt4mrsQo8u0Ke3SZ6DQWeXSHPbhO9hgLPrpBnt4mLwAo8 u0Ke3SZuS1Tg2RXy7DZxUVOBZ1fIs9tEn6LAsyuOt/kQ2eDuuXGIK+opyODZ FfLsNtGJKPDsCnl2m7iFU4FnV8iz28QtnAo8u8JJ8sQKlgo8u8I58sSQRoFn V3lS5KlH+wFXeTLkqaf7AVd5EuSJbIBnV3ny44lsgGdXOD2emN6khHskId4+ RmQDPLvCyfHEbacKPLvKkxtP/I7As6s8qfHU7wi4ypMZT/2OgKs8ifHU7wi4 ypMXT/yOwLOrvGnxxLbAVZ6seOL3C55d5UmKJ36/4NlVnpx4Yt+X7mmXOJ2U 2PfBsyucEU90iwo8u8IJ8US3qMCzK5kn04/YFrjC6fDEnAAFnl3hbHhimp9y T07FyfDEvHDlHp6Kc+GJXlK556fiVHiil1TuEao4E57oJZV7iipOhCd6SfX4 IFWcIEPsv+5ZqrhMjUENztzzVHGdGoManblnquIi8gY1PHPPVUWq3WlMZAtc u0Ku3WlMhAtku0KynRnE1TIFtl3hOvIGNbwD3a5wIXmDGt+Bb1e4krxBDfBA uCsk3J3G1MN63dN6MWHU8BCUu9KYMGp8CM5daUwYNcgD6a5wLXmDGuWBdVe4 mLxBDfNAu6s8B7FS4zzw7irPWazUQA/Eu8pzHCs10gPzrvKcyEoN9UC9q7yH slJPdQbC8pzLSg0UTfdMaEwYNVIE+a7ynM5KXFpVIN9VngNaiWurCuS7ynNG KzVIBfmu8DGtBjVKBfmu8EmtBjVMBfmu8GGtBjVOBfmu8HmtBjVQBfmu8JGt BjVSBfmu8KmtBjVUBfmu8MGtBjVWtdyTxzFh1GAV5LvCx7ca1GgV5LvCJ7ga xGV0BfJd4UNcDWqsC/Jd4XNcDWqwC/Jd4aNcDeJKugITr/BprgZxKV2Bllf4 QFeDGmeDl1f4TFeDmLirQMwrfKyrQY3SwcwrXELeoIbptnu+PSaMGKdrwz3j HhNGDNQ1yHltYMKIkboGO68NTBgxVNeg57WBCSPG6hr8vDYwYcRgXYOg1wYm jJhFoMHQawMTRkyV1qDotYEJI+ZKa3D02sCEEZOlNUh6bWDCiNnSGiy9Zpgw 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 74jbb51+NHFuj+datbXDG4SFdjB/f6lbqemfnyz/5vXYmIjz+X/pe23klalf d46Ln1GmVeaoM/GbzoSveri7xMZdWft29ZyScmvviRUZSflPxpf9eOnd8Z8V bPLujfCVCaPWZNde8lHfpxatnlAgcVbI5o/07Ir5FoRYC3asNBp+Uul7Y/He 3iXKr+78xvkbo4p/0iOiiHljevbbE6MDX8zX7ctvjiw79uNLb42o/mB90qKp QaLLmh61ihc1MvIJZygL9Q5jhWKbf/CVJ9Dj8cT/yVD8rwwZvrHPlkLqnNmS 6cRGzkOV89BI+498Dvh5wN/8/B9Dov3pM61V3bJuZp85fWDFjDeORLz/1JTP u4+v1/36mtQ7K1ZOHLDh+JrKowvv3r3oubd6VA756f6dKu9vuJ00bNW1qwsj vty544VujVasGyLCF/dOjx05v/ftpIkzDiSd+nLetwvbFR8W+0nK5Pj5M0tP WtI9/UDTvudPdPqg8d7fTw6rWq+p4Tl/5KXRM4p/16XCgkttCu+ZeDLrSPvZ A/fG7Z09YM7bPZ5vXfxS/UNdu/boGbNgSN1FW15tFvx62VLDvipwfM7ilFKX Wl9J+KP72sSpv9RsZ1pTdjVvVeqdtu9+dLv/wu9PFxzcL+2D4a9XeC1x1uWL PZvt++HC4OCDcZ7po9m7bxZeH7J13YGrN85UurqsV+xVM+qZz70hUYbf284V efNPcxffYHD1WOKyoe33t7kaGl02qOKC91Z8884ffzPyLct5tkpg+nwj/YNx fzmKzE9b+N8Y//4cLDznnfg1NZoYjTMbZkaMb4AmfoPc35M780tJTMh5tn5K anKfoXFpQ+rndIAc/h32ee6EsA2aiUYZkUajxzNR//ECfu/w4cP/6vfGp/75 F6b91ZzQOnZthjW327slu3dISjjjv/viugeHPmv9Yf0VL3cIPs43/jrgQvCD SuWGN1zUf9T6GWMnd7sZtfOVufEvTWzbbkxGyTuvDPk+a1u3vf4pX4cPfPLT mJKLJu3YdG7+vvlD339r8DOhOzp5Om349dXw4z3EgyPVRvWYc3zxg9s3I8ut 7Nj8w5Yn37JCuhRsdeMWm/DUp4Fvdi0RH/BT4XYH5heZPHvrseylBwqUqlZp w8bOk8of7DpeLdr7x/IJV5aZjTZFJZ4Nu9Hs07GrfrrRce38lp/Gb2svj+25 FBQXGDQiqe2jllvmXo56ccKJDwuNu/PCF3XOnX+567Pn+cirlV97u0jddW27 7vqscZcuK77df7Z+9v4rg+aZI1lG4A/OsHnS38/PSN/wPzM45hngfRo7M/0P o+TjG2oNP5Y/wPmenX+Uc5uFr75gACuCzbnz1n2PCrMnDPzTUkYVX8NA5vTb 6/cLD04cMXvrtu5NZ1ept2rz2F1Nthjp41GbImyEMSzz+XHPeiI9qZ4ET6xn oCfME+38ner8SfYMdx41ybXxfZz/18qTlvsvEjxxzqNOnnjn3wxxHiV7kpzH 3FPPIzzm/PBxVf8W+LSRKcn9UmNT+o/89xAzMMPPE/LazJoNyp6YNbtBx6nD Nm9qurVV+l6/cslBFQLOHHlv7SfL/HesGRi1tePY2Cf8ptfbkqXOVX3t7i/R 445U+r3o6gczx/fbUPBWRGbjAdu3vd5vz4CyQcWHv2IMPTdr6ncHP5z75p6u /d5tPKH58qP9fl+456MOQ7tMe+12u6wxn50cFl/p3H57WNHGD6pfubKm2Zjb Tb/2zE0oMWt54fLH1lxn7X4od2ZC2Je/ljt5OmnJzE6TX7reecbrYwoEPgq4 N2Bm6WdPspgiF6Zkzbs2fdKM4CKvLPik6MKY8lf/lf/gpulm4vrM6FM7bs9v nb05tfGCNaV+aHXuoeo/pEW73ftG9PLEXWaPHox8d0SVaVWv/rzPr9SLGd/P z3BipQy/B76vMYhl+F1xnrqUw3y//4jp/Au/WiSogPcN+DtDT+YLRhkMZGHf eo+fw+Pjn+RjRXODAJNJZhlMODOepzCPJQKLLe/ccVy3+VPnNO545MvUtb13 /wUClfrfYs9sqx5+9OUe32dEbKm6cXm55gWiZp7/ZfDDI02yv3pl+azEaeEH eatlrZOCj/Vpc/3DcTvrDG7cMmVds4SIjFrZn9wJV4N+LDts2rSV/vXLnKt7 aljTUQcjrx6PmVGz9s/7E3WFR5EVw7ovuHz0tnlgVMZH1+oNWPVbpWrvtDi7 d37c0SXffH4l/FK5X68v737tk8WHF/7Sb/nM+VNVmx+PPFrvuVvw++ozf249 JuzDdoM6XU55uv7oL5LUvjevLq19pHtK0fSQgx37Jcofyz/V8q1ODZ4dezLh 95fqjdt70C9j5r9SsoLW9r5RutOKa/WOHIl6FN2oV5Wae1Y2nt3xrVrhP/Ve dPk7UXL74Tb1+vTvOvrzEKf//x8uUbsgDQplbmRzdHJlYW0NZW5kb2JqDTYg MCBvYmoNPDwvRmlsdGVyL0ZsYXRlRGVjb2RlL0ZpcnN0IDQ2L0xlbmd0aCAz OTEvTiA3L1R5cGUvT2JqU3RtPj5zdHJlYW0NCmjelJFfS9xAFMW/yoW+KO16 Z+7kL4iQbNw2UC240i0seRjNNA5kk5CMrfvtvZOtKMKCfUom55655+QnCQRI BSGBDICSGGQISiiQEQQhSzE/EpAJRGkE5+f4Y6zNaLvmpKxN56zbn+KNaezk xv1JVvd35hTXj8PQmh3LIC4u2JNN9/6QqgizP83G1u4BVES41MM3Y5sHBzEl WJjD2IKkwFWrmwkU4arvXJ73T9uFTGjWQAohvKOaxZVtDYHiGjfz+VrvDGb5 sri8/JyNVrefSFzrcez/zvLmsDAQAkunW3ufdU1rQOB3o2vuxf3xSj8dQkre iWtndj85L97uBzPf4ZOOdnD9iL/+FaCQq26DLXEsGcttQqKquHquJ+MtRxIt y2K9n3hB2f3uQdLcgj/e9l/L4koP+PKXsdjMvd/t9+i8Zf1453w6tvoBn5Re 8+LGw+U5jsh4+aU6RiX9XyokguNUwg9Q+ZL3bX1A8RZQ/A7QIj2L34AhoV7A pB8AQ7GqngUYAP+j4dsNCmVuZHN0cmVhbQ1lbmRvYmoNNyAwIG9iag08PC9G aWx0ZXIvRmxhdGVEZWNvZGUvRmlyc3QgMTIvTGVuZ3RoIDE5OC9OIDIvVHlw ZS9PYmpTdG0+PnN0cmVhbQ0KaN6Ej80KwjAQhF8l4FFlG/GnghRarSiIB614 jk3QhbqRZEV8e5OC9uhlYZeZ+WblXCRilAgpU7FYQKG8WVtiyIvlqiz7uUPV 9EbJXjlnX7AyvjakFXEUeSGnwX2Akmqrka6w1YYY+T3cwPF54ffDQBVGApU9 EQaREePWEa8QM7LsL3VQ2EZvWTVYd6QzUk4ef/saneflTTkxSdvgWNXhg60T ctYyd6pT7NU98KddS/c01bdu6w8EzbfwYhrNWfYRYACpnGF+DQplbmRzdHJl YW0NZW5kb2JqDTggMCBvYmoNPDwvTGVuZ3RoIDMxNjEvU3VidHlwZS9YTUwv VHlwZS9NZXRhZGF0YT4+c3RyZWFtDQo8P3hwYWNrZXQgYmVnaW49Iu+7vyIg aWQ9Ilc1TTBNcENlaGlIenJlU3pOVGN6a2M5ZCI/Pgo8eDp4bXBtZXRhIHht bG5zOng9ImFkb2JlOm5zOm1ldGEvIiB4OnhtcHRrPSJBZG9iZSBYTVAgQ29y ZSA1LjQtYzAwNSA3OC4xNDczMjYsIDIwMTIvMDgvMjMtMTM6MDM6MDMgICAg ICAgICI+CiAgIDxyZGY6UkRGIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5v cmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyI+CiAgICAgIDxyZGY6RGVz Y3JpcHRpb24gcmRmOmFib3V0PSIiCiAgICAgICAgICAgIHhtbG5zOnhtcD0i aHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyIKICAgICAgICAgICAgeG1s bnM6cGRmPSJodHRwOi8vbnMuYWRvYmUuY29tL3BkZi8xLjMvIgogICAgICAg ICAgICB4bWxuczp4bXBNTT0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4w L21tLyIKICAgICAgICAgICAgeG1sbnM6ZGM9Imh0dHA6Ly9wdXJsLm9yZy9k Yy9lbGVtZW50cy8xLjEvIj4KICAgICAgICAgPHhtcDpDcmVhdGVEYXRlPjIw MTQtMDctMDdUMDc6MDU6Mjc8L3htcDpDcmVhdGVEYXRlPgogICAgICAgICA8 eG1wOkNyZWF0b3JUb29sPmNvbnZlcnRvbmxpbmVmcmVlLmNvbTwveG1wOkNy ZWF0b3JUb29sPgogICAgICAgICA8eG1wOk1vZGlmeURhdGU+MjAxNC0wNy0w N1QwODowNTo1NSswMTowMDwveG1wOk1vZGlmeURhdGU+CiAgICAgICAgIDx4 bXA6TWV0YWRhdGFEYXRlPjIwMTQtMDctMDdUMDg6MDU6NTUrMDE6MDA8L3ht cDpNZXRhZGF0YURhdGU+CiAgICAgICAgIDxwZGY6UHJvZHVjZXI+Y29udmVy dG9ubGluZWZyZWUuY29tPC9wZGY6UHJvZHVjZXI+CiAgICAgICAgIDx4bXBN TTpEb2N1bWVudElEPnV1aWQ6MTRlMDJkOGQtYWFlYi00YjY1LTgwMjUtYmJj NjM3NWI4ZjNiPC94bXBNTTpEb2N1bWVudElEPgogICAgICAgICA8eG1wTU06 SW5zdGFuY2VJRD51dWlkOmE5ZDdlNDcxLTM3NmEtNGJhZi1iMDlkLTZmMTM2 NjkxZjU5YjwveG1wTU06SW5zdGFuY2VJRD4KICAgICAgICAgPGRjOmZvcm1h dD5hcHBsaWNhdGlvbi9wZGY8L2RjOmZvcm1hdD4KICAgICAgPC9yZGY6RGVz Y3JpcHRpb24+CiAgIDwvcmRmOlJERj4KPC94OnhtcG1ldGE+CiAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAK ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgIAogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAog ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAKICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIAogICAgICAgICAgICAg ICAgICAgICAgICAgICAKPD94cGFja2V0IGVuZD0idyI/Pg0KZW5kc3RyZWFt DWVuZG9iag05IDAgb2JqDTw8L0ZpbHRlci9GbGF0ZURlY29kZS9GaXJzdCA1 L0xlbmd0aCA1NC9OIDEvVHlwZS9PYmpTdG0+PnN0cmVhbQ0KaN4yMlQwULCx 0XfOL80rUTDS985MKY42MgUKBimApIJi9UMqC1L1AxLTU4vt7AACDAAkNQzw DQplbmRzdHJlYW0NZW5kb2JqDTEwIDAgb2JqDTw8L0ZpbHRlci9GbGF0ZURl Y29kZS9GaXJzdCA1L0xlbmd0aCAxMDQvTiAxL1R5cGUvT2JqU3RtPj5zdHJl YW0NCmjeMjJSMFCwsdF3LkpNLMnMz3NJLEnVcLEyMjA0MTAHQ1Mj8yhNiHx+ kUZyfl5ZalFJfl5OZl5qWlFqql5yfq6mvm9+CrpOCwNTU1NtA0N1AwN1Tf2A ovyU0uRUXAbY2QEEGAALcip+DQplbmRzdHJlYW0NZW5kb2JqDTExIDAgb2Jq DTw8L0RlY29kZVBhcm1zPDwvQ29sdW1ucyA1L1ByZWRpY3RvciAxMj4+L0Zp bHRlci9GbGF0ZURlY29kZS9JRFs8NDRGNEQxNzA4RDQyMUY0NzkwMDIzRUZB MEU5MUFEMjE+PDAyNDdFMUE1RjI2NTdBNDNBMTM5MUU2RDlFMjY0NjZFPl0v SW5mbyAyMiAwIFIvTGVuZ3RoIDc2L1Jvb3QgMjQgMCBSL1NpemUgMjMvVHlw ZS9YUmVmL1dbMSAzIDFdPj5zdHJlYW0NCmjeYmIAASZGppNfGZiADBsQKRgB JBl9DUBsRjUQ6X8ALPsULKICInmXgUiGSWCRY0AT/pYlgEUYGAmTjL8QbKb/ YBEGgAADAG97CzsNCmVuZHN0cmVhbQ1lbmRvYmoNc3RhcnR4cmVmDQoxMTYN CiUlRU9GDQo= ------=_NextPart_000_00A9_01C2A9A6.210A6442-- From jan.de.kruyf@gmail.com Mon Jul 7 03:06:13 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=FREEMAIL_FROM,T_DKIM_INVALID autolearn=ham version=3.3.1 X-Original-To: xfs@oss.sgi.com Delivered-To: xfs@oss.sgi.com Received: from relay.sgi.com (relay1.corp.sgi.com [137.38.102.111]) by oss.sgi.com (Postfix) with ESMTP id A63CC7F3F for ; Mon, 7 Jul 2014 03:06:13 -0500 (CDT) Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by relay1.corp.sgi.com (Postfix) with ESMTP id 6DAA38F8033 for ; Mon, 7 Jul 2014 01:06:09 -0700 (PDT) X-ASG-Debug-ID: 1404720367-04bdf0566783c570001-NocioJ Received: from mail-qg0-f51.google.com (mail-qg0-f51.google.com [209.85.192.51]) by cuda.sgi.com with ESMTP id C52hyca0e2OjGfmf (version=TLSv1 cipher=RC4-SHA bits=128 verify=NO) for ; Mon, 07 Jul 2014 01:06:07 -0700 (PDT) X-Barracuda-Envelope-From: jan.de.kruyf@gmail.com X-Barracuda-Apparent-Source-IP: 209.85.192.51 X-Barracuda-IPDD: Level1 [gmail.com/209.85.192.51] Received: by mail-qg0-f51.google.com with SMTP id z60so3314863qgd.38 for ; Mon, 07 Jul 2014 01:06:06 -0700 (PDT) X-Barracuda-IPDD: Level1 [gmail.com/209.85.192.51] X-Barracuda-IPDD: Level1 [gmail.com/209.85.192.51] DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :content-type; bh=ZXgbjosp8Nkq4XTYYGznssoR0mRKda0tK8VUbgDdPBA=; b=zfEGgaRO2Wp9r9p0LbxlsditibwjwJrO62JUVOwAceDdr9uS5I9ojVUlBuK6rSZPG8 dvZPZZmeXXRqDfiVPNJuV4bqRKNoasXoyaYKQUuQLitf27jaKEUueCM69jxHLPbd25JB A4N7tkXhTslV+ZZ+7lFx0QTJlcnj2S+CWSHWSSrbsrxdjrT8Gk3590Q1OZdSfUi/Prps O37yF5sMixcnd0pxt38NO485H/DrOXDzCmB9ZIjfGHfC/NBKnSO1ZrkUD9o9/O6vopFP 7uaxq3LXywReOKknXOQIQSCrqHt5sAWGXvMmFkAE5HV4Hb9dkcsLKpgY2gDMU0v3NKgp 0bKg== MIME-Version: 1.0 X-Received: by 10.140.87.163 with SMTP id r32mr40083683qgd.75.1404719993532; Mon, 07 Jul 2014 00:59:53 -0700 (PDT) Received: by 10.96.221.42 with HTTP; Mon, 7 Jul 2014 00:59:53 -0700 (PDT) In-Reply-To: <20140706235701.GQ9508@dastard> References: <20140706235701.GQ9508@dastard> Date: Mon, 7 Jul 2014 09:59:53 +0200 Message-ID: Subject: Re: Data loss XFS with RT kernel on Debian. From: Jan de Kruyf X-ASG-Orig-Subj: Re: Data loss XFS with RT kernel on Debian. To: xfs@oss.sgi.com Content-Type: text/plain; charset=UTF-8 X-Barracuda-Connect: mail-qg0-f51.google.com[209.85.192.51] X-Barracuda-Start-Time: 1404720367 X-Barracuda-Encrypted: RC4-SHA X-Barracuda-URL: http://192.48.157.11:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 X-Barracuda-Spam-Score: 0.00 X-Barracuda-Spam-Status: No, SCORE=0.00 using per-user scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.7 tests=DKIM_SIGNED, DKIM_VERIFIED X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.7308 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- -0.00 DKIM_VERIFIED Domain Keys Identified Mail: signature passes verification 0.00 DKIM_SIGNED Domain Keys Identified Mail: message has a signature I tend to agree with Dave that is is an RT problem, however just for your info: Kernel 3.2 (the stock Debian kernel) works in both versions, the plain vanilla and the RT. On Debugging this prob: will it be helpful for any of the parties involved if I rig up a serial link and try to get a stacktrace of all processes with SysRq ? Does that also give kernel processes? Cause Top tells me nothing. ( I am a bit fresh to this but willing to try) Cheers j. On Mon, Jul 7, 2014 at 1:57 AM, Dave Chinner wrote: > On Sat, Jul 05, 2014 at 02:41:06PM +0200, Jan de Kruyf wrote: >> Hallo, >> >> While doing a reasonably high density job like rsynching a subdirectory >> from one place to another, or tarring it to a pipe and untarring it at the >> other end, I note that the cpu usage goes practically to 100% and when I >> after 5 minutes or so I reset the computer the writing has not finished at >> all. >> However on the stock Debian kernel it works without a problem. > > Which says that it's a RT kernel problem, not an XFS issue. There > have been other recent reports of issues with RT kernels, and they > have proven to be core RT kernel bugs, not filesystem issues. I'd > suggest that you are likely to be seeing the same RT issues.... > > Cheers, > > Dave. > -- > Dave Chinner > david@fromorbit.com From david@fromorbit.com Mon Jul 7 04:43:49 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: xfs@oss.sgi.com Delivered-To: xfs@oss.sgi.com Received: from relay.sgi.com (relay3.corp.sgi.com [198.149.34.15]) by oss.sgi.com (Postfix) with ESMTP id A638A7F3F for ; Mon, 7 Jul 2014 04:43:49 -0500 (CDT) Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by relay3.corp.sgi.com (Postfix) with ESMTP id 36760AC001 for ; Mon, 7 Jul 2014 02:43:45 -0700 (PDT) X-ASG-Debug-ID: 1404726219-04cbb065362f6d80001-NocioJ Received: from ipmail06.adl6.internode.on.net (ipmail06.adl6.internode.on.net [150.101.137.145]) by cuda.sgi.com with ESMTP id erYiXU99bSfCcl7T for ; Mon, 07 Jul 2014 02:43:40 -0700 (PDT) X-Barracuda-Envelope-From: david@fromorbit.com X-Barracuda-Apparent-Source-IP: 150.101.137.145 X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: AqdbAG1rulN5LA/TPGdsb2JhbABagw6DSoUIpCoBAQEDBppcAYERFwQBAQEBODWEAwEBBTocIxAIAxgJJQ8FJQMHGhOIQclhFxiFWIkyB4MtgRYFmnWXYis Received: from ppp121-44-15-211.lns20.syd6.internode.on.net (HELO dastard) ([121.44.15.211]) by ipmail06.adl6.internode.on.net with ESMTP; 07 Jul 2014 19:13:37 +0930 Received: from dave by dastard with local (Exim 4.80) (envelope-from ) id 1X45SQ-0000De-Qf; Mon, 07 Jul 2014 19:43:34 +1000 Date: Mon, 7 Jul 2014 19:43:34 +1000 From: Dave Chinner To: Jan de Kruyf Cc: xfs@oss.sgi.com Subject: Re: Data loss XFS with RT kernel on Debian. Message-ID: <20140707094334.GA4453@dastard> X-ASG-Orig-Subj: Re: Data loss XFS with RT kernel on Debian. References: <20140706235701.GQ9508@dastard> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.5.21 (2010-09-15) X-Barracuda-Connect: ipmail06.adl6.internode.on.net[150.101.137.145] X-Barracuda-Start-Time: 1404726220 X-Barracuda-URL: http://192.48.176.25:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 X-Barracuda-Spam-Score: 0.00 X-Barracuda-Spam-Status: No, SCORE=0.00 using per-user scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.7 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.7310 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- On Mon, Jul 07, 2014 at 09:59:53AM +0200, Jan de Kruyf wrote: > I tend to agree with Dave that is is an RT problem, however just for your info: > > Kernel 3.2 (the stock Debian kernel) works in both versions, the plain > vanilla and the RT. > On Debugging this prob: will it be helpful for any of the parties > involved if I rig up a serial link and try to get a stacktrace of all > processes with SysRq ? Does that also give kernel processes? Cause Top > tells me nothing. > ( I am a bit fresh to this but willing to try) Best to start for reading the archives to see the issues and resolutoins for the problems that Austin Schuh has been having with recent debian RT kernels - it starts with "XFS Crash" in early March, and there are other issues from there - the thread migrates to LKML as core RT problems are diagnosed... See if the patches for the issues he hit solve your problem, and if not the threads should give you an idea of who to talk to about the RT issue... Cheers, Dave. -- Dave Chinner david@fromorbit.com From BATV+ab78ac900d95ead7d7ab+3970+infradead.org+hch@bombadil.srs.infradead.org Mon Jul 7 05:05:29 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: xfs@oss.sgi.com Delivered-To: xfs@oss.sgi.com Received: from relay.sgi.com (relay1.corp.sgi.com [137.38.102.111]) by oss.sgi.com (Postfix) with ESMTP id 16A2E7F3F for ; Mon, 7 Jul 2014 05:05:29 -0500 (CDT) Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by relay1.corp.sgi.com (Postfix) with ESMTP id E7A7D8F8040 for ; Mon, 7 Jul 2014 03:05:28 -0700 (PDT) X-ASG-Debug-ID: 1404727523-04cb6c76cf4c78c0001-NocioJ Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.9]) by cuda.sgi.com with ESMTP id xzzgDoCe4mF5wmnI (version=TLSv1 cipher=AES256-SHA bits=256 verify=NO) for ; Mon, 07 Jul 2014 03:05:23 -0700 (PDT) X-Barracuda-Envelope-From: BATV+ab78ac900d95ead7d7ab+3970+infradead.org+hch@bombadil.srs.infradead.org X-Barracuda-Apparent-Source-IP: 198.137.202.9 Received: from hch by bombadil.infradead.org with local (Exim 4.80.1 #2 (Red Hat Linux)) id 1X45nX-00022F-3M; Mon, 07 Jul 2014 10:05:23 +0000 Date: Mon, 7 Jul 2014 03:05:23 -0700 From: Christoph Hellwig To: Dave Chinner Cc: Christoph Hellwig , xfs@oss.sgi.com Subject: Re: [PATCH 4/6] libxfs: reused invalidated buffers leak state and data Message-ID: <20140707100523.GA3544@infradead.org> X-ASG-Orig-Subj: Re: [PATCH 4/6] libxfs: reused invalidated buffers leak state and data References: <1404453435-1915-1-git-send-email-david@fromorbit.com> <1404453435-1915-5-git-send-email-david@fromorbit.com> <20140704141509.GB29520@infradead.org> <20140704222210.GM9508@dastard> <20140705094807.GB18130@infradead.org> <20140706235444.GP9508@dastard> <20140707000929.GR9508@dastard> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20140707000929.GR9508@dastard> User-Agent: Mutt/1.5.23 (2014-03-12) X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: bombadil.infradead.org[198.137.202.9] X-Barracuda-Start-Time: 1404727523 X-Barracuda-Encrypted: AES256-SHA X-Barracuda-URL: http://192.48.176.15:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 X-Barracuda-Spam-Score: 0.00 X-Barracuda-Spam-Status: No, SCORE=0.00 using per-user scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.7 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.7310 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- On Mon, Jul 07, 2014 at 10:09:29AM +1000, Dave Chinner wrote: > Is that sufficient for the moment? Looks good to me. From jan.de.kruyf@gmail.com Mon Jul 7 05:39:34 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=FREEMAIL_FROM,T_DKIM_INVALID autolearn=ham version=3.3.1 X-Original-To: xfs@oss.sgi.com Delivered-To: xfs@oss.sgi.com Received: from relay.sgi.com (relay3.corp.sgi.com [198.149.34.15]) by oss.sgi.com (Postfix) with ESMTP id E75207F3F for ; Mon, 7 Jul 2014 05:39:33 -0500 (CDT) Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by relay3.corp.sgi.com (Postfix) with ESMTP id 87BD3AC002 for ; Mon, 7 Jul 2014 03:39:30 -0700 (PDT) X-ASG-Debug-ID: 1404729565-04bdf056688433b0001-NocioJ Received: from mail-qa0-f46.google.com (mail-qa0-f46.google.com [209.85.216.46]) by cuda.sgi.com with ESMTP id iQHal9b6BMBUINMN (version=TLSv1 cipher=RC4-SHA bits=128 verify=NO) for ; Mon, 07 Jul 2014 03:39:25 -0700 (PDT) X-Barracuda-Envelope-From: jan.de.kruyf@gmail.com X-Barracuda-Apparent-Source-IP: 209.85.216.46 X-Barracuda-IPDD: Level1 [gmail.com/209.85.216.46] Received: by mail-qa0-f46.google.com with SMTP id i13so3278885qae.33 for ; Mon, 07 Jul 2014 03:39:24 -0700 (PDT) X-Barracuda-IPDD: Level1 [gmail.com/209.85.216.46] X-Barracuda-IPDD: Level1 [gmail.com/209.85.216.46] DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:date:message-id:subject:from:to:content-type; bh=s9l9Bb3O/+QCl2+FCoDmmngAB1UzkFV8jvlXShM0zzU=; b=yL1PeupQ9C6Prg1ZnQlcbevf2xKqYGBuoubJ5ZOXdRN6lPGRxb5VaPALLoGYPm487P ZKlvfu7bH/AWMiJ9q/jUsDy1Wu6lpUQTFDbSQuBL4MrsoLBnA5W1hWinPWnLYaokAgt0 MBDRotOIJv/sbKIHr4q6yUXRAv7o4/AEHeoFLtkz8dmNliV+nDcN1Vy7SBrYcGw6yQci 53zIyKmvqvUajdVt8G8atJXEUI5FNOy+Ay5i0jFxLTopRK7/o7CRrd0lrzY0c9p2AT7A CUq9jjBGQPDULQb5Bvb/JCU2jTui1YTaOBkV5r9MdyoDOPr8XmLLxKzYOwRLuzRVRocu zpog== MIME-Version: 1.0 X-Received: by 10.140.96.38 with SMTP id j35mr42754497qge.5.1404729564723; Mon, 07 Jul 2014 03:39:24 -0700 (PDT) Received: by 10.96.221.42 with HTTP; Mon, 7 Jul 2014 03:39:24 -0700 (PDT) Date: Mon, 7 Jul 2014 12:39:24 +0200 Message-ID: Subject: Re: Data loss XFS with RT kernel on Debian. From: Jan de Kruyf X-ASG-Orig-Subj: Re: Data loss XFS with RT kernel on Debian. To: xfs@oss.sgi.com Content-Type: text/plain; charset=UTF-8 X-Barracuda-Connect: mail-qa0-f46.google.com[209.85.216.46] X-Barracuda-Start-Time: 1404729565 X-Barracuda-Encrypted: RC4-SHA X-Barracuda-URL: http://192.48.157.11:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 X-Barracuda-Spam-Score: 0.00 X-Barracuda-Spam-Status: No, SCORE=0.00 using per-user scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.7 tests=DKIM_SIGNED, DKIM_VERIFIED X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.7311 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- -0.00 DKIM_VERIFIED Domain Keys Identified Mail: signature passes verification 0.00 DKIM_SIGNED Domain Keys Identified Mail: message has a signature I did post the prob in the Austin Schuh thread in the RT mailing list. I believe they know what Austins problem is, but Thomas G. is a bit busy it seems at the moment. And I did start reading that thread also. In any case kernel 3.2-rt works great with good latencies, so we will stick to that for the time being. It was just 'feature inflation' that made me move to a later kernel. Not always a good idea. Thanks for your prompt answers. j. From Yaniv.Kaul@emc.com Mon Jul 7 06:01:11 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=HTML_MESSAGE,T_DKIM_INVALID autolearn=ham version=3.3.1 X-Original-To: xfs@oss.sgi.com Delivered-To: xfs@oss.sgi.com Received: from relay.sgi.com (relay3.corp.sgi.com [198.149.34.15]) by oss.sgi.com (Postfix) with ESMTP id 4DB367F3F for ; Mon, 7 Jul 2014 06:01:11 -0500 (CDT) Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by relay3.corp.sgi.com (Postfix) with ESMTP id C5E0BAC003 for ; Mon, 7 Jul 2014 04:01:07 -0700 (PDT) X-ASG-Debug-ID: 1404730865-04cbb065382f9c60001-NocioJ Received: from mailuogwhop.emc.com (mailuogwhop.emc.com [168.159.213.141]) by cuda.sgi.com with ESMTP id WOi5qx2zCL0WLO7J (version=TLSv1 cipher=AES256-SHA bits=256 verify=NO) for ; Mon, 07 Jul 2014 04:01:06 -0700 (PDT) X-Barracuda-Envelope-From: Yaniv.Kaul@emc.com X-Barracuda-Apparent-Source-IP: 168.159.213.141 Received: from maildlpprd06.lss.emc.com (maildlpprd06.lss.emc.com [10.253.24.38]) by mailuogwprd04.lss.emc.com (Sentrion-MTA-4.3.0/Sentrion-MTA-4.3.0) with ESMTP id s67B15lL013797 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO) for ; Mon, 7 Jul 2014 07:01:05 -0400 X-DKIM: OpenDKIM Filter v2.4.3 mailuogwprd04.lss.emc.com s67B15lL013797 DKIM-Signature: v=1; a=rsa-sha1; c=relaxed/relaxed; d=emc.com; s=jan2013; t=1404730865; bh=V5fLjE/ueeZodBdlrcYef5yjzyg=; h=From:To:Date:Subject:Message-ID:Content-Type:MIME-Version; b=GYwpcAcSeHCblXjv2s8sh1nYFq/1Z0e9hwE1rjL4iDQsqaBt10akgtxCx25VX4dwr gCpmrmbF9nphPT7iCBj6mvpw4ixYzXxJbpFgd9gSTREmpNITgI7/sXWjAG0vMtr3pJ V9ipqgFkPQunWniBl/kWo2QJfEapq4L5HCJZ1fXY= X-DKIM: OpenDKIM Filter v2.4.3 mailuogwprd04.lss.emc.com s67B15lL013797 Received: from mailusrhubprd54.lss.emc.com (mailusrhubprd54.lss.emc.com [10.106.48.19]) by maildlpprd06.lss.emc.com (RSA Interceptor) for ; Mon, 7 Jul 2014 04:00:49 -0700 Received: from mxhub36.corp.emc.com (mxhub36.corp.emc.com [10.254.93.84]) by mailusrhubprd54.lss.emc.com (Sentrion-MTA-4.3.0/Sentrion-MTA-4.3.0) with ESMTP id s67B0mS9008751 (version=TLSv1/SSLv3 cipher=AES128-SHA bits=128 verify=FAIL) for ; Mon, 7 Jul 2014 07:00:49 -0400 Received: from mx19a.corp.emc.com ([169.254.1.95]) by mxhub36.corp.emc.com ([::1]) with mapi; Mon, 7 Jul 2014 07:00:48 -0400 From: "Kaul, Yaniv" To: "xfs@oss.sgi.com" Date: Mon, 7 Jul 2014 07:00:57 -0400 Subject: git clone over http? (specifically, for xfstest) Thread-Topic: git clone over http? (specifically, for xfstest) X-ASG-Orig-Subj: git clone over http? (specifically, for xfstest) Thread-Index: Ac+Z0mqMMxTkA0/DQxC32LN9+Gighg== Message-ID: <648473255763364B961A02AC3BE1060D03B92D3E5D@MX19A.corp.emc.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: acceptlanguage: en-US Content-Type: multipart/alternative; boundary="_000_648473255763364B961A02AC3BE1060D03B92D3E5DMX19Acorpemcc_" MIME-Version: 1.0 X-Sentrion-Hostname: mailusrhubprd54.lss.emc.com X-RSA-Classifications: public X-Barracuda-Connect: mailuogwhop.emc.com[168.159.213.141] X-Barracuda-Start-Time: 1404730866 X-Barracuda-Encrypted: AES256-SHA X-Barracuda-URL: http://192.48.176.25:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 X-Barracuda-Spam-Score: 0.02 X-Barracuda-Spam-Status: No, SCORE=0.02 using per-user scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.7 tests=DKIM_SIGNED, DKIM_VERIFIED, HTML_MESSAGE, THREAD_INDEX, THREAD_TOPIC X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.7311 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.01 THREAD_INDEX thread-index: AcO7Y8iR61tzADqsRmmc5wNiFHEOig== 0.01 THREAD_TOPIC Thread-Topic: ...(Japanese Subject)... -0.00 DKIM_VERIFIED Domain Keys Identified Mail: signature passes verification 0.00 DKIM_SIGNED Domain Keys Identified Mail: message has a signature 0.00 HTML_MESSAGE BODY: HTML included in message --_000_648473255763364B961A02AC3BE1060D03B92D3E5DMX19Acorpemcc_ Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable Is there a way to clone the XFSTest git over HTTP? Our enterprise kinda blocks git protocol :( If there's some up-to-date mirror in Github, that'll be great. Thanks in advance, Yaniv. --_000_648473255763364B961A02AC3BE1060D03B92D3E5DMX19Acorpemcc_ Content-Type: text/html; charset="us-ascii" Content-Transfer-Encoding: quoted-printable

Is there a way t= o clone the XFSTest git over HTTP?

Our e= nterprise kinda blocks git protocol L=

 

If there’s some up-to-date mirror in Github, that’ll = be great.

 

Thanks in advance,

Yaniv.

= --_000_648473255763364B961A02AC3BE1060D03B92D3E5DMX19Acorpemcc_-- From bfoster@redhat.com Mon Jul 7 09:30:21 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: xfs@oss.sgi.com Delivered-To: xfs@oss.sgi.com Received: from relay.sgi.com (relay1.corp.sgi.com [137.38.102.111]) by oss.sgi.com (Postfix) with ESMTP id C7B7B7F3F for ; Mon, 7 Jul 2014 09:30:21 -0500 (CDT) Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by relay1.corp.sgi.com (Postfix) with ESMTP id A642D8F8071 for ; Mon, 7 Jul 2014 07:30:21 -0700 (PDT) X-ASG-Debug-ID: 1404743419-04cbb06535303770001-NocioJ Received: from mx1.redhat.com (mx1.redhat.com [209.132.183.28]) by cuda.sgi.com with ESMTP id M9SxydNP3GKCTsZO (version=TLSv1 cipher=AES256-SHA bits=256 verify=NO); Mon, 07 Jul 2014 07:30:20 -0700 (PDT) X-Barracuda-Envelope-From: bfoster@redhat.com X-Barracuda-Apparent-Source-IP: 209.132.183.28 X-ASG-Whitelist: Client Received: from int-mx11.intmail.prod.int.phx2.redhat.com (int-mx11.intmail.prod.int.phx2.redhat.com [10.5.11.24]) by mx1.redhat.com (8.14.4/8.14.4) with ESMTP id s67EUJeo014477 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Mon, 7 Jul 2014 10:30:19 -0400 Received: from laptop.bfoster (vpn-61-213.rdu2.redhat.com [10.10.61.213]) by int-mx11.intmail.prod.int.phx2.redhat.com (8.14.4/8.14.4) with ESMTP id s67EUHUM012207 (version=TLSv1/SSLv3 cipher=AES128-GCM-SHA256 bits=128 verify=NO); Mon, 7 Jul 2014 10:30:18 -0400 Date: Mon, 7 Jul 2014 10:30:17 -0400 From: Brian Foster To: Mark Tinguely Cc: xfs@oss.sgi.com Subject: Re: [PATCH 1/5] xfs: remove efi from AIL in log recovery Message-ID: <20140707143016.GA4123@laptop.bfoster> X-ASG-Orig-Subj: Re: [PATCH 1/5] xfs: remove efi from AIL in log recovery References: <20140702143206.438456679@sgi.com> <20140702144139.620473576@sgi.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20140702144139.620473576@sgi.com> User-Agent: Mutt/1.5.23 (2014-03-12) X-Scanned-By: MIMEDefang 2.68 on 10.5.11.24 X-Barracuda-Connect: mx1.redhat.com[209.132.183.28] X-Barracuda-Start-Time: 1404743420 X-Barracuda-Encrypted: AES256-SHA X-Barracuda-URL: http://192.48.176.25:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 On Wed, Jul 02, 2014 at 09:32:07AM -0500, Mark Tinguely wrote: > The log recovery functions xlog_recover_process_efi{s} are > responsible for freeing extents that did not complete in > xfs_bmap_finish before a forced shutdown or system crash. > If the extent removal fails in log recovery, then the EFI > will stay on the AIL and is will hang the filesystem > requiring a system reboot. > > This patch removes the special log recovery flag, XFS_EFI_RECOVERED. > That flag used to be used to decrement the EFI/EFD counter. Instead > call the decrement function just like we do in the log IOP sequence. > > Remove all other unprocessed EFIs from the log recovery AIL > when one is discovered in error. > > Signed-off-by: Mark Tinguely > --- This one mostly looks Ok to me, a few minor comments follow... > fs/xfs/xfs_extfree_item.c | 54 +++++++++++++++++++++++-------------- > fs/xfs/xfs_extfree_item.h | 5 --- > fs/xfs/xfs_log_recover.c | 67 ++++++++++++++++++++++++++-------------------- > fs/xfs/xfs_trans.h | 1 > 4 files changed, 73 insertions(+), 54 deletions(-) > > Index: b/fs/xfs/xfs_extfree_item.c > =================================================================== > --- a/fs/xfs/xfs_extfree_item.c > +++ b/fs/xfs/xfs_extfree_item.c > @@ -62,9 +62,15 @@ __xfs_efi_release( > > if (atomic_dec_and_test(&efip->efi_refcount)) { > spin_lock(&ailp->xa_lock); > - /* xfs_trans_ail_delete() drops the AIL lock. */ > - xfs_trans_ail_delete(ailp, &efip->efi_item, > - SHUTDOWN_LOG_IO_ERROR); > + /* > + * The EFI may not be on the AIL on abort. > + * xfs_trans_ail_delete() drops the AIL lock. > + */ > + if (efip->efi_item.li_flags & XFS_LI_IN_AIL) > + xfs_trans_ail_delete(ailp, &efip->efi_item, > + SHUTDOWN_LOG_IO_ERROR); > + else > + spin_unlock(&ailp->xa_lock); > xfs_efi_item_free(efip); > } > } > @@ -134,9 +140,10 @@ xfs_efi_item_pin( > * remove the EFI it's because the transaction has been cancelled and by > * definition that means the EFI cannot be in the AIL so remove it from the > * transaction and free it. Otherwise coordinate with xfs_efi_release() > - * to determine who gets to free the EFI. > + * to determine who gets to free the EFI. Call from log recovery of EFI > + * entries so the EFD or error handling will remove the entry. > */ > -STATIC void > +void > xfs_efi_item_unpin( > struct xfs_log_item *lip, > int remove) > @@ -147,8 +154,6 @@ xfs_efi_item_unpin( > ASSERT(!(lip->li_flags & XFS_LI_IN_AIL)); > if (lip->li_desc) > xfs_trans_del_item(lip); > - xfs_efi_item_free(efip); > - return; > } > __xfs_efi_release(efip); > } > @@ -168,12 +173,17 @@ xfs_efi_item_push( > return XFS_ITEM_PINNED; > } > > +/* > + * Remove EFI entry on abort. > + */ > STATIC void > xfs_efi_item_unlock( > struct xfs_log_item *lip) > { > - if (lip->li_flags & XFS_LI_ABORTED) > - xfs_efi_item_free(EFI_ITEM(lip)); > + if (lip->li_flags & XFS_LI_ABORTED) { > + ASSERT(!(lip->li_flags & XFS_LI_IN_AIL)); > + __xfs_efi_release(EFI_ITEM(lip)); > + } > } > > /* > @@ -313,10 +323,6 @@ xfs_efi_release(xfs_efi_log_item_t *efip > { > ASSERT(atomic_read(&efip->efi_next_extent) >= nextents); > if (atomic_sub_and_test(nextents, &efip->efi_next_extent)) { > - /* recovery needs us to drop the EFI reference, too */ > - if (test_bit(XFS_EFI_RECOVERED, &efip->efi_flags)) > - __xfs_efi_release(efip); > - > __xfs_efi_release(efip); > /* efip may now have been freed, do not reference it again. */ > } > @@ -420,8 +426,17 @@ STATIC void > xfs_efd_item_unlock( > struct xfs_log_item *lip) > { > - if (lip->li_flags & XFS_LI_ABORTED) > - xfs_efd_item_free(EFD_ITEM(lip)); > + struct xfs_efd_log_item *efdp = EFD_ITEM(lip); > + > + if (!(lip->li_flags & XFS_LI_ABORTED)) > + return; > + > + /* Free the EFI when aborting a commit. The EFI will be either > + * added to the AIL in a CIL push before this abort or unlocked > + * before the EFD unlock. > + */ > + xfs_efi_release(efdp->efd_efip, efdp->efd_format.efd_nextents); > + xfs_efd_item_free(efdp); Given that the goal here is to lose the special efi handling and use the common helpers, it seems like it also makes sense now to call xfs_efi_release() in xfs_recover_efd_pass2() rather than open coding it. > } > > /* > @@ -439,12 +454,11 @@ xfs_efd_item_committed( > struct xfs_efd_log_item *efdp = EFD_ITEM(lip); > > /* > - * If we got a log I/O error, it's always the case that the LR with the > - * EFI got unpinned and freed before the EFD got aborted. > + * EFI and EFDs can be in different CIL pushes. Therefore the EFI could > + * be on the AIL when an abort occurs, so try to release the EFI in > + * all cases. > */ > - if (!(lip->li_flags & XFS_LI_ABORTED)) > - xfs_efi_release(efdp->efd_efip, efdp->efd_format.efd_nextents); > - > + xfs_efi_release(efdp->efd_efip, efdp->efd_format.efd_nextents); > xfs_efd_item_free(efdp); > return (xfs_lsn_t)-1; > } > Index: b/fs/xfs/xfs_extfree_item.h > =================================================================== > --- a/fs/xfs/xfs_extfree_item.h > +++ b/fs/xfs/xfs_extfree_item.h > @@ -29,11 +29,6 @@ struct kmem_zone; > #define XFS_EFI_MAX_FAST_EXTENTS 16 > > /* > - * Define EFI flag bits. Manipulated by set/clear/test_bit operators. > - */ > -#define XFS_EFI_RECOVERED 1 > - > -/* > * This is the "extent free intention" log item. It is used to log the fact > * that some extents need to be free. It is used in conjunction with the > * "extent free done" log item described below. > Index: b/fs/xfs/xfs_log_recover.c > =================================================================== > --- a/fs/xfs/xfs_log_recover.c > +++ b/fs/xfs/xfs_log_recover.c > @@ -3093,6 +3093,12 @@ xlog_recover_efi_pass2( > * xfs_trans_ail_update() drops the AIL lock. > */ > xfs_trans_ail_update(log->l_ailp, &efip->efi_item, lsn); > + > + /* > + * Decrement the EFI/EFD counter so the EFI is removed after > + * processing the EFD or error handling in the caller. > + */ > + xfs_efi_item_unpin(&efip->efi_item, 0); > return 0; > } > > @@ -3635,6 +3641,8 @@ xlog_recover_process_data( > /* > * Process an extent free intent item that was recovered from > * the log. We need to free the extents that it describes. > + * The processing of the EFD will free the EFI and remove it from the AIL. > + * The caller will remove any other EFIs on the the AIL. > */ > STATIC int > xlog_recover_process_efi( > @@ -3648,8 +3656,6 @@ xlog_recover_process_efi( > xfs_extent_t *extp; > xfs_fsblock_t startblock_fsb; > > - ASSERT(!test_bit(XFS_EFI_RECOVERED, &efip->efi_flags)); > - > /* > * First check the validity of the extents described by the > * EFI. If any are bad, then assume that all are bad and > @@ -3663,13 +3669,8 @@ xlog_recover_process_efi( > (extp->ext_len == 0) || > (startblock_fsb >= mp->m_sb.sb_dblocks) || > (extp->ext_len >= mp->m_sb.sb_agblocks)) { > - /* > - * This will pull the EFI from the AIL and > - * free the memory associated with it. > - */ > - set_bit(XFS_EFI_RECOVERED, &efip->efi_flags); > - xfs_efi_release(efip, efip->efi_format.efi_nextents); > - return XFS_ERROR(EIO); > + error = XFS_ERROR(EIO); > + goto return_free; This bit doesn't apply to for-next. I get similar problems with less trivial hunks on the subsequent patch as well. Looks like you might need to rebase the series onto the recent error negation patches..? > } > } > > @@ -3682,45 +3683,58 @@ xlog_recover_process_efi( > for (i = 0; i < efip->efi_format.efi_nextents; i++) { > extp = &(efip->efi_format.efi_extents[i]); > error = xfs_free_extent(tp, extp->ext_start, extp->ext_len); > - if (error) > - goto abort_error; > xfs_trans_log_efd_extent(tp, efdp, extp->ext_start, > extp->ext_len); > + if (error) { > + /* The error may be the first extent or there may the > + * EFD may be dirty on the transaction by another > + * extent. Make the EFD dirty on the transactions > + * so the xfs_trans_cancel frees EFI/EFD and removes > + * EFI from AIL. > + */ I can't quite follow this comment. Is it referring to the unconditional xfs_trans_log_efd_extent() call? If so, it might make more sense to move it before that call. Brian > + xfs_trans_cancel(tp, XFS_TRANS_ABORT); > + return error; > + } > } > > - set_bit(XFS_EFI_RECOVERED, &efip->efi_flags); > error = xfs_trans_commit(tp, 0); > - return error; > + if (error) > + goto return_free; > + return 0; > > abort_error: > xfs_trans_cancel(tp, XFS_TRANS_ABORT); > +return_free: > + xfs_efi_release(efip, efip->efi_format.efi_nextents); > return error; > } > > /* > * When this is called, all of the EFIs which did not have > - * corresponding EFDs should be in the AIL. What we do now > - * is free the extents associated with each one. > + * corresponding EFDs should be in the AIL. The initial decrement > + * on the EFI/EFD sequence counter has been done when the EFI is placed > + * on the AIL. What we do now is free the extents associated with each one. > * > * Since we process the EFIs in normal transactions, they > * will be removed at some point after the commit. This prevents > * us from just walking down the list processing each one. > - * We'll use a flag in the EFI to skip those that we've already > - * processed and use the AIL iteration mechanism's generation > - * count to try to speed this up at least a bit. > * > * When we start, we know that the EFIs are the only things in > * the AIL. As we process them, however, other items are added > * to the AIL. Since everything added to the AIL must come after > * everything already in the AIL, we stop processing as soon as > * we see something other than an EFI in the AIL. > + * > + * If an error is detected while freeing extents in the EFI, discard all > + * future EFI on the AIL. This is done by the xfs_efi_release() which is > + * the same processing as a successful EFD completion processing. > */ > STATIC int > xlog_recover_process_efis( > struct xlog *log) > { > - xfs_log_item_t *lip; > - xfs_efi_log_item_t *efip; > + struct xfs_log_item *lip; > + struct xfs_efi_log_item *efip; > int error = 0; > struct xfs_ail_cursor cur; > struct xfs_ail *ailp; > @@ -3745,19 +3759,14 @@ xlog_recover_process_efis( > * Skip EFIs that we've already processed. > */ > efip = (xfs_efi_log_item_t *)lip; > - if (test_bit(XFS_EFI_RECOVERED, &efip->efi_flags)) { > - lip = xfs_trans_ail_cursor_next(ailp, &cur); > - continue; > - } > - > spin_unlock(&ailp->xa_lock); > - error = xlog_recover_process_efi(log->l_mp, efip); > + if (!error) > + error = xlog_recover_process_efi(log->l_mp, efip); > + else > + xfs_efi_release(efip, efip->efi_format.efi_nextents); > spin_lock(&ailp->xa_lock); > - if (error) > - goto out; > lip = xfs_trans_ail_cursor_next(ailp, &cur); > } > -out: > xfs_trans_ail_cursor_done(&cur); > spin_unlock(&ailp->xa_lock); > return error; > Index: b/fs/xfs/xfs_trans.h > =================================================================== > --- a/fs/xfs/xfs_trans.h > +++ b/fs/xfs/xfs_trans.h > @@ -216,6 +216,7 @@ void xfs_trans_ijoin(struct xfs_trans * > void xfs_trans_log_buf(xfs_trans_t *, struct xfs_buf *, uint, uint); > void xfs_trans_log_inode(xfs_trans_t *, struct xfs_inode *, uint); > struct xfs_efi_log_item *xfs_trans_get_efi(xfs_trans_t *, uint); > +void xfs_efi_item_unpin(struct xfs_log_item *, int); > void xfs_efi_release(struct xfs_efi_log_item *, uint); > void xfs_trans_log_efi_extent(xfs_trans_t *, > struct xfs_efi_log_item *, > > > _______________________________________________ > xfs mailing list > xfs@oss.sgi.com > http://oss.sgi.com/mailman/listinfo/xfs From bfoster@redhat.com Mon Jul 7 09:30:35 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: xfs@oss.sgi.com Delivered-To: xfs@oss.sgi.com Received: from relay.sgi.com (relay1.corp.sgi.com [137.38.102.111]) by oss.sgi.com (Postfix) with ESMTP id B37237F51 for ; Mon, 7 Jul 2014 09:30:35 -0500 (CDT) Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by relay1.corp.sgi.com (Postfix) with ESMTP id 906A58F8078 for ; Mon, 7 Jul 2014 07:30:35 -0700 (PDT) X-ASG-Debug-ID: 1404743431-04cb6c76d04d1b70001-NocioJ Received: from mx1.redhat.com (mx1.redhat.com [209.132.183.28]) by cuda.sgi.com with ESMTP id RlLs2F8wYpm22tXk (version=TLSv1 cipher=AES256-SHA bits=256 verify=NO); Mon, 07 Jul 2014 07:30:31 -0700 (PDT) X-Barracuda-Envelope-From: bfoster@redhat.com X-Barracuda-Apparent-Source-IP: 209.132.183.28 X-ASG-Whitelist: Client Received: from int-mx11.intmail.prod.int.phx2.redhat.com (int-mx11.intmail.prod.int.phx2.redhat.com [10.5.11.24]) by mx1.redhat.com (8.14.4/8.14.4) with ESMTP id s67EUUBW014538 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Mon, 7 Jul 2014 10:30:30 -0400 Received: from laptop.bfoster (vpn-61-213.rdu2.redhat.com [10.10.61.213]) by int-mx11.intmail.prod.int.phx2.redhat.com (8.14.4/8.14.4) with ESMTP id s67EUSoJ012758 (version=TLSv1/SSLv3 cipher=AES128-GCM-SHA256 bits=128 verify=NO); Mon, 7 Jul 2014 10:30:30 -0400 Date: Mon, 7 Jul 2014 10:30:28 -0400 From: Brian Foster To: Mark Tinguely Cc: xfs@oss.sgi.com Subject: Re: [PATCH 4/5] xfs: free inodes on log recovery error Message-ID: <20140707143027.GB4123@laptop.bfoster> X-ASG-Orig-Subj: Re: [PATCH 4/5] xfs: free inodes on log recovery error References: <20140702143206.438456679@sgi.com> <20140702144139.894251516@sgi.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20140702144139.894251516@sgi.com> User-Agent: Mutt/1.5.23 (2014-03-12) X-Scanned-By: MIMEDefang 2.68 on 10.5.11.24 X-Barracuda-Connect: mx1.redhat.com[209.132.183.28] X-Barracuda-Start-Time: 1404743431 X-Barracuda-Encrypted: AES256-SHA X-Barracuda-URL: http://192.48.176.15:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 On Wed, Jul 02, 2014 at 09:32:10AM -0500, Mark Tinguely wrote: > Recovery may free inodes that end up on the inode > reclaim RCU. If recovery fails, we leak these inodes. > The filesystem should be in forced shutdown at this > point, so a call to xfs_reclaim_inode is a fast path > to freeing the inodes and RCU entries. > > Signed-off-by: Mark Tinguely > --- > fs/xfs/xfs_log.c | 2 ++ > fs/xfs/xfs_mount.c | 1 + > 2 files changed, 3 insertions(+) > > Index: b/fs/xfs/xfs_log.c > =================================================================== > --- a/fs/xfs/xfs_log.c > +++ b/fs/xfs/xfs_log.c > @@ -31,6 +31,7 @@ > #include "xfs_log_priv.h" > #include "xfs_log_recover.h" > #include "xfs_inode.h" > +#include "xfs_icache.h" > #include "xfs_trace.h" > #include "xfs_fsops.h" > #include "xfs_cksum.h" > @@ -720,6 +721,7 @@ xfs_log_mount( > return 0; > > out_destroy_ail: > + xfs_reclaim_inodes(mp, SYNC_WAIT); So an inode in the perag cache means an xfs_iget(). I see that in xlog_recover_process_one_iunlink(), which is via xfs_log_mount_finish(). Assuming I'm following that correctly, why the reclaim here (and in response to failure here by the caller) as opposed to closer to a failure of xfs_log_mount_finish()? Brian > xfs_trans_ail_destroy(mp); > out_free_log: > xlog_dealloc_log(mp->m_log); > Index: b/fs/xfs/xfs_mount.c > =================================================================== > --- a/fs/xfs/xfs_mount.c > +++ b/fs/xfs/xfs_mount.c > @@ -980,6 +980,7 @@ xfs_mountfs( > out_log_dealloc: > xfs_log_unmount(mp); > out_fail_wait: > + xfs_reclaim_inodes(mp, SYNC_WAIT); > if (mp->m_logdev_targp && mp->m_logdev_targp != mp->m_ddev_targp) > xfs_wait_buftarg(mp->m_logdev_targp); > xfs_wait_buftarg(mp->m_ddev_targp); > > > _______________________________________________ > xfs mailing list > xfs@oss.sgi.com > http://oss.sgi.com/mailman/listinfo/xfs From tinguely@sgi.com Mon Jul 7 10:18:44 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=RP_MATCHES_RCVD autolearn=ham version=3.3.1 X-Original-To: xfs@oss.sgi.com Delivered-To: xfs@oss.sgi.com Received: from relay.sgi.com (relay2.corp.sgi.com [137.38.102.29]) by oss.sgi.com (Postfix) with ESMTP id 508C07F3F for ; Mon, 7 Jul 2014 10:18:44 -0500 (CDT) Received: from eagdhcp-232-174.americas.sgi.com (eagdhcp-232-174.americas.sgi.com [128.162.232.174]) by relay2.corp.sgi.com (Postfix) with ESMTP id 1AE5230405F; Mon, 7 Jul 2014 08:18:40 -0700 (PDT) Message-ID: <53BABA4F.9030505@sgi.com> Date: Mon, 07 Jul 2014 10:18:39 -0500 From: Mark Tinguely User-Agent: Mozilla/5.0 (X11; FreeBSD amd64; rv:9.0) Gecko/20120122 Thunderbird/9.0 MIME-Version: 1.0 To: Brian Foster CC: xfs@oss.sgi.com Subject: Re: [PATCH 4/5] xfs: free inodes on log recovery error References: <20140702143206.438456679@sgi.com> <20140702144139.894251516@sgi.com> <20140707143027.GB4123@laptop.bfoster> In-Reply-To: <20140707143027.GB4123@laptop.bfoster> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit On 07/07/14 09:30, Brian Foster wrote: > On Wed, Jul 02, 2014 at 09:32:10AM -0500, Mark Tinguely wrote: >> Recovery may free inodes that end up on the inode >> reclaim RCU. If recovery fails, we leak these inodes. >> The filesystem should be in forced shutdown at this >> point, so a call to xfs_reclaim_inode is a fast path >> to freeing the inodes and RCU entries. >> >> Signed-off-by: Mark Tinguely >> --- >> fs/xfs/xfs_log.c | 2 ++ >> fs/xfs/xfs_mount.c | 1 + >> 2 files changed, 3 insertions(+) >> >> Index: b/fs/xfs/xfs_log.c >> =================================================================== >> --- a/fs/xfs/xfs_log.c >> +++ b/fs/xfs/xfs_log.c >> @@ -31,6 +31,7 @@ >> #include "xfs_log_priv.h" >> #include "xfs_log_recover.h" >> #include "xfs_inode.h" >> +#include "xfs_icache.h" >> #include "xfs_trace.h" >> #include "xfs_fsops.h" >> #include "xfs_cksum.h" >> @@ -720,6 +721,7 @@ xfs_log_mount( >> return 0; >> >> out_destroy_ail: >> + xfs_reclaim_inodes(mp, SYNC_WAIT); > > So an inode in the perag cache means an xfs_iget(). I see that in > xlog_recover_process_one_iunlink(), which is via > xfs_log_mount_finish(). Assuming I'm following that correctly, why the > reclaim here (and in response to failure here by the caller) as opposed > to closer to a failure of xfs_log_mount_finish()? > > Brian > >> xfs_trans_ail_destroy(mp); >> out_free_log: >> xlog_dealloc_log(mp->m_log); >> Index: b/fs/xfs/xfs_mount.c >> =================================================================== >> --- a/fs/xfs/xfs_mount.c >> +++ b/fs/xfs/xfs_mount.c >> @@ -980,6 +980,7 @@ xfs_mountfs( >> out_log_dealloc: >> xfs_log_unmount(mp); >> out_fail_wait: >> + xfs_reclaim_inodes(mp, SYNC_WAIT); >> if (mp->m_logdev_targp&& mp->m_logdev_targp != mp->m_ddev_targp) >> xfs_wait_buftarg(mp->m_logdev_targp); >> xfs_wait_buftarg(mp->m_ddev_targp); >> >> >> _______________________________________________ You are right, the reclaim in xfs_log_mount() is now redundant. The xfs_reclaim_inodes call location in xfs_mount error path had changed when I learned that the xfs_log_unmount() left inodes in the RCU. I did not notice that with the new location that they were the same. --Mark. From bfoster@redhat.com Mon Jul 7 10:26:50 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: xfs@oss.sgi.com Delivered-To: xfs@oss.sgi.com Received: from relay.sgi.com (relay3.corp.sgi.com [198.149.34.15]) by oss.sgi.com (Postfix) with ESMTP id A44FF7F3F for ; Mon, 7 Jul 2014 10:26:50 -0500 (CDT) Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by relay3.corp.sgi.com (Postfix) with ESMTP id 4A8DDAC002 for ; Mon, 7 Jul 2014 08:26:47 -0700 (PDT) X-ASG-Debug-ID: 1404746805-04bdf056698505c0001-NocioJ Received: from mx1.redhat.com (mx1.redhat.com [209.132.183.28]) by cuda.sgi.com with ESMTP id 879n4iK0jwRcuwSi (version=TLSv1 cipher=AES256-SHA bits=256 verify=NO); Mon, 07 Jul 2014 08:26:46 -0700 (PDT) X-Barracuda-Envelope-From: bfoster@redhat.com X-Barracuda-Apparent-Source-IP: 209.132.183.28 X-ASG-Whitelist: Client Received: from int-mx09.intmail.prod.int.phx2.redhat.com (int-mx09.intmail.prod.int.phx2.redhat.com [10.5.11.22]) by mx1.redhat.com (8.14.4/8.14.4) with ESMTP id s67FQioI011780 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Mon, 7 Jul 2014 11:26:44 -0400 Received: from laptop.bfoster (vpn-61-213.rdu2.redhat.com [10.10.61.213]) by int-mx09.intmail.prod.int.phx2.redhat.com (8.14.4/8.14.4) with ESMTP id s67FQfs1031226 (version=TLSv1/SSLv3 cipher=AES128-GCM-SHA256 bits=128 verify=NO); Mon, 7 Jul 2014 11:26:43 -0400 Date: Mon, 7 Jul 2014 11:26:41 -0400 From: Brian Foster To: Mark Tinguely Cc: xfs@oss.sgi.com Subject: Re: [PATCH 5/5] xfs: fix cil push sequence after log recovery Message-ID: <20140707152641.GC4123@laptop.bfoster> X-ASG-Orig-Subj: Re: [PATCH 5/5] xfs: fix cil push sequence after log recovery References: <20140702143206.438456679@sgi.com> <20140702144139.978978390@sgi.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20140702144139.978978390@sgi.com> User-Agent: Mutt/1.5.23 (2014-03-12) X-Scanned-By: MIMEDefang 2.68 on 10.5.11.22 X-Barracuda-Connect: mx1.redhat.com[209.132.183.28] X-Barracuda-Start-Time: 1404746806 X-Barracuda-Encrypted: AES256-SHA X-Barracuda-URL: http://192.48.157.11:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 On Wed, Jul 02, 2014 at 09:32:11AM -0500, Mark Tinguely wrote: > The CIL pushes are marked complete with transaction > tickets and should be in the the correct sequence order. > The back end of the cil push code uses the ctx->commit_lsn > to make sure all previous pushes are complete before adding > the commit ticket for the current cil push. Because > xlog_cil_init_post_recovery sets the ctx->commit_lsn, > the later pushes can incorrectly think that the first > sequence push is complete and allow out of order cil > completion records to be written to the log. If the > system crashes, the log will be replayed in the > wrong order. > > Signed-off-by: Mark Tinguely > --- > fs/xfs/xfs_log_cil.c | 2 -- > 1 file changed, 2 deletions(-) > > Index: b/fs/xfs/xfs_log_cil.c > =================================================================== > --- a/fs/xfs/xfs_log_cil.c > +++ b/fs/xfs/xfs_log_cil.c > @@ -78,8 +78,6 @@ xlog_cil_init_post_recovery( > { > log->l_cilp->xc_ctx->ticket = xlog_cil_ticket_alloc(log); > log->l_cilp->xc_ctx->sequence = 1; > - log->l_cilp->xc_ctx->commit_lsn = xlog_assign_lsn(log->l_curr_cycle, > - log->l_curr_block); So we set ctx->commit_lsn here, this ctx is open for business and sometime later it's committed. If a subsequent ctx is pushed before this one has committed, commit_lsn is already set and thus the wait checks in xlog_cil_push(), etc. are bypassed. The fix seems logical to me, though I'm curious if there was some original reason for setting commit_lsn here (it looks like this and the xlog_wait() bits both go back to the original delayed logging commit). It also seems that the dependence on l_curr_cycle and l_curr_block is the only reason for the existence of this post-recovery function. Can we move the ticket alloc and kill it if the commit_lsn assignment goes away? Brian > } > > /* > > > _______________________________________________ > xfs mailing list > xfs@oss.sgi.com > http://oss.sgi.com/mailman/listinfo/xfs From tinguely@sgi.com Mon Jul 7 10:29:04 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=RP_MATCHES_RCVD autolearn=ham version=3.3.1 X-Original-To: xfs@oss.sgi.com Delivered-To: xfs@oss.sgi.com Received: from relay.sgi.com (relay2.corp.sgi.com [137.38.102.29]) by oss.sgi.com (Postfix) with ESMTP id 25DC87F47 for ; Mon, 7 Jul 2014 10:29:04 -0500 (CDT) Received: from eagdhcp-232-174.americas.sgi.com (eagdhcp-232-174.americas.sgi.com [128.162.232.174]) by relay2.corp.sgi.com (Postfix) with ESMTP id D3AA7304043; Mon, 7 Jul 2014 08:29:03 -0700 (PDT) Message-ID: <53BABCBE.5050602@sgi.com> Date: Mon, 07 Jul 2014 10:29:02 -0500 From: Mark Tinguely User-Agent: Mozilla/5.0 (X11; FreeBSD amd64; rv:9.0) Gecko/20120122 Thunderbird/9.0 MIME-Version: 1.0 To: Brian Foster CC: xfs@oss.sgi.com Subject: Re: [PATCH 1/5] xfs: remove efi from AIL in log recovery References: <20140702143206.438456679@sgi.com> <20140702144139.620473576@sgi.com> <20140707143016.GA4123@laptop.bfoster> In-Reply-To: <20140707143016.GA4123@laptop.bfoster> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit On 07/07/14 09:30, Brian Foster wrote: > On Wed, Jul 02, 2014 at 09:32:07AM -0500, Mark Tinguely wrote: >> The log recovery functions xlog_recover_process_efi{s} are >> responsible for freeing extents that did not complete in >> xfs_bmap_finish before a forced shutdown or system crash. >> If the extent removal fails in log recovery, then the EFI >> will stay on the AIL and is will hang the filesystem >> requiring a system reboot. >> >> This patch removes the special log recovery flag, XFS_EFI_RECOVERED. >> That flag used to be used to decrement the EFI/EFD counter. Instead >> call the decrement function just like we do in the log IOP sequence. >> >> Remove all other unprocessed EFIs from the log recovery AIL >> when one is discovered in error. >> >> Signed-off-by: Mark Tinguely >> --- > > This one mostly looks Ok to me, a few minor comments follow... > >> fs/xfs/xfs_extfree_item.c | 54 +++++++++++++++++++++++-------------- >> fs/xfs/xfs_extfree_item.h | 5 --- >> fs/xfs/xfs_log_recover.c | 67 ++++++++++++++++++++++++++-------------------- >> fs/xfs/xfs_trans.h | 1 >> 4 files changed, 73 insertions(+), 54 deletions(-) >> >> Index: b/fs/xfs/xfs_extfree_item.c >> =================================================================== >> --- a/fs/xfs/xfs_extfree_item.c >> +++ b/fs/xfs/xfs_extfree_item.c >> @@ -62,9 +62,15 @@ __xfs_efi_release( >> >> if (atomic_dec_and_test(&efip->efi_refcount)) { >> spin_lock(&ailp->xa_lock); >> - /* xfs_trans_ail_delete() drops the AIL lock. */ >> - xfs_trans_ail_delete(ailp,&efip->efi_item, >> - SHUTDOWN_LOG_IO_ERROR); >> + /* >> + * The EFI may not be on the AIL on abort. >> + * xfs_trans_ail_delete() drops the AIL lock. >> + */ >> + if (efip->efi_item.li_flags& XFS_LI_IN_AIL) >> + xfs_trans_ail_delete(ailp,&efip->efi_item, >> + SHUTDOWN_LOG_IO_ERROR); >> + else >> + spin_unlock(&ailp->xa_lock); >> xfs_efi_item_free(efip); >> } >> } >> @@ -134,9 +140,10 @@ xfs_efi_item_pin( >> * remove the EFI it's because the transaction has been cancelled and by >> * definition that means the EFI cannot be in the AIL so remove it from the >> * transaction and free it. Otherwise coordinate with xfs_efi_release() >> - * to determine who gets to free the EFI. >> + * to determine who gets to free the EFI. Call from log recovery of EFI >> + * entries so the EFD or error handling will remove the entry. >> */ >> -STATIC void >> +void >> xfs_efi_item_unpin( >> struct xfs_log_item *lip, >> int remove) >> @@ -147,8 +154,6 @@ xfs_efi_item_unpin( >> ASSERT(!(lip->li_flags& XFS_LI_IN_AIL)); >> if (lip->li_desc) >> xfs_trans_del_item(lip); >> - xfs_efi_item_free(efip); >> - return; >> } >> __xfs_efi_release(efip); >> } >> @@ -168,12 +173,17 @@ xfs_efi_item_push( >> return XFS_ITEM_PINNED; >> } >> >> +/* >> + * Remove EFI entry on abort. >> + */ >> STATIC void >> xfs_efi_item_unlock( >> struct xfs_log_item *lip) >> { >> - if (lip->li_flags& XFS_LI_ABORTED) >> - xfs_efi_item_free(EFI_ITEM(lip)); >> + if (lip->li_flags& XFS_LI_ABORTED) { >> + ASSERT(!(lip->li_flags& XFS_LI_IN_AIL)); >> + __xfs_efi_release(EFI_ITEM(lip)); >> + } >> } >> >> /* >> @@ -313,10 +323,6 @@ xfs_efi_release(xfs_efi_log_item_t *efip >> { >> ASSERT(atomic_read(&efip->efi_next_extent)>= nextents); >> if (atomic_sub_and_test(nextents,&efip->efi_next_extent)) { >> - /* recovery needs us to drop the EFI reference, too */ >> - if (test_bit(XFS_EFI_RECOVERED,&efip->efi_flags)) >> - __xfs_efi_release(efip); >> - >> __xfs_efi_release(efip); >> /* efip may now have been freed, do not reference it again. */ >> } >> @@ -420,8 +426,17 @@ STATIC void >> xfs_efd_item_unlock( >> struct xfs_log_item *lip) >> { >> - if (lip->li_flags& XFS_LI_ABORTED) >> - xfs_efd_item_free(EFD_ITEM(lip)); >> + struct xfs_efd_log_item *efdp = EFD_ITEM(lip); >> + >> + if (!(lip->li_flags& XFS_LI_ABORTED)) >> + return; >> + >> + /* Free the EFI when aborting a commit. The EFI will be either >> + * added to the AIL in a CIL push before this abort or unlocked >> + * before the EFD unlock. >> + */ >> + xfs_efi_release(efdp->efd_efip, efdp->efd_format.efd_nextents); >> + xfs_efd_item_free(efdp); > > Given that the goal here is to lose the special efi handling and use the > common helpers, it seems like it also makes sense now to call > xfs_efi_release() in xfs_recover_efd_pass2() rather than open coding it. make sense. >> } >> >> /* >> @@ -439,12 +454,11 @@ xfs_efd_item_committed( >> struct xfs_efd_log_item *efdp = EFD_ITEM(lip); >> >> /* >> - * If we got a log I/O error, it's always the case that the LR with the >> - * EFI got unpinned and freed before the EFD got aborted. >> + * EFI and EFDs can be in different CIL pushes. Therefore the EFI could >> + * be on the AIL when an abort occurs, so try to release the EFI in >> + * all cases. >> */ >> - if (!(lip->li_flags& XFS_LI_ABORTED)) >> - xfs_efi_release(efdp->efd_efip, efdp->efd_format.efd_nextents); >> - >> + xfs_efi_release(efdp->efd_efip, efdp->efd_format.efd_nextents); >> xfs_efd_item_free(efdp); >> return (xfs_lsn_t)-1; >> } >> Index: b/fs/xfs/xfs_extfree_item.h >> =================================================================== >> --- a/fs/xfs/xfs_extfree_item.h >> +++ b/fs/xfs/xfs_extfree_item.h >> @@ -29,11 +29,6 @@ struct kmem_zone; >> #define XFS_EFI_MAX_FAST_EXTENTS 16 >> >> /* >> - * Define EFI flag bits. Manipulated by set/clear/test_bit operators. >> - */ >> -#define XFS_EFI_RECOVERED 1 >> - >> -/* >> * This is the "extent free intention" log item. It is used to log the fact >> * that some extents need to be free. It is used in conjunction with the >> * "extent free done" log item described below. >> Index: b/fs/xfs/xfs_log_recover.c >> =================================================================== >> --- a/fs/xfs/xfs_log_recover.c >> +++ b/fs/xfs/xfs_log_recover.c >> @@ -3093,6 +3093,12 @@ xlog_recover_efi_pass2( >> * xfs_trans_ail_update() drops the AIL lock. >> */ >> xfs_trans_ail_update(log->l_ailp,&efip->efi_item, lsn); >> + >> + /* >> + * Decrement the EFI/EFD counter so the EFI is removed after >> + * processing the EFD or error handling in the caller. >> + */ >> + xfs_efi_item_unpin(&efip->efi_item, 0); >> return 0; >> } >> >> @@ -3635,6 +3641,8 @@ xlog_recover_process_data( >> /* >> * Process an extent free intent item that was recovered from >> * the log. We need to free the extents that it describes. >> + * The processing of the EFD will free the EFI and remove it from the AIL. >> + * The caller will remove any other EFIs on the the AIL. >> */ >> STATIC int >> xlog_recover_process_efi( >> @@ -3648,8 +3656,6 @@ xlog_recover_process_efi( >> xfs_extent_t *extp; >> xfs_fsblock_t startblock_fsb; >> >> - ASSERT(!test_bit(XFS_EFI_RECOVERED,&efip->efi_flags)); >> - >> /* >> * First check the validity of the extents described by the >> * EFI. If any are bad, then assume that all are bad and >> @@ -3663,13 +3669,8 @@ xlog_recover_process_efi( >> (extp->ext_len == 0) || >> (startblock_fsb>= mp->m_sb.sb_dblocks) || >> (extp->ext_len>= mp->m_sb.sb_agblocks)) { >> - /* >> - * This will pull the EFI from the AIL and >> - * free the memory associated with it. >> - */ >> - set_bit(XFS_EFI_RECOVERED,&efip->efi_flags); >> - xfs_efi_release(efip, efip->efi_format.efi_nextents); >> - return XFS_ERROR(EIO); >> + error = XFS_ERROR(EIO); >> + goto return_free; > > This bit doesn't apply to for-next. I get similar problems with less > trivial hunks on the subsequent patch as well. Looks like you might need > to rebase the series onto the recent error negation patches..? WTF? Why are the changes not in the dev tree? Why do people have to do development to the for-next tree? > >> } >> } >> >> @@ -3682,45 +3683,58 @@ xlog_recover_process_efi( >> for (i = 0; i< efip->efi_format.efi_nextents; i++) { >> extp =&(efip->efi_format.efi_extents[i]); >> error = xfs_free_extent(tp, extp->ext_start, extp->ext_len); >> - if (error) >> - goto abort_error; >> xfs_trans_log_efd_extent(tp, efdp, extp->ext_start, >> extp->ext_len); >> + if (error) { >> + /* The error may be the first extent or there may the >> + * EFD may be dirty on the transaction by another >> + * extent. Make the EFD dirty on the transactions >> + * so the xfs_trans_cancel frees EFI/EFD and removes >> + * EFI from AIL. >> + */ > > I can't quite follow this comment. Is it referring to the unconditional > xfs_trans_log_efd_extent() call? If so, it might make more sense to move > it before that call. Yeah, okay. We have to force it dirty in the transaction even on error. > > Brian > >> + xfs_trans_cancel(tp, XFS_TRANS_ABORT); >> + return error; >> + } >> } >> >> - set_bit(XFS_EFI_RECOVERED,&efip->efi_flags); >> error = xfs_trans_commit(tp, 0); >> - return error; >> + if (error) >> + goto return_free; >> + return 0; >> >> abort_error: >> xfs_trans_cancel(tp, XFS_TRANS_ABORT); >> +return_free: >> + xfs_efi_release(efip, efip->efi_format.efi_nextents); >> return error; >> } >> >> /* >> * When this is called, all of the EFIs which did not have >> - * corresponding EFDs should be in the AIL. What we do now >> - * is free the extents associated with each one. >> + * corresponding EFDs should be in the AIL. The initial decrement >> + * on the EFI/EFD sequence counter has been done when the EFI is placed >> + * on the AIL. What we do now is free the extents associated with each one. >> * >> * Since we process the EFIs in normal transactions, they >> * will be removed at some point after the commit. This prevents >> * us from just walking down the list processing each one. >> - * We'll use a flag in the EFI to skip those that we've already >> - * processed and use the AIL iteration mechanism's generation >> - * count to try to speed this up at least a bit. >> * >> * When we start, we know that the EFIs are the only things in >> * the AIL. As we process them, however, other items are added >> * to the AIL. Since everything added to the AIL must come after >> * everything already in the AIL, we stop processing as soon as >> * we see something other than an EFI in the AIL. >> + * >> + * If an error is detected while freeing extents in the EFI, discard all >> + * future EFI on the AIL. This is done by the xfs_efi_release() which is >> + * the same processing as a successful EFD completion processing. >> */ >> STATIC int >> xlog_recover_process_efis( >> struct xlog *log) >> { >> - xfs_log_item_t *lip; >> - xfs_efi_log_item_t *efip; >> + struct xfs_log_item *lip; >> + struct xfs_efi_log_item *efip; >> int error = 0; >> struct xfs_ail_cursor cur; >> struct xfs_ail *ailp; >> @@ -3745,19 +3759,14 @@ xlog_recover_process_efis( >> * Skip EFIs that we've already processed. >> */ >> efip = (xfs_efi_log_item_t *)lip; >> - if (test_bit(XFS_EFI_RECOVERED,&efip->efi_flags)) { >> - lip = xfs_trans_ail_cursor_next(ailp,&cur); >> - continue; >> - } >> - >> spin_unlock(&ailp->xa_lock); >> - error = xlog_recover_process_efi(log->l_mp, efip); >> + if (!error) >> + error = xlog_recover_process_efi(log->l_mp, efip); >> + else >> + xfs_efi_release(efip, efip->efi_format.efi_nextents); >> spin_lock(&ailp->xa_lock); >> - if (error) >> - goto out; >> lip = xfs_trans_ail_cursor_next(ailp,&cur); >> } >> -out: >> xfs_trans_ail_cursor_done(&cur); >> spin_unlock(&ailp->xa_lock); >> return error; >> Index: b/fs/xfs/xfs_trans.h >> =================================================================== >> --- a/fs/xfs/xfs_trans.h >> +++ b/fs/xfs/xfs_trans.h >> @@ -216,6 +216,7 @@ void xfs_trans_ijoin(struct xfs_trans * >> void xfs_trans_log_buf(xfs_trans_t *, struct xfs_buf *, uint, uint); >> void xfs_trans_log_inode(xfs_trans_t *, struct xfs_inode *, uint); >> struct xfs_efi_log_item *xfs_trans_get_efi(xfs_trans_t *, uint); >> +void xfs_efi_item_unpin(struct xfs_log_item *, int); >> void xfs_efi_release(struct xfs_efi_log_item *, uint); >> void xfs_trans_log_efi_extent(xfs_trans_t *, >> struct xfs_efi_log_item *, >> >> >> _______________________________________________ >> xfs mailing list >> xfs@oss.sgi.com >> http://oss.sgi.com/mailman/listinfo/xfs From bfoster@redhat.com Mon Jul 7 13:21:18 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: xfs@oss.sgi.com Delivered-To: xfs@oss.sgi.com Received: from relay.sgi.com (relay1.corp.sgi.com [137.38.102.111]) by oss.sgi.com (Postfix) with ESMTP id 657F87F3F for ; Mon, 7 Jul 2014 13:21:18 -0500 (CDT) Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by relay1.corp.sgi.com (Postfix) with ESMTP id 48A428F8040 for ; Mon, 7 Jul 2014 11:21:15 -0700 (PDT) X-ASG-Debug-ID: 1404757273-04cb6c76d04dc6f0001-NocioJ Received: from mx1.redhat.com (mx1.redhat.com [209.132.183.28]) by cuda.sgi.com with ESMTP id w71qKQV6nIlemfhP (version=TLSv1 cipher=AES256-SHA bits=256 verify=NO) for ; Mon, 07 Jul 2014 11:21:13 -0700 (PDT) X-Barracuda-Envelope-From: bfoster@redhat.com X-Barracuda-Apparent-Source-IP: 209.132.183.28 X-ASG-Whitelist: Client Received: from int-mx13.intmail.prod.int.phx2.redhat.com (int-mx13.intmail.prod.int.phx2.redhat.com [10.5.11.26]) by mx1.redhat.com (8.14.4/8.14.4) with ESMTP id s67ILBg5019931 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK) for ; Mon, 7 Jul 2014 14:21:12 -0400 Received: from laptop.bfoster (vpn-61-213.rdu2.redhat.com [10.10.61.213]) by int-mx13.intmail.prod.int.phx2.redhat.com (8.14.4/8.14.4) with ESMTP id s67IL8V4022645 (version=TLSv1/SSLv3 cipher=AES128-GCM-SHA256 bits=128 verify=NO); Mon, 7 Jul 2014 14:21:10 -0400 Date: Mon, 7 Jul 2014 14:21:08 -0400 From: Brian Foster To: Eric Sandeen Cc: xfs-oss Subject: Re: [PATCH 1/2] xfs: allow inode allocations in post-growfs disk space Message-ID: <20140707182108.GD4123@laptop.bfoster> X-ASG-Orig-Subj: Re: [PATCH 1/2] xfs: allow inode allocations in post-growfs disk space References: <53B4E1EE.40702@redhat.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <53B4E1EE.40702@redhat.com> User-Agent: Mutt/1.5.23 (2014-03-12) X-Scanned-By: MIMEDefang 2.68 on 10.5.11.26 X-Barracuda-Connect: mx1.redhat.com[209.132.183.28] X-Barracuda-Start-Time: 1404757273 X-Barracuda-Encrypted: AES256-SHA X-Barracuda-URL: http://192.48.176.15:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 On Wed, Jul 02, 2014 at 11:54:06PM -0500, Eric Sandeen wrote: > Today, if we perform an xfs_growfs which adds allocation groups, > mp->m_maxagi is not properly updated when the growfs is complete. > > Therefore inodes will continue to be allocated only in the > AGs which existed prior to the growfs, and the new space > won't be utilized. > > This is because of this path in xfs_growfs_data_private(): > > xfs_growfs_data_private > xfs_initialize_perag(mp, nagcount, &nagimax); > if (mp->m_flags & XFS_MOUNT_32BITINODES) > index = xfs_set_inode32(mp); > else > index = xfs_set_inode64(mp); > > if (maxagi) > *maxagi = index; > > where xfs_set_inode* iterates over the (old) agcount in > mp->m_sb.sb_agblocks, which has not yet been updated > in the growfs path. So "index" will be returned based on > the old agcount, not the new one, and new AGs are not available > for inode allocation. > > Fix this by explicitly passing the proper AG count (which > xfs_initialize_perag() already has) down another level, > so that xfs_set_inode* can make the proper decision about > acceptable AGs for inode allocation in the potentially > newly-added AGs. > > This has been broken since 3.7, when these two > xfs_set_inode* functions were added in commit 2d2194f. > Prior to that, we looped over "agcount" not sb_agblocks > in these calculations. > > Signed-off-by: Eric Sandeen > --- > > tested for regression with the -g growfs group, but this > shows that we need another testcase for growfs. > > > diff --git a/fs/xfs/xfs_mount.c b/fs/xfs/xfs_mount.c > index 993cb19..b291ada 100644 > --- a/fs/xfs/xfs_mount.c > +++ b/fs/xfs/xfs_mount.c > @@ -250,9 +250,9 @@ xfs_initialize_perag( > mp->m_flags &= ~XFS_MOUNT_32BITINODES; > > if (mp->m_flags & XFS_MOUNT_32BITINODES) > - index = xfs_set_inode32(mp); > + index = xfs_set_inode32(mp, agcount); > else > - index = xfs_set_inode64(mp); > + index = xfs_set_inode64(mp, agcount); > > if (maxagi) > *maxagi = index; > diff --git a/fs/xfs/xfs_super.c b/fs/xfs/xfs_super.c > index 87e8b01..ccc564d 100644 > --- a/fs/xfs/xfs_super.c > +++ b/fs/xfs/xfs_super.c > @@ -597,8 +597,13 @@ xfs_max_file_offset( > return (((__uint64_t)pagefactor) << bitshift) - 1; > } > > +/* > + * xfs_set_inode32() and xfs_set_inode64() are passed an agcount > + * because in the growfs case, mp->m_sb.sb_agcount is not updated > + * yet to the potentially higher ag count. > + */ > xfs_agnumber_t > -xfs_set_inode32(struct xfs_mount *mp) > +xfs_set_inode32(struct xfs_mount *mp, xfs_agnumber_t agcount) > { > xfs_agnumber_t index = 0; > xfs_agnumber_t maxagi = 0; > @@ -620,10 +625,10 @@ xfs_set_inode32(struct xfs_mount *mp) > do_div(icount, sbp->sb_agblocks); > max_metadata = icount; > } else { > - max_metadata = sbp->sb_agcount; > + max_metadata = agcount; The fix looks pretty good to me, but what about the 'if' branch of this logic here? We calculate max_metadata based on sb_dblocks, which also isn't updated until the growfs tp commit. That appears to be a similar bug in that we wouldn't set pagf_metadata on the new AGs where appropriate, which I think means data allocation could steal the new inode space sooner than anticipated. I wonder if this is better moved after the superblock is updated? Brian > } > > - for (index = 0; index < sbp->sb_agcount; index++) { > + for (index = 0; index < agcount; index++) { > ino = XFS_AGINO_TO_INO(mp, index, agino); > > if (ino > XFS_MAXINUMBER_32) { > @@ -648,11 +653,11 @@ xfs_set_inode32(struct xfs_mount *mp) > } > > xfs_agnumber_t > -xfs_set_inode64(struct xfs_mount *mp) > +xfs_set_inode64(struct xfs_mount *mp, xfs_agnumber_t agcount) > { > xfs_agnumber_t index = 0; > > - for (index = 0; index < mp->m_sb.sb_agcount; index++) { > + for (index = 0; index < agcount; index++) { > struct xfs_perag *pag; > > pag = xfs_perag_get(mp, index); > @@ -1193,6 +1198,7 @@ xfs_fs_remount( > char *options) > { > struct xfs_mount *mp = XFS_M(sb); > + xfs_sb_t *sbp = &mp->m_sb; > substring_t args[MAX_OPT_ARGS]; > char *p; > int error; > @@ -1212,10 +1218,10 @@ xfs_fs_remount( > mp->m_flags &= ~XFS_MOUNT_BARRIER; > break; > case Opt_inode64: > - mp->m_maxagi = xfs_set_inode64(mp); > + mp->m_maxagi = xfs_set_inode64(mp, sbp->sb_agcount); > break; > case Opt_inode32: > - mp->m_maxagi = xfs_set_inode32(mp); > + mp->m_maxagi = xfs_set_inode32(mp, sbp->sb_agcount); > break; > default: > /* > diff --git a/fs/xfs/xfs_super.h b/fs/xfs/xfs_super.h > index bbe3d15..b4cfe21 100644 > --- a/fs/xfs/xfs_super.h > +++ b/fs/xfs/xfs_super.h > @@ -76,8 +76,8 @@ extern __uint64_t xfs_max_file_offset(unsigned int); > > extern void xfs_flush_inodes(struct xfs_mount *mp); > extern void xfs_blkdev_issue_flush(struct xfs_buftarg *); > -extern xfs_agnumber_t xfs_set_inode32(struct xfs_mount *); > -extern xfs_agnumber_t xfs_set_inode64(struct xfs_mount *); > +extern xfs_agnumber_t xfs_set_inode32(struct xfs_mount *, xfs_agnumber_t agcount); > +extern xfs_agnumber_t xfs_set_inode64(struct xfs_mount *, xfs_agnumber_t agcount); > > extern const struct export_operations xfs_export_operations; > extern const struct xattr_handler *xfs_xattr_handlers[]; > > > _______________________________________________ > xfs mailing list > xfs@oss.sgi.com > http://oss.sgi.com/mailman/listinfo/xfs From bfoster@redhat.com Mon Jul 7 13:21:28 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: xfs@oss.sgi.com Delivered-To: xfs@oss.sgi.com Received: from relay.sgi.com (relay3.corp.sgi.com [198.149.34.15]) by oss.sgi.com (Postfix) with ESMTP id 4D3AF7F51 for ; Mon, 7 Jul 2014 13:21:28 -0500 (CDT) Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by relay3.corp.sgi.com (Postfix) with ESMTP id C9A78AC005 for ; Mon, 7 Jul 2014 11:21:24 -0700 (PDT) X-ASG-Debug-ID: 1404757283-04cbb0653630fcf0001-NocioJ Received: from mx1.redhat.com (mx1.redhat.com [209.132.183.28]) by cuda.sgi.com with ESMTP id 0sjYzWm77Qj1p1PR (version=TLSv1 cipher=AES256-SHA bits=256 verify=NO) for ; Mon, 07 Jul 2014 11:21:23 -0700 (PDT) X-Barracuda-Envelope-From: bfoster@redhat.com X-Barracuda-Apparent-Source-IP: 209.132.183.28 X-ASG-Whitelist: Client Received: from int-mx11.intmail.prod.int.phx2.redhat.com (int-mx11.intmail.prod.int.phx2.redhat.com [10.5.11.24]) by mx1.redhat.com (8.14.4/8.14.4) with ESMTP id s67ILKAJ026211 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Mon, 7 Jul 2014 14:21:21 -0400 Received: from laptop.bfoster (vpn-61-213.rdu2.redhat.com [10.10.61.213]) by int-mx11.intmail.prod.int.phx2.redhat.com (8.14.4/8.14.4) with ESMTP id s67ILHSV022048 (version=TLSv1/SSLv3 cipher=AES128-GCM-SHA256 bits=128 verify=NO); Mon, 7 Jul 2014 14:21:19 -0400 Date: Mon, 7 Jul 2014 14:21:17 -0400 From: Brian Foster To: Eric Sandeen Cc: Eric Sandeen , xfs-oss Subject: Re: [PATCH 2/2] xfs: tidy up xfs_set_inode32 Message-ID: <20140707182117.GE4123@laptop.bfoster> X-ASG-Orig-Subj: Re: [PATCH 2/2] xfs: tidy up xfs_set_inode32 References: <53B4E1EE.40702@redhat.com> <53B4E2C5.1000303@sandeen.net> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <53B4E2C5.1000303@sandeen.net> User-Agent: Mutt/1.5.23 (2014-03-12) X-Scanned-By: MIMEDefang 2.68 on 10.5.11.24 X-Barracuda-Connect: mx1.redhat.com[209.132.183.28] X-Barracuda-Start-Time: 1404757283 X-Barracuda-Encrypted: AES256-SHA X-Barracuda-URL: http://192.48.176.25:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 On Wed, Jul 02, 2014 at 11:57:41PM -0500, Eric Sandeen wrote: > xfs_set_inode32() caught my eye because it had > weird spacing around the "-1's". In cleaning that > up, I realized that the assignment in the declaration > of "ino" is never used; it's rewritten before it gets > read. > > Drop the ino initializer from its declaration since it's > not used, and move the agino initialization into the body > of the function, mostly so that we can have pretty > whitespace and not exceed 80 columns. :) > > Signed-off-by: Eric Sandeen > --- Reviewed-by: Brian Foster > > diff --git a/fs/xfs/xfs_super.c b/fs/xfs/xfs_super.c > index e71c0f8..39c9315 100644 > --- a/fs/xfs/xfs_super.c > +++ b/fs/xfs/xfs_super.c > @@ -609,8 +609,8 @@ xfs_set_inode32(struct xfs_mount *mp, xfs_agnumber_t agcount) > xfs_agnumber_t maxagi = 0; > xfs_sb_t *sbp = &mp->m_sb; > xfs_agnumber_t max_metadata; > - xfs_agino_t agino = XFS_OFFBNO_TO_AGINO(mp, sbp->sb_agblocks -1, 0); > - xfs_ino_t ino = XFS_AGINO_TO_INO(mp, sbp->sb_agcount -1, agino); > + xfs_agino_t agino; > + xfs_ino_t ino; > xfs_perag_t *pag; > > /* Calculate how much should be reserved for inodes to meet > @@ -628,6 +628,8 @@ xfs_set_inode32(struct xfs_mount *mp, xfs_agnumber_t agcount) > max_metadata = agcount; > } > > + agino = XFS_OFFBNO_TO_AGINO(mp, sbp->sb_agblocks - 1, 0); > + > for (index = 0; index < agcount; index++) { > ino = XFS_AGINO_TO_INO(mp, index, agino); > > > _______________________________________________ > xfs mailing list > xfs@oss.sgi.com > http://oss.sgi.com/mailman/listinfo/xfs From sandeen@sandeen.net Mon Jul 7 14:01:14 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: xfs@oss.sgi.com Delivered-To: xfs@oss.sgi.com Received: from relay.sgi.com (relay3.corp.sgi.com [198.149.34.15]) by oss.sgi.com (Postfix) with ESMTP id 251597F3F for ; Mon, 7 Jul 2014 14:01:14 -0500 (CDT) Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by relay3.corp.sgi.com (Postfix) with ESMTP id 964BEAC004 for ; Mon, 7 Jul 2014 12:01:10 -0700 (PDT) X-ASG-Debug-ID: 1404759668-04cb6c76d04ddfb0001-NocioJ Received: from sandeen.net (sandeen.net [63.231.237.45]) by cuda.sgi.com with ESMTP id SSHBOjT1bkgvveyY for ; Mon, 07 Jul 2014 12:01:08 -0700 (PDT) X-Barracuda-Envelope-From: sandeen@sandeen.net X-Barracuda-Apparent-Source-IP: 63.231.237.45 Received: from liberator.sandeen.net (liberator.sandeen.net [10.0.0.4]) (using TLSv1 with cipher DHE-RSA-AES128-SHA (128/128 bits)) (No client certificate requested) by sandeen.net (Postfix) with ESMTPSA id DF75B65205A1; Mon, 7 Jul 2014 14:01:07 -0500 (CDT) Message-ID: <53BAEE75.9010901@sandeen.net> Date: Mon, 07 Jul 2014 14:01:09 -0500 From: Eric Sandeen MIME-Version: 1.0 To: Brian Foster , Eric Sandeen CC: xfs-oss Subject: Re: [PATCH 1/2] xfs: allow inode allocations in post-growfs disk space References: <53B4E1EE.40702@redhat.com> <20140707182108.GD4123@laptop.bfoster> X-ASG-Orig-Subj: Re: [PATCH 1/2] xfs: allow inode allocations in post-growfs disk space In-Reply-To: <20140707182108.GD4123@laptop.bfoster> X-Enigmail-Version: 1.6 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit X-Barracuda-Connect: sandeen.net[63.231.237.45] X-Barracuda-Start-Time: 1404759668 X-Barracuda-URL: http://192.48.176.15:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 X-Barracuda-Spam-Score: 0.00 X-Barracuda-Spam-Status: No, SCORE=0.00 using per-user scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.7 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.7319 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- On 7/7/14, 1:21 PM, Brian Foster wrote: > On Wed, Jul 02, 2014 at 11:54:06PM -0500, Eric Sandeen wrote: : /* Calculate how much should be reserved for inodes to meet * the max inode percentage. */ if (mp->m_maxicount) { __uint64_t icount; icount = sbp->sb_dblocks * sbp->sb_imax_pct; do_div(icount, 100); icount += sbp->sb_agblocks - 1; >> @@ -620,10 +625,10 @@ xfs_set_inode32(struct xfs_mount *mp) >> do_div(icount, sbp->sb_agblocks); >> max_metadata = icount; >> } else { >> - max_metadata = sbp->sb_agcount; >> + max_metadata = agcount; > > The fix looks pretty good to me, but what about the 'if' branch of this > logic here? We calculate max_metadata based on sb_dblocks, which also > isn't updated until the growfs tp commit. That appears to be a similar > bug in that we wouldn't set pagf_metadata on the new AGs where > appropriate, which I think means data allocation could steal the new > inode space sooner than anticipated. Yeah, good catch... Hm, well - not that this is an answer, but this code has been this way since 2005. So I'd like to fix the *regression* w/ my patch as-is, and then worry about this. So, on to worrying about this ... ;) "max_metadata" seems a little misnamed; inodes can be allocated in higher AGs, but "max_metadata" and lower are the 'preferred' AGs for inode allocation. We only carve out enough via pag->pagf_metadata to reserve m_maxicount, which (here) is based on the (old) sb_dblocks & sb_imax_pct. So yeah, it seems that in the growfs case, we don't mark any *new* AGs as "preferred" for inodes, even though with a fixed sb_imax_pct and a larger sb_dblocks, we'd need more space to accommodate the imaxpct. But reserving higher AGs would be a half-measure at best; they weren't preferred before the growfs, so are very likely not wholly available after the growfs. To really nail this down we'd probably need to see how many inode clusters could be created in each AG above the old threshold, and keep advancing AGs until we've "preferred" enough. Bleah. I hate inode32... -Eric > I wonder if this is better moved after the superblock is updated? > > Brian > >> } >> >> - for (index = 0; index < sbp->sb_agcount; index++) { >> + for (index = 0; index < agcount; index++) { >> ino = XFS_AGINO_TO_INO(mp, index, agino); >> >> if (ino > XFS_MAXINUMBER_32) { >> @@ -648,11 +653,11 @@ xfs_set_inode32(struct xfs_mount *mp) >> } >> >> xfs_agnumber_t >> -xfs_set_inode64(struct xfs_mount *mp) >> +xfs_set_inode64(struct xfs_mount *mp, xfs_agnumber_t agcount) >> { >> xfs_agnumber_t index = 0; >> >> - for (index = 0; index < mp->m_sb.sb_agcount; index++) { >> + for (index = 0; index < agcount; index++) { >> struct xfs_perag *pag; >> >> pag = xfs_perag_get(mp, index); >> @@ -1193,6 +1198,7 @@ xfs_fs_remount( >> char *options) >> { >> struct xfs_mount *mp = XFS_M(sb); >> + xfs_sb_t *sbp = &mp->m_sb; >> substring_t args[MAX_OPT_ARGS]; >> char *p; >> int error; >> @@ -1212,10 +1218,10 @@ xfs_fs_remount( >> mp->m_flags &= ~XFS_MOUNT_BARRIER; >> break; >> case Opt_inode64: >> - mp->m_maxagi = xfs_set_inode64(mp); >> + mp->m_maxagi = xfs_set_inode64(mp, sbp->sb_agcount); >> break; >> case Opt_inode32: >> - mp->m_maxagi = xfs_set_inode32(mp); >> + mp->m_maxagi = xfs_set_inode32(mp, sbp->sb_agcount); >> break; >> default: >> /* >> diff --git a/fs/xfs/xfs_super.h b/fs/xfs/xfs_super.h >> index bbe3d15..b4cfe21 100644 >> --- a/fs/xfs/xfs_super.h >> +++ b/fs/xfs/xfs_super.h >> @@ -76,8 +76,8 @@ extern __uint64_t xfs_max_file_offset(unsigned int); >> >> extern void xfs_flush_inodes(struct xfs_mount *mp); >> extern void xfs_blkdev_issue_flush(struct xfs_buftarg *); >> -extern xfs_agnumber_t xfs_set_inode32(struct xfs_mount *); >> -extern xfs_agnumber_t xfs_set_inode64(struct xfs_mount *); >> +extern xfs_agnumber_t xfs_set_inode32(struct xfs_mount *, xfs_agnumber_t agcount); >> +extern xfs_agnumber_t xfs_set_inode64(struct xfs_mount *, xfs_agnumber_t agcount); >> >> extern const struct export_operations xfs_export_operations; >> extern const struct xattr_handler *xfs_xattr_handlers[]; >> >> >> _______________________________________________ >> xfs mailing list >> xfs@oss.sgi.com >> http://oss.sgi.com/mailman/listinfo/xfs > > _______________________________________________ > xfs mailing list > xfs@oss.sgi.com > http://oss.sgi.com/mailman/listinfo/xfs > From bfoster@redhat.com Mon Jul 7 14:38:37 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: xfs@oss.sgi.com Delivered-To: xfs@oss.sgi.com Received: from relay.sgi.com (relay1.corp.sgi.com [137.38.102.111]) by oss.sgi.com (Postfix) with ESMTP id 45D2B7F3F for ; Mon, 7 Jul 2014 14:38:37 -0500 (CDT) Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by relay1.corp.sgi.com (Postfix) with ESMTP id 18DAB8F8065 for ; Mon, 7 Jul 2014 12:38:33 -0700 (PDT) X-ASG-Debug-ID: 1404761911-04bdf0566885be00001-NocioJ Received: from mx1.redhat.com (mx1.redhat.com [209.132.183.28]) by cuda.sgi.com with ESMTP id CnGnZcs1lmxaYmAW (version=TLSv1 cipher=AES256-SHA bits=256 verify=NO) for ; Mon, 07 Jul 2014 12:38:32 -0700 (PDT) X-Barracuda-Envelope-From: bfoster@redhat.com X-Barracuda-Apparent-Source-IP: 209.132.183.28 X-ASG-Whitelist: Client Received: from int-mx14.intmail.prod.int.phx2.redhat.com (int-mx14.intmail.prod.int.phx2.redhat.com [10.5.11.27]) by mx1.redhat.com (8.14.4/8.14.4) with ESMTP id s67JcU3d023497 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Mon, 7 Jul 2014 15:38:31 -0400 Received: from laptop.bfoster (vpn-61-213.rdu2.redhat.com [10.10.61.213]) by int-mx14.intmail.prod.int.phx2.redhat.com (8.14.4/8.14.4) with ESMTP id s67JcSxF007216 (version=TLSv1/SSLv3 cipher=AES128-GCM-SHA256 bits=128 verify=NO); Mon, 7 Jul 2014 15:38:30 -0400 Date: Mon, 7 Jul 2014 15:38:28 -0400 From: Brian Foster To: Eric Sandeen Cc: Eric Sandeen , xfs-oss Subject: Re: [PATCH 1/2] xfs: allow inode allocations in post-growfs disk space Message-ID: <20140707193827.GF4123@laptop.bfoster> X-ASG-Orig-Subj: Re: [PATCH 1/2] xfs: allow inode allocations in post-growfs disk space References: <53B4E1EE.40702@redhat.com> <20140707182108.GD4123@laptop.bfoster> <53BAEE75.9010901@sandeen.net> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <53BAEE75.9010901@sandeen.net> User-Agent: Mutt/1.5.23 (2014-03-12) X-Scanned-By: MIMEDefang 2.68 on 10.5.11.27 X-Barracuda-Connect: mx1.redhat.com[209.132.183.28] X-Barracuda-Start-Time: 1404761912 X-Barracuda-Encrypted: AES256-SHA X-Barracuda-URL: http://192.48.157.11:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 On Mon, Jul 07, 2014 at 02:01:09PM -0500, Eric Sandeen wrote: > On 7/7/14, 1:21 PM, Brian Foster wrote: > > On Wed, Jul 02, 2014 at 11:54:06PM -0500, Eric Sandeen wrote: > > > : > > /* Calculate how much should be reserved for inodes to meet > * the max inode percentage. > */ > if (mp->m_maxicount) { > __uint64_t icount; > > icount = sbp->sb_dblocks * sbp->sb_imax_pct; > do_div(icount, 100); > icount += sbp->sb_agblocks - 1; > >> @@ -620,10 +625,10 @@ xfs_set_inode32(struct xfs_mount *mp) > >> do_div(icount, sbp->sb_agblocks); > >> max_metadata = icount; > >> } else { > >> - max_metadata = sbp->sb_agcount; > >> + max_metadata = agcount; > > > > The fix looks pretty good to me, but what about the 'if' branch of this > > logic here? We calculate max_metadata based on sb_dblocks, which also > > isn't updated until the growfs tp commit. That appears to be a similar > > bug in that we wouldn't set pagf_metadata on the new AGs where > > appropriate, which I think means data allocation could steal the new > > inode space sooner than anticipated. > > Yeah, good catch... > > Hm, well - not that this is an answer, but this code has been this way > since 2005. So I'd like to fix the *regression* w/ my patch as-is, > and then worry about this. > That's fine by me... for this patch: Reviewed-by: Brian Foster > So, on to worrying about this ... ;) > > "max_metadata" seems a little misnamed; inodes can be allocated in higher > AGs, but "max_metadata" and lower are the 'preferred' AGs for inode > allocation. > My impression is that it's named after its very specific/local use: the max ag to set the metadata flag. I don't really like the name either. ;) > We only carve out enough via pag->pagf_metadata to reserve m_maxicount, > which (here) is based on the (old) sb_dblocks & sb_imax_pct. > > So yeah, it seems that in the growfs case, we don't mark any *new* AGs as > "preferred" for inodes, even though with a fixed sb_imax_pct and a larger > sb_dblocks, we'd need more space to accommodate the imaxpct. > > But reserving higher AGs would be a half-measure at best; they weren't > preferred before the growfs, so are very likely not wholly available > after the growfs. > > To really nail this down we'd probably need to see how many inode clusters > could be created in each AG above the old threshold, and keep advancing AGs > until we've "preferred" enough. Bleah. I hate inode32... > That's true, but then you have to worry about if that space is freed up and all that... I was just looking at it from the perspective of using old metadata to update some of our heuristics while thinking it might be easier to move this hunk of code and fix both problems at once. I doubt this is something that reproduces a tangible problem out in the wild much, if ever, given the circumstances. My sense is that this heuristic is not really a guarantee. E.g., setting imaxpct doesn't guarantee one that much space. Somebody could tune that after the fact even after all "preferred" space has been consumed just the same, so it's probably not worth doing any kind of fancy inode allocation tracking to try and make this retroactive or dynamic unless it proves to be a problem. I suspect this primarily exists for the case of larger inode32 fs' where we don't want data allocations to eat up limited inode space right off the bat. Brian > -Eric > > > > > I wonder if this is better moved after the superblock is updated? > > > > Brian > > > >> } > >> > >> - for (index = 0; index < sbp->sb_agcount; index++) { > >> + for (index = 0; index < agcount; index++) { > >> ino = XFS_AGINO_TO_INO(mp, index, agino); > >> > >> if (ino > XFS_MAXINUMBER_32) { > >> @@ -648,11 +653,11 @@ xfs_set_inode32(struct xfs_mount *mp) > >> } > >> > >> xfs_agnumber_t > >> -xfs_set_inode64(struct xfs_mount *mp) > >> +xfs_set_inode64(struct xfs_mount *mp, xfs_agnumber_t agcount) > >> { > >> xfs_agnumber_t index = 0; > >> > >> - for (index = 0; index < mp->m_sb.sb_agcount; index++) { > >> + for (index = 0; index < agcount; index++) { > >> struct xfs_perag *pag; > >> > >> pag = xfs_perag_get(mp, index); > >> @@ -1193,6 +1198,7 @@ xfs_fs_remount( > >> char *options) > >> { > >> struct xfs_mount *mp = XFS_M(sb); > >> + xfs_sb_t *sbp = &mp->m_sb; > >> substring_t args[MAX_OPT_ARGS]; > >> char *p; > >> int error; > >> @@ -1212,10 +1218,10 @@ xfs_fs_remount( > >> mp->m_flags &= ~XFS_MOUNT_BARRIER; > >> break; > >> case Opt_inode64: > >> - mp->m_maxagi = xfs_set_inode64(mp); > >> + mp->m_maxagi = xfs_set_inode64(mp, sbp->sb_agcount); > >> break; > >> case Opt_inode32: > >> - mp->m_maxagi = xfs_set_inode32(mp); > >> + mp->m_maxagi = xfs_set_inode32(mp, sbp->sb_agcount); > >> break; > >> default: > >> /* > >> diff --git a/fs/xfs/xfs_super.h b/fs/xfs/xfs_super.h > >> index bbe3d15..b4cfe21 100644 > >> --- a/fs/xfs/xfs_super.h > >> +++ b/fs/xfs/xfs_super.h > >> @@ -76,8 +76,8 @@ extern __uint64_t xfs_max_file_offset(unsigned int); > >> > >> extern void xfs_flush_inodes(struct xfs_mount *mp); > >> extern void xfs_blkdev_issue_flush(struct xfs_buftarg *); > >> -extern xfs_agnumber_t xfs_set_inode32(struct xfs_mount *); > >> -extern xfs_agnumber_t xfs_set_inode64(struct xfs_mount *); > >> +extern xfs_agnumber_t xfs_set_inode32(struct xfs_mount *, xfs_agnumber_t agcount); > >> +extern xfs_agnumber_t xfs_set_inode64(struct xfs_mount *, xfs_agnumber_t agcount); > >> > >> extern const struct export_operations xfs_export_operations; > >> extern const struct xattr_handler *xfs_xattr_handlers[]; > >> > >> > >> _______________________________________________ > >> xfs mailing list > >> xfs@oss.sgi.com > >> http://oss.sgi.com/mailman/listinfo/xfs > > > > _______________________________________________ > > xfs mailing list > > xfs@oss.sgi.com > > http://oss.sgi.com/mailman/listinfo/xfs > > > From david@fromorbit.com Mon Jul 7 18:18:56 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: xfs@oss.sgi.com Delivered-To: xfs@oss.sgi.com Received: from relay.sgi.com (relay2.corp.sgi.com [137.38.102.29]) by oss.sgi.com (Postfix) with ESMTP id D42387F3F for ; Mon, 7 Jul 2014 18:18:56 -0500 (CDT) Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by relay2.corp.sgi.com (Postfix) with ESMTP id CD5D7304043 for ; Mon, 7 Jul 2014 16:18:53 -0700 (PDT) X-ASG-Debug-ID: 1404775127-04cbb06537319790001-NocioJ Received: from ipmail06.adl6.internode.on.net (ipmail06.adl6.internode.on.net [150.101.137.145]) by cuda.sgi.com with ESMTP id I9NVZ0AwL4iIN4OT for ; Mon, 07 Jul 2014 16:18:48 -0700 (PDT) X-Barracuda-Envelope-From: david@fromorbit.com X-Barracuda-Apparent-Source-IP: 150.101.137.145 X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: AgZYAAIqu1N5LbUrPGdsb2JhbABZgw6DSoUIpDMBAQEBAQEGlHGFawGBFhcEAQEBATg1hAMBAQQBOhwjBQsIAxgJJQ8FJQMHGhOIOgfJYBcYhViJMgeDLYEWAQSadZdiKw Received: from ppp121-45-181-43.lns20.syd7.internode.on.net (HELO dastard) ([121.45.181.43]) by ipmail06.adl6.internode.on.net with ESMTP; 08 Jul 2014 08:48:47 +0930 Received: from dave by dastard with local (Exim 4.80) (envelope-from ) id 1X4IBJ-0002M1-91; Tue, 08 Jul 2014 09:18:45 +1000 Date: Tue, 8 Jul 2014 09:18:45 +1000 From: Dave Chinner To: "Kaul, Yaniv" Cc: "xfs@oss.sgi.com" Subject: Re: git clone over http? (specifically, for xfstest) Message-ID: <20140707231845.GB4453@dastard> X-ASG-Orig-Subj: Re: git clone over http? (specifically, for xfstest) References: <648473255763364B961A02AC3BE1060D03B92D3E5D@MX19A.corp.emc.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <648473255763364B961A02AC3BE1060D03B92D3E5D@MX19A.corp.emc.com> User-Agent: Mutt/1.5.21 (2010-09-15) X-Barracuda-Connect: ipmail06.adl6.internode.on.net[150.101.137.145] X-Barracuda-Start-Time: 1404775127 X-Barracuda-URL: http://192.48.176.25:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 X-Barracuda-Spam-Score: 0.00 X-Barracuda-Spam-Status: No, SCORE=0.00 using per-user scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.7 tests=BSF_SC0_MISMATCH_TO X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.7324 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.00 BSF_SC0_MISMATCH_TO Envelope rcpt doesn't match header On Mon, Jul 07, 2014 at 07:00:57AM -0400, Kaul, Yaniv wrote: > Is there a way to clone the XFSTest git over HTTP? No. > Our enterprise kinda blocks git protocol :( Good luck with that. :/ > If there's some up-to-date mirror in Github, that'll be great. No idea. You'll have to find one yourself and then decide if you trust it... Cheers, Dave. -- Dave Chinner david@fromorbit.com From david@fromorbit.com Mon Jul 7 18:44:58 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: xfs@oss.sgi.com Delivered-To: xfs@oss.sgi.com Received: from relay.sgi.com (relay2.corp.sgi.com [137.38.102.29]) by oss.sgi.com (Postfix) with ESMTP id 927897F3F for ; Mon, 7 Jul 2014 18:44:58 -0500 (CDT) Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by relay2.corp.sgi.com (Postfix) with ESMTP id 8903A304051 for ; Mon, 7 Jul 2014 16:44:58 -0700 (PDT) X-ASG-Debug-ID: 1404776695-04cbb0653531a260001-NocioJ Received: from ipmail06.adl6.internode.on.net (ipmail06.adl6.internode.on.net [150.101.137.145]) by cuda.sgi.com with ESMTP id BVJJPHd94AzsQ1cZ for ; Mon, 07 Jul 2014 16:44:56 -0700 (PDT) X-Barracuda-Envelope-From: david@fromorbit.com X-Barracuda-Apparent-Source-IP: 150.101.137.145 X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: AnRmAOcvu1N5LbUrPGdsb2JhbABZgw5SgniLEJ4fDAEBAQEBAQaUcYFXhBQBgRUXBAEBAQE4NYQDAQEFJxMcGAsQCAMYCSUPBSUDBxoTiEEOyUoXGIVYhyeBKREBUAeDLYEWBZZchBmXYisvgQs Received: from ppp121-45-181-43.lns20.syd7.internode.on.net (HELO dastard) ([121.45.181.43]) by ipmail06.adl6.internode.on.net with ESMTP; 08 Jul 2014 09:14:55 +0930 Received: from dave by dastard with local (Exim 4.80) (envelope-from ) id 1X4Iab-0002PT-L6; Tue, 08 Jul 2014 09:44:53 +1000 Date: Tue, 8 Jul 2014 09:44:53 +1000 From: Dave Chinner To: Mark Tinguely Cc: Brian Foster , xfs@oss.sgi.com Subject: Re: [PATCH 1/5] xfs: remove efi from AIL in log recovery Message-ID: <20140707234453.GC4453@dastard> X-ASG-Orig-Subj: Re: [PATCH 1/5] xfs: remove efi from AIL in log recovery References: <20140702143206.438456679@sgi.com> <20140702144139.620473576@sgi.com> <20140707143016.GA4123@laptop.bfoster> <53BABCBE.5050602@sgi.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <53BABCBE.5050602@sgi.com> User-Agent: Mutt/1.5.21 (2010-09-15) X-Barracuda-Connect: ipmail06.adl6.internode.on.net[150.101.137.145] X-Barracuda-Start-Time: 1404776695 X-Barracuda-URL: http://192.48.176.25:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 X-Barracuda-Spam-Score: 0.00 X-Barracuda-Spam-Status: No, SCORE=0.00 using per-user scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.7 tests=BSF_SC5_SA210e X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.7324 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.00 BSF_SC5_SA210e Custom Rule SA210e On Mon, Jul 07, 2014 at 10:29:02AM -0500, Mark Tinguely wrote: > On 07/07/14 09:30, Brian Foster wrote: > >On Wed, Jul 02, 2014 at 09:32:07AM -0500, Mark Tinguely wrote: > >> (extp->ext_len == 0) || > >> (startblock_fsb>= mp->m_sb.sb_dblocks) || > >> (extp->ext_len>= mp->m_sb.sb_agblocks)) { > >>- /* > >>- * This will pull the EFI from the AIL and > >>- * free the memory associated with it. > >>- */ > >>- set_bit(XFS_EFI_RECOVERED,&efip->efi_flags); > >>- xfs_efi_release(efip, efip->efi_format.efi_nextents); > >>- return XFS_ERROR(EIO); > >>+ error = XFS_ERROR(EIO); > >>+ goto return_free; > > > >This bit doesn't apply to for-next. I get similar problems with less > >trivial hunks on the subsequent patch as well. Looks like you might need > >to rebase the series onto the recent error negation patches..? > > > WTF? Why are the changes not in the dev tree? Why do people have to > do development to the for-next tree? You don't. Brian just asked you to rebase against it because of merge conflicts against the current for-next tree he tried to apply it to. It's obvious to me that you didn't read the discussions about the plans for this dev cycle that went on a month ago: "[DISCUSS] Planning for new dev cycle (3.17)" http://oss.sgi.com/pipermail/xfs/2014-June/036739.html Fact is, this major restructure has been discussed several times over the past couple of months, both on the mailing list and on IRC, and there's been plenty of warning and requests for comments about it. As to being asked to rebase the patch set on the for-next tree, I normally do the merges without anybody having to care about the mismatches due to patch merge order, but we don't normally have a massive set of changes queued up. Most conflicts are trivial, but because of the massive change already queued up, the changes this time are not trivial and so rather than have everyone who wants to review your code have to mangle them to test with the for-next code, he's asked you rebase the patchset against for-next. There's nothing wrong with that - this is a pretty normal thing to have to do when working with topic branches in the upstream repo. I was just about to send an email to ask you rebase - lucky I read this first. ;) FWIW, you should be doing all your testing against for-next, not against the master branch. i.e. $ git checkout -b dev-branch master $ git commit $ git checkout -b testing for-next $ git merge dev-branch Otherwise you aren't testing your changes with all the other changes that have been committed in the current dev cycle.... Cheers, Dave. -- Dave Chinner david@fromorbit.com From david@fromorbit.com Mon Jul 7 20:00:02 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: xfs@oss.sgi.com Delivered-To: xfs@oss.sgi.com Received: from relay.sgi.com (relay1.corp.sgi.com [137.38.102.111]) by oss.sgi.com (Postfix) with ESMTP id 5AA467F4E for ; Mon, 7 Jul 2014 20:00:02 -0500 (CDT) Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by relay1.corp.sgi.com (Postfix) with ESMTP id 512778F8070 for ; Mon, 7 Jul 2014 17:59:59 -0700 (PDT) X-ASG-Debug-ID: 1404781197-04cbb0653531d100001-NocioJ Received: from ipmail06.adl6.internode.on.net (ipmail06.adl6.internode.on.net [150.101.137.145]) by cuda.sgi.com with ESMTP id neukUtthTjPYWJI5 for ; Mon, 07 Jul 2014 17:59:57 -0700 (PDT) X-Barracuda-Envelope-From: david@fromorbit.com X-Barracuda-Apparent-Source-IP: 150.101.137.145 X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: AhpLAKlBu1N5LbUrPGdsb2JhbABZgw6DSqk6AQEBAQEBBppDAYEVFwQBAQEBODWEAwEBBTocIxAIAw4KCSUPBSUDBxoTiEHJLRcYhViJMgeDLYEWBZp1l2Ir Received: from ppp121-45-181-43.lns20.syd7.internode.on.net (HELO dastard) ([121.45.181.43]) by ipmail06.adl6.internode.on.net with ESMTP; 08 Jul 2014 10:29:56 +0930 Received: from dave by dastard with local (Exim 4.80) (envelope-from ) id 1X4JlC-0002oC-Vh; Tue, 08 Jul 2014 10:59:55 +1000 Date: Tue, 8 Jul 2014 10:59:54 +1000 From: Dave Chinner To: Jan Kara Cc: xfs@oss.sgi.com Subject: Re: [PATCH] repair: Repair directory block CRC mismatches Message-ID: <20140708005954.GD4453@dastard> X-ASG-Orig-Subj: Re: [PATCH] repair: Repair directory block CRC mismatches References: <1403602415-28767-1-git-send-email-jack@suse.cz> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1403602415-28767-1-git-send-email-jack@suse.cz> User-Agent: Mutt/1.5.21 (2010-09-15) X-Barracuda-Connect: ipmail06.adl6.internode.on.net[150.101.137.145] X-Barracuda-Start-Time: 1404781197 X-Barracuda-URL: http://192.48.176.25:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 X-Barracuda-Spam-Score: 0.00 X-Barracuda-Spam-Status: No, SCORE=0.00 using per-user scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.7 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.7326 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- On Tue, Jun 24, 2014 at 11:33:35AM +0200, Jan Kara wrote: > It can happen that just CRC doesn't match for directory blocks. In that > case xfs_repair will just report the error but won't fix anything (as > further checking of the block doesn't reveal any problems). Make sure we > recompute and write out new CRC when we failed verification during > reading. > > Signed-off-by: Jan Kara Applied and pushed. Thanks. -- Dave Chinner david@fromorbit.com From david@fromorbit.com Mon Jul 7 20:40:47 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: xfs@oss.sgi.com Delivered-To: xfs@oss.sgi.com Received: from relay.sgi.com (relay2.corp.sgi.com [137.38.102.29]) by oss.sgi.com (Postfix) with ESMTP id 6C9027F51 for ; Mon, 7 Jul 2014 20:40:47 -0500 (CDT) Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by relay2.corp.sgi.com (Postfix) with ESMTP id 65A0130404E for ; Mon, 7 Jul 2014 18:40:47 -0700 (PDT) X-ASG-Debug-ID: 1404783641-04cbb0653631e6e0001-NocioJ Received: from ipmail06.adl6.internode.on.net (ipmail06.adl6.internode.on.net [150.101.137.145]) by cuda.sgi.com with ESMTP id 2VEEDpstGmu4iu7h for ; Mon, 07 Jul 2014 18:40:42 -0700 (PDT) X-Barracuda-Envelope-From: david@fromorbit.com X-Barracuda-Apparent-Source-IP: 150.101.137.145 X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: AgJLAElLu1N5LbUrPGdsb2JhbABZgw5SgnipPQEBAQEBAQabWhcEAQEBATg1hGA7JDQFJQMHLYhBoFuoahiFWIhlaoQtBZp1lVCCEiuBMg Received: from ppp121-45-181-43.lns20.syd7.internode.on.net (HELO dastard) ([121.45.181.43]) by ipmail06.adl6.internode.on.net with ESMTP; 08 Jul 2014 11:10:41 +0930 Received: from dave by dastard with local (Exim 4.80) (envelope-from ) id 1X4KOd-00030J-OA for xfs@oss.sgi.com; Tue, 08 Jul 2014 11:40:39 +1000 Date: Tue, 8 Jul 2014 11:40:39 +1000 From: Dave Chinner To: xfs@oss.sgi.com Subject: [ANNOUCE] xfsprogs: master branch updated to 871fbfd Message-ID: <20140708014039.GV9508@dastard> X-ASG-Orig-Subj: [ANNOUCE] xfsprogs: master branch updated to 871fbfd MIME-Version: 1.0 Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="p2kqVDKq5asng8Dg" Content-Disposition: inline User-Agent: Mutt/1.5.21 (2010-09-15) X-Barracuda-Connect: ipmail06.adl6.internode.on.net[150.101.137.145] X-Barracuda-Start-Time: 1404783641 X-Barracuda-URL: http://192.48.176.25:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 X-Barracuda-Spam-Score: 0.00 X-Barracuda-Spam-Status: No, SCORE=0.00 using per-user scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.7 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.7327 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- --p2kqVDKq5asng8Dg Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Content-Transfer-Encoding: quoted-printable Hi folks, The xfsprogs repository at git://oss.sgi.com/xfs/cmds/xfsprogs has just been updated. The new head of the master branch is commit: 871fbfd repair: get rid of BADFSINO New Commits: Dave Chinner (6): [b5f5c2d] repair: support more than 25 ACLs [97ada36] xfs_db: write command broken on 64 bit values [15e3986] repair: handle directory block corruption in phase 6 [6af7c1e] libxfs: reused invalidated buffers leak state and data [d085fb4] repair: fix quota inode handling in secondary superblocks [871fbfd] repair: get rid of BADFSINO Jan Kara (1): [575010d] repair: Repair directory block CRC mismatches Code Diffstat: db/write.c | 2 +- include/libxfs.h | 1 + libxfs/rdwr.c | 43 ++++++++++++++++++++++++++-- libxfs/xfs_attr_remote.c | 2 +- repair/agheader.c | 44 +++++++++++++++++++---------- repair/attr_repair.c | 73 ++++++++++++++++++++++++++++++--------------= ---- repair/attr_repair.h | 46 +++++++++++++++++++++--------- repair/dir2.c | 44 ++++++++++++++++++----------- repair/phase6.c | 29 +++++++++++++------ repair/sb.c | 2 ++ repair/scan.c | 1 + 11 files changed, 204 insertions(+), 83 deletions(-) --=20 Dave Chinner david@fromorbit.com --p2kqVDKq5asng8Dg Content-Type: application/pgp-signature; name="signature.asc" Content-Description: Digital signature -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.12 (GNU/Linux) iQIcBAEBAgAGBQJTu0wWAAoJEK3oKUf0dfod+LkP/39lD73xCNI3ETE9LHGDVAGu /xY1dBo7j9w5wz/tJ4RWBwmMcigW9LG554dE//FONmXiVfTzHeAL1nEaCa5Q3Ti1 oYwSTRybTxj3Q+MIouvbC+BFBNWwelVYQRESPQcOCAxZMFNxJHblbtaKJMMzM4i6 80z72xuy/hqTuBo4TBpmqWuYeG+uVTAOmMIv92Nx97HwU4YzIQr3PL5LqtvEesIw FcEnAt+gMDM+dckyc3NOJkdyFkZmw6XpC0hjBFKsDqo8qnm8EPQKpRHbd0DfNWX8 vHoL5WmFtHKBKXNiNXxhDZWZhdTNDXrqk4fPjEhn+lKneX3vrMbYRvi0dsl5wfWg oA37tzMerDNl0nSe7cD3ZhGVkxPEmtKSOvnwIkgoCY0aZj/DVx35ROxx4tSVDy8D 78Wn1yUWSikBluWrM0NRdImm90JZEvsRrws3YW/2WuItY3p+iPn35eXKQztLeGap qyCd9jQKLc9zhhe66e+prXw1Og9WkO08ZSDngJV9yzyioxZg6De87p6ojnK2kj3n 1i2fX0yBZaVgC1puxGNhxUS8OrmLJ2M2sE7/p5PT99fG/DTa7cnxHSukFFO7CcsB DcOFUYq9nJ/hsJa0QFGFfXq0OBSfm+Q4xtZ59vljwo7g8DnjM1ueoCvb6GzN6LwL cjEAWvNDjNgRLcah/iHg =fJ+5 -----END PGP SIGNATURE----- --p2kqVDKq5asng8Dg-- From info@inboxtoday.com Mon Jul 7 21:13:07 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=HTML_MESSAGE autolearn=ham version=3.3.1 X-Original-To: xfs@oss.sgi.com Delivered-To: xfs@oss.sgi.com Received: from relay.sgi.com (relay1.corp.sgi.com [137.38.102.111]) by oss.sgi.com (Postfix) with ESMTP id B21407F54 for ; Mon, 7 Jul 2014 21:13:07 -0500 (CDT) Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by relay1.corp.sgi.com (Postfix) with ESMTP id 9E16D8F8066 for ; Mon, 7 Jul 2014 19:13:04 -0700 (PDT) X-ASG-Debug-ID: 1404785581-04cb6c76d04ebfb0001-NocioJ Received: from 0407.icloudspeed.net ([81.27.82.103]) by cuda.sgi.com with ESMTP id YwAHMnvGZEXxsXf8 (version=TLSv1 cipher=AES256-SHA bits=256 verify=NO); Mon, 07 Jul 2014 19:13:01 -0700 (PDT) X-Barracuda-Envelope-From: info@inboxtoday.com X-Barracuda-Apparent-Source-IP: 81.27.82.103 X-Footer: aW5ib3h0b2RheS5jb20= Received: from [41.58.199.173] ([41.58.199.173]) by 0407.icloudspeed.net (Kerio Connect 8.3.1) for buchot@cert.fr; Tue, 8 Jul 2014 02:10:53 +0000 Date: Tue, 8 Jul 2014 02:10:53 +0000 Subject: Re: Dubai Job Offer Applicant Needed !!!! X-Mailer: Kerio Connect 8.3.1/Kerio Connect client X-ASG-Orig-Subj: Re: Dubai Job Offer Applicant Needed !!!! X-User-Agent: Mozilla/5.0 (Windows NT 6.2; WOW64; rv:30.0) Gecko/20100101 Firefox/30.0 Message-ID: <331123223-18718@0407.icloudspeed.net> X-Priority: 3 Importance: Normal MIME-Version: 1.0 From: info@inboxtoday.com Reply-To: princegenka@gmail.com Content-Type: multipart/alternative; boundary="=-4rwLP7kv2Ms7i3ff/qbE" X-Barracuda-Connect: UNKNOWN[81.27.82.103] X-Barracuda-Start-Time: 1404785581 X-Barracuda-Encrypted: AES256-SHA X-Barracuda-URL: http://192.48.176.15:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 X-Barracuda-Spam-Score: 1.77 X-Barracuda-Spam-Status: No, SCORE=1.77 using per-user scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.7 tests=HTML_MESSAGE, MISSING_HEADERS, NO_REAL_NAME, PLING_PLING, RDNS_NONE, TO_CC_NONE X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.7327 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.00 NO_REAL_NAME From: does not include a real name 1.21 MISSING_HEADERS Missing To: header 0.00 HTML_MESSAGE BODY: HTML included in message 0.46 PLING_PLING Subject has lots of exclamation marks 0.00 TO_CC_NONE No To: or Cc: header 0.10 RDNS_NONE Delivered to trusted network by a host with no rDNS To: undisclosed-recipients:; --=-4rwLP7kv2Ms7i3ff/qbE Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Eng. Prince Genka Zakum Development Company. [ZADCO] P.O. Box 46800. Abu Dhabi, United Arab Emirates. E-mail : princegenka@gmail.com Dear Applicant, Assalamu Alaikum Warahmatullahi Wabarakatuh, =C2=A0 We saw your CV Posted on ( www.monstergulf.com ) which has been shortlist= ed by the HR Department of Zakum Development Company (ZADCO),=C2=A0 attac= hed here in with is an official applicant Online Application form for yo= u to complete and send back to us via email with a copy of your Updated = CV, Identification and qualifications.Your application will be evaluated= on the basis of the answers provided from the Questionnaire with your r= esume. We will notified you upon review of your submitted information. O= ur salary and Perks are based on your qualifications. We also assure all= our=C2=A0 applicants that the entitlement from our office are very attra= ctive and suitable for all post. Below list are the current vacancies and positions in our firm where applic= ant are needed for immediate employment. 1. Petroleum Engineering 2. Civil Engineering 3. QA/QC Engineer 4. Arch= itectural Engineering 5. Marine Engineering 6. Mechanical Engineering 7.= Electrical Engineering 8.=C2=A0 Electronics-Telecommunication Engineerin= g 9.=C2=A0 Surveying Engineer 10. Petroleum Engineer 11. Business develop= ment manager 12. Project Managers 13. Site Engineers 14. Auto Cad Enginee= r/Draftsman 15. Accountants 16. Piping Engineer 17. HR Personnel 18. Docu= ment controllers 19. Logistic/warehousing 20. Emergency Nurse/Doctor 21.= Safety,HSE/Risk/Security officers 22. Panning Engineer 23. Geophysicist= 24. Marketer Entitlement, Compensation and Benefits packages include: . A very attractive net salary paid in US$, AED,Sterling or Euros equiv= alent depending on, employee home country and currency preference. . Quality single or family housing accommodation in company community. . Free medical care in UAE for employee and family. . Excellent educational assistance benefits with family status employment. . Paid airfares allowing full flexibility with holiday travel. . Personal effects shipment and excess baggage allowances. . Full access to some of the finest and social recreational facilities in U= AE. CONTRACT DURATION: 24 Months, (Two Year) and renewable only on satisfactory performance by emp= loyee. Regards: Eng. Prince Genka =C2=A0 EMPLOYMENT PROCESSING=C2=A0 MANAGER= --=-4rwLP7kv2Ms7i3ff/qbE Content-Type: text/html; charset="utf-8" --=-4rwLP7kv2Ms7i3ff/qbE-- From arekm@maven.pl Tue Jul 8 03:41:13 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=T_DKIM_INVALID autolearn=ham version=3.3.1 X-Original-To: xfs@oss.sgi.com Delivered-To: xfs@oss.sgi.com Received: from relay.sgi.com (relay2.corp.sgi.com [137.38.102.29]) by oss.sgi.com (Postfix) with ESMTP id D9DFB7F4E for ; Tue, 8 Jul 2014 03:41:13 -0500 (CDT) Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by relay2.corp.sgi.com (Postfix) with ESMTP id C4411304051 for ; Tue, 8 Jul 2014 01:41:10 -0700 (PDT) X-ASG-Debug-ID: 1404808864-04cb6c76cf4fcba0001-NocioJ Received: from mail-wg0-f49.google.com (mail-wg0-f49.google.com [74.125.82.49]) by cuda.sgi.com with ESMTP id 5KcwvQtCdiD87xcN (version=TLSv1 cipher=RC4-SHA bits=128 verify=NO) for ; Tue, 08 Jul 2014 01:41:05 -0700 (PDT) X-Barracuda-Envelope-From: arekm@maven.pl X-Barracuda-Apparent-Source-IP: 74.125.82.49 Received: by mail-wg0-f49.google.com with SMTP id a1so2165636wgh.8 for ; Tue, 08 Jul 2014 01:41:04 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=maven.pl; s=maven; h=from:to:subject:date:user-agent:mime-version:content-type :content-transfer-encoding:message-id; bh=hPHKr2w2jGIJbSBgDozQnmDOW97vI1jEC5Alkba4BEY=; b=UPYo//2QKNVeiQaeebBsjMoyuzqhlRq/vJZvog/WkzM3zjnf86M1I0Z/fLUIWlQl7C z91qRQbqHM+cYtc9dJvUgs69HBqkZPvuyx6FEOh97jOr/ZxTmmsaVoEksTD/N+/9nouV /infsLrJpPw/feJJVhqHBPILKn/jU+rzI23O0= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:from:to:subject:date:user-agent:mime-version :content-type:content-transfer-encoding:message-id; bh=hPHKr2w2jGIJbSBgDozQnmDOW97vI1jEC5Alkba4BEY=; b=Ysf9wpgJxslRuUjpuK5Jc6/xUUAImeznXU4pLVanFkdMgBzEpd/qPqJAD4hyk5QxNX A2bfX0rurmYrq8mf+zeTm2EL5TrAxnEmdGRyNqEK1/pbiJyr7mYITAdNRsg91H1hR9jl QxAd3HfZFJ/rLTn6A4sWif6EtWx6d8LuIaZkQTmb3aRrI2BnXDoNkzZfG9zhomocHkyw bdw5h0EX2ezWdvH2JmUpE8buomVbMIKCbAiMRMzBMgKZrnEWxBhvi5OEYmNY5UxwJXGt PyWO11JucdPEKr5CiqAxgRRLtvYTCdV0imhc7gBUVTjmO6k6vCrt4UgL8tP9FJMAoJp2 Bmzw== X-Gm-Message-State: ALoCoQkoRWtKhpV+TXyQRi6X7exvoHnnCECNPMxdpGnpU0ZvZuQ2rT2tFEzcjj3JZTnxcvYUbrXs X-Received: by 10.194.187.101 with SMTP id fr5mr1763303wjc.125.1404808864707; Tue, 08 Jul 2014 01:41:04 -0700 (PDT) Received: from t400.localnet ([91.234.176.246]) by mx.google.com with ESMTPSA id i12sm94888539wjr.32.2014.07.08.01.41.03 for (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Tue, 08 Jul 2014 01:41:03 -0700 (PDT) From: Arkadiusz =?utf-8?q?Mi=C5=9Bkiewicz?= To: xfs@oss.sgi.com Subject: usrquota,prjquota mount success on 3.16rc4 but Failed to initialize disk quotas on 3.10.43 Date: Tue, 8 Jul 2014 10:41:01 +0200 X-ASG-Orig-Subj: usrquota,prjquota mount success on 3.16rc4 but Failed to initialize disk quotas on 3.10.43 User-Agent: KMail/1.13.7 (Linux/3.16.0-rc4-dirty; KDE/4.13.2; x86_64; ; ) MIME-Version: 1.0 Content-Type: Text/Plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <201407081041.02020.arekm@maven.pl> X-Barracuda-Connect: mail-wg0-f49.google.com[74.125.82.49] X-Barracuda-Start-Time: 1404808865 X-Barracuda-Encrypted: RC4-SHA X-Barracuda-URL: http://192.48.176.15:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 X-Barracuda-Spam-Score: 0.00 X-Barracuda-Spam-Status: No, SCORE=0.00 using per-user scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.7 tests=DKIM_SIGNED, DKIM_VERIFIED X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.7334 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- -0.00 DKIM_VERIFIED Domain Keys Identified Mail: signature passes verification 0.00 DKIM_SIGNED Domain Keys Identified Mail: message has a signature My broken fs http://ixion.pld-linux.org/~arekm/p2/x1/web2-home.metadump.gz thanks to "xfsprogs: fixes for 3.2.1" by Dave is now almost in good shape. What I found interesting is that repairing it with current git xfs_repair a= nd=20 then mounting (-o usrquota,prjquota) on 3.16.0-rc4 gives me: [32208.142316] XFS (sdb): Mounting V4 Filesystem [32208.205449] XFS (sdb): Ending clean mount [32208.258991] XFS (sdb): Quotacheck needed: Please wait. [32821.930437] XFS (sdb): Quotacheck: Done. Then I umount it and mount again (same options as before) but on 3.10.43=20 kernel: [ 111.325889] XFS (sdb): Mounting Filesystem [ 111.419331] XFS (sdb): Failed to initialize disk quotas. [ 111.419339] XFS (sdb): Ending clean mount What did change in later kernels that could have meaning here? (so I could = try=20 to backport that change). =46or testing I mounted again on 3.16 and: [33870.472769] XFS (sdb): Mounting V4 Filesystem [33870.543539] XFS (sdb): Ending clean mount [33870.597791] XFS (sdb): Quotacheck needed: Please wait. [34484.332879] XFS (sdb): Quotacheck: Done and again on 3.10.43: [ 1649.215390] XFS (sdb): Mounting Filesystem [ 1649.316894] XFS (sdb): Failed to initialize disk quotas. [ 1649.316902] XFS (sdb): Ending clean mount (there was an additional problems with hangs on quotacheck like=20 http://sprunge.us/LYQO (3.16.0-rc3-00006-g16874b2) http://sprunge.us/FfhR (3.15.3) http://sprunge.us/ObWI (3.10.20) but it only happened when doing quotacheck on image mounted via loop. Wasn'= t=20 able to trigger it when using real disk, so blaming loop code for now) =2D-=20 Arkadiusz Mi=C5=9Bkiewicz, arekm / maven.pl From namjae.jeon@samsung.com Tue Jul 8 06:59:38 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.1 required=5.0 tests=HDRS_LCASE,T_MANY_HDRS_LCASE autolearn=no version=3.3.1 X-Original-To: xfs@oss.sgi.com Delivered-To: xfs@oss.sgi.com Received: from relay.sgi.com (relay3.corp.sgi.com [198.149.34.15]) by oss.sgi.com (Postfix) with ESMTP id 8DC1D7F3F for ; Tue, 8 Jul 2014 06:59:38 -0500 (CDT) Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by relay3.corp.sgi.com (Postfix) with ESMTP id 030B3AC005 for ; Tue, 8 Jul 2014 04:59:37 -0700 (PDT) X-ASG-Debug-ID: 1404820773-04cb6c76d0504bc0001-NocioJ Received: from mailout2.samsung.com (mailout2.samsung.com [203.254.224.25]) by cuda.sgi.com with ESMTP id 4viSYifkTRzZ2PgV (version=TLSv1 cipher=RC4-MD5 bits=128 verify=NO) for ; Tue, 08 Jul 2014 04:59:35 -0700 (PDT) X-Barracuda-Envelope-From: namjae.jeon@samsung.com X-Barracuda-Apparent-Source-IP: 203.254.224.25 X-Barracuda-IPDD: Level2 [samsung.com/203.254.224.25] Received: from epcpsbgr4.samsung.com (u144.gpu120.samsung.co.kr [203.254.230.144]) by mailout2.samsung.com (Oracle Communications Messaging Server 7u4-24.01 (7.0.4.24.0) 64bit (built Nov 17 2011)) with ESMTP id <0N8E00MFT6N8PC30@mailout2.samsung.com> for xfs@oss.sgi.com; Tue, 08 Jul 2014 20:59:32 +0900 (KST) X-Barracuda-IPDD: Level2 [samsung.com/203.254.224.25] X-Barracuda-IPDD: Level2 [samsung.com/203.254.224.25] X-Barracuda-IPDD: Level2 [samsung.com/203.254.224.25] X-Barracuda-IPDD: Level2 [samsung.com/203.254.224.25] X-Barracuda-IPDD: Level2 [samsung.com/203.254.224.25] X-Barracuda-IPDD: Level2 [samsung.com/203.254.224.25] Received: from epcpsbgm1.samsung.com ( [172.20.52.116]) by epcpsbgr4.samsung.com (EPCPMTA) with SMTP id 74.1E.13369.42DDBB35; Tue, 08 Jul 2014 20:59:32 +0900 (KST) X-AuditID: cbfee690-b7fb56d000003439-29-53bbdd246626 Received: from epmmp1.local.host ( [203.254.227.16]) by epcpsbgm1.samsung.com (EPCPMTA) with SMTP id 9E.52.04943.42DDBB35; Tue, 08 Jul 2014 20:59:32 +0900 (KST) Received: from DONAMJAEJEO06 ([10.88.104.63]) by mmp1.samsung.com (Oracle Communications Messaging Server 7u4-24.01 (7.0.4.24.0) 64bit (built Nov 17 2011)) with ESMTPA id <0N8E003KH6N8C410@mmp1.samsung.com>; Tue, 08 Jul 2014 20:59:32 +0900 (KST) From: Namjae Jeon To: Dave Chinner , Theodore Ts'o Cc: linux-ext4 , linux-fsdevel@vger.kernel.org, linux-kernel@vger.kernel.org, =?iso-8859-2?Q?Luk=E1=B9_Czerner?= , Brian Foster , Christoph Hellwig , Ashish Sangwan , xfs@oss.sgi.com Subject: [PATCH 0/3] fs: introduce IOC_MOV_DATA ioctl Date: Tue, 08 Jul 2014 20:59:32 +0900 X-ASG-Orig-Subj: [PATCH 0/3] fs: introduce IOC_MOV_DATA ioctl Message-id: <003d01cf9aa4$14386cf0$3ca946d0$@samsung.com> MIME-version: 1.0 Content-type: text/plain; charset=iso-8859-2 Content-transfer-encoding: 7bit X-Mailer: Microsoft Outlook 14.0 Thread-index: Ac+aopve62ajSocMTpGwICvq23LGFw== Content-language: ko X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFrrNIsWRmVeSWpSXmKPExsWyRsSkRFfl7u5gg23b1SyWTrzEbPHuc5XF lmP3GC1OT1jEZLHswWYWi5nz7rBZ7Nl7ksXi8q45bBatPT/ZLRb13WJ04PI4tUjCY/MKLY+m M0eZPVZf2Mro8X7fVTaPvi2rGD0+b5ILYI/isklJzcksSy3St0vgyvhzzbngsWzF9ts7mBoY J4t3MXJySAiYSPT/2MIEYYtJXLi3nq2LkYtDSGApo0Tjhd/MMEX3e7czQSQWMUr0rZoOlhAS +MsoMW9veRcjBwebgLbEny2iIGERAVeJeXe/M4LUMwusZZI4NfMzI0iNsICpxIZJqSA1LAKq EtNmHmcDsXkFLCXOXj/BBGELSvyYfI8FpJxZQEfi66QIkDCzgLzE5jVvoc5RkNhx9jUjxCo9 iZWTzzFC1IhI7HvxjhGi5ie7xNcVYRCrBCS+TT4ENlJCQFZi0wGoMZISB1fcYJnAKDYLyeJZ CItnIVk8C8mCBYwsqxhFUwuSC4qT0otM9IoTc4tL89L1kvNzNzECI/b0v2cTdjDeO2B9iDEZ aPtEZinR5HxgxOeVxBsamxlZmJqYGhuZW5qRJqwkzqv2KClISCA9sSQ1OzW1ILUovqg0J7X4 ECMTB6dUA2Ns9DrvQv9twVEXJGO2WloyyLZx2z15p8u11YcpIpf3bJPAtXqpa1828JdFLs3b urz74NXZy+45hidp1VSmcE9/k6emaZq8tzey7W3DonWpi3uf1fMe1pvA4n14OtNXmbf7mpji Tx1eV7vS5MiK3LggW5/okvsqW7ny155f+1Qw1kJ/zuGsX0osxRmJhlrMRcWJANJIcKDuAgAA X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFupmleLIzCtJLcpLzFFi42I5/e+xgK7K3d3BBqs/yVosnXiJ2eLd5yqL LcfuMVqcnrCIyWLZg80sFjPn3WGz2LP3JIvF5V1z2Cxae36yWyzqu8XowOVxapGEx+YVWh5N Z44ye6y+sJXR4/2+q2wefVtWMXp83iQXwB7VwGiTkZqYklqkkJqXnJ+SmZduq+QdHO8cb2pm YKhraGlhrqSQl5ibaqvk4hOg65aZA3SdkkJZYk4pUCggsbhYSd8O04TQEDddC5jGCF3fkCC4 HiMDNJCwhjHjzzXngseyFdtv72BqYJws3sXIySEhYCJxv3c7E4QtJnHh3nq2LkYuDiGBRYwS faumM4MkhAT+MkrM21vexcjBwSagLfFniyhIWETAVWLe3e+MIPXMAmuZJE7N/MwIUiMsYCqx YVIqSA2LgKrEtJnH2UBsXgFLibPXTzBB2IISPybfYwEpZxbQkfg6KQIkzCwgL7F5zVtmiHMU JHacfc0IsUpPYuXkc4wQNSIS+168Y5zAKDALyaRZCJNmIZk0C0nHAkaWVYyiqQXJBcVJ6bmG esWJucWleel6yfm5mxjBCeGZ1A7GlQ0WhxgFOBiVeHhXHNwVLMSaWFZcmXuIUYKDWUmE98up 3cFCvCmJlVWpRfnxRaU5qcWHGE2B/pzILCWanA9MVnkl8YbGJmZGlkbmhhZGxuZK4rwHWq0D hQTSE0tSs1NTC1KLYPqYODilGhhXZ56bu7zmF3/+lad5/txPhC/emP4vZuPlmrM/drz6tkXr SsdOr3lPEq/wTUt1emIYt9f6d+WyuetepwWe/G2pMaXhn9h70XqHKepH5nU+zgiY1rHJ/Zrg zuecxyx+X0zjDMkLUGg6N/XjVd21v+yWe/TGdjt8+bl/QY4Xp4FzcGAdt88tU7MQJZbijERD Leai4kQAfRv/XB4DAAA= DLP-Filter: Pass X-MTR: 20000000000000000@CPGS X-CFilter-Loop: Reflected X-Barracuda-Connect: mailout2.samsung.com[203.254.224.25] X-Barracuda-Start-Time: 1404820774 X-Barracuda-Encrypted: RC4-MD5 X-Barracuda-URL: http://192.48.176.15:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 For speeding non linear media editing operations, we have already implemeted FALLOC_FL_COLLAPSE_RANGE (merged in kernel since 3.15) and FALLOC_FL_INSERT_RANGE (currently awaiting review). Both of these fallocate flags are used to remove/insert data within same file. In continuation of our effort of speeding non linear media editing (although the use case is not limited to just media editing) we introduce here an ioctl FS_IOC_MOV_DATA which moves arbitrary (but fs block size aligned as of now) bytes of data from one file into other file . The movement takes place by transfering complete extents from donor file to receiver file and leaves a hole in the donor file at the point from where the blocks are moved. To eliminate the hole from donor, user can call COLLAPSE_RANGE after the ioctl is finished if contiguous file space is required. The main data structure for this ioctl is: struct mov_data { int donor_fd; /* fd of donor file */ int receiver_fd; /* fd of receiver file */ loff_t donor_offset; /* offset into donor file */ loff_t receiver_offset; /* offset into receiver file */ loff_t length; /* data length to be moved */ loff_t moved_len; /* data length actually moved after completion */ int flags; /* Currently unused */ }; FS_IOC_MOV_DATA will move length bytes of data from donor_fd's donor_offset to receiver_fd's receiver_offset. The prerequisite is that there must be atleast length size hole present @receiver_offset. For inserting hole within file size at receiver_offset, FALLOC_FL_INSERT_RANGE can be used. We will shortly post new version of FALLOC_FL_INSERT_RANGE which enables inserting hole instead of current behavior of allocating unwritten extents. If the requirement is to create hole at the end of file, truncate(2) will suffice. The semantics of this ioctl are: 1) Like collapse range, offsets and length should be file system block size aligned. 2) In the receiver file, atleast length size hole should be present at receiver_offset 3) It does not change file size of any of donor or receiver file. 4) It leaves a hole at the place from where blocks are moved out in donor file. 5) Both (donor_offset + length) and (receiver_offset + length) should be within size of donor file and receiver file respectively. Only unwritten extents resides beyond file size and it does not make sense to transfer unwritten extents, leave apart the security issues it may raise. 6) If the range to be transfered from donor file contain any holes, they are replicated as it is in receiver file. It mean holes are preserved and the length of hole will be added to moved_len signifying that the hole range is succesfully transfered. Currently, flags field is unused but could be used to expand new functionalities in future. Some potential enhancements could be: 1) Instead of moving data, one could use it for zero copying between 2 regular files. 2) Can expand it for a generic VFS interface for defragmenting files. Copying data from donor to receiver and than swapping their extents. Currently xfs has swap_extent ioctl and ext4 has move_extent ioctl. These two calls could additionaly go through the common interface. 3) Or it can be expanded just for swapping extents without copying. Note: These patchse are created on source included INSERT RANGE patches. Please Firstly Apply INSERT RANGE patches before applying IOC_MOV_DATA patches. Namjae Jeon (3): fs: Add support IOC_MOV_DATA ioctl xfs: Add support IOC_MOV_DATA ioctl ext4: Add support IOC_MOV_DATA ioctl TODO: Add testcases in xfstests -- 1.7.11-rc0 From namjae.jeon@samsung.com Tue Jul 8 06:59:44 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.1 required=5.0 tests=HDRS_LCASE,T_MANY_HDRS_LCASE autolearn=no version=3.3.1 X-Original-To: xfs@oss.sgi.com Delivered-To: xfs@oss.sgi.com Received: from relay.sgi.com (relay2.corp.sgi.com [137.38.102.29]) by oss.sgi.com (Postfix) with ESMTP id 2C2B57F54 for ; Tue, 8 Jul 2014 06:59:44 -0500 (CDT) Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by relay2.corp.sgi.com (Postfix) with ESMTP id 0511030405F for ; Tue, 8 Jul 2014 04:59:40 -0700 (PDT) X-ASG-Debug-ID: 1404820778-04cb6c76cf504bd0001-NocioJ Received: from mailout2.samsung.com (mailout2.samsung.com [203.254.224.25]) by cuda.sgi.com with ESMTP id uxm2RGz9MVVHCdDT (version=TLSv1 cipher=RC4-MD5 bits=128 verify=NO) for ; Tue, 08 Jul 2014 04:59:39 -0700 (PDT) X-Barracuda-Envelope-From: namjae.jeon@samsung.com X-Barracuda-Apparent-Source-IP: 203.254.224.25 X-Barracuda-IPDD: Level2 [samsung.com/203.254.224.25] Received: from epcpsbgr2.samsung.com (u142.gpu120.samsung.co.kr [203.254.230.142]) by mailout2.samsung.com (Oracle Communications Messaging Server 7u4-24.01 (7.0.4.24.0) 64bit (built Nov 17 2011)) with ESMTP id <0N8E00MG66NEPC30@mailout2.samsung.com> for xfs@oss.sgi.com; Tue, 08 Jul 2014 20:59:38 +0900 (KST) X-Barracuda-IPDD: Level2 [samsung.com/203.254.224.25] X-Barracuda-IPDD: Level2 [samsung.com/203.254.224.25] X-Barracuda-IPDD: Level2 [samsung.com/203.254.224.25] X-Barracuda-IPDD: Level2 [samsung.com/203.254.224.25] X-Barracuda-IPDD: Level2 [samsung.com/203.254.224.25] X-Barracuda-IPDD: Level2 [samsung.com/203.254.224.25] Received: from epcpsbgm1.samsung.com ( [172.20.52.113]) by epcpsbgr2.samsung.com (EPCPMTA) with SMTP id 6F.88.19452.92DDBB35; Tue, 08 Jul 2014 20:59:38 +0900 (KST) X-AuditID: cbfee68e-b7fb96d000004bfc-34-53bbdd299941 Received: from epmmp2 ( [203.254.227.17]) by epcpsbgm1.samsung.com (EPCPMTA) with SMTP id B1.62.04943.92DDBB35; Tue, 08 Jul 2014 20:59:37 +0900 (KST) Received: from DONAMJAEJEO06 ([10.88.104.63]) by mmp2.samsung.com (Oracle Communications Messaging Server 7u4-24.01 (7.0.4.24.0) 64bit (built Nov 17 2011)) with ESMTPA id <0N8E00D7B6ND7J40@mmp2.samsung.com>; Tue, 08 Jul 2014 20:59:37 +0900 (KST) From: Namjae Jeon To: Dave Chinner , Theodore Ts'o Cc: linux-ext4 , linux-fsdevel@vger.kernel.org, linux-kernel@vger.kernel.org, =?iso-8859-2?Q?Luk=E1=B9_Czerner?= , Brian Foster , Christoph Hellwig , Ashish Sangwan , xfs@oss.sgi.com Subject: [PATCH 1/3] fs: Add support IOC_MOV_DATA ioctl Date: Tue, 08 Jul 2014 20:59:37 +0900 X-ASG-Orig-Subj: [PATCH 1/3] fs: Add support IOC_MOV_DATA ioctl Message-id: <003e01cf9aa4$176da750$4648f5f0$@samsung.com> MIME-version: 1.0 Content-type: text/plain; charset=iso-8859-2 Content-transfer-encoding: 7bit X-Mailer: Microsoft Outlook 14.0 Thread-index: Ac+aosMnVzxFR0gxRXO+9qFSHQEpIA== Content-language: ko X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFrrLIsWRmVeSWpSXmKPExsWyRsSkUFfr7u5gg1/NTBZLJ15itnj3ucpi y7F7jBanJyxislj2YDOLxcx5d9gs9uw9yWJxedccNovWnp/sFov6bjE6cHmcWiThsXmFlkfT maPMHqsvbGX0eL/vKptH35ZVjB6fN8kFsEdx2aSk5mSWpRbp2yVwZaxZ/I+1oM+8Ym/LR5YG xt3aXYycHBICJhIfznQxQdhiEhfurWcDsYUEljJKbF/vAVfz9DN7FyMXUHw6o8Seq3vZIJy/ jBLnJ1xm7mLk4GAT0Jb4s0UUpEFEwFVi3t3vjCA1zAJrmSROzfzMCFIjLGAuceQkN0gNi4Cq xIS3n5hBbF4BS4nJ59ZC2YISPybfYwEpZxbQkfg6KQIkzCwgL7F5zVtmiHsUJHacfc0IsUpP ov3OXVaIGhGJfS/ega2VEPjKLjH54H9WiF0CEt8mHwKbKSEgK7HpANQcSYmDK26wTGAUm4Vk 8yyEzbOQbJ6FZMMCRpZVjKKpBckFxUnpRUZ6xYm5xaV56XrJ+bmbGIFRe/rfs74djDcPWB9i TAbaPpFZSjQ5Hxj1eSXxhsZmRhamJqbGRuaWZqQJK4nzLnqYFCQkkJ5YkpqdmlqQWhRfVJqT WnyIkYmDU6qB0TwpmL25YMu5R7Gv1uw1e5wha7JnUs/OVVfZb+v8WduyfFJv7A3WDxkLw4xX uSYZ9cXFxfzyCrKZxDctvjVwrlmNyPZV+2Kv7+l/u1+b+8J75bSrTeZPYn0fBJVGz/w2OXlj W6RhV/2trAVTI3mbN9x+s+r95U3rtaatmcIWU/jL8Lm4n0ecvBJLcUaioRZzUXEiABdJsCzw AgAA X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFuplleLIzCtJLcpLzFFi42I5/e+xoK7m3d3BBrO+mFosnXiJ2eLd5yqL LcfuMVqcnrCIyWLZg80sFjPn3WGz2LP3JIvF5V1z2Cxae36yWyzqu8XowOVxapGEx+YVWh5N Z44ye6y+sJXR4/2+q2wefVtWMXp83iQXwB7VwGiTkZqYklqkkJqXnJ+SmZduq+QdHO8cb2pm YKhraGlhrqSQl5ibaqvk4hOg65aZA3SdkkJZYk4pUCggsbhYSd8O04TQEDddC5jGCF3fkCC4 HiMDNJCwhjFjzeJ/rAV95hV7Wz6yNDDu1u5i5OSQEDCR+PD0MzuELSZx4d56ti5GLg4hgemM Enuu7oVy/jJKnJ9wmbmLkYODTUBb4s8WUZAGEQFXiXl3vzOC1DALrGWSODXzMyNIjbCAucSR k9wgNSwCqhIT3n5iBrF5BSwlJp9bC2ULSvyYfI8FpJxZQEfi66QIkDCzgLzE5jVvmSHuUZDY cfY1I8QqPYn2O3dZIWpEJPa9eMc4gVFgFpJJsxAmzUIyaRaSjgWMLKsYRVMLkguKk9JzDfWK E3OLS/PS9ZLzczcxgpPCM6kdjCsbLA4xCnAwKvHwrji4K1iINbGsuDL3EKMEB7OSCO+XU7uD hXhTEiurUovy44tKc1KLDzGaAv05kVlKNDkfmLDySuINjU3MjCyNzA0tjIzNlcR5D7RaBwoJ pCeWpGanphakFsH0MXFwSjUwbu4PcArnrqy/l7Llt7qS8L3naW6c6o2Cl63dXDPrPbI3x7sw +Bwvqt94TW5Cne3srz+cKq5UWB0p5eF6YHlnesH9dufXy7ZUOJiKxs8IXS+dbH+f47tv17Q0 9dP7N159U+eloxTk5K5REsXOIxDavHhH5slzF2RyTvy/Hj4hkvOXJKP8FDUlluKMREMt5qLi RAAO9HG8IAMAAA== DLP-Filter: Pass X-MTR: 20000000000000000@CPGS X-CFilter-Loop: Reflected X-Barracuda-Connect: mailout2.samsung.com[203.254.224.25] X-Barracuda-Start-Time: 1404820779 X-Barracuda-Encrypted: RC4-MD5 X-Barracuda-URL: http://192.48.176.15:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 For speeding non linear media editing operations, we have already implemeted FALLOC_FL_COLLAPSE_RANGE (merged in kernel since 3.15) and FALLOC_FL_INSERT_RANGE (currently awaiting review). Both of these fallocate flags are used to remove/insert data within same file. In continuation of our effort of speeding non linear media editing (although the use case is not limited to just media editing) we introduce here an ioctl FS_IOC_MOV_DATA which moves arbitrary (but fs block size aligned as of now) bytes of data from one file into other file . The movement takes place by transfering complete extents from donor file to receiver file and leaves a hole in the donor file at the point from where the blocks are moved. To eliminate the hole from donor, user can call COLLAPSE_RANGE after the ioctl is finished if contiguous file space is required. The main data structure for this ioctl is: struct mov_data { int donor_fd; /* fd of donor file */ int receiver_fd; /* fd of receiver file */ loff_t donor_offset; /* offset into donor file */ loff_t receiver_offset; /* offset into receiver file */ loff_t length; /* data length to be moved */ loff_t moved_len; /* data length actually moved after completion */ int flags; /* Currently unused */ }; FS_IOC_MOV_DATA will move length bytes of data from donor_fd's donor_offset to receiver_fd's receiver_offset. The prerequisite is that there must be atleast length size hole present @receiver_offset. For inserting hole within file size at receiver_offset, FALLOC_FL_INSERT_RANGE can be used. We will shortly post new version of FALLOC_FL_INSERT_RANGE which enables inserting hole instead of current behavior of allocating unwritten extents. If the requirement is to create hole at the end of file, truncate(2) will suffice. Signed-off-by: Namjae Jeon Signed-off-by: Ashish Sangwan --- fs/ioctl.c | 108 ++++++++++++++++++++++++++++++++++++++++++++++++ include/linux/fs.h | 2 + include/uapi/linux/fs.h | 13 ++++++ 3 files changed, 123 insertions(+) diff --git a/fs/ioctl.c b/fs/ioctl.c index 8ac3fad..a1508f8 100644 --- a/fs/ioctl.c +++ b/fs/ioctl.c @@ -215,6 +215,111 @@ static int ioctl_fiemap(struct file *filp, unsigned long arg) return error; } +static int ioctl_mov_data(struct file *filp, unsigned long arg) +{ + int error; + struct mov_data m_data; + struct mov_data __user *um_data = (struct mov_data __user *) arg; + struct inode *donor, *receiver; + struct fd donor_fd, receiver_fd; + + if (copy_from_user(&m_data, um_data, sizeof(struct mov_data))) + return -EFAULT; + + if (m_data.donor_offset < 0 || m_data.receiver_offset < 0 || + m_data.length <= 0) + return -EINVAL; + + donor_fd = fdget(m_data.donor_fd); + if (!donor_fd.file) { + error = -EINVAL; + goto out1; + } + + if (!(donor_fd.file->f_mode & FMODE_WRITE) || + !(donor_fd.file->f_mode & FMODE_READ) || + (donor_fd.file->f_flags & O_APPEND)) { + error = -EBADF; + goto out1; + } + + receiver_fd = fdget(m_data.receiver_fd); + if (!receiver_fd.file) { + error = -EINVAL; + goto out2; + } + + if (!(receiver_fd.file->f_mode & FMODE_WRITE) || + !(receiver_fd.file->f_mode & FMODE_READ) || + (receiver_fd.file->f_flags & O_APPEND)) { + error = -EBADF; + goto out2; + } + + donor = file_inode(donor_fd.file); + receiver = file_inode(receiver_fd.file); + + if (donor->i_sb != receiver->i_sb) { + error = -EINVAL; + goto out2; + } + + if (donor == receiver) { + error = -EINVAL; + goto out2; + } + + error = security_file_permission(donor_fd.file, MAY_WRITE); + if (error) + goto out2; + + error = security_file_permission(receiver_fd.file, MAY_WRITE); + if (error) + goto out2; + + if (IS_IMMUTABLE(donor) || IS_IMMUTABLE(receiver)) { + error = -EPERM; + goto out2; + } + + if (IS_SWAPFILE(donor) || IS_SWAPFILE(receiver)) { + error = -EINVAL; + goto out2; + } + + if (S_ISFIFO(donor->i_mode) | S_ISFIFO(receiver->i_mode)) { + error = -ESPIPE; + goto out2; + } + + if (!S_ISREG(donor->i_mode) || !S_ISREG(receiver->i_mode)) { + error = -ENODEV; + goto out2; + } + + if (!donor->i_op->mov_data) { + error = -EOPNOTSUPP; + goto out2; + } + + m_data.moved_len = 0; + sb_start_write(donor->i_sb); + error = donor->i_op->mov_data(donor, receiver, m_data.donor_offset, + m_data.receiver_offset, m_data.length, + &m_data.moved_len); + sb_end_write(donor->i_sb); + + if (copy_to_user(um_data, &m_data, sizeof(struct mov_data))) + error = -EFAULT; + +out2: + fdput(receiver_fd); +out1: + fdput(donor_fd); + + return error; +} + #ifdef CONFIG_BLOCK static inline sector_t logical_to_blk(struct inode *inode, loff_t offset) @@ -591,6 +696,9 @@ int do_vfs_ioctl(struct file *filp, unsigned int fd, unsigned int cmd, case FIGETBSZ: return put_user(inode->i_sb->s_blocksize, argp); + case FS_IOC_MOV_DATA: + return ioctl_mov_data(filp, arg); + default: if (S_ISREG(inode->i_mode)) error = file_ioctl(filp, cmd, arg); diff --git a/include/linux/fs.h b/include/linux/fs.h index 1649d9d..a13afe3 100644 --- a/include/linux/fs.h +++ b/include/linux/fs.h @@ -1520,6 +1520,8 @@ struct inode_operations { umode_t create_mode, int *opened); int (*tmpfile) (struct inode *, struct dentry *, umode_t); int (*set_acl)(struct inode *, struct posix_acl *, int); + int (*mov_data)(struct inode *, struct inode *, loff_t, loff_t, + loff_t, loff_t *); } ____cacheline_aligned; ssize_t rw_copy_check_uvector(int type, const struct iovec __user * uvector, diff --git a/include/uapi/linux/fs.h b/include/uapi/linux/fs.h index ca1a11b..6766d12 100644 --- a/include/uapi/linux/fs.h +++ b/include/uapi/linux/fs.h @@ -57,6 +57,18 @@ struct inodes_stat_t { long dummy[5]; /* padding for sysctl ABI compatibility */ }; +/* + * Structure passed to IOC_MOV_DATA + */ +struct mov_data { + int donor_fd; /* fd of donor file */ + int receiver_fd; /* fd of receiver file */ + loff_t donor_offset; /* offset into donor file */ + loff_t receiver_offset; /* offset into receiver file */ + loff_t length; /* data length to be moved */ + loff_t moved_len; /* successfully moved length */ + int flags; /* option to expand new feature */ +}; #define NR_FILE 8192 /* this can well be larger on a larger system */ @@ -162,6 +174,7 @@ struct inodes_stat_t { #define FS_IOC_GETVERSION _IOR('v', 1, long) #define FS_IOC_SETVERSION _IOW('v', 2, long) #define FS_IOC_FIEMAP _IOWR('f', 11, struct fiemap) +#define FS_IOC_MOV_DATA _IOWR('f', 12, struct mov_data) #define FS_IOC32_GETFLAGS _IOR('f', 1, int) #define FS_IOC32_SETFLAGS _IOW('f', 2, int) #define FS_IOC32_GETVERSION _IOR('v', 1, int) -- 1.7.11-rc0 From namjae.jeon@samsung.com Tue Jul 8 06:59:56 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.1 required=5.0 tests=HDRS_LCASE,T_MANY_HDRS_LCASE autolearn=no version=3.3.1 X-Original-To: xfs@oss.sgi.com Delivered-To: xfs@oss.sgi.com Received: from relay.sgi.com (relay3.corp.sgi.com [198.149.34.15]) by oss.sgi.com (Postfix) with ESMTP id 6787C7F3F for ; Tue, 8 Jul 2014 06:59:56 -0500 (CDT) Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by relay3.corp.sgi.com (Postfix) with ESMTP id CF9FDAC007 for ; Tue, 8 Jul 2014 04:59:55 -0700 (PDT) X-ASG-Debug-ID: 1404820791-04cbb06538339e80001-NocioJ Received: from mailout4.samsung.com (mailout4.samsung.com [203.254.224.34]) by cuda.sgi.com with ESMTP id Fjcuvgx3Wl33Sl6z (version=TLSv1 cipher=RC4-MD5 bits=128 verify=NO) for ; Tue, 08 Jul 2014 04:59:53 -0700 (PDT) X-Barracuda-Envelope-From: namjae.jeon@samsung.com X-Barracuda-Apparent-Source-IP: 203.254.224.34 X-Barracuda-IPDD: Level2 [samsung.com/203.254.224.34] Received: from epcpsbgr3.samsung.com (u143.gpu120.samsung.co.kr [203.254.230.143]) by mailout4.samsung.com (Oracle Communications Messaging Server 7u4-24.01 (7.0.4.24.0) 64bit (built Nov 17 2011)) with ESMTP id <0N8E00HHG6NQD0D0@mailout4.samsung.com> for xfs@oss.sgi.com; Tue, 08 Jul 2014 20:59:50 +0900 (KST) X-Barracuda-IPDD: Level2 [samsung.com/203.254.224.34] X-Barracuda-IPDD: Level2 [samsung.com/203.254.224.34] X-Barracuda-IPDD: Level2 [samsung.com/203.254.224.34] X-Barracuda-IPDD: Level2 [samsung.com/203.254.224.34] X-Barracuda-IPDD: Level2 [samsung.com/203.254.224.34] X-Barracuda-IPDD: Level2 [samsung.com/203.254.224.34] Received: from epcpsbgm2.samsung.com ( [172.20.52.112]) by epcpsbgr3.samsung.com (EPCPMTA) with SMTP id 47.F8.14704.63DDBB35; Tue, 08 Jul 2014 20:59:50 +0900 (KST) X-AuditID: cbfee68f-b7fef6d000003970-08-53bbdd36957e Received: from epmmp1.local.host ( [203.254.227.16]) by epcpsbgm2.samsung.com (EPCPMTA) with SMTP id 2F.9A.05196.63DDBB35; Tue, 08 Jul 2014 20:59:50 +0900 (KST) Received: from DONAMJAEJEO06 ([10.88.104.63]) by mmp1.samsung.com (Oracle Communications Messaging Server 7u4-24.01 (7.0.4.24.0) 64bit (built Nov 17 2011)) with ESMTPA id <0N8E003P86NPC410@mmp1.samsung.com>; Tue, 08 Jul 2014 20:59:49 +0900 (KST) From: Namjae Jeon To: Dave Chinner , Theodore Ts'o Cc: linux-ext4 , linux-fsdevel@vger.kernel.org, linux-kernel@vger.kernel.org, =?iso-8859-2?Q?Luk=E1=B9_Czerner?= , Brian Foster , Christoph Hellwig , Ashish Sangwan , xfs@oss.sgi.com Subject: [PATCH 2/3] xfs: Add support IOC_MOV_DATA ioctl Date: Tue, 08 Jul 2014 20:59:49 +0900 X-ASG-Orig-Subj: [PATCH 2/3] xfs: Add support IOC_MOV_DATA ioctl Message-id: <003f01cf9aa4$1e9e5240$5bdaf6c0$@samsung.com> MIME-version: 1.0 Content-type: text/plain; charset=iso-8859-2 Content-transfer-encoding: 7bit X-Mailer: Microsoft Outlook 14.0 Thread-index: Ac+aotzQmzVVwwQQRe6D1N7Gugu0PQ== Content-language: ko X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFrrHIsWRmVeSWpSXmKPExsWyRsSkQNfs7u5gg85dyhZLJ15itnj3ucpi y7F7jBanJyxislj2YDOLxcx5d9gs9uw9yWJxedccNovWnp/sFov6bjE6cHmcWiThsXmFlkfT maPMHqsvbGX0eL/vKptH35ZVjB6fN8kFsEdx2aSk5mSWpRbp2yVwZfz7/pWl4Gdhxd/3e1gb GF9HdTFyckgImEjs/PaJFcIWk7hwbz1bFyMXh5DAUkaJ23NesMIUHdzVCJVYxCix9e1cFgjn L6PEneZJQBkODjYBbYk/W0RBGkQEXCXm3f3OCFLDLLCWSeLUzM+MIDXCAhYSJzZmgtSwCKhK PNz+A2wBr4ClxMF9b6BsQYkfk++xgJQzC+hIfJ0UARJmFpCX2LzmLTPEPQoSO86+ZoRYpSfx et9BFogaEYl9L96BrZUQ+Mou8fn8MjaIXQIS3yYfApspISArsekA1BxJiYMrbrBMYBSbhWTz LITNs5BsnoVkwwJGllWMoqkFyQXFSelFxnrFibnFpXnpesn5uZsYgXF7+t+z/h2Mdw9YH2JM Bto+kVlKNDkfGPd5JfGGxmZGFqYmpsZG5pZmpAkrifPef5gUJCSQnliSmp2aWpBaFF9UmpNa fIiRiYNTqoEx/bnERgX7n6s4stY/L8vecXpxEPvKddPj3JMLT5in5//dfXxeQ/kBnxCr6Tee mNQ9nL+ae0UlZ/LbB7ddu2rVdhq26ew948V7b/+0dYX/TE4bbTwmHdsrfD9Wxf1f325ryVmm CTX+v/2ZNz77ujxYlOHU7keaV+1s+8s267v6uBc2JNw2fhWqxFKckWioxVxUnAgA6ZOZWPEC AAA= X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFuplleLIzCtJLcpLzFFi42I5/e+xgK7Z3d3BBj/niVssnXiJ2eLd5yqL LcfuMVqcnrCIyWLZg80sFjPn3WGz2LP3JIvF5V1z2Cxae36yWyzqu8XowOVxapGEx+YVWh5N Z44ye6y+sJXR4/2+q2wefVtWMXp83iQXwB7VwGiTkZqYklqkkJqXnJ+SmZduq+QdHO8cb2pm YKhraGlhrqSQl5ibaqvk4hOg65aZA3SdkkJZYk4pUCggsbhYSd8O04TQEDddC5jGCF3fkCC4 HiMDNJCwhjHj3/evLAU/Cyv+vt/D2sD4OqqLkZNDQsBE4uCuRjYIW0ziwr31QDYXh5DAIkaJ rW/nskA4fxkl7jRPAspwcLAJaEv82SIK0iAi4Cox7+53RpAaZoG1TBKnZn5mBKkRFrCQOLEx E6SGRUBV4uH2H6wgNq+ApcTBfW+gbEGJH5PvsYCUMwvoSHydFAESZhaQl9i85i0zxD0KEjvO vmaEWKUn8XrfQRaIGhGJfS/eMU5gFJiFZNIshEmzkEyahaRjASPLKkbR1ILkguKk9FwjveLE 3OLSvHS95PzcTYzgpPBMegfjqgaLQ4wCHIxKPLwrDu4KFmJNLCuuzD3EKMHBrCTC++XU7mAh 3pTEyqrUovz4otKc1OJDjKZAf05klhJNzgcmrLySeENjEzMjSyNzQwsjY3Mlcd6DrdaBQgLp iSWp2ampBalFMH1MHJxSDYztr8Uy+iuatVYkHTw8J2VT+YTjRYnL3mnHLpozSXRJ8vKJgofE uCryjfuu/1xyqPXIi5jrs/x/9HouZHT86+P7ReF01pPnfz77nlF4e9T0c36ayuQ0vsPHZBgN d7851bZT59Hli/I73zNu5KxYU7fNWvjC3p5kuU6HAyq3ZCaZh81X/ecefPO/EktxRqKhFnNR cSIAI2yyEiADAAA= DLP-Filter: Pass X-MTR: 20000000000000000@CPGS X-CFilter-Loop: Reflected X-Barracuda-Connect: mailout4.samsung.com[203.254.224.34] X-Barracuda-Start-Time: 1404820793 X-Barracuda-Encrypted: RC4-MD5 X-Barracuda-URL: http://192.48.176.25:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 This patch implements fs ioctl's IOC_MOV_DATA for XFS. The semantics of this ioctl are: 1) Like collapse range, offsets and length should be file system block size aligned. 2) In the receiver file, atleast length size hole should be present at receiver_offset 3) It does not change file size of any of donor or receiver file. 4) It leaves a hole at the place from where blocks are moved out in donor file. 5) Both (donor_offset + length) and (receiver_offset + length) should be within size of donor file and receiver file respectively. Only unwritten extents resides beyond file size and it does not make sense to transfer unwritten extents, leave apart the security issues it may raise. 6) If the range to be transfered from donor file contain any holes, they are replicated as it is in receiver file. It mean holes are preserved and the length of hole will be added to moved_len signifying that the hole range is succesfully transfered. Signed-off-by: Namjae Jeon Signed-off-by: Ashish Sangwan --- fs/xfs/libxfs/xfs_bmap.c | 148 ++++++++++++++++++++++++++++ fs/xfs/libxfs/xfs_bmap.h | 4 + fs/xfs/xfs_bmap_util.c | 251 +++++++++++++++++++++++++++++++++++++++++++++++ fs/xfs/xfs_bmap_util.h | 3 + fs/xfs/xfs_iops.c | 1 + 5 files changed, 407 insertions(+) diff --git a/fs/xfs/libxfs/xfs_bmap.c b/fs/xfs/libxfs/xfs_bmap.c index 3dee150..c2ae99e 100644 --- a/fs/xfs/libxfs/xfs_bmap.c +++ b/fs/xfs/libxfs/xfs_bmap.c @@ -5982,3 +5982,151 @@ del_cursor: xfs_trans_log_inode(tp, ip, logflags); return error; } +/* + * Move an extent record pointed by got and whose extent number is stored in + * donor_ext from donor inode dip to receiver inode rip. + * Extent will be moved at roffset_fsb inside receiver inode. + * Caller of this function must make sure there is atleast got->br_blockcount + * size hole at roffset_fsb. + */ +int xfs_move_extent( + struct xfs_trans *tp, + xfs_inode_t *dip, + xfs_inode_t *rip, + xfs_extnum_t donor_ext, + struct xfs_bmbt_irec *got, + xfs_fileoff_t roffset_fsb, + xfs_fsblock_t *dfirstblock, + struct xfs_bmap_free *dflist, + xfs_fsblock_t *rfirstblock, + struct xfs_bmap_free *rflist) + +{ + struct xfs_mount *mp = dip->i_mount; + struct xfs_bmbt_rec_host *gotp; + struct xfs_btree_cur *dcur; + struct xfs_btree_cur *rcur; + xfs_ifork_t *difp; + xfs_ifork_t *rifp; + xfs_extnum_t idx; + int i; + int dlogflags; + int rlogflags; + int tmp_logflags; + int error; + int whichfork = XFS_DATA_FORK; + struct xfs_bmalloca bma = { NULL }; + + if (unlikely(XFS_TEST_ERROR( + (XFS_IFORK_FORMAT(dip, whichfork) != XFS_DINODE_FMT_EXTENTS && + XFS_IFORK_FORMAT(dip, whichfork) != XFS_DINODE_FMT_BTREE), + mp, XFS_ERRTAG_BMAPIFORMAT, XFS_RANDOM_BMAPIFORMAT))) { + XFS_ERROR_REPORT("xfs_move_extent", + XFS_ERRLEVEL_LOW, mp); + return -EFSCORRUPTED; + } + + if (unlikely(XFS_TEST_ERROR( + (XFS_IFORK_FORMAT(rip, whichfork) != XFS_DINODE_FMT_EXTENTS && + XFS_IFORK_FORMAT(rip, whichfork) != XFS_DINODE_FMT_BTREE), + mp, XFS_ERRTAG_BMAPIFORMAT, XFS_RANDOM_BMAPIFORMAT))) { + XFS_ERROR_REPORT("xfs_move_extent", + XFS_ERRLEVEL_LOW, mp); + return -EFSCORRUPTED; + } + + if (XFS_FORCED_SHUTDOWN(mp)) + return -EIO; + + dlogflags = XFS_ILOG_CORE; + difp = XFS_IFORK_PTR(dip, whichfork); + + if (difp->if_flags & XFS_IFBROOT) { + dcur = xfs_bmbt_init_cursor(mp, tp, dip, whichfork); + dcur->bc_private.b.firstblock = *dfirstblock; + dcur->bc_private.b.flist = dflist; + dcur->bc_private.b.flags = 0; + } else { + dcur = NULL; + dlogflags |= XFS_ILOG_DEXT; + } + + rlogflags = XFS_ILOG_CORE; + rifp = XFS_IFORK_PTR(rip, whichfork); + + if (rifp->if_flags & XFS_IFBROOT) { + rcur = xfs_bmbt_init_cursor(mp, tp, rip, whichfork); + rcur->bc_private.b.firstblock = *rfirstblock; + rcur->bc_private.b.flist = rflist; + rcur->bc_private.b.flags = 0; + } else { + rcur = NULL; + rlogflags |= XFS_ILOG_DEXT; + } + + if (dcur) { + error = xfs_bmbt_lookup_eq(dcur, + got->br_startoff, + got->br_startblock, + got->br_blockcount, + &i); + if (error) + goto del_cursor; + XFS_WANT_CORRUPTED_GOTO(i == 1, del_cursor); + } + + gotp = xfs_iext_bno_to_ext(rifp, roffset_fsb, &idx); + + /* Initialize bma */ + bma.tp = tp; + bma.ip = rip; + bma.flist = rflist; + bma.firstblock = rfirstblock; + bma.cur = rcur; + bma.got.br_startoff = roffset_fsb; + bma.got.br_startblock = got->br_startblock; + bma.got.br_blockcount = got->br_blockcount; + bma.got.br_state = got->br_state; + bma.idx = idx; + + error = xfs_bmap_add_extent_hole_real(&bma, whichfork); + if (error) + goto del_cursor; + rlogflags |= bma.logflags; + rip->i_d.di_nblocks += got->br_blockcount; + + xfs_iext_remove(dip, donor_ext, 1, 0); + if (dcur) { + error = xfs_btree_delete(dcur, &i); + if (error) + goto del_cursor; + XFS_WANT_CORRUPTED_GOTO(i == 1, del_cursor); + } + XFS_IFORK_NEXT_SET(dip, whichfork, + XFS_IFORK_NEXTENTS(dip, whichfork) - 1); + dip->i_d.di_nblocks -= got->br_blockcount; + + if (xfs_bmap_wants_extents(dip, whichfork)) { + ASSERT(dcur != NULL); + error = xfs_bmap_btree_to_extents(tp, dip, dcur, &tmp_logflags, + whichfork); + dlogflags |= tmp_logflags; + } + +del_cursor: + if (dcur) { + dcur->bc_private.b.allocated = 0; + xfs_btree_del_cursor(dcur, + error ? XFS_BTREE_ERROR : XFS_BTREE_NOERROR); + } + xfs_trans_log_inode(tp, dip, dlogflags); + + if (rcur) { + rcur->bc_private.b.allocated = 0; + xfs_btree_del_cursor(rcur, + error ? XFS_BTREE_ERROR : XFS_BTREE_NOERROR); + } + xfs_trans_log_inode(tp, rip, rlogflags); + + return error; +} diff --git a/fs/xfs/libxfs/xfs_bmap.h b/fs/xfs/libxfs/xfs_bmap.h index af05899..ebfe584 100644 --- a/fs/xfs/libxfs/xfs_bmap.h +++ b/fs/xfs/libxfs/xfs_bmap.h @@ -191,5 +191,9 @@ int xfs_bmap_shift_extents_right(struct xfs_trans *tp, struct xfs_inode *ip, xfs_extnum_t *current_ext, xfs_extnum_t end_ext, xfs_fsblock_t *firstblock, struct xfs_bmap_free *flist, int num_exts); +int xfs_move_extent(struct xfs_trans *, xfs_inode_t *, xfs_inode_t *, + xfs_extnum_t, struct xfs_bmbt_irec *, xfs_fileoff_t, + xfs_fsblock_t *, struct xfs_bmap_free *, xfs_fsblock_t *, + struct xfs_bmap_free *); #endif /* __XFS_BMAP_H__ */ diff --git a/fs/xfs/xfs_bmap_util.c b/fs/xfs/xfs_bmap_util.c index 3c05843..c004b25 100644 --- a/fs/xfs/xfs_bmap_util.c +++ b/fs/xfs/xfs_bmap_util.c @@ -2071,3 +2071,254 @@ out_trans_cancel: xfs_trans_cancel(tp, 0); goto out_unlock; } + +/* + * Compute and return the size of hole, if present, @offset_fsb. + * The hole size is distance between offset_fsb and till we reach the next + * allocated extent. If next extent is beyond isize, the size is computed + * till isize. + */ +int +xfs_compute_hole_size( + xfs_inode_t *ip, + xfs_fileoff_t offset_fsb, + struct xfs_trans *tp, + xfs_fileoff_t *count) +{ + struct xfs_ifork *ifp; + struct xfs_bmbt_rec_host *gotp; + struct xfs_bmbt_irec got; + xfs_extnum_t current_ext; + xfs_fileoff_t isize_fsb; + int error = 0; + + *count = 0; + isize_fsb = XFS_B_TO_FSB(ip->i_mount, VFS_I(ip)->i_size); + ASSERT(isize_fsb > offset_fsb); + + ifp = XFS_IFORK_PTR(ip, XFS_DATA_FORK); + if (!(ifp->if_flags & XFS_IFEXTENTS)) { + error = xfs_iread_extents(tp, ip, XFS_DATA_FORK); + if (error) + return error; + } + + gotp = xfs_iext_bno_to_ext(ifp, offset_fsb, ¤t_ext); + if (gotp) { + xfs_bmbt_get_all(gotp, &got); + if (got.br_startoff != offset_fsb) { + ASSERT(got.br_startoff > offset_fsb); + *count = (isize_fsb > got.br_startoff) ? + (got.br_startoff - offset_fsb) : + (isize_fsb - offset_fsb); + } + } else + *count = isize_fsb - offset_fsb; + + return error; +} + +int +xfs_vn_move_data( + struct inode *donor, + struct inode *receiver, + loff_t doffset, + loff_t roffset, + loff_t len, + loff_t *moved_len) +{ + struct xfs_mount *mp; + struct xfs_ifork *ifp; + struct xfs_trans *tp; + struct xfs_bmbt_rec_host *gotp; + struct xfs_bmbt_irec got; + struct xfs_bmap_free dfree_list; + struct xfs_bmap_free rfree_list; + xfs_inode_t *dip; + xfs_inode_t *rip; + xfs_extnum_t split_ext; + xfs_extnum_t dcurrent_ext = 0; + xfs_fsblock_t dfirstblock; + xfs_fsblock_t rfirstblock; + xfs_fileoff_t dcurrent_fsb; + xfs_fileoff_t rcurrent_fsb; + xfs_fileoff_t len_fsb; + xfs_fileoff_t moved_blocks = 0; + xfs_fileoff_t hole_blkcnt = 0; + xfs_off_t pg_start; + int committed; + int error; + unsigned mask = (1 << donor->i_blkbits) - 1; + + dip = XFS_I(donor); + rip = XFS_I(receiver); + mp = dip->i_mount; + + if (XFS_FORCED_SHUTDOWN(dip->i_mount)) + return -EIO; + + xfs_lock_two_inodes(dip, rip, XFS_IOLOCK_EXCL); + + if (doffset + len > donor->i_size || roffset + len > receiver->i_size) { + error = EINVAL; + goto out; + } + + if (doffset & mask || roffset & mask || len & mask) { + error = EINVAL; + goto out; + } + + dcurrent_fsb = XFS_B_TO_FSB(mp, doffset); + rcurrent_fsb = XFS_B_TO_FSB(mp, roffset); + len_fsb = XFS_B_TO_FSB(mp, len); + + pg_start = round_down(doffset, PAGE_SIZE); + error = -filemap_write_and_wait_range(donor->i_mapping, pg_start, -1); + if (error) + goto out; + truncate_pagecache_range(donor, pg_start, -1); + + pg_start = round_down(roffset, PAGE_SIZE); + error = -filemap_write_and_wait_range(receiver->i_mapping, + pg_start, -1); + if (error) + goto out; + truncate_pagecache_range(receiver, pg_start, -1); + + error = xfs_qm_dqattach(dip, 0); + if (error) + goto out; + + error = xfs_qm_dqattach(rip, 0); + if (error) + goto out; + + error = xfs_bmap_split_extent(dip, dcurrent_fsb, &split_ext); + if (error) + goto out; + + error = xfs_bmap_split_extent(dip, dcurrent_fsb + len_fsb, + &split_ext); + if (error) + goto out; + + ifp = XFS_IFORK_PTR(dip, XFS_DATA_FORK); + + while (moved_blocks < len_fsb && !error) { + gotp = xfs_iext_bno_to_ext(ifp, dcurrent_fsb, &dcurrent_ext); + if (!gotp) { + /* No more data blocks left in donor */ + moved_blocks = len_fsb; + break; + } + + xfs_bmbt_get_all(gotp, &got); + if (dcurrent_fsb != got.br_startoff) { + if (dcurrent_fsb > got.br_startoff) { + error = -EFSCORRUPTED; + break; + } + hole_blkcnt = got.br_startoff - dcurrent_fsb; + dcurrent_fsb += hole_blkcnt; + rcurrent_fsb += hole_blkcnt; + moved_blocks += hole_blkcnt; + if (moved_blocks >= len_fsb) { + moved_blocks = len_fsb; + break; + } + } + + tp = xfs_trans_alloc(mp, XFS_TRANS_DIOSTRAT); + + /* + * We would need to reserve permanent block for transaction. + * This will come into picture when after shifting extent into + * hole we found that adjacent extents can be merged which + * may lead to freeing of a block during record update. + */ + error = xfs_trans_reserve(tp, &M_RES(mp)->tr_write, + XFS_DIOSTRAT_SPACE_RES(mp, 0), 0); + if (error) { + xfs_trans_cancel(tp, 0); + break; + } + + xfs_lock_two_inodes(dip, rip, XFS_ILOCK_EXCL); + + error = xfs_trans_reserve_quota(tp, mp, dip->i_udquot, + dip->i_gdquot, dip->i_pdquot, + XFS_DIOSTRAT_SPACE_RES(mp, 0), 0, + XFS_QMOPT_RES_REGBLKS); + if (error) + goto error2; + + error = xfs_trans_reserve_quota(tp, mp, rip->i_udquot, + rip->i_gdquot, rip->i_pdquot, + XFS_DIOSTRAT_SPACE_RES(mp, 0), 0, + XFS_QMOPT_RES_REGBLKS); + if (error) + goto error2; + + xfs_trans_ijoin(tp, dip, 0); + xfs_trans_ijoin(tp, rip, 0); + + xfs_bmap_init(&dfree_list, &dfirstblock); + xfs_bmap_init(&rfree_list, &rfirstblock); + + /* compute the hole size in first iteration */ + if (moved_blocks == hole_blkcnt) { + error = xfs_compute_hole_size(rip, rcurrent_fsb, + tp, &hole_blkcnt); + if (error) + goto error0; + if (hole_blkcnt < len_fsb) { + error = EINVAL; + goto error0; + } + } + + error = xfs_move_extent(tp, dip, rip, dcurrent_ext, &got, + rcurrent_fsb, &dfirstblock, + &dfree_list, &rfirstblock, &rfree_list); + if (error) + goto error0; + + error = xfs_bmap_finish(&tp, &dfree_list, &committed); + if (error) + goto error0; + + error = xfs_bmap_finish(&tp, &rfree_list, &committed); + if (error) + goto error1; + + error = xfs_trans_commit(tp, 0); + + if (!error) { + dcurrent_fsb += got.br_blockcount; + moved_blocks += got.br_blockcount; + rcurrent_fsb += got.br_blockcount; + } + + xfs_iunlock(dip, XFS_ILOCK_EXCL); + xfs_iunlock(rip, XFS_ILOCK_EXCL); + } +out: + *moved_len = moved_blocks << donor->i_blkbits; + xfs_iunlock(dip, XFS_IOLOCK_EXCL); + xfs_iunlock(rip, XFS_IOLOCK_EXCL); + return -error; + +error0: + xfs_bmap_cancel(&dfree_list); +error1: + xfs_bmap_cancel(&rfree_list); +error2: + xfs_trans_cancel(tp, XFS_TRANS_RELEASE_LOG_RES | XFS_TRANS_ABORT); + xfs_iunlock(dip, XFS_ILOCK_EXCL); + xfs_iunlock(rip, XFS_ILOCK_EXCL); + xfs_iunlock(dip, XFS_IOLOCK_EXCL); + xfs_iunlock(rip, XFS_IOLOCK_EXCL); + *moved_len = moved_blocks << donor->i_blkbits; + return -error; +} diff --git a/fs/xfs/xfs_bmap_util.h b/fs/xfs/xfs_bmap_util.h index 9a18a4b..b2ae123 100644 --- a/fs/xfs/xfs_bmap_util.h +++ b/fs/xfs/xfs_bmap_util.h @@ -104,6 +104,9 @@ int xfs_collapse_file_space(struct xfs_inode *, xfs_off_t offset, xfs_off_t len); int xfs_insert_file_space(struct xfs_inode *, xfs_off_t offset, xfs_off_t len); +int xfs_vn_move_data(struct inode *donor, struct inode *receiver, + loff_t doffset, loff_t roffset, loff_t len, + loff_t *moved_len); /* EOF block manipulation functions */ bool xfs_can_free_eofblocks(struct xfs_inode *ip, bool force); diff --git a/fs/xfs/xfs_iops.c b/fs/xfs/xfs_iops.c index d75621a..63c1621 100644 --- a/fs/xfs/xfs_iops.c +++ b/fs/xfs/xfs_iops.c @@ -1100,6 +1100,7 @@ static const struct inode_operations xfs_inode_operations = { .listxattr = xfs_vn_listxattr, .fiemap = xfs_vn_fiemap, .update_time = xfs_vn_update_time, + .mov_data = xfs_vn_move_data, }; static const struct inode_operations xfs_dir_inode_operations = { -- 1.7.11-rc0 From namjae.jeon@samsung.com Tue Jul 8 07:00:07 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.1 required=5.0 tests=HDRS_LCASE,T_MANY_HDRS_LCASE autolearn=no version=3.3.1 X-Original-To: xfs@oss.sgi.com Delivered-To: xfs@oss.sgi.com Received: from relay.sgi.com (relay3.corp.sgi.com [198.149.34.15]) by oss.sgi.com (Postfix) with ESMTP id 5781A7F5D for ; Tue, 8 Jul 2014 07:00:07 -0500 (CDT) Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by relay3.corp.sgi.com (Postfix) with ESMTP id C16B6AC004 for ; Tue, 8 Jul 2014 05:00:06 -0700 (PDT) X-ASG-Debug-ID: 1404820803-04cbb06535339ea0001-NocioJ Received: from mailout4.samsung.com (mailout4.samsung.com [203.254.224.34]) by cuda.sgi.com with ESMTP id OQds45rwk4MNvoqG (version=TLSv1 cipher=RC4-MD5 bits=128 verify=NO) for ; Tue, 08 Jul 2014 05:00:05 -0700 (PDT) X-Barracuda-Envelope-From: namjae.jeon@samsung.com X-Barracuda-Apparent-Source-IP: 203.254.224.34 X-Barracuda-IPDD: Level2 [samsung.com/203.254.224.34] Received: from epcpsbgr3.samsung.com (u143.gpu120.samsung.co.kr [203.254.230.143]) by mailout4.samsung.com (Oracle Communications Messaging Server 7u4-24.01 (7.0.4.24.0) 64bit (built Nov 17 2011)) with ESMTP id <0N8E00K5Q6O3EKA0@mailout4.samsung.com> for xfs@oss.sgi.com; Tue, 08 Jul 2014 21:00:03 +0900 (KST) X-Barracuda-IPDD: Level2 [samsung.com/203.254.224.34] X-Barracuda-IPDD: Level2 [samsung.com/203.254.224.34] X-Barracuda-IPDD: Level2 [samsung.com/203.254.224.34] X-Barracuda-IPDD: Level2 [samsung.com/203.254.224.34] X-Barracuda-IPDD: Level2 [samsung.com/203.254.224.34] X-Barracuda-IPDD: Level2 [samsung.com/203.254.224.34] Received: from epcpsbgm1.samsung.com ( [172.20.52.114]) by epcpsbgr3.samsung.com (EPCPMTA) with SMTP id C4.09.14704.34DDBB35; Tue, 08 Jul 2014 21:00:03 +0900 (KST) X-AuditID: cbfee68f-b7fef6d000003970-75-53bbdd43fd67 Received: from epmmp2 ( [203.254.227.17]) by epcpsbgm1.samsung.com (EPCPMTA) with SMTP id A2.72.04943.24DDBB35; Tue, 08 Jul 2014 21:00:03 +0900 (KST) Received: from DONAMJAEJEO06 ([10.88.104.63]) by mmp2.samsung.com (Oracle Communications Messaging Server 7u4-24.01 (7.0.4.24.0) 64bit (built Nov 17 2011)) with ESMTPA id <0N8E00DEY6O27J40@mmp2.samsung.com>; Tue, 08 Jul 2014 21:00:02 +0900 (KST) From: Namjae Jeon To: Dave Chinner , Theodore Ts'o Cc: linux-ext4 , linux-fsdevel@vger.kernel.org, linux-kernel@vger.kernel.org, =?iso-8859-2?Q?Luk=E1=B9_Czerner?= , Brian Foster , Christoph Hellwig , Ashish Sangwan , xfs@oss.sgi.com Subject: [PATCH 3/3] ext4: Add support IOC_MOV_DATA ioctl Date: Tue, 08 Jul 2014 21:00:02 +0900 X-ASG-Orig-Subj: [PATCH 3/3] ext4: Add support IOC_MOV_DATA ioctl Message-id: <004001cf9aa4$2670e280$7352a780$@samsung.com> MIME-version: 1.0 Content-type: text/plain; charset=iso-8859-2 Content-transfer-encoding: 7bit X-Mailer: Microsoft Outlook 14.0 Thread-index: Ac+aowQ7E9eDkVQpQZW+5VUe+l3c2g== Content-language: ko X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFrrHIsWRmVeSWpSXmKPExsWyRsSkSNf57u5ggw33BSyWTrzEbPHuc5XF lmP3GC1OT1jEZLHswWYWi5nz7rBZ7Nl7ksXi8q45bBatPT/ZLRb13WJ04PI4tUjCY/MKLY+m M0eZPVZf2Mro8X7fVTaPvi2rGD0+b5ILYI/isklJzcksSy3St0vgynhw7jxbwcbMio49d1gb GN+FdDFyckgImEjs27OJCcIWk7hwbz1bFyMXh5DAUkaJzmtPmWGK1vavgUpMZ5RoaT7MApIQ EvjLKPF7n0YXIwcHm4C2xJ8toiBhEQFXiXl3vzOC1DMLrGWSODXzMyNIQljAUuLItofsIDaL gKpE79H9YHFeoPjlhW+YIGxBiR+T77GAzGQW0JH4OikCJMwsIC+xec1bqHsUJHacfc0IsUtP 4tK7f6wQNSIS+168A9srIfCVXeJW90moXQIS3yYfApspISArsekA1BxJiYMrbrBMYBSbhWTz LITNs5BsnoVkwwJGllWMoqkFyQXFSelFxnrFibnFpXnpesn5uZsYgXF7+t+z/h2Mdw9YH2JM Bto+kVlKNDkfGPd5JfGGxmZGFqYmpsZG5pZmpAkrifPef5gUJCSQnliSmp2aWpBaFF9UmpNa fIiRiYNTqoFRLmzSxhSRr3rOles2KrH++fxWqlOR1XW6sZWyzaeVHNEbVQxvL+c0ehey++4v rZOsVVqhj+12ujl1PKi0ZPlkt2z/z/MvNBoePWe6FnNT0zPv0BO7wH8cleaSKU+qZ5nY8DxN Nou+sT6iqcJ4k4dWJYvcZ93lz3dH5b5d4MH2yfeoere3+jMlluKMREMt5qLiRABtC3U48QIA AA== X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFuplleLIzCtJLcpLzFFi42I5/e+xoK7z3d3BBm+us1osnXiJ2eLd5yqL LcfuMVqcnrCIyWLZg80sFjPn3WGz2LP3JIvF5V1z2Cxae36yWyzqu8XowOVxapGEx+YVWh5N Z44ye6y+sJXR4/2+q2wefVtWMXp83iQXwB7VwGiTkZqYklqkkJqXnJ+SmZduq+QdHO8cb2pm YKhraGlhrqSQl5ibaqvk4hOg65aZA3SdkkJZYk4pUCggsbhYSd8O04TQEDddC5jGCF3fkCC4 HiMDNJCwhjHjwbnzbAUbMys69txhbWB8F9LFyMkhIWAisbZ/DRuELSZx4d56IJuLQ0hgOqNE S/NhFpCEkMBfRonf+zS6GDk42AS0Jf5sEQUJiwi4Ssy7+50RpJ5ZYC2TxKmZnxlBEsIClhJH tj1kB7FZBFQleo/uB4vzAsUvL3zDBGELSvyYfI8FZCazgI7E10kRIGFmAXmJzWveMkPcoyCx 4+xrRohdehKX3v1jhagRkdj34h3jBEaBWUgmzUKYNAvJpFlIOhYwsqxiFE0tSC4oTkrPNdQr TswtLs1L10vOz93ECE4Kz6R2MK5ssDjEKMDBqMTDu+LgrmAh1sSy4srcQ4wSHMxKIrxfTu0O FuJNSaysSi3Kjy8qzUktPsRoCvTnRGYp0eR8YMLKK4k3NDYxM7I0Mje0MDI2VxLnPdBqHSgk kJ5YkpqdmlqQWgTTx8TBKdXAuLb1h0X3NKc1DSecTpezPw4Vk+swMtu36FvBzJkXP7zZLeir lHpjstnKXTLhlTKhHQn3qtcmvJSfu0FQz+PotLxt11hPXGB34GjwYFq8+xbzjocKpzj813q9 mZB/XdPij7H2mt6Wizt0D1748ZP15cTQzwpHGkr10vOLz6p1R73+fsXxx+X6NiWW4oxEQy3m ouJEAOn0IUMgAwAA DLP-Filter: Pass X-MTR: 20000000000000000@CPGS X-CFilter-Loop: Reflected X-Barracuda-Connect: mailout4.samsung.com[203.254.224.34] X-Barracuda-Start-Time: 1404820804 X-Barracuda-Encrypted: RC4-MD5 X-Barracuda-URL: http://192.48.176.25:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 This patch implements fs ioctl's IOC_MOV_DATA for Ext4. The semantics of this ioctl are: 1) Like collapse range, offsets and length should be file system block size aligned. 2) In the receiver file, atleast length size hole should be present at receiver_offset 3) It does not change file size of any of donor or receiver file. 4) It leaves a hole at the place from where blocks are moved out in donor file. 5) Both (donor_offset + length) and (receiver_offset + length) should be within size of donor file and receiver file respectively. Only unwritten extents resides beyond file size and it does not make sense to transfer unwritten extents, leave apart the security issues it may raise. 6) If the range to be transfered from donor file contain any holes, they are replicated as it is in receiver file. It mean holes are preserved and the length of hole will be added to moved_len signifying that the hole range is succesfully transfered. Signed-off-by: Namjae Jeon Signed-off-by: Ashish Sangwan --- fs/ext4/ext4.h | 2 + fs/ext4/extents.c | 375 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ fs/ext4/file.c | 1 + 3 files changed, 378 insertions(+) diff --git a/fs/ext4/ext4.h b/fs/ext4/ext4.h index 6386c5f..26478eb 100644 --- a/fs/ext4/ext4.h +++ b/fs/ext4/ext4.h @@ -2725,6 +2725,8 @@ extern int ext4_fiemap(struct inode *inode, struct fiemap_extent_info *fieinfo, extern int ext4_ext_precache(struct inode *inode); extern int ext4_collapse_range(struct inode *inode, loff_t offset, loff_t len); extern int ext4_insert_range(struct file *file, loff_t offset, loff_t len); +extern int ext4_mov_data(struct inode *, struct inode *, loff_t, loff_t, loff_t, + loff_t *); /* move_extent.c */ extern void ext4_double_down_write_data_sem(struct inode *first, diff --git a/fs/ext4/extents.c b/fs/ext4/extents.c index 0c2432e..511db03 100644 --- a/fs/ext4/extents.c +++ b/fs/ext4/extents.c @@ -5811,3 +5811,378 @@ out_mutex: mutex_unlock(&inode->i_mutex); return ret; } + +/* + * If offset_lblk does not lie on the extent start boundary, split extent + */ +int ext4_find_and_split_extent_at(struct inode *inode, ext4_lblk_t offset_lblk) +{ + struct ext4_ext_path *path; + handle_t *handle; + int credits, err = 0, split_flag, ex_len; + struct ext4_extent *ex; + int depth = ext_depth(inode); + ext4_lblk_t ex_start; + + path = ext4_ext_find_extent(inode, offset_lblk, NULL, 0); + if (IS_ERR(path)) + return PTR_ERR(path); + + ex = path[depth].p_ext; + if (!ex) + goto free_path; + ex_start = le32_to_cpu(ex->ee_block); + ex_len = ext4_ext_get_actual_len(ex); + + if (offset_lblk > ex_start && offset_lblk < (ex_start + ex_len)) { + credits = ext4_writepage_trans_blocks(inode); + handle = ext4_journal_start(inode, EXT4_HT_TRUNCATE, credits); + if (IS_ERR(handle)) { + err = PTR_ERR(handle); + goto free_path; + } + if (ext4_ext_is_unwritten(ex)) + split_flag = EXT4_EXT_MARK_UNWRIT1 | + EXT4_EXT_MARK_UNWRIT2; + else + split_flag = 0; + + err = ext4_split_extent_at(handle, inode, path, offset_lblk, + split_flag, EXT4_EX_NOCACHE | + EXT4_GET_BLOCKS_PRE_IO); + ext4_journal_stop(handle); + } + +free_path: + ext4_ext_drop_refs(path); + kfree(path); + return err; +} + +/* + * Compute the size of hole in terms of filesystem blocks present at offset_lblk + * until the next extent is found OR till we reach the last block within isize. + * Store the computed value in hole_blkcnt. + * offset_lblk should be within isize of inode. + */ +int ext4_compute_hole_size(struct inode *inode, ext4_lblk_t offset_lblk, + ext4_lblk_t *hole_blkcnt) +{ + struct ext4_ext_path *path; + struct ext4_extent *ex; + ext4_lblk_t ex_start, isize_lblk; + int ret = 0, depth, ex_len; + + isize_lblk = (inode->i_size + EXT4_BLOCK_SIZE(inode->i_sb) - 1) >> + EXT4_BLOCK_SIZE_BITS(inode->i_sb); + + if (offset_lblk > isize_lblk) + return -EINVAL; + + *hole_blkcnt = 0; + path = ext4_ext_find_extent(inode, offset_lblk, NULL, 0); + if (IS_ERR(path)) + return PTR_ERR(path); + + depth = ext_depth(inode); + ex = path[depth].p_ext; + if (!ex) { + /* No blocks allocated in this file */ + *hole_blkcnt = isize_lblk - offset_lblk; + goto out; + } + ex_start = le32_to_cpu(ex->ee_block); + ex_len = ext4_ext_get_actual_len(ex); + + /* if offset_lblk lies within extent? */ + if (offset_lblk >= ex_start && offset_lblk < (ex_start + ex_len)) + goto out; + + if (ex_start < offset_lblk) { + ret = mext_next_extent(inode, path, &ex); + if (!ret) { + ex_start = le32_to_cpu(ex->ee_block); + } else { + if (ret == 1) { + *hole_blkcnt = isize_lblk - offset_lblk; + ret = 0; + } + goto out; + } + } + *hole_blkcnt = (ex_start < isize_lblk) ? (ex_start - offset_lblk) : + (isize_lblk - offset_lblk); +out: + ext4_ext_drop_refs(path); + kfree(path); + + return ret; +} + +/* + * Remove a complete extent from in memory and on-disk extent tree + * without freeing any data blocks covered by the extent. Caller must call + * ext4_mark_inode_dirty() to sync the changes to disk. + */ +int ext4_ext_rm_extent(handle_t *handle, struct inode *inode, + struct ext4_ext_path *path, struct ext4_extent *ex) +{ + struct ext4_extent_header *eh; + int depth = ext_depth(inode); + int credits, err, correct_index = 0; + int ex_ee_len = ext4_ext_get_actual_len(ex); + + if (!path[depth].p_hdr) + path[depth].p_hdr = ext_block_hdr(path[depth].p_bh); + eh = path[depth].p_hdr; + + credits = 7 + 2*(ex_ee_len/EXT4_BLOCKS_PER_GROUP(inode->i_sb)); + if (ex == EXT_FIRST_EXTENT(eh)) { + correct_index = 1; + credits += (ext_depth(inode)) + 1; + } + credits += EXT4_MAXQUOTAS_TRANS_BLOCKS(inode->i_sb); + err = ext4_ext_truncate_extend_restart(handle, inode, credits); + if (err) + return err; + + err = ext4_ext_get_access(handle, inode, path + depth); + if (err) + return err; + + ext4_ext_store_pblock(ex, 0); + memmove(ex, ex+1, + (EXT_LAST_EXTENT(eh) - ex) * sizeof(struct ext4_extent)); + memset(EXT_LAST_EXTENT(eh), 0, sizeof(struct ext4_extent)); + le16_add_cpu(&eh->eh_entries, -1); + + err = ext4_ext_dirty(handle, inode, path + depth); + if (err) + return err; + + if (correct_index && eh->eh_entries) + err = ext4_ext_correct_indexes(handle, inode, path); + + if (err == 0 && eh->eh_entries == 0 && path[depth].p_bh != NULL) + err = ext4_ext_rm_idx(handle, inode, path, depth); + + return err; +} + +/* + * Move len_lblk amount of blocks from donor inode to receiver inode. + * Blocks are to be moved from doffset_lblk and moved to roffset_lblk. + * Caller of this function must make sure there is atleast len_lblk size + * hole at roffset_lblk. Also doffset_lblk and doffset_lblk + len_lblk + * should fall on extent boundary. + */ +int ext4_ext_mov_data(struct inode *donor, struct inode *receiver, + ext4_lblk_t doffset_lblk, ext4_lblk_t roffset_lblk, + ext4_lblk_t len_lblk, loff_t *bytes_moved) +{ + int error = 0, depth = ext_depth(donor); + struct ext4_ext_path *path; + struct ext4_extent *ex; + loff_t blocks_moved = 0; + handle_t *handle; + int credits = ext4_writepage_trans_blocks(donor) + + ext4_writepage_trans_blocks(receiver); + + while (blocks_moved < len_lblk && !error) { + struct ext4_ext_path *rpath = NULL; + ext4_lblk_t ex_start; + int ex_len; + + path = ext4_ext_find_extent(donor, doffset_lblk, NULL, 0); + if (IS_ERR(path)) { + error = PTR_ERR(path); + break; + } + ex = path[depth].p_ext; + /* + * No allocated blocks? This could only happen during + * 1st iteration. Otherwise it is en error. + */ + if (!ex) { + if (blocks_moved) + error = -EIO; + else + blocks_moved = len_lblk; + goto out; + } + ex_start = le32_to_cpu(ex->ee_block); + ex_len = ext4_ext_get_actual_len(ex); + + if (doffset_lblk != ex_start) { + /* Hole within range, move to the next extent */ + if (ex_start < doffset_lblk) + error = mext_next_extent(donor, path, &ex); + /* Below if will also handle ex_start > doffset_lblk */ + if (error == 0) { + ex_start = le32_to_cpu(ex->ee_block); + blocks_moved += ex_start - doffset_lblk; + roffset_lblk += ex_start - doffset_lblk; + doffset_lblk = ex_start; + } + if (error == 1) { + /* doffset_lblk till EOF is hole. Success!! */ + blocks_moved = len_lblk; + error = 0; + } + goto out; + } + + /* Add this extent to receiver */ + handle = ext4_journal_start(donor, EXT4_HT_TRUNCATE, credits); + if (IS_ERR(handle)) { + error = PTR_ERR(handle); + goto out; + } + + rpath = ext4_ext_find_extent(receiver, roffset_lblk, NULL, 0); + if (IS_ERR(rpath)) { + error = PTR_ERR(rpath); + ext4_journal_stop(handle); + goto out; + } + ex->ee_block = cpu_to_le32(roffset_lblk); + error = ext4_ext_insert_extent(handle, receiver, rpath, ex, 0); + if (error) + goto hout; + + /* Remove this extent from donor */ + error = ext4_ext_rm_extent(handle, donor, path, ex); + if (error) + goto hout; + + /* Extent moved successfully */ + roffset_lblk += ex_len; + doffset_lblk += ex_len; + blocks_moved += ex_len; + + donor->i_blocks -= (ex_len << (donor->i_blkbits - 9)); + receiver->i_blocks += (ex_len << (receiver->i_blkbits - 9)); + donor->i_mtime = donor->i_ctime = ext4_current_time(donor); + receiver->i_mtime = receiver->i_ctime = + ext4_current_time(receiver); + ext4_mark_inode_dirty(handle, donor); + ext4_mark_inode_dirty(handle, receiver); +hout: + ext4_journal_stop(handle); + ext4_ext_drop_refs(rpath); + kfree(rpath); +out: + ext4_ext_drop_refs(path); + kfree(path); + } + + /* This can happen when (doffset_lblk + len_lblk) is in a hole */ + if (blocks_moved > len_lblk) + blocks_moved = len_lblk; + + *bytes_moved = blocks_moved << EXT4_BLOCK_SIZE_BITS(donor->i_sb); + return error; +} + +int ext4_mov_data(struct inode *donor, struct inode *receiver, loff_t doffset, + loff_t roffset, loff_t len, loff_t *moved_len) +{ + struct super_block *sb = donor->i_sb; + loff_t d_pg_off, r_pg_off, pg_len; + ext4_lblk_t doffset_lblk, roffset_lblk, len_lblk, hole_size; + int error; + + if (doffset & (EXT4_BLOCK_SIZE(sb) - 1) || + roffset & (EXT4_BLOCK_SIZE(sb) - 1) || + len & (EXT4_BLOCK_SIZE(sb) - 1)) + return -EINVAL; + + if (EXT4_SB(sb)->s_cluster_ratio > 1) + return -EOPNOTSUPP; + + if (!ext4_test_inode_flag(donor, EXT4_INODE_EXTENTS) || + !ext4_test_inode_flag(receiver, EXT4_INODE_EXTENTS)) + return -EOPNOTSUPP; + + doffset_lblk = doffset >> EXT4_BLOCK_SIZE_BITS(sb); + roffset_lblk = roffset >> EXT4_BLOCK_SIZE_BITS(sb); + len_lblk = len >> EXT4_BLOCK_SIZE_BITS(sb); + + d_pg_off = round_down(doffset, PAGE_SIZE); + r_pg_off = round_down(roffset, PAGE_SIZE); + pg_len = round_up(len, PAGE_SIZE); + + if (ext4_should_journal_data(donor)) { + error = ext4_force_commit(donor->i_sb); + if (error) + return error; + error = ext4_force_commit(receiver->i_sb); + if (error) + return error; + } + + error = filemap_write_and_wait_range(donor->i_mapping, + d_pg_off, d_pg_off + pg_len); + if (error) + return error; + error = filemap_write_and_wait_range(receiver->i_mapping, + r_pg_off, r_pg_off + pg_len); + if (error) + return error; + + lock_two_nondirectories(donor, receiver); + + /* Check for isize limits for both files */ + if (doffset + len > donor->i_size || + roffset + len > receiver->i_size) { + error = -EINVAL; + goto out_mutex; + } + + truncate_pagecache_range(donor, d_pg_off, d_pg_off + pg_len - 1); + truncate_pagecache_range(receiver, r_pg_off, r_pg_off + pg_len - 1); + + ext4_inode_block_unlocked_dio(donor); + inode_dio_wait(donor); + ext4_inode_block_unlocked_dio(receiver); + inode_dio_wait(receiver); + + ext4_discard_preallocations(donor); + ext4_discard_preallocations(receiver); + + error = ext4_es_remove_extent(donor, doffset_lblk, len_lblk); + if (error) + goto out_sem; + error = ext4_es_remove_extent(receiver, roffset_lblk, len_lblk); + if (error) + goto out_sem; + + error = ext4_compute_hole_size(receiver, roffset_lblk, &hole_size); + if (error) + goto out_sem; + if (len_lblk > hole_size) { + error = -EINVAL; + goto out_sem; + } + + error = ext4_find_and_split_extent_at(donor, doffset_lblk); + if (error) + goto out_sem; + + error = ext4_find_and_split_extent_at(donor, doffset_lblk + len_lblk); + if (error) + goto out_sem; + + error = ext4_ext_mov_data(donor, receiver, doffset_lblk, + roffset_lblk, len_lblk, moved_len); + + ext4_discard_preallocations(donor); + ext4_discard_preallocations(receiver); +out_sem: + ext4_inode_resume_unlocked_dio(donor); + ext4_inode_resume_unlocked_dio(receiver); + +out_mutex: + unlock_two_nondirectories(donor, receiver); + return error; +} diff --git a/fs/ext4/file.c b/fs/ext4/file.c index 8695f70..d2feaba 100644 --- a/fs/ext4/file.c +++ b/fs/ext4/file.c @@ -614,5 +614,6 @@ const struct inode_operations ext4_file_inode_operations = { .get_acl = ext4_get_acl, .set_acl = ext4_set_acl, .fiemap = ext4_fiemap, + .mov_data = ext4_mov_data, }; -- 1.7.11-rc0 From BATV+abfef9aaee7a4c4812ac+3971+infradead.org+hch@bombadil.srs.infradead.org Tue Jul 8 07:15:11 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: xfs@oss.sgi.com Delivered-To: xfs@oss.sgi.com Received: from relay.sgi.com (relay2.corp.sgi.com [137.38.102.29]) by oss.sgi.com (Postfix) with ESMTP id 7E4657F57 for ; Tue, 8 Jul 2014 07:15:11 -0500 (CDT) Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by relay2.corp.sgi.com (Postfix) with ESMTP id 56F35304032 for ; Tue, 8 Jul 2014 05:15:08 -0700 (PDT) X-ASG-Debug-ID: 1404821706-04cbb0653533a970001-NocioJ Received: from bombadil.infradead.org ([198.137.202.9]) by cuda.sgi.com with ESMTP id Ij3rrLUCEUDQunTf (version=TLSv1 cipher=AES256-SHA bits=256 verify=NO) for ; Tue, 08 Jul 2014 05:15:07 -0700 (PDT) X-Barracuda-Envelope-From: BATV+abfef9aaee7a4c4812ac+3971+infradead.org+hch@bombadil.srs.infradead.org X-Barracuda-Apparent-Source-IP: 198.137.202.9 Received: from hch by bombadil.infradead.org with local (Exim 4.80.1 #2 (Red Hat Linux)) id 1X4UIW-0000DY-9q; Tue, 08 Jul 2014 12:15:00 +0000 Date: Tue, 8 Jul 2014 05:15:00 -0700 From: Christoph Hellwig To: Namjae Jeon Cc: Dave Chinner , Theodore Ts'o , linux-ext4 , linux-fsdevel@vger.kernel.org, linux-kernel@vger.kernel.org, Luk?? Czerner , Brian Foster , Christoph Hellwig , Ashish Sangwan , xfs@oss.sgi.com Subject: Re: [PATCH 2/3] xfs: Add support IOC_MOV_DATA ioctl Message-ID: <20140708121500.GA518@infradead.org> X-ASG-Orig-Subj: Re: [PATCH 2/3] xfs: Add support IOC_MOV_DATA ioctl References: <003f01cf9aa4$1e9e5240$5bdaf6c0$@samsung.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <003f01cf9aa4$1e9e5240$5bdaf6c0$@samsung.com> User-Agent: Mutt/1.5.23 (2014-03-12) X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: UNKNOWN[198.137.202.9] X-Barracuda-Start-Time: 1404821707 X-Barracuda-Encrypted: AES256-SHA X-Barracuda-URL: http://192.48.176.25:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 X-Barracuda-Spam-Score: 0.10 X-Barracuda-Spam-Status: No, SCORE=0.10 using per-user scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.7 tests=RDNS_NONE X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.7337 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.10 RDNS_NONE Delivered to trusted network by a host with no rDNS On Tue, Jul 08, 2014 at 08:59:49PM +0900, Namjae Jeon wrote: > This patch implements fs ioctl's IOC_MOV_DATA for XFS. Shouldn't this share code with the XFS_IOC_SWAPEXT implementation? From arekm@maven.pl Tue Jul 8 08:27:33 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=T_DKIM_INVALID autolearn=ham version=3.3.1 X-Original-To: xfs@oss.sgi.com Delivered-To: xfs@oss.sgi.com Received: from relay.sgi.com (relay3.corp.sgi.com [198.149.34.15]) by oss.sgi.com (Postfix) with ESMTP id F2EB37F53 for ; Tue, 8 Jul 2014 08:27:32 -0500 (CDT) Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by relay3.corp.sgi.com (Postfix) with ESMTP id 874D8AC002 for ; Tue, 8 Jul 2014 06:27:29 -0700 (PDT) X-ASG-Debug-ID: 1404826046-04cbb0653533d7c0001-NocioJ Received: from mail-wi0-f181.google.com (mail-wi0-f181.google.com [209.85.212.181]) by cuda.sgi.com with ESMTP id eJHNmTRAAjV98WC5 (version=TLSv1 cipher=RC4-SHA bits=128 verify=NO) for ; Tue, 08 Jul 2014 06:27:26 -0700 (PDT) X-Barracuda-Envelope-From: arekm@maven.pl X-Barracuda-Apparent-Source-IP: 209.85.212.181 Received: by mail-wi0-f181.google.com with SMTP id n3so988722wiv.14 for ; Tue, 08 Jul 2014 06:27:25 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=maven.pl; s=maven; h=from:to:subject:date:user-agent:references:in-reply-to:mime-version :content-type:content-transfer-encoding:message-id; bh=JJslId56gcdpI8Qq0U4xsIALlm62lN6Op+CnFktmCl0=; b=J+Bh094VIqnxXRqvi98aM3d/DCRjTiZGLd/iHoBM3Evi0uHURhVLB61I5KKXzhsvZ/ ekeTGcI0ZGiqUcxKZrQZYkRPV+uuYBf0iy0LGwaN4Q/sg0Ea5mpsNfyKYA0a3yF3DK4M xTfy/UJl/rOTYfYRFOBw28EH1fU6PPQOhtehI= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:from:to:subject:date:user-agent:references :in-reply-to:mime-version:content-type:content-transfer-encoding :message-id; bh=JJslId56gcdpI8Qq0U4xsIALlm62lN6Op+CnFktmCl0=; b=G5r8ncQ59fPq1hm1wCOp0fNDn+ZT1sy1Euu2p7QW5MvShUnSyqgxeSJOC3h7Kj3iK3 4Nzjct8OTNUgGRlyFyAE3VUaK6MYny6QWaolc0DRM7K5br5+Gql8JcjlBVJgtnEFtVng oDa4WQ1h9hoj2Hin1Yc632qRxFd/zjpBl43pYCUjYi3R7Pq5E1/p6YnM+6nUdUnRtxvf OO1il2AR3A0dfb34YVcY9k/XyokLM1exQKSHtl8MdMST3w0moeimj5KQQ97+0IYhWpxX nt+TNTcCKmwFgVk80WjGuxySEomislRnypsJCABgcdquEiVXGOIIRO+gbR5y5mk75BB2 QM1A== X-Gm-Message-State: ALoCoQnnpMGxEq6h4Ev0Ao9enDgNuwa5/R7UxwPkbQirZrvyOsg0vkd32JU5oUdu1FVYnQLsgOGI X-Received: by 10.180.74.11 with SMTP id p11mr3886851wiv.68.1404826045605; Tue, 08 Jul 2014 06:27:25 -0700 (PDT) Received: from t400.localnet ([91.234.176.246]) by mx.google.com with ESMTPSA id f6sm96427498wja.25.2014.07.08.06.27.24 for (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Tue, 08 Jul 2014 06:27:24 -0700 (PDT) From: Arkadiusz =?utf-8?q?Mi=C5=9Bkiewicz?= To: xfs@oss.sgi.com Subject: Re: usrquota,prjquota mount success on 3.16rc4 but Failed to initialize disk quotas on 3.10.43 Date: Tue, 8 Jul 2014 15:27:23 +0200 X-ASG-Orig-Subj: Re: usrquota,prjquota mount success on 3.16rc4 but Failed to initialize disk quotas on 3.10.43 User-Agent: KMail/1.13.7 (Linux/3.16.0-rc4-dirty; KDE/4.13.2; x86_64; ; ) References: <201407081041.02020.arekm@maven.pl> In-Reply-To: <201407081041.02020.arekm@maven.pl> MIME-Version: 1.0 Content-Type: Text/Plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <201407081527.24119.arekm@maven.pl> X-Barracuda-Connect: mail-wi0-f181.google.com[209.85.212.181] X-Barracuda-Start-Time: 1404826046 X-Barracuda-Encrypted: RC4-SHA X-Barracuda-URL: http://192.48.176.25:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 X-Barracuda-Spam-Score: 0.00 X-Barracuda-Spam-Status: No, SCORE=0.00 using per-user scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.7 tests=DKIM_SIGNED, DKIM_VERIFIED X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.7339 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- -0.00 DKIM_VERIFIED Domain Keys Identified Mail: signature passes verification 0.00 DKIM_SIGNED Domain Keys Identified Mail: message has a signature On Tuesday 08 of July 2014, Arkadiusz Mi=C5=9Bkiewicz wrote: > My broken fs > http://ixion.pld-linux.org/~arekm/p2/x1/web2-home.metadump.gz > thanks to "xfsprogs: fixes for 3.2.1" by Dave is now almost in good shape. >=20 > What I found interesting is that repairing it with current git xfs_repair > and then mounting (-o usrquota,prjquota) on 3.16.0-rc4 gives me: >=20 > [32208.142316] XFS (sdb): Mounting V4 Filesystem > [32208.205449] XFS (sdb): Ending clean mount > [32208.258991] XFS (sdb): Quotacheck needed: Please wait. > [32821.930437] XFS (sdb): Quotacheck: Done. >=20 > Then I umount it and mount again (same options as before) but on 3.10.43 > kernel: >=20 > [ 111.325889] XFS (sdb): Mounting Filesystem > [ 111.419331] XFS (sdb): Failed to initialize disk quotas. > [ 111.419339] XFS (sdb): Ending clean mount >=20 > What did change in later kernels that could have meaning here? (so I could > try to backport that change). >=20 > For testing I mounted again on 3.16 and: > [33870.472769] XFS (sdb): Mounting V4 Filesystem > [33870.543539] XFS (sdb): Ending clean mount > [33870.597791] XFS (sdb): Quotacheck needed: Please wait. > [34484.332879] XFS (sdb): Quotacheck: Done >=20 > and again on 3.10.43: > [ 1649.215390] XFS (sdb): Mounting Filesystem > [ 1649.316894] XFS (sdb): Failed to initialize disk quotas. > [ 1649.316902] XFS (sdb): Ending clean mount =46ails in xfs_iget at xfs_qm_init_quotainos(): if (XFS_IS_OQUOTA_ON(mp) && mp->m_sb.sb_gquotino !=3D NULLFSINO) { ASSERT(mp->m_sb.sb_gquotino > 0); if ((error =3D xfs_iget(mp, NULL, mp->m_sb.sb_gquot= ino, 0, 0, &gip))) { if (uip) IRELE(uip); return XFS_ERROR(error); } } and in xfs_iget: /* reject inode numbers outside existing AGs */ if (!ino || XFS_INO_TO_AGNO(mp, ino) >=3D mp->m_sb.sb_agcount) return EINVAL; m_sb.sb_gquotino/ino looks to be 0 # xfs_db /dev/sdb -c "sb 0" -c "print" |grep quot uquotino =3D 4077961 gquotino =3D 0 pquotino =3D 0 and older kernels (testing on 3.10.46 now) seem to be unable to deal with=20 this. Newer kernels survive probably due to this: xfs_sb_quota_from_disk(struct xfs_sb *sbp) { /* * older mkfs doesn't initialize quota inodes to NULLFSINO. This * leads to in-core values having two different values for a quota * inode to be invalid: 0 and NULLFSINO. Change it to a single value * NULLFSINO. * * Note that this change affect only the in-core values. These * values are not written back to disk unless any quota information * is written to the disk. Even in that case, sb_pquotino field is * not written to disk unless the superblock supports pquotino. */ if (sbp->sb_uquotino =3D=3D 0) sbp->sb_uquotino =3D NULLFSINO; if (sbp->sb_gquotino =3D=3D 0) sbp->sb_gquotino =3D NULLFSINO; if (sbp->sb_pquotino =3D=3D 0) sbp->sb_pquotino =3D NULLFSINO; =20 so sb_gquotino =3D NULLFSINO gets set and it never reaches error condition = at=20 xfs_qm_init_quotainos() >=20 >=20 > (there was an additional problems with hangs on quotacheck like > http://sprunge.us/LYQO (3.16.0-rc3-00006-g16874b2) > http://sprunge.us/FfhR (3.15.3) > http://sprunge.us/ObWI (3.10.20) > but it only happened when doing quotacheck on image mounted via loop. > Wasn't able to trigger it when using real disk, so blaming loop code for > now) =2D-=20 Arkadiusz Mi=C5=9Bkiewicz, arekm / maven.pl From arekm@maven.pl Tue Jul 8 08:56:38 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=T_DKIM_INVALID autolearn=ham version=3.3.1 X-Original-To: xfs@oss.sgi.com Delivered-To: xfs@oss.sgi.com Received: from relay.sgi.com (relay3.corp.sgi.com [198.149.34.15]) by oss.sgi.com (Postfix) with ESMTP id 369CF7F53 for ; Tue, 8 Jul 2014 08:56:38 -0500 (CDT) Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by relay3.corp.sgi.com (Postfix) with ESMTP id C95BFAC001 for ; Tue, 8 Jul 2014 06:56:37 -0700 (PDT) X-ASG-Debug-ID: 1404827785-04bdf05667885210001-NocioJ Received: from mail-we0-f179.google.com (mail-we0-f179.google.com [74.125.82.179]) by cuda.sgi.com with ESMTP id Mzx5ghP6GxYxXmSF (version=TLSv1 cipher=RC4-SHA bits=128 verify=NO) for ; Tue, 08 Jul 2014 06:56:26 -0700 (PDT) X-Barracuda-Envelope-From: arekm@maven.pl X-Barracuda-Apparent-Source-IP: 74.125.82.179 Received: by mail-we0-f179.google.com with SMTP id w62so5962801wes.24 for ; Tue, 08 Jul 2014 06:56:25 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=maven.pl; s=maven; h=from:to:subject:date:user-agent:references:in-reply-to:mime-version :content-type:content-transfer-encoding:message-id; bh=UcSrn5/VdfsftNPR3NBhUDn1NRC+YFKpXuVHDrqPTv4=; b=ewP48fM6eWAIzC2hild6ZfbWJHJiPt8ws6wnWm7aNOoa0nakGnSzaCc1Tv6jL+lp4y GRCOSVw5ikXvNRzkYapn2353v7fE8VxHbDhdi+ZcZUI3IVk2vBBhqiYHAHFg6z1u6+xR IQP8SqhYXarMotCOmpcx+J3joe7ar9gvk8154= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:from:to:subject:date:user-agent:references :in-reply-to:mime-version:content-type:content-transfer-encoding :message-id; bh=UcSrn5/VdfsftNPR3NBhUDn1NRC+YFKpXuVHDrqPTv4=; b=L6rdpIkstn6t4i8Smzf3Ozebr/slsQQTMrfpJ48L//RAiMGw3PzSvs8y/SVj/UcKzS 3o1EMpMhYUgtfbv0I5xL57aO3Co424unLx/YBnxzG3S17ZIKS8+HMdDffTDoxeS0zxSg iHS3PZLfHMmQ68hDyi5LtCRpAkI9Veqtt1R37QgCyD4XYVlGwDTAZ44BtETEU2o+P/4w SyOS8Ii1h1mmdHbmyl3iq4oFdsbUwZ6M6w0ZJYahQbr1G6CndaOnwiw4h/6dM3JMSAM5 hVcN+9CadyLrO8J6zgNpSAoBu7L4PiqlZOY9+y7VnxF0XL+tdr3a02ESVG6I/HG0MgO/ /D3Q== X-Gm-Message-State: ALoCoQmJCF0XmXzTW7uFE5tqeoJ+F9KxOvDtcFHWEBjZICr7RQKfMw3O7o0gGE8JKrWLJ4XsjS4W X-Received: by 10.180.198.116 with SMTP id jb20mr3993944wic.59.1404827785073; Tue, 08 Jul 2014 06:56:25 -0700 (PDT) Received: from t400.localnet ([91.234.176.246]) by mx.google.com with ESMTPSA id de6sm15741214wjc.16.2014.07.08.06.56.23 for (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Tue, 08 Jul 2014 06:56:24 -0700 (PDT) From: Arkadiusz =?utf-8?q?Mi=C5=9Bkiewicz?= To: xfs@oss.sgi.com Subject: Re: usrquota,prjquota mount success on 3.16rc4 but Failed to initialize disk quotas on 3.10.43 Date: Tue, 8 Jul 2014 15:56:22 +0200 X-ASG-Orig-Subj: Re: usrquota,prjquota mount success on 3.16rc4 but Failed to initialize disk quotas on 3.10.43 User-Agent: KMail/1.13.7 (Linux/3.16.0-rc4-dirty; KDE/4.13.2; x86_64; ; ) References: <201407081041.02020.arekm@maven.pl> In-Reply-To: <201407081041.02020.arekm@maven.pl> MIME-Version: 1.0 Content-Type: Text/Plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <201407081556.22988.arekm@maven.pl> X-Barracuda-Connect: mail-we0-f179.google.com[74.125.82.179] X-Barracuda-Start-Time: 1404827786 X-Barracuda-Encrypted: RC4-SHA X-Barracuda-URL: http://192.48.157.11:80/cgi-mod/mark.cgi X-Barracuda-BRTS-Status: 1 X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-Spam-Score: 0.00 X-Barracuda-Spam-Status: No, SCORE=0.00 using per-user scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.7 tests=DKIM_SIGNED, DKIM_VERIFIED, FUZZY_VPILL X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.7339 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- -0.00 DKIM_VERIFIED Domain Keys Identified Mail: signature passes verification 0.00 DKIM_SIGNED Domain Keys Identified Mail: message has a signature 0.00 FUZZY_VPILL BODY: Attempt to obfuscate words in spam On Tuesday 08 of July 2014, Arkadiusz Mi=C5=9Bkiewicz wrote: > (there was an additional problems with hangs on quotacheck like > http://sprunge.us/LYQO (3.16.0-rc3-00006-g16874b2) > http://sprunge.us/FfhR (3.15.3) > http://sprunge.us/ObWI (3.10.20) > but it only happened when doing quotacheck on image mounted via loop. > Wasn't able to trigger it when using real disk, so blaming loop code for > now) Cannot blame loop code anymore. Just hit this on real disk on 3.16.0-rc4 ke= rnel : [52139.177608] usb 3-1: new high-speed USB device number 8 using xhci_hcd [52139.306453] usb 3-1: New USB device found, idVendor=3D152d, idProduct=3D= 2338 [52139.306458] usb 3-1: New USB device strings: Mfr=3D1, Product=3D2, Seria= lNumber=3D5 [52139.306460] usb 3-1: Product: USB to ATA/ATAPI bridge [52139.306462] usb 3-1: Manufacturer: JMicron [52139.306464] usb 3-1: SerialNumber: 000000000000 [52139.307178] usb-storage 3-1:1.0: USB Mass Storage device detected [52139.307238] scsi8 : usb-storage 3-1:1.0 [52140.307059] scsi 8:0:0:0: Direct-Access ST310005 28AS = PQ: 0 ANSI: 2 CCS [52140.307860] sd 8:0:0:0: [sdb] 1953525168 512-byte logical blocks: (1.00 = TB/931 GiB) [52140.308364] sd 8:0:0:0: [sdb] Write Protect is off [52140.308368] sd 8:0:0:0: [sdb] Mode Sense: 28 00 00 00 [52140.308645] sd 8:0:0:0: [sdb] No Caching mode page found [52140.308648] sd 8:0:0:0: [sdb] Assuming drive cache: write through [52140.325011] sdb: unknown partition table [52140.325893] sd 8:0:0:0: [sdb] Attached SCSI disk [52175.324054] XFS (sdb): Mounting V4 Filesystem [52175.385898] XFS (sdb): Ending clean mount [52175.440740] XFS (sdb): Quotacheck needed: Please wait. [52974.654792] INFO: task mount:21498 blocked for more than 120 seconds. [52974.654797] Tainted: G W E 3.16.0-rc4-dirty #675 [52974.654798] "echo 0 > /proc/sys/kernel/hung_task_timeout_secs" disables = this message. [52974.654800] mount D ffff88042ea92700 0 21498 21466 0x0000= 0000 [52974.654804] ffff88034a2839c8 0000000000000082 ffff88034a283fd8 ffff8803= 705130a0 [52974.654807] 0000000000012700 ffffffffa01e2a5a ffff88034a283948 ffffffff= a01d8192 [52974.654810] ffff88034a2839d8 000000014a283958 ffff88034a2839d8 ffff8801= 2a2c4c80 [52974.654814] Call Trace: [52974.654857] [] ? xfs_bmbt_get_all+0x13/0x15 [xfs] [52974.654877] [] ? xfs_bmap_search_multi_extents+0x85/0= xdc [xfs] [52974.654896] [] ? xfs_bmap_search_extents+0x57/0xba [x= fs] [52974.654912] [] ? xfs_buf_read_map+0x24/0x100 [xfs] [52974.654937] [] ? xfs_trans_read_buf_map+0x4f/0x5a2 [x= fs] [52974.654957] [] ? xfs_bmapi_read+0x163/0x2ba [xfs] [52974.654961] [] schedule+0x69/0x6b [52974.654964] [] schedule_timeout+0x3a/0x1e8 [52974.654986] [] ? xfs_perag_get+0x68/0xcc [xfs] [52974.655003] [] ? xfs_inode_set_reclaim_tag+0x31/0x14f= [xfs] [52974.655006] [] wait_for_common+0x10c/0x14c [52974.655010] [] ? wake_up_process+0x32/0x32 [52974.655012] [] wait_for_completion+0x18/0x1a [52974.655035] [] xfs_qm_flush_one+0x42/0x8a [xfs] [52974.655058] [] xfs_qm_dquot_walk.isra.6+0xea/0x145 [x= fs] [52974.655079] [] ? xfs_qm_shrink_scan+0xc6/0xc6 [xfs] [52974.655101] [] xfs_qm_quotacheck+0x18a/0x2d9 [xfs] [52974.655122] [] xfs_qm_mount_quotas+0xe1/0x1c0 [xfs] [52974.655140] [] xfs_mountfs+0x644/0x6e0 [xfs] [52974.655158] [] xfs_fs_fill_super+0x276/0x31a [xfs] [52974.655161] [] mount_bdev+0x14d/0x1b5 [52974.655179] [] ? xfs_parseargs+0x997/0x997 [xfs] [52974.655182] [] ? __kmalloc_track_caller+0x44/0x1d4 [52974.655200] [] xfs_fs_mount+0x10/0x12 [xfs] [52974.655202] [] mount_fs+0x62/0x148 [52974.655207] [] vfs_kern_mount+0x5f/0xf8 [52974.655210] [] do_mount+0x7b5/0x8ac [52974.655213] [] SyS_mount+0x80/0xb9 [52974.655217] [] system_call_fastpath+0x16/0x1b [53094.776265] INFO: task mount:21498 blocked for more than 120 seconds. [53094.776270] Tainted: G W E 3.16.0-rc4-dirty #675 [53094.776271] "echo 0 > /proc/sys/kernel/hung_task_timeout_secs" disables = this message. [53094.776273] mount D ffff88042ea92700 0 21498 21466 0x0000= 0000 [53094.776277] ffff88034a2839c8 0000000000000082 ffff88034a283fd8 ffff8803= 705130a0 [53094.776280] 0000000000012700 ffffffffa01e2a5a ffff88034a283948 ffffffff= a01d8192 [53094.776283] ffff88034a2839d8 000000014a283958 ffff88034a2839d8 ffff8801= 2a2c4c80 [53094.776286] Call Trace: [53094.776330] [] ? xfs_bmbt_get_all+0x13/0x15 [xfs] [53094.776350] [] ? xfs_bmap_search_multi_extents+0x85/0= xdc [xfs] [53094.776368] [] ? xfs_bmap_search_extents+0x57/0xba [x= fs] [53094.776385] [] ? xfs_buf_read_map+0x24/0x100 [xfs] [53094.776409] [] ? xfs_trans_read_buf_map+0x4f/0x5a2 [x= fs] [53094.776428] [] ? xfs_bmapi_read+0x163/0x2ba [xfs] [53094.776432] [] schedule+0x69/0x6b [53094.776435] [] schedule_timeout+0x3a/0x1e8 [53094.776458] [] ? xfs_perag_get+0x68/0xcc [xfs] [53094.776475] [] ? xfs_inode_set_reclaim_tag+0x31/0x14f= [xfs] [53094.776478] [] wait_for_common+0x10c/0x14c [53094.776482] [] ? wake_up_process+0x32/0x32 [53094.776484] [] wait_for_completion+0x18/0x1a [53094.776508] [] xfs_qm_flush_one+0x42/0x8a [xfs] [53094.776531] [] xfs_qm_dquot_walk.isra.6+0xea/0x145 [x= fs] [53094.776552] [] ? xfs_qm_shrink_scan+0xc6/0xc6 [xfs] [53094.776575] [] xfs_qm_quotacheck+0x18a/0x2d9 [xfs] [53094.776596] [] xfs_qm_mount_quotas+0xe1/0x1c0 [xfs] [53094.776614] [] xfs_mountfs+0x644/0x6e0 [xfs] [53094.776632] [] xfs_fs_fill_super+0x276/0x31a [xfs] [53094.776635] [] mount_bdev+0x14d/0x1b5 [53094.776653] [] ? xfs_parseargs+0x997/0x997 [xfs] [53094.776656] [] ? __kmalloc_track_caller+0x44/0x1d4 [53094.776674] [] xfs_fs_mount+0x10/0x12 [xfs] [53094.776676] [] mount_fs+0x62/0x148 [53094.776682] [] vfs_kern_mount+0x5f/0xf8 [53094.776685] [] do_mount+0x7b5/0x8ac [53094.776688] [] SyS_mount+0x80/0xb9 [53094.776691] [] system_call_fastpath+0x16/0x1b [53138.788727] SysRq : Show Blocked State [53138.788731] task PC stack pid father [53138.788794] mount D ffff88042ea92700 0 21498 21466 0x0000= 0000 [53138.788798] ffff88034a2839c8 0000000000000082 ffff88034a283fd8 ffff8803= 705130a0 [53138.788801] 0000000000012700 ffffffffa01e2a5a ffff88034a283948 ffffffff= a01d8192 [53138.788804] ffff88034a2839d8 000000014a283958 ffff88034a2839d8 ffff8801= 2a2c4c80 [53138.788807] Call Trace: [53138.788849] [] ? xfs_bmbt_get_all+0x13/0x15 [xfs] [53138.788869] [] ? xfs_bmap_search_multi_extents+0x85/0= xdc [xfs] [53138.788888] [] ? xfs_bmap_search_extents+0x57/0xba [x= fs] [53138.788904] [] ? xfs_buf_read_map+0x24/0x100 [xfs] [53138.788929] [] ? xfs_trans_read_buf_map+0x4f/0x5a2 [x= fs] [53138.788948] [] ? xfs_bmapi_read+0x163/0x2ba [xfs] [53138.788953] [] schedule+0x69/0x6b [53138.788955] [] schedule_timeout+0x3a/0x1e8 [53138.788978] [] ? xfs_perag_get+0x68/0xcc [xfs] [53138.788996] [] ? xfs_inode_set_reclaim_tag+0x31/0x14f= [xfs] [53138.788999] [] wait_for_common+0x10c/0x14c [53138.789002] [] ? wake_up_process+0x32/0x32 [53138.789005] [] wait_for_completion+0x18/0x1a [53138.789028] [] xfs_qm_flush_one+0x42/0x8a [xfs] [53138.789051] [] xfs_qm_dquot_walk.isra.6+0xea/0x145 [x= fs] [53138.789072] [] ? xfs_qm_shrink_scan+0xc6/0xc6 [xfs] [53138.789093] [] xfs_qm_quotacheck+0x18a/0x2d9 [xfs] [53138.789115] [] xfs_qm_mount_quotas+0xe1/0x1c0 [xfs] [53138.789133] [] xfs_mountfs+0x644/0x6e0 [xfs] [53138.789151] [] xfs_fs_fill_super+0x276/0x31a [xfs] [53138.789154] [] mount_bdev+0x14d/0x1b5 [53138.789171] [] ? xfs_parseargs+0x997/0x997 [xfs] [53138.789174] [] ? __kmalloc_track_caller+0x44/0x1d4 [53138.789193] [] xfs_fs_mount+0x10/0x12 [xfs] [53138.789195] [] mount_fs+0x62/0x148 [53138.789201] [] vfs_kern_mount+0x5f/0xf8 [53138.789204] [] do_mount+0x7b5/0x8ac [53138.789207] [] SyS_mount+0x80/0xb9 [53138.789210] [] system_call_fastpath+0x16/0x1b [53138.789217] Sched Debug Version: v0.11, 3.16.0-rc4-dirty #675 [53138.789219] ktime : 53084168.519612 [53138.789221] sched_clk : 53138789.216257 [53138.789222] cpu_clk : 53138789.216279 [53138.789224] jiffies : 4308163339 [53138.789225] sched_clock_stable() : 1 [53138.789228] sysctl_sched [53138.789229] .sysctl_sched_latency : 18.000000 [53138.789231] .sysctl_sched_min_granularity : 2.250000 [53138.789232] .sysctl_sched_wakeup_granularity : 3.000000 [53138.789234] .sysctl_sched_child_runs_first : 0 [53138.789235] .sysctl_sched_features : 11899 [53138.789237] .sysctl_sched_tunable_scaling : 1 (logaritmic) [53138.789240] cpu#0, 2194.832 MHz [53138.789241] .nr_running : 2 [53138.789243] .load : 2048 [53138.789244] .nr_switches : 43330767 [53138.789246] .nr_load_updates : 8445268 [53138.789247] .nr_uninterruptible : 4678 [53138.789249] .next_balance : 4308.163398 [53138.789250] .curr->pid : 22259 [53138.789252] .clock : 53138788.701527 [53138.789253] .cpu_load[0] : 0 [53138.789255] .cpu_load[1] : 0 [53138.789256] .cpu_load[2] : 0 [53138.789257] .cpu_load[3] : 0 [53138.789259] .cpu_load[4] : 0 [53138.789260] .yld_count : 17874 [53138.789261] .sched_count : 43400735 [53138.789263] .sched_goidle : 19420283 [53138.789264] .avg_idle : 796415 [53138.789266] .max_idle_balance_cost : 500000 [53138.789267] .ttwu_count : 31992622 [53138.789268] .ttwu_local : 14898798 [53138.789271]=20 cfs_rq[0]:/autogroup-1051 [53138.789273] .exec_clock : 255.611064 [53138.789275] .MIN_vruntime : 0.000001 [53138.789276] .min_vruntime : 363.996264 [53138.789278] .max_vruntime : 0.000001 [53138.789279] .spread : 0.000000 [53138.789281] .spread0 : -3274011.414773 [53138.789282] .nr_spread_over : 12 [53138.789284] .nr_running : 1 [53138.789285] .load : 1024 [53138.789286] .runnable_load_avg : 0 [53138.789288] .blocked_load_avg : 0 [53138.789289] .tg_load_contrib : 0 [53138.789291] .tg_runnable_contrib : 0 [53138.789292] .tg_load_avg : 0 [53138.789293] .tg->runnable_avg : 0 [53138.789295] .tg->cfs_bandwidth.timer_active: 0 [53138.789296] .throttled : 0 [53138.789297] .throttle_count : 0 [53138.789299] .se->exec_start : 53138788.698571 [53138.789301] .se->vruntime : 3274366.512558 [53138.789302] .se->sum_exec_runtime : 255.707962 [53138.789304] .se->statistics.wait_start : 0.000000 [53138.789306] .se->statistics.sleep_start : 0.000000 [53138.789307] .se->statistics.block_start : 0.000000 [53138.789309] .se->statistics.sleep_max : 0.000000 [53138.789310] .se->statistics.block_max : 0.000000 [53138.789312] .se->statistics.exec_max : 4.007237 [53138.789313] .se->statistics.slice_max : 7.941163 [53138.789315] .se->statistics.wait_max : 0.249052 [53138.789316] .se->statistics.wait_sum : 17.295731 [53138.789318] .se->statistics.wait_count : 13610 [53138.789319] .se->load.weight : 1024 [53138.789321] .se->avg.runnable_avg_sum : 101 [53138.789322] .se->avg.runnable_avg_period : 48793 [53138.789323] .se->avg.load_avg_contrib : 0 [53138.789325] .se->avg.decay_count : 0 [53138.789327]=20 cfs_rq[0]:/autogroup-89 [53138.789329] .exec_clock : 1479364.351553 [53138.789330] .MIN_vruntime : 0.000001 [53138.789332] .min_vruntime : 1120202.513628 [53138.789333] .max_vruntime : 0.000001 [53138.789335] .spread : 0.000000 [53138.789336] .spread0 : -2154172.897409 [53138.789338] .nr_spread_over : 4302 [53138.789339] .nr_running : 0 [53138.789340] .load : 0 [53138.789342] .runnable_load_avg : 0 [53138.789343] .blocked_load_avg : 2 [53138.789344] .tg_load_contrib : 2 [53138.789346] .tg_runnable_contrib : 10 [53138.789347] .tg_load_avg : 28 [53138.789349] .tg->runnable_avg : 42 [53138.789350] .tg->cfs_bandwidth.timer_active: 0 [53138.789351] .throttled : 0 [53138.789353] .throttle_count : 0 [53138.789354] .se->exec_start : 53138788.406455 [53138.789356] .se->vruntime : 3274375.411037 [53138.789357] .se->sum_exec_runtime : 1479373.930606 [53138.789359] .se->statistics.wait_start : 0.000000 [53138.789360] .se->statistics.sleep_start : 0.000000 [53138.789362] .se->statistics.block_start : 0.000000 [53138.789363] .se->statistics.sleep_max : 0.000000 [53138.789365] .se->statistics.block_max : 0.000000 [53138.789366] .se->statistics.exec_max : 4.361538 [53138.789368] .se->statistics.slice_max : 10.070914 [53138.789369] .se->statistics.wait_max : 14.779264 [53138.789371] .se->statistics.wait_sum : 16340.607054 [53138.789372] .se->statistics.wait_count : 9759492 [53138.789374] .se->load.weight : 2 [53138.789375] .se->avg.runnable_avg_sum : 498 [53138.789376] .se->avg.runnable_avg_period : 46658 [53138.789378] .se->avg.load_avg_contrib : 0 [53138.789379] .se->avg.decay_count : 50677098 [53138.789381]=20 cfs_rq[0]:/ [53138.789383] .exec_clock : 2573454.794818 [53138.789385] .MIN_vruntime : 3274366.438761 [53138.789386] .min_vruntime : 3274375.411037 [53138.789388] .max_vruntime : 3274366.438761 [53138.789389] .spread : 0.000000 [53138.789391] .spread0 : 0.000000 [53138.789392] .nr_spread_over : 1966 [53138.789394] .nr_running : 2 [53138.789395] .load : 2048 [53138.789396] .runnable_load_avg : 0 [53138.789398] .blocked_load_avg : 0 [53138.789399] .tg_load_contrib : 0 [53138.789400] .tg_runnable_contrib : 14 [53138.789402] .tg_load_avg : 35 [53138.789403] .tg->runnable_avg : 62 [53138.789404] .tg->cfs_bandwidth.timer_active: 0 [53138.789406] .throttled : 0 [53138.789407] .throttle_count : 0 [53138.789408] .avg->runnable_avg_sum : 674 [53138.789410] .avg->runnable_avg_period : 48049 [53138.789411]=20 rt_rq[0]: [53138.789413] .rt_nr_running : 0 [53138.789415] .rt_throttled : 0 [53138.789416] .rt_time : 0.084061 [53138.789418] .rt_runtime : 950.000000 [53138.789420]=20 runnable tasks: task PID tree-key switches prio exec-runtime = sum-exec sum-sleep =2D------------------------------------------------------------------------= =2D-------------------------------- [53138.789423] systemd 1 911.417723 17141 120 = 911.417723 3497.194347 53126318.794757 /autogroup-2 [53138.789429] ksoftirqd/0 3 3274115.481941 814485 120 32= 74115.481941 4752.426329 53124036.650128 / [53138.789434] kworker/0:0H 5 6238.042168 7 100 = 6238.042168 0.016270 7639.205044 / [53138.789438] rcuc/0 7 0.000000 196595 98 = 0.000000 2479.797013 0.000000 / [53138.789443] rcub/0 8 0.000000 11 98 = 0.000000 0.024351 0.000000 / [53138.789447] rcu_bh 11 61.462672 2 120 = 61.462672 0.001055 0.000000 / [53138.789452] migration/0 12 0.000000 5647 0 = 0.000000 45.805894 0.000000 / [53138.789457] writeback 180 153.360805 2 100 = 153.360805 0.005562 0.001727 / [53138.789462] fsnotify_mark 617 3266733.919082 346 120 32= 66733.919082 1.677245 52922739.198514 / [53138.789467] scsi_tmf_0 1443 756.169263 2 100 = 756.169263 0.008695 0.003937 / [53138.789472] scsi_eh_2 1451 1347346.062277 9 120 13= 47346.062277 0.061898 25259510.006878 / [53138.789476] scsi_eh_4 1459 1347346.059971 9 120 13= 47346.059971 0.038753 25259503.921177 / [53138.789481] scsi_tmf_4 1460 801.415826 2 100 = 801.415826 0.007763 0.003628 / [53138.789487] kworker/0:1H 2833 3274198.753941 506124 100 32= 74198.753941 2740.461687 53126028.809713 / [53138.789492] kauditd 2875 3274161.548555 6286 120 32= 74161.548555 46.832633 53126605.024169 / [53138.789496] hd-audio1 4190 9863.021710 2 100 = 9863.021710 0.009055 3.001987 / [53138.789501] cfg80211 4204 9886.011096 3 100 = 9886.011096 1.388513 0.005054 / [53138.789506] kpsmoused 4284 10003.249850 2 100 = 10003.249850 0.003591 0.115526 / [53138.789510] auditd 4480 16.438732 6939 116 = 16.438732 101.621597 53121978.679791 /autogroup-29 [53138.789515] auditd 4487 16.438098 7536 116 = 16.438098 110.175476 53121991.675990 /autogroup-29 [53138.789520] mcelog 4610 0.937796 8 120 = 0.937796 0.128760 25251768.781354 /autogroup-44 [53138.789525] console-kit-dae 4625 133.016600 12 120 = 133.016600 0.061880 25251747.219794 /autogroup-46 [53138.789530] console-kit-dae 4626 133.015810 10 120 = 133.015810 0.100733 25251747.648034 /autogroup-46 [53138.789535] console-kit-dae 4629 133.017840 9 120 = 133.017840 0.055201 25251747.159667 /autogroup-46 [53138.789539] console-kit-dae 4631 133.025597 11 120 = 133.025597 0.080821 25251747.177326 /autogroup-46 [53138.789544] console-kit-dae 4633 133.017321 9 120 = 133.017321 0.050770 25251746.014696 /autogroup-46 [53138.789549] console-kit-dae 4636 133.015119 9 120 = 133.015119 0.052004 25251746.264535 /autogroup-46 [53138.789554] console-kit-dae 4639 133.016116 12 120 = 133.016116 0.066385 25251746.502750 /autogroup-46 [53138.789558] console-kit-dae 4642 133.017362 11 120 = 133.017362 0.058568 25251747.055386 /autogroup-46 [53138.789563] console-kit-dae 4645 133.017400 9 120 = 133.017400 0.056735 25251746.952986 /autogroup-46 [53138.789568] console-kit-dae 4648 133.016370 9 120 = 133.016370 0.058149 25251746.589105 /autogroup-46 [53138.789573] console-kit-dae 4650 133.016782 12 120 = 133.016782 0.061091 25251747.113491 /autogroup-46 [53138.789578] console-kit-dae 4653 133.015379 9 120 = 133.015379 0.048167 25251747.083582 /autogroup-46 [53138.789583] console-kit-dae 4656 133.016762 9 120 = 133.016762 0.051167 25251746.967997 /autogroup-46 [53138.789587] console-kit-dae 4659 133.018173 9 120 = 133.018173 0.054962 25251745.483728 /autogroup-46 [53138.789592] console-kit-dae 4662 133.015942 9 120 = 133.015942 0.059330 25251745.328338 /autogroup-46 [53138.789597] console-kit-dae 4665 133.016948 10 120 = 133.016948 0.055874 25251744.604340 /autogroup-46 [53138.789602] console-kit-dae 4668 133.016006 8 120 = 133.016006 0.105850 25251744.890480 /autogroup-46 [53138.789607] console-kit-dae 4671 133.017339 9 120 = 133.017339 0.047797 25251746.649200 /autogroup-46 [53138.789611] console-kit-dae 4674 133.016590 9 120 = 133.016590 0.056054 25251745.813586 /autogroup-46 [53138.789616] console-kit-dae 4675 133.015140 9 120 = 133.015140 0.119615 25251747.164787 /autogroup-46 [53138.789620] console-kit-dae 4678 133.043308 9 120 = 133.043308 0.072710 25251746.846388 /autogroup-46 [53138.789625] console-kit-dae 4680 133.016977 9 120 = 133.016977 0.061046 25251746.298187 /autogroup-46 [53138.789630] console-kit-dae 5306 133.016680 7 120 = 133.016680 0.050864 25236602.014209 /autogroup-46 [53138.789635] gdbus 4620 37.087264 18 120 = 37.087264 1.219653 25251742.487024 /autogroup-48 [53138.789640] runaway-killer- 4709 108.807120 16 120 = 108.807120 0.133784 25251701.268711 /autogroup-54 [53138.789645] syslog-ng 4712 5179.841838 54455 120 = 5179.841838 575.913885 53120805.815118 /autogroup-55 [53138.789650] sshd 5071 0.839043 10 120 = 0.839043 3.943850 25238126.221398 /autogroup-65 [53138.789655] smbd 5084 2569.426100 901 120 = 2569.426100 171.344165 53074422.343899 /autogroup-68 [53138.789660] exim 5087 3776.819269 366 125 = 3776.819269 46.989239 52854327.613370 /autogroup-69 [53138.789664] mysqld 5106 355.152680 431 120 = 355.152680 218.220311 25237843.200017 /autogroup-72 [53138.789669] mysqld 5116 17.039026 1 120 = 17.039026 0.014630 0.000000 /autogroup-72 [53138.789674] mysqld 5117 737.638143 106109 120 = 737.638143 670.561197 53110022.244942 /autogroup-72 [53138.789678] mysqld 5121 737.135874 106104 120 = 737.135874 692.612112 53110112.546662 /autogroup-72 [53138.789684] mysqld 5136 729.081327 53013 120 = 729.081327 657.761826 53110548.580046 /autogroup-72 [53138.789688] mysqld 5142 728.661281 10616 120 = 728.661281 86.952100 53110140.074163 /autogroup-72 [53138.789694] kdm 5314 38.863913 146 120 = 38.863913 14.339988 25236394.956369 /autogroup-80 [53138.789699] ssh-agent 5362 9.658717 223 120 = 9.658717 43.749992 52200866.751813 /autogroup-87 [53138.789704] klauncher 5442 1119308.059917 3416 120 11= 19308.059917 251.292408 53073432.518920 /autogroup-89 [53138.789709] KCupsConnection 5481 493196.453373 8 120 4= 93196.453373 0.103833 25229341.149593 /autogroup-89 [53138.789714] gam_server 5446 2.746258 134 120 = 2.746258 9.645774 52888420.139273 /autogroup-90 [53138.789718] kglobalaccel 5457 1119934.225240 21703 120 11= 19934.225240 555.869124 53082749.134657 /autogroup-89 [53138.789723] kactivitymanage 5463 1119935.494396 58216 120 11= 19935.494396 2585.624211 53080726.130764 /autogroup-89 [53138.789728] QThread 5475 493196.453114 7 120 4= 93196.453114 0.060819 25229415.792566 /autogroup-89 [53138.789732] QProcessManager 5476 493196.453504 10 120 4= 93196.453504 0.125610 25229405.908186 /autogroup-89 [53138.789737] gmain 5466 2985.955992 146 120 = 2985.955992 4.095005 42186928.273300 /autogroup-91 [53138.789742] cleanup 5470 3662.234262 21 120 = 3662.234262 1.194480 52134861.311765 /autogroup-91 [53138.789747] baloo_file 5488 1119943.876355 19053 139 11= 19943.876355 581.491212 53080162.316164 /autogroup-89 [53138.789752] QInotifyFileSys 5492 493196.454848 7 120 4= 93196.454848 0.081033 25228767.669020 /autogroup-89 [53138.789756] QInotifyFileSys 5498 493196.454206 7 120 4= 93196.454206 0.097410 25228309.228032 /autogroup-89 [53138.789761] kuiserver 5497 1633.582954 16978 120 = 1633.582954 417.975071 53082565.194595 /autogroup-88 [53138.789766] ThreadWeaver::T 5935 664616.910226 96 120 6= 64616.910226 11.814895 31703395.880851 /autogroup-89 [53138.789771] ThreadWeaver::T 5938 664616.578307 139 120 6= 64616.578307 52.807619 31703358.974365 /autogroup-89 [53138.789776] dropbox 5693 493196.456111 129 120 4= 93196.456111 2.908870 25222418.038677 /autogroup-89 [53138.789781] dropbox 5832 461050.118406 299 120 4= 61050.118406 66.617374 24027911.401477 /autogroup-89 [53138.789787] dropbox 5864 3411.069731 1 120 = 3411.069731 0.188364 0.000000 /autogroup-89 [53138.789792] dropbox 5876 493196.454195 182 120 4= 93196.454195 10.293444 25213632.295893 /autogroup-89 [53138.789796] konqueror 5525 1119934.223445 15607 120 11= 19934.223445 358.426085 53075914.110624 /autogroup-89 [53138.789801] klipper 5533 1119934.306253 26925 120 11= 19934.306253 1100.945995 53076738.733269 /autogroup-89 [53138.789806] kgpg 5535 1119934.230221 16028 120 11= 19934.230221 428.281547 53075995.006426 /autogroup-89 [53138.789810] QInotifyFileSys 5657 493196.454412 7 120 4= 93196.454412 0.085542 25222952.219188 /autogroup-89 [53138.789815] akonadi_control 5662 520602.126118 12739 120 5= 20602.126118 1209.230238 53093085.857435 /autogroup-95 [53138.789820] Akonadi::Server 5709 483216.092438 74 120 4= 83216.092438 1.093337 50451967.733425 /autogroup-95 [53138.789825] Akonadi::Server 5743 483207.143862 64 120 4= 83207.143862 1.682136 50452068.388741 /autogroup-95 [53138.789830] Akonadi::Server 5764 520605.815966 290510 120 5= 20605.815966 4951.686250 53086896.817478 /autogroup-95 [53138.789834] Akonadi::Server 5770 483207.137460 287 120 4= 83207.137460 4.465876 50452220.360680 /autogroup-95 [53138.789839] Akonadi::Server 5778 483207.131144 82 120 4= 83207.131144 1.244912 50452126.995352 /autogroup-95 [53138.789844] Akonadi::Server 5781 483207.160191 61 120 4= 83207.160191 1.427023 50453645.627575 /autogroup-95 [53138.789848] Akonadi::Server 5783 483207.135479 436 120 4= 83207.135479 7.116032 50452118.120981 /autogroup-95 [53138.789853] Akonadi::Server 5784 483207.130585 636 120 4= 83207.130585 12.640038 50452064.502190 /autogroup-95 [53138.789858] Akonadi::Server 22508 514257.823827 378 120 5= 14257.823827 40.035511 28829412.576599 /autogroup-95 [53138.789862] mysqld 5666 240723.060005 268 120 2= 40723.060005 167.102548 25222523.291831 /autogroup-95 [53138.789868] mysqld 5685 520602.088210 106513 120 5= 20602.088210 749.281285 53095414.342807 /autogroup-95 [53138.789873] mysqld 5692 520601.699071 3158 120 5= 20601.699071 233.308266 53062282.943896 /autogroup-95 [53138.789878] mysqld 5706 483200.669645 198 120 4= 83200.669645 36.901424 50451874.879299 /autogroup-95 [53138.789883] mysqld 5721 520601.711093 2135 120 5= 20601.711093 182.335853 53066489.898669 /autogroup-95 [53138.789887] mysqld 5775 483207.125790 325 120 4= 83207.125790 6.680834 50451914.891112 /autogroup-95 [53138.789892] mysqld 5782 483207.122921 34 120 4= 83207.122921 0.959290 50451996.732422 /autogroup-95 [53138.789897] mysqld 5791 483207.126006 30 120 4= 83207.126006 0.997349 50451990.777910 /autogroup-95 [53138.789901] akonadi_agent_l 5720 520602.935543 20475 120 5= 20602.935543 1049.262264 53073361.661475 /autogroup-95 [53138.789907] akonadi_agent_l 5725 520602.976629 20010 120 5= 20602.976629 1072.153126 53072299.077084 /autogroup-95 [53138.789911] akonadi_agent_l 5735 520602.994606 20647 120 5= 20602.994606 1093.231006 53072045.064573 /autogroup-95 [53138.789916] QProcessManager 5747 240723.061145 8 120 2= 40723.061145 0.095060 25221972.017454 /autogroup-95 [53138.789921] QProcessManager 5754 240723.062226 8 120 2= 40723.062226 0.095573 25221960.795274 /autogroup-95 [53138.789925] akonadi_agent_l 5740 520601.975367 20124 120 5= 20601.975367 1062.631363 53072020.288932 /autogroup-95 [53138.789929] QProcessManager 5759 240723.061329 9 120 2= 40723.061329 0.097658 25221928.699791 /autogroup-95 [53138.789934] akonadi_pop3_re 5748 520601.954261 26770 120 5= 20601.954261 1792.201509 53073387.107555 /autogroup-95 [53138.789939] akonadi_pop3_re 5752 520604.107858 21400 120 5= 20604.107858 1076.352886 53072700.695448 /autogroup-95 [53138.789944] QProcessManager 5768 240723.061393 8 120 2= 40723.061393 0.113164 25221864.594539 /autogroup-95 [53138.789949] inotify_reader 5867 947362.475004 64 120 9= 47362.475004 1.997355 42170071.620135 /autogroup-89 [53138.789954] CrShutdownDetec 5873 493196.456136 10 120 4= 93196.456136 0.039672 25213663.139353 /autogroup-89 [53138.789959] Chrome_ProcessL 5881 1120056.998515 15246 120 11= 20056.998515 7558.452337 53078119.034224 /autogroup-89 [53138.789964] BrowserBlocking 5899 1120111.380056 70298 120 11= 20111.380056 15161.776490 53070055.069012 /autogroup-89 [53138.789969] extension_crash 5984 6279.718090 1 120 = 6279.718090 0.031871 0.000000 /autogroup-89 [53138.789974] WorkerPool/1552 15525 1118293.528175 1737 120 11= 18293.528175 2865.912435 11088937.999672 /autogroup-89 [53138.789979] chrome 5850 493196.456936 142 120 4= 93196.456936 23.984523 25213803.489752 /autogroup-89 [53138.789983] kmail 5912 1119985.116413 1105842 120 11= 19985.116413 1067498.254428 51992707.628844 /autogroup-89 [53138.789988] Chrome_ChildIOT 5987 1120171.721424 3738 120 11= 20171.721424 115.726475 53067153.621280 /autogroup-89 [53138.789993] chrome 6014 1120171.711925 7105 120 11= 20171.711925 262.807931 53066835.029192 /autogroup-89 [53138.789998] v8:SweeperThrea 6046 8535.267100 9 120 = 8535.267100 0.162126 37967.457747 /autogroup-89 [53138.790003] Compositor 6048 6437.587570 11 120 = 6437.587570 0.108560 12.019282 /autogroup-89 [53138.790008] v8:SweeperThrea 6064 1094930.790046 51 120 10= 94930.790046 2.052317 51683946.173183 /autogroup-89 [53138.790013] OptimizingCompi 6075 1074632.819762 974 120 10= 74632.819762 354.468365 50797098.144709 /autogroup-89 [53138.790017] Compositor 6079 667215.270855 2188 120 6= 67215.270855 101.920321 31796323.403509 /autogroup-89 [53138.790023] v8:SweeperThrea 6085 8535.261729 8 120 = 8535.261729 0.159374 37965.138027 /autogroup-89 [53138.790028] v8:SweeperThrea 6106 802929.338969 43 120 8= 02929.338969 1.421781 38117831.093556 /autogroup-89 [53138.790032] HTMLParserThrea 6114 6770.422542 44 120 = 6770.422542 0.341912 263.219593 /autogroup-89 [53138.790038] v8:SweeperThrea 6130 1118859.122624 1178 120 11= 18859.122624 513.070435 52957112.051415 /autogroup-89 [53138.790043] OptimizingCompi 6132 1100902.352717 401 120 11= 00902.352717 202.705595 52134189.641030 /autogroup-89 [53138.790048] v8:SweeperThrea 6135 1106406.809600 240 120 11= 06406.809600 7.272360 52331111.516469 /autogroup-89 [53138.790052] Compositor 6127 6738.818666 12 120 = 6738.818666 0.141746 12.393005 /autogroup-89 [53138.790058] v8:SweeperThrea 6162 1118291.537889 1139 120 11= 18291.537889 260.919406 52888153.050549 /autogroup-89 [53138.790064] v8:SweeperThrea 6169 1113938.278024 1142 120 11= 13938.278024 242.042533 52759491.075000 /autogroup-89 [53138.790069] bash 7133 136.262954 66 120 = 136.262954 20.232724 24835901.615832 /autogroup-119 [53138.790074] bash 5198 4312.060437 88 120 = 4312.060437 14.953221 13074082.574011 /autogroup-851 [53138.790080] bash 11460 1544.673372 168 120 = 1544.673372 19.686832 1553160.178522 /autogroup-970 [53138.790085] irq/53-iwlwifi 12079 0.000000 519347 49 = 0.000000 9187.113683 0.000000 / [53138.790089] sudo 14674 1260.422461 3 120 = 1260.422461 7.423605 0.339269 /autogroup-874 [53138.790095] chrome 17992 1120193.305043 26503 120 11= 20193.305043 45986.669667 6788845.652802 /autogroup-89 [53138.790100] Chrome_ChildIOT 17993 1120193.251081 40296 120 11= 20193.251081 643.909488 6834465.052767 /autogroup-89 [53138.790105] v8:SweeperThrea 18308 1118285.123622 49 120 11= 18285.123622 13.134324 6115417.492858 /autogroup-89 [53138.790110] chrome 18421 1120193.303674 45718 120 11= 20193.303674 8300.157084 6176538.610216 /autogroup-89 [53138.790115] Chrome_ChildIOT 18422 1120193.252723 38259 120 11= 20193.252723 620.730873 6184348.784393 /autogroup-89 [53138.790120] OptimizingCompi 18433 1017758.588947 291 120 10= 17758.588947 62.646661 895213.415348 /autogroup-89 [53138.790125] v8:SweeperThrea 18435 1017204.910487 21 120 10= 17204.910487 3.771513 820810.962677 /autogroup-89 [53138.790129] Compositor 18437 1036863.219811 52931 120 10= 36863.219811 3109.752550 1212979.961060 /autogroup-89 [53138.790134] HTMLParserThrea 18442 1016491.370912 125 120 10= 16491.370912 17.899714 735107.413941 /autogroup-89 [53138.790139] chrome 18925 1120198.954329 28226 120 11= 20198.954329 26695.408364 5193050.723558 /autogroup-89 [53138.790144] Chrome_ChildIOT 18938 1120029.886494 11541 120 11= 20029.886494 240.060799 5218972.692818 /autogroup-89 [53138.790149] Chrome_ChildIOT 18976 1120193.260963 9014 120 11= 20193.260963 158.614732 5156934.386303 /autogroup-89 [53138.790154] v8:SweeperThrea 18981 1026664.504792 17 120 10= 26664.504792 3.597866 26607.468134 /autogroup-89 [53138.790159] HTMLParserThrea 18984 1025651.584285 93 120 10= 25651.584285 8.139865 14296.796648 /autogroup-89 [53138.790163] Media 19027 1025983.811341 11 120 10= 25983.811341 22.831689 0.740800 /autogroup-89 [53138.790168] CrVideoRenderer 19029 1120193.583138 511265 120 11= 20193.583138 2475.524994 5139498.012475 /autogroup-89 [53138.790172] OptimizingCompi 19306 1042200.279493 293 120 10= 42200.279493 50.663239 212178.583433 /autogroup-89 [53138.790177] HTMLParserThrea 19311 1040066.381360 119 120 10= 40066.381360 29.596724 10553.658957 /autogroup-89 [53138.790182] OptimizingCompi 19524 1119990.516731 992 120 11= 19990.516731 224.833378 4214999.918576 /autogroup-89 [53138.790186] v8:SweeperThrea 19527 1119934.140973 120 120 11= 19934.140973 35.313557 4208096.069954 /autogroup-89 [53138.790191] Compositor 19528 1055945.187958 4112 120 10= 55945.187958 335.970081 578214.115087 /autogroup-89 [53138.790196] HTMLParserThrea 19529 1047928.282676 421 120 10= 47928.282676 44.233427 19290.188324 /autogroup-89 [53138.790200] OptimizingCompi 19899 1114244.696443 645 120 11= 14244.696443 174.031087 3373127.861134 /autogroup-89 [53138.790205] v8:SweeperThrea 19901 1119928.144936 116 120 11= 19928.144936 42.056258 3631307.838593 /autogroup-89 [53138.790210] v8:SweeperThrea 20090 1063995.275807 12 120 10= 63995.275807 2.089187 94856.248382 /autogroup-89 [53138.790215] v8:SweeperThrea 20256 1070590.924704 24 120 10= 70590.924704 7.491645 267604.832165 /autogroup-89 [53138.790221] HTMLParserThrea 20505 1072249.466259 52 120 10= 72249.466259 10.511538 6321.331786 /autogroup-89 [53138.790226] Chrome_ChildIOT 20712 1120193.502830 21504 120 11= 20193.502830 355.916816 2268124.856154 /autogroup-89 [53138.790230] v8:SweeperThrea 20725 1100077.791879 21 120 11= 00077.791879 3.993826 1247960.707104 /autogroup-89 [53138.790235] kworker/u16:0 21284 3269451.596972 18803 120 32= 69451.596972 236.834016 1145233.901761 / [53138.790240] kworker/0:3 21414 3274041.720642 37226 120 32= 74041.720642 3728.949390 1045887.421258 / [53138.790244] scsi_eh_8 21431 3201142.779275 2 120 32= 01142.779275 0.005064 0.003054 / [53138.790249] usb-storage 21433 3260525.674251 1037320 120 32= 60525.674251 3716.624005 740691.851074 / [53138.790253] xfsaild/sdb 21502 3256813.564941 10433 120 32= 56813.564941 48.914110 692543.275254 / [53138.790258] v8:SweeperThrea 21634 1107378.847472 26 120 11= 07378.847472 3.460180 105923.777259 /autogroup-89 [53138.790263] chrome 21658 1120171.793737 6514 120 11= 20171.793737 6854.902652 765392.018769 /autogroup-89 [53138.790268] chrome 21701 1120193.264217 7306 120 11= 20193.264217 2725.214141 685609.905283 /autogroup-89 [53138.790272] v8:SweeperThrea 21707 1110045.634182 23 120 11= 10045.634182 2.527433 139615.527927 /autogroup-89 [53138.790277] kworker/0:1 21997 3274366.438761 13839 120 32= 74366.438761 294.004268 316084.453502 / [53138.790282] kworker/0:0 22256 3274115.506398 344 120 32= 74115.506398 2.514995 7185.661368 / [53138.790287] R bash 22259 363.996264 55 120 = 363.996264 11.313494 3780.833146 /autogroup-1051 [53138.790291] v8:SweeperThrea 22284 1120083.904170 1 120 11= 20083.904170 0.006562 0.000000 /autogroup-89 [53138.790295] v8:SweeperThrea 22285 1120092.909349 1 120 11= 20092.909349 0.005185 0.000000 /autogroup-89 [53138.790300] v8:SweeperThrea 22286 1120101.914583 1 120 11= 20101.914583 0.005240 0.000000 /autogroup-89 [53138.790304] Compositor 22287 1120111.040762 5 120 11= 20111.040762 0.126185 7.260631 /autogroup-89 [53138.790317] cpu#1, 2194.832 MHz [53138.790318] .nr_running : 0 [53138.790320] .load : 0 [53138.790321] .nr_switches : 42894632 [53138.790322] .nr_load_updates : 8447798 [53138.790324] .nr_uninterruptible : -8228 [53138.790325] .next_balance : 4308.163341 [53138.790327] .curr->pid : 0 [53138.790328] .clock : 53138789.114790 [53138.790330] .cpu_load[0] : 0 [53138.790331] .cpu_load[1] : 0 [53138.790332] .cpu_load[2] : 0 [53138.790334] .cpu_load[3] : 0 [53138.790335] .cpu_load[4] : 0 [53138.790336] .yld_count : 16238 [53138.790338] .sched_count : 42949865 [53138.790339] .sched_goidle : 19270025 [53138.790341] .avg_idle : 639170 [53138.790342] .max_idle_balance_cost : 500000 [53138.790343] .ttwu_count : 18547485 [53138.790345] .ttwu_local : 10114362 [53138.790347]=20 cfs_rq[1]:/autogroup-81 [53138.790349] .exec_clock : 107799.961426 [53138.790350] .MIN_vruntime : 0.000001 [53138.790352] .min_vruntime : 107806.112746 [53138.790353] .max_vruntime : 0.000001 [53138.790355] .spread : 0.000000 [53138.790356] .spread0 : -3166569.298291 [53138.790358] .nr_spread_over : 0 [53138.790359] .nr_running : 0 [53138.790361] .load : 0 [53138.790362] .runnable_load_avg : 0 [53138.790363] .blocked_load_avg : 4 [53138.790365] .tg_load_contrib : 4 [53138.790366] .tg_runnable_contrib : 0 [53138.790367] .tg_load_avg : 4 [53138.790369] .tg->runnable_avg : 0 [53138.790370] .tg->cfs_bandwidth.timer_active: 0 [53138.790371] .throttled : 0 [53138.790373] .throttle_count : 0 [53138.790374] .se->exec_start : 53138788.795422 [53138.790376] .se->vruntime : 3390366.612413 [53138.790378] .se->sum_exec_runtime : 107804.419158 [53138.790379] .se->statistics.wait_start : 0.000000 [53138.790381] .se->statistics.sleep_start : 0.000000 [53138.790382] .se->statistics.block_start : 0.000000 [53138.790384] .se->statistics.sleep_max : 0.000000 [53138.790385] .se->statistics.block_max : 0.000000 [53138.790387] .se->statistics.exec_max : 4.006744 [53138.790388] .se->statistics.slice_max : 6.680944 [53138.790390] .se->statistics.wait_max : 3.834440 [53138.790391] .se->statistics.wait_sum : 505.976690 [53138.790392] .se->statistics.wait_count : 1060207 [53138.790394] .se->load.weight : 2 [53138.790395] .se->avg.runnable_avg_sum : 42 [53138.790397] .se->avg.runnable_avg_period : 47505 [53138.790398] .se->avg.load_avg_contrib : 0 [53138.790399] .se->avg.decay_count : 50677099 [53138.790401]=20 cfs_rq[1]:/autogroup-89 [53138.790403] .exec_clock : 1588184.203972 [53138.790405] .MIN_vruntime : 0.000001 [53138.790406] .min_vruntime : 1214740.971548 [53138.790408] .max_vruntime : 0.000001 [53138.790409] .spread : 0.000000 [53138.790410] .spread0 : -2059634.439489 [53138.790412] .nr_spread_over : 4282 [53138.790413] .nr_running : 0 [53138.790415] .load : 0 [53138.790416] .runnable_load_avg : 0 [53138.790417] .blocked_load_avg : 2 [53138.790419] .tg_load_contrib : 2 [53138.790420] .tg_runnable_contrib : 5 [53138.790421] .tg_load_avg : 28 [53138.790423] .tg->runnable_avg : 42 [53138.790424] .tg->cfs_bandwidth.timer_active: 0 [53138.790425] .throttled : 0 [53138.790427] .throttle_count : 0 [53138.790428] .se->exec_start : 53138789.114366 [53138.790430] .se->vruntime : 3390375.582038 [53138.790431] .se->sum_exec_runtime : 1588194.527776 [53138.790433] .se->statistics.wait_start : 0.000000 [53138.790434] .se->statistics.sleep_start : 0.000000 [53138.790436] .se->statistics.block_start : 0.000000 [53138.790437] .se->statistics.sleep_max : 0.000000 [53138.790439] .se->statistics.block_max : 0.000000 [53138.790440] .se->statistics.exec_max : 4.051694 [53138.790442] .se->statistics.slice_max : 7.042072 [53138.790443] .se->statistics.wait_max : 19.551829 [53138.790445] .se->statistics.wait_sum : 18291.224125 [53138.790446] .se->statistics.wait_count : 10623926 [53138.790448] .se->load.weight : 2 [53138.790449] .se->avg.runnable_avg_sum : 357 [53138.790451] .se->avg.runnable_avg_period : 47721 [53138.790452] .se->avg.load_avg_contrib : 2 [53138.790453] .se->avg.decay_count : 50677099 [53138.790455]=20 cfs_rq[1]:/ [53138.790457] .exec_clock : 2591523.436766 [53138.790458] .MIN_vruntime : 0.000001 [53138.790460] .min_vruntime : 3390375.582038 [53138.790461] .max_vruntime : 0.000001 [53138.790463] .spread : 0.000000 [53138.790464] .spread0 : 116000.171001 [53138.790466] .nr_spread_over : 1505 [53138.790467] .nr_running : 0 [53138.790468] .load : 0 [53138.790469] .runnable_load_avg : 0 [53138.790471] .blocked_load_avg : 2 [53138.790472] .tg_load_contrib : 2 [53138.790474] .tg_runnable_contrib : 8 [53138.790475] .tg_load_avg : 35 [53138.790476] .tg->runnable_avg : 62 [53138.790478] .tg->cfs_bandwidth.timer_active: 0 [53138.790479] .throttled : 0 [53138.790480] .throttle_count : 0 [53138.790482] .avg->runnable_avg_sum : 413 [53138.790483] .avg->runnable_avg_period : 47742 [53138.790484]=20 rt_rq[1]: [53138.790486] .rt_nr_running : 0 [53138.790488] .rt_throttled : 0 [53138.790489] .rt_time : 0.000000 [53138.790491] .rt_runtime : 950.000000 [53138.790492]=20 runnable tasks: task PID tree-key switches prio exec-runtime = sum-exec sum-sleep =2D------------------------------------------------------------------------= =2D-------------------------------- [53138.790495] kthreadd 2 3390182.513773 1331 120 33= 90182.513773 31.016207 53123295.743354 / [53138.790500] rcu_preempt 9 3390366.573147 2584635 120 33= 90366.573147 10724.533298 53124120.316666 / [53138.790504] migration/1 13 0.000000 5655 0 = 0.000000 54.653271 0.000000 / [53138.790509] rcuc/1 14 -2.998538 208745 98 = -2.998538 3698.871827 0.000000 / [53138.790513] ksoftirqd/1 15 3390183.819108 616335 120 33= 90183.819108 3010.096954 53120754.526515 / [53138.790517] kworker/1:0H 17 1475088.772023 14 100 14= 75088.772023 0.031020 25261798.960852 / [53138.790523] khungtaskd 179 3387738.473679 445 120 33= 87738.473679 26.770174 53094542.631925 / [53138.790527] crypto 183 8.093536 2 100 = 8.093536 0.005332 0.002256 / [53138.790532] kintegrityd 184 17.097771 2 100 = 17.097771 0.004731 0.001765 / [53138.790536] bioset 185 26.102055 2 100 = 26.102055 0.004731 0.001609 / [53138.790541] kswapd0 544 3365665.343655 319 120 33= 65665.343655 225.711179 52782718.158173 / [53138.790545] kthrotld 631 2311.377550 2 100 = 2311.377550 0.008339 0.005386 / [53138.790550] ata_sff 1416 4952.105179 2 100 = 4952.105179 0.009830 0.004152 / [53138.790554] scsi_tmf_1 1448 4990.013948 2 100 = 4990.013948 0.008326 0.003681 / [53138.790559] scsi_tmf_5 1464 5019.959440 2 100 = 5019.959440 0.008165 0.004481 / [53138.790564] kdmflush 2770 5993.052472 2 100 = 5993.052472 0.006025 0.001941 / [53138.790568] bioset 2771 5999.056102 2 100 = 5999.056102 0.004124 0.001768 / [53138.790572] kcryptd_io 2772 6005.059589 2 100 = 6005.059589 0.003989 0.001582 / [53138.790576] xfsaild/dm-0 2834 3390366.474860 972975 120 33= 90366.474860 5040.814569 53125643.392163 / [53138.790580] ipv6_addrconf 2860 6038.130986 2 100 = 6038.130986 0.005536 0.002927 / [53138.790585] kworker/1:1H 3012 3386229.602007 177407 100 33= 86229.602007 640.190454 53024782.783137 / [53138.790589] kvm-irqfd-clean 4043 6131.930826 2 100 = 6131.930826 0.005270 0.003063 / [53138.790594] ttm_swap 4432 7481.815349 2 100 = 7481.815349 0.007019 0.003660 / [53138.790599] avahi-daemon 4595 0.039067 3 120 = 0.039067 0.100423 32.813642 /autogroup-40 [53138.790604] console-kit-dae 4621 19.164455 5 120 = 19.164455 0.124501 20580.571911 /autogroup-46 [53138.790611] upowerd 4615 288.973631 13927 120 = 288.973631 1283.100616 53093515.847111 /autogroup-47 [53138.790616] polkitd 4695 206.910697 9358 120 = 206.910697 421.807950 53076664.844458 /autogroup-54 [53138.790621] gdbus 4700 206.835995 9304 120 = 206.835995 547.123196 53076176.370288 /autogroup-54 [53138.790626] mysqld 5118 676.495844 106118 120 = 676.495844 682.562719 53110120.200076 /autogroup-72 [53138.790630] mysqld 5122 677.050974 106120 120 = 677.050974 666.993571 53109994.806185 /autogroup-72 [53138.790635] mysqld 5124 676.125352 106104 120 = 676.125352 666.601796 53110061.582807 /autogroup-72 [53138.790639] mysqld 5126 677.069929 106133 120 = 677.069929 673.395822 53109978.401451 /autogroup-72 [53138.790644] mysqld 5134 677.095726 53065 120 = 677.095726 1310.470344 53109751.905863 /autogroup-72 [53138.790649] mysqld 5135 668.069515 10615 120 = 668.069515 82.471245 53110196.179418 /autogroup-72 [53138.790654] mysqld 5137 32.162469 38 120 = 32.162469 4.909838 16.706911 /autogroup-72 [53138.790658] mysqld 5138 668.115039 53005 120 = 668.115039 508.837738 53110511.815674 /autogroup-72 [53138.790663] mysqld 5141 668.032790 5309 120 = 668.032790 42.436059 53105017.426905 /autogroup-72 [53138.790667] unbound 5131 1739.355074 50505 120 = 1739.355074 9459.555297 53066545.487470 /autogroup-75 [53138.790672] X 5304 107806.112746 4812622 120 1= 07806.112746 469639.269095 52637024.979706 /autogroup-81 [53138.790676] X 5307 106335.172226 59 120 1= 06335.172226 1.036861 52487259.126121 /autogroup-81 [53138.790681] (sd-pam) 5335 3.510040 1 120 = 3.510040 0.058621 0.000000 /autogroup-84 [53138.790686] gpg-agent 5355 148.739448 17706 120 = 148.739448 567.485796 53101875.258132 /autogroup-86 [53138.790691] kdeinit4 5441 1214480.406664 2519 120 12= 14480.406664 570.411072 53073330.597192 /autogroup-89 [53138.790696] QInotifyFileSys 5464 577674.206715 7 120 5= 77674.206715 0.079316 25229512.652942 /autogroup-89 [53138.790700] QThread 5482 577674.206850 10 120 5= 77674.206850 0.190234 25229343.911411 /autogroup-89 [53138.790705] QThread 5474 1214684.330066 30883 120 12= 14684.330066 1483.396872 53084743.838302 /autogroup-89 [53138.790709] QThread 5479 577674.207599 7 120 5= 77674.207599 0.083923 25229349.187599 /autogroup-89 [53138.790714] QInotifyFileSys 5480 577674.206589 7 120 5= 77674.206589 0.063075 25229347.384791 /autogroup-89 [53138.790718] udisksd 5465 1022.945802 9125 120 = 1022.945802 379.476765 53054652.650238 /autogroup-91 [53138.790723] gdbus 5468 1024.797511 13754 120 = 1024.797511 963.082464 53053992.193524 /autogroup-91 [53138.790728] plasma-desktop 5489 1214732.023628 1590596 120 12= 14732.023628 230850.728784 52860630.737231 /autogroup-89 [53138.790733] QProcessManager 5660 577674.208043 11 120 5= 77674.208043 0.166661 25222716.248434 /autogroup-89 [53138.790737] ThreadWeaver::T 5937 783834.644130 135 120 7= 83834.644130 89.940049 31703334.542594 /autogroup-89 [53138.790742] QProcessManager 5627 747248.948833 21 120 7= 47248.948833 0.347150 30348736.283864 /autogroup-89 [53138.790746] dropbox 5675 1154931.676812 184 120 11= 54931.676812 54.385653 50082118.375001 /autogroup-89 [53138.790751] dropbox 5833 8165.698532 473 120 = 8165.698532 62.933299 391.136529 /autogroup-89 [53138.790756] QProcessManager 5546 577674.206480 15 120 5= 77674.206480 0.133306 25223251.580061 /autogroup-89 [53138.790761] korgac 5538 1214709.264765 16316 120 12= 14709.264765 526.652281 53090026.686367 /autogroup-89 [53138.790766] Akonadi::Server 5710 519242.927029 73 120 5= 19242.927029 1.408190 50451959.017433 /autogroup-95 [53138.790770] Akonadi::Server 5711 562155.838143 1204 120 5= 62155.838143 102.806219 53065918.388360 /autogroup-95 [53138.790775] Akonadi::Server 5736 519233.971794 80 120 5= 19233.971794 1.477368 50452022.695765 /autogroup-95 [53138.790779] Akonadi::Server 5739 519233.962606 68 120 5= 19233.962606 1.329340 50452076.217119 /autogroup-95 [53138.790785] Akonadi::Server 5785 519233.973691 404 120 5= 19233.973691 7.394936 50452126.853480 /autogroup-95 [53138.790789] mysqld 5676 35.280772 1 120 = 35.280772 0.015579 0.000000 /autogroup-95 [53138.790794] mysqld 5677 562156.320833 106071 120 5= 62156.320833 708.148527 53095005.548532 /autogroup-95 [53138.790798] mysqld 5678 562156.511103 110869 120 5= 62156.511103 789.058245 53095414.033774 /autogroup-95 [53138.790803] mysqld 5680 562156.353249 106090 120 5= 62156.353249 692.917581 53094869.059193 /autogroup-95 [53138.790807] mysqld 5690 562156.007812 10612 120 5= 62156.007812 81.886384 53095000.632098 /autogroup-95 [53138.790812] mysqld 5691 562156.252977 59944 120 5= 62156.252977 868.995982 53095211.817614 /autogroup-95 [53138.790817] mysqld 5698 562155.979871 5373 120 5= 62155.979871 101.134386 53087555.803228 /autogroup-95 [53138.790822] mysqld 5766 519233.975887 29 120 5= 19233.975887 1.054093 50451998.331592 /autogroup-95 [53138.790826] mysqld 5767 519233.975409 43 120 5= 19233.975409 1.080589 50451956.200360 /autogroup-95 [53138.790831] mysqld 5788 519233.964217 273 120 5= 19233.964217 4.460645 50451922.781120 /autogroup-95 [53138.790835] mysqld 5790 519233.962944 41 120 5= 19233.962944 1.003109 50451992.566052 /autogroup-95 [53138.790839] mysqld 5793 519233.960590 340 120 5= 19233.960590 14.747358 50451968.428476 /autogroup-95 [53138.790844] QProcessManager 5730 306408.110992 9 120 3= 06408.110992 0.097181 25222073.424580 /autogroup-95 [53138.790849] QProcessManager 5795 306408.110769 11 120 3= 06408.110769 0.179562 25220007.317636 /autogroup-95 [53138.790854] QProcessManager 5805 813110.481972 24 120 8= 13110.481972 0.376024 33315985.954481 /autogroup-89 [53138.790859] wish 5827 1214732.077071 1145952 120 12= 14732.077071 55387.334145 53031703.892011 /autogroup-89 [53138.790863] chrome 5829 1214740.971548 4113175 120 12= 14740.971548 704920.356598 52327575.253219 /autogroup-89 [53138.790868] Chrome_FileThre 5879 1214739.595340 91326 120 12= 14739.595340 3405.829158 53082765.042437 /autogroup-89 [53138.790872] IndexedDB 5884 1214697.277248 7485 120 12= 14697.277248 434.914997 53080886.156151 /autogroup-89 [53138.790877] gpu-process_cra 5885 8044.710690 3 120 = 8044.710690 0.035498 0.000000 /autogroup-89 [53138.790881] BrowserWatchdog 5888 1214731.331789 135736 120 12= 14731.331789 1666.851605 53084917.310590 /autogroup-89 [53138.790886] Chrome_SafeBrow 5897 1176866.534588 10542 120 11= 76866.534588 6710.263201 51246761.141758 /autogroup-89 [53138.790890] BrowserBlocking 5898 1214731.313986 72856 120 12= 14731.313986 15555.514942 53069566.863511 /autogroup-89 [53138.790895] renderer_crash_ 5904 8399.349869 1 120 = 8399.349869 0.027537 0.000000 /autogroup-89 [53138.790900] NSS SSL ThreadW 5911 1214733.668438 365139 120 12= 14733.668438 18260.382693 53065960.113591 /autogroup-89 [53138.790904] Chrome_SyncThre 5981 1214697.805960 58690 120 12= 14697.805960 3089.673381 53056665.202892 /autogroup-89 [53138.790909] CachePoolWorker 13093 1214731.721222 19011 120 12= 14731.721222 257.338735 44666676.952019 /autogroup-89 [53138.790915] chrome 5985 1214731.311003 7256 120 12= 14731.311003 242.578460 53066976.809687 /autogroup-89 [53138.790919] v8:SweeperThrea 6021 9906.512715 9 120 = 9906.512715 0.144625 38025.560946 /autogroup-89 [53138.790925] chrome 6037 1214731.322824 8002 120 12= 14731.322824 1503.173808 53065469.180946 /autogroup-89 [53138.790929] OptimizingCompi 6063 1178309.780865 76 120 11= 78309.780865 15.693009 51293632.214545 /autogroup-89 [53138.790934] v8:SweeperThrea 6065 1186608.068787 50 120 11= 86608.068787 1.913350 51683946.304573 /autogroup-89 [53138.790939] v8:SweeperThrea 6077 1212826.568376 1034 120 12= 12826.568376 79.770382 52880485.600194 /autogroup-89 [53138.790944] HTMLParserThrea 6092 785752.452566 144 120 7= 85752.452566 5.378803 31750708.205121 /autogroup-89 [53138.790948] chrome 6420 1214703.330317 73101 120 12= 14703.330317 8296.324253 52919021.298154 /autogroup-89 [53138.790953] v8:SweeperThrea 6424 1204788.902208 317 120 12= 04788.902208 3.303098 52425618.111869 /autogroup-89 [53138.790957] Chrome_libJingl 6425 1214731.984558 1325248 120 12= 14731.984558 18127.574137 52915027.918406 /autogroup-89 [53138.790961] Media 6426 10456.724820 1 120 = 10456.724820 0.022379 0.000000 /autogroup-89 [53138.790966] Trace 6427 1214731.950116 52946 120 12= 14731.950116 446.488131 52933184.493224 /autogroup-89 [53138.790970] ProcessThread 6428 1214731.948090 528896 120 12= 14731.948090 3354.664603 52930082.726043 /autogroup-89 [53138.790975] v8:SweeperThrea 6086 9906.513176 8 120 = 9906.513176 0.150312 37965.149228 /autogroup-89 [53138.790980] Chrome_ChildIOT 6091 1214731.309805 17265 120 12= 14731.309805 421.426331 53064578.425167 /autogroup-89 [53138.790985] v8:SweeperThrea 6099 1207264.167877 120 120 12= 07264.167877 1.777421 52655811.653496 /autogroup-89 [53138.790989] Chrome_ChildIOT 6110 1214731.677461 219430 120 12= 14731.677461 4130.848202 53054452.164070 /autogroup-89 [53138.790994] OptimizingCompi 6128 1213078.315580 583 120 12= 13078.315580 214.866988 52922489.862517 /autogroup-89 [53138.790999] v8:SweeperThrea 6133 1200188.380955 242 120 12= 00188.380955 10.291759 52331110.537465 /autogroup-89 [53138.791003] chrome 6115 1214731.318343 20422 120 12= 14731.318343 885.315628 53065282.388205 /autogroup-89 [53138.791008] v8:SweeperThrea 6124 902930.968126 15 120 9= 02930.968126 0.440972 37406699.101694 /autogroup-89 [53138.791013] v8:SweeperThrea 6148 937475.924256 22 120 9= 37475.924256 0.498846 38819469.844586 /autogroup-89 [53138.791017] chrome 6138 1214731.682629 153542 120 12= 14731.682629 109825.251561 52952488.159283 /autogroup-89 [53138.791022] Chrome_ChildIOT 6142 1214731.325242 301892 120 12= 14731.325242 3868.960552 53059369.900582 /autogroup-89 [53138.791026] OptimizingCompi 6159 1204141.712148 893 120 12= 04141.712148 276.339608 52535825.078193 /autogroup-89 [53138.791031] WebCore: Databa 6207 154443.656889 757 120 1= 54443.656889 32.046108 4128205.234477 /autogroup-89 [53138.791036] chrome 6143 1214731.360824 118427 120 12= 14731.360824 99778.267246 52964358.310677 /autogroup-89 [53138.791040] Chrome_ChildIOT 6146 1214731.320266 163239 120 12= 14731.320266 2451.478551 53062732.112163 /autogroup-89 [53138.791045] OptimizingCompi 6166 1208022.555722 4025 120 12= 08022.555722 1497.933544 52709137.641950 /autogroup-89 [53138.791049] Compositor 6170 1116252.560321 37631 120 11= 16252.560321 4116.750309 47915737.651172 /autogroup-89 [53138.791054] HTMLParserThrea 6181 1113917.273277 712 120 11= 13917.273277 20.473418 47903175.933745 /autogroup-89 [53138.791058] (sd-pam) 6366 8.007742 1 120 = 8.007742 0.056326 0.000000 /autogroup-102 [53138.791063] irq/48-mei_me 26100 0.000000 19 49 = 0.000000 0.328630 0.000000 / [53138.791067] kworker/u17:0 26173 1476581.209317 93 100 14= 76581.209317 1.227100 2220.753012 / [53138.791072] hci0 26174 1475161.063682 2 100 14= 75161.063682 0.007188 0.002789 / [53138.791076] hci0 26175 1475170.068853 2 100 14= 75170.068853 0.006001 0.002732 / [53138.791080] psi 26446 1214731.642962 168159 120 12= 14731.642962 32717.624350 27757718.388366 /autogroup-89 [53138.791085] bash 31125 1166.937749 330 120 = 1166.937749 32.440800 20993495.025390 /autogroup-776 [53138.791091] bash 8875 796.835149 194 120 = 796.835149 36.571388 9258718.093056 /autogroup-853 [53138.791095] bash 11991 1072.731944 416 120 = 1072.731944 38.023192 1713795.446522 /autogroup-985 [53138.791100] ssh 14119 1405.980504 647 120 = 1405.980504 42.577051 12412105.585831 /autogroup-970 [53138.791104] bash 14677 1353.494874 329 120 = 1353.494874 34.637500 11702768.794668 /autogroup-874 [53138.791109] wpa_supplicant 15861 6.633678 1515 120 = 6.633678 30.860324 10926617.220327 /autogroup-1046 [53138.791115] v8:SweeperThrea 17998 1214605.108213 393 120 12= 14605.108213 66.040948 6814206.206662 /autogroup-89 [53138.791119] HTMLParserThrea 18002 1214609.647683 1927 120 12= 14609.647683 311.791401 6813651.935458 /autogroup-89 [53138.791124] Chrome_ChildIOT 18304 1214731.663459 10988 120 12= 14731.663459 211.942188 6300709.105498 /autogroup-89 [53138.791128] ssh 18373 5214.786571 11142 120 = 5214.786571 372.795970 6187179.387105 /autogroup-851 [53138.791134] v8:SweeperThrea 18436 1110298.366912 21 120 11= 10298.366912 3.903969 820810.996043 /autogroup-89 [53138.791138] ssh 18517 1911.301884 4333 120 = 1911.301884 166.220853 6058002.478277 /autogroup-858 [53138.791143] Chrome_ChildIOT 18926 1214731.889764 38937 120 12= 14731.889764 648.909566 5217511.690208 /autogroup-89 [53138.791148] v8:SweeperThrea 18930 1214530.538514 142 120 12= 14530.538514 47.189296 5198467.875095 /autogroup-89 [53138.791153] Compositor 18933 1117057.028609 2560 120 11= 17057.028609 312.301786 77244.342420 /autogroup-89 [53138.791157] chrome 18937 1214731.486365 23847 120 12= 14731.486365 2094.024244 5217766.294090 /autogroup-89 [53138.791162] chrome 18958 1147102.601926 4 120 11= 47102.601926 0.243651 1573709.271975 /autogroup-89 [53138.791167] chrome 18961 1112728.751407 1 120 11= 12728.751407 0.004565 0.000000 /autogroup-89 [53138.791171] chrome 18962 1214712.756626 5211 120 12= 14712.756626 43.396932 5211530.283028 /autogroup-89 [53138.791176] chrome 19908 1214712.757424 3640 120 12= 14712.757424 28.557955 3637860.177350 /autogroup-89 [53138.791180] chrome 18975 1214731.740023 8128 120 12= 14731.740023 3141.750232 5153832.829038 /autogroup-89 [53138.791185] v8:SweeperThrea 18982 1117796.244630 16 120 11= 17796.244630 2.523894 26607.871118 /autogroup-89 [53138.791189] Compositor 18983 1131881.506175 793 120 11= 31881.506175 73.664671 486607.606583 /autogroup-89 [53138.791194] FFmpegDemuxer 19026 1117452.537860 17 120 11= 17452.537860 14.981090 485.958340 /autogroup-89 [53138.791198] Media 19028 1117460.930344 40 120 11= 17460.930344 8.666699 11.182932 /autogroup-89 [53138.791203] chrome 19302 1214731.706404 8541 120 12= 14731.706404 3643.033031 4669602.892263 /autogroup-89 [53138.791208] v8:SweeperThrea 19309 1132962.498375 14 120 11= 32962.498375 2.517650 99856.123596 /autogroup-89 [53138.791213] Chrome_ChildIOT 19895 1214731.784575 29612 120 12= 14731.784575 490.466529 3648008.111545 /autogroup-89 [53138.791217] v8:SweeperThrea 19902 1214631.204919 113 120 12= 14631.204919 38.101062 3631308.577158 /autogroup-89 [53138.791222] Compositor 19903 1152533.314966 2241 120 11= 52533.314966 283.944071 397694.675783 /autogroup-89 [53138.791226] chrome 20084 1214731.708070 5810 120 12= 14731.708070 2622.698284 3252455.788258 /autogroup-89 [53138.791231] OptimizingCompi 20088 1155304.736495 171 120 11= 55304.736495 38.100651 319047.727194 /autogroup-89 [53138.791236] v8:SweeperThrea 20091 1153584.554373 13 120 11= 53584.554373 2.071654 94856.226043 /autogroup-89 [53138.791241] Compositor 20092 1156716.503338 1249 120 11= 56716.503338 109.655696 333784.894198 /autogroup-89 [53138.791245] chrome 20249 1214731.711734 7658 120 12= 14731.711734 8033.338016 2922057.590786 /autogroup-89 [53138.791249] v8:SweeperThrea 20254 1160852.981179 25 120 11= 60852.981179 8.915644 267603.525593 /autogroup-89 [53138.791254] HTMLParserThrea 20258 1159640.211579 305 120 11= 59640.211579 86.231148 168901.984086 /autogroup-89 [53138.791259] chrome 20496 1214731.716361 3975 120 12= 14731.716361 1823.416513 2538936.845655 /autogroup-89 [53138.791263] Chrome_ChildIOT 20497 1214731.659846 4295 120 12= 14731.659846 74.877166 2540760.076279 /autogroup-89 [53138.791268] v8:SweeperThrea 20503 1163030.100679 11 120 11= 63030.100679 1.195558 99991.969165 /autogroup-89 [53138.791273] Compositor 20504 1165811.691303 343 120 11= 65811.691303 37.525145 278721.582058 /autogroup-89 [53138.791277] chrome 20709 1214731.711923 25257 120 12= 14731.711923 5731.301204 2262623.445109 /autogroup-89 [53138.791282] OptimizingCompi 20722 1196073.991180 286 120 11= 96073.991180 46.057874 1356220.657192 /autogroup-89 [53138.791286] v8:SweeperThrea 20724 1193690.785400 21 120 11= 93690.785400 4.373148 1247960.585798 /autogroup-89 [53138.791291] kworker/u16:2 20939 3390366.441953 31682 120 33= 90366.441953 392.915724 1878714.448903 / [53138.791295] scsi_tmf_8 21432 3316619.483610 2 100 33= 16619.483610 0.007068 0.003487 / [53138.791300] sudo 21455 255.446962 5 120 = 255.446962 19.885723 2202.568405 /autogroup-840 [53138.791304] bash 21466 314.382710 66 120 = 314.382710 13.611293 31916.448551 /autogroup-840 [53138.791309] xfs-data/sdb 21499 3318104.053470 2 100 33= 18104.053470 0.007627 0.003562 / [53138.791313] xfs-conv/sdb 21500 3318113.058663 2 100 33= 18113.058663 0.005918 0.002479 / [53138.791317] xfs-cil/sdb 21501 3318122.064166 2 100 33= 18122.064166 0.006185 0.002433 / [53138.791322] chrome 21627 1214731.716815 4119 120 12= 14731.716815 2759.375605 781908.762678 /autogroup-89 [53138.791326] Chrome_ChildIOT 21628 1214731.660339 9487 120 12= 14731.660339 148.071756 784561.248514 /autogroup-89 [53138.791331] Chrome_ChildIOT 21659 1214731.338346 13601 120 12= 14731.338346 212.552407 772109.813880 /autogroup-89 [53138.791336] v8:SweeperThrea 21668 1214357.261939 42 120 12= 14357.261939 8.130943 723201.517319 /autogroup-89 [53138.791340] Compositor 21671 1214686.048729 6146 120 12= 14686.048729 588.856616 757845.304009 /autogroup-89 [53138.791345] HTMLParserThrea 21674 1213680.714585 155 120 12= 13680.714585 27.983227 652874.036154 /autogroup-89 [53138.791349] kworker/1:2 21679 3390366.360913 21405 120 33= 90366.360913 1715.471095 768887.967588 / [53138.791354] kworker/1:1 21913 3382078.500638 10838 120 33= 82078.500638 908.410867 301344.582208 / [53138.791359] kworker/1:0 22128 3390190.582536 8858 120 33= 90190.582536 305.150018 153593.262314 / [53138.791363] sudo 22258 425.340984 4 120 = 425.340984 7.588318 0.391857 /autogroup-1051 [53138.791368] Chrome_ChildIOT 22280 1214731.875906 175 120 12= 14731.875906 2.867267 376.745683 /autogroup-89 [53138.791372] HTMLParserThrea 22288 1214731.357782 7 120 12= 14731.357782 0.246110 39.604328 /autogroup-89 [53138.791383] cpu#2, 2194.832 MHz [53138.791385] .nr_running : 0 [53138.791386] .load : 0 [53138.791387] .nr_switches : 38310581 [53138.791389] .nr_load_updates : 8037048 [53138.791390] .nr_uninterruptible : 251 [53138.791392] .next_balance : 4308.163339 [53138.791393] .curr->pid : 0 [53138.791395] .clock : 53138788.621322 [53138.791396] .cpu_load[0] : 0 [53138.791397] .cpu_load[1] : 0 [53138.791399] .cpu_load[2] : 0 [53138.791400] .cpu_load[3] : 0 [53138.791401] .cpu_load[4] : 0 [53138.791403] .yld_count : 12846 [53138.791404] .sched_count : 38361447 [53138.791405] .sched_goidle : 17314502 [53138.791407] .avg_idle : 1000000 [53138.791408] .max_idle_balance_cost : 500000 [53138.791410] .ttwu_count : 17066804 [53138.791411] .ttwu_local : 9546225 [53138.791413]=20 cfs_rq[2]:/autogroup-81 [53138.791415] .exec_clock : 79816.071590 [53138.791416] .MIN_vruntime : 0.000001 [53138.791418] .min_vruntime : 79829.334953 [53138.791419] .max_vruntime : 0.000001 [53138.791421] .spread : 0.000000 [53138.791422] .spread0 : -3194546.076084 [53138.791424] .nr_spread_over : 1 [53138.791425] .nr_running : 0 [53138.791426] .load : 0 [53138.791428] .runnable_load_avg : 0 [53138.791429] .blocked_load_avg : 0 [53138.791430] .tg_load_contrib : 0 [53138.791432] .tg_runnable_contrib : 0 [53138.791433] .tg_load_avg : 4 [53138.791434] .tg->runnable_avg : 5 [53138.791436] .tg->cfs_bandwidth.timer_active: 0 [53138.791437] .throttled : 0 [53138.791438] .throttle_count : 0 [53138.791440] .se->exec_start : 53138589.491818 [53138.791442] .se->vruntime : 3409252.014572 [53138.791443] .se->sum_exec_runtime : 79819.446192 [53138.791445] .se->statistics.wait_start : 0.000000 [53138.791446] .se->statistics.sleep_start : 0.000000 [53138.791448] .se->statistics.block_start : 0.000000 [53138.791449] .se->statistics.sleep_max : 0.000000 [53138.791451] .se->statistics.block_max : 0.000000 [53138.791452] .se->statistics.exec_max : 4.005597 [53138.791454] .se->statistics.slice_max : 3.105020 [53138.791455] .se->statistics.wait_max : 6.465187 [53138.791457] .se->statistics.wait_sum : 269.699334 [53138.791458] .se->statistics.wait_count : 778696 [53138.791460] .se->load.weight : 2 [53138.791461] .se->avg.runnable_avg_sum : 3 [53138.791462] .se->avg.runnable_avg_period : 47973 [53138.791464] .se->avg.load_avg_contrib : 0 [53138.791465] .se->avg.decay_count : 50676909 [53138.791467]=20 cfs_rq[2]:/autogroup-89 [53138.791469] .exec_clock : 1478614.338843 [53138.791470] .MIN_vruntime : 0.000001 [53138.791472] .min_vruntime : 1104655.451789 [53138.791473] .max_vruntime : 0.000001 [53138.791475] .spread : 0.000000 [53138.791476] .spread0 : -2169719.959248 [53138.791478] .nr_spread_over : 4209 [53138.791479] .nr_running : 0 [53138.791480] .load : 0 [53138.791482] .runnable_load_avg : 0 [53138.791483] .blocked_load_avg : 24 [53138.791484] .tg_load_contrib : 24 [53138.791486] .tg_runnable_contrib : 23 [53138.791487] .tg_load_avg : 28 [53138.791488] .tg->runnable_avg : 45 [53138.791490] .tg->cfs_bandwidth.timer_active: 0 [53138.791491] .throttled : 0 [53138.791493] .throttle_count : 0 [53138.791494] .se->exec_start : 53138788.620701 [53138.791496] .se->vruntime : 3409273.118740 [53138.791497] .se->sum_exec_runtime : 1478625.800274 [53138.791499] .se->statistics.wait_start : 0.000000 [53138.791500] .se->statistics.sleep_start : 0.000000 [53138.791502] .se->statistics.block_start : 0.000000 [53138.791503] .se->statistics.sleep_max : 0.000000 [53138.791504] .se->statistics.block_max : 0.000000 [53138.791506] .se->statistics.exec_max : 4.120836 [53138.791507] .se->statistics.slice_max : 9.977844 [53138.791509] .se->statistics.wait_max : 13.234192 [53138.791511] .se->statistics.wait_sum : 14749.248126 [53138.791512] .se->statistics.wait_count : 10844121 [53138.791513] .se->load.weight : 2 [53138.791515] .se->avg.runnable_avg_sum : 1241 [53138.791516] .se->avg.runnable_avg_period : 47685 [53138.791517] .se->avg.load_avg_contrib : 33 [53138.791519] .se->avg.decay_count : 50677098 [53138.791520]=20 cfs_rq[2]:/ [53138.791522] .exec_clock : 2585210.143265 [53138.791524] .MIN_vruntime : 0.000001 [53138.791525] .min_vruntime : 3409273.118740 [53138.791527] .max_vruntime : 0.000001 [53138.791528] .spread : 0.000000 [53138.791530] .spread0 : 134897.707703 [53138.791531] .nr_spread_over : 2178 [53138.791532] .nr_running : 0 [53138.791534] .load : 0 [53138.791535] .runnable_load_avg : 0 [53138.791536] .blocked_load_avg : 33 [53138.791538] .tg_load_contrib : 33 [53138.791539] .tg_runnable_contrib : 27 [53138.791540] .tg_load_avg : 35 [53138.791542] .tg->runnable_avg : 62 [53138.791543] .tg->cfs_bandwidth.timer_active: 0 [53138.791544] .throttled : 0 [53138.791546] .throttle_count : 0 [53138.791547] .avg->runnable_avg_sum : 1263 [53138.791548] .avg->runnable_avg_period : 47716 [53138.791550]=20 rt_rq[2]: [53138.791552] .rt_nr_running : 0 [53138.791553] .rt_throttled : 0 [53138.791554] .rt_time : 0.006218 [53138.791556] .rt_runtime : 950.000000 [53138.791557]=20 runnable tasks: task PID tree-key switches prio exec-runtime = sum-exec sum-sleep =2D------------------------------------------------------------------------= =2D-------------------------------- [53138.791561] rcu_sched 10 3405662.359655 5355 120 34= 05662.359655 18.776657 53090321.389142 / [53138.791565] migration/2 18 0.000000 5558 0 = 0.000000 40.929066 0.000000 / [53138.791570] rcuc/2 19 -5.997867 211200 98 = -5.997867 3994.968735 0.000000 / [53138.791574] ksoftirqd/2 20 3408991.380098 542984 120 34= 08991.380098 2591.835199 53119627.425631 / [53138.791578] kworker/2:0H 22 1276358.002747 14 100 12= 76358.002747 0.029421 25261791.579418 / [53138.791583] kdevtmpfs 29 3336292.502400 726 120 33= 36292.502400 3.982675 52140110.708047 / [53138.791587] khugepaged 182 3409156.073934 5217 139 34= 09156.073934 2014.595883 53132023.981753 / [53138.791591] kblockd 187 1329.067268 2 100 = 1329.067268 0.005280 0.002312 / [53138.791596] devfreq_wq 422 1339.601240 2 100 = 1339.601240 0.005443 0.002167 / [53138.791600] khubd 1382 3336262.068266 412 120 33= 36262.068266 101.638970 52136890.034658 / [53138.791605] scsi_tmf_2 1452 5173.836510 2 100 = 5173.836510 0.007862 0.003546 / [53138.791610] xfs_mru_cache 1557 5612.948669 2 100 = 5612.948669 0.004459 0.001534 / [53138.791614] xfslogd 1558 5621.952146 2 100 = 5621.952146 0.003947 0.001456 / [53138.791618] xfs-data/dm-0 2830 8277.536824 2 100 = 8277.536824 0.004569 0.002767 / [53138.791622] xfs-conv/dm-0 2831 8286.540291 2 100 = 8286.540291 0.003956 0.001850 / [53138.791627] xfs-cil/dm-0 2832 8295.543932 2 100 = 8295.543932 0.004140 0.001931 / [53138.791632] kworker/2:1H 4058 3409005.535978 166974 100 34= 09005.535978 608.467485 53115315.781439 / [53138.791636] hd-audio0 4199 13502.013869 2 100 = 13502.013869 0.003498 0.010625 / [53138.791641] avahi-daemon 4594 152.318336 12145 120 = 152.318336 504.930773 53114549.898334 /autogroup-40 [53138.791646] console-kit-dae 4614 143.143838 8279 120 = 143.143838 442.591297 53076615.319289 /autogroup-46 [53138.791650] console-kit-dae 4622 59.222740 9 120 = 59.222740 0.069414 25251746.223070 /autogroup-46 [53138.791655] console-kit-dae 4628 59.222115 11 120 = 59.222115 0.059465 25251744.451748 /autogroup-46 [53138.791660] console-kit-dae 4630 59.241900 9 120 = 59.241900 0.080035 25251744.598210 /autogroup-46 [53138.791664] console-kit-dae 4634 59.222167 13 120 = 59.222167 0.086246 25251744.210521 /autogroup-46 [53138.791669] console-kit-dae 4637 59.224073 9 120 = 59.224073 0.048789 25251744.104150 /autogroup-46 [53138.791673] console-kit-dae 4640 59.221940 12 120 = 59.221940 0.063471 25251744.174095 /autogroup-46 [53138.791678] console-kit-dae 4643 59.222146 12 120 = 59.222146 0.060088 25251744.205143 /autogroup-46 [53138.791683] console-kit-dae 4646 59.222265 11 120 = 59.222265 0.076360 25251744.243985 /autogroup-46 [53138.791688] console-kit-dae 4649 59.221456 9 120 = 59.221456 0.046481 25251744.225028 /autogroup-46 [53138.791692] console-kit-dae 4652 59.222102 10 120 = 59.222102 0.055383 25251744.272801 /autogroup-46 [53138.791697] console-kit-dae 4655 59.221974 9 120 = 59.221974 0.056024 25251744.377876 /autogroup-46 [53138.791701] console-kit-dae 4657 59.221912 11 120 = 59.221912 0.053577 25251744.344004 /autogroup-46 [53138.791706] console-kit-dae 4660 59.221888 9 120 = 59.221888 0.048713 25251745.994145 /autogroup-46 [53138.791710] console-kit-dae 4663 59.221774 9 120 = 59.221774 0.043267 25251747.044746 /autogroup-46 [53138.791715] console-kit-dae 4666 59.222088 11 120 = 59.222088 0.070292 25251746.414849 /autogroup-46 [53138.791720] console-kit-dae 4669 59.221813 9 120 = 59.221813 0.046865 25251746.948546 /autogroup-46 [53138.791724] console-kit-dae 4672 59.221463 9 120 = 59.221463 0.048878 25251746.992206 /autogroup-46 [53138.791729] console-kit-dae 4677 59.221876 9 120 = 59.221876 0.045768 25251744.127308 /autogroup-46 [53138.791733] console-kit-dae 4681 59.222128 9 120 = 59.222128 0.050475 25251744.140668 /autogroup-46 [53138.791738] gdbus 4688 143.166035 4971 120 = 143.166035 396.541002 53076554.917708 /autogroup-46 [53138.791743] ModemManager 4616 0.107778 66 120 = 0.107778 28.291641 52126149.498730 /autogroup-48 [53138.791747] systemd-logind 4686 272.752438 12675 120 = 272.752438 1060.967106 53075529.182908 /autogroup-50 [53138.791752] gmain 4696 82.363416 7 120 = 82.363416 0.051775 25251703.446098 /autogroup-54 [53138.791757] syslog-ng 22244 5457.880360 27 120 = 5457.880360 1.035952 23802.056652 /autogroup-55 [53138.791762] mysqld 5120 681.687969 106122 120 = 681.687969 669.944190 53110002.372999 /autogroup-72 [53138.791767] mysqld 5125 681.170469 106124 120 = 681.170469 668.583056 53109995.961879 /autogroup-72 [53138.791772] mysqld 5133 672.681174 53058 120 = 672.681174 418.485604 53110158.726009 /autogroup-72 [53138.791777] mysqld 5139 672.761991 53007 120 = 672.761991 523.253372 53110383.562293 /autogroup-72 [53138.791782] pure-ftpd 5163 0.845541 7 120 = 0.845541 0.232579 25237518.282539 /autogroup-77 [53138.791786] kdm 5302 52.223182 218 120 = 52.223182 7.428176 49959219.051014 /autogroup-80 [53138.791791] X 5308 78944.480832 61 120 = 78944.480832 0.885612 52487259.225844 /autogroup-81 [53138.791796] agetty 5305 0.165416 13 120 = 0.165416 1.380082 25236622.225638 /autogroup-83 [53138.791801] startkde 5334 186.021833 120 120 = 186.021833 19.663410 25231135.980614 /autogroup-85 [53138.791805] dbus-launch 5432 186.026093 15 120 = 186.026093 0.265957 25230961.832005 /autogroup-85 [53138.791810] dbus-daemon 5433 1578.966038 126471 120 = 1578.966038 6231.761808 53080649.953803 /autogroup-88 [53138.791814] start_kdeinit 5440 196.984400 528 120 = 196.984400 18.877575 53068362.090227 /autogroup-85 [53138.791819] kded4 5444 1104629.312422 170133 120 11= 04629.312422 6356.187500 53088192.003637 /autogroup-89 [53138.791823] QProcessManager 5452 477598.178181 11 120 4= 77598.178181 0.140998 25229683.123591 /autogroup-89 [53138.791828] QInotifyFileSys 20702 477598.177914 5 120 4= 77598.177914 0.081119 3569870.085088 /autogroup-89 [53138.791834] kwrapper4 5471 190.785779 5 120 = 190.785779 0.381750 6.774595 /autogroup-85 [53138.791838] kwin 8555 19400.562132 1 120 = 19400.562132 0.009116 0.000000 /autogroup-89 [53138.791843] QInotifyFileSys 5650 477598.178961 7 120 4= 77598.178961 0.097935 25223030.131603 /autogroup-89 [53138.791847] ThreadWeaver::T 5932 669837.281483 157 120 6= 69837.281483 66.978184 31703347.411594 /autogroup-89 [53138.791852] ThreadWeaver::T 5933 669836.671942 138 120 6= 69836.671942 30.359020 31703385.323682 /autogroup-89 [53138.791856] ThreadWeaver::T 5934 669834.668746 128 120 6= 69834.668746 55.733633 31703349.181458 /autogroup-89 [53138.791861] ThreadWeaver::T 5939 669829.859354 119 120 6= 69829.859354 15.646323 31703404.039777 /autogroup-89 [53138.791866] dropbox 5673 922341.805319 504 120 9= 22341.805319 58.426579 42180616.618475 /autogroup-89 [53138.791870] dropbox 5674 3336.448118 65 120 = 3336.448118 0.216774 0.669848 /autogroup-89 [53138.791875] dropbox 5831 4465.992376 293 120 = 4465.992376 38.537646 363.316779 /autogroup-89 [53138.791880] dropbox 5834 5942.610504 65 120 = 5942.610504 32.978817 4169.440290 /autogroup-89 [53138.791884] dropbox 5835 4341.700855 38 120 = 4341.700855 0.421801 271.487578 /autogroup-89 [53138.791889] dropbox 5839 1104605.176595 1089 120 11= 04605.176595 592.637051 53080855.954805 /autogroup-89 [53138.791895] QProcessManager 5663 224202.793801 13 120 2= 24202.793801 0.235645 25222702.445265 /autogroup-95 [53138.791899] Akonadi::Server 5708 505210.740446 69 120 5= 05210.740446 0.968004 50451971.917717 /autogroup-95 [53138.791905] Akonadi::Server 5761 505201.779509 66 120 5= 05201.779509 1.234988 50452301.517154 /autogroup-95 [53138.791909] Akonadi::Server 5763 505201.780584 284 120 5= 05201.780584 4.399269 50452351.416672 /autogroup-95 [53138.791914] Akonadi::Server 5772 505201.785381 66 120 5= 05201.785381 1.366730 50452139.827794 /autogroup-95 [53138.791918] Akonadi::Server 5776 505201.779765 70 120 5= 05201.779765 1.265666 50452159.977899 /autogroup-95 [53138.791923] Akonadi::Server 5777 505201.807331 508 120 5= 05201.807331 35.458738 50453792.833004 /autogroup-95 [53138.791927] mysqld 5679 544004.959881 106066 120 5= 44004.959881 706.642996 53094960.330227 /autogroup-95 [53138.791932] mysqld 5684 544005.143319 109974 120 5= 44005.143319 781.069470 53095390.973848 /autogroup-95 [53138.791937] mysqld 5699 544004.692195 10613 120 5= 44004.692195 82.032913 53094954.989716 /autogroup-95 [53138.791942] mysqld 5714 505196.833300 28 120 5= 05196.833300 0.673900 50451974.615593 /autogroup-95 [53138.791947] mysqld 5742 505201.775489 31 120 5= 05201.775489 1.075476 50451988.747094 /autogroup-95 [53138.791951] mysqld 5756 505201.769200 30 120 5= 05201.769200 1.047024 50451997.633772 /autogroup-95 [53138.791956] mysqld 5779 544007.833690 210674 120 5= 44007.833690 5239.001241 53086346.554226 /autogroup-95 [53138.791960] mysqld 5786 505201.777364 376 120 5= 05201.777364 12.092044 50451961.691290 /autogroup-95 [53138.791965] mysqld 5792 505201.774197 494 120 5= 05201.774197 22.771833 50451938.978092 /autogroup-95 [53138.791969] mysqld 5794 505201.777301 314 120 5= 05201.777301 16.906466 50451976.784753 /autogroup-95 [53138.791974] mysqld 5799 505201.819267 19 120 5= 05201.819267 1.244462 50451990.770150 /autogroup-95 [53138.791978] mysqld 22509 537609.643188 16 120 5= 37609.643188 0.809263 28829422.538583 /autogroup-95 [53138.791983] akonadi_agent_l 5719 544004.952252 20564 120 5= 44004.952252 1060.842468 53072832.796680 /autogroup-95 [53138.791988] akonadi_agent_l 5723 544007.324194 20483 120 5= 44007.324194 1052.541152 53073261.233795 /autogroup-95 [53138.791992] akonadi_googlec 5724 544005.672891 21499 120 5= 44005.672891 1210.648911 53073119.735175 /autogroup-95 [53138.791997] QProcessManager 5749 224202.794044 8 120 2= 24202.794044 0.098457 25221982.239252 /autogroup-95 [53138.792002] akonadi_maildis 5737 544005.023422 21985 120 5= 44005.023422 1170.450741 53072887.454886 /autogroup-95 [53138.792006] akonadi_pop3_re 5744 544005.736166 22238 120 5= 44005.736166 1197.195017 53073970.439945 /autogroup-95 [53138.792011] akonadi_pop3_re 5757 544004.896599 21390 120 5= 44004.896599 1088.142922 53073430.089810 /autogroup-95 [53138.792015] kio_http_cache_ 5789 1059071.445661 205 120 10= 59071.445661 56.160998 51087198.507505 /autogroup-89 [53138.792020] konsole 5804 1104647.766375 2001664 120 11= 04647.766375 770159.602362 52311261.440389 /autogroup-89 [53138.792024] chrome 5863 477598.185450 7 120 4= 77598.185450 0.077912 25213711.347441 /autogroup-89 [53138.792029] Chrome_DBThread 5878 1104641.597165 35335 120 11= 04641.597165 1168.386083 53084809.198643 /autogroup-89 [53138.792033] Chrome_FileUser 5880 1098048.687339 3595 120 10= 98048.687339 128.908654 52826782.493930 /autogroup-89 [53138.792038] Chrome_CacheThr 5882 1104642.094890 335240 120 11= 04642.094890 12172.466567 53070664.645637 /autogroup-89 [53138.792043] BrowserBlocking 5887 1104642.069032 73680 120 11= 04642.069032 15138.934261 53070093.963356 /autogroup-89 [53138.792048] LevelDBEnv 5900 1001242.557092 234 120 10= 01242.557092 58.205926 47963939.356004 /autogroup-89 [53138.792052] handle-watcher- 5903 1104632.567486 3441 120 11= 04632.567486 168.592276 53085936.681769 /autogroup-89 [53138.792057] ppapi_crash_upl 10670 59543.113552 1 120 = 59543.113552 0.046797 0.000000 /autogroup-89 [53138.792062] CachePoolWorker 10911 1104642.043724 20207 120 11= 04642.043724 273.067192 48542855.726297 /autogroup-89 [53138.792067] chrome-sandbox 5847 477598.179256 9 120 4= 77598.179256 1.182371 25213833.506730 /autogroup-89 [53138.792071] QProcessManager 5913 1096704.662334 72 120 10= 96704.662334 1.186028 52776080.663636 /autogroup-89 [53138.792076] v8:SweeperThrea 6023 8521.725733 8 120 = 8521.725733 0.039547 38025.590959 /autogroup-89 [53138.792081] v8:SweeperThrea 6047 8522.816890 8 120 = 8522.816890 0.061048 37971.396026 /autogroup-89 [53138.792085] HTMLParserThrea 6050 6654.540205 27 120 = 6654.540205 0.166281 28.021202 /autogroup-89 [53138.792090] v8:SweeperThrea 6066 1074458.373616 50 120 10= 74458.373616 1.342192 51683946.536839 /autogroup-89 [53138.792095] Compositor 6067 6736.551755 11 120 = 6736.551755 0.095623 26.785152 /autogroup-89 [53138.792099] HTMLParserThrea 6072 6773.750963 51 120 = 6773.750963 0.788746 81.037696 /autogroup-89 [53138.792104] WebCore: Databa 6073 1064189.813996 357 120 10= 64189.813996 13.237937 51293541.608401 /autogroup-89 [53138.792108] chrome 6058 1104642.686833 240242 120 11= 04642.686833 58900.020547 53000118.023241 /autogroup-89 [53138.792113] Chrome_ChildIOT 6061 1104642.220508 231983 120 11= 04642.220508 4779.852222 53055102.987309 /autogroup-89 [53138.792117] v8:SweeperThrea 6078 1100868.266483 1016 120 11= 00868.266483 62.633780 52880497.409837 /autogroup-89 [53138.792122] OptimizingCompi 6421 1099545.766878 221 120 10= 99545.766878 46.482717 52681528.287195 /autogroup-89 [53138.792126] v8:SweeperThrea 6422 1093240.245697 320 120 10= 93240.245697 9.004286 52425615.027893 /autogroup-89 [53138.792131] chrome 6429 9150.101839 1 120 = 9150.101839 0.004285 0.000000 /autogroup-89 [53138.792135] chrome 6068 1104641.999861 7479 120 11= 04641.999861 272.547878 53066456.723110 /autogroup-89 [53138.792140] Compositor 6089 6785.895026 11 120 = 6785.895026 0.122855 14.871342 /autogroup-89 [53138.792144] chrome 6074 1104641.997698 25392 120 11= 04641.997698 1753.758504 53064561.319445 /autogroup-89 [53138.792149] v8:SweeperThrea 6105 824034.395938 43 120 8= 24034.395938 1.631286 38117830.932613 /autogroup-89 [53138.792153] v8:SweeperThrea 6107 824034.357700 44 120 8= 24034.357700 1.075005 38117831.288613 /autogroup-89 [53138.792158] chrome 6082 1104644.955077 28237 120 11= 04644.955077 4953.844378 53060799.067773 /autogroup-89 [53138.792162] v8:SweeperThrea 6097 1095424.672595 120 120 10= 95424.672595 3.607164 52655810.637561 /autogroup-89 [53138.792167] Compositor 6100 6980.306032 11 120 = 6980.306032 0.114452 31.630120 /autogroup-89 [53138.792172] chrome 6095 1104643.621582 216386 120 11= 04643.621582 344107.633716 52708065.199968 /autogroup-89 [53138.792176] v8:SweeperThrea 6129 1101896.189262 1151 120 11= 01896.189262 525.519714 52957104.226967 /autogroup-89 [53138.792181] Compositor 6137 7034.525262 7 120 = 7034.525262 0.122638 30.939045 /autogroup-89 [53138.792185] chrome 6103 1104644.966873 28262 120 11= 04644.966873 7275.666165 53058557.409821 /autogroup-89 [53138.792190] v8:SweeperThrea 6134 1088509.947982 243 120 10= 88509.947982 11.212400 52331109.690027 /autogroup-89 [53138.792195] Compositor 6136 7034.954243 7 120 = 7034.954243 0.113004 32.536270 /autogroup-89 [53138.792199] HTMLParserThrea 6153 7178.780867 45 120 = 7178.780867 0.372977 262.512389 /autogroup-89 [53138.792204] v8:SweeperThrea 6125 799714.362558 15 120 7= 99714.362558 0.367886 37406699.174734 /autogroup-89 [53138.792208] chrome 6119 1104646.459428 24209 120 11= 04646.459428 1406.140889 53064635.516729 /autogroup-89 [53138.792213] v8:SweeperThrea 6150 836184.437423 22 120 8= 36184.437423 0.313466 38819469.945269 /autogroup-89 [53138.792218] HTMLParserThrea 6172 7195.383578 19 120 = 7195.383578 0.352276 217.677025 /autogroup-89 [53138.792222] v8:SweeperThrea 6160 1100928.331513 1153 120 11= 00928.331513 307.482296 52888131.413106 /autogroup-89 [53138.792227] HTMLParserThrea 6183 50542.633650 46 120 = 50542.633650 1.360197 4127683.765456 /autogroup-89 [53138.792232] v8:SweeperThrea 6167 1096731.367423 1167 120 10= 96731.367423 283.794816 52759468.125250 /autogroup-89 [53138.792236] systemd 6360 11.352427 1101 120 = 11.352427 68.192410 52912096.489462 /autogroup-102 [53138.792241] XMPP::NetTracke 26454 1104623.008286 5682 120 11= 04623.008286 1606.429742 27786477.309594 /autogroup-89 [53138.792246] ssh 26455 301.920374 3202 120 = 301.920374 129.258881 27737195.165692 /autogroup-119 [53138.792251] bash 5295 168.351559 201 120 = 168.351559 27.463046 2299705.508783 /autogroup-853 [53138.792255] bash 5653 2787.334122 358 120 = 2787.334122 42.160981 12964061.411402 /autogroup-858 [53138.792260] bash 6787 1654.755026 94 120 = 1654.755026 17.722050 6437346.803729 /autogroup-874 [53138.792264] sudo 8873 176.585440 5 120 = 176.585440 7.398199 0.344296 /autogroup-853 [53138.792269] OptimizingCompi 17996 1104445.282141 3892 120 11= 04445.282141 842.390408 6813971.735669 /autogroup-89 [53138.792274] v8:SweeperThrea 17997 1104428.531438 389 120 11= 04428.531438 67.516021 6814204.842238 /autogroup-89 [53138.792279] v8:SweeperThrea 18309 1100868.996894 51 120 11= 00868.996894 12.016523 6115418.521076 /autogroup-89 [53138.792284] Compositor 18311 972786.020371 4026 120 9= 72786.020371 890.761191 116216.301313 /autogroup-89 [53138.792289] OptimizingCompi 18929 1101453.406101 692 120 11= 01453.406101 193.333867 5092488.127099 /autogroup-89 [53138.792294] v8:SweeperThrea 18931 1104376.752332 140 120 11= 04376.752332 46.645381 5198469.500604 /autogroup-89 [53138.792299] chrome 18960 1030473.520753 5 120 10= 30473.520753 0.279159 1573709.235402 /autogroup-89 [53138.792303] chrome 18963 1104642.008703 23083 120 11= 04642.008703 258.890916 5211719.943729 /autogroup-89 [53138.792308] chrome 19909 1104642.000219 17476 120 11= 04642.000219 188.144193 3638019.511540 /autogroup-89 [53138.792313] Media 19024 1000088.338856 32 120 10= 00088.338856 2.029585 1124.053934 /autogroup-89 [53138.792318] v8:SweeperThrea 19307 1017583.584016 15 120 10= 17583.584016 3.614774 99856.121891 /autogroup-89 [53138.792323] Compositor 19310 1021558.263696 2457 120 10= 21558.263696 205.725527 456239.048425 /autogroup-89 [53138.792327] chrome 19520 1104651.013440 27041 120 11= 04651.013440 23312.124230 4201906.952663 /autogroup-89 [53138.792332] v8:SweeperThrea 19525 1104480.794374 128 120 11= 04480.794374 41.914474 4208094.352201 /autogroup-89 [53138.792337] HTMLParserThrea 19904 1030974.244237 285 120 10= 30974.244237 27.890469 13076.639558 /autogroup-89 [53138.792343] v8:SweeperThrea 20501 1048927.244483 11 120 10= 48927.244483 1.582994 99991.896507 /autogroup-89 [53138.792348] v8:SweeperThrea 20723 1080673.672214 21 120 10= 80673.672214 4.787410 1247960.487599 /autogroup-89 [53138.792352] Compositor 20726 1086362.179337 27246 120 10= 86362.179337 1455.164299 1489199.009650 /autogroup-89 [53138.792357] HTMLParserThrea 20731 1080120.752708 136 120 10= 80120.752708 23.279154 1170998.794806 /autogroup-89 [53138.792361] kworker/2:1 21181 3394823.979371 28207 120 33= 94823.979371 1921.712744 1251805.705990 / [53138.792366] mount 21498 5617.030498 218258 120 = 5617.030498 19737.526718 591916.533755 /autogroup-840 [53138.792371] v8:SweeperThrea 21632 1089596.632865 28 120 10= 89596.632865 3.705050 105922.186868 /autogroup-89 [53138.792375] OptimizingCompi 21667 1102361.771054 517 120 11= 02361.771054 119.662094 681597.601244 /autogroup-89 [53138.792380] v8:SweeperThrea 21669 1103542.026571 42 120 11= 03542.026571 7.299937 723201.815985 /autogroup-89 [53138.792385] Chrome_ChildIOT 21702 1104646.470625 13078 120 11= 04646.470625 211.563520 688161.144035 /autogroup-89 [53138.792389] OptimizingCompi 21705 1091668.775660 188 120 10= 91668.775660 40.333871 118900.669232 /autogroup-89 [53138.792394] v8:SweeperThrea 21708 1091995.158118 21 120 10= 91995.158118 2.143677 139615.697081 /autogroup-89 [53138.792398] Compositor 21709 1091838.404557 6673 120 10= 91838.404557 396.506139 130043.912520 /autogroup-89 [53138.792403] gringotts 21752 1104501.297925 2423 120 11= 04501.297925 307.644686 607085.582703 /autogroup-89 [53138.792408] kworker/2:0 21793 3409264.103299 13007 120 34= 09264.103299 472.221215 572823.943576 / [53138.792412] kworker/2:2 22104 3409096.300912 3876 120 34= 09096.300912 587.974517 220947.096954 / [53138.792416] kworker/u16:1 22167 3409262.790468 1674 120 34= 09262.790468 21.370174 104988.672276 / [53138.792420] chrome 22279 1104655.451789 66 120 11= 04655.451789 135.069252 271.609435 /autogroup-89 [53138.792425] OptimizingCompi 22283 1104645.807836 20 120 11= 04645.807836 4.499256 332.949706 /autogroup-89 [53138.792436] cpu#3, 2194.832 MHz [53138.792437] .nr_running : 0 [53138.792439] .load : 0 [53138.792440] .nr_switches : 37382237 [53138.792442] .nr_load_updates : 7962587 [53138.792443] .nr_uninterruptible : 3300 [53138.792444] .next_balance : 4308.163325 [53138.792446] .curr->pid : 0 [53138.792447] .clock : 53138790.438360 [53138.792449] .cpu_load[0] : 0 [53138.792450] .cpu_load[1] : 0 [53138.792451] .cpu_load[2] : 0 [53138.792453] .cpu_load[3] : 0 [53138.792454] .cpu_load[4] : 0 [53138.792455] .yld_count : 21447 [53138.792457] .sched_count : 37440987 [53138.792458] .sched_goidle : 16938323 [53138.792460] .avg_idle : 882641 [53138.792461] .max_idle_balance_cost : 500000 [53138.792462] .ttwu_count : 16585662 [53138.792464] .ttwu_local : 9371809 [53138.792465]=20 cfs_rq[3]:/autogroup-81 [53138.792468] .exec_clock : 67055.665970 [53138.792469] .MIN_vruntime : 0.000001 [53138.792471] .min_vruntime : 67093.622415 [53138.792472] .max_vruntime : 0.000001 [53138.792474] .spread : 0.000000 [53138.792475] .spread0 : -3207281.788622 [53138.792476] .nr_spread_over : 1 [53138.792478] .nr_running : 0 [53138.792479] .load : 0 [53138.792480] .runnable_load_avg : 0 [53138.792482] .blocked_load_avg : 0 [53138.792483] .tg_load_contrib : 0 [53138.792484] .tg_runnable_contrib : 5 [53138.792486] .tg_load_avg : 3 [53138.792487] .tg->runnable_avg : 5 [53138.792488] .tg->cfs_bandwidth.timer_active: 0 [53138.792490] .throttled : 0 [53138.792491] .throttle_count : 0 [53138.792493] .se->exec_start : 53138788.620959 [53138.792494] .se->vruntime : 3558029.084141 [53138.792496] .se->sum_exec_runtime : 67058.665753 [53138.792497] .se->statistics.wait_start : 0.000000 [53138.792499] .se->statistics.sleep_start : 0.000000 [53138.792500] .se->statistics.block_start : 0.000000 [53138.792502] .se->statistics.sleep_max : 0.000000 [53138.792503] .se->statistics.block_max : 0.000000 [53138.792505] .se->statistics.exec_max : 4.011212 [53138.792506] .se->statistics.slice_max : 3.510491 [53138.792508] .se->statistics.wait_max : 4.433395 [53138.792509] .se->statistics.wait_sum : 240.875344 [53138.792511] .se->statistics.wait_count : 666753 [53138.792512] .se->load.weight : 2 [53138.792513] .se->avg.runnable_avg_sum : 237 [53138.792515] .se->avg.runnable_avg_period : 47301 [53138.792516] .se->avg.load_avg_contrib : 0 [53138.792518] .se->avg.decay_count : 50677098 [53138.792519]=20 cfs_rq[3]:/autogroup-89 [53138.792521] .exec_clock : 1664300.366375 [53138.792523] .MIN_vruntime : 0.000001 [53138.792524] .min_vruntime : 1290739.877147 [53138.792526] .max_vruntime : 0.000001 [53138.792527] .spread : 0.000000 [53138.792529] .spread0 : -1983635.533890 [53138.792530] .nr_spread_over : 4382 [53138.792531] .nr_running : 0 [53138.792533] .load : 0 [53138.792534] .runnable_load_avg : 0 [53138.792535] .blocked_load_avg : 0 [53138.792537] .tg_load_contrib : 0 [53138.792538] .tg_runnable_contrib : 7 [53138.792539] .tg_load_avg : 27 [53138.792541] .tg->runnable_avg : 47 [53138.792542] .tg->cfs_bandwidth.timer_active: 0 [53138.792544] .throttled : 0 [53138.792545] .throttle_count : 0 [53138.792547] .se->exec_start : 53138790.437883 [53138.792548] .se->vruntime : 3558038.007631 [53138.792550] .se->sum_exec_runtime : 1664312.181562 [53138.792551] .se->statistics.wait_start : 0.000000 [53138.792553] .se->statistics.sleep_start : 0.000000 [53138.792554] .se->statistics.block_start : 0.000000 [53138.792556] .se->statistics.sleep_max : 0.000000 [53138.792557] .se->statistics.block_max : 0.000000 [53138.792559] .se->statistics.exec_max : 4.162067 [53138.792560] .se->statistics.slice_max : 5.657954 [53138.792562] .se->statistics.wait_max : 13.198664 [53138.792563] .se->statistics.wait_sum : 14520.541431 [53138.792565] .se->statistics.wait_count : 10867254 [53138.792566] .se->load.weight : 2 [53138.792567] .se->avg.runnable_avg_sum : 369 [53138.792569] .se->avg.runnable_avg_period : 46665 [53138.792570] .se->avg.load_avg_contrib : 0 [53138.792571] .se->avg.decay_count : 50677100 [53138.792573]=20 cfs_rq[3]:/ [53138.792575] .exec_clock : 2694916.623802 [53138.792576] .MIN_vruntime : 0.000001 [53138.792578] .min_vruntime : 3558038.007631 [53138.792579] .max_vruntime : 0.000001 [53138.792581] .spread : 0.000000 [53138.792582] .spread0 : 283662.596594 [53138.792584] .nr_spread_over : 1608 [53138.792585] .nr_running : 0 [53138.792586] .load : 0 [53138.792588] .runnable_load_avg : 0 [53138.792589] .blocked_load_avg : 0 [53138.792590] .tg_load_contrib : 0 [53138.792592] .tg_runnable_contrib : 13 [53138.792593] .tg_load_avg : 33 [53138.792595] .tg->runnable_avg : 62 [53138.792596] .tg->cfs_bandwidth.timer_active: 0 [53138.792597] .throttled : 0 [53138.792599] .throttle_count : 0 [53138.792600] .avg->runnable_avg_sum : 605 [53138.792601] .avg->runnable_avg_period : 47335 [53138.792603]=20 rt_rq[3]: [53138.792604] .rt_nr_running : 0 [53138.792606] .rt_throttled : 0 [53138.792607] .rt_time : 0.000000 [53138.792609] .rt_runtime : 950.000000 [53138.792610]=20 runnable tasks: task PID tree-key switches prio exec-runtime = sum-exec sum-sleep =2D------------------------------------------------------------------------= =2D-------------------------------- [53138.792614] migration/3 23 0.000000 5727 0 = 0.000000 45.446746 0.000000 / [53138.792618] rcuc/3 24 -5.998507 203847 98 = -5.998507 4076.349460 0.000000 / [53138.792623] ksoftirqd/3 25 3557735.810936 516977 120 35= 57735.810936 2441.081213 53126621.807073 / [53138.792627] kworker/3:0H 27 1507345.640069 14 100 15= 07345.640069 0.033190 25261784.326864 / [53138.792631] khelper 28 7.957386 2 100 = 7.957386 0.006988 0.002115 / [53138.792636] netns 30 26.008479 2 100 = 26.008479 0.004917 0.001835 / [53138.792641] deferwq 1290 1858.905870 2 100 = 1858.905870 0.008845 0.003940 / [53138.792645] charger_manager 1291 1867.913953 2 100 = 1867.913953 0.008570 0.003732 / [53138.792649] scsi_eh_0 1442 1507618.870221 9 120 15= 07618.870221 0.733007 25259515.814818 / [53138.792653] scsi_eh_1 1447 1508072.594282 97 120 15= 08072.594282 12.752952 25259817.908820 / [53138.792658] scsi_eh_3 1455 1507624.876358 9 120 15= 07624.876358 0.065480 25259506.937227 / [53138.792662] scsi_tmf_3 1456 2370.807984 2 100 = 2370.807984 0.008174 0.004393 / [53138.792666] scsi_eh_5 1463 1507624.867075 9 120 15= 07624.867075 0.054394 25259500.987185 / [53138.792671] xfsalloc 1556 2492.718303 2 100 = 2492.718303 0.005215 0.002746 / [53138.792675] kcryptd 2773 1508096.633495 4 100 15= 08096.633495 0.037273 25257207.222238 / [53138.792680] bioset 2774 4767.532884 2 100 = 4767.532884 0.004696 0.001441 / [53138.792684] systemd-journal 2874 1132.403436 23808 120 = 1132.403436 26402.562874 53100096.456184 /autogroup-6 [53138.792690] systemd-udevd 4059 331.751291 1683 120 = 331.751291 501.908474 52164273.924825 /autogroup-18 [53138.792695] irq/20-smo8800 4112 0.000000 2 49 = 0.000000 0.005539 0.000000 / [53138.792699] acpi_thermal_pm 4140 7830.070564 2 100 = 7830.070564 0.005474 0.017243 / [53138.792704] kworker/3:1H 4214 3542357.889406 166685 100 35= 42357.889406 605.781718 52875019.613787 / [53138.792708] crond 4592 4628.569518 1918 120 = 4628.569518 251.941236 53077125.034088 /autogroup-38 [53138.792713] avahi-dnsconfd 4593 0.776533 10 120 = 0.776533 0.913729 25251788.074313 /autogroup-39 [53138.792718] console-kit-dae 4623 161.880757 15 120 = 161.880757 0.110462 25251742.854333 /autogroup-46 [53138.792723] console-kit-dae 4627 161.866446 10 120 = 161.866446 0.062500 25251746.622743 /autogroup-46 [53138.792727] console-kit-dae 4632 161.867351 11 120 = 161.867351 0.065063 25251746.380449 /autogroup-46 [53138.792732] console-kit-dae 4635 161.867466 9 120 = 161.867466 0.055038 25251747.027260 /autogroup-46 [53138.792737] console-kit-dae 4638 161.866545 11 120 = 161.866545 0.062230 25251747.098819 /autogroup-46 [53138.792741] console-kit-dae 4641 161.865864 9 120 = 161.865864 0.049810 25251746.986400 /autogroup-46 [53138.792746] console-kit-dae 4644 161.867602 9 120 = 161.867602 0.060037 25251746.753282 /autogroup-46 [53138.792751] console-kit-dae 4647 161.866925 10 120 = 161.866925 0.050217 25251747.024964 /autogroup-46 [53138.792756] console-kit-dae 4651 161.867502 12 120 = 161.867502 0.054743 25251746.716656 /autogroup-46 [53138.792760] console-kit-dae 4654 161.868326 12 120 = 161.868326 0.061917 25251746.663311 /autogroup-46 [53138.792765] console-kit-dae 4658 161.868503 9 120 = 161.868503 0.051965 25251746.450356 /autogroup-46 [53138.792769] console-kit-dae 4661 161.867784 10 120 = 161.867784 0.066201 25251746.033379 /autogroup-46 [53138.792774] console-kit-dae 4664 161.866324 10 120 = 161.866324 0.057247 25251745.947491 /autogroup-46 [53138.792778] console-kit-dae 4667 161.867684 8 120 = 161.867684 0.103568 25251744.638776 /autogroup-46 [53138.792783] console-kit-dae 4670 161.867101 9 120 = 161.867101 0.049458 25251745.875788 /autogroup-46 [53138.792787] console-kit-dae 4673 161.868477 9 120 = 161.868477 0.049357 25251744.592071 /autogroup-46 [53138.792792] console-kit-dae 4676 161.866570 9 120 = 161.866570 0.044290 25251746.299343 /autogroup-46 [53138.792796] console-kit-dae 4679 161.867028 9 120 = 161.867028 0.050045 25251746.706543 /autogroup-46 [53138.792801] console-kit-dae 4682 161.867704 9 120 = 161.867704 0.051957 25251746.807598 /autogroup-46 [53138.792805] gmain 4685 161.861381 8 120 = 161.861381 0.071836 25251744.080189 /autogroup-46 [53138.792810] gmain 4684 149.054655 7 120 = 149.054655 0.052341 25251745.480899 /autogroup-47 [53138.792814] gdbus 4687 311.141857 6218 120 = 311.141857 553.293611 53076075.177080 /autogroup-47 [53138.792819] gmain 4617 -2.586757 7 120 = -2.586757 0.052088 25251752.057986 /autogroup-48 [53138.792824] dbus-daemon 4619 1004.403085 30877 120 = 1004.403085 3844.091483 53091374.300045 /autogroup-49 [53138.792829] polkitd 4708 17.228191 1 120 = 17.228191 0.015132 0.000000 /autogroup-54 [53138.792834] chronyd 5065 23.034427 1629 121 = 23.034427 64.493547 53091347.773639 /autogroup-61 [53138.792838] nmbd 5070 151.468652 11048 120 = 151.468652 529.894636 53110258.317101 /autogroup-64 [53138.792843] smbd 5078 2084.926043 6951 120 = 2084.926043 898.914917 53062546.587419 /autogroup-68 [53138.792848] mysqld 5119 921.420245 106121 120 = 921.420245 668.227517 53110002.023026 /autogroup-72 [53138.792853] mysqld 5123 922.536661 106120 120 = 922.536661 669.652177 53110048.852697 /autogroup-72 [53138.792858] mysqld 5140 249.343302 1 120 = 249.343302 0.008063 0.000000 /autogroup-72 [53138.792862] mysqld 5143 276.497917 2 120 = 276.497917 0.126502 4.429199 /autogroup-72 [53138.792867] X 5309 66184.963167 92 120 = 66184.963167 0.786039 52487259.266409 /autogroup-81 [53138.792872] systemd 5332 10.527673 1108 120 = 10.527673 69.184698 53056641.139715 /autogroup-84 [53138.792877] QThread 5473 1290578.211811 3108 120 12= 90578.211811 50.343963 53086332.838355 /autogroup-89 [53138.792882] QThread 8693 1290684.977150 10399 120 12= 90684.977150 175.316962 51172403.572707 /autogroup-89 [53138.792887] probing-thread 5469 840.848546 38 120 = 840.848546 0.414751 52134882.883325 /autogroup-91 [53138.792891] ksmserver 5472 1290578.237931 40331 120 12= 90578.237931 2237.300541 53079022.493963 /autogroup-89 [53138.792896] QProcessManager 5483 1221369.195039 25 120 12= 21369.195039 0.409252 49951867.257409 /autogroup-89 [53138.792900] kwin 5484 1290730.966151 562646 120 12= 90730.966151 34306.302845 53058477.570949 /autogroup-89 [53138.792905] plasma-desktop 5491 3967.306080 1 120 = 3967.306080 0.006150 0.000000 /autogroup-89 [53138.792910] knotify4 5494 1290578.223268 19237 120 12= 90578.223268 1222.969460 53080360.779411 /autogroup-89 [53138.792914] krunner 5517 1290730.925917 161424 120 12= 90730.925917 8758.317731 53077771.965665 /autogroup-89 [53138.792919] ThreadWeaver::T 5936 836904.343878 170 120 8= 36904.343878 37.260530 31703369.246623 /autogroup-89 [53138.792924] yakuake 5521 1290730.930395 458320 120 12= 90730.930395 131569.470895 52957733.175939 /autogroup-89 [53138.792928] dropbox 5522 1288494.313698 1996 120 12= 88494.313698 780.068667 52871176.182147 /autogroup-89 [53138.792933] dropbox 5828 8459.910763 2 120 = 8459.910763 0.071077 0.000000 /autogroup-89 [53138.792938] dropbox 5836 8755.205265 42 120 = 8755.205265 0.627199 452.828265 /autogroup-89 [53138.792943] dropbox 5837 1290129.005661 2108 120 12= 90129.005661 1176.523375 53041729.954057 /autogroup-89 [53138.792947] dropbox 5838 1290726.780045 28847 120 12= 90726.780045 8404.681267 53079116.763601 /autogroup-89 [53138.792952] dropbox 5840 1229160.301676 229 120 12= 29160.301676 140.987822 50387032.814811 /autogroup-89 [53138.792956] dropbox 5865 1290660.928504 977 120 12= 90660.928504 116.982615 53080906.170924 /autogroup-89 [53138.792961] dropbox 5875 8637.681719 5 120 = 8637.681719 0.083217 0.007526 /autogroup-89 [53138.792965] xbindkeys 5528 29.500122 229 120 = 29.500122 10.325406 48043574.271035 /autogroup-93 [53138.792970] kmix 5536 1290578.250648 25689 120 12= 90578.250648 822.948472 53074599.316523 /autogroup-89 [53138.792975] kwalletd 5655 1290578.219882 16734 120 12= 90578.219882 673.113174 53075283.042698 /autogroup-89 [53138.792980] akonadiserver 5664 560519.384286 11332 120 5= 60519.384286 2561.481017 53092450.393139 /autogroup-95 [53138.792984] QProcessManager 5665 271037.193802 10 120 2= 71037.193802 0.190364 25222691.105722 /autogroup-95 [53138.792989] Akonadi::Server 5712 224.484747 8 120 = 224.484747 0.728282 0.865059 /autogroup-95 [53138.792993] QThread 5713 560519.314692 7269 120 5= 60519.314692 181.519177 53066499.015792 /autogroup-95 [53138.792998] Akonadi::Server 5753 527790.410191 69 120 5= 27790.410191 1.323473 50452022.961752 /autogroup-95 [53138.793003] Akonadi::Server 5765 527790.399005 506 120 5= 27790.399005 9.975292 50452317.760459 /autogroup-95 [53138.793007] Akonadi::Server 5774 527790.392393 369 120 5= 27790.392393 5.765615 50451958.727513 /autogroup-95 [53138.793012] mysqld 5681 560519.752747 106083 120 5= 60519.752747 690.200347 53094905.689002 /autogroup-95 [53138.793016] mysqld 5682 560519.755152 106094 120 5= 60519.755152 690.246006 53094897.749418 /autogroup-95 [53138.793021] mysqld 5683 560520.682584 142407 120 5= 60520.682584 1060.233220 53095028.836338 /autogroup-95 [53138.793025] mysqld 5686 560519.656716 113983 120 5= 60519.656716 815.583692 53095238.626135 /autogroup-95 [53138.793030] mysqld 5688 560519.470928 53034 120 5= 60519.470928 421.239529 53094972.991067 /autogroup-95 [53138.793034] mysqld 5689 560520.164860 53069 120 5= 60520.164860 1575.139218 53094421.484448 /autogroup-95 [53138.793039] mysqld 5695 560520.623524 68426 120 5= 60520.623524 6903.241878 53088692.510075 /autogroup-95 [53138.793044] mysqld 5696 560519.517733 53194 120 5= 60519.517733 515.972058 53095323.314284 /autogroup-95 [53138.793048] mysqld 5697 160.579024 1 120 = 160.579024 0.014238 0.000000 /autogroup-95 [53138.793053] mysqld 5701 160.582015 2 120 = 160.582015 0.148917 2.793613 /autogroup-95 [53138.793057] mysqld 5703 527790.381020 34 120 5= 27790.381020 1.045112 50452031.203798 /autogroup-95 [53138.793062] mysqld 5716 527790.393348 23 120 5= 27790.393348 0.672041 50451973.185445 /autogroup-95 [53138.793067] mysqld 5780 527790.392308 35 120 5= 27790.392308 1.143019 50451977.425050 /autogroup-95 [53138.793071] mysqld 5787 527790.390399 250 120 5= 27790.390399 4.193105 50451981.640565 /autogroup-95 [53138.793076] mysqld 5800 527790.423988 346 120 5= 27790.423988 24.590073 50451966.239303 /autogroup-95 [53138.793080] QProcessManager 5729 271037.193412 13 120 2= 71037.193412 9.809300 25222057.113966 /autogroup-95 [53138.793085] QProcessManager 5726 271037.193488 8 120 2= 71037.193488 0.104369 25222071.278685 /autogroup-95 [53138.793090] akonadi_agent_l 5722 560522.069381 20583 120 5= 60522.069381 1053.283392 53073029.142885 /autogroup-95 [53138.793094] QProcessManager 5731 271037.193091 9 120 2= 71037.193091 0.088269 25222063.546177 /autogroup-95 [53138.793099] QProcessManager 5745 271037.192816 8 120 2= 71037.192816 0.102386 25221989.880561 /autogroup-95 [53138.793103] akonadi_agent_l 5728 560523.635666 75491 120 5= 60523.635666 7117.451162 53069021.386472 /autogroup-95 [53138.793108] akonadi_agent_l 5738 560520.629895 20460 120 5= 60520.629895 1078.563733 53072249.394614 /autogroup-95 [53138.793113] akonadi_nepomuk 5741 560528.282634 277413 120 5= 60528.282634 2174867.998104 50890194.354221 /autogroup-95 [53138.793118] akonadi_agent_l 5758 560522.517601 19975 120 5= 60522.517601 1055.398719 53072548.330501 /autogroup-95 [53138.793123] NetworkChangeNo 5866 1129847.383323 468 120 11= 29847.383323 10.334554 45379318.077964 /autogroup-89 [53138.793128] AudioThread 5872 1182305.805501 52946 120 11= 82305.805501 18354.478250 47925508.877176 /autogroup-89 [53138.793133] Chrome_IOThread 5883 1290739.241168 3988390 120 12= 90739.241168 180007.493284 52847373.943259 /autogroup-89 [53138.793137] Proxy resolver 5889 8713.643402 7 120 = 8713.643402 0.047441 0.000000 /autogroup-89 [53138.793142] Proxy resolver 5896 8744.523951 1 120 = 8744.523951 0.025146 0.000000 /autogroup-89 [53138.793147] Chrome_HistoryT 5902 1290630.265552 67865 120 12= 90630.265552 33071.832504 53039098.807412 /autogroup-89 [53138.793151] gdbus 5971 1216837.339078 78 120 12= 16837.339078 5.051738 49627071.145226 /autogroup-89 [53138.793156] CachePoolWorker 6042 1290730.316500 21385 120 12= 90730.316500 284.922437 53066688.805860 /autogroup-89 [53138.793161] CachePoolWorker 6094 1290730.337877 21403 120 12= 90730.337877 287.431414 53066232.125219 /autogroup-89 [53138.793165] CachePoolWorker 5596 1290730.295545 5167 120 12= 90730.295545 71.277095 19145687.364997 /autogroup-89 [53138.793170] chrome 5841 1290726.663850 28402 120 12= 90726.663850 14223.619103 53072642.708850 /autogroup-89 [53138.793174] chrome-sandbox 5856 642876.447122 9 120 6= 42876.447122 1.224312 25213768.328824 /autogroup-89 [53138.793179] nacl_helper 5859 642876.446949 13 120 6= 42876.446949 4.416183 25213765.996617 /autogroup-89 [53138.793183] chrome 5862 1290691.621019 7673 120 12= 90691.621019 1337.000894 53085411.010912 /autogroup-89 [53138.793188] gdbus 5918 642876.449714 11 120 6= 42876.449714 0.438212 25212161.681177 /autogroup-89 [53138.793192] OptimizingCompi 6020 10778.730814 3 120 = 10778.730814 0.351262 166.282809 /autogroup-89 [53138.793197] v8:SweeperThrea 6022 12832.157601 8 120 = 12832.157601 0.148938 38025.558251 /autogroup-89 [53138.793201] Compositor 6024 10729.121729 10 120 = 10729.121729 0.110000 67.665476 /autogroup-89 [53138.793206] HTMLParserThrea 6043 10788.460544 14 120 = 10788.460544 0.285511 42.477205 /autogroup-89 [53138.793210] Chrome_ChildIOT 6018 1290726.637146 3779 120 12= 90726.637146 107.965962 53067005.545613 /autogroup-89 [53138.793215] OptimizingCompi 6044 719748.168210 6 120 7= 19748.168210 0.552452 28331551.424331 /autogroup-89 [53138.793220] v8:SweeperThrea 6045 12832.146233 8 120 = 12832.146233 0.173143 37965.034881 /autogroup-89 [53138.793225] Chrome_ChildIOT 6041 1290726.629180 6097 120 12= 90726.629180 133.659070 53066796.197157 /autogroup-89 [53138.793230] v8:SweeperThrea 6076 1288694.032731 1024 120 12= 88694.032731 90.739408 52880486.999175 /autogroup-89 [53138.793234] v8:SweeperThrea 6423 1281790.834775 317 120 12= 81790.834775 6.312366 52425616.134751 /autogroup-89 [53138.793239] chrome 6430 1290730.937298 5260577 120 12= 90730.937298 22159.777301 52909271.817668 /autogroup-89 [53138.793243] ProcessThread 6431 1290731.041663 10516279 120 12= 90731.041663 61704.892800 52866844.557443 /autogroup-89 [53138.793248] Chrome_ChildIOT 6071 1290726.630520 3776 120 12= 90726.630520 99.069372 53066609.333262 /autogroup-89 [53138.793252] OptimizingCompi 6084 1184101.720118 5 120 11= 84101.720118 0.546778 47949695.598559 /autogroup-89 [53138.793257] v8:SweeperThrea 6087 12832.136753 8 120 = 12832.136753 0.057651 37965.179672 /autogroup-89 [53138.793261] HTMLParserThrea 6093 11015.895021 25 120 = 11015.895021 0.218355 43.136094 /autogroup-89 [53138.793266] Chrome_ChildIOT 6083 1290726.629963 11837 120 12= 90726.629963 261.239933 53066175.018822 /autogroup-89 [53138.793270] OptimizingCompi 6104 1150016.512827 28 120 11= 50016.512827 3.713685 46608347.331737 /autogroup-89 [53138.793275] Compositor 6108 11176.042090 11 120 = 11176.042090 0.105614 22.191971 /autogroup-89 [53138.793279] OptimizingCompi 6096 1204956.102506 164 120 12= 04956.102506 76.237357 48858750.022947 /autogroup-89 [53138.793284] v8:SweeperThrea 6098 1283536.874041 120 120 12= 83536.874041 3.359970 52655808.476482 /autogroup-89 [53138.793288] HTMLParserThrea 6113 11234.064822 5 120 = 11234.064822 0.349145 77.790344 /autogroup-89 [53138.793293] v8:SweeperThrea 6131 1289398.550929 1140 120 12= 89398.550929 434.074163 52957145.597246 /autogroup-89 [53138.793298] HTMLParserThrea 6154 11744.395842 20 120 = 11744.395842 0.359794 1345.268880 /autogroup-89 [53138.793302] Chrome_ChildIOT 6109 1290726.628504 27256 120 12= 90726.628504 457.042236 53065150.816324 /autogroup-89 [53138.793308] Chrome_ChildIOT 6118 1290726.628572 5325 120 12= 90726.628572 141.164741 53066032.429958 /autogroup-89 [53138.793312] OptimizingCompi 6123 705627.246819 13 120 7= 05627.246819 1.479900 27378187.679696 /autogroup-89 [53138.793317] v8:SweeperThrea 6126 967161.028433 15 120 9= 67161.028433 0.243710 37406699.192086 /autogroup-89 [53138.793321] HTMLParserThrea 6141 11339.982947 40 120 = 11339.982947 0.244259 84.408870 /autogroup-89 [53138.793326] Chrome_ChildIOT 6122 1290726.628873 9162 120 12= 90726.628873 260.018017 53065539.268035 /autogroup-89 [53138.793330] OptimizingCompi 6147 1052026.127324 16 120 10= 52026.127324 3.538396 40396439.474694 /autogroup-89 [53138.793335] v8:SweeperThrea 6149 1006348.836441 22 120 10= 06348.836441 0.474876 38819469.847218 /autogroup-89 [53138.793339] Compositor 6151 11364.934700 5 120 = 11364.934700 0.142931 109.378650 /autogroup-89 [53138.793344] v8:SweeperThrea 6161 1288716.916472 1148 120 12= 88716.916472 297.778525 52888136.884152 /autogroup-89 [53138.793348] Compositor 6171 153971.541781 269 120 1= 53971.541781 21.048256 4127733.117941 /autogroup-89 [53138.793354] v8:SweeperThrea 6168 1284637.367799 1161 120 12= 84637.367799 272.099095 52759481.148535 /autogroup-89 [53138.793358] kworker/u17:2 26177 1508306.973331 188 100 15= 08306.973331 1.838044 214.005268 / [53138.793363] QCA::KeyStoreTh 26447 1101493.334114 52 120 11= 01493.334114 226.699692 16814518.645270 /autogroup-89 [53138.793367] QProcessManager 26448 874485.472476 8 120 8= 74485.472476 0.179297 8201821.324173 /autogroup-89 [53138.793372] bash 4807 285.881972 178 120 = 285.881972 24.009323 18774755.762007 /autogroup-840 [53138.793377] sudo 14754 956.766023 4 120 = 956.766023 7.387655 0.325891 /autogroup-985 [53138.793382] bash 14755 1021.349710 82 120 = 1021.349710 12.333663 32845.740954 /autogroup-985 [53138.793386] bash 15208 182.236106 301 120 = 182.236106 43.054184 11594581.009395 /autogroup-1029 [53138.793391] dhcpcd 16130 3.438558 931 120 = 3.438558 18.053838 10902558.374951 /autogroup-1048 [53138.793396] bash 16202 321.787562 265 120 = 321.787562 43.887902 10799864.402410 /autogroup-1051 [53138.793401] v8:SweeperThrea 17999 1290537.759871 385 120 12= 90537.759871 57.239892 6814208.671060 /autogroup-89 [53138.793406] Compositor 18000 1290456.515842 2321 120 12= 90456.515842 215.323974 6813218.781463 /autogroup-89 [53138.793410] chrome 18303 1290731.174110 13245 120 12= 90731.174110 10183.613051 6290685.492037 /autogroup-89 [53138.793415] OptimizingCompi 18307 1283744.946779 253 120 12= 83744.946779 66.306808 5907743.652240 /autogroup-89 [53138.793419] v8:SweeperThrea 18310 1288694.658822 49 120 12= 88694.658822 8.646373 6115419.414042 /autogroup-89 [53138.793424] HTMLParserThrea 18312 1153615.628177 116 120 11= 53615.628177 15.154545 1558.788878 /autogroup-89 [53138.793429] v8:SweeperThrea 18434 1175946.467116 21 120 11= 75946.467116 4.538890 820810.881760 /autogroup-89 [53138.793433] v8:SweeperThrea 18932 1290456.774894 137 120 12= 90456.774894 39.139231 5198464.903067 /autogroup-89 [53138.793438] HTMLParserThrea 18935 1178992.513269 271 120 11= 78992.513269 25.786151 15703.299729 /autogroup-89 [53138.793443] OptimizingCompi 18939 1177529.036072 1 120 11= 77529.036072 0.008435 0.000000 /autogroup-89 [53138.793447] v8:SweeperThrea 18940 1177538.041915 1 120 11= 77538.041915 0.005849 0.000000 /autogroup-89 [53138.793452] v8:SweeperThrea 18941 1177547.047263 1 120 11= 77547.047263 0.005354 0.000000 /autogroup-89 [53138.793456] v8:SweeperThrea 18942 1177556.052910 1 120 11= 77556.052910 0.005653 0.000000 /autogroup-89 [53138.793461] chrome 18959 1214416.079898 3 120 12= 14416.079898 0.283373 1573709.226289 /autogroup-89 [53138.793465] OptimizingCompi 18979 1193670.972485 249 120 11= 93670.972485 37.583736 274958.054445 /autogroup-89 [53138.793470] v8:SweeperThrea 18980 1183083.300188 16 120 11= 83083.300188 3.634694 26607.454464 /autogroup-89 [53138.793474] Chrome_ChildIOT 19303 1290730.835430 11109 120 12= 90730.835430 189.986470 4673228.636051 /autogroup-89 [53138.793479] v8:SweeperThrea 19308 1198621.590492 15 120 11= 98621.590492 3.510122 99856.197136 /autogroup-89 [53138.793484] Chrome_ChildIOT 19521 1290730.907469 40593 120 12= 90730.907469 602.677632 4223200.788789 /autogroup-89 [53138.793489] v8:SweeperThrea 19526 1290568.528478 121 120 12= 90568.528478 41.555479 4208094.800604 /autogroup-89 [53138.793493] chrome 19894 1290731.310214 25626 120 12= 90731.310214 21400.620544 3628204.779605 /autogroup-89 [53138.793498] v8:SweeperThrea 19900 1290567.970097 118 120 12= 90567.970097 42.218554 3631307.623148 /autogroup-89 [53138.793503] Chrome_ChildIOT 20085 1290730.836716 6631 120 12= 90730.836716 114.899412 3255091.781638 /autogroup-89 [53138.793508] v8:SweeperThrea 20089 1221348.084882 13 120 12= 21348.084882 2.243238 94856.121184 /autogroup-89 [53138.793512] HTMLParserThrea 20093 1219461.543773 88 120 12= 19461.543773 19.106103 2392.225497 /autogroup-89 [53138.793517] Chrome_ChildIOT 20250 1290730.839976 13519 120 12= 90730.839976 215.289916 2930033.246304 /autogroup-89 [53138.793521] OptimizingCompi 20253 1230471.554967 750 120 12= 30471.554967 165.426159 385921.335393 /autogroup-89 [53138.793526] v8:SweeperThrea 20255 1229599.405675 25 120 12= 29599.405675 7.584815 267604.851163 /autogroup-89 [53138.793530] Compositor 20257 1235779.073559 4120 120 12= 35779.073559 361.172271 662338.941870 /autogroup-89 [53138.793535] OptimizingCompi 20500 1232348.331227 110 120 12= 32348.331227 22.279794 39033.714057 /autogroup-89 [53138.793539] v8:SweeperThrea 20502 1233479.849656 11 120 12= 33479.849656 1.551144 99991.937378 /autogroup-89 [53138.793544] kworker/3:3 20956 3558028.940361 31036 120 35= 58028.940361 2465.367633 1847902.412040 / [53138.793550] OptimizingCompi 21631 1283553.955664 265 120 12= 83553.955664 38.185859 377314.161298 /autogroup-89 [53138.793554] v8:SweeperThrea 21633 1277959.986187 30 120 12= 77959.986187 4.086821 105923.281307 /autogroup-89 [53138.793559] Compositor 21635 1279059.169793 3812 120 12= 79059.169793 310.411019 175481.061876 /autogroup-89 [53138.793564] HTMLParserThrea 21636 1276583.085034 95 120 12= 76583.085034 6.143550 69405.482691 /autogroup-89 [53138.793568] v8:SweeperThrea 21670 1289916.643552 39 120 12= 89916.643552 6.904033 723202.438962 /autogroup-89 [53138.793573] v8:SweeperThrea 21706 1280504.425233 22 120 12= 80504.425233 2.296321 139615.518544 /autogroup-89 [53138.793578] HTMLParserThrea 21710 1279973.681353 87 120 12= 79973.681353 5.412266 117772.755702 /autogroup-89 [53138.793582] kworker/3:2 21790 3537253.300284 4284 120 35= 37253.300284 780.652365 302455.385909 / [53138.793587] kworker/3:0 22031 3537262.291813 4 120 35= 37262.291813 0.011532 0.011642 / [53138.793591] kworker/3:1 22032 3557739.111825 8522 120 35= 57739.111825 571.040694 279376.088695 / [53170.144543] SysRq : HELP : loglevel(0-9) reboot(b) crash(c) terminate-al= l-tasks(e) memory-full-oom-kill(f) kill-all-tasks(i) thaw-filesystems(j) sa= k(k) show-backtrace-all-active-cpus(l) show-memory-usage(m) nice-all-RT-tas= ks(n)=20 poweroff(o) show-registers(p) show-all-timers(q) unraw(r) sync(s) show-task= =2Dstates(t) unmount(u) force-fb(V) show-blocked-tasks(w) dump-ftrace-buffe= r(z)=20 [53199.705945] SysRq : Show Blocked State [53199.705950] task PC stack pid father [53199.706018] mount D ffff88042ea92700 0 21498 21466 0x0000= 0000 [53199.706023] ffff88034a2839c8 0000000000000082 ffff88034a283fd8 ffff8803= 705130a0 [53199.706026] 0000000000012700 ffffffffa01e2a5a ffff88034a283948 ffffffff= a01d8192 [53199.706029] ffff88034a2839d8 000000014a283958 ffff88034a2839d8 ffff8801= 2a2c4c80 [53199.706032] Call Trace: [53199.706076] [] ? xfs_bmbt_get_all+0x13/0x15 [xfs] [53199.706099] [] ? xfs_bmap_search_multi_extents+0x85/0= xdc [xfs] [53199.706119] [] ? xfs_bmap_search_extents+0x57/0xba [x= fs] [53199.706137] [] ? xfs_buf_read_map+0x24/0x100 [xfs] [53199.706162] [] ? xfs_trans_read_buf_map+0x4f/0x5a2 [x= fs] [53199.706183] [] ? xfs_bmapi_read+0x163/0x2ba [xfs] [53199.706187] [] schedule+0x69/0x6b [53199.706190] [] schedule_timeout+0x3a/0x1e8 [53199.706214] [] ? xfs_perag_get+0x68/0xcc [xfs] [53199.706232] [] ? xfs_inode_set_reclaim_tag+0x31/0x14f= [xfs] [53199.706236] [] wait_for_common+0x10c/0x14c [53199.706239] [] ? wake_up_process+0x32/0x32 [53199.706242] [] wait_for_completion+0x18/0x1a [53199.706266] [] xfs_qm_flush_one+0x42/0x8a [xfs] [53199.706289] [] xfs_qm_dquot_walk.isra.6+0xea/0x145 [x= fs] [53199.706310] [] ? xfs_qm_shrink_scan+0xc6/0xc6 [xfs] [53199.706347] [] xfs_qm_quotacheck+0x18a/0x2d9 [xfs] [53199.706377] [] xfs_qm_mount_quotas+0xe1/0x1c0 [xfs] [53199.706403] [] xfs_mountfs+0x644/0x6e0 [xfs] [53199.706427] [] xfs_fs_fill_super+0x276/0x31a [xfs] [53199.706430] [] mount_bdev+0x14d/0x1b5 [53199.706448] [] ? xfs_parseargs+0x997/0x997 [xfs] [53199.706452] [] ? __kmalloc_track_caller+0x44/0x1d4 [53199.706470] [] xfs_fs_mount+0x10/0x12 [xfs] [53199.706473] [] mount_fs+0x62/0x148 [53199.706479] [] vfs_kern_mount+0x5f/0xf8 [53199.706482] [] do_mount+0x7b5/0x8ac [53199.706484] [] SyS_mount+0x80/0xb9 [53199.706488] [] system_call_fastpath+0x16/0x1b [53199.706495] Sched Debug Version: v0.11, 3.16.0-rc4-dirty #675 [53199.706497] ktime : 53145024.194326 [53199.706498] sched_clk : 53199706.493960 [53199.706500] cpu_clk : 53199706.493981 [53199.706502] jiffies : 4308178553 [53199.706503] sched_clock_stable() : 1 [53199.706505] sysctl_sched [53199.706507] .sysctl_sched_latency : 18.000000 [53199.706508] .sysctl_sched_min_granularity : 2.250000 [53199.706510] .sysctl_sched_wakeup_granularity : 3.000000 [53199.706511] .sysctl_sched_child_runs_first : 0 [53199.706513] .sysctl_sched_features : 11899 [53199.706515] .sysctl_sched_tunable_scaling : 1 (logaritmic) [53199.706519] cpu#0, 2194.832 MHz [53199.706520] .nr_running : 1 [53199.706522] .load : 1024 [53199.706523] .nr_switches : 43369809 [53199.706524] .nr_load_updates : 8455139 [53199.706526] .nr_uninterruptible : 4683 [53199.706527] .next_balance : 4308.178553 [53199.706529] .curr->pid : 2874 [53199.706531] .clock : 53199706.319872 [53199.706532] .cpu_load[0] : 0 [53199.706533] .cpu_load[1] : 2 [53199.706535] .cpu_load[2] : 8 [53199.706536] .cpu_load[3] : 7 [53199.706537] .cpu_load[4] : 4 [53199.706539] .yld_count : 17874 [53199.706540] .sched_count : 43439808 [53199.706542] .sched_goidle : 19438272 [53199.706543] .avg_idle : 664312 [53199.706544] .max_idle_balance_cost : 500000 [53199.706546] .ttwu_count : 32019594 [53199.706548] .ttwu_local : 14911748 [53199.706550]=20 cfs_rq[0]:/autogroup-6 [53199.706553] .exec_clock : 1263.959488 [53199.706554] .MIN_vruntime : 0.000001 [53199.706556] .min_vruntime : 1262.910912 [53199.706557] .max_vruntime : 0.000001 [53199.706559] .spread : 0.000000 [53199.706561] .spread0 : -3278282.982824 [53199.706562] .nr_spread_over : 0 [53199.706563] .nr_running : 1 [53199.706565] .load : 1024 [53199.706566] .runnable_load_avg : 0 [53199.706567] .blocked_load_avg : 0 [53199.706569] .tg_load_contrib : 0 [53199.706571] .tg_runnable_contrib : 0 [53199.706572] .tg_load_avg : 0 [53199.706574] .tg->runnable_avg : 0 [53199.706575] .tg->cfs_bandwidth.timer_active: 0 [53199.706577] .throttled : 0 [53199.706578] .throttle_count : 0 [53199.706580] .se->exec_start : 53199706.319872 [53199.706581] .se->vruntime : 3279536.893736 [53199.706583] .se->sum_exec_runtime : 1264.076014 [53199.706585] .se->statistics.wait_start : 0.000000 [53199.706586] .se->statistics.sleep_start : 0.000000 [53199.706588] .se->statistics.block_start : 0.000000 [53199.706589] .se->statistics.sleep_max : 0.000000 [53199.706591] .se->statistics.block_max : 0.000000 [53199.706592] .se->statistics.exec_max : 3.988144 [53199.706595] .se->statistics.slice_max : 2.552576 [53199.706596] .se->statistics.wait_max : 4.121699 [53199.706598] .se->statistics.wait_sum : 63.695561 [53199.706599] .se->statistics.wait_count : 9568 [53199.706601] .se->load.weight : 1024 [53199.706602] .se->avg.runnable_avg_sum : 0 [53199.706603] .se->avg.runnable_avg_period : 47790 [53199.706605] .se->avg.load_avg_contrib : 0 [53199.706606] .se->avg.decay_count : 0 [53199.706608]=20 cfs_rq[0]:/autogroup-89 [53199.706610] .exec_clock : 1480607.814663 [53199.706612] .MIN_vruntime : 0.000001 [53199.706613] .min_vruntime : 1121006.557940 [53199.706615] .max_vruntime : 0.000001 [53199.706616] .spread : 0.000000 [53199.706618] .spread0 : -2158539.335796 [53199.706619] .nr_spread_over : 4305 [53199.706621] .nr_running : 0 [53199.706623] .load : 0 [53199.706624] .runnable_load_avg : 0 [53199.706625] .blocked_load_avg : 96 [53199.706627] .tg_load_contrib : 96 [53199.706628] .tg_runnable_contrib : 94 [53199.706630] .tg_load_avg : 408 [53199.706631] .tg->runnable_avg : 425 [53199.706632] .tg->cfs_bandwidth.timer_active: 0 [53199.706634] .throttled : 0 [53199.706635] .throttle_count : 0 [53199.706637] .se->exec_start : 53199705.903351 [53199.706638] .se->vruntime : 3279545.893736 [53199.706640] .se->sum_exec_runtime : 1480617.406751 [53199.706641] .se->statistics.wait_start : 0.000000 [53199.706643] .se->statistics.sleep_start : 0.000000 [53199.706645] .se->statistics.block_start : 0.000000 [53199.706647] .se->statistics.sleep_max : 0.000000 [53199.706648] .se->statistics.block_max : 0.000000 [53199.706650] .se->statistics.exec_max : 4.361538 [53199.706651] .se->statistics.slice_max : 10.070914 [53199.706653] .se->statistics.wait_max : 14.779264 [53199.706654] .se->statistics.wait_sum : 16349.167382 [53199.706656] .se->statistics.wait_count : 9770886 [53199.706661] .se->load.weight : 2 [53199.706667] .se->avg.runnable_avg_sum : 4497 [53199.706673] .se->avg.runnable_avg_period : 48046 [53199.706679] .se->avg.load_avg_contrib : 68 [53199.706685] .se->avg.decay_count : 50735194 [53199.706691]=20 cfs_rq[0]:/ [53199.706698] .exec_clock : 2578536.841810 [53199.706704] .MIN_vruntime : 0.000001 [53199.706710] .min_vruntime : 3279545.893736 [53199.706717] .max_vruntime : 0.000001 [53199.706723] .spread : 0.000000 [53199.706729] .spread0 : 0.000000 [53199.706735] .nr_spread_over : 1967 [53199.706740] .nr_running : 1 [53199.706746] .load : 1024 [53199.706752] .runnable_load_avg : 0 [53199.706758] .blocked_load_avg : 68 [53199.706765] .tg_load_contrib : 68 [53199.706771] .tg_runnable_contrib : 96 [53199.706777] .tg_load_avg : 239 [53199.706783] .tg->runnable_avg : 453 [53199.706789] .tg->cfs_bandwidth.timer_active: 0 [53199.706795] .throttled : 0 [53199.706801] .throttle_count : 0 [53199.706808] .avg->runnable_avg_sum : 4476 [53199.706814] .avg->runnable_avg_period : 47852 [53199.706820]=20 rt_rq[0]: [53199.706825] .rt_nr_running : 0 [53199.706827] .rt_throttled : 0 [53199.706828] .rt_time : 0.000000 [53199.706830] .rt_runtime : 950.000000 [53199.706831]=20 runnable tasks: task PID tree-key switches prio exec-runtime = sum-exec sum-sleep =2D------------------------------------------------------------------------= =2D-------------------------------- [53199.706835] ksoftirqd/0 3 3279405.608622 814517 120 32= 79405.608622 4752.746547 53184192.915841 / [53199.706840] kworker/0:0H 5 6238.042168 7 100 = 6238.042168 0.016270 7639.205044 / [53199.706845] rcuc/0 7 0.000000 196814 98 = 0.000000 2481.174267 0.000000 / [53199.706850] rcub/0 8 0.000000 11 98 = 0.000000 0.024351 0.000000 / [53199.706855] rcu_bh 11 61.462672 2 120 = 61.462672 0.001055 0.000000 / [53199.706859] migration/0 12 0.000000 5650 0 = 0.000000 45.818297 0.000000 / [53199.706866] writeback 180 153.360805 2 100 = 153.360805 0.005562 0.001727 / [53199.706871] fsnotify_mark 617 3266733.919082 346 120 32= 66733.919082 1.677245 52922739.198514 / [53199.706877] scsi_tmf_0 1443 756.169263 2 100 = 756.169263 0.008695 0.003937 / [53199.706882] scsi_eh_2 1451 1347346.062277 9 120 13= 47346.062277 0.061898 25259510.006878 / [53199.706887] scsi_eh_4 1459 1347346.059971 9 120 13= 47346.059971 0.038753 25259503.921177 / [53199.706891] scsi_tmf_4 1460 801.415826 2 100 = 801.415826 0.007763 0.003628 / [53199.706899] kworker/0:1H 2833 3279273.291432 506408 100 32= 79273.291432 2742.722921 53172120.367595 / [53199.706904] Rsystemd-journal 2874 1262.910912 23834 120 = 1262.910912 26440.316204 53164768.419685 /autogroup-6 [53199.706908] kauditd 2875 3275206.229016 6292 120 32= 75206.229016 46.876392 53139435.739144 / [53199.706914] hd-audio1 4190 9863.021710 2 100 = 9863.021710 0.009055 3.001987 / [53199.706919] cfg80211 4204 9886.011096 3 100 = 9886.011096 1.388513 0.005054 / [53199.706924] kpsmoused 4284 10003.249850 2 100 = 10003.249850 0.003591 0.115526 / [53199.706929] auditd 4487 16.458731 7542 116 = 16.458731 110.260395 53134822.405190 /autogroup-29 [53199.706933] crond 4592 5279.591427 1920 120 = 5279.591427 252.207126 53134487.254889 /autogroup-38 [53199.706939] mcelog 4610 0.937796 8 120 = 0.937796 0.128760 25251768.781354 /autogroup-44 [53199.706945] console-kit-dae 4625 133.016600 12 120 = 133.016600 0.061880 25251747.219794 /autogroup-46 [53199.706950] console-kit-dae 4626 133.015810 10 120 = 133.015810 0.100733 25251747.648034 /autogroup-46 [53199.706955] console-kit-dae 4629 133.017840 9 120 = 133.017840 0.055201 25251747.159667 /autogroup-46 [53199.706960] console-kit-dae 4631 133.025597 11 120 = 133.025597 0.080821 25251747.177326 /autogroup-46 [53199.706965] console-kit-dae 4633 133.017321 9 120 = 133.017321 0.050770 25251746.014696 /autogroup-46 [53199.706970] console-kit-dae 4636 133.015119 9 120 = 133.015119 0.052004 25251746.264535 /autogroup-46 [53199.706975] console-kit-dae 4639 133.016116 12 120 = 133.016116 0.066385 25251746.502750 /autogroup-46 [53199.706980] console-kit-dae 4642 133.017362 11 120 = 133.017362 0.058568 25251747.055386 /autogroup-46 [53199.706986] console-kit-dae 4645 133.017400 9 120 = 133.017400 0.056735 25251746.952986 /autogroup-46 [53199.706990] console-kit-dae 4648 133.016370 9 120 = 133.016370 0.058149 25251746.589105 /autogroup-46 [53199.706995] console-kit-dae 4650 133.016782 12 120 = 133.016782 0.061091 25251747.113491 /autogroup-46 [53199.707000] console-kit-dae 4653 133.015379 9 120 = 133.015379 0.048167 25251747.083582 /autogroup-46 [53199.707006] console-kit-dae 4656 133.016762 9 120 = 133.016762 0.051167 25251746.967997 /autogroup-46 [53199.707010] console-kit-dae 4659 133.018173 9 120 = 133.018173 0.054962 25251745.483728 /autogroup-46 [53199.707015] console-kit-dae 4662 133.015942 9 120 = 133.015942 0.059330 25251745.328338 /autogroup-46 [53199.707020] console-kit-dae 4665 133.016948 10 120 = 133.016948 0.055874 25251744.604340 /autogroup-46 [53199.707026] console-kit-dae 4668 133.016006 8 120 = 133.016006 0.105850 25251744.890480 /autogroup-46 [53199.707031] console-kit-dae 4671 133.017339 9 120 = 133.017339 0.047797 25251746.649200 /autogroup-46 [53199.707036] console-kit-dae 4674 133.016590 9 120 = 133.016590 0.056054 25251745.813586 /autogroup-46 [53199.707040] console-kit-dae 4675 133.015140 9 120 = 133.015140 0.119615 25251747.164787 /autogroup-46 [53199.707045] console-kit-dae 4678 133.043308 9 120 = 133.043308 0.072710 25251746.846388 /autogroup-46 [53199.707050] console-kit-dae 4680 133.016977 9 120 = 133.016977 0.061046 25251746.298187 /autogroup-46 [53199.707056] console-kit-dae 5306 133.016680 7 120 = 133.016680 0.050864 25236602.014209 /autogroup-46 [53199.707061] gdbus 4620 37.087264 18 120 = 37.087264 1.219653 25251742.487024 /autogroup-48 [53199.707066] polkitd 4695 223.934691 9367 120 = 223.934691 422.191688 53134026.270208 /autogroup-54 [53199.707071] runaway-killer- 4709 108.807120 16 120 = 108.807120 0.133784 25251701.268711 /autogroup-54 [53199.707076] sshd 5071 0.839043 10 120 = 0.839043 3.943850 25238126.221398 /autogroup-65 [53199.707081] exim 5087 3777.638896 368 125 = 3777.638896 47.257379 53154631.292899 /autogroup-69 [53199.707086] mysqld 5106 355.152680 431 120 = 355.152680 218.220311 25237843.200017 /autogroup-72 [53199.707091] mysqld 5116 17.039026 1 120 = 17.039026 0.014630 0.000000 /autogroup-72 [53199.707096] mysqld 5121 738.132695 106226 120 = 738.132695 693.333891 53171180.472895 /autogroup-72 [53199.707101] mysqld 5123 738.660755 106242 120 = 738.660755 670.545491 53171116.715404 /autogroup-72 [53199.707106] mysqld 5124 738.064911 106226 120 = 738.064911 667.613831 53171129.430756 /autogroup-72 [53199.707111] mysqld 5133 729.736696 53119 120 = 729.736696 418.986823 53171223.439606 /autogroup-72 [53199.707116] mysqld 5134 738.750609 53126 120 = 738.750609 1312.047137 53170816.702033 /autogroup-72 [53199.707120] mysqld 5136 730.101475 53074 120 = 730.101475 658.592869 53171666.165138 /autogroup-72 [53199.707125] mysqld 5142 729.711194 10628 120 = 729.711194 87.045574 53170201.410662 /autogroup-72 [53199.707131] kdm 5314 38.863913 146 120 = 38.863913 14.339988 25236394.956369 /autogroup-80 [53199.707137] systemd 5332 15.389830 1109 120 = 15.389830 69.222848 53114003.489647 /autogroup-84 [53199.707142] ssh-agent 5362 9.658717 223 120 = 9.658717 43.749992 52200866.751813 /autogroup-87 [53199.707147] dbus-daemon 5433 1643.027834 126524 120 = 1643.027834 6235.238567 53154506.902821 /autogroup-88 [53199.707152] klauncher 5442 1119308.059917 3416 120 11= 19308.059917 251.292408 53073432.518920 /autogroup-89 [53199.707157] kded4 5444 1120994.020107 170709 120 11= 20994.020107 6377.832060 53147806.549831 /autogroup-89 [53199.707162] KCupsConnection 5481 493196.453373 8 120 4= 93196.453373 0.103833 25229341.149593 /autogroup-89 [53199.707167] gam_server 5446 2.746258 134 120 = 2.746258 9.645774 52888420.139273 /autogroup-90 [53199.707172] kglobalaccel 5457 1120439.337273 21725 120 11= 20439.337273 556.875327 53107291.506784 /autogroup-89 [53199.707177] QThread 5473 1120439.190544 3112 120 11= 20439.190544 50.398776 53110886.382730 /autogroup-89 [53199.707182] QThread 5475 493196.453114 7 120 4= 93196.453114 0.060819 25229415.792566 /autogroup-89 [53199.707187] QProcessManager 5476 493196.453504 10 120 4= 93196.453504 0.125610 25229405.908186 /autogroup-89 [53199.707191] QThread 8693 1120995.106186 10411 120 11= 20995.106186 175.524774 51232464.910810 /autogroup-89 [53199.707196] gmain 5466 2985.955992 146 120 = 2985.955992 4.095005 42186928.273300 /autogroup-91 [53199.707201] gdbus 5468 3786.315830 13759 120 = 3786.315830 963.469570 53111354.257959 /autogroup-91 [53199.707206] cleanup 5470 3662.234262 21 120 = 3662.234262 1.194480 52134861.311765 /autogroup-91 [53199.707210] ksmserver 5472 1120439.013144 40348 120 11= 20439.013144 2237.859678 53103563.055063 /autogroup-89 [53199.707215] QInotifyFileSys 5492 493196.454848 7 120 4= 93196.454848 0.081033 25228767.669020 /autogroup-89 [53199.707220] QInotifyFileSys 5498 493196.454206 7 120 4= 93196.454206 0.097410 25228309.228032 /autogroup-89 [53199.707225] kuiserver 5497 1633.913991 16989 120 = 1633.913991 418.194615 53107110.861852 /autogroup-88 [53199.707232] ThreadWeaver::T 5935 664616.910226 96 120 6= 64616.910226 11.814895 31703395.880851 /autogroup-89 [53199.707236] ThreadWeaver::T 5938 664616.578307 139 120 6= 64616.578307 52.807619 31703358.974365 /autogroup-89 [53199.707241] yakuake 5521 1120999.238103 459230 120 11= 20999.238103 131725.746502 53018477.160793 /autogroup-89 [53199.707247] dropbox 5693 493196.456111 129 120 4= 93196.456111 2.908870 25222418.038677 /autogroup-89 [53199.707252] dropbox 5832 461050.118406 299 120 4= 61050.118406 66.617374 24027911.401477 /autogroup-89 [53199.707258] dropbox 5838 1120997.717886 28877 120 11= 20997.717886 8414.328313 53139226.781098 /autogroup-89 [53199.707263] dropbox 5864 3411.069731 1 120 = 3411.069731 0.188364 0.000000 /autogroup-89 [53199.707268] dropbox 5876 493196.454195 182 120 4= 93196.454195 10.293444 25213632.295893 /autogroup-89 [53199.707273] konqueror 5525 1120438.895953 15618 120 11= 20438.895953 358.609931 53100458.869025 /autogroup-89 [53199.707279] QInotifyFileSys 5657 493196.454412 7 120 4= 93196.454412 0.085542 25222952.219188 /autogroup-89 [53199.707283] kwalletd 5655 1120438.896535 16744 120 11= 20438.896535 673.301743 53099828.319514 /autogroup-89 [53199.707289] akonadiserver 5664 523791.053943 11348 120 5= 23791.053943 2565.046719 53152506.380049 /autogroup-95 [53199.707294] Akonadi::Server 5709 483216.092438 74 120 4= 83216.092438 1.093337 50451967.733425 /autogroup-95 [53199.707300] Akonadi::Server 5743 483207.143862 64 120 4= 83207.143862 1.682136 50452068.388741 /autogroup-95 [53199.707305] Akonadi::Server 5770 483207.137460 287 120 4= 83207.137460 4.465876 50452220.360680 /autogroup-95 [53199.707311] Akonadi::Server 5778 483207.131144 82 120 4= 83207.131144 1.244912 50452126.995352 /autogroup-95 [53199.707316] Akonadi::Server 5781 483207.160191 61 120 4= 83207.160191 1.427023 50453645.627575 /autogroup-95 [53199.707320] Akonadi::Server 5783 483207.135479 436 120 4= 83207.135479 7.116032 50452118.120981 /autogroup-95 [53199.707325] Akonadi::Server 5784 483207.130585 636 120 4= 83207.130585 12.640038 50452064.502190 /autogroup-95 [53199.707330] Akonadi::Server 22508 514257.823827 378 120 5= 14257.823827 40.035511 28829412.576599 /autogroup-95 [53199.707334] mysqld 5666 240723.060005 268 120 2= 40723.060005 167.102548 25222523.291831 /autogroup-95 [53199.707340] mysqld 5679 523788.219126 106188 120 5= 23788.219126 707.603173 53156028.143634 /autogroup-95 [53199.707345] mysqld 5686 523787.915481 114105 120 5= 23787.915481 816.518941 53156306.551881 /autogroup-95 [53199.707352] mysqld 5706 483200.669645 198 120 4= 83200.669645 36.901424 50451874.879299 /autogroup-95 [53199.707358] mysqld 5775 483207.125790 325 120 4= 83207.125790 6.680834 50451914.891112 /autogroup-95 [53199.707362] mysqld 5782 483207.122921 34 120 4= 83207.122921 0.959290 50451996.732422 /autogroup-95 [53199.707367] mysqld 5791 483207.126006 30 120 4= 83207.126006 0.997349 50451990.777910 /autogroup-95 [53199.707373] akonadi_agent_l 5723 522205.161864 20500 120 5= 22205.161864 1053.504867 53116210.975612 /autogroup-95 [53199.707378] QProcessManager 5747 240723.061145 8 120 2= 40723.061145 0.095060 25221972.017454 /autogroup-95 [53199.707383] akonadi_maildis 5737 522201.795639 22003 120 5= 22201.795639 1171.459495 53115839.640120 /autogroup-95 [53199.707388] akonadi_agent_l 5738 522203.849025 20477 120 5= 22203.849025 1079.534377 53115200.086055 /autogroup-95 [53199.707393] QProcessManager 5754 240723.062226 8 120 2= 40723.062226 0.095573 25221960.795274 /autogroup-95 [53199.707398] QProcessManager 5759 240723.061329 9 120 2= 40723.061329 0.097658 25221928.699791 /autogroup-95 [53199.707403] akonadi_pop3_re 5744 522201.855275 22256 120 5= 22201.855275 1198.317009 53116922.938581 /autogroup-95 [53199.707407] akonadi_pop3_re 5748 522202.751774 26788 120 5= 22202.751774 1793.220603 53116338.594629 /autogroup-95 [53199.707413] QProcessManager 5768 240723.061393 8 120 2= 40723.061393 0.113164 25221864.594539 /autogroup-95 [53199.707418] inotify_reader 5867 947362.475004 64 120 9= 47362.475004 1.997355 42170071.620135 /autogroup-89 [53199.707423] CrShutdownDetec 5873 493196.456136 10 120 4= 93196.456136 0.039672 25213663.139353 /autogroup-89 [53199.707428] Chrome_ProcessL 5881 1120487.815560 15256 120 11= 20487.815560 7565.495324 53095888.268780 /autogroup-89 [53199.707432] BrowserBlocking 5887 1120997.566595 73786 120 11= 20997.566595 15152.995486 53131269.622374 /autogroup-89 [53199.707438] BrowserWatchdog 5888 1120856.905858 135952 120 11= 20856.905858 1669.386249 53130964.960522 /autogroup-89 [53199.707443] NSS SSL ThreadW 5911 1120993.842276 365957 120 11= 20993.842276 18293.100553 53123611.147382 /autogroup-89 [53199.707448] extension_crash 5984 6279.718090 1 120 = 6279.718090 0.031871 0.000000 /autogroup-89 [53199.707453] CachePoolWorker 6042 1120378.514210 21387 120 11= 20378.514210 284.971410 53068845.773683 /autogroup-89 [53199.707458] CachePoolWorker 6094 1120378.491775 21406 120 11= 20378.491775 287.472719 53068447.411105 /autogroup-89 [53199.707463] CachePoolWorker 5596 1120378.158391 5170 120 11= 20378.158391 71.296600 19147827.236997 /autogroup-89 [53199.707467] WorkerPool/1552 15525 1120825.055374 1739 120 11= 20825.055374 2868.869866 11310793.193860 /autogroup-89 [53199.707472] chrome 5841 1120209.197007 28403 120 11= 20209.197007 14223.656996 53073956.652355 /autogroup-89 [53199.707477] chrome 5850 493196.456936 142 120 4= 93196.456936 23.984523 25213803.489752 /autogroup-89 [53199.707483] chrome 5862 1120496.819621 7685 120 11= 20496.819621 1338.356840 53103203.986890 /autogroup-89 [53199.707487] kmail 5912 1120988.367165 1105900 120 11= 20988.367165 1067569.198379 52062707.843998 /autogroup-89 [53199.707492] chrome 5985 1120746.720985 7261 120 11= 20746.720985 242.713138 53105470.541765 /autogroup-89 [53199.707498] v8:SweeperThrea 6046 8535.267100 9 120 = 8535.267100 0.162126 37967.457747 /autogroup-89 [53199.707502] Compositor 6048 6437.587570 11 120 = 6437.587570 0.108560 12.019282 /autogroup-89 [53199.707508] v8:SweeperThrea 6064 1094930.790046 51 120 10= 94930.790046 2.052317 51683946.173183 /autogroup-89 [53199.707514] OptimizingCompi 6075 1074632.819762 974 120 10= 74632.819762 354.468365 50797098.144709 /autogroup-89 [53199.707519] Compositor 6079 667215.270855 2188 120 6= 67215.270855 101.920321 31796323.403509 /autogroup-89 [53199.707525] Chrome_libJingl 6425 1120997.623264 1326773 120 11= 20997.623264 18150.408820 52975911.881390 /autogroup-89 [53199.707529] ProcessThread 6431 1120998.475995 10528385 120 11= 20998.475995 61780.611666 52927676.176719 /autogroup-89 [53199.707534] chrome 6068 1120822.301405 7486 120 11= 20822.301405 272.715854 53111916.755375 /autogroup-89 [53199.707538] v8:SweeperThrea 6085 8535.261729 8 120 = 8535.261729 0.159374 37965.138027 /autogroup-89 [53199.707544] v8:SweeperThrea 6106 802929.338969 43 120 8= 02929.338969 1.421781 38117831.093556 /autogroup-89 [53199.707550] HTMLParserThrea 6114 6770.422542 44 120 = 6770.422542 0.341912 263.219593 /autogroup-89 [53199.707555] Chrome_ChildIOT 6091 1120496.842662 17278 120 11= 20496.842662 421.743793 53082357.000108 /autogroup-89 [53199.707560] Chrome_ChildIOT 6110 1120639.315206 219547 120 11= 20639.315206 4132.993501 53084939.580832 /autogroup-89 [53199.707564] v8:SweeperThrea 6130 1118859.122624 1178 120 11= 18859.122624 513.070435 52957112.051415 /autogroup-89 [53199.707570] chrome 6103 1120993.833636 28293 120 11= 20993.833636 7280.200925 53116991.122245 /autogroup-89 [53199.707575] OptimizingCompi 6132 1100902.352717 401 120 11= 00902.352717 202.705595 52134189.641030 /autogroup-89 [53199.707580] v8:SweeperThrea 6135 1106406.809600 240 120 11= 06406.809600 7.272360 52331111.516469 /autogroup-89 [53199.707585] Compositor 6127 6738.818666 12 120 = 6738.818666 0.141746 12.393005 /autogroup-89 [53199.707590] chrome 6119 1120993.826659 24234 120 11= 20993.826659 1407.161867 53123074.926450 /autogroup-89 [53199.707595] Chrome_ChildIOT 6122 1120496.835180 9167 120 11= 20496.835180 260.165224 53083317.712628 /autogroup-89 [53199.707601] v8:SweeperThrea 6162 1118291.537889 1139 120 11= 18291.537889 260.919406 52888153.050549 /autogroup-89 [53199.707606] v8:SweeperThrea 6168 1120908.677997 1163 120 11= 20908.677997 272.737609 53116617.835721 /autogroup-89 [53199.707612] bash 7133 136.262954 66 120 = 136.262954 20.232724 24835901.615832 /autogroup-119 [53199.707619] XMPP::NetTracke 26454 1120997.812076 5695 120 11= 20997.812076 1609.946153 27851539.578332 /autogroup-89 [53199.707624] bash 5198 4312.060437 88 120 = 4312.060437 14.953221 13074082.574011 /autogroup-851 [53199.707630] bash 11460 1544.673372 168 120 = 1544.673372 19.686832 1553160.178522 /autogroup-970 [53199.707635] sudo 14674 1260.422461 3 120 = 1260.422461 7.423605 0.339269 /autogroup-874 [53199.707641] wpa_supplicant 15861 8.815314 1524 120 = 8.815314 31.029932 10993196.418812 /autogroup-1046 [53199.707646] Chrome_ChildIOT 17993 1120997.577643 40364 120 11= 20997.577643 645.166021 6895521.884410 /autogroup-89 [53199.707651] v8:SweeperThrea 17999 1120664.976584 387 120 11= 20664.976584 57.693954 6871429.756237 /autogroup-89 [53199.707656] v8:SweeperThrea 18308 1118285.123622 49 120 11= 18285.123622 13.134324 6115417.492858 /autogroup-89 [53199.707662] OptimizingCompi 18433 1017758.588947 291 120 10= 17758.588947 62.646661 895213.415348 /autogroup-89 [53199.707666] v8:SweeperThrea 18435 1017204.910487 21 120 10= 17204.910487 3.771513 820810.962677 /autogroup-89 [53199.707671] Compositor 18437 1036863.219811 52931 120 10= 36863.219811 3109.752550 1212979.961060 /autogroup-89 [53199.707675] HTMLParserThrea 18442 1016491.370912 125 120 10= 16491.370912 17.899714 735107.413941 /autogroup-89 [53199.707680] chrome 18925 1121004.304243 28497 120 11= 21004.304243 26996.587513 5253802.480224 /autogroup-89 [53199.707686] Chrome_ChildIOT 18938 1120997.617391 11688 120 11= 20997.617391 243.317265 5280806.320656 /autogroup-89 [53199.707692] chrome 19909 1120997.601925 17941 120 11= 20997.601925 190.973257 3699102.008777 /autogroup-89 [53199.707697] v8:SweeperThrea 18981 1026664.504792 17 120 10= 26664.504792 3.597866 26607.468134 /autogroup-89 [53199.707702] HTMLParserThrea 18984 1025651.584285 93 120 10= 25651.584285 8.139865 14296.796648 /autogroup-89 [53199.707708] Media 19027 1025983.811341 11 120 10= 25983.811341 22.831689 0.740800 /autogroup-89 [53199.707712] CrVideoRenderer 19029 1120997.780252 517317 120 11= 20997.780252 2507.301576 5200376.022056 /autogroup-89 [53199.707717] OptimizingCompi 19306 1042200.279493 293 120 10= 42200.279493 50.663239 212178.583433 /autogroup-89 [53199.707722] HTMLParserThrea 19311 1040066.381360 119 120 10= 40066.381360 29.596724 10553.658957 /autogroup-89 [53199.707728] OptimizingCompi 19524 1120994.049319 993 120 11= 20994.049319 225.107678 4284069.522352 /autogroup-89 [53199.707733] v8:SweeperThrea 19527 1120582.713456 121 120 11= 20582.713456 35.639334 4250598.092350 /autogroup-89 [53199.707737] Compositor 19528 1055945.187958 4112 120 10= 55945.187958 335.970081 578214.115087 /autogroup-89 [53199.707742] HTMLParserThrea 19529 1047928.282676 421 120 10= 47928.282676 44.233427 19290.188324 /autogroup-89 [53199.707749] v8:SweeperThrea 20090 1063995.275807 12 120 10= 63995.275807 2.089187 94856.248382 /autogroup-89 [53199.707754] v8:SweeperThrea 20256 1070590.924704 24 120 10= 70590.924704 7.491645 267604.832165 /autogroup-89 [53199.707761] HTMLParserThrea 20505 1072249.466259 52 120 10= 72249.466259 10.511538 6321.331786 /autogroup-89 [53199.707774] Chrome_ChildIOT 20712 1120997.575296 21568 120 11= 20997.575296 357.135324 2329179.021224 /autogroup-89 [53199.707800] v8:SweeperThrea 20725 1100077.791879 21 120 11= 00077.791879 3.993826 1247960.707104 /autogroup-89 [53199.707825] kworker/u16:0 21284 3269451.596972 18803 120 32= 69451.596972 236.834016 1145233.901761 / [53199.707847] kworker/0:3 21414 3274041.720642 37226 120 32= 74041.720642 3728.949390 1045887.421258 / [53199.707851] scsi_eh_8 21431 3201142.779275 2 120 32= 01142.779275 0.005064 0.003054 / [53199.707856] usb-storage 21433 3260525.674251 1037320 120 32= 60525.674251 3716.624005 740691.851074 / [53199.707861] xfsaild/sdb 21502 3256813.564941 10433 120 32= 56813.564941 48.914110 692543.275254 / [53199.707866] chrome 21627 1120997.636250 4193 120 11= 20997.636250 2764.541146 842947.597252 /autogroup-89 [53199.707871] v8:SweeperThrea 21634 1107378.847472 26 120 11= 07378.847472 3.460180 105923.777259 /autogroup-89 [53199.707876] Chrome_ChildIOT 21659 1120997.648807 14588 120 11= 20997.648807 227.485794 833216.782193 /autogroup-89 [53199.707880] v8:SweeperThrea 21668 1120988.489985 49 120 11= 20988.489985 9.473230 829004.253093 /autogroup-89 [53199.707886] v8:SweeperThrea 21707 1110045.634182 23 120 11= 10045.634182 2.527433 139615.527927 /autogroup-89 [53199.707892] kworker/0:1 21997 3279536.761636 15854 120 32= 79536.761636 341.963244 376908.531561 / [53199.707897] kworker/0:0 22256 3279273.343289 557 120 32= 79273.343289 31.117293 60180.347375 / [53199.707904] cpu#1, 2194.832 MHz [53199.707905] .nr_running : 1 [53199.707907] .load : 1023 [53199.707908] .nr_switches : 42943648 [53199.707909] .nr_load_updates : 8457503 [53199.707911] .nr_uninterruptible : -8235 [53199.707913] .next_balance : 4308.178553 [53199.707915] .curr->pid : 22318 [53199.707916] .clock : 53199707.875954 [53199.707918] .cpu_load[0] : 0 [53199.707919] .cpu_load[1] : 3 [53199.707920] .cpu_load[2] : 4 [53199.707922] .cpu_load[3] : 4 [53199.707923] .cpu_load[4] : 1 [53199.707924] .yld_count : 16244 [53199.707926] .sched_count : 42998928 [53199.707927] .sched_goidle : 19289502 [53199.707929] .avg_idle : 67529 [53199.707930] .max_idle_balance_cost : 500000 [53199.707931] .ttwu_count : 18570983 [53199.707933] .ttwu_local : 10129877 [53199.707934]=20 cfs_rq[1]:/autogroup-55 [53199.707938] .exec_clock : 413.500142 [53199.707939] .MIN_vruntime : 0.000001 [53199.707941] .min_vruntime : 5243.119884 [53199.707942] .max_vruntime : 0.000001 [53199.707944] .spread : 0.000000 [53199.707945] .spread0 : -3274302.773852 [53199.707947] .nr_spread_over : 620 [53199.707948] .nr_running : 1 [53199.707949] .load : 1024 [53199.707951] .runnable_load_avg : 13 [53199.707952] .blocked_load_avg : 0 [53199.707954] .tg_load_contrib : 13 [53199.707955] .tg_runnable_contrib : 21 [53199.707956] .tg_load_avg : 14 [53199.707958] .tg->runnable_avg : 22 [53199.707959] .tg->cfs_bandwidth.timer_active: 0 [53199.707960] .throttled : 0 [53199.707962] .throttle_count : 0 [53199.707964] .se->exec_start : 53199707.942637 [53199.707966] .se->vruntime : 3392910.558185 [53199.707968] .se->sum_exec_runtime : 413.887395 [53199.707969] .se->statistics.wait_start : 0.000000 [53199.707971] .se->statistics.sleep_start : 0.000000 [53199.707972] .se->statistics.block_start : 0.000000 [53199.707974] .se->statistics.sleep_max : 0.000000 [53199.707975] .se->statistics.block_max : 0.000000 [53199.707977] .se->statistics.exec_max : 0.350519 [53199.707978] .se->statistics.slice_max : 0.302740 [53199.707980] .se->statistics.wait_max : 4.107506 [53199.707981] .se->statistics.wait_sum : 250.234056 [53199.707982] .se->statistics.wait_count : 18939 [53199.707984] .se->load.weight : 1023 [53199.707985] .se->avg.runnable_avg_sum : 1467 [53199.707987] .se->avg.runnable_avg_period : 47613 [53199.707988] .se->avg.load_avg_contrib : 0 [53199.707990] .se->avg.decay_count : 50735196 [53199.707992]=20 cfs_rq[1]:/autogroup-81 [53199.707994] .exec_clock : 108027.399583 [53199.707996] .MIN_vruntime : 0.000001 [53199.707997] .min_vruntime : 108033.550903 [53199.707999] .max_vruntime : 0.000001 [53199.708000] .spread : 0.000000 [53199.708002] .spread0 : -3171512.342833 [53199.708003] .nr_spread_over : 0 [53199.708004] .nr_running : 0 [53199.708006] .load : 0 [53199.708007] .runnable_load_avg : 0 [53199.708008] .blocked_load_avg : 0 [53199.708010] .tg_load_contrib : 0 [53199.708012] .tg_runnable_contrib : 6 [53199.708013] .tg_load_avg : 0 [53199.708015] .tg->runnable_avg : 6 [53199.708016] .tg->cfs_bandwidth.timer_active: 0 [53199.708017] .throttled : 0 [53199.708019] .throttle_count : 0 [53199.708020] .se->exec_start : 53199705.879141 [53199.708022] .se->vruntime : 3392909.193622 [53199.708023] .se->sum_exec_runtime : 108031.863672 [53199.708025] .se->statistics.wait_start : 0.000000 [53199.708027] .se->statistics.sleep_start : 0.000000 [53199.708028] .se->statistics.block_start : 0.000000 [53199.708030] .se->statistics.sleep_max : 0.000000 [53199.708031] .se->statistics.block_max : 0.000000 [53199.708033] .se->statistics.exec_max : 4.006744 [53199.708035] .se->statistics.slice_max : 6.680944 [53199.708037] .se->statistics.wait_max : 3.834440 [53199.708038] .se->statistics.wait_sum : 506.169734 [53199.708039] .se->statistics.wait_count : 1061636 [53199.708041] .se->load.weight : 2 [53199.708042] .se->avg.runnable_avg_sum : 305 [53199.708044] .se->avg.runnable_avg_period : 48614 [53199.708045] .se->avg.load_avg_contrib : 0 [53199.708046] .se->avg.decay_count : 50735194 [53199.708048]=20 cfs_rq[1]:/autogroup-89 [53199.708050] .exec_clock : 1590004.517731 [53199.708052] .MIN_vruntime : 0.000001 [53199.708053] .min_vruntime : 1215916.189046 [53199.708055] .max_vruntime : 0.000001 [53199.708056] .spread : 0.000000 [53199.708059] .spread0 : -2063629.704690 [53199.708060] .nr_spread_over : 4291 [53199.708061] .nr_running : 0 [53199.708063] .load : 0 [53199.708064] .runnable_load_avg : 0 [53199.708065] .blocked_load_avg : 51 [53199.708067] .tg_load_contrib : 51 [53199.708068] .tg_runnable_contrib : 58 [53199.708069] .tg_load_avg : 408 [53199.708071] .tg->runnable_avg : 425 [53199.708072] .tg->cfs_bandwidth.timer_active: 0 [53199.708074] .throttled : 0 [53199.708075] .throttle_count : 0 [53199.708077] .se->exec_start : 53199706.013070 [53199.708078] .se->vruntime : 3392918.002441 [53199.708080] .se->sum_exec_runtime : 1590014.843905 [53199.708082] .se->statistics.wait_start : 0.000000 [53199.708084] .se->statistics.sleep_start : 0.000000 [53199.708085] .se->statistics.block_start : 0.000000 [53199.708087] .se->statistics.sleep_max : 0.000000 [53199.708088] .se->statistics.block_max : 0.000000 [53199.708090] .se->statistics.exec_max : 4.051694 [53199.708091] .se->statistics.slice_max : 7.042072 [53199.708093] .se->statistics.wait_max : 19.551829 [53199.708094] .se->statistics.wait_sum : 18317.003095 [53199.708096] .se->statistics.wait_count : 10636870 [53199.708097] .se->load.weight : 2 [53199.708098] .se->avg.runnable_avg_sum : 2621 [53199.708100] .se->avg.runnable_avg_period : 46108 [53199.708101] .se->avg.load_avg_contrib : 52 [53199.708103] .se->avg.decay_count : 50735194 [53199.708105]=20 cfs_rq[1]:/ [53199.708107] .exec_clock : 2593964.546661 [53199.708108] .MIN_vruntime : 0.000001 [53199.708110] .min_vruntime : 3392918.002441 [53199.708111] .max_vruntime : 0.000001 [53199.708113] .spread : 0.000000 [53199.708115] .spread0 : 113372.108705 [53199.708116] .nr_spread_over : 1505 [53199.708117] .nr_running : 1 [53199.708119] .load : 1023 [53199.708120] .runnable_load_avg : 0 [53199.708121] .blocked_load_avg : 0 [53199.708123] .tg_load_contrib : 0 [53199.708124] .tg_runnable_contrib : 98 [53199.708126] .tg_load_avg : 239 [53199.708128] .tg->runnable_avg : 483 [53199.708129] .tg->cfs_bandwidth.timer_active: 0 [53199.708131] .throttled : 0 [53199.708132] .throttle_count : 0 [53199.708133] .avg->runnable_avg_sum : 4494 [53199.708135] .avg->runnable_avg_period : 46707 [53199.708136]=20 rt_rq[1]: [53199.708138] .rt_nr_running : 0 [53199.708139] .rt_throttled : 0 [53199.708141] .rt_time : 0.000000 [53199.708142] .rt_runtime : 950.000000 [53199.708144]=20 runnable tasks: task PID tree-key switches prio exec-runtime = sum-exec sum-sleep =2D------------------------------------------------------------------------= =2D-------------------------------- [53199.708148] kthreadd 2 3390182.513773 1331 120 33= 90182.513773 31.016207 53123295.743354 / [53199.708153] rcu_preempt 9 3392909.005979 2587682 120 33= 92909.005979 10737.102457 53185022.957895 / [53199.708157] rcu_sched 10 3391307.419107 5359 120 33= 91307.419107 18.788672 53147679.341087 / [53199.708162] migration/1 13 0.000000 5661 0 = 0.000000 54.680506 0.000000 / [53199.708166] rcuc/1 14 -2.998538 208935 98 = -2.998538 3700.195991 0.000000 / [53199.708170] ksoftirqd/1 15 3392708.314160 616337 120 33= 92708.314160 3010.111969 53178504.924440 / [53199.708175] kworker/1:0H 17 1475088.772023 14 100 14= 75088.772023 0.031020 25261798.960852 / [53199.708182] khungtaskd 179 3387738.473679 445 120 33= 87738.473679 26.770174 53094542.631925 / [53199.708187] crypto 183 8.093536 2 100 = 8.093536 0.005332 0.002256 / [53199.708191] kintegrityd 184 17.097771 2 100 = 17.097771 0.004731 0.001765 / [53199.708195] bioset 185 26.102055 2 100 = 26.102055 0.004731 0.001609 / [53199.708200] kswapd0 544 3365665.343655 319 120 33= 65665.343655 225.711179 52782718.158173 / [53199.708205] kthrotld 631 2311.377550 2 100 = 2311.377550 0.008339 0.005386 / [53199.708211] ata_sff 1416 4952.105179 2 100 = 4952.105179 0.009830 0.004152 / [53199.708216] scsi_tmf_1 1448 4990.013948 2 100 = 4990.013948 0.008326 0.003681 / [53199.708221] scsi_tmf_5 1464 5019.959440 2 100 = 5019.959440 0.008165 0.004481 / [53199.708227] kdmflush 2770 5993.052472 2 100 = 5993.052472 0.006025 0.001941 / [53199.708231] bioset 2771 5999.056102 2 100 = 5999.056102 0.004124 0.001768 / [53199.708235] kcryptd_io 2772 6005.059589 2 100 = 6005.059589 0.003989 0.001582 / [53199.708240] ipv6_addrconf 2860 6038.130986 2 100 = 6038.130986 0.005536 0.002927 / [53199.708245] kworker/1:1H 3012 3392137.303960 177408 100 33= 92137.303960 640.193783 53157483.512359 / [53199.708251] kvm-irqfd-clean 4043 6131.930826 2 100 = 6131.930826 0.005270 0.003063 / [53199.708256] ttm_swap 4432 7481.815349 2 100 = 7481.815349 0.007019 0.003660 / [53199.708260] auditd 4480 18.509330 6945 116 = 18.509330 101.716824 53134809.402187 /autogroup-29 [53199.708265] avahi-daemon 4595 0.039067 3 120 = 0.039067 0.100423 32.813642 /autogroup-40 [53199.708271] console-kit-dae 4614 169.531884 8288 120 = 169.531884 442.990129 53133977.305738 /autogroup-46 [53199.708276] console-kit-dae 4621 19.164455 5 120 = 19.164455 0.124501 20580.571911 /autogroup-46 [53199.708285] gdbus 4688 169.647895 4976 120 = 169.647895 396.917348 53133916.988854 /autogroup-46 [53199.708291] gdbus 4700 207.087689 9313 120 = 207.087689 547.663635 53133537.740632 /autogroup-54 [53199.708297] R syslog-ng 22318 5243.511577 27 120 = 5243.511577 2.127986 9209.653319 /autogroup-55 [53199.708301] nmbd 5070 120.019472 11059 120 = 120.019472 530.467249 53170360.292330 /autogroup-64 [53199.708306] smbd 5084 2370.427863 902 120 = 2370.427863 173.821623 53134535.700451 /autogroup-68 [53199.708312] mysqld 5119 676.609050 106243 120 = 676.609050 668.956713 53171069.962445 /autogroup-72 [53199.708317] mysqld 5122 677.832935 106242 120 = 677.832935 667.879453 53171062.444645 /autogroup-72 [53199.708336] mysqld 5135 668.853627 10628 120 = 668.853627 82.546425 53170257.519650 /autogroup-72 [53199.708360] mysqld 5137 32.162469 38 120 = 32.162469 4.909838 16.706911 /autogroup-72 [53199.708384] mysqld 5138 668.879763 53066 120 = 668.879763 509.419764 53171625.796216 /autogroup-72 [53199.708393] mysqld 5139 669.020324 53068 120 = 669.020324 523.973211 53171501.530858 /autogroup-72 [53199.708398] unbound 5131 1739.857990 50521 120 = 1739.857990 9460.058213 53110973.113188 /autogroup-75 [53199.708404] X 5307 106335.172226 59 120 1= 06335.172226 1.036861 52487259.126121 /autogroup-81 [53199.708409] (sd-pam) 5335 3.510040 1 120 = 3.510040 0.058621 0.000000 /autogroup-84 [53199.708413] gpg-agent 5355 148.862544 17727 120 = 148.862544 568.194529 53164938.029417 /autogroup-86 [53199.708419] kdeinit4 5441 1214480.406664 2519 120 12= 14480.406664 570.411072 53073330.597192 /autogroup-89 [53199.708424] QInotifyFileSys 5464 577674.206715 7 120 5= 77674.206715 0.079316 25229512.652942 /autogroup-89 [53199.708428] QThread 5482 577674.206850 10 120 5= 77674.206850 0.190234 25229343.911411 /autogroup-89 [53199.708434] kactivitymanage 5463 1215140.741144 58243 120 12= 15140.741144 2586.459077 53105065.965649 /autogroup-89 [53199.708439] QThread 5479 577674.207599 7 120 5= 77674.207599 0.083923 25229349.187599 /autogroup-89 [53199.708443] QInotifyFileSys 5480 577674.206589 7 120 5= 77674.206589 0.063075 25229347.384791 /autogroup-89 [53199.708448] kwin 5484 1215907.504786 564470 120 12= 15907.504786 34368.660930 53119305.815953 /autogroup-89 [53199.708453] knotify4 5494 1215890.596192 19255 120 12= 15890.596192 1224.240549 53154419.790925 /autogroup-89 [53199.708459] krunner 5517 1215907.238299 162128 120 12= 15907.238299 8786.376982 53138645.079874 /autogroup-89 [53199.708463] QProcessManager 5660 577674.208043 11 120 5= 77674.208043 0.166661 25222716.248434 /autogroup-89 [53199.708468] ThreadWeaver::T 5937 783834.644130 135 120 7= 83834.644130 89.940049 31703334.542594 /autogroup-89 [53199.708473] QProcessManager 5627 747248.948833 21 120 7= 47248.948833 0.347150 30348736.283864 /autogroup-89 [53199.708478] dropbox 5675 1154931.676812 184 120 11= 54931.676812 54.385653 50082118.375001 /autogroup-89 [53199.708483] dropbox 5833 8165.698532 473 120 = 8165.698532 62.933299 391.136529 /autogroup-89 [53199.708489] QProcessManager 5546 577674.206480 15 120 5= 77674.206480 0.133306 25223251.580061 /autogroup-89 [53199.708494] korgac 5538 1215902.367151 16331 120 12= 15902.367151 527.029642 53150086.801547 /autogroup-89 [53199.708498] akonadi_control 5662 562162.173113 12749 120 5= 62162.173113 1210.293618 53153150.303543 /autogroup-95 [53199.708504] Akonadi::Server 5710 519242.927029 73 120 5= 19242.927029 1.408190 50451959.017433 /autogroup-95 [53199.708508] Akonadi::Server 5711 562155.838143 1204 120 5= 62155.838143 102.806219 53065918.388360 /autogroup-95 [53199.708513] QThread 5713 562156.195758 7278 120 5= 62156.195758 181.784495 53121263.087706 /autogroup-95 [53199.708517] Akonadi::Server 5736 519233.971794 80 120 5= 19233.971794 1.477368 50452022.695765 /autogroup-95 [53199.708522] Akonadi::Server 5739 519233.962606 68 120 5= 19233.962606 1.329340 50452076.217119 /autogroup-95 [53199.708528] Akonadi::Server 5785 519233.973691 404 120 5= 19233.973691 7.394936 50452126.853480 /autogroup-95 [53199.708533] mysqld 5676 35.280772 1 120 = 35.280772 0.015579 0.000000 /autogroup-95 [53199.708538] mysqld 5681 562161.937435 106205 120 5= 62161.937435 690.933150 53155973.226301 /autogroup-95 [53199.708542] mysqld 5682 562161.269821 106216 120 5= 62161.269821 691.174418 53155965.571950 /autogroup-95 [53199.708547] mysqld 5683 562161.775671 142581 120 5= 62161.775671 1061.701503 53155731.633410 /autogroup-95 [53199.708552] mysqld 5689 562161.809187 53130 120 5= 62161.809187 1577.115626 53155486.281346 /autogroup-95 [53199.708557] mysqld 5690 562160.842093 10624 120 5= 62160.842093 81.978888 53155061.972769 /autogroup-95 [53199.708562] mysqld 5695 562164.293074 68507 120 5= 62164.293074 6905.517424 53149895.657378 /autogroup-95 [53199.708566] mysqld 5698 562160.815931 5379 120 5= 62160.815931 101.194540 53147616.839479 /autogroup-95 [53199.708572] mysqld 5766 519233.975887 29 120 5= 19233.975887 1.054093 50451998.331592 /autogroup-95 [53199.708576] mysqld 5767 519233.975409 43 120 5= 19233.975409 1.080589 50451956.200360 /autogroup-95 [53199.708581] mysqld 5779 562163.521932 210852 120 5= 62163.521932 5244.091963 53146450.893598 /autogroup-95 [53199.708586] mysqld 5788 519233.964217 273 120 5= 19233.964217 4.460645 50451922.781120 /autogroup-95 [53199.708590] mysqld 5790 519233.962944 41 120 5= 19233.962944 1.003109 50451992.566052 /autogroup-95 [53199.708595] mysqld 5793 519233.960590 340 120 5= 19233.960590 14.747358 50451968.428476 /autogroup-95 [53199.708601] QProcessManager 5730 306408.110992 9 120 3= 06408.110992 0.097181 25222073.424580 /autogroup-95 [53199.708606] akonadi_agent_l 5728 562156.460340 75551 120 5= 62156.460340 7124.264268 53112468.671123 /autogroup-95 [53199.708611] akonadi_nepomuk 5741 562169.789263 277794 120 5= 62169.789263 2178064.230045 50931539.155785 /autogroup-95 [53199.708616] QProcessManager 5795 306408.110769 11 120 3= 06408.110769 0.179562 25220007.317636 /autogroup-95 [53199.708621] QProcessManager 5805 813110.481972 24 120 8= 13110.481972 0.376024 33315985.954481 /autogroup-89 [53199.708625] chrome 5829 1215909.039671 4115430 120 12= 15909.039671 705164.126888 52388174.670861 /autogroup-89 [53199.708631] Chrome_IOThread 5883 1215908.710812 3992037 120 12= 15908.710812 180189.029356 52908030.389313 /autogroup-89 [53199.708636] gpu-process_cra 5885 8044.710690 3 120 = 8044.710690 0.035498 0.000000 /autogroup-89 [53199.708641] Chrome_SafeBrow 5897 1215834.254396 10938 120 12= 15834.254396 6947.550884 53123800.633882 /autogroup-89 [53199.708645] BrowserBlocking 5899 1215871.248926 70331 120 12= 15871.248926 15207.090458 53121191.595149 /autogroup-89 [53199.708650] Chrome_HistoryT 5902 1215393.487567 67959 120 12= 15393.487567 33102.588619 53067270.898337 /autogroup-89 [53199.708655] handle-watcher- 5903 1215417.184782 3444 120 12= 15417.184782 168.928078 53103730.525226 /autogroup-89 [53199.708660] renderer_crash_ 5904 8399.349869 1 120 = 8399.349869 0.027537 0.000000 /autogroup-89 [53199.708667] v8:SweeperThrea 6021 9906.512715 9 120 = 9906.512715 0.144625 38025.560946 /autogroup-89 [53199.708671] chrome 6014 1215591.373825 7110 120 12= 15591.373825 262.936299 53105405.498473 /autogroup-89 [53199.708677] OptimizingCompi 6063 1178309.780865 76 120 11= 78309.780865 15.693009 51293632.214545 /autogroup-89 [53199.708681] v8:SweeperThrea 6065 1186608.068787 50 120 11= 86608.068787 1.913350 51683946.304573 /autogroup-89 [53199.708686] chrome 6058 1215888.034185 240382 120 12= 15888.034185 58924.994764 53057403.498563 /autogroup-89 [53199.708691] Chrome_ChildIOT 6061 1215550.227359 232127 120 12= 15550.227359 4782.674844 53085984.851932 /autogroup-89 [53199.708696] v8:SweeperThrea 6077 1212826.568376 1034 120 12= 12826.568376 79.770382 52880485.600194 /autogroup-89 [53199.708700] HTMLParserThrea 6092 785752.452566 144 120 7= 85752.452566 5.378803 31750708.205121 /autogroup-89 [53199.708705] v8:SweeperThrea 6424 1204788.902208 317 120 12= 04788.902208 3.303098 52425618.111869 /autogroup-89 [53199.708710] Media 6426 10456.724820 1 120 = 10456.724820 0.022379 0.000000 /autogroup-89 [53199.708715] ProcessThread 6428 1215907.222951 529507 120 12= 15907.222951 3358.850460 52991075.040741 /autogroup-89 [53199.708720] v8:SweeperThrea 6086 9906.513176 8 120 = 9906.513176 0.150312 37965.149228 /autogroup-89 [53199.708726] chrome 6082 1215902.961476 28266 120 12= 15902.961476 4957.119017 53119232.768245 /autogroup-89 [53199.708731] v8:SweeperThrea 6099 1207264.167877 120 120 12= 07264.167877 1.777421 52655811.653496 /autogroup-89 [53199.708735] OptimizingCompi 6128 1213078.315580 583 120 12= 13078.315580 214.866988 52922489.862517 /autogroup-89 [53199.708741] v8:SweeperThrea 6133 1200188.380955 242 120 12= 00188.380955 10.291759 52331110.537465 /autogroup-89 [53199.708747] v8:SweeperThrea 6124 902930.968126 15 120 9= 02930.968126 0.440972 37406699.101694 /autogroup-89 [53199.708752] v8:SweeperThrea 6148 937475.924256 22 120 9= 37475.924256 0.498846 38819469.844586 /autogroup-89 [53199.708757] Chrome_ChildIOT 6142 1215550.307140 301925 120 12= 15550.307140 3869.705199 53092417.037992 /autogroup-89 [53199.708762] OptimizingCompi 6159 1204141.712148 893 120 12= 04141.712148 276.339608 52535825.078193 /autogroup-89 [53199.708767] WebCore: Databa 6207 154443.656889 757 120 1= 54443.656889 32.046108 4128205.234477 /autogroup-89 [53199.708772] chrome 6143 1215869.094953 118534 120 12= 15869.094953 99860.360077 53015006.019039 /autogroup-89 [53199.708777] Compositor 6170 1116252.560321 37631 120 11= 16252.560321 4116.750309 47915737.651172 /autogroup-89 [53199.708782] HTMLParserThrea 6181 1113917.273277 712 120 11= 13917.273277 20.473418 47903175.933745 /autogroup-89 [53199.708786] (sd-pam) 6366 8.007742 1 120 = 8.007742 0.056326 0.000000 /autogroup-102 [53199.708791] irq/48-mei_me 26100 0.000000 19 49 = 0.000000 0.328630 0.000000 / [53199.708813] kworker/u17:0 26173 1476581.209317 93 100 14= 76581.209317 1.227100 2220.753012 / [53199.708836] hci0 26174 1475161.063682 2 100 14= 75161.063682 0.007188 0.002789 / [53199.708860] hci0 26175 1475170.068853 2 100 14= 75170.068853 0.006001 0.002732 / [53199.708866] bash 31125 1166.937749 330 120 = 1166.937749 32.440800 20993495.025390 /autogroup-776 [53199.708872] bash 8875 796.835149 194 120 = 796.835149 36.571388 9258718.093056 /autogroup-853 [53199.708877] bash 11991 1072.731944 416 120 = 1072.731944 38.023192 1713795.446522 /autogroup-985 [53199.708882] irq/53-iwlwifi 12079 0.000000 521239 49 = 0.000000 9220.731366 0.000000 / [53199.708887] bash 14677 1353.494874 329 120 = 1353.494874 34.637500 11702768.794668 /autogroup-874 [53199.708892] chrome 17992 1215904.599169 26584 120 12= 15904.599169 46081.685473 6849795.215222 /autogroup-89 [53199.708898] HTMLParserThrea 18002 1214609.647683 1927 120 12= 14609.647683 311.791401 6813651.935458 /autogroup-89 [53199.708903] chrome 18421 1215904.595836 45787 120 12= 15904.595836 8304.794652 6237579.713413 /autogroup-89 [53199.708909] v8:SweeperThrea 18436 1110298.366912 21 120 11= 10298.366912 3.903969 820810.996043 /autogroup-89 [53199.708914] v8:SweeperThrea 18930 1215522.490393 143 120 12= 15522.490393 47.666705 5246305.220294 /autogroup-89 [53199.708918] Compositor 18933 1117057.028609 2560 120 11= 17057.028609 312.301786 77244.342420 /autogroup-89 [53199.708924] chrome 18958 1147102.601926 4 120 11= 47102.601926 0.243651 1573709.271975 /autogroup-89 [53199.708929] chrome 18961 1112728.751407 1 120 11= 12728.751407 0.004565 0.000000 /autogroup-89 [53199.708934] chrome 19908 1215904.530166 3701 120 12= 15904.530166 29.067007 3698924.950558 /autogroup-89 [53199.708939] v8:SweeperThrea 18982 1117796.244630 16 120 11= 17796.244630 2.523894 26607.871118 /autogroup-89 [53199.708943] Compositor 18983 1131881.506175 793 120 11= 31881.506175 73.664671 486607.606583 /autogroup-89 [53199.708948] FFmpegDemuxer 19026 1117452.537860 17 120 11= 17452.537860 14.981090 485.958340 /autogroup-89 [53199.708953] Media 19028 1117460.930344 40 120 11= 17460.930344 8.666699 11.182932 /autogroup-89 [53199.708958] v8:SweeperThrea 19309 1132962.498375 14 120 11= 32962.498375 2.517650 99856.123596 /autogroup-89 [53199.708963] chrome 19520 1215916.189046 27281 120 12= 15916.189046 23578.938095 4262673.160528 /autogroup-89 [53199.708968] v8:SweeperThrea 19900 1215458.286506 120 120 12= 15458.286506 43.035809 3672220.591419 /autogroup-89 [53199.708973] Compositor 19903 1152533.314966 2241 120 11= 52533.314966 283.944071 397694.675783 /autogroup-89 [53199.708978] chrome 20084 1215904.582267 5880 120 12= 15904.582267 2627.511641 3313502.754805 /autogroup-89 [53199.708983] OptimizingCompi 20088 1155304.736495 171 120 11= 55304.736495 38.100651 319047.727194 /autogroup-89 [53199.708988] v8:SweeperThrea 20091 1153584.554373 13 120 11= 53584.554373 2.071654 94856.226043 /autogroup-89 [53199.708993] Compositor 20092 1156716.503338 1249 120 11= 56716.503338 109.655696 333784.894198 /autogroup-89 [53199.708997] v8:SweeperThrea 20254 1160852.981179 25 120 11= 60852.981179 8.915644 267603.525593 /autogroup-89 [53199.709003] HTMLParserThrea 20258 1159640.211579 305 120 11= 59640.211579 86.231148 168901.984086 /autogroup-89 [53199.709008] v8:SweeperThrea 20503 1163030.100679 11 120 11= 63030.100679 1.195558 99991.969165 /autogroup-89 [53199.709012] Compositor 20504 1165811.691303 343 120 11= 65811.691303 37.525145 278721.582058 /autogroup-89 [53199.709017] OptimizingCompi 20722 1196073.991180 286 120 11= 96073.991180 46.057874 1356220.657192 /autogroup-89 [53199.709021] v8:SweeperThrea 20724 1193690.785400 21 120 11= 93690.785400 4.373148 1247960.585798 /autogroup-89 [53199.709026] scsi_tmf_8 21432 3316619.483610 2 100 33= 16619.483610 0.007068 0.003487 / [53199.709031] sudo 21455 255.446962 5 120 = 255.446962 19.885723 2202.568405 /autogroup-840 [53199.709036] bash 21466 314.382710 66 120 = 314.382710 13.611293 31916.448551 /autogroup-840 [53199.709041] xfs-data/sdb 21499 3318104.053470 2 100 33= 18104.053470 0.007627 0.003562 / [53199.709045] xfs-conv/sdb 21500 3318113.058663 2 100 33= 18113.058663 0.005918 0.002479 / [53199.709050] xfs-cil/sdb 21501 3318122.064166 2 100 33= 18122.064166 0.006185 0.002433 / [53199.709054] Chrome_ChildIOT 21628 1215904.541936 9551 120 12= 15904.541936 149.305300 845615.135083 /autogroup-89 [53199.709060] v8:SweeperThrea 21669 1215887.176553 49 120 12= 15887.176553 8.608843 829004.582800 /autogroup-89 [53199.709065] Compositor 21671 1215122.611627 6400 120 12= 15122.611627 613.276551 774587.034596 /autogroup-89 [53199.709069] kworker/1:2 21679 3392908.881269 22951 120 33= 92908.881269 1996.733874 829562.850103 / [53199.709074] chrome 21701 1215904.591034 7382 120 12= 15904.591034 2730.446245 746652.681582 /autogroup-89 [53199.709080] kworker/1:1 21913 3382078.500638 10838 120 33= 82078.500638 908.410867 301344.582208 / [53199.709084] kworker/1:0 22128 3392807.798256 12898 120 33= 92807.798256 326.631095 218715.520269 / [53199.709089] sudo 22258 425.340984 4 120 = 425.340984 7.588318 0.391857 /autogroup-1051 [53199.709095] cpu#2, 2194.832 MHz [53199.709097] .nr_running : 0 [53199.709098] .load : 0 [53199.709100] .nr_switches : 38356881 [53199.709101] .nr_load_updates : 8046174 [53199.709103] .nr_uninterruptible : 256 [53199.709104] .next_balance : 4308.178553 [53199.709106] .curr->pid : 4712 [53199.709107] .clock : 53199709.106328 [53199.709109] .cpu_load[0] : 0 [53199.709110] .cpu_load[1] : 5 [53199.709112] .cpu_load[2] : 9 [53199.709113] .cpu_load[3] : 6 [53199.709114] .cpu_load[4] : 3 [53199.709116] .yld_count : 12854 [53199.709117] .sched_count : 38407797 [53199.709119] .sched_goidle : 17332842 [53199.709120] .avg_idle : 34478 [53199.709121] .max_idle_balance_cost : 500000 [53199.709123] .ttwu_count : 17087818 [53199.709124] .ttwu_local : 9560639 [53199.709126]=20 cfs_rq[2]:/autogroup-55 [53199.709128] .exec_clock : 480.138065 [53199.709130] .MIN_vruntime : 0.000001 [53199.709131] .min_vruntime : 5462.828964 [53199.709133] .max_vruntime : 0.000001 [53199.709134] .spread : 0.000000 [53199.709136] .spread0 : -3274083.064772 [53199.709137] .nr_spread_over : 661 [53199.709139] .nr_running : 0 [53199.709140] .load : 0 [53199.709141] .runnable_load_avg : 0 [53199.709143] .blocked_load_avg : 6 [53199.709144] .tg_load_contrib : 4 [53199.709145] .tg_runnable_contrib : 4 [53199.709147] .tg_load_avg : 38 [53199.709148] .tg->runnable_avg : 46 [53199.709149] .tg->cfs_bandwidth.timer_active: 0 [53199.709151] .throttled : 0 [53199.709152] .throttle_count : 0 [53199.709154] .se->exec_start : 53199709.130322 [53199.709155] .se->vruntime : 3411919.177138 [53199.709157] .se->sum_exec_runtime : 480.552960 [53199.709158] .se->statistics.wait_start : 0.000000 [53199.709160] .se->statistics.sleep_start : 0.000000 [53199.709161] .se->statistics.block_start : 0.000000 [53199.709163] .se->statistics.sleep_max : 0.000000 [53199.709164] .se->statistics.block_max : 0.000000 [53199.709166] .se->statistics.exec_max : 0.625104 [53199.709167] .se->statistics.slice_max : 1.017227 [53199.709169] .se->statistics.wait_max : 12.049908 [53199.709171] .se->statistics.wait_sum : 265.328712 [53199.709172] .se->statistics.wait_count : 21115 [53199.709173] .se->load.weight : 2 [53199.709175] .se->avg.runnable_avg_sum : 329 [53199.709176] .se->avg.runnable_avg_period : 47102 [53199.709178] .se->avg.load_avg_contrib : 1 [53199.709179] .se->avg.decay_count : 50735197 [53199.709181]=20 cfs_rq[2]:/autogroup-81 [53199.709183] .exec_clock : 79939.261294 [53199.709184] .MIN_vruntime : 0.000001 [53199.709186] .min_vruntime : 79952.524657 [53199.709187] .max_vruntime : 0.000001 [53199.709189] .spread : 0.000000 [53199.709190] .spread0 : -3199593.369079 [53199.709192] .nr_spread_over : 1 [53199.709193] .nr_running : 0 [53199.709194] .load : 0 [53199.709196] .runnable_load_avg : 0 [53199.709197] .blocked_load_avg : 0 [53199.709198] .tg_load_contrib : 0 [53199.709200] .tg_runnable_contrib : 0 [53199.709201] .tg_load_avg : 0 [53199.709202] .tg->runnable_avg : 6 [53199.709204] .tg->cfs_bandwidth.timer_active: 0 [53199.709205] .throttled : 0 [53199.709206] .throttle_count : 0 [53199.709208] .se->exec_start : 53199706.011943 [53199.709210] .se->vruntime : 3411918.849285 [53199.709211] .se->sum_exec_runtime : 79942.655453 [53199.709213] .se->statistics.wait_start : 0.000000 [53199.709214] .se->statistics.sleep_start : 0.000000 [53199.709216] .se->statistics.block_start : 0.000000 [53199.709217] .se->statistics.sleep_max : 0.000000 [53199.709219] .se->statistics.block_max : 0.000000 [53199.709220] .se->statistics.exec_max : 4.005597 [53199.709222] .se->statistics.slice_max : 3.105020 [53199.709223] .se->statistics.wait_max : 6.465187 [53199.709225] .se->statistics.wait_sum : 270.215800 [53199.709226] .se->statistics.wait_count : 779506 [53199.709227] .se->load.weight : 2 [53199.709229] .se->avg.runnable_avg_sum : 51 [53199.709230] .se->avg.runnable_avg_period : 48769 [53199.709232] .se->avg.load_avg_contrib : 0 [53199.709235] .se->avg.decay_count : 50735194 [53199.709242]=20 cfs_rq[2]:/autogroup-89 [53199.709249] .exec_clock : 1480458.110343 [53199.709255] .MIN_vruntime : 0.000001 [53199.709261] .min_vruntime : 1105905.657369 [53199.709268] .max_vruntime : 0.000001 [53199.709274] .spread : 0.000000 [53199.709280] .spread0 : -2173640.236367 [53199.709285] .nr_spread_over : 4215 [53199.709291] .nr_running : 0 [53199.709298] .load : 0 [53199.709304] .runnable_load_avg : 0 [53199.709310] .blocked_load_avg : 92 [53199.709315] .tg_load_contrib : 92 [53199.709321] .tg_runnable_contrib : 33 [53199.709327] .tg_load_avg : 403 [53199.709333] .tg->runnable_avg : 422 [53199.709340] .tg->cfs_bandwidth.timer_active: 0 [53199.709346] .throttled : 0 [53199.709352] .throttle_count : 0 [53199.709358] .se->exec_start : 53199705.913514 [53199.709363] .se->vruntime : 3411927.796438 [53199.709364] .se->sum_exec_runtime : 1480469.620591 [53199.709366] .se->statistics.wait_start : 0.000000 [53199.709367] .se->statistics.sleep_start : 0.000000 [53199.709369] .se->statistics.block_start : 0.000000 [53199.709370] .se->statistics.sleep_max : 0.000000 [53199.709372] .se->statistics.block_max : 0.000000 [53199.709373] .se->statistics.exec_max : 4.120836 [53199.709375] .se->statistics.slice_max : 9.977844 [53199.709376] .se->statistics.wait_max : 13.234192 [53199.709378] .se->statistics.wait_sum : 14761.496616 [53199.709379] .se->statistics.wait_count : 10857851 [53199.709381] .se->load.weight : 2 [53199.709382] .se->avg.runnable_avg_sum : 1525 [53199.709383] .se->avg.runnable_avg_period : 46206 [53199.709385] .se->avg.load_avg_contrib : 95 [53199.709386] .se->avg.decay_count : 50735194 [53199.709388]=20 cfs_rq[2]:/ [53199.709390] .exec_clock : 2587364.186113 [53199.709391] .MIN_vruntime : 0.000001 [53199.709393] .min_vruntime : 3411927.796438 [53199.709394] .max_vruntime : 0.000001 [53199.709396] .spread : 0.000000 [53199.709397] .spread0 : 132381.902702 [53199.709399] .nr_spread_over : 2178 [53199.709400] .nr_running : 0 [53199.709401] .load : 0 [53199.709403] .runnable_load_avg : 0 [53199.709404] .blocked_load_avg : 5 [53199.709405] .tg_load_contrib : 1 [53199.709407] .tg_runnable_contrib : 40 [53199.709408] .tg_load_avg : 211 [53199.709409] .tg->runnable_avg : 548 [53199.709411] .tg->cfs_bandwidth.timer_active: 0 [53199.709412] .throttled : 0 [53199.709413] .throttle_count : 0 [53199.709415] .avg->runnable_avg_sum : 1857 [53199.709416] .avg->runnable_avg_period : 46697 [53199.709418]=20 rt_rq[2]: [53199.709420] .rt_nr_running : 0 [53199.709421] .rt_throttled : 0 [53199.709422] .rt_time : 0.000000 [53199.709424] .rt_runtime : 950.000000 [53199.709426]=20 runnable tasks: task PID tree-key switches prio exec-runtime = sum-exec sum-sleep =2D------------------------------------------------------------------------= =2D-------------------------------- [53199.709429] systemd 1 848.180128 17157 120 = 848.180128 3498.908309 53193689.877097 /autogroup-2 [53199.709435] migration/2 18 0.000000 5560 0 = 0.000000 40.939513 0.000000 / [53199.709439] rcuc/2 19 -5.997867 211481 98 = -5.997867 3996.563132 0.000000 / [53199.709444] ksoftirqd/2 20 3411752.803278 542987 120 34= 11752.803278 2591.848689 53187455.974516 / [53199.709448] kworker/2:0H 22 1276358.002747 14 100 12= 76358.002747 0.029421 25261791.579418 / [53199.709453] kdevtmpfs 29 3336292.502400 726 120 33= 36292.502400 3.982675 52140110.708047 / [53199.709458] khugepaged 182 3411799.480340 5223 139 34= 11799.480340 2014.702304 53192084.614499 / [53199.709462] kblockd 187 1329.067268 2 100 = 1329.067268 0.005280 0.002312 / [53199.709467] devfreq_wq 422 1339.601240 2 100 = 1339.601240 0.005443 0.002167 / [53199.709471] khubd 1382 3336262.068266 412 120 33= 36262.068266 101.638970 52136890.034658 / [53199.709476] scsi_tmf_2 1452 5173.836510 2 100 = 5173.836510 0.007862 0.003546 / [53199.709481] xfs_mru_cache 1557 5612.948669 2 100 = 5612.948669 0.004459 0.001534 / [53199.709486] xfslogd 1558 5621.952146 2 100 = 5621.952146 0.003947 0.001456 / [53199.709491] xfs-data/dm-0 2830 8277.536824 2 100 = 8277.536824 0.004569 0.002767 / [53199.709495] xfs-conv/dm-0 2831 8286.540291 2 100 = 8286.540291 0.003956 0.001850 / [53199.709499] xfs-cil/dm-0 2832 8295.543932 2 100 = 8295.543932 0.004140 0.001931 / [53199.709504] xfsaild/dm-0 2834 3411916.573362 974146 120 34= 11916.573362 5047.272199 53186534.091311 / [53199.709509] kworker/2:1H 4058 3411324.781746 166975 100 34= 11324.781746 608.469994 53166880.684256 / [53199.709514] hd-audio0 4199 13502.013869 2 100 = 13502.013869 0.003498 0.010625 / [53199.709520] console-kit-dae 4622 59.222740 9 120 = 59.222740 0.069414 25251746.223070 /autogroup-46 [53199.709525] console-kit-dae 4628 59.222115 11 120 = 59.222115 0.059465 25251744.451748 /autogroup-46 [53199.709529] console-kit-dae 4630 59.241900 9 120 = 59.241900 0.080035 25251744.598210 /autogroup-46 [53199.709534] console-kit-dae 4634 59.222167 13 120 = 59.222167 0.086246 25251744.210521 /autogroup-46 [53199.709539] console-kit-dae 4637 59.224073 9 120 = 59.224073 0.048789 25251744.104150 /autogroup-46 [53199.709544] console-kit-dae 4640 59.221940 12 120 = 59.221940 0.063471 25251744.174095 /autogroup-46 [53199.709549] console-kit-dae 4643 59.222146 12 120 = 59.222146 0.060088 25251744.205143 /autogroup-46 [53199.709554] console-kit-dae 4646 59.222265 11 120 = 59.222265 0.076360 25251744.243985 /autogroup-46 [53199.709558] console-kit-dae 4649 59.221456 9 120 = 59.221456 0.046481 25251744.225028 /autogroup-46 [53199.709564] console-kit-dae 4652 59.222102 10 120 = 59.222102 0.055383 25251744.272801 /autogroup-46 [53199.709568] console-kit-dae 4655 59.221974 9 120 = 59.221974 0.056024 25251744.377876 /autogroup-46 [53199.709573] console-kit-dae 4657 59.221912 11 120 = 59.221912 0.053577 25251744.344004 /autogroup-46 [53199.709578] console-kit-dae 4660 59.221888 9 120 = 59.221888 0.048713 25251745.994145 /autogroup-46 [53199.709583] console-kit-dae 4663 59.221774 9 120 = 59.221774 0.043267 25251747.044746 /autogroup-46 [53199.709587] console-kit-dae 4666 59.222088 11 120 = 59.222088 0.070292 25251746.414849 /autogroup-46 [53199.709592] console-kit-dae 4669 59.221813 9 120 = 59.221813 0.046865 25251746.948546 /autogroup-46 [53199.709597] console-kit-dae 4672 59.221463 9 120 = 59.221463 0.048878 25251746.992206 /autogroup-46 [53199.709603] console-kit-dae 4677 59.221876 9 120 = 59.221876 0.045768 25251744.127308 /autogroup-46 [53199.709607] console-kit-dae 4681 59.222128 9 120 = 59.222128 0.050475 25251744.140668 /autogroup-46 [53199.709613] ModemManager 4616 0.107778 66 120 = 0.107778 28.291641 52126149.498730 /autogroup-48 [53199.709618] dbus-daemon 4619 954.525941 30895 120 = 954.525941 3847.119921 53130591.652537 /autogroup-49 [53199.709623] gmain 4696 82.363416 7 120 = 82.363416 0.051775 25251703.446098 /autogroup-54 [53199.709628] syslog-ng 4712 5462.883434 54910 120 = 5462.883434 578.936221 53185516.122350 /autogroup-55 [53199.709633] smbd 5078 2435.176098 6959 120 = 2435.176098 902.014122 53133569.309055 /autogroup-68 [53199.709639] mysqld 5117 682.411528 106231 120 = 682.411528 671.398701 53171089.828685 /autogroup-72 [53199.709643] mysqld 5120 682.400227 106244 120 = 682.400227 670.706814 53171069.815334 /autogroup-72 [53199.709649] mysqld 5125 681.820566 106246 120 = 681.820566 669.292417 53171063.811800 /autogroup-72 [53199.709653] mysqld 5126 682.411720 106255 120 = 682.411720 674.252276 53171046.094986 /autogroup-72 [53199.709658] pure-ftpd 5163 0.845541 7 120 = 0.845541 0.232579 25237518.282539 /autogroup-77 [53199.709663] kdm 5302 52.223182 218 120 = 52.223182 7.428176 49959219.051014 /autogroup-80 [53199.709668] X 5304 79952.524657 4818752 120 = 79952.524657 470611.571193 52696961.582944 /autogroup-81 [53199.709673] X 5308 78944.480832 61 120 = 78944.480832 0.885612 52487259.225844 /autogroup-81 [53199.709677] agetty 5305 0.165416 13 120 = 0.165416 1.380082 25236622.225638 /autogroup-83 [53199.709683] startkde 5334 186.021833 120 120 = 186.021833 19.663410 25231135.980614 /autogroup-85 [53199.709688] dbus-launch 5432 186.026093 15 120 = 186.026093 0.265957 25230961.832005 /autogroup-85 [53199.709693] start_kdeinit 5440 196.984400 528 120 = 196.984400 18.877575 53068362.090227 /autogroup-85 [53199.709697] QProcessManager 5452 477598.178181 11 120 4= 77598.178181 0.140998 25229683.123591 /autogroup-89 [53199.709703] QInotifyFileSys 20702 477598.177914 5 120 4= 77598.177914 0.081119 3569870.085088 /autogroup-89 [53199.709707] QThread 5474 1104838.259845 30887 120 11= 04838.259845 1483.747571 53109094.050646 /autogroup-89 [53199.709712] udisksd 5465 661.754245 9130 120 = 661.754245 379.604268 53112014.926172 /autogroup-91 [53199.709717] kwrapper4 5471 190.785779 5 120 = 190.785779 0.381750 6.774595 /autogroup-85 [53199.709723] kwin 8555 19400.562132 1 120 = 19400.562132 0.009116 0.000000 /autogroup-89 [53199.709727] baloo_file 5488 1104847.138222 19066 139 11= 04847.138222 581.757517 53104705.641205 /autogroup-89 [53199.709732] plasma-desktop 5489 1105905.458219 1591929 120 11= 05905.458219 231008.429602 52921382.039411 /autogroup-89 [53199.709737] QInotifyFileSys 5650 477598.178961 7 120 4= 77598.178961 0.097935 25223030.131603 /autogroup-89 [53199.709742] ThreadWeaver::T 5932 669837.281483 157 120 6= 69837.281483 66.978184 31703347.411594 /autogroup-89 [53199.709747] ThreadWeaver::T 5933 669836.671942 138 120 6= 69836.671942 30.359020 31703385.323682 /autogroup-89 [53199.709751] ThreadWeaver::T 5934 669834.668746 128 120 6= 69834.668746 55.733633 31703349.181458 /autogroup-89 [53199.709756] ThreadWeaver::T 5939 669829.859354 119 120 6= 69829.859354 15.646323 31703404.039777 /autogroup-89 [53199.709761] dropbox 5673 922341.805319 504 120 9= 22341.805319 58.426579 42180616.618475 /autogroup-89 [53199.709766] dropbox 5674 3336.448118 65 120 = 3336.448118 0.216774 0.669848 /autogroup-89 [53199.709771] dropbox 5831 4465.992376 293 120 = 4465.992376 38.537646 363.316779 /autogroup-89 [53199.709776] dropbox 5834 5942.610504 65 120 = 5942.610504 32.978817 4169.440290 /autogroup-89 [53199.709780] dropbox 5835 4341.700855 38 120 = 4341.700855 0.421801 271.487578 /autogroup-89 [53199.709785] dropbox 5839 1105798.639080 1090 120 11= 05798.639080 595.711999 53140916.732154 /autogroup-89 [53199.709790] klipper 5533 1104837.826957 26940 120 11= 04837.826957 1101.185362 53101285.203284 /autogroup-89 [53199.709795] kgpg 5535 1104837.774572 16040 120 11= 04837.774572 428.519008 53100539.914324 /autogroup-89 [53199.709799] kmix 5536 1104837.865224 25713 120 11= 04837.865224 823.340023 53099142.283143 /autogroup-89 [53199.709805] QProcessManager 5663 224202.793801 13 120 2= 24202.793801 0.235645 25222702.445265 /autogroup-95 [53199.709810] Akonadi::Server 5708 505210.740446 69 120 5= 05210.740446 0.968004 50451971.917717 /autogroup-95 [53199.709816] Akonadi::Server 5761 505201.779509 66 120 5= 05201.779509 1.234988 50452301.517154 /autogroup-95 [53199.709820] Akonadi::Server 5763 505201.780584 284 120 5= 05201.780584 4.399269 50452351.416672 /autogroup-95 [53199.709825] Akonadi::Server 5772 505201.785381 66 120 5= 05201.785381 1.366730 50452139.827794 /autogroup-95 [53199.709830] Akonadi::Server 5776 505201.779765 70 120 5= 05201.779765 1.265666 50452159.977899 /autogroup-95 [53199.709834] Akonadi::Server 5777 505201.807331 508 120 5= 05201.807331 35.458738 50453792.833004 /autogroup-95 [53199.709839] mysqld 5677 544005.383818 106193 120 5= 44005.383818 709.033480 53156073.400069 /autogroup-95 [53199.709844] mysqld 5678 544005.375074 110999 120 5= 44005.375074 790.076743 53156273.469659 /autogroup-95 [53199.709849] mysqld 5684 544005.424344 110098 120 5= 44005.424344 782.065502 53156102.959056 /autogroup-95 [53199.709854] mysqld 5688 544005.342186 53095 120 5= 44005.342186 421.758699 53156037.808559 /autogroup-95 [53199.709859] mysqld 5691 544005.435526 60012 120 5= 44005.435526 870.145114 53155567.847833 /autogroup-95 [53199.709863] mysqld 5692 544005.160673 3163 120 5= 44005.160673 233.465719 53122381.413714 /autogroup-95 [53199.709868] mysqld 5696 544005.234366 53255 120 5= 44005.234366 516.527920 53156433.536383 /autogroup-95 [53199.709873] mysqld 5714 505196.833300 28 120 5= 05196.833300 0.673900 50451974.615593 /autogroup-95 [53199.709878] mysqld 5742 505201.775489 31 120 5= 05201.775489 1.075476 50451988.747094 /autogroup-95 [53199.709882] mysqld 5756 505201.769200 30 120 5= 05201.769200 1.047024 50451997.633772 /autogroup-95 [53199.709887] mysqld 5786 505201.777364 376 120 5= 05201.777364 12.092044 50451961.691290 /autogroup-95 [53199.709892] mysqld 5792 505201.774197 494 120 5= 05201.774197 22.771833 50451938.978092 /autogroup-95 [53199.709897] mysqld 5794 505201.777301 314 120 5= 05201.777301 16.906466 50451976.784753 /autogroup-95 [53199.709901] mysqld 5799 505201.819267 19 120 5= 05201.819267 1.244462 50451990.770150 /autogroup-95 [53199.709906] mysqld 22509 537609.643188 16 120 5= 37609.643188 0.809263 28829422.538583 /autogroup-95 [53199.709910] akonadi_agent_l 5719 544005.306013 20580 120 5= 44005.306013 1061.815327 53115785.548632 /autogroup-95 [53199.709916] akonadi_googlec 5724 544005.293733 21516 120 5= 44005.293733 1211.601092 53116071.387516 /autogroup-95 [53199.709920] akonadi_agent_l 5725 544005.313332 20027 120 5= 44005.313332 1073.139722 53115249.849567 /autogroup-95 [53199.709925] QProcessManager 5749 224202.794044 8 120 2= 24202.794044 0.098457 25221982.239252 /autogroup-95 [53199.709930] akonadi_agent_l 5735 544005.312498 20666 120 5= 44005.312498 1094.235317 53114996.144863 /autogroup-95 [53199.709936] kio_http_cache_ 5789 1059071.445661 205 120 10= 59071.445661 56.160998 51087198.507505 /autogroup-89 [53199.709940] konsole 5804 1105904.459859 2008190 120 11= 05904.459859 772752.375494 52369556.811198 /autogroup-89 [53199.709944] wish 5827 1105898.606480 1147206 120 11= 05898.606480 55492.036801 53092562.615250 /autogroup-89 [53199.709949] chrome 5863 477598.185450 7 120 4= 77598.185450 0.077912 25213711.347441 /autogroup-89 [53199.709954] Chrome_FileThre 5879 1105720.014682 91428 120 11= 05720.014682 3408.481135 53126510.158515 /autogroup-89 [53199.709959] Chrome_FileUser 5880 1098048.687339 3595 120 10= 98048.687339 128.908654 52826782.493930 /autogroup-89 [53199.709964] IndexedDB 5884 1105090.350814 7487 120 11= 05090.350814 434.951946 53104044.504496 /autogroup-89 [53199.709969] LevelDBEnv 5900 1001242.557092 234 120 10= 01242.557092 58.205926 47963939.356004 /autogroup-89 [53199.709974] Chrome_SyncThre 5981 1105793.943837 58761 120 11= 05793.943837 3093.895399 53116691.732844 /autogroup-89 [53199.709979] ppapi_crash_upl 10670 59543.113552 1 120 = 59543.113552 0.046797 0.000000 /autogroup-89 [53199.709985] chrome-sandbox 5847 477598.179256 9 120 4= 77598.179256 1.182371 25213833.506730 /autogroup-89 [53199.709990] QProcessManager 5913 1096704.662334 72 120 10= 96704.662334 1.186028 52776080.663636 /autogroup-89 [53199.709994] Chrome_ChildIOT 5987 1105107.382754 3741 120 11= 05107.382754 115.833877 53084932.557494 /autogroup-89 [53199.709999] v8:SweeperThrea 6023 8521.725733 8 120 = 8521.725733 0.039547 38025.590959 /autogroup-89 [53199.710004] Chrome_ChildIOT 6018 1105107.375022 3782 120 11= 05107.375022 108.058811 53084784.178975 /autogroup-89 [53199.710009] v8:SweeperThrea 6047 8522.816890 8 120 = 8522.816890 0.061048 37971.396026 /autogroup-89 [53199.710014] HTMLParserThrea 6050 6654.540205 27 120 = 6654.540205 0.166281 28.021202 /autogroup-89 [53199.710018] chrome 6037 1105493.368412 8008 120 11= 05493.368412 1503.432187 53104515.225243 /autogroup-89 [53199.710023] Chrome_ChildIOT 6041 1105107.374137 6100 120 11= 05107.374137 133.739136 53084574.804475 /autogroup-89 [53199.710028] v8:SweeperThrea 6066 1074458.373616 50 120 10= 74458.373616 1.342192 51683946.536839 /autogroup-89 [53199.710033] Compositor 6067 6736.551755 11 120 = 6736.551755 0.095623 26.785152 /autogroup-89 [53199.710037] HTMLParserThrea 6072 6773.750963 51 120 = 6773.750963 0.788746 81.037696 /autogroup-89 [53199.710042] WebCore: Databa 6073 1064189.813996 357 120 10= 64189.813996 13.237937 51293541.608401 /autogroup-89 [53199.710047] v8:SweeperThrea 6078 1100868.266483 1016 120 11= 00868.266483 62.633780 52880497.409837 /autogroup-89 [53199.710052] OptimizingCompi 6421 1099545.766878 221 120 10= 99545.766878 46.482717 52681528.287195 /autogroup-89 [53199.710056] v8:SweeperThrea 6422 1093240.245697 320 120 10= 93240.245697 9.004286 52425615.027893 /autogroup-89 [53199.710061] Trace 6427 1105896.665692 53006 120 11= 05896.665692 447.036949 52993248.270099 /autogroup-89 [53199.710066] chrome 6429 9150.101839 1 120 = 9150.101839 0.004285 0.000000 /autogroup-89 [53199.710071] chrome 6430 1105897.033666 5266629 120 11= 05897.033666 22186.622104 52970160.182532 /autogroup-89 [53199.710075] Compositor 6089 6785.895026 11 120 = 6785.895026 0.122855 14.871342 /autogroup-89 [53199.710080] Chrome_ChildIOT 6083 1105466.761007 11842 120 11= 05466.761007 261.397983 53097221.346653 /autogroup-89 [53199.710085] v8:SweeperThrea 6105 824034.395938 43 120 8= 24034.395938 1.631286 38117830.932613 /autogroup-89 [53199.710090] v8:SweeperThrea 6107 824034.357700 44 120 8= 24034.357700 1.075005 38117831.288613 /autogroup-89 [53199.710108] v8:SweeperThrea 6097 1095424.672595 120 120 10= 95424.672595 3.607164 52655810.637561 /autogroup-89 [53199.710130] Compositor 6100 6980.306032 11 120 = 6980.306032 0.114452 31.630120 /autogroup-89 [53199.710152] v8:SweeperThrea 6129 1101896.189262 1151 120 11= 01896.189262 525.519714 52957104.226967 /autogroup-89 [53199.710174] Compositor 6137 7034.525262 7 120 = 7034.525262 0.122638 30.939045 /autogroup-89 [53199.710199] v8:SweeperThrea 6134 1088509.947982 243 120 10= 88509.947982 11.212400 52331109.690027 /autogroup-89 [53199.710214] Compositor 6136 7034.954243 7 120 = 7034.954243 0.113004 32.536270 /autogroup-89 [53199.710219] HTMLParserThrea 6153 7178.780867 45 120 = 7178.780867 0.372977 262.512389 /autogroup-89 [53199.710224] Chrome_ChildIOT 6118 1105107.372544 5329 120 11= 05107.372544 141.279776 53083810.909563 /autogroup-89 [53199.710229] v8:SweeperThrea 6125 799714.362558 15 120 7= 99714.362558 0.367886 37406699.174734 /autogroup-89 [53199.710234] v8:SweeperThrea 6150 836184.437423 22 120 8= 36184.437423 0.313466 38819469.945269 /autogroup-89 [53199.710239] HTMLParserThrea 6172 7195.383578 19 120 = 7195.383578 0.352276 217.677025 /autogroup-89 [53199.710243] v8:SweeperThrea 6160 1100928.331513 1153 120 11= 00928.331513 307.482296 52888131.413106 /autogroup-89 [53199.710248] HTMLParserThrea 6183 50542.633650 46 120 = 50542.633650 1.360197 4127683.765456 /autogroup-89 [53199.710253] v8:SweeperThrea 6169 1105790.142271 1144 120 11= 05790.142271 242.642343 53116627.763871 /autogroup-89 [53199.710258] psi 26446 1105898.478622 168411 120 11= 05898.478622 32764.636182 27818930.897735 /autogroup-89 [53199.710263] ssh 26455 301.996715 3204 120 = 301.996715 129.335222 27797297.071646 /autogroup-119 [53199.710269] bash 5295 168.351559 201 120 = 168.351559 27.463046 2299705.508783 /autogroup-853 [53199.710273] bash 5653 2787.334122 358 120 = 2787.334122 42.160981 12964061.411402 /autogroup-858 [53199.710278] bash 6787 1654.755026 94 120 = 1654.755026 17.722050 6437346.803729 /autogroup-874 [53199.710283] sudo 8873 176.585440 5 120 = 176.585440 7.398199 0.344296 /autogroup-853 [53199.710288] ssh 14119 2232.598443 649 120 = 2232.598443 42.667966 12472237.997725 /autogroup-970 [53199.710293] OptimizingCompi 17996 1104895.707465 3894 120 11= 04895.707465 842.940781 6846781.007086 /autogroup-89 [53199.710298] v8:SweeperThrea 17997 1105480.217889 391 120 11= 05480.217889 68.027194 6871425.923800 /autogroup-89 [53199.710303] chrome 18303 1105897.023884 13314 120 11= 05897.023884 10204.499833 6351707.728976 /autogroup-89 [53199.710308] v8:SweeperThrea 18309 1100868.996894 51 120 11= 00868.996894 12.016523 6115418.521076 /autogroup-89 [53199.710313] Compositor 18311 972786.020371 4026 120 9= 72786.020371 890.761191 116216.301313 /autogroup-89 [53199.710318] ssh 18373 6004.468702 11144 120 = 6004.468702 372.891741 6247311.372052 /autogroup-851 [53199.710323] ssh 18517 2866.411745 4335 120 = 2866.411745 166.314054 6118110.109378 /autogroup-858 [53199.710328] Chrome_ChildIOT 18926 1105896.715462 39272 120 11= 05896.715462 655.038760 5278509.231254 /autogroup-89 [53199.710335] OptimizingCompi 18929 1101453.406101 692 120 11= 01453.406101 193.333867 5092488.127099 /autogroup-89 [53199.710340] v8:SweeperThrea 18931 1105375.744223 142 120 11= 05375.744223 46.796526 5246306.844896 /autogroup-89 [53199.710345] chrome 18937 1105897.092933 24087 120 11= 05897.092933 2121.691909 5278920.074581 /autogroup-89 [53199.710350] chrome 18960 1030473.520753 5 120 10= 30473.520753 0.279159 1573709.235402 /autogroup-89 [53199.710355] chrome 18975 1105896.817344 8196 120 11= 05896.817344 3147.946716 5214881.734750 /autogroup-89 [53199.710359] Chrome_ChildIOT 18976 1105896.710227 9078 120 11= 05896.710227 159.756946 5217990.473243 /autogroup-89 [53199.710364] Media 19024 1000088.338856 32 120 10= 00088.338856 2.029585 1124.053934 /autogroup-89 [53199.710370] v8:SweeperThrea 19307 1017583.584016 15 120 10= 17583.584016 3.614774 99856.121891 /autogroup-89 [53199.710375] Compositor 19310 1021558.263696 2457 120 10= 21558.263696 205.725527 456239.048425 /autogroup-89 [53199.710380] v8:SweeperThrea 19525 1105327.227509 129 120 11= 05327.227509 42.266571 4250596.339902 /autogroup-89 [53199.710386] OptimizingCompi 19899 1104838.598566 646 120 11= 04838.598566 174.264287 3660414.538466 /autogroup-89 [53199.710391] v8:SweeperThrea 19901 1105258.361094 118 120 11= 05258.361094 42.831748 3672220.802698 /autogroup-89 [53199.710396] HTMLParserThrea 19904 1030974.244237 285 120 10= 30974.244237 27.890469 13076.639558 /autogroup-89 [53199.710403] chrome 20496 1105896.800228 4049 120 11= 05896.800228 1828.450170 2599982.546881 /autogroup-89 [53199.710407] v8:SweeperThrea 20501 1048927.244483 11 120 10= 48927.244483 1.582994 99991.896507 /autogroup-89 [53199.710413] v8:SweeperThrea 20723 1080673.672214 21 120 10= 80673.672214 4.787410 1247960.487599 /autogroup-89 [53199.710418] Compositor 20726 1086362.179337 27246 120 10= 86362.179337 1455.164299 1489199.009650 /autogroup-89 [53199.710423] HTMLParserThrea 20731 1080120.752708 136 120 10= 80120.752708 23.279154 1170998.794806 /autogroup-89 [53199.710428] kworker/2:1 21181 3394823.979371 28207 120 33= 94823.979371 1921.712744 1251805.705990 / [53199.710433] mount 21498 5617.030498 218258 120 = 5617.030498 19737.526718 591916.533755 /autogroup-840 [53199.710439] v8:SweeperThrea 21632 1089596.632865 28 120 10= 89596.632865 3.705050 105922.186868 /autogroup-89 [53199.710444] v8:SweeperThrea 21670 1105823.384748 46 120 11= 05823.384748 8.188947 829005.216629 /autogroup-89 [53199.710449] OptimizingCompi 21705 1091668.775660 188 120 10= 91668.775660 40.333871 118900.669232 /autogroup-89 [53199.710455] v8:SweeperThrea 21708 1091995.158118 21 120 10= 91995.158118 2.143677 139615.697081 /autogroup-89 [53199.710459] Compositor 21709 1091838.404557 6673 120 10= 91838.404557 396.506139 130043.912520 /autogroup-89 [53199.710464] gringotts 21752 1104501.297925 2423 120 11= 04501.297925 307.644686 607085.582703 /autogroup-89 [53199.710469] kworker/2:0 21793 3411255.958516 16896 120 34= 11255.958516 491.586611 604673.220542 / [53199.710474] kworker/2:2 22104 3411918.718288 5032 120 34= 11918.718288 596.927260 290060.184423 / [53199.710479] kworker/u16:1 22167 3411916.277788 2761 120 34= 11916.277788 34.434278 165813.605595 / [53199.710491] cpu#3, 2194.832 MHz [53199.710492] .nr_running : 2 [53199.710493] .load : 2048 [53199.710495] .nr_switches : 37419841 [53199.710496] .nr_load_updates : 7971711 [53199.710498] .nr_uninterruptible : 3297 [53199.710500] .next_balance : 4308.178581 [53199.710501] .curr->pid : 22259 [53199.710503] .clock : 53199710.490286 [53199.710505] .cpu_load[0] : 262 [53199.710506] .cpu_load[1] : 198 [53199.710507] .cpu_load[2] : 129 [53199.710509] .cpu_load[3] : 75 [53199.710510] .cpu_load[4] : 40 [53199.710511] .yld_count : 21449 [53199.710513] .sched_count : 37478630 [53199.710514] .sched_goidle : 16955674 [53199.710516] .avg_idle : 812431 [53199.710517] .max_idle_balance_cost : 500000 [53199.710518] .ttwu_count : 16603266 [53199.710520] .ttwu_local : 9382983 [53199.710522]=20 cfs_rq[3]:/autogroup-1051 [53199.710524] .exec_clock : 315.186238 [53199.710526] .MIN_vruntime : 0.000001 [53199.710527] .min_vruntime : 441.195251 [53199.710529] .max_vruntime : 0.000001 [53199.710530] .spread : 0.000000 [53199.710532] .spread0 : -3279104.698485 [53199.710533] .nr_spread_over : 17 [53199.710535] .nr_running : 1 [53199.710536] .load : 1024 [53199.710537] .runnable_load_avg : 91 [53199.710539] .blocked_load_avg : 0 [53199.710540] .tg_load_contrib : 91 [53199.710542] .tg_runnable_contrib : 93 [53199.710543] .tg_load_avg : 91 [53199.710544] .tg->runnable_avg : 93 [53199.710547] .tg->cfs_bandwidth.timer_active: 0 [53199.710548] .throttled : 0 [53199.710550] .throttle_count : 0 [53199.710552] .se->exec_start : 53199710.490286 [53199.710553] .se->vruntime : 3560530.984103 [53199.710555] .se->sum_exec_runtime : 315.367488 [53199.710556] .se->statistics.wait_start : 0.000000 [53199.710558] .se->statistics.sleep_start : 0.000000 [53199.710559] .se->statistics.block_start : 0.000000 [53199.710561] .se->statistics.sleep_max : 0.000000 [53199.710562] .se->statistics.block_max : 0.000000 [53199.710564] .se->statistics.exec_max : 4.164693 [53199.710565] .se->statistics.slice_max : 0.205961 [53199.710567] .se->statistics.wait_max : 0.055736 [53199.710568] .se->statistics.wait_sum : 18.773549 [53199.710571] .se->statistics.wait_count : 15424 [53199.710572] .se->load.weight : 1024 [53199.710573] .se->avg.runnable_avg_sum : 4312 [53199.710575] .se->avg.runnable_avg_period : 47446 [53199.710576] .se->avg.load_avg_contrib : 91 [53199.710578] .se->avg.decay_count : 0 [53199.710579]=20 cfs_rq[3]:/autogroup-89 [53199.710581] .exec_clock : 1666035.541351 [53199.710583] .MIN_vruntime : 0.000001 [53199.710584] .min_vruntime : 1291945.416485 [53199.710586] .max_vruntime : 0.000001 [53199.710587] .spread : 0.000000 [53199.710589] .spread0 : -1987600.477251 [53199.710590] .nr_spread_over : 4384 [53199.710592] .nr_running : 0 [53199.710594] .load : 0 [53199.710595] .runnable_load_avg : 0 [53199.710597] .blocked_load_avg : 6 [53199.710598] .tg_load_contrib : 292 [53199.710599] .tg_runnable_contrib : 311 [53199.710601] .tg_load_avg : 795 [53199.710602] .tg->runnable_avg : 482 [53199.710603] .tg->cfs_bandwidth.timer_active: 0 [53199.710605] .throttled : 0 [53199.710606] .throttle_count : 0 [53199.710608] .se->exec_start : 53199705.839542 [53199.710609] .se->vruntime : 3560535.333359 [53199.710611] .se->sum_exec_runtime : 1666047.393003 [53199.710612] .se->statistics.wait_start : 0.000000 [53199.710614] .se->statistics.sleep_start : 0.000000 [53199.710615] .se->statistics.block_start : 0.000000 [53199.710617] .se->statistics.sleep_max : 0.000000 [53199.710619] .se->statistics.block_max : 0.000000 [53199.710621] .se->statistics.exec_max : 4.162067 [53199.710622] .se->statistics.slice_max : 5.657954 [53199.710624] .se->statistics.wait_max : 13.198664 [53199.710625] .se->statistics.wait_sum : 14538.792951 [53199.710627] .se->statistics.wait_count : 10880737 [53199.710628] .se->load.weight : 2 [53199.710629] .se->avg.runnable_avg_sum : 14521 [53199.710631] .se->avg.runnable_avg_period : 47679 [53199.710632] .se->avg.load_avg_contrib : 275 [53199.710634] .se->avg.decay_count : 50735198 [53199.710635]=20 cfs_rq[3]:/ [53199.710637] .exec_clock : 2697288.948993 [53199.710639] .MIN_vruntime : 3560526.333359 [53199.710640] .min_vruntime : 3560535.333359 [53199.710643] .max_vruntime : 3560526.333359 [53199.710644] .spread : 0.000000 [53199.710646] .spread0 : 280989.439623 [53199.710647] .nr_spread_over : 1609 [53199.710649] .nr_running : 2 [53199.710650] .load : 2048 [53199.710651] .runnable_load_avg : 91 [53199.710653] .blocked_load_avg : 275 [53199.710654] .tg_load_contrib : 262 [53199.710656] .tg_runnable_contrib : 315 [53199.710657] .tg_load_avg : 347 [53199.710659] .tg->runnable_avg : 631 [53199.710660] .tg->cfs_bandwidth.timer_active: 0 [53199.710661] .throttled : 0 [53199.710663] .throttle_count : 0 [53199.710664] .avg->runnable_avg_sum : 14452 [53199.710667] .avg->runnable_avg_period : 46853 [53199.710668]=20 rt_rq[3]: [53199.710670] .rt_nr_running : 0 [53199.710671] .rt_throttled : 0 [53199.710673] .rt_time : 0.007361 [53199.710674] .rt_runtime : 950.000000 [53199.710676]=20 runnable tasks: task PID tree-key switches prio exec-runtime = sum-exec sum-sleep =2D------------------------------------------------------------------------= =2D-------------------------------- [53199.710680] migration/3 23 0.000000 5730 0 = 0.000000 45.458750 0.000000 / [53199.710685] rcuc/3 24 -5.998507 204079 98 = -5.998507 4077.709108 0.000000 / [53199.710690] ksoftirqd/3 25 3558048.376660 516978 120 35= 58048.376660 2441.085380 53135923.207992 / [53199.710694] kworker/3:0H 27 1507345.640069 14 100 15= 07345.640069 0.033190 25261784.326864 / [53199.710699] khelper 28 7.957386 2 100 = 7.957386 0.006988 0.002115 / [53199.710704] netns 30 26.008479 2 100 = 26.008479 0.004917 0.001835 / [53199.710709] deferwq 1290 1858.905870 2 100 = 1858.905870 0.008845 0.003940 / [53199.710714] charger_manager 1291 1867.913953 2 100 = 1867.913953 0.008570 0.003732 / [53199.710719] scsi_eh_0 1442 1507618.870221 9 120 15= 07618.870221 0.733007 25259515.814818 / [53199.710724] scsi_eh_1 1447 1508072.594282 97 120 15= 08072.594282 12.752952 25259817.908820 / [53199.710729] scsi_eh_3 1455 1507624.876358 9 120 15= 07624.876358 0.065480 25259506.937227 / [53199.710734] scsi_tmf_3 1456 2370.807984 2 100 = 2370.807984 0.008174 0.004393 / [53199.710738] scsi_eh_5 1463 1507624.867075 9 120 15= 07624.867075 0.054394 25259500.987185 / [53199.710743] xfsalloc 1556 2492.718303 2 100 = 2492.718303 0.005215 0.002746 / [53199.710748] kcryptd 2773 1508096.633495 4 100 15= 08096.633495 0.037273 25257207.222238 / [53199.710753] bioset 2774 4767.532884 2 100 = 4767.532884 0.004696 0.001441 / [53199.710758] systemd-udevd 4059 331.751291 1683 120 = 331.751291 501.908474 52164273.924825 /autogroup-18 [53199.710763] irq/20-smo8800 4112 0.000000 2 49 = 0.000000 0.005539 0.000000 / [53199.710768] acpi_thermal_pm 4140 7830.070564 2 100 = 7830.070564 0.005474 0.017243 / [53199.710772] kworker/3:1H 4214 3542357.889406 166685 100 35= 42357.889406 605.781718 52875019.613787 / [53199.710777] avahi-dnsconfd 4593 0.776533 10 120 = 0.776533 0.913729 25251788.074313 /autogroup-39 [53199.710783] avahi-daemon 4594 165.153785 12166 120 = 165.153785 505.866864 53176132.861000 /autogroup-40 [53199.710788] console-kit-dae 4623 161.880757 15 120 = 161.880757 0.110462 25251742.854333 /autogroup-46 [53199.710793] console-kit-dae 4627 161.866446 10 120 = 161.866446 0.062500 25251746.622743 /autogroup-46 [53199.710798] console-kit-dae 4632 161.867351 11 120 = 161.867351 0.065063 25251746.380449 /autogroup-46 [53199.710804] console-kit-dae 4635 161.867466 9 120 = 161.867466 0.055038 25251747.027260 /autogroup-46 [53199.710808] console-kit-dae 4638 161.866545 11 120 = 161.866545 0.062230 25251747.098819 /autogroup-46 [53199.710813] console-kit-dae 4641 161.865864 9 120 = 161.865864 0.049810 25251746.986400 /autogroup-46 [53199.710818] console-kit-dae 4644 161.867602 9 120 = 161.867602 0.060037 25251746.753282 /autogroup-46 [53199.710823] console-kit-dae 4647 161.866925 10 120 = 161.866925 0.050217 25251747.024964 /autogroup-46 [53199.710829] console-kit-dae 4651 161.867502 12 120 = 161.867502 0.054743 25251746.716656 /autogroup-46 [53199.710833] console-kit-dae 4654 161.868326 12 120 = 161.868326 0.061917 25251746.663311 /autogroup-46 [53199.710839] console-kit-dae 4658 161.868503 9 120 = 161.868503 0.051965 25251746.450356 /autogroup-46 [53199.710843] console-kit-dae 4661 161.867784 10 120 = 161.867784 0.066201 25251746.033379 /autogroup-46 [53199.710849] console-kit-dae 4664 161.866324 10 120 = 161.866324 0.057247 25251745.947491 /autogroup-46 [53199.710854] console-kit-dae 4667 161.867684 8 120 = 161.867684 0.103568 25251744.638776 /autogroup-46 [53199.710858] console-kit-dae 4670 161.867101 9 120 = 161.867101 0.049458 25251745.875788 /autogroup-46 [53199.710863] console-kit-dae 4673 161.868477 9 120 = 161.868477 0.049357 25251744.592071 /autogroup-46 [53199.710868] console-kit-dae 4676 161.866570 9 120 = 161.866570 0.044290 25251746.299343 /autogroup-46 [53199.710873] console-kit-dae 4679 161.867028 9 120 = 161.867028 0.050045 25251746.706543 /autogroup-46 [53199.710878] console-kit-dae 4682 161.867704 9 120 = 161.867704 0.051957 25251746.807598 /autogroup-46 [53199.710882] gmain 4685 161.861381 8 120 = 161.861381 0.071836 25251744.080189 /autogroup-46 [53199.710887] upowerd 4615 311.459476 13937 120 = 311.459476 1283.490981 53132735.539547 /autogroup-47 [53199.710892] gmain 4684 149.054655 7 120 = 149.054655 0.052341 25251745.480899 /autogroup-47 [53199.710897] gdbus 4687 311.549354 6225 120 = 311.549354 553.855507 53133436.651311 /autogroup-47 [53199.710902] gmain 4617 -2.586757 7 120 = -2.586757 0.052088 25251752.057986 /autogroup-48 [53199.710907] systemd-logind 4686 270.560655 12687 120 = 270.560655 1062.004151 53132890.425217 /autogroup-50 [53199.710912] polkitd 4708 17.228191 1 120 = 17.228191 0.015132 0.000000 /autogroup-54 [53199.710918] chronyd 5065 23.142662 1631 121 = 23.142662 64.580221 53156193.561496 /autogroup-61 [53199.710923] mysqld 5118 922.535805 106240 120 = 922.535805 683.272506 53171188.136018 /autogroup-72 [53199.710929] mysqld 5140 249.343302 1 120 = 249.343302 0.008063 0.000000 /autogroup-72 [53199.710933] mysqld 5141 914.365875 5315 120 = 914.365875 42.482959 53165078.467790 /autogroup-72 [53199.710938] mysqld 5143 276.497917 2 120 = 276.497917 0.126502 4.429199 /autogroup-72 [53199.710943] X 5309 66184.963167 92 120 = 66184.963167 0.786039 52487259.266409 /autogroup-81 [53199.710950] probing-thread 5469 840.848546 38 120 = 840.848546 0.414751 52134882.883325 /autogroup-91 [53199.710955] QProcessManager 5483 1221369.195039 25 120 12= 21369.195039 0.409252 49951867.257409 /autogroup-89 [53199.710961] plasma-desktop 5491 3967.306080 1 120 = 3967.306080 0.006150 0.000000 /autogroup-89 [53199.710967] ThreadWeaver::T 5936 836904.343878 170 120 8= 36904.343878 37.260530 31703369.246623 /autogroup-89 [53199.710986] dropbox 5522 1288494.313698 1996 120 12= 88494.313698 780.068667 52871176.182147 /autogroup-89 [53199.711011] dropbox 5828 8459.910763 2 120 = 8459.910763 0.071077 0.000000 /autogroup-89 [53199.711035] dropbox 5836 8755.205265 42 120 = 8755.205265 0.627199 452.828265 /autogroup-89 [53199.711044] dropbox 5837 1291137.331174 2109 120 12= 91137.331174 1177.556468 53097242.238523 /autogroup-89 [53199.711049] dropbox 5840 1229160.301676 229 120 12= 29160.301676 140.987822 50387032.814811 /autogroup-89 [53199.711054] dropbox 5865 1291807.653480 978 120 12= 91807.653480 117.100248 53140966.940367 /autogroup-89 [53199.711059] dropbox 5875 8637.681719 5 120 = 8637.681719 0.083217 0.007526 /autogroup-89 [53199.711063] xbindkeys 5528 29.500122 229 120 = 29.500122 10.325406 48043574.271035 /autogroup-93 [53199.711069] QProcessManager 5665 271037.193802 10 120 2= 71037.193802 0.190364 25222691.105722 /autogroup-95 [53199.711075] Akonadi::Server 5712 224.484747 8 120 = 224.484747 0.728282 0.865059 /autogroup-95 [53199.711079] Akonadi::Server 5753 527790.410191 69 120 5= 27790.410191 1.323473 50452022.961752 /autogroup-95 [53199.711084] Akonadi::Server 5764 560529.048242 290772 120 5= 60529.048242 4956.576636 53147001.360697 /autogroup-95 [53199.711089] Akonadi::Server 5765 527790.399005 506 120 5= 27790.399005 9.975292 50452317.760459 /autogroup-95 [53199.711094] Akonadi::Server 5774 527790.392393 369 120 5= 27790.392393 5.765615 50451958.727513 /autogroup-95 [53199.711100] mysqld 5680 560525.365743 106212 120 5= 60525.365743 693.753427 53155936.711682 /autogroup-95 [53199.711105] mysqld 5685 560525.466024 106635 120 5= 60525.466024 750.379744 53156154.698910 /autogroup-95 [53199.711110] mysqld 5697 160.579024 1 120 = 160.579024 0.014238 0.000000 /autogroup-95 [53199.711116] mysqld 5699 560524.970550 10625 120 5= 60524.970550 82.127930 53155016.453329 /autogroup-95 [53199.711120] mysqld 5701 160.582015 2 120 = 160.582015 0.148917 2.793613 /autogroup-95 [53199.711125] mysqld 5703 527790.381020 34 120 5= 27790.381020 1.045112 50452031.203798 /autogroup-95 [53199.711130] mysqld 5716 527790.393348 23 120 5= 27790.393348 0.672041 50451973.185445 /autogroup-95 [53199.711134] mysqld 5721 560524.596701 2139 120 5= 60524.596701 182.711381 53121253.849555 /autogroup-95 [53199.711140] mysqld 5780 527790.392308 35 120 5= 27790.392308 1.143019 50451977.425050 /autogroup-95 [53199.711144] mysqld 5787 527790.390399 250 120 5= 27790.390399 4.193105 50451981.640565 /autogroup-95 [53199.711149] mysqld 5800 527790.423988 346 120 5= 27790.423988 24.590073 50451966.239303 /autogroup-95 [53199.711154] QProcessManager 5729 271037.193412 13 120 2= 71037.193412 9.809300 25222057.113966 /autogroup-95 [53199.711159] akonadi_agent_l 5720 560527.147796 20493 120 5= 60527.147796 1050.246933 53116312.877529 /autogroup-95 [53199.711164] QProcessManager 5726 271037.193488 8 120 2= 71037.193488 0.104369 25222071.278685 /autogroup-95 [53199.711169] akonadi_agent_l 5722 560528.523515 20599 120 5= 60528.523515 1054.235715 53115977.836279 /autogroup-95 [53199.711174] QProcessManager 5731 271037.193091 9 120 2= 71037.193091 0.088269 25222063.546177 /autogroup-95 [53199.711178] QProcessManager 5745 271037.192816 8 120 2= 71037.192816 0.102386 25221989.880561 /autogroup-95 [53199.711183] akonadi_agent_l 5740 560526.207569 20142 120 5= 60526.207569 1063.620320 53114972.468186 /autogroup-95 [53199.711189] akonadi_pop3_re 5752 560525.249780 21417 120 5= 60525.249780 1077.269105 53115650.503990 /autogroup-95 [53199.711194] akonadi_pop3_re 5757 560525.253187 21408 120 5= 60525.253187 1089.114994 53116383.337671 /autogroup-95 [53199.711198] akonadi_agent_l 5758 560529.050435 19991 120 5= 60529.050435 1056.363760 53115496.735118 /autogroup-95 [53199.711203] NetworkChangeNo 5866 1129847.383323 468 120 11= 29847.383323 10.334554 45379318.077964 /autogroup-89 [53199.711208] AudioThread 5872 1182305.805501 52946 120 11= 82305.805501 18354.478250 47925508.877176 /autogroup-89 [53199.711213] Chrome_DBThread 5878 1291052.719814 35346 120 12= 91052.719814 1168.506940 53092817.724611 /autogroup-89 [53199.711218] Chrome_CacheThr 5882 1291778.961542 335469 120 12= 91778.961542 12181.568224 53120905.123233 /autogroup-89 [53199.711223] Proxy resolver 5889 8713.643402 7 120 = 8713.643402 0.047441 0.000000 /autogroup-89 [53199.711228] Proxy resolver 5896 8744.523951 1 120 = 8744.523951 0.025146 0.000000 /autogroup-89 [53199.711233] BrowserBlocking 5898 1291942.980849 72908 120 12= 91942.980849 15579.753461 53130747.056400 /autogroup-89 [53199.711239] gdbus 5971 1216837.339078 78 120 12= 16837.339078 5.051738 49627071.145226 /autogroup-89 [53199.711244] CachePoolWorker 10911 1290875.640710 20210 120 12= 90875.640710 273.139699 48545072.397752 /autogroup-89 [53199.711248] CachePoolWorker 13093 1290873.273526 19014 120 12= 90873.273526 257.380915 44668833.906970 /autogroup-89 [53199.711253] chrome-sandbox 5856 642876.447122 9 120 6= 42876.447122 1.224312 25213768.328824 /autogroup-89 [53199.711258] nacl_helper 5859 642876.446949 13 120 6= 42876.446949 4.416183 25213765.996617 /autogroup-89 [53199.711263] gdbus 5918 642876.449714 11 120 6= 42876.449714 0.438212 25212161.681177 /autogroup-89 [53199.711268] OptimizingCompi 6020 10778.730814 3 120 = 10778.730814 0.351262 166.282809 /autogroup-89 [53199.711273] v8:SweeperThrea 6022 12832.157601 8 120 = 12832.157601 0.148938 38025.558251 /autogroup-89 [53199.711277] Compositor 6024 10729.121729 10 120 = 10729.121729 0.110000 67.665476 /autogroup-89 [53199.711283] HTMLParserThrea 6043 10788.460544 14 120 = 10788.460544 0.285511 42.477205 /autogroup-89 [53199.711287] OptimizingCompi 6044 719748.168210 6 120 7= 19748.168210 0.552452 28331551.424331 /autogroup-89 [53199.711292] v8:SweeperThrea 6045 12832.146233 8 120 = 12832.146233 0.173143 37965.034881 /autogroup-89 [53199.711298] v8:SweeperThrea 6076 1288694.032731 1024 120 12= 88694.032731 90.739408 52880486.999175 /autogroup-89 [53199.711303] chrome 6420 1291934.006961 73209 120 12= 91934.006961 8299.640433 52985556.345627 /autogroup-89 [53199.711308] v8:SweeperThrea 6423 1281790.834775 317 120 12= 81790.834775 6.312366 52425616.134751 /autogroup-89 [53199.711313] Chrome_ChildIOT 6071 1291434.312135 3779 120 12= 91434.312135 99.156016 53084388.127532 /autogroup-89 [53199.711318] OptimizingCompi 6084 1184101.720118 5 120 11= 84101.720118 0.546778 47949695.598559 /autogroup-89 [53199.711322] v8:SweeperThrea 6087 12832.136753 8 120 = 12832.136753 0.057651 37965.179672 /autogroup-89 [53199.711328] HTMLParserThrea 6093 11015.895021 25 120 = 11015.895021 0.218355 43.136094 /autogroup-89 [53199.711332] chrome 6074 1291926.035189 25418 120 12= 91926.035189 1754.886563 53122030.234092 /autogroup-89 [53199.711337] OptimizingCompi 6104 1150016.512827 28 120 11= 50016.512827 3.713685 46608347.331737 /autogroup-89 [53199.711342] Compositor 6108 11176.042090 11 120 = 11176.042090 0.105614 22.191971 /autogroup-89 [53199.711347] OptimizingCompi 6096 1204956.102506 164 120 12= 04956.102506 76.237357 48858750.022947 /autogroup-89 [53199.711352] v8:SweeperThrea 6098 1283536.874041 120 120 12= 83536.874041 3.359970 52655808.476482 /autogroup-89 [53199.711356] HTMLParserThrea 6113 11234.064822 5 120 = 11234.064822 0.349145 77.790344 /autogroup-89 [53199.711361] chrome 6095 1291880.862024 216476 120 12= 91880.862024 344151.987378 52764933.074614 /autogroup-89 [53199.711366] v8:SweeperThrea 6131 1289398.550929 1140 120 12= 89398.550929 434.074163 52957145.597246 /autogroup-89 [53199.711371] HTMLParserThrea 6154 11744.395842 20 120 = 11744.395842 0.359794 1345.268880 /autogroup-89 [53199.711376] Chrome_ChildIOT 6109 1291611.869850 27289 120 12= 91611.869850 457.510889 53094210.987299 /autogroup-89 [53199.711382] chrome 6115 1291926.020012 20446 120 12= 91926.020012 886.208688 53122608.813314 /autogroup-89 [53199.711386] OptimizingCompi 6123 705627.246819 13 120 7= 05627.246819 1.479900 27378187.679696 /autogroup-89 [53199.711391] v8:SweeperThrea 6126 967161.028433 15 120 9= 67161.028433 0.243710 37406699.192086 /autogroup-89 [53199.711396] HTMLParserThrea 6141 11339.982947 40 120 = 11339.982947 0.244259 84.408870 /autogroup-89 [53199.711401] OptimizingCompi 6147 1052026.127324 16 120 10= 52026.127324 3.538396 40396439.474694 /autogroup-89 [53199.711406] v8:SweeperThrea 6149 1006348.836441 22 120 10= 06348.836441 0.474876 38819469.847218 /autogroup-89 [53199.711410] Compositor 6151 11364.934700 5 120 = 11364.934700 0.142931 109.378650 /autogroup-89 [53199.711416] chrome 6138 1291927.301418 153594 120 12= 91927.301418 109836.738598 53010914.480841 /autogroup-89 [53199.711421] v8:SweeperThrea 6161 1288716.916472 1148 120 12= 88716.916472 297.778525 52888136.884152 /autogroup-89 [53199.711426] Compositor 6171 153971.541781 269 120 1= 53971.541781 21.048256 4127733.117941 /autogroup-89 [53199.711446] Chrome_ChildIOT 6146 1291778.951335 163395 120 12= 91778.951335 2453.805885 53112957.811850 /autogroup-89 [53199.711470] OptimizingCompi 6166 1291054.191899 4026 120 12= 91054.191899 1499.537206 53072355.776524 /autogroup-89 [53199.711494] v8:SweeperThrea 6167 1291779.209429 1169 120 12= 91779.209429 284.429220 53116604.802483 /autogroup-89 [53199.711504] systemd 6360 16.073105 1102 120 = 16.073105 68.230931 52969458.907839 /autogroup-102 [53199.711510] kworker/u17:2 26177 1508306.973331 188 100 15= 08306.973331 1.838044 214.005268 / [53199.711515] QCA::KeyStoreTh 26447 1101493.334114 52 120 11= 01493.334114 226.699692 16814518.645270 /autogroup-89 [53199.711520] QProcessManager 26448 874485.472476 8 120 8= 74485.472476 0.179297 8201821.324173 /autogroup-89 [53199.711524] bash 4807 285.881972 178 120 = 285.881972 24.009323 18774755.762007 /autogroup-840 [53199.711530] sudo 14754 956.766023 4 120 = 956.766023 7.387655 0.325891 /autogroup-985 [53199.711535] bash 14755 1021.349710 82 120 = 1021.349710 12.333663 32845.740954 /autogroup-985 [53199.711540] bash 15208 182.236106 301 120 = 182.236106 43.054184 11594581.009395 /autogroup-1029 [53199.711545] dhcpcd 16130 3.539427 935 120 = 3.539427 18.154707 10977633.826220 /autogroup-1048 [53199.711550] bash 16202 321.787562 265 120 = 321.787562 43.887902 10799864.402410 /autogroup-1051 [53199.711555] v8:SweeperThrea 17998 1291700.211953 395 120 12= 91700.211953 66.503596 6871427.315910 /autogroup-89 [53199.711560] Compositor 18000 1290456.515842 2321 120 12= 90456.515842 215.323974 6813218.781463 /autogroup-89 [53199.711565] Chrome_ChildIOT 18304 1291934.002040 11052 120 12= 91934.002040 213.175582 6361766.038836 /autogroup-89 [53199.711569] OptimizingCompi 18307 1283744.946779 253 120 12= 83744.946779 66.306808 5907743.652240 /autogroup-89 [53199.711574] v8:SweeperThrea 18310 1288694.658822 49 120 12= 88694.658822 8.646373 6115419.414042 /autogroup-89 [53199.711579] HTMLParserThrea 18312 1153615.628177 116 120 11= 53615.628177 15.154545 1558.788878 /autogroup-89 [53199.711584] Chrome_ChildIOT 18422 1291933.997698 38323 120 12= 91933.997698 621.848597 6245404.754212 /autogroup-89 [53199.711589] v8:SweeperThrea 18434 1175946.467116 21 120 11= 75946.467116 4.538890 820810.881760 /autogroup-89 [53199.711594] v8:SweeperThrea 18932 1291604.059850 138 120 12= 91604.059850 39.589065 5246302.255642 /autogroup-89 [53199.711599] HTMLParserThrea 18935 1178992.513269 271 120 11= 78992.513269 25.786151 15703.299729 /autogroup-89 [53199.711605] OptimizingCompi 18939 1177529.036072 1 120 11= 77529.036072 0.008435 0.000000 /autogroup-89 [53199.711609] v8:SweeperThrea 18940 1177538.041915 1 120 11= 77538.041915 0.005849 0.000000 /autogroup-89 [53199.711614] v8:SweeperThrea 18941 1177547.047263 1 120 11= 77547.047263 0.005354 0.000000 /autogroup-89 [53199.711618] v8:SweeperThrea 18942 1177556.052910 1 120 11= 77556.052910 0.005653 0.000000 /autogroup-89 [53199.711624] chrome 18959 1214416.079898 3 120 12= 14416.079898 0.283373 1573709.226289 /autogroup-89 [53199.711629] chrome 18962 1291930.128179 5272 120 12= 91930.128179 43.871219 5272595.103756 /autogroup-89 [53199.711633] chrome 18963 1291934.002547 23328 120 12= 91934.002547 262.386865 5272801.769156 /autogroup-89 [53199.711638] OptimizingCompi 18979 1193670.972485 249 120 11= 93670.972485 37.583736 274958.054445 /autogroup-89 [53199.711643] v8:SweeperThrea 18980 1183083.300188 16 120 11= 83083.300188 3.634694 26607.454464 /autogroup-89 [53199.711649] chrome 19302 1291934.044654 8612 120 12= 91934.044654 3647.525151 4730650.872509 /autogroup-89 [53199.711654] Chrome_ChildIOT 19303 1291934.031369 11173 120 12= 91934.031369 191.147853 4734284.087259 /autogroup-89 [53199.711659] v8:SweeperThrea 19308 1198621.590492 15 120 11= 98621.590492 3.510122 99856.197136 /autogroup-89 [53199.711664] Chrome_ChildIOT 19521 1291934.010198 40916 120 12= 91934.010198 607.317573 4284214.596840 /autogroup-89 [53199.711669] v8:SweeperThrea 19526 1291581.833770 122 120 12= 91581.833770 41.880393 4250596.825842 /autogroup-89 [53199.711674] chrome 19894 1291942.475506 25918 120 12= 91942.475506 21706.287738 3688931.661818 /autogroup-89 [53199.711678] Chrome_ChildIOT 19895 1291934.156129 29979 120 12= 91934.156129 497.155880 3709005.249676 /autogroup-89 [53199.711683] v8:SweeperThrea 19902 1291553.712999 115 120 12= 91553.712999 38.926320 3672221.525927 /autogroup-89 [53199.711689] Chrome_ChildIOT 20085 1291934.042569 6695 120 12= 91934.042569 116.104157 3316151.028365 /autogroup-89 [53199.711694] v8:SweeperThrea 20089 1221348.084882 13 120 12= 21348.084882 2.243238 94856.121184 /autogroup-89 [53199.711698] HTMLParserThrea 20093 1219461.543773 88 120 12= 19461.543773 19.106103 2392.225497 /autogroup-89 [53199.711703] chrome 20249 1291934.214048 7728 120 12= 91934.214048 8038.278649 2983104.512314 /autogroup-89 [53199.711707] Chrome_ChildIOT 20250 1291933.995930 13583 120 12= 91933.995930 216.450858 2991088.116708 /autogroup-89 [53199.711713] OptimizingCompi 20253 1230471.554967 750 120 12= 30471.554967 165.426159 385921.335393 /autogroup-89 [53199.711717] v8:SweeperThrea 20255 1229599.405675 25 120 12= 29599.405675 7.584815 267604.851163 /autogroup-89 [53199.711722] Compositor 20257 1235779.073559 4120 120 12= 35779.073559 361.172271 662338.941870 /autogroup-89 [53199.711727] Chrome_ChildIOT 20497 1291934.002406 4359 120 12= 91934.002406 76.064234 2601815.161639 /autogroup-89 [53199.711731] OptimizingCompi 20500 1232348.331227 110 120 12= 32348.331227 22.279794 39033.714057 /autogroup-89 [53199.711737] v8:SweeperThrea 20502 1233479.849656 11 120 12= 33479.849656 1.551144 99991.937378 /autogroup-89 [53199.711741] chrome 20709 1291934.133212 25329 120 12= 91934.133212 5736.349151 2323666.156434 /autogroup-89 [53199.711746] kworker/u16:2 20939 3560509.724044 32711 120 35= 60509.724044 410.508434 1939534.829772 / [53199.711751] kworker/3:3 20956 3560526.333359 32170 120 35= 60526.333359 2474.251300 1908749.908294 / [53199.711756] OptimizingCompi 21631 1283553.955664 265 120 12= 83553.955664 38.185859 377314.161298 /autogroup-89 [53199.711761] v8:SweeperThrea 21633 1277959.986187 30 120 12= 77959.986187 4.086821 105923.281307 /autogroup-89 [53199.711766] Compositor 21635 1279059.169793 3812 120 12= 79059.169793 310.411019 175481.061876 /autogroup-89 [53199.711770] HTMLParserThrea 21636 1276583.085034 95 120 12= 76583.085034 6.143550 69405.482691 /autogroup-89 [53199.711775] OptimizingCompi 21667 1291553.583215 582 120 12= 91553.583215 133.775364 792056.486828 /autogroup-89 [53199.711780] HTMLParserThrea 21674 1290873.284180 184 120 12= 90873.284180 33.365363 774350.194117 /autogroup-89 [53199.711785] Chrome_ChildIOT 21702 1291933.999604 13142 120 12= 91933.999604 212.718854 749220.819391 /autogroup-89 [53199.711790] v8:SweeperThrea 21706 1280504.425233 22 120 12= 80504.425233 2.296321 139615.518544 /autogroup-89 [53199.711795] HTMLParserThrea 21710 1279973.681353 87 120 12= 79973.681353 5.412266 117772.755702 /autogroup-89 [53199.711799] kworker/3:2 21790 3537253.300284 4284 120 35= 37253.300284 780.652365 302455.385909 / [53199.711805] kworker/3:1 22032 3559962.613114 9062 120 35= 59962.613114 850.061136 319190.569185 / [53199.711809] R bash 22259 437.289718 112 120 = 437.289718 25.190186 64688.739409 /autogroup-1051 [53214.897738] INFO: task mount:21498 blocked for more than 120 seconds. [53214.897743] Tainted: G W E 3.16.0-rc4-dirty #675 [53214.897744] "echo 0 > /proc/sys/kernel/hung_task_timeout_secs" disables = this message. [53214.897746] mount D ffff88042ea92700 0 21498 21466 0x0000= 0000 [53214.897751] ffff88034a2839c8 0000000000000082 ffff88034a283fd8 ffff8803= 705130a0 [53214.897754] 0000000000012700 ffffffffa01e2a5a ffff88034a283948 ffffffff= a01d8192 [53214.897757] ffff88034a2839d8 000000014a283958 ffff88034a2839d8 ffff8801= 2a2c4c80 [53214.897760] Call Trace: [53214.897804] [] ? xfs_bmbt_get_all+0x13/0x15 [xfs] [53214.897824] [] ? xfs_bmap_search_multi_extents+0x85/0= xdc [xfs] [53214.897842] [] ? xfs_bmap_search_extents+0x57/0xba [x= fs] [53214.897858] [] ? xfs_buf_read_map+0x24/0x100 [xfs] [53214.897883] [] ? xfs_trans_read_buf_map+0x4f/0x5a2 [x= fs] [53214.897902] [] ? xfs_bmapi_read+0x163/0x2ba [xfs] [53214.897906] [] schedule+0x69/0x6b [53214.897909] [] schedule_timeout+0x3a/0x1e8 [53214.897932] [] ? xfs_perag_get+0x68/0xcc [xfs] [53214.897949] [] ? xfs_inode_set_reclaim_tag+0x31/0x14f= [xfs] [53214.897952] [] wait_for_common+0x10c/0x14c [53214.897955] [] ? wake_up_process+0x32/0x32 [53214.897958] [] wait_for_completion+0x18/0x1a [53214.897981] [] xfs_qm_flush_one+0x42/0x8a [xfs] [53214.898004] [] xfs_qm_dquot_walk.isra.6+0xea/0x145 [x= fs] [53214.898025] [] ? xfs_qm_shrink_scan+0xc6/0xc6 [xfs] [53214.898047] [] xfs_qm_quotacheck+0x18a/0x2d9 [xfs] [53214.898068] [] xfs_qm_mount_quotas+0xe1/0x1c0 [xfs] [53214.898086] [] xfs_mountfs+0x644/0x6e0 [xfs] [53214.898104] [] xfs_fs_fill_super+0x276/0x31a [xfs] [53214.898107] [] mount_bdev+0x14d/0x1b5 [53214.898125] [] ? xfs_parseargs+0x997/0x997 [xfs] [53214.898128] [] ? __kmalloc_track_caller+0x44/0x1d4 [53214.898146] [] xfs_fs_mount+0x10/0x12 [xfs] [53214.898148] [] mount_fs+0x62/0x148 [53214.898154] [] vfs_kern_mount+0x5f/0xf8 [53214.898157] [] do_mount+0x7b5/0x8ac [53214.898160] [] SyS_mount+0x80/0xb9 [53214.898163] [] system_call_fastpath+0x16/0x1b =2D-=20 Arkadiusz Mi=C5=9Bkiewicz, arekm / maven.pl From BATV+abfef9aaee7a4c4812ac+3971+infradead.org+hch@bombadil.srs.infradead.org Tue Jul 8 09:24:33 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: xfs@oss.sgi.com Delivered-To: xfs@oss.sgi.com Received: from relay.sgi.com (relay1.corp.sgi.com [137.38.102.111]) by oss.sgi.com (Postfix) with ESMTP id A68917F47 for ; Tue, 8 Jul 2014 09:24:33 -0500 (CDT) Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by relay1.corp.sgi.com (Postfix) with ESMTP id 86A368F808F for ; Tue, 8 Jul 2014 07:24:30 -0700 (PDT) X-ASG-Debug-ID: 1404829465-04cbb0653533fec0001-NocioJ Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.9]) by cuda.sgi.com with ESMTP id IbWIOuVBULt4Fw2i (version=TLSv1 cipher=AES256-SHA bits=256 verify=NO) for ; Tue, 08 Jul 2014 07:24:26 -0700 (PDT) X-Barracuda-Envelope-From: BATV+abfef9aaee7a4c4812ac+3971+infradead.org+hch@bombadil.srs.infradead.org X-Barracuda-Apparent-Source-IP: 198.137.202.9 Received: from hch by bombadil.infradead.org with local (Exim 4.80.1 #2 (Red Hat Linux)) id 1X4WJl-0005aT-6M; Tue, 08 Jul 2014 14:24:25 +0000 Date: Tue, 8 Jul 2014 07:24:25 -0700 From: Christoph Hellwig To: Dave Chinner Cc: xfs@oss.sgi.com Subject: Re: [ANNOUCE] xfsprogs: master branch updated to 871fbfd Message-ID: <20140708142425.GA19979@infradead.org> X-ASG-Orig-Subj: Re: [ANNOUCE] xfsprogs: master branch updated to 871fbfd References: <20140708014039.GV9508@dastard> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20140708014039.GV9508@dastard> User-Agent: Mutt/1.5.23 (2014-03-12) X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: bombadil.infradead.org[198.137.202.9] X-Barracuda-Start-Time: 1404829466 X-Barracuda-Encrypted: AES256-SHA X-Barracuda-URL: http://192.48.176.25:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 X-Barracuda-Spam-Score: 0.00 X-Barracuda-Spam-Status: No, SCORE=0.00 using per-user scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.7 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.7340 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- > [6af7c1e] libxfs: reused invalidated buffers leak state and data The committed version still clears b_error outside of b_lock.. From lczerner@redhat.com Tue Jul 8 09:34:54 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: xfs@oss.sgi.com Delivered-To: xfs@oss.sgi.com Received: from relay.sgi.com (relay1.corp.sgi.com [137.38.102.111]) by oss.sgi.com (Postfix) with ESMTP id 26AD57F47 for ; Tue, 8 Jul 2014 09:34:54 -0500 (CDT) Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by relay1.corp.sgi.com (Postfix) with ESMTP id 1223A8F8087 for ; Tue, 8 Jul 2014 07:34:53 -0700 (PDT) X-ASG-Debug-ID: 1404830091-04cb6c76d150ab40001-NocioJ Received: from mx1.redhat.com (mx1.redhat.com [209.132.183.28]) by cuda.sgi.com with ESMTP id D7HmDhDY29FrQH7x (version=TLSv1 cipher=AES256-SHA bits=256 verify=NO) for ; Tue, 08 Jul 2014 07:34:52 -0700 (PDT) X-Barracuda-Envelope-From: lczerner@redhat.com X-Barracuda-Apparent-Source-IP: 209.132.183.28 X-ASG-Whitelist: Client Received: from int-mx13.intmail.prod.int.phx2.redhat.com (int-mx13.intmail.prod.int.phx2.redhat.com [10.5.11.26]) by mx1.redhat.com (8.14.4/8.14.4) with ESMTP id s68E2XjM028066 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 8 Jul 2014 10:02:34 -0400 Received: from dhcp-1-119.brq.redhat.com (dhcp-1-119.brq.redhat.com [10.34.1.119]) by int-mx13.intmail.prod.int.phx2.redhat.com (8.14.4/8.14.4) with ESMTP id s68E2SeN008770 (version=TLSv1/SSLv3 cipher=AES256-SHA bits=256 verify=NO); Tue, 8 Jul 2014 10:02:30 -0400 Date: Tue, 8 Jul 2014 16:02:28 +0200 (CEST) From: =?ISO-8859-15?Q?Luk=E1=A8_Czerner?= X-X-Sender: lczerner@localhost.localdomain To: Namjae Jeon cc: Dave Chinner , "Theodore Ts'o" , linux-ext4 , linux-fsdevel@vger.kernel.org, linux-kernel@vger.kernel.org, Brian Foster , Christoph Hellwig , Ashish Sangwan , xfs@oss.sgi.com Subject: Re: [PATCH 3/3] ext4: Add support IOC_MOV_DATA ioctl In-Reply-To: <004001cf9aa4$2670e280$7352a780$@samsung.com> X-ASG-Orig-Subj: Re: [PATCH 3/3] ext4: Add support IOC_MOV_DATA ioctl Message-ID: References: <004001cf9aa4$2670e280$7352a780$@samsung.com> User-Agent: Alpine 2.00 (LFD 1167 2008-08-23) MIME-Version: 1.0 Content-Type: MULTIPART/MIXED; BOUNDARY="8323328-1224561518-1404828153=:2180" X-Scanned-By: MIMEDefang 2.68 on 10.5.11.26 X-Barracuda-Connect: mx1.redhat.com[209.132.183.28] X-Barracuda-Start-Time: 1404830092 X-Barracuda-Encrypted: AES256-SHA X-Barracuda-URL: http://192.48.176.15:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 This message is in MIME format. The first part should be readable text, while the remaining parts are likely unreadable without MIME-aware tools. --8323328-1224561518-1404828153=:2180 Content-Type: TEXT/PLAIN; charset=iso-8859-2 Content-Transfer-Encoding: 8BIT On Tue, 8 Jul 2014, Namjae Jeon wrote: > Date: Tue, 08 Jul 2014 21:00:02 +0900 > From: Namjae Jeon > To: Dave Chinner , Theodore Ts'o > Cc: linux-ext4 , linux-fsdevel@vger.kernel.org, > linux-kernel@vger.kernel.org, Luká¹ Czerner , > Brian Foster , Christoph Hellwig , > Ashish Sangwan , xfs@oss.sgi.com > Subject: [PATCH 3/3] ext4: Add support IOC_MOV_DATA ioctl > > This patch implements fs ioctl's IOC_MOV_DATA for Ext4. Hmm isn't this basically what ext4_move_extents() does ? eg. EXT4_IOC_MOVE_EXT ? I guess that the intention here is to do the move, without actually moving the data right ? But nevertheless maybe some code can be shared with ext4_move_extents() ? -Lukas > > The semantics of this ioctl are: > 1) Like collapse range, offsets and length should be file system block size > aligned. > 2) In the receiver file, atleast length size hole should be present at > receiver_offset > 3) It does not change file size of any of donor or receiver file. > 4) It leaves a hole at the place from where blocks are moved out in donor file. > 5) Both (donor_offset + length) and (receiver_offset + length) should be within > size of donor file and receiver file respectively. > Only unwritten extents resides beyond file size and it does not make sense > to transfer unwritten extents, leave apart the security issues it may raise. > 6) If the range to be transfered from donor file contain any holes, they are > replicated as it is in receiver file. It mean holes are preserved and > the length of hole will be added to moved_len signifying that the hole range > is succesfully transfered. > > Signed-off-by: Namjae Jeon > Signed-off-by: Ashish Sangwan > --- > fs/ext4/ext4.h | 2 + > fs/ext4/extents.c | 375 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ > fs/ext4/file.c | 1 + > 3 files changed, 378 insertions(+) > > diff --git a/fs/ext4/ext4.h b/fs/ext4/ext4.h > index 6386c5f..26478eb 100644 > --- a/fs/ext4/ext4.h > +++ b/fs/ext4/ext4.h > @@ -2725,6 +2725,8 @@ extern int ext4_fiemap(struct inode *inode, struct fiemap_extent_info *fieinfo, > extern int ext4_ext_precache(struct inode *inode); > extern int ext4_collapse_range(struct inode *inode, loff_t offset, loff_t len); > extern int ext4_insert_range(struct file *file, loff_t offset, loff_t len); > +extern int ext4_mov_data(struct inode *, struct inode *, loff_t, loff_t, loff_t, > + loff_t *); > > /* move_extent.c */ > extern void ext4_double_down_write_data_sem(struct inode *first, > diff --git a/fs/ext4/extents.c b/fs/ext4/extents.c > index 0c2432e..511db03 100644 > --- a/fs/ext4/extents.c > +++ b/fs/ext4/extents.c > @@ -5811,3 +5811,378 @@ out_mutex: > mutex_unlock(&inode->i_mutex); > return ret; > } > + > +/* > + * If offset_lblk does not lie on the extent start boundary, split extent > + */ > +int ext4_find_and_split_extent_at(struct inode *inode, ext4_lblk_t offset_lblk) > +{ > + struct ext4_ext_path *path; > + handle_t *handle; > + int credits, err = 0, split_flag, ex_len; > + struct ext4_extent *ex; > + int depth = ext_depth(inode); > + ext4_lblk_t ex_start; > + > + path = ext4_ext_find_extent(inode, offset_lblk, NULL, 0); > + if (IS_ERR(path)) > + return PTR_ERR(path); > + > + ex = path[depth].p_ext; > + if (!ex) > + goto free_path; > + ex_start = le32_to_cpu(ex->ee_block); > + ex_len = ext4_ext_get_actual_len(ex); > + > + if (offset_lblk > ex_start && offset_lblk < (ex_start + ex_len)) { > + credits = ext4_writepage_trans_blocks(inode); > + handle = ext4_journal_start(inode, EXT4_HT_TRUNCATE, credits); > + if (IS_ERR(handle)) { > + err = PTR_ERR(handle); > + goto free_path; > + } > + if (ext4_ext_is_unwritten(ex)) > + split_flag = EXT4_EXT_MARK_UNWRIT1 | > + EXT4_EXT_MARK_UNWRIT2; > + else > + split_flag = 0; > + > + err = ext4_split_extent_at(handle, inode, path, offset_lblk, > + split_flag, EXT4_EX_NOCACHE | > + EXT4_GET_BLOCKS_PRE_IO); > + ext4_journal_stop(handle); > + } > + > +free_path: > + ext4_ext_drop_refs(path); > + kfree(path); > + return err; > +} > + > +/* > + * Compute the size of hole in terms of filesystem blocks present at offset_lblk > + * until the next extent is found OR till we reach the last block within isize. > + * Store the computed value in hole_blkcnt. > + * offset_lblk should be within isize of inode. > + */ > +int ext4_compute_hole_size(struct inode *inode, ext4_lblk_t offset_lblk, > + ext4_lblk_t *hole_blkcnt) > +{ > + struct ext4_ext_path *path; > + struct ext4_extent *ex; > + ext4_lblk_t ex_start, isize_lblk; > + int ret = 0, depth, ex_len; > + > + isize_lblk = (inode->i_size + EXT4_BLOCK_SIZE(inode->i_sb) - 1) >> > + EXT4_BLOCK_SIZE_BITS(inode->i_sb); > + > + if (offset_lblk > isize_lblk) > + return -EINVAL; > + > + *hole_blkcnt = 0; > + path = ext4_ext_find_extent(inode, offset_lblk, NULL, 0); > + if (IS_ERR(path)) > + return PTR_ERR(path); > + > + depth = ext_depth(inode); > + ex = path[depth].p_ext; > + if (!ex) { > + /* No blocks allocated in this file */ > + *hole_blkcnt = isize_lblk - offset_lblk; > + goto out; > + } > + ex_start = le32_to_cpu(ex->ee_block); > + ex_len = ext4_ext_get_actual_len(ex); > + > + /* if offset_lblk lies within extent? */ > + if (offset_lblk >= ex_start && offset_lblk < (ex_start + ex_len)) > + goto out; > + > + if (ex_start < offset_lblk) { > + ret = mext_next_extent(inode, path, &ex); > + if (!ret) { > + ex_start = le32_to_cpu(ex->ee_block); > + } else { > + if (ret == 1) { > + *hole_blkcnt = isize_lblk - offset_lblk; > + ret = 0; > + } > + goto out; > + } > + } > + *hole_blkcnt = (ex_start < isize_lblk) ? (ex_start - offset_lblk) : > + (isize_lblk - offset_lblk); > +out: > + ext4_ext_drop_refs(path); > + kfree(path); > + > + return ret; > +} > + > +/* > + * Remove a complete extent from in memory and on-disk extent tree > + * without freeing any data blocks covered by the extent. Caller must call > + * ext4_mark_inode_dirty() to sync the changes to disk. > + */ > +int ext4_ext_rm_extent(handle_t *handle, struct inode *inode, > + struct ext4_ext_path *path, struct ext4_extent *ex) > +{ > + struct ext4_extent_header *eh; > + int depth = ext_depth(inode); > + int credits, err, correct_index = 0; > + int ex_ee_len = ext4_ext_get_actual_len(ex); > + > + if (!path[depth].p_hdr) > + path[depth].p_hdr = ext_block_hdr(path[depth].p_bh); > + eh = path[depth].p_hdr; > + > + credits = 7 + 2*(ex_ee_len/EXT4_BLOCKS_PER_GROUP(inode->i_sb)); > + if (ex == EXT_FIRST_EXTENT(eh)) { > + correct_index = 1; > + credits += (ext_depth(inode)) + 1; > + } > + credits += EXT4_MAXQUOTAS_TRANS_BLOCKS(inode->i_sb); > + err = ext4_ext_truncate_extend_restart(handle, inode, credits); > + if (err) > + return err; > + > + err = ext4_ext_get_access(handle, inode, path + depth); > + if (err) > + return err; > + > + ext4_ext_store_pblock(ex, 0); > + memmove(ex, ex+1, > + (EXT_LAST_EXTENT(eh) - ex) * sizeof(struct ext4_extent)); > + memset(EXT_LAST_EXTENT(eh), 0, sizeof(struct ext4_extent)); > + le16_add_cpu(&eh->eh_entries, -1); > + > + err = ext4_ext_dirty(handle, inode, path + depth); > + if (err) > + return err; > + > + if (correct_index && eh->eh_entries) > + err = ext4_ext_correct_indexes(handle, inode, path); > + > + if (err == 0 && eh->eh_entries == 0 && path[depth].p_bh != NULL) > + err = ext4_ext_rm_idx(handle, inode, path, depth); > + > + return err; > +} > + > +/* > + * Move len_lblk amount of blocks from donor inode to receiver inode. > + * Blocks are to be moved from doffset_lblk and moved to roffset_lblk. > + * Caller of this function must make sure there is atleast len_lblk size > + * hole at roffset_lblk. Also doffset_lblk and doffset_lblk + len_lblk > + * should fall on extent boundary. > + */ > +int ext4_ext_mov_data(struct inode *donor, struct inode *receiver, > + ext4_lblk_t doffset_lblk, ext4_lblk_t roffset_lblk, > + ext4_lblk_t len_lblk, loff_t *bytes_moved) > +{ > + int error = 0, depth = ext_depth(donor); > + struct ext4_ext_path *path; > + struct ext4_extent *ex; > + loff_t blocks_moved = 0; > + handle_t *handle; > + int credits = ext4_writepage_trans_blocks(donor) + > + ext4_writepage_trans_blocks(receiver); > + > + while (blocks_moved < len_lblk && !error) { > + struct ext4_ext_path *rpath = NULL; > + ext4_lblk_t ex_start; > + int ex_len; > + > + path = ext4_ext_find_extent(donor, doffset_lblk, NULL, 0); > + if (IS_ERR(path)) { > + error = PTR_ERR(path); > + break; > + } > + ex = path[depth].p_ext; > + /* > + * No allocated blocks? This could only happen during > + * 1st iteration. Otherwise it is en error. > + */ > + if (!ex) { > + if (blocks_moved) > + error = -EIO; > + else > + blocks_moved = len_lblk; > + goto out; > + } > + ex_start = le32_to_cpu(ex->ee_block); > + ex_len = ext4_ext_get_actual_len(ex); > + > + if (doffset_lblk != ex_start) { > + /* Hole within range, move to the next extent */ > + if (ex_start < doffset_lblk) > + error = mext_next_extent(donor, path, &ex); > + /* Below if will also handle ex_start > doffset_lblk */ > + if (error == 0) { > + ex_start = le32_to_cpu(ex->ee_block); > + blocks_moved += ex_start - doffset_lblk; > + roffset_lblk += ex_start - doffset_lblk; > + doffset_lblk = ex_start; > + } > + if (error == 1) { > + /* doffset_lblk till EOF is hole. Success!! */ > + blocks_moved = len_lblk; > + error = 0; > + } > + goto out; > + } > + > + /* Add this extent to receiver */ > + handle = ext4_journal_start(donor, EXT4_HT_TRUNCATE, credits); > + if (IS_ERR(handle)) { > + error = PTR_ERR(handle); > + goto out; > + } > + > + rpath = ext4_ext_find_extent(receiver, roffset_lblk, NULL, 0); > + if (IS_ERR(rpath)) { > + error = PTR_ERR(rpath); > + ext4_journal_stop(handle); > + goto out; > + } > + ex->ee_block = cpu_to_le32(roffset_lblk); > + error = ext4_ext_insert_extent(handle, receiver, rpath, ex, 0); > + if (error) > + goto hout; > + > + /* Remove this extent from donor */ > + error = ext4_ext_rm_extent(handle, donor, path, ex); > + if (error) > + goto hout; > + > + /* Extent moved successfully */ > + roffset_lblk += ex_len; > + doffset_lblk += ex_len; > + blocks_moved += ex_len; > + > + donor->i_blocks -= (ex_len << (donor->i_blkbits - 9)); > + receiver->i_blocks += (ex_len << (receiver->i_blkbits - 9)); > + donor->i_mtime = donor->i_ctime = ext4_current_time(donor); > + receiver->i_mtime = receiver->i_ctime = > + ext4_current_time(receiver); > + ext4_mark_inode_dirty(handle, donor); > + ext4_mark_inode_dirty(handle, receiver); > +hout: > + ext4_journal_stop(handle); > + ext4_ext_drop_refs(rpath); > + kfree(rpath); > +out: > + ext4_ext_drop_refs(path); > + kfree(path); > + } > + > + /* This can happen when (doffset_lblk + len_lblk) is in a hole */ > + if (blocks_moved > len_lblk) > + blocks_moved = len_lblk; > + > + *bytes_moved = blocks_moved << EXT4_BLOCK_SIZE_BITS(donor->i_sb); > + return error; > +} > + > +int ext4_mov_data(struct inode *donor, struct inode *receiver, loff_t doffset, > + loff_t roffset, loff_t len, loff_t *moved_len) > +{ > + struct super_block *sb = donor->i_sb; > + loff_t d_pg_off, r_pg_off, pg_len; > + ext4_lblk_t doffset_lblk, roffset_lblk, len_lblk, hole_size; > + int error; > + > + if (doffset & (EXT4_BLOCK_SIZE(sb) - 1) || > + roffset & (EXT4_BLOCK_SIZE(sb) - 1) || > + len & (EXT4_BLOCK_SIZE(sb) - 1)) > + return -EINVAL; > + > + if (EXT4_SB(sb)->s_cluster_ratio > 1) > + return -EOPNOTSUPP; > + > + if (!ext4_test_inode_flag(donor, EXT4_INODE_EXTENTS) || > + !ext4_test_inode_flag(receiver, EXT4_INODE_EXTENTS)) > + return -EOPNOTSUPP; > + > + doffset_lblk = doffset >> EXT4_BLOCK_SIZE_BITS(sb); > + roffset_lblk = roffset >> EXT4_BLOCK_SIZE_BITS(sb); > + len_lblk = len >> EXT4_BLOCK_SIZE_BITS(sb); > + > + d_pg_off = round_down(doffset, PAGE_SIZE); > + r_pg_off = round_down(roffset, PAGE_SIZE); > + pg_len = round_up(len, PAGE_SIZE); > + > + if (ext4_should_journal_data(donor)) { > + error = ext4_force_commit(donor->i_sb); > + if (error) > + return error; > + error = ext4_force_commit(receiver->i_sb); > + if (error) > + return error; > + } > + > + error = filemap_write_and_wait_range(donor->i_mapping, > + d_pg_off, d_pg_off + pg_len); > + if (error) > + return error; > + error = filemap_write_and_wait_range(receiver->i_mapping, > + r_pg_off, r_pg_off + pg_len); > + if (error) > + return error; > + > + lock_two_nondirectories(donor, receiver); > + > + /* Check for isize limits for both files */ > + if (doffset + len > donor->i_size || > + roffset + len > receiver->i_size) { > + error = -EINVAL; > + goto out_mutex; > + } > + > + truncate_pagecache_range(donor, d_pg_off, d_pg_off + pg_len - 1); > + truncate_pagecache_range(receiver, r_pg_off, r_pg_off + pg_len - 1); > + > + ext4_inode_block_unlocked_dio(donor); > + inode_dio_wait(donor); > + ext4_inode_block_unlocked_dio(receiver); > + inode_dio_wait(receiver); > + > + ext4_discard_preallocations(donor); > + ext4_discard_preallocations(receiver); > + > + error = ext4_es_remove_extent(donor, doffset_lblk, len_lblk); > + if (error) > + goto out_sem; > + error = ext4_es_remove_extent(receiver, roffset_lblk, len_lblk); > + if (error) > + goto out_sem; > + > + error = ext4_compute_hole_size(receiver, roffset_lblk, &hole_size); > + if (error) > + goto out_sem; > + if (len_lblk > hole_size) { > + error = -EINVAL; > + goto out_sem; > + } > + > + error = ext4_find_and_split_extent_at(donor, doffset_lblk); > + if (error) > + goto out_sem; > + > + error = ext4_find_and_split_extent_at(donor, doffset_lblk + len_lblk); > + if (error) > + goto out_sem; > + > + error = ext4_ext_mov_data(donor, receiver, doffset_lblk, > + roffset_lblk, len_lblk, moved_len); > + > + ext4_discard_preallocations(donor); > + ext4_discard_preallocations(receiver); > +out_sem: > + ext4_inode_resume_unlocked_dio(donor); > + ext4_inode_resume_unlocked_dio(receiver); > + > +out_mutex: > + unlock_two_nondirectories(donor, receiver); > + return error; > +} > diff --git a/fs/ext4/file.c b/fs/ext4/file.c > index 8695f70..d2feaba 100644 > --- a/fs/ext4/file.c > +++ b/fs/ext4/file.c > @@ -614,5 +614,6 @@ const struct inode_operations ext4_file_inode_operations = { > .get_acl = ext4_get_acl, > .set_acl = ext4_set_acl, > .fiemap = ext4_fiemap, > + .mov_data = ext4_mov_data, > }; > > --8323328-1224561518-1404828153=:2180-- From hans.w.kraus@gmx.at Tue Jul 8 09:48:27 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: ** X-Spam-Status: No, score=2.2 required=5.0 tests=FREEMAIL_FROM,HTML_MESSAGE, MIME_HTML_ONLY autolearn=no version=3.3.1 X-Original-To: xfs@oss.sgi.com Delivered-To: xfs@oss.sgi.com Received: from relay.sgi.com (relay2.corp.sgi.com [137.38.102.29]) by oss.sgi.com (Postfix) with ESMTP id DE5727F47 for ; Tue, 8 Jul 2014 09:48:27 -0500 (CDT) Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by relay2.corp.sgi.com (Postfix) with ESMTP id BA28130405F for ; Tue, 8 Jul 2014 07:48:27 -0700 (PDT) X-ASG-Debug-ID: 1404830905-04cb6c76d050b480001-NocioJ Received: from mout.gmx.net (mout.gmx.net [212.227.15.19]) by cuda.sgi.com with ESMTP id k19iHhGjIDM6J59b (version=TLSv1 cipher=AES256-SHA bits=256 verify=NO) for ; Tue, 08 Jul 2014 07:48:26 -0700 (PDT) X-Barracuda-Envelope-From: hans.w.kraus@gmx.at X-Barracuda-Apparent-Source-IP: 212.227.15.19 Received: from [80.120.180.154] by 3capp-gmx-bs08.server.lan (via HTTP); Tue, 8 Jul 2014 16:48:25 +0200 MIME-Version: 1.0 Message-ID: From: "Hans Kraus" To: xfs@oss.sgi.com Subject: Error (failing assert) in xfs_repair Content-Type: text/html; charset=UTF-8 X-ASG-Orig-Subj: Error (failing assert) in xfs_repair Date: Tue, 8 Jul 2014 16:48:25 +0200 Importance: normal Sensitivity: Normal X-Priority: 3 X-Provags-ID: V03:K0:RNjaxZWLnVi4yHkmg6BXot2w0BIiaPpzugGkRRcg7eu 2j/lyT3Vl5lAS+F8WLryPiwvK5MIQEKRin4rQEZ595XCnvtDC2 AcNDX8y/ica0BizzxPviAEnkSDjU6aFXyqj908ahauX3zI8Ynr 8uzM3g9UC8gTcvlhu47eXtw0oiN74vJGvWs9IRgywLXK6ErQol dW5D+GfRbR+rQ8+taQh76XdypzkIlz5baSdbHpF5nn7GP6++/Q 2jqiUx1GaU45M5xwOhs/IMirTd8lLDREd4UKlwo+PUU3QN3Vi+ djWh6Y= X-Barracuda-Connect: mout.gmx.net[212.227.15.19] X-Barracuda-Start-Time: 1404830906 X-Barracuda-Encrypted: AES256-SHA X-Barracuda-URL: http://192.48.176.15:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 X-Barracuda-Spam-Score: 0.00 X-Barracuda-Spam-Status: No, SCORE=0.00 using per-user scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.7 tests=HTML_MESSAGE, MIME_HTML_ONLY X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.7340 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.00 MIME_HTML_ONLY BODY: Message only has text/html MIME parts 0.00 HTML_MESSAGE BODY: HTML included in message
Hi,
I installed xfstools from the git repository on my debian 7 amd64
backup server. I got the following assertion error:
-------------------------------------------------------------------
root@elefant:/home/kraush# xfs_repair -L /dev/vg_stor1/lv_stor1
Phase 1 - find and verify superblock...
         - reporting progress in intervals of 15 minutes
Phase 2 - using internal log
         - zero log...
         - scan filesystem freespace and inode maps...
zeroing unused portion of secondary superblock (AG #20)
Metadata corruption detected at block 0x2b9e8a001/0x200
zeroing unused portion of secondary superblock (AG #16)
bad agbno 4274958142 in agfl, agno 16
freeblk count 1 != flcount 1806214135 in ag 16
bad agbno 131784061 for btbno root, agno 16
bad agbno 1628187110 for btbcnt root, agno 16
agf_freeblks 2414458438, counted 0 in ag 16
agf_longest 1482451932, counted 0 in ag 16
agf_btreeblks 4031360978, counted 0 in ag 16
bad agbno 1207336865 for inobt root, agno 16
agi_count 1835626108, counted 0 in ag 16
agi_freecount 952362526, counted 0 in ag 16
xfs_repair: scan.c:1579: scan_ag: Assertion `agf_dirty ||
agfbuf->b_error != 117' failed.
Aborted
root@elefant:/home/kraush#
-------------------------------------------------------------------
What shall I do to repair the file system (about 16 TB, 88% full,
backuppc storage medium).
Any help appreciated, Hans
 
From david@fromorbit.com Tue Jul 8 16:04:05 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: xfs@oss.sgi.com Delivered-To: xfs@oss.sgi.com Received: from relay.sgi.com (relay3.corp.sgi.com [198.149.34.15]) by oss.sgi.com (Postfix) with ESMTP id 64BB77F3F for ; Tue, 8 Jul 2014 16:04:05 -0500 (CDT) Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by relay3.corp.sgi.com (Postfix) with ESMTP id D42AAAC003 for ; Tue, 8 Jul 2014 14:04:01 -0700 (PDT) X-ASG-Debug-ID: 1404853435-04cb6c76d051b580001-NocioJ Received: from ipmail06.adl6.internode.on.net (ipmail06.adl6.internode.on.net [150.101.137.145]) by cuda.sgi.com with ESMTP id MKzHP3TPLWRQ5OUd for ; Tue, 08 Jul 2014 14:03:55 -0700 (PDT) X-Barracuda-Envelope-From: david@fromorbit.com X-Barracuda-Apparent-Source-IP: 150.101.137.145 X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: AqEJAE5cvFN5LAMnPGdsb2JhbABAGoJHR1KCeIsQnk4BAQEBAQEGkwmBW4VkAYEZFwQBAQEBODWEAwEBBAE6HBoJBQsIAxgJJQ8FJQMHGhOIOgcONsc2FxiFYohdCREBB0kHgy2BFgWadYZchHGMFSsvgQMIFw Received: from ppp121-44-3-39.lns20.syd6.internode.on.net (HELO dastard) ([121.44.3.39]) by ipmail06.adl6.internode.on.net with ESMTP; 09 Jul 2014 06:33:54 +0930 Received: from dave by dastard with local (Exim 4.80) (envelope-from ) id 1X4cYK-0005zZ-U3; Wed, 09 Jul 2014 07:03:52 +1000 Date: Wed, 9 Jul 2014 07:03:52 +1000 From: Dave Chinner To: Hans Kraus Cc: xfs@oss.sgi.com Subject: Re: Error (failing assert) in xfs_repair Message-ID: <20140708210352.GA22339@dastard> X-ASG-Orig-Subj: Re: Error (failing assert) in xfs_repair References: MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.5.21 (2010-09-15) X-Barracuda-Connect: ipmail06.adl6.internode.on.net[150.101.137.145] X-Barracuda-Start-Time: 1404853435 X-Barracuda-URL: http://192.48.176.15:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 X-Barracuda-Spam-Score: 0.10 X-Barracuda-Spam-Status: No, SCORE=0.10 using per-user scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.7 tests=BSF_SC0_SA085 X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.7348 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.10 BSF_SC0_SA085 Custom Rule SA085 On Tue, Jul 08, 2014 at 04:48:25PM +0200, Hans Kraus wrote: >
>
Hi,
Hi, can you please use text-only email, not html email? >
I installed xfstools from the git repository on my debian 7 amd64
> backup server. I got the following assertion error:
> -------------------------------------------------------------------
> root@elefant:/home/kraush# xfs_repair -L /dev/vg_stor1/lv_stor1
What commit did you pull from? Also, a bit more information about your filesystem and storage will help us: http://xfs.org/index.php/XFS_FAQ#Q:_What_information_should_I_include_when_reporting_a_problem.3F > Phase 1 - find and verify superblock...
>          - reporting progress in intervals of 15 minutes
> Phase 2 - using internal log
>          - zero log...
>          - scan filesystem freespace and inode maps...
> zeroing unused portion of secondary superblock (AG #20)
> Metadata corruption detected at block 0x2b9e8a001/0x200
> zeroing unused portion of secondary superblock (AG #16)
> bad agbno 4274958142 in agfl, agno 16
> freeblk count 1 != flcount 1806214135 in ag 16
> bad agbno 131784061 for btbno root, agno 16
> bad agbno 1628187110 for btbcnt root, agno 16
> agf_freeblks 2414458438, counted 0 in ag 16
> agf_longest 1482451932, counted 0 in ag 16
> agf_btreeblks 4031360978, counted 0 in ag 16
> bad agbno 1207336865 for inobt root, agno 16
> agi_count 1835626108, counted 0 in ag 16
> agi_freecount 952362526, counted 0 in ag 16
> xfs_repair: scan.c:1579: scan_ag: Assertion `agf_dirty ||
> agfbuf->b_error != 117' failed.
So AG 16 has garbage in superblock, the AGF and the AGI. How did that happen? What went wrong with the storage that lead you to run xfs_repair? I think I see the problem, but I first need to confirm what assert is firing by matching commits. > root@elefant:/home/kraush#
> -------------------------------------------------------------------
> What shall I do to repair the file system (about 16 TB, 88% full,
> backuppc storage medium).
You'll probably have to wait for a patch to fix the problem. The sooner I can confirm the assert you hit, the sooner I'll be able to get you that patch. Cheers, Dave. -- Dave Chinner david@fromorbit.com From cj022@mail001.com Tue Jul 8 16:48:42 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=HTML_MESSAGE autolearn=ham version=3.3.1 X-Original-To: xfs@oss.sgi.com Delivered-To: xfs@oss.sgi.com Received: from relay.sgi.com (relay3.corp.sgi.com [198.149.34.15]) by oss.sgi.com (Postfix) with ESMTP id 398E27F3F for ; Tue, 8 Jul 2014 16:48:42 -0500 (CDT) Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by relay3.corp.sgi.com (Postfix) with ESMTP id B7191AC003 for ; Tue, 8 Jul 2014 14:48:41 -0700 (PDT) X-ASG-Debug-ID: 1404856115-04cbb06538357220001-NocioJ Received: from mail.mail001.com ([61.176.223.23]) by cuda.sgi.com with ESMTP id TukWU68wNPnF7WCh for ; Tue, 08 Jul 2014 14:48:35 -0700 (PDT) X-Barracuda-Envelope-From: cj022@mail001.com X-Barracuda-Apparent-Source-IP: 61.176.223.23 Received: from cxeqppnxm by mail.mail001.com (MDaemon PRO v10.1.1) with ESMTP id md50011889942.msg for ; Wed, 09 Jul 2014 05:48:26 +0800 X-MDHeloLookup-Result: hardfail smtp.helo=cxeqppnxm (does not match 125.118.200.184) (mail.mail001.com) X-Authenticated-Sender: cj022@mail001.com X-MDRemoteIP: 125.118.200.184 X-Return-Path: cj022@mail001.com X-Envelope-From: cj022@mail001.com X-MDaemon-Deliver-To: xfs@oss.sgi.com Reply-To: Sender: cj022@mail001.com Message-ID: <20140709054806042510@mail001.com> From: "WIPEX NONWOVEN" To: Subject: Re:Disposable Wipes to replace Sontara,Wypall,TORK Wipers Date: Wed, 9 Jul 2014 05:48:01 +0800 X-ASG-Orig-Subj: Re:Disposable Wipes to replace Sontara,Wypall,TORK Wipers MIME-Version: 1.0 Content-Type: multipart/alternative; boundary="----=_NextPart_000_0136_01BFF9EB.118DCA90" X-Priority: 1 X-mailer: Oplfuxfuh 6 X-Barracuda-Connect: UNKNOWN[61.176.223.23] X-Barracuda-Start-Time: 1404856115 X-Barracuda-URL: http://192.48.176.25:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 X-Barracuda-Spam-Score: 0.60 X-Barracuda-Spam-Status: No, SCORE=0.60 using per-user scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.7 tests=BSF_SC5_MJ1963, HTML_MESSAGE, RDNS_NONE X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.7349 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.00 HTML_MESSAGE BODY: HTML included in message 0.10 RDNS_NONE Delivered to trusted network by a host with no rDNS 0.50 BSF_SC5_MJ1963 Custom Rule MJ1963 This is a multi-part message in MIME format. ------=_NextPart_000_0136_01BFF9EB.118DCA90 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 SGkgZnJpZW5kLA0KSG93IGFyZSB5b3UgZG9pbmc/DQpXZSBhcmUgYSBwcm9mZXNzaW9uYWwgZmFj dG9yeSBvZiAgIEluZHVzdHJpYWwgV2lwZXMsRGlzcG9zYWJsZSBXaXBlcyxDbGVhbnJvb20gV2lw ZXMsRm9vZCBTZXJ2aWNlIFdpcGVzIGluIENoaW5hIC5UaGV5IGFyZSB2ZXJ5IHBvcHVsYXIgaW4g eW91ciBtYXJrZXQuRm9yIG1vcmUgaW5mb3JtYXRpb24scGxzIHNlbmQgdXMgeW91ciBuZWVkIHRv IGluZm9Ac3B1bmxhY2Utbm9ud292ZW5zLmNvbSBkaXJlY3RseSxvciBwbHMgYnJvd3NlIG91ciBB bGliYWJhIEdvbGRlbiBTdXBwbGllciB3ZWJzaXRlIGh0dHA6Ly93aXBleC5lbi5hbGliYWJhLmNv bS8NClJlZ2FyZHMsDQpXSVBFWCBTYWxlcyBUZWFtIA== ------=_NextPart_000_0136_01BFF9EB.118DCA90 Content-Type: text/html; charset="utf-8" Content-Transfer-Encoding: base64 PCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMCBUcmFuc2l0aW9uYWwv L0VOIj4NCjxIVE1MPjxIRUFEPg0KPE1FVEEgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PXV0 Zi04IiBodHRwLWVxdWl2PUNvbnRlbnQtVHlwZT4NCjxNRVRBIG5hbWU9R0VORVJBVE9SIGNvbnRl bnQ9Ik1TSFRNTCA5LjAwLjgxMTIuMTY1NTUiPjwvSEVBRD4NCjxCT0RZPkhpIGZyaWVuZCw8QlI+ SG93IGFyZSB5b3UgZG9pbmc/PEJSPldlIGFyZSBhIHByb2Zlc3Npb25hbCBmYWN0b3J5IA0Kb2Ym bmJzcDsmbmJzcDsgPFNUUk9ORz48Rk9OVCBjb2xvcj1yZWQ+SW5kdXN0cmlhbCBXaXBlcyxEaXNw b3NhYmxlIA0KV2lwZXMsQ2xlYW5yb29tIFdpcGVzLEZvb2QgU2VydmljZSBXaXBlczwvRk9OVD4g PC9TVFJPTkc+aW4gQ2hpbmEgLjxGT05UIA0Kc3R5bGU9IkJBQ0tHUk9VTkQtQ09MT1I6IHdoaXRl Ij5UaGV5IGFyZSB2ZXJ5IHBvcHVsYXIgaW4geW91ciBtYXJrZXQuPEZPTlQgDQpjb2xvcj1ibGFj az5Gb3IgbW9yZSBpbmZvcm1hdGlvbiw8L0ZPTlQ+PC9GT05UPnBscyBzZW5kIHVzIHlvdXIgbmVl ZCB0byA8QSANCmhyZWY9Im1haWx0bzppbmZvQHNwdW5sYWNlLW5vbndvdmVucy5jb20iPmluZm9A c3B1bmxhY2Utbm9ud292ZW5zLmNvbTwvQT4gDQpkaXJlY3RseSxvciBwbHMgYnJvd3NlIG91ciA8 Rk9OVCBjb2xvcj1yZWQ+QWxpYmFiYSBHb2xkZW4gU3VwcGxpZXI8L0ZPTlQ+IA0Kd2Vic2l0ZSA8 QSANCmhyZWY9Imh0dHA6Ly93aXBleC5lbi5hbGliYWJhLmNvbS8iPmh0dHA6Ly93aXBleC5lbi5h bGliYWJhLmNvbS88L0E+PEJSPlJlZ2FyZHMsPEJSPldJUEVYIA0KU2FsZXMgVGVhbSA8L0JPRFk+ PC9IVE1MPg0K ------=_NextPart_000_0136_01BFF9EB.118DCA90-- From arekm@maven.pl Tue Jul 8 16:49:15 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=T_DKIM_INVALID autolearn=ham version=3.3.1 X-Original-To: xfs@oss.sgi.com Delivered-To: xfs@oss.sgi.com Received: from relay.sgi.com (relay3.corp.sgi.com [198.149.34.15]) by oss.sgi.com (Postfix) with ESMTP id 49CC07F51 for ; Tue, 8 Jul 2014 16:49:15 -0500 (CDT) Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by relay3.corp.sgi.com (Postfix) with ESMTP id B4D98AC004 for ; Tue, 8 Jul 2014 14:49:14 -0700 (PDT) X-ASG-Debug-ID: 1404856149-04cb6c76d251ce30001-NocioJ Received: from mail-wi0-f180.google.com (mail-wi0-f180.google.com [209.85.212.180]) by cuda.sgi.com with ESMTP id Bqn4M2NFeGWnV98J (version=TLSv1 cipher=RC4-SHA bits=128 verify=NO) for ; Tue, 08 Jul 2014 14:49:10 -0700 (PDT) X-Barracuda-Envelope-From: arekm@maven.pl X-Barracuda-Apparent-Source-IP: 209.85.212.180 Received: by mail-wi0-f180.google.com with SMTP id hi2so1740392wib.1 for ; Tue, 08 Jul 2014 14:49:09 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=maven.pl; s=maven; h=from:to:subject:date:user-agent:references:in-reply-to:mime-version :content-type:content-transfer-encoding:message-id; bh=fh/oCy2X908MrSbL2wzg1xIsaBLmjW9LfxZkrPcez30=; b=tgqeC6JxTg71YYtqdY1MtEuBkDqnX9PnUu6UmJPVmKeSp9LaHQu/qpg5NsdnujRnWe dEHQ/r+xkBUsxuRmiTbqJ0wfX7kX+TUI2afb472Q0IrLYKFstt2SODbQYRXAZhKokb59 /nn3oOpiv8uPyhcon4l2+9h9buSIfESdkSawM= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:from:to:subject:date:user-agent:references :in-reply-to:mime-version:content-type:content-transfer-encoding :message-id; bh=fh/oCy2X908MrSbL2wzg1xIsaBLmjW9LfxZkrPcez30=; b=DGU7lGQ4OIGP+3ZXtlewS+/l92TJKg1T2XUSZ10neZRzDPc2QikuNuDEkIFT+JilpJ x9BEf58ZwaraDXw7rfHgOt0ic4u/l5kvBvgRH1tDytX9ZAjSMdLl6GQTaGbwirJB2YxH 2+8JP/4ZrMOtqJfFqChx4j+rj8hfy1nR5Bcj3ou5c2XXL6lCBHrkon6JWvIZbUczLLe2 a2q/FYmeO3HVmdd6u7V1Jwz9GibGlu3M1clZNGgZTiC6vLXNv1jDlAJGUVo6DhEFjMN8 z2Vgsb28Fem+78cQ1vZdmhp39d89Ce3uGYNn/vvf+8C0htJZk3X46b4RE3PWPObVJeZY EPQA== X-Gm-Message-State: ALoCoQkIUItFu1Gv+aPDyeN3R9+63vRRUFnNcxSbRJx1rW62K/MCVtbsN46jWt43SBV95lDTywfM X-Received: by 10.194.120.129 with SMTP id lc1mr43082442wjb.16.1404856149435; Tue, 08 Jul 2014 14:49:09 -0700 (PDT) Received: from t400.localnet (89-65-199-25.dynamic.chello.pl. [89.65.199.25]) by mx.google.com with ESMTPSA id o2sm11568500wia.16.2014.07.08.14.49.08 for (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Tue, 08 Jul 2014 14:49:08 -0700 (PDT) From: Arkadiusz =?utf-8?q?Mi=C5=9Bkiewicz?= To: xfs@oss.sgi.com Subject: Re: usrquota,prjquota mount success on 3.16rc4 but Failed to initialize disk quotas on 3.10.43 Date: Tue, 8 Jul 2014 23:49:07 +0200 X-ASG-Orig-Subj: Re: usrquota,prjquota mount success on 3.16rc4 but Failed to initialize disk quotas on 3.10.43 User-Agent: KMail/1.13.7 (Linux/3.16.0-rc4-00020-g448bfad-dirty; KDE/4.13.2; x86_64; ; ) References: <201407081041.02020.arekm@maven.pl> <201407081527.24119.arekm@maven.pl> In-Reply-To: <201407081527.24119.arekm@maven.pl> MIME-Version: 1.0 Content-Type: Text/Plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <201407082349.07906.arekm@maven.pl> X-Barracuda-Connect: mail-wi0-f180.google.com[209.85.212.180] X-Barracuda-Start-Time: 1404856150 X-Barracuda-Encrypted: RC4-SHA X-Barracuda-URL: http://192.48.176.15:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 X-Barracuda-Spam-Score: 0.00 X-Barracuda-Spam-Status: No, SCORE=0.00 using per-user scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.7 tests=DKIM_SIGNED, DKIM_VERIFIED X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.7349 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- -0.00 DKIM_VERIFIED Domain Keys Identified Mail: signature passes verification 0.00 DKIM_SIGNED Domain Keys Identified Mail: message has a signature On Tuesday 08 of July 2014, Arkadiusz Mi=C5=9Bkiewicz wrote: > On Tuesday 08 of July 2014, Arkadiusz Mi=C5=9Bkiewicz wrote: > > My broken fs > > http://ixion.pld-linux.org/~arekm/p2/x1/web2-home.metadump.gz > > thanks to "xfsprogs: fixes for 3.2.1" by Dave is now almost in good > > shape. > >=20 > > What I found interesting is that repairing it with current git xfs_repa= ir > > and then mounting (-o usrquota,prjquota) on 3.16.0-rc4 gives me: > >=20 > > [32208.142316] XFS (sdb): Mounting V4 Filesystem > > [32208.205449] XFS (sdb): Ending clean mount > > [32208.258991] XFS (sdb): Quotacheck needed: Please wait. > > [32821.930437] XFS (sdb): Quotacheck: Done. > >=20 > > Then I umount it and mount again (same options as before) but on 3.10.43 > > kernel: > >=20 > > [ 111.325889] XFS (sdb): Mounting Filesystem > > [ 111.419331] XFS (sdb): Failed to initialize disk quotas. > > [ 111.419339] XFS (sdb): Ending clean mount > >=20 > > What did change in later kernels that could have meaning here? (so I > > could try to backport that change). > >=20 > > For testing I mounted again on 3.16 and: > > [33870.472769] XFS (sdb): Mounting V4 Filesystem > > [33870.543539] XFS (sdb): Ending clean mount > > [33870.597791] XFS (sdb): Quotacheck needed: Please wait. > > [34484.332879] XFS (sdb): Quotacheck: Done > >=20 > > and again on 3.10.43: > > [ 1649.215390] XFS (sdb): Mounting Filesystem > > [ 1649.316894] XFS (sdb): Failed to initialize disk quotas. > > [ 1649.316902] XFS (sdb): Ending clean mount >=20 > Fails in xfs_iget at xfs_qm_init_quotainos(): >=20 > if (XFS_IS_OQUOTA_ON(mp) && > mp->m_sb.sb_gquotino !=3D NULLFSINO) { > ASSERT(mp->m_sb.sb_gquotino > 0); > if ((error =3D xfs_iget(mp, NULL, > mp->m_sb.sb_gquotino, 0, 0, &gip))) { > if (uip) > IRELE(uip); > return XFS_ERROR(error); > } > } >=20 > and in xfs_iget: >=20 > /* reject inode numbers outside existing AGs */ > if (!ino || XFS_INO_TO_AGNO(mp, ino) >=3D mp->m_sb.sb_agcount) > return EINVAL; >=20 >=20 > m_sb.sb_gquotino/ino looks to be 0 >=20 > # xfs_db /dev/sdb -c "sb 0" -c "print" |grep quot > uquotino =3D 4077961 > gquotino =3D 0 > pquotino =3D 0 >=20 > and older kernels (testing on 3.10.46 now) seem to be unable to deal with > this. >=20 > Newer kernels survive probably due to this: >=20 > xfs_sb_quota_from_disk(struct xfs_sb *sbp) > { > /* > * older mkfs doesn't initialize quota inodes to NULLFSINO. This > * leads to in-core values having two different values for a quota > * inode to be invalid: 0 and NULLFSINO. Change it to a single > value * NULLFSINO. > * > * Note that this change affect only the in-core values. These > * values are not written back to disk unless any quota informati= on > * is written to the disk. Even in that case, sb_pquotino field is > * not written to disk unless the superblock supports pquotino. > */ > if (sbp->sb_uquotino =3D=3D 0) > sbp->sb_uquotino =3D NULLFSINO; > if (sbp->sb_gquotino =3D=3D 0) > sbp->sb_gquotino =3D NULLFSINO; > if (sbp->sb_pquotino =3D=3D 0) > sbp->sb_pquotino =3D NULLFSINO; >=20 > so sb_gquotino =3D NULLFSINO gets set and it never reaches error conditio= n at > xfs_qm_init_quotainos() Small summary from my observation: =2D mkfs.xfs sets all three [ugp]quotino to 0 (contrary to what comment abo= ve=20 says: "older mkfs doesn't initialize quota inodes to NULLFSINO.". New/fresh= =20 mkfs.xfs also doesn't do that. Were any intermediate versions actually sett= ing=20 NULLFSINO ? =2D freshly created fs; 3.10 kernel; mount image -o usrquota causes: uquoti= no=20 gets NEW inode; gquotino is set to null; pquotino not used (stays at 0) =2D 3.16 behaviour is different; freshly created fs; mount image -o usrquot= a=20 causes: uquotino gets NEW inode; gquotino/pquotino stays at 0 (while on 3.1= 0=20 gquotino was being set to null) =2D 3.10 kernel is not able to handle case when uquotino =3D=3D value, gquo= tino =3D=3D=20 0. For 3.10 this case is impossible / should never happen. 3.10 expects=20 (uquotino =3D=3D value, gquotino =3D=3D null) or (uquotino =3D=3D value, gq= uotino =3D=3D=20 othervalue) or (uqotinfo =3D=3D null, gruotino =3D=3D value) only. =2D this means that fresh fs; mount under 3.16 with -o usrquota. Try to mou= nt=20 the same fs on 3.10 but with -o usrquota,grpquota -> will fail "Failed to=20 initialize disk quotas." =2D 3.16 handles both cases (uquotino =3D=3D val, gquotino =3D=3D 0, too) b= ecause it=20 does translation when reading from disk (the one cited at beginning of this= =20 mail) Probably solution is to make xfs_repair make if [ugp]quotino =3D=3D 0 set = these=20 to null. IMO old and new kernels should handle null properly (regardless of= =20 quota feature bit state). mkfs.xfs should also get updated to set these to= =20 null initially.=20 Last question/issue is: should mount fail in case of "Failed to initialize= =20 disk quotas." problem? Right now user requests quotas to be enabled but get= s=20 fs without quota (and the only failure indication is one line in dmesg). Citation: 23:24 < dchinner__> arekm:it's just a nasty can of worms =2D-=20 Arkadiusz Mi=C5=9Bkiewicz, arekm / maven.pl From hans.w.kraus@gmx.at Tue Jul 8 16:50:35 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=FREEMAIL_FROM autolearn=ham version=3.3.1 X-Original-To: xfs@oss.sgi.com Delivered-To: xfs@oss.sgi.com Received: from relay.sgi.com (relay3.corp.sgi.com [198.149.34.15]) by oss.sgi.com (Postfix) with ESMTP id 8311B7F4E for ; Tue, 8 Jul 2014 16:50:35 -0500 (CDT) Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by relay3.corp.sgi.com (Postfix) with ESMTP id 0D17EAC003 for ; Tue, 8 Jul 2014 14:50:34 -0700 (PDT) X-ASG-Debug-ID: 1404856232-04bdf0566689b120001-NocioJ Received: from mout.gmx.net (mout.gmx.net [212.227.17.22]) by cuda.sgi.com with ESMTP id NPGwCmxiFuhYvTiC (version=TLSv1 cipher=AES256-SHA bits=256 verify=NO) for ; Tue, 08 Jul 2014 14:50:33 -0700 (PDT) X-Barracuda-Envelope-From: hans.w.kraus@gmx.at X-Barracuda-Apparent-Source-IP: 212.227.17.22 Received: from [80.120.180.154] by 3capp-gmx-bs13.server.lan (via HTTP); Tue, 8 Jul 2014 23:50:31 +0200 MIME-Version: 1.0 Message-ID: From: "Hans Kraus" To: xfs@oss.sgi.com Subject: Re: Error (failing assert) in xfs_repair Content-Type: text/plain; charset=UTF-8 X-ASG-Orig-Subj: Re: Error (failing assert) in xfs_repair Date: Tue, 8 Jul 2014 23:50:31 +0200 Importance: normal Sensitivity: Normal X-Priority: 3 X-Provags-ID: V03:K0:41Xo1tGIxBptlVWR+dzx9hhF+Vg1UNd2p2YVSUYpQj2 tHC5+B7Cp2DCKMEVd60/GrpZVJRCJazAs2dFTXCvo2SqZPdfgt M36dl+WYfsL6dObnz5XsfOswkm1h3RlGXOYdAoV8gk3ZcxHBYd dXmzZ/C9OyXLtnbwfBON2TK+hypGCs9/we0D8jKchV6q9wxVd1 vCBSS/6i/d95k3FHmrT3foHAD9RUGdfMzFF70gBuMWZGv52pme t1Uu4/pWM/h2wGIXs6FFcpd72g66jteZlm9e3rO1AqqbHFI/Q+ Gs4834= X-Barracuda-Connect: mout.gmx.net[212.227.17.22] X-Barracuda-Start-Time: 1404856232 X-Barracuda-Encrypted: AES256-SHA X-Barracuda-URL: http://192.48.157.11:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 X-Barracuda-Spam-Score: 0.00 X-Barracuda-Spam-Status: No, SCORE=0.00 using per-user scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.7 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.7349 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- Hi Dave, sorry for the HTML mail. My normal mail account isn't allowed to send mail to the list, my provider got somehow onto a spam list. I had to revert to GMX and only recently learnt how to send plain text mails via GMX. I hope that that works now. The system is now down, therefore some of the details you requested are only from my memory. The version of xfstools is the one I got with the command "git clone git://oss.sgi.com/xfs/cmds/xfsprogs", sunday or monday this week. The story is as follows: my backup file system is on a Raid6 (mdadm), on top of that lvm2 and xfs. One of the HDs reported smart errors, I replaced it with a new one. During the Raid6 resyncronisation I got a kernel panic. After reset the raid didn't come up. I finally started it with the '--force' parameter. After that the filesystem didn't mount. I issued the 'xfs_repair -L ...' from the current distribution, Debian 7 amd64. During the repair process the command stalled for more than 24 hours. After that I got nervous and restarted the machine. Then I downloaded the git xfstools version and compiled it. Now I get repeatedly the error from my first mail. Two more drives failed, I'm now back to a system without any retundancy. I will only power it up again when I have two new replacement drives (already ordered). Kind regards, Hans From david@fromorbit.com Tue Jul 8 17:39:20 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: xfs@oss.sgi.com Delivered-To: xfs@oss.sgi.com Received: from relay.sgi.com (relay2.corp.sgi.com [137.38.102.29]) by oss.sgi.com (Postfix) with ESMTP id AA9FE7F54 for ; Tue, 8 Jul 2014 17:39:20 -0500 (CDT) Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by relay2.corp.sgi.com (Postfix) with ESMTP id 797E7304043 for ; Tue, 8 Jul 2014 15:39:17 -0700 (PDT) X-ASG-Debug-ID: 1404859153-04bdf0566689c870001-NocioJ Received: from ipmail06.adl6.internode.on.net (ipmail06.adl6.internode.on.net [150.101.137.145]) by cuda.sgi.com with ESMTP id oI2nDh56grV52SpN for ; Tue, 08 Jul 2014 15:39:14 -0700 (PDT) X-Barracuda-Envelope-From: david@fromorbit.com X-Barracuda-Apparent-Source-IP: 150.101.137.145 X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: AuoMANFyvFN5LAMnPGdsb2JhbABagw5SgniFCKRNDAEBAQEBAQaTHYdHAYERFwQBAQEBODWEAwEBBAEnExwjBQsIAxUDCQwZDwUlAwcaE4guAwkHxnkXGIVihx6BPxoBAQFOBwqDI4EWAQSadYtNjBUrL4ECBwIX Received: from ppp121-44-3-39.lns20.syd6.internode.on.net (HELO dastard) ([121.44.3.39]) by ipmail06.adl6.internode.on.net with ESMTP; 09 Jul 2014 08:09:12 +0930 Received: from dave by dastard with local (Exim 4.80) (envelope-from ) id 1X4e2Z-0006Jt-BP; Wed, 09 Jul 2014 08:39:11 +1000 Date: Wed, 9 Jul 2014 08:39:11 +1000 From: Dave Chinner To: Hans Kraus Cc: xfs@oss.sgi.com Subject: Re: Error (failing assert) in xfs_repair Message-ID: <20140708223911.GB22339@dastard> X-ASG-Orig-Subj: Re: Error (failing assert) in xfs_repair References: MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.5.21 (2010-09-15) X-Barracuda-Connect: ipmail06.adl6.internode.on.net[150.101.137.145] X-Barracuda-Start-Time: 1404859153 X-Barracuda-URL: http://192.48.157.11:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 X-Barracuda-Spam-Score: 0.00 X-Barracuda-Spam-Status: No, SCORE=0.00 using per-user scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.7 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.7350 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- On Tue, Jul 08, 2014 at 11:50:31PM +0200, Hans Kraus wrote: > Hi Dave, > > sorry for the HTML mail. My normal mail account isn't allowed to > send mail to the list, my provider got somehow onto a spam list. I > had to revert to GMX and only recently learnt how to send plain > text mails via GMX. I hope that that works now. Looks good ;) > The system is now down, therefore some of the details you > requested are only from my memory. The version of xfstools is the > one I got with the command "git clone > git://oss.sgi.com/xfs/cmds/xfsprogs", sunday or monday this week. Ok. > The story is as follows: my backup file system is on a Raid6 > (mdadm), on top of that lvm2 and xfs. One of the HDs reported > smart errors, I replaced it with a new one. During the Raid6 > resyncronisation I got a kernel panic. After reset the raid didn't > come up. I finally started it with the '--force' parameter. After > that the filesystem didn't mount. I issued the 'xfs_repair -L ...' > from the current distribution, Debian 7 amd64. During the repair > process the command stalled for more than 24 hours. After that I > got nervous and restarted the machine. Yup, happens occasionally on older repairs - the "-P" option probably helps there. That also helps explains why repair only started complaining at AG 16. > Then I downloaded the git xfstools version and compiled it. Now I > get repeatedly the error from my first mail. Yes, the IO verifier is reporting bp->b_error == EFSCORRUPTED on the AGF buffer, and this assert is firing: ASSERT(agf_dirty || agfbuf->b_error != EFSCORRUPTED); The issue is that the initial checks on the AGF are not resulting in a dirty AGF because the fields that are corrupted can't be repaired in phase 2, and hence the agf is not being dirtied despite being corrupted. The assert needs fixing. > Two more drives failed, I'm now back to a system without any > retundancy. I will only power it up again when I have two new > replacement drives (already ordered). Taking the failed raid resync, the --force to reconstruct it and the style of corruption being reported in the XFS metadata, I'd say you've probably corrupted all the data on your filesystem beyond the point you can recover any of it. The patch below will avoid the assert failure issue so repair runs further, but if I were you I'd be considering the filesystem and the data it contains a complete loss and restoring from backups.... .... which you probably don't have because this is a backup server. Who has backups of their backups? Cheers, Dave. -- Dave Chinner david@fromorbit.com repair: handle uncorrected corruptions in phase 2 From: Dave Chinner Some of the AG header corruptions detected by the IO verifiers cannot be corrected in phase 2 when we do the initial scan of the AGs. Correcting some errors cannot be done until a full rebuild of the trees is done in phase 5. Hence we can end up with a "clean" AGF/AGI buffer but have a EFSCORRUPTED error on the buffer. This results in an assert failing: ASSERT(agf_dirty || agfbuf->b_error != EFSCORRUPTED); and repair not beign able to fix the problems it has tripped over. Hence the assert that we corrected all corruptions in the buffers is not valid and should be removed. Reported-by: Hans Kraus Signed-off-by: Dave Chinner --- repair/scan.c | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/repair/scan.c b/repair/scan.c index f29ff8d..142d8d7 100644 --- a/repair/scan.c +++ b/repair/scan.c @@ -1572,14 +1572,13 @@ scan_ag( /* * Only pay attention to CRC/verifier errors if we can correct them. - * While there, ensure that we corrected a corruption error if the - * verifier detected one. + * Note that we can get uncorrected EFSCORRUPTED errors here because + * the verifier will flag on out of range values that we can't correct + * until phase 5 when we have all the information necessary to rebuild + * the freespace/inode btrees. We can correct bad CRC errors + * immediately, though. */ if (!no_modify) { - ASSERT(agi_dirty || agibuf->b_error != EFSCORRUPTED); - ASSERT(agf_dirty || agfbuf->b_error != EFSCORRUPTED); - ASSERT(sb_dirty || sbbuf->b_error != EFSCORRUPTED); - agi_dirty += (agibuf->b_error == EFSBADCRC); agf_dirty += (agfbuf->b_error == EFSBADCRC); sb_dirty += (sbbuf->b_error == EFSBADCRC); From dave@fromorbit.com Tue Jul 8 18:41:48 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: xfs@oss.sgi.com Delivered-To: xfs@oss.sgi.com Received: from relay.sgi.com (relay3.corp.sgi.com [198.149.34.15]) by oss.sgi.com (Postfix) with ESMTP id 926F47F54 for ; Tue, 8 Jul 2014 18:41:48 -0500 (CDT) Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by relay3.corp.sgi.com (Postfix) with ESMTP id 2B056AC005 for ; Tue, 8 Jul 2014 16:41:48 -0700 (PDT) X-ASG-Debug-ID: 1404862906-04bdf0566689e7a0001-NocioJ Received: from ipmail06.adl6.internode.on.net (ipmail06.adl6.internode.on.net [150.101.137.145]) by cuda.sgi.com with ESMTP id 3ZLnBPuN5nAdFeY3 for ; Tue, 08 Jul 2014 16:41:46 -0700 (PDT) X-Barracuda-Envelope-From: dave@fromorbit.com X-Barracuda-Apparent-Source-IP: 150.101.137.145 X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: AoMMAOKAvFN5LAMnPGdsb2JhbABagw6IUqRZAQEBAQEBBpt3FwQBAQEBODWEAwEBBScvMwgYMTkDBxQZiC4DEMhIhXqHHoJHhC0FslcrLw Received: from ppp121-44-3-39.lns20.syd6.internode.on.net (HELO dastard) ([121.44.3.39]) by ipmail06.adl6.internode.on.net with ESMTP; 09 Jul 2014 09:11:44 +0930 Received: from disappointment.disaster.area ([192.168.1.110] helo=disappointment) by dastard with esmtp (Exim 4.80) (envelope-from ) id 1X4f14-0006T3-LQ for xfs@oss.sgi.com; Wed, 09 Jul 2014 09:41:42 +1000 Received: from dave by disappointment with local (Exim 4.82_1-5b7a7c0-XX) (envelope-from ) id 1X4f14-0000tA-KY for xfs@oss.sgi.com; Wed, 09 Jul 2014 09:41:42 +1000 From: Dave Chinner To: xfs@oss.sgi.com Subject: [PATCH 2/2] repair: handle uncorrected corruptions in phase 2 Date: Wed, 9 Jul 2014 09:41:40 +1000 X-ASG-Orig-Subj: [PATCH 2/2] repair: handle uncorrected corruptions in phase 2 Message-Id: <1404862900-3369-3-git-send-email-david@fromorbit.com> X-Mailer: git-send-email 2.0.0 In-Reply-To: <1404862900-3369-1-git-send-email-david@fromorbit.com> References: <1404862900-3369-1-git-send-email-david@fromorbit.com> X-Barracuda-Connect: ipmail06.adl6.internode.on.net[150.101.137.145] X-Barracuda-Start-Time: 1404862906 X-Barracuda-URL: http://192.48.157.11:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 X-Barracuda-Spam-Score: 0.00 X-Barracuda-Spam-Status: No, SCORE=0.00 using per-user scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.7 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.7352 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- From: Dave Chinner Some of the AG header corruptions detected by the IO verifiers cannot be corrected in phase 2 when we do the initial scan of the AGs. Correcting some errors cannot be done until a full rebuild of the trees is done in phase 5. Hence we can end up with a "clean" AGF/AGI buffer but have a EFSCORRUPTED error on the buffer. This results in an assert failing: ASSERT(agf_dirty || agfbuf->b_error != EFSCORRUPTED); and repair not beign able to fix the problems it has tripped over. Hence the assert that we corrected all corruptions in the buffers is not valid and should be removed. Reported-by: Hans Kraus Signed-off-by: Dave Chinner --- repair/scan.c | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/repair/scan.c b/repair/scan.c index f29ff8d..142d8d7 100644 --- a/repair/scan.c +++ b/repair/scan.c @@ -1572,14 +1572,13 @@ scan_ag( /* * Only pay attention to CRC/verifier errors if we can correct them. - * While there, ensure that we corrected a corruption error if the - * verifier detected one. + * Note that we can get uncorrected EFSCORRUPTED errors here because + * the verifier will flag on out of range values that we can't correct + * until phase 5 when we have all the information necessary to rebuild + * the freespace/inode btrees. We can correct bad CRC errors + * immediately, though. */ if (!no_modify) { - ASSERT(agi_dirty || agibuf->b_error != EFSCORRUPTED); - ASSERT(agf_dirty || agfbuf->b_error != EFSCORRUPTED); - ASSERT(sb_dirty || sbbuf->b_error != EFSCORRUPTED); - agi_dirty += (agibuf->b_error == EFSBADCRC); agf_dirty += (agfbuf->b_error == EFSBADCRC); sb_dirty += (sbbuf->b_error == EFSBADCRC); -- 2.0.0 From dave@fromorbit.com Tue Jul 8 18:41:50 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: xfs@oss.sgi.com Delivered-To: xfs@oss.sgi.com Received: from relay.sgi.com (relay1.corp.sgi.com [137.38.102.111]) by oss.sgi.com (Postfix) with ESMTP id 326027F5A for ; Tue, 8 Jul 2014 18:41:50 -0500 (CDT) Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by relay1.corp.sgi.com (Postfix) with ESMTP id 24A1C8F8054 for ; Tue, 8 Jul 2014 16:41:46 -0700 (PDT) X-ASG-Debug-ID: 1404862904-04bdf0566889e7a0001-NocioJ Received: from ipmail06.adl6.internode.on.net (ipmail06.adl6.internode.on.net [150.101.137.145]) by cuda.sgi.com with ESMTP id FlTNGqdW36zaOZNm for ; Tue, 08 Jul 2014 16:41:44 -0700 (PDT) X-Barracuda-Envelope-From: dave@fromorbit.com X-Barracuda-Apparent-Source-IP: 150.101.137.145 X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: AoUMAOKAvFN5LAMnPGdsb2JhbABagw6IUqRZAQEBAQEBBppbAYEbFwQBAQEBODWEYDuBAgMHiG6fPKkMhXqIZYEAhC0FsEWCEis Received: from ppp121-44-3-39.lns20.syd6.internode.on.net (HELO dastard) ([121.44.3.39]) by ipmail06.adl6.internode.on.net with ESMTP; 09 Jul 2014 09:11:44 +0930 Received: from disappointment.disaster.area ([192.168.1.110] helo=disappointment) by dastard with esmtp (Exim 4.80) (envelope-from ) id 1X4f14-0006T1-KN for xfs@oss.sgi.com; Wed, 09 Jul 2014 09:41:42 +1000 Received: from dave by disappointment with local (Exim 4.82_1-5b7a7c0-XX) (envelope-from ) id 1X4f14-0000t1-JA for xfs@oss.sgi.com; Wed, 09 Jul 2014 09:41:42 +1000 From: Dave Chinner To: xfs@oss.sgi.com Subject: [PATCH 0/2] repair: more fixes for 3.2.1 Date: Wed, 9 Jul 2014 09:41:38 +1000 X-ASG-Orig-Subj: [PATCH 0/2] repair: more fixes for 3.2.1 Message-Id: <1404862900-3369-1-git-send-email-david@fromorbit.com> X-Mailer: git-send-email 2.0.0 X-Barracuda-Connect: ipmail06.adl6.internode.on.net[150.101.137.145] X-Barracuda-Start-Time: 1404862904 X-Barracuda-URL: http://192.48.157.11:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 X-Barracuda-Spam-Score: 0.00 X-Barracuda-Spam-Status: No, SCORE=0.00 using per-user scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.7 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.7352 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- Hi folks, A couple more fixes for repair - the first being a change I missed during review of the last patch series, and a new one that removes a set of incorrect asserts when checking AG headers. If nothing else pops up in the next couple of days, this is where I want to draw the line for a 3.2.1 release, so having people run some testing over the next couple of days woul dbe great.... -Dave. From dave@fromorbit.com Tue Jul 8 18:41:51 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: xfs@oss.sgi.com Delivered-To: xfs@oss.sgi.com Received: from relay.sgi.com (relay3.corp.sgi.com [198.149.34.15]) by oss.sgi.com (Postfix) with ESMTP id 0DF707F5A for ; Tue, 8 Jul 2014 18:41:51 -0500 (CDT) Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by relay3.corp.sgi.com (Postfix) with ESMTP id 9A538AC003 for ; Tue, 8 Jul 2014 16:41:47 -0700 (PDT) X-ASG-Debug-ID: 1404862904-04bdf0566889e7a0002-NocioJ Received: from ipmail06.adl6.internode.on.net (ipmail06.adl6.internode.on.net [150.101.137.145]) by cuda.sgi.com with ESMTP id NO9rCI22qd0qqNhk for ; Tue, 08 Jul 2014 16:41:46 -0700 (PDT) X-Barracuda-Envelope-From: dave@fromorbit.com X-Barracuda-Apparent-Source-IP: 150.101.137.145 X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: AoMMAOKAvFN5LAMnPGdsb2JhbABSCIMOiFKkWQEBAQEBAQabdxcEAQEBATg1hAMBAQUnLzMIGDE5AwcUGYhByEiFeohyc4QtBbJXKw Received: from ppp121-44-3-39.lns20.syd6.internode.on.net (HELO dastard) ([121.44.3.39]) by ipmail06.adl6.internode.on.net with ESMTP; 09 Jul 2014 09:11:44 +0930 Received: from disappointment.disaster.area ([192.168.1.110] helo=disappointment) by dastard with esmtp (Exim 4.80) (envelope-from ) id 1X4f14-0006T2-Kv for xfs@oss.sgi.com; Wed, 09 Jul 2014 09:41:42 +1000 Received: from dave by disappointment with local (Exim 4.82_1-5b7a7c0-XX) (envelope-from ) id 1X4f14-0000t4-K3 for xfs@oss.sgi.com; Wed, 09 Jul 2014 09:41:42 +1000 From: Dave Chinner To: xfs@oss.sgi.com Subject: [PATCH 1/2] libxfs: clear the buffer error while the buffer is locked Date: Wed, 9 Jul 2014 09:41:39 +1000 X-ASG-Orig-Subj: [PATCH 1/2] libxfs: clear the buffer error while the buffer is locked Message-Id: <1404862900-3369-2-git-send-email-david@fromorbit.com> X-Mailer: git-send-email 2.0.0 In-Reply-To: <1404862900-3369-1-git-send-email-david@fromorbit.com> References: <1404862900-3369-1-git-send-email-david@fromorbit.com> X-Barracuda-Connect: ipmail06.adl6.internode.on.net[150.101.137.145] X-Barracuda-Start-Time: 1404862905 X-Barracuda-URL: http://192.48.157.11:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 X-Barracuda-Spam-Score: 0.00 X-Barracuda-Spam-Status: No, SCORE=0.00 using per-user scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.7 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.7352 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- From: Dave Chinner When releasing a buffer, the error shoul dbe cleared while the lock is still held on the buffer to avoid racing with a new user of the buffer. This was pointed out in review of commit 6af7c1e ("libxfs: reused invalidated buffers leak state and data") but the version committed didn't have the fix. Thanks to Christoph Hellwig for checking and pointing out the oversight. Reported-by: Christoph Hellwig Signed-off-by: Dave Chinner --- libxfs/rdwr.c | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/libxfs/rdwr.c b/libxfs/rdwr.c index 0294c98..9ee89d3 100644 --- a/libxfs/rdwr.c +++ b/libxfs/rdwr.c @@ -648,6 +648,12 @@ libxfs_getbuf_map(struct xfs_buftarg *btp, struct xfs_buf_map *map, void libxfs_putbuf(xfs_buf_t *bp) { + /* + * ensure that any errors on this use of the buffer don't carry + * over to the next user. + */ + bp->b_error = 0; + #ifdef XFS_BUF_TRACING pthread_mutex_lock(&libxfs_bcache->c_mutex); lock_buf_count--; @@ -663,11 +669,6 @@ libxfs_putbuf(xfs_buf_t *bp) pthread_mutex_unlock(&bp->b_lock); } } - /* - * ensure that any errors on this use of the buffer don't carry - * over to the next user. - */ - bp->b_error = 0; cache_node_put(libxfs_bcache, (struct cache_node *)bp); } -- 2.0.0 From david@fromorbit.com Tue Jul 8 19:32:58 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: xfs@oss.sgi.com Delivered-To: xfs@oss.sgi.com Received: from relay.sgi.com (relay2.corp.sgi.com [137.38.102.29]) by oss.sgi.com (Postfix) with ESMTP id 3BD0E7F3F for ; Tue, 8 Jul 2014 19:32:58 -0500 (CDT) Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by relay2.corp.sgi.com (Postfix) with ESMTP id 2D28230404E for ; Tue, 8 Jul 2014 17:32:55 -0700 (PDT) X-ASG-Debug-ID: 1404865971-04cb6c76d1521f40001-NocioJ Received: from ipmail06.adl6.internode.on.net (ipmail06.adl6.internode.on.net [150.101.137.145]) by cuda.sgi.com with ESMTP id ftATM6THJaIj0sLa for ; Tue, 08 Jul 2014 17:32:52 -0700 (PDT) X-Barracuda-Envelope-From: david@fromorbit.com X-Barracuda-Apparent-Source-IP: 150.101.137.145 X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: AsYMAJ+MvFN5LAMnPGdsb2JhbABaFoJ4UoJ4UakFDAEBAQEBAQaTI4dBAYEUFwQBAQEBODWEAwEBBAEjBAsBIyMFCwgDGAICBSECAg8FJQMHGhMbiB8HDq5HmVQXGIEUhE6IdwEBAk0Hgnc2gRYFmnWBSZRFgVQrLwGBAggX Received: from ppp121-44-3-39.lns20.syd6.internode.on.net (HELO dastard) ([121.44.3.39]) by ipmail06.adl6.internode.on.net with ESMTP; 09 Jul 2014 10:02:50 +0930 Received: from dave by dastard with local (Exim 4.80) (envelope-from ) id 1X4foW-0006aX-Ns; Wed, 09 Jul 2014 10:32:48 +1000 Date: Wed, 9 Jul 2014 10:32:48 +1000 From: Dave Chinner To: Arkadiusz =?utf-8?Q?Mi=C5=9Bkiewicz?= Cc: xfs@oss.sgi.com Subject: Re: usrquota, prjquota mount success on 3.16rc4 but Failed to initialize disk quotas on 3.10.43 Message-ID: <20140709003248.GE4453@dastard> X-ASG-Orig-Subj: Re: usrquota, prjquota mount success on 3.16rc4 but Failed to initialize disk quotas on 3.10.43 References: <201407081041.02020.arekm@maven.pl> <201407081527.24119.arekm@maven.pl> <201407082349.07906.arekm@maven.pl> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: <201407082349.07906.arekm@maven.pl> User-Agent: Mutt/1.5.21 (2010-09-15) X-Barracuda-Connect: ipmail06.adl6.internode.on.net[150.101.137.145] X-Barracuda-Start-Time: 1404865971 X-Barracuda-URL: http://192.48.176.15:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 X-Barracuda-Spam-Score: 0.00 X-Barracuda-Spam-Status: No, SCORE=0.00 using per-user scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.7 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.7355 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- On Tue, Jul 08, 2014 at 11:49:07PM +0200, Arkadiusz Miśkiewicz wrote: > On Tuesday 08 of July 2014, Arkadiusz Miśkiewicz wrote: > > On Tuesday 08 of July 2014, Arkadiusz Miśkiewicz wrote: > > > My broken fs > > > http://ixion.pld-linux.org/~arekm/p2/x1/web2-home.metadump.gz > > > thanks to "xfsprogs: fixes for 3.2.1" by Dave is now almost in good > > > shape. > > > > > > What I found interesting is that repairing it with current git xfs_repair > > > and then mounting (-o usrquota,prjquota) on 3.16.0-rc4 gives me: > > > > > > [32208.142316] XFS (sdb): Mounting V4 Filesystem > > > [32208.205449] XFS (sdb): Ending clean mount > > > [32208.258991] XFS (sdb): Quotacheck needed: Please wait. > > > [32821.930437] XFS (sdb): Quotacheck: Done. > > > > > > Then I umount it and mount again (same options as before) but on 3.10.43 > > > kernel: > > > > > > [ 111.325889] XFS (sdb): Mounting Filesystem > > > [ 111.419331] XFS (sdb): Failed to initialize disk quotas. > > > [ 111.419339] XFS (sdb): Ending clean mount > > > > > > What did change in later kernels that could have meaning here? (so I > > > could try to backport that change). > > > > > > For testing I mounted again on 3.16 and: > > > [33870.472769] XFS (sdb): Mounting V4 Filesystem > > > [33870.543539] XFS (sdb): Ending clean mount > > > [33870.597791] XFS (sdb): Quotacheck needed: Please wait. > > > [34484.332879] XFS (sdb): Quotacheck: Done > > > > > > and again on 3.10.43: > > > [ 1649.215390] XFS (sdb): Mounting Filesystem > > > [ 1649.316894] XFS (sdb): Failed to initialize disk quotas. > > > [ 1649.316902] XFS (sdb): Ending clean mount > > > > Fails in xfs_iget at xfs_qm_init_quotainos(): > > > > if (XFS_IS_OQUOTA_ON(mp) && > > mp->m_sb.sb_gquotino != NULLFSINO) { > > ASSERT(mp->m_sb.sb_gquotino > 0); > > if ((error = xfs_iget(mp, NULL, > > mp->m_sb.sb_gquotino, 0, 0, &gip))) { > > if (uip) > > IRELE(uip); > > return XFS_ERROR(error); > > } > > } > > > > and in xfs_iget: > > > > /* reject inode numbers outside existing AGs */ > > if (!ino || XFS_INO_TO_AGNO(mp, ino) >= mp->m_sb.sb_agcount) > > return EINVAL; > > > > > > m_sb.sb_gquotino/ino looks to be 0 > > > > # xfs_db /dev/sdb -c "sb 0" -c "print" |grep quot > > uquotino = 4077961 > > gquotino = 0 > > pquotino = 0 > > > > and older kernels (testing on 3.10.46 now) seem to be unable to deal with > > this. > > > > Newer kernels survive probably due to this: > > > > xfs_sb_quota_from_disk(struct xfs_sb *sbp) > > { > > /* > > * older mkfs doesn't initialize quota inodes to NULLFSINO. This > > * leads to in-core values having two different values for a quota > > * inode to be invalid: 0 and NULLFSINO. Change it to a single > > value * NULLFSINO. > > * > > * Note that this change affect only the in-core values. These > > * values are not written back to disk unless any quota information > > * is written to the disk. Even in that case, sb_pquotino field is > > * not written to disk unless the superblock supports pquotino. > > */ > > if (sbp->sb_uquotino == 0) > > sbp->sb_uquotino = NULLFSINO; > > if (sbp->sb_gquotino == 0) > > sbp->sb_gquotino = NULLFSINO; > > if (sbp->sb_pquotino == 0) > > sbp->sb_pquotino = NULLFSINO; > > > > so sb_gquotino = NULLFSINO gets set and it never reaches error condition at > > xfs_qm_init_quotainos() > > Small summary from my observation: > > - mkfs.xfs sets all three [ugp]quotino to 0 (contrary to what comment above > says: "older mkfs doesn't initialize quota inodes to NULLFSINO.". New/fresh > mkfs.xfs also doesn't do that. Were any intermediate versions actually setting > NULLFSINO ? Not yet. Mainly because the handling of quota in superblocks appears to be broadly broken in the xfsprogs code base. > - freshly created fs; 3.10 kernel; mount image -o usrquota causes: uquotino > gets NEW inode; gquotino is set to null; pquotino not used (stays at 0) That is triggered by the XFS_SB_VERSION_QUOTABIT not being set, and xfs_qm_qino_alloc() setting the incore values quotaino values to NULLFSINO. > - 3.16 behaviour is different; freshly created fs; mount image -o usrquota > causes: uquotino gets NEW inode; gquotino/pquotino stays at 0 (while on 3.10 > gquotino was being set to null) Same thing, except we never write the sb_gquotino because group quota is not enabled. That's a bug in the 3.16 kernel code that needs fixing. > - 3.10 kernel is not able to handle case when uquotino == value, gquotino == > 0. For 3.10 this case is impossible / should never happen. 3.10 expects > (uquotino == value, gquotino == null) or (uquotino == value, gquotino == > othervalue) or (uqotinfo == null, gruotino == value) only. Only when the XFS_SB_VERSION_QUOTABIT feature bit is set. If it is not set, then the code will first set them to NULLFSINO as per the above "new fs without quota" case. > - this means that fresh fs; mount under 3.16 with -o usrquota. Try to mount > the same fs on 3.10 but with -o usrquota,grpquota -> will fail "Failed to > initialize disk quotas." Right, that's the 3.16 issue, and so the fix will need to go to -stable kernels. > - 3.16 handles both cases (uquotino == val, gquotino == 0, too) because it > does translation when reading from disk (the one cited at beginning of this > mail) Right, which is necessary for the code to handle the optional project quota correctly. > Probably solution is to make xfs_repair make if [ugp]quotino == 0 set these > to null. IMO old and new kernels should handle null properly (regardless of > quota feature bit state). mkfs.xfs should also get updated to set these to > null initially. New kernels already handle the mixed state just fine, old kernels don't. New kernels need to be fixed not to leave mixed state on unmount. Mkfs can remain doing what it currently does - it's not leaving mixed state behind. Repair, well, it's just broken when it comes to quotas. It doesn't actually check quotas, or even check the validity of the dquots in the quota files. It doesn't leave the quota inodes in consistent state, nor does it handle the quota version bits appropriately. What I think I'll do is finish the quota lobotomisation patch I have for repair - it just nulls all the quota inodes, clears the quota flags and marks the quota inodes as unused. It the removes all the knowledge of quota and quota inodes from repair. This will ensure that quotas are always in a known state after repair, and they will always be rebuilt on the next mount. Note that repair currently always clears the quota checked flags even if there was nothing wrong with the filesystem so that quotas are regenerated on the next mount. Hence jsut trashing everything quota related is not going to change behaviour at all. > Last question/issue is: should mount fail in case of "Failed to initialize > disk quotas." problem? Right now user requests quotas to be enabled but gets > fs without quota (and the only failure indication is one line in dmesg). Not according to history. Any quota mount failure results in quotas being disabled until the problem is corrected... > Citation: > 23:24 < dchinner__> arekm:it's just a nasty can of worms Yup, I have to fix multiple kernel versions as well as xfs_repair. Not to mention it's clear that the xfsprogs change-over to support the seprate project quota inode was fundamentally broken, and so I have to audit everything else in xfsprogs that reads and writes superblocks and work out how to fix the problems that exist. Cheers, Dave. -- Dave Chinner david@fromorbit.com From namjae.jeon@samsung.com Wed Jul 9 01:33:32 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: xfs@oss.sgi.com Delivered-To: xfs@oss.sgi.com Received: from relay.sgi.com (relay3.corp.sgi.com [198.149.34.15]) by oss.sgi.com (Postfix) with ESMTP id C33A97F3F for ; Wed, 9 Jul 2014 01:33:31 -0500 (CDT) Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by relay3.corp.sgi.com (Postfix) with ESMTP id 40CF5AC003 for ; Tue, 8 Jul 2014 23:33:28 -0700 (PDT) X-ASG-Debug-ID: 1404887602-04cbb06537368d10001-NocioJ Received: from mailout4.samsung.com (mailout4.samsung.com [203.254.224.34]) by cuda.sgi.com with ESMTP id ETvDaMZoC11H4rSz (version=TLSv1 cipher=RC4-MD5 bits=128 verify=NO) for ; Tue, 08 Jul 2014 23:33:23 -0700 (PDT) X-Barracuda-Envelope-From: namjae.jeon@samsung.com X-Barracuda-Apparent-Source-IP: 203.254.224.34 X-Barracuda-IPDD: Level2 [samsung.com/203.254.224.34] Received: from epcpsbgr5.samsung.com (u145.gpu120.samsung.co.kr [203.254.230.145]) by mailout4.samsung.com (Oracle Communications Messaging Server 7u4-24.01 (7.0.4.24.0) 64bit (built Nov 17 2011)) with ESMTP id <0N8F000YPM7LQ8B0@mailout4.samsung.com> for xfs@oss.sgi.com; Wed, 09 Jul 2014 15:33:21 +0900 (KST) X-Barracuda-IPDD: Level2 [samsung.com/203.254.224.34] X-Barracuda-IPDD: Level2 [samsung.com/203.254.224.34] X-Barracuda-IPDD: Level2 [samsung.com/203.254.224.34] X-Barracuda-IPDD: Level2 [samsung.com/203.254.224.34] X-Barracuda-IPDD: Level2 [samsung.com/203.254.224.34] X-Barracuda-IPDD: Level2 [samsung.com/203.254.224.34] Received: from epcpsbgm2.samsung.com ( [172.20.52.113]) by epcpsbgr5.samsung.com (EPCPMTA) with SMTP id BD.3C.16580.132ECB35; Wed, 09 Jul 2014 15:33:21 +0900 (KST) X-AuditID: cbfee691-b7f2f6d0000040c4-ce-53bce231d26d Received: from epmmp1.local.host ( [203.254.227.16]) by epcpsbgm2.samsung.com (EPCPMTA) with SMTP id 4E.E0.05196.132ECB35; Wed, 09 Jul 2014 15:33:21 +0900 (KST) Received: from DONAMJAEJEO06 ([10.88.104.63]) by mmp1.samsung.com (Oracle Communications Messaging Server 7u4-24.01 (7.0.4.24.0) 64bit (built Nov 17 2011)) with ESMTPA id <0N8F00FMBM7LAR90@mmp1.samsung.com>; Wed, 09 Jul 2014 15:33:21 +0900 (KST) From: Namjae Jeon To: 'Christoph Hellwig' Cc: 'Dave Chinner' , 'Theodore Ts'o' , 'linux-ext4' , linux-fsdevel@vger.kernel.org, linux-kernel@vger.kernel.org, 'Luk?? Czerner' , 'Brian Foster' , 'Ashish Sangwan' , xfs@oss.sgi.com References: <003f01cf9aa4$1e9e5240$5bdaf6c0$@samsung.com> <20140708121500.GA518@infradead.org> In-reply-to: <20140708121500.GA518@infradead.org> Subject: RE: [PATCH 2/3] xfs: Add support IOC_MOV_DATA ioctl Date: Wed, 09 Jul 2014 15:33:21 +0900 X-ASG-Orig-Subj: RE: [PATCH 2/3] xfs: Add support IOC_MOV_DATA ioctl Message-id: <001801cf9b3f$ad786ff0$08694fd0$@samsung.com> MIME-version: 1.0 Content-type: text/plain; charset=us-ascii Content-transfer-encoding: 7bit X-Mailer: Microsoft Outlook 14.0 Thread-index: AQJH64km/LFjhKi9hcuiYREqQxtdmwKGaWSgmpJZKsA= Content-language: ko X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFvrOIsWRmVeSWpSXmKPExsWyRsSkUNfw0Z5gg3kvVC2WTrzEbPHuc5XF lmP3GC1OT1jEZLHswWYWi5nz7rBZ7Nl7ksXi8q45bBatPT/ZLRb13WJ04PI4tUjCY/MKLY+m M0eZPVZf2Mro8X7fVTaPvi2rGD0+b5ILYI/isklJzcksSy3St0vgyni57QBzwRWWimedS1kb GJ8xdzFyckgImEgc2bqcCcIWk7hwbz1bFyMXh5DAUkaJxntbmWCKbh8+xgSRWMQoceDMV2YI 5y+jxIfPL1m7GDk42AS0Jf5sEQVpEAEy1y87BraBWeAAk8TjxzYgtpBAgsS2iydYQWxOAUOJ bbcOsYPYwgI2Ejenv2UEsVkEVCXuPjjIAjKSV8BS4vrFdJAwr4CgxI/J91ggRmpJrN95nAnC lpfYvOYt1DMKEjvOvmaEOMFKouPbY6gTRCT2vXjHCHKyhEAnh8Sm1u3MELsEJL5NPgS2S0JA VmLTAag5khIHV9xgmcAoMQvJ6llIVs9CsnoWkhULGFlWMYqmFiQXFCelF5nqFSfmFpfmpesl 5+duYgRG+ul/zybuYLx/wPoQYzLQ+onMUqLJ+cBEkVcSb2hsZmRhamJqbGRuaUaasJI4b/qj pCAhgfTEktTs1NSC1KL4otKc1OJDjEwcnFINjNYXOWJ1vt2T9RKpqvBjvW/2KTU6Y4+bftPL 9cHX7ePdLi15JWj3U+Fi97STVhdMGSR6S9kecBtX/P3xkHv7DmvtNOeX9udMrPn0Tho1rco0 vuKw+P7VCUdCr2kqzbhbzeRUmv0g+WvZi/DKG8n93/KPeup+uc5tdnXBhNUsibMSXu/aLcWQ rcRSnJFoqMVcVJwIAAAmWIcKAwAA X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFlrGKsWRmVeSWpSXmKPExsVy+t9jAV3DR3uCDU5dkbdYOvESs8W7z1UW W47dY7Q4PWERk8WyB5tZLGbOu8NmsWfvSRaLy7vmsFm09vxkt1jUd4vRgcvj1CIJj80rtDya zhxl9lh9YSujx/t9V9k8+rasYvT4vEkugD2qgdEmIzUxJbVIITUvOT8lMy/dVsk7ON453tTM wFDX0NLCXEkhLzE31VbJxSdA1y0zB+g6JYWyxJxSoFBAYnGxkr4dpgmhIW66FjCNEbq+IUFw PUYGaCBhDWPGy20HmAuusFQ861zK2sD4jLmLkZNDQsBE4vbhY0wQtpjEhXvr2boYuTiEBBYx Shw485UZwvnLKPHh80vWLkYODjYBbYk/W0RBGkSAzPXLjoENYhY4wCTx+LENiC0kkCCx7eIJ VhCbU8BQYtutQ+wgtrCAjcTN6W8ZQWwWAVWJuw8OsoCM5BWwlLh+MR0kzCsgKPFj8j0WiJFa Eut3HmeCsOUlNq95C3WzgsSOs68ZIU6wkuj49hjqBBGJfS/eMU5gFJqFZNQsJKNmIRk1C0nL AkaWVYyiqQXJBcVJ6blGesWJucWleel6yfm5mxjBaeSZ9A7GVQ0WhxgFOBiVeHgVePYEC7Em lhVX5h5ilOBgVhLh/eYGFOJNSaysSi3Kjy8qzUktPsRoCvToRGYp0eR8YIrLK4k3NDYxM7I0 Mje0MDI2VxLnPdhqHSgkkJ5YkpqdmlqQWgTTx8TBKdXAmJrqK3x1lRD/nenJHBfLpkyOOP9o otZ+yR9zQp490GSrmMKmH9GQ0Htuv0PearcFRwrEpvidf8ZY+n2TkoKA2nkF0w95DQb5Rz8e lf4X16z/t+P5hemyz/w/NQrc9bvozHKk61nfz4mfLm4VCbp4v+cylxrPlhM3U1bcPB6QyZzT /f7y1W91q5RYijMSDbWYi4oTASl1BME5AwAA DLP-Filter: Pass X-MTR: 20000000000000000@CPGS X-CFilter-Loop: Reflected X-Barracuda-Connect: mailout4.samsung.com[203.254.224.34] X-Barracuda-Start-Time: 1404887603 X-Barracuda-Encrypted: RC4-MD5 X-Barracuda-URL: http://192.48.176.25:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 > > On Tue, Jul 08, 2014 at 08:59:49PM +0900, Namjae Jeon wrote: > > This patch implements fs ioctl's IOC_MOV_DATA for XFS. > > Shouldn't this share code with the XFS_IOC_SWAPEXT implementation? Lukas has raised the same question for ext4. Both xfs(XFS_IOC_SWAPEXT) and ext4(EXT4_IOC_MOVE_EXT) has ioctls which uses almost similar kind of structure as struct mov_data. As such, there seems to be possiblity for sharing basic code (I will try) used for sanity checking in IOC_MOV_DATA to be shared with these ioctls but the core functionality code will remain different. Thanks! From namjae.jeon@samsung.com Wed Jul 9 01:36:00 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: xfs@oss.sgi.com Delivered-To: xfs@oss.sgi.com Received: from relay.sgi.com (relay2.corp.sgi.com [137.38.102.29]) by oss.sgi.com (Postfix) with ESMTP id 4E2657F3F for ; Wed, 9 Jul 2014 01:36:00 -0500 (CDT) Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by relay2.corp.sgi.com (Postfix) with ESMTP id 08E6530404E for ; Tue, 8 Jul 2014 23:35:59 -0700 (PDT) X-ASG-Debug-ID: 1404887755-04bdf056668ad7f0001-NocioJ Received: from mailout3.samsung.com (mailout3.samsung.com [203.254.224.33]) by cuda.sgi.com with ESMTP id o2swrEE7UZ3HUR9q (version=TLSv1 cipher=RC4-MD5 bits=128 verify=NO) for ; Tue, 08 Jul 2014 23:35:57 -0700 (PDT) X-Barracuda-Envelope-From: namjae.jeon@samsung.com X-Barracuda-Apparent-Source-IP: 203.254.224.33 Received: from epcpsbgr2.samsung.com (u142.gpu120.samsung.co.kr [203.254.230.142]) by mailout3.samsung.com (Oracle Communications Messaging Server 7u4-24.01 (7.0.4.24.0) 64bit (built Nov 17 2011)) with ESMTP id <0N8F001AHMBV5200@mailout3.samsung.com> for xfs@oss.sgi.com; Wed, 09 Jul 2014 15:35:55 +0900 (KST) Received: from epcpsbgm2.samsung.com ( [172.20.52.114]) by epcpsbgr2.samsung.com (EPCPMTA) with SMTP id 67.9C.19452.AC2ECB35; Wed, 09 Jul 2014 15:35:54 +0900 (KST) X-AuditID: cbfee68e-b7fb96d000004bfc-0b-53bce2caac4c Received: from epmmp1.local.host ( [203.254.227.16]) by epcpsbgm2.samsung.com (EPCPMTA) with SMTP id 31.B1.05196.AC2ECB35; Wed, 09 Jul 2014 15:35:54 +0900 (KST) Received: from DONAMJAEJEO06 ([10.88.104.63]) by mmp1.samsung.com (Oracle Communications Messaging Server 7u4-24.01 (7.0.4.24.0) 64bit (built Nov 17 2011)) with ESMTPA id <0N8F00F40MBUARA0@mmp1.samsung.com>; Wed, 09 Jul 2014 15:35:54 +0900 (KST) From: Namjae Jeon To: =?iso-8859-2?Q?'Luk=E1=B9_Czerner'?= Cc: 'Dave Chinner' , 'Theodore Ts'o' , 'linux-ext4' , linux-fsdevel@vger.kernel.org, linux-kernel@vger.kernel.org, 'Brian Foster' , 'Christoph Hellwig' , 'Ashish Sangwan' , xfs@oss.sgi.com References: <004001cf9aa4$2670e280$7352a780$@samsung.com> In-reply-to: Subject: RE: [PATCH 3/3] ext4: Add support IOC_MOV_DATA ioctl Date: Wed, 09 Jul 2014 15:35:54 +0900 X-ASG-Orig-Subj: RE: [PATCH 3/3] ext4: Add support IOC_MOV_DATA ioctl Message-id: <001901cf9b40$08994b70$19cbe250$@samsung.com> MIME-version: 1.0 Content-type: text/plain; charset=iso-8859-2 Content-transfer-encoding: quoted-printable X-Mailer: Microsoft Outlook 14.0 Thread-index: AQGrJOZNAI0ZuL5IevgT+zbvOhNoQAIW0xsrm89/AFA= Content-language: ko X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFvrCIsWRmVeSWpSXmKPExsWyRsSkSPf0oz3BBr3SFksnXmK2ePe5ymLL sXuMFqcnLGKyWPZgM4vFzHl32Cz27D3JYnF51xw2i9aen+wWi/puMTpweZxaJOGxeYWWR9OZ o8weqy9sZfR4v+8qm0ffllWMHp83yQWwR3HZpKTmZJalFunbJXBltL9sZCvY3shYsb57JXMD 45SULkZODgkBE4mfZyczQ9hiEhfurWfrYuTiEBJYyijx+ckMoAQHWNHLGxYQ8UWMEsuXdLCD NAgJ/GWUuHTBFqSGTUBb4s8WUZCwiICdxNw5LUwgNrPAISaJDesYIcrLJE7NuQjWyingLnF5 50tWEFtYwFZi+tndYDUsAqoSq2/OYAGxeQUsJTZd+csKYQtK/Jh8jwVkFbOAjsTXSREQ47Ul nry7wApxvoLEjrOvGSFOsJK42bKLEaJGRGLfi3eMIOdLCPRySNz7cI4ZYpeAxLfJh1ggXpSV 2HQAGgySEgdX3GCZwCgxC8nmWQibZyHZPAvJhgWMLKsYRVMLkguKk9KLjPSKE3OLS/PS9ZLz czcxAmP89L9nfTsYbx6wPsSYDLR9IrOUaHI+MEXklcQbGpsZWZiamBobmVuakSasJM676GFS kJBAemJJanZqakFqUXxRaU5q8SFGJg5OqQZGpvu3NjaEMRXmf5Wf279S020Z2/2+hidb3pg/ NEhSWJHll3bLJs/Pdv6RJJ+VXNzyKi+enfC5Emu016Cd+6du04qpDfmLXGZnR3Y5Hpq/M/PH TYvbbk/VhPN3HK/ccWxzW5F/RGle8mU7jvrC3KVT3n4S4np2yGH75fupiZfOLrSTlrh/nzlN iaU4I9FQi7moOBEAKYPTIQcDAAA= X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFlrCKsWRmVeSWpSXmKPExsVy+t9jAd1Tj/YEG9z4ZGCxdOIlZot3n6ss thy7x2hxesIiJotlDzazWMycd4fNYs/ekywWl3fNYbNo7fnJbrGo7xajA5fHqUUSHptXaHk0 nTnK7LH6wlZGj/f7rrJ59G1ZxejxeZNcAHtUA6NNRmpiSmqRQmpecn5KZl66rZJ3cLxzvKmZ gaGuoaWFuZJCXmJuqq2Si0+ArltmDtB1SgpliTmlQKGAxOJiJX07TBNCQ9x0LWAaI3R9Q4Lg eowM0EDCGsaM9peNbAXbGxkr1nevZG5gnJLSxcjBISFgIvHyhkUXIyeQKSZx4d56ti5GLg4h gUWMEsuXdLCDJIQE/jJKXLpgC1LPJqAt8WeLKEhYRMBOYu6cFiYQm1ngEJPEhnWMEOVlEqfm XARr5RRwl7i88yUriC0sYCsx/exusBoWAVWJ1TdnsIDYvAKWEpuu/GWFsAUlfky+xwKyillA R+LrpAiI8doST95dYIU4U0Fix9nXjBAnWEncbNnFCFEjIrHvxTvGCYxCs5BMmoUwaRaSSbOQ dCxgZFnFKJpakFxQnJSea6RXnJhbXJqXrpecn7uJEZxCnknvYFzVYHGIUYCDUYmHV4FnT7AQ a2JZcWXuIUYJDmYlEd5vbkAh3pTEyqrUovz4otKc1OJDjKZAf05klhJNzgemt7ySeENjEzMj SyNzQwsjY3Mlcd6DrdaBQgLpiSWp2ampBalFMH1MHJxSDYyb5BlniestSM7WkZM+c2L57FNv jNdO3JZzqf1iXnjNjG9Carc2OtstOv+Z39J0+ak0B9kQJomPmV084edmOj9aKFu4sKH27FuN uE+NyT/XL6lRfiDfYS37U3vNbl5ZvoJLodU7JtWb6cpZ2i26GsOhf3bbhgvlVtckq6MOnr10 J+KjxYnEii9KLMUZiYZazEXFiQCULM6sNwMAAA== DLP-Filter: Pass X-MTR: 20000000000000000@CPGS X-CFilter-Loop: Reflected X-Barracuda-Connect: mailout3.samsung.com[203.254.224.33] X-Barracuda-Start-Time: 1404887756 X-Barracuda-Encrypted: RC4-MD5 X-Barracuda-URL: http://192.48.157.11:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 X-Barracuda-Spam-Score: 0.01 X-Barracuda-Spam-Status: No, SCORE=0.01 using per-user scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.7 tests=THREAD_INDEX X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.7362 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.01 THREAD_INDEX thread-index: AcO7Y8iR61tzADqsRmmc5wNiFHEOig== > On Tue, 8 Jul 2014, Namjae Jeon wrote: >=20 > > Date: Tue, 08 Jul 2014 21:00:02 +0900 > > From: Namjae Jeon > > To: Dave Chinner , Theodore Ts'o = > > Cc: linux-ext4 , = linux-fsdevel@vger.kernel.org, > > linux-kernel@vger.kernel.org, Luk=E1=B9 Czerner = , > > Brian Foster , Christoph Hellwig = , > > Ashish Sangwan , xfs@oss.sgi.com > > Subject: [PATCH 3/3] ext4: Add support IOC_MOV_DATA ioctl > > > > This patch implements fs ioctl's IOC_MOV_DATA for Ext4. >=20 > Hmm isn't this basically what ext4_move_extents() does ? eg. > EXT4_IOC_MOVE_EXT ? >=20 > I guess that the intention here is to do the move, without actually > moving the data right ?=20 Yes, Right. > But nevertheless maybe some code can be > shared with ext4_move_extents() ? Yes, I will try to share IOC_MOV_DATA and EXT4_IOC_MOVE_EXT code as the = reply for Christoph. Thanks! >=20 > -Lukas >=20 > > > > The semantics of this ioctl are: > > 1) Like collapse range, offsets and length should be file system = block size > > aligned. > > 2) In the receiver file, atleast length size hole should be present = at > > receiver_offset > > 3) It does not change file size of any of donor or receiver file. > > 4) It leaves a hole at the place from where blocks are moved out in = donor file. > > 5) Both (donor_offset + length) and (receiver_offset + length) = should be within > > size of donor file and receiver file respectively. > > Only unwritten extents resides beyond file size and it does not = make sense > > to transfer unwritten extents, leave apart the security issues it = may raise. > > 6) If the range to be transfered from donor file contain any holes, = they are > > replicated as it is in receiver file. It mean holes are preserved = and > > the length of hole will be added to moved_len signifying that the = hole range > > is succesfully transfered. > > > > Signed-off-by: Namjae Jeon > > Signed-off-by: Ashish Sangwan > > --- > > fs/ext4/ext4.h | 2 + > > fs/ext4/extents.c | 375 = ++++++++++++++++++++++++++++++++++++++++++++++++++++++ > > fs/ext4/file.c | 1 + > > 3 files changed, 378 insertions(+) > > > > diff --git a/fs/ext4/ext4.h b/fs/ext4/ext4.h > > index 6386c5f..26478eb 100644 > > --- a/fs/ext4/ext4.h > > +++ b/fs/ext4/ext4.h > > @@ -2725,6 +2725,8 @@ extern int ext4_fiemap(struct inode *inode, = struct fiemap_extent_info *fieinfo, > > extern int ext4_ext_precache(struct inode *inode); > > extern int ext4_collapse_range(struct inode *inode, loff_t offset, = loff_t len); > > extern int ext4_insert_range(struct file *file, loff_t offset, = loff_t len); > > +extern int ext4_mov_data(struct inode *, struct inode *, loff_t, = loff_t, loff_t, > > + loff_t *); > > > > /* move_extent.c */ > > extern void ext4_double_down_write_data_sem(struct inode *first, > > diff --git a/fs/ext4/extents.c b/fs/ext4/extents.c > > index 0c2432e..511db03 100644 > > --- a/fs/ext4/extents.c > > +++ b/fs/ext4/extents.c > > @@ -5811,3 +5811,378 @@ out_mutex: > > mutex_unlock(&inode->i_mutex); > > return ret; > > } > > + > > +/* > > + * If offset_lblk does not lie on the extent start boundary, split = extent > > + */ > > +int ext4_find_and_split_extent_at(struct inode *inode, ext4_lblk_t = offset_lblk) > > +{ > > + struct ext4_ext_path *path; > > + handle_t *handle; > > + int credits, err =3D 0, split_flag, ex_len; > > + struct ext4_extent *ex; > > + int depth =3D ext_depth(inode); > > + ext4_lblk_t ex_start; > > + > > + path =3D ext4_ext_find_extent(inode, offset_lblk, NULL, 0); > > + if (IS_ERR(path)) > > + return PTR_ERR(path); > > + > > + ex =3D path[depth].p_ext; > > + if (!ex) > > + goto free_path; > > + ex_start =3D le32_to_cpu(ex->ee_block); > > + ex_len =3D ext4_ext_get_actual_len(ex); > > + > > + if (offset_lblk > ex_start && offset_lblk < (ex_start + ex_len)) { > > + credits =3D ext4_writepage_trans_blocks(inode); > > + handle =3D ext4_journal_start(inode, EXT4_HT_TRUNCATE, credits); > > + if (IS_ERR(handle)) { > > + err =3D PTR_ERR(handle); > > + goto free_path; > > + } > > + if (ext4_ext_is_unwritten(ex)) > > + split_flag =3D EXT4_EXT_MARK_UNWRIT1 | > > + EXT4_EXT_MARK_UNWRIT2; > > + else > > + split_flag =3D 0; > > + > > + err =3D ext4_split_extent_at(handle, inode, path, offset_lblk, > > + split_flag, EXT4_EX_NOCACHE | > > + EXT4_GET_BLOCKS_PRE_IO); > > + ext4_journal_stop(handle); > > + } > > + > > +free_path: > > + ext4_ext_drop_refs(path); > > + kfree(path); > > + return err; > > +} > > + > > +/* > > + * Compute the size of hole in terms of filesystem blocks present = at offset_lblk > > + * until the next extent is found OR till we reach the last block = within isize. > > + * Store the computed value in hole_blkcnt. > > + * offset_lblk should be within isize of inode. > > + */ > > +int ext4_compute_hole_size(struct inode *inode, ext4_lblk_t = offset_lblk, > > + ext4_lblk_t *hole_blkcnt) > > +{ > > + struct ext4_ext_path *path; > > + struct ext4_extent *ex; > > + ext4_lblk_t ex_start, isize_lblk; > > + int ret =3D 0, depth, ex_len; > > + > > + isize_lblk =3D (inode->i_size + EXT4_BLOCK_SIZE(inode->i_sb) - 1) = >> > > + EXT4_BLOCK_SIZE_BITS(inode->i_sb); > > + > > + if (offset_lblk > isize_lblk) > > + return -EINVAL; > > + > > + *hole_blkcnt =3D 0; > > + path =3D ext4_ext_find_extent(inode, offset_lblk, NULL, 0); > > + if (IS_ERR(path)) > > + return PTR_ERR(path); > > + > > + depth =3D ext_depth(inode); > > + ex =3D path[depth].p_ext; > > + if (!ex) { > > + /* No blocks allocated in this file */ > > + *hole_blkcnt =3D isize_lblk - offset_lblk; > > + goto out; > > + } > > + ex_start =3D le32_to_cpu(ex->ee_block); > > + ex_len =3D ext4_ext_get_actual_len(ex); > > + > > + /* if offset_lblk lies within extent? */ > > + if (offset_lblk >=3D ex_start && offset_lblk < (ex_start + = ex_len)) > > + goto out; > > + > > + if (ex_start < offset_lblk) { > > + ret =3D mext_next_extent(inode, path, &ex); > > + if (!ret) { > > + ex_start =3D le32_to_cpu(ex->ee_block); > > + } else { > > + if (ret =3D=3D 1) { > > + *hole_blkcnt =3D isize_lblk - offset_lblk; > > + ret =3D 0; > > + } > > + goto out; > > + } > > + } > > + *hole_blkcnt =3D (ex_start < isize_lblk) ? (ex_start - = offset_lblk) : > > + (isize_lblk - offset_lblk); > > +out: > > + ext4_ext_drop_refs(path); > > + kfree(path); > > + > > + return ret; > > +} > > + > > +/* > > + * Remove a complete extent from in memory and on-disk extent tree > > + * without freeing any data blocks covered by the extent. Caller = must call > > + * ext4_mark_inode_dirty() to sync the changes to disk. > > + */ > > +int ext4_ext_rm_extent(handle_t *handle, struct inode *inode, > > + struct ext4_ext_path *path, struct ext4_extent *ex) > > +{ > > + struct ext4_extent_header *eh; > > + int depth =3D ext_depth(inode); > > + int credits, err, correct_index =3D 0; > > + int ex_ee_len =3D ext4_ext_get_actual_len(ex); > > + > > + if (!path[depth].p_hdr) > > + path[depth].p_hdr =3D ext_block_hdr(path[depth].p_bh); > > + eh =3D path[depth].p_hdr; > > + > > + credits =3D 7 + 2*(ex_ee_len/EXT4_BLOCKS_PER_GROUP(inode->i_sb)); > > + if (ex =3D=3D EXT_FIRST_EXTENT(eh)) { > > + correct_index =3D 1; > > + credits +=3D (ext_depth(inode)) + 1; > > + } > > + credits +=3D EXT4_MAXQUOTAS_TRANS_BLOCKS(inode->i_sb); > > + err =3D ext4_ext_truncate_extend_restart(handle, inode, credits); > > + if (err) > > + return err; > > + > > + err =3D ext4_ext_get_access(handle, inode, path + depth); > > + if (err) > > + return err; > > + > > + ext4_ext_store_pblock(ex, 0); > > + memmove(ex, ex+1, > > + (EXT_LAST_EXTENT(eh) - ex) * sizeof(struct ext4_extent)); > > + memset(EXT_LAST_EXTENT(eh), 0, sizeof(struct ext4_extent)); > > + le16_add_cpu(&eh->eh_entries, -1); > > + > > + err =3D ext4_ext_dirty(handle, inode, path + depth); > > + if (err) > > + return err; > > + > > + if (correct_index && eh->eh_entries) > > + err =3D ext4_ext_correct_indexes(handle, inode, path); > > + > > + if (err =3D=3D 0 && eh->eh_entries =3D=3D 0 && path[depth].p_bh = !=3D NULL) > > + err =3D ext4_ext_rm_idx(handle, inode, path, depth); > > + > > + return err; > > +} > > + > > +/* > > + * Move len_lblk amount of blocks from donor inode to receiver = inode. > > + * Blocks are to be moved from doffset_lblk and moved to = roffset_lblk. > > + * Caller of this function must make sure there is atleast len_lblk = size > > + * hole at roffset_lblk. Also doffset_lblk and doffset_lblk + = len_lblk > > + * should fall on extent boundary. > > + */ > > +int ext4_ext_mov_data(struct inode *donor, struct inode *receiver, > > + ext4_lblk_t doffset_lblk, ext4_lblk_t roffset_lblk, > > + ext4_lblk_t len_lblk, loff_t *bytes_moved) > > +{ > > + int error =3D 0, depth =3D ext_depth(donor); > > + struct ext4_ext_path *path; > > + struct ext4_extent *ex; > > + loff_t blocks_moved =3D 0; > > + handle_t *handle; > > + int credits =3D ext4_writepage_trans_blocks(donor) + > > + ext4_writepage_trans_blocks(receiver); > > + > > + while (blocks_moved < len_lblk && !error) { > > + struct ext4_ext_path *rpath =3D NULL; > > + ext4_lblk_t ex_start; > > + int ex_len; > > + > > + path =3D ext4_ext_find_extent(donor, doffset_lblk, NULL, 0); > > + if (IS_ERR(path)) { > > + error =3D PTR_ERR(path); > > + break; > > + } > > + ex =3D path[depth].p_ext; > > + /* > > + * No allocated blocks? This could only happen during > > + * 1st iteration. Otherwise it is en error. > > + */ > > + if (!ex) { > > + if (blocks_moved) > > + error =3D -EIO; > > + else > > + blocks_moved =3D len_lblk; > > + goto out; > > + } > > + ex_start =3D le32_to_cpu(ex->ee_block); > > + ex_len =3D ext4_ext_get_actual_len(ex); > > + > > + if (doffset_lblk !=3D ex_start) { > > + /* Hole within range, move to the next extent */ > > + if (ex_start < doffset_lblk) > > + error =3D mext_next_extent(donor, path, &ex); > > + /* Below if will also handle ex_start > doffset_lblk */ > > + if (error =3D=3D 0) { > > + ex_start =3D le32_to_cpu(ex->ee_block); > > + blocks_moved +=3D ex_start - doffset_lblk; > > + roffset_lblk +=3D ex_start - doffset_lblk; > > + doffset_lblk =3D ex_start; > > + } > > + if (error =3D=3D 1) { > > + /* doffset_lblk till EOF is hole. Success!! */ > > + blocks_moved =3D len_lblk; > > + error =3D 0; > > + } > > + goto out; > > + } > > + > > + /* Add this extent to receiver */ > > + handle =3D ext4_journal_start(donor, EXT4_HT_TRUNCATE, credits); > > + if (IS_ERR(handle)) { > > + error =3D PTR_ERR(handle); > > + goto out; > > + } > > + > > + rpath =3D ext4_ext_find_extent(receiver, roffset_lblk, NULL, 0); > > + if (IS_ERR(rpath)) { > > + error =3D PTR_ERR(rpath); > > + ext4_journal_stop(handle); > > + goto out; > > + } > > + ex->ee_block =3D cpu_to_le32(roffset_lblk); > > + error =3D ext4_ext_insert_extent(handle, receiver, rpath, ex, 0); > > + if (error) > > + goto hout; > > + > > + /* Remove this extent from donor */ > > + error =3D ext4_ext_rm_extent(handle, donor, path, ex); > > + if (error) > > + goto hout; > > + > > + /* Extent moved successfully */ > > + roffset_lblk +=3D ex_len; > > + doffset_lblk +=3D ex_len; > > + blocks_moved +=3D ex_len; > > + > > + donor->i_blocks -=3D (ex_len << (donor->i_blkbits - 9)); > > + receiver->i_blocks +=3D (ex_len << (receiver->i_blkbits - 9)); > > + donor->i_mtime =3D donor->i_ctime =3D ext4_current_time(donor); > > + receiver->i_mtime =3D receiver->i_ctime =3D > > + ext4_current_time(receiver); > > + ext4_mark_inode_dirty(handle, donor); > > + ext4_mark_inode_dirty(handle, receiver); > > +hout: > > + ext4_journal_stop(handle); > > + ext4_ext_drop_refs(rpath); > > + kfree(rpath); > > +out: > > + ext4_ext_drop_refs(path); > > + kfree(path); > > + } > > + > > + /* This can happen when (doffset_lblk + len_lblk) is in a hole */ > > + if (blocks_moved > len_lblk) > > + blocks_moved =3D len_lblk; > > + > > + *bytes_moved =3D blocks_moved << = EXT4_BLOCK_SIZE_BITS(donor->i_sb); > > + return error; > > +} > > + > > +int ext4_mov_data(struct inode *donor, struct inode *receiver, = loff_t doffset, > > + loff_t roffset, loff_t len, loff_t *moved_len) > > +{ > > + struct super_block *sb =3D donor->i_sb; > > + loff_t d_pg_off, r_pg_off, pg_len; > > + ext4_lblk_t doffset_lblk, roffset_lblk, len_lblk, hole_size; > > + int error; > > + > > + if (doffset & (EXT4_BLOCK_SIZE(sb) - 1) || > > + roffset & (EXT4_BLOCK_SIZE(sb) - 1) || > > + len & (EXT4_BLOCK_SIZE(sb) - 1)) > > + return -EINVAL; > > + > > + if (EXT4_SB(sb)->s_cluster_ratio > 1) > > + return -EOPNOTSUPP; > > + > > + if (!ext4_test_inode_flag(donor, EXT4_INODE_EXTENTS) || > > + !ext4_test_inode_flag(receiver, EXT4_INODE_EXTENTS)) > > + return -EOPNOTSUPP; > > + > > + doffset_lblk =3D doffset >> EXT4_BLOCK_SIZE_BITS(sb); > > + roffset_lblk =3D roffset >> EXT4_BLOCK_SIZE_BITS(sb); > > + len_lblk =3D len >> EXT4_BLOCK_SIZE_BITS(sb); > > + > > + d_pg_off =3D round_down(doffset, PAGE_SIZE); > > + r_pg_off =3D round_down(roffset, PAGE_SIZE); > > + pg_len =3D round_up(len, PAGE_SIZE); > > + > > + if (ext4_should_journal_data(donor)) { > > + error =3D ext4_force_commit(donor->i_sb); > > + if (error) > > + return error; > > + error =3D ext4_force_commit(receiver->i_sb); > > + if (error) > > + return error; > > + } > > + > > + error =3D filemap_write_and_wait_range(donor->i_mapping, > > + d_pg_off, d_pg_off + pg_len); > > + if (error) > > + return error; > > + error =3D filemap_write_and_wait_range(receiver->i_mapping, > > + r_pg_off, r_pg_off + pg_len); > > + if (error) > > + return error; > > + > > + lock_two_nondirectories(donor, receiver); > > + > > + /* Check for isize limits for both files */ > > + if (doffset + len > donor->i_size || > > + roffset + len > receiver->i_size) { > > + error =3D -EINVAL; > > + goto out_mutex; > > + } > > + > > + truncate_pagecache_range(donor, d_pg_off, d_pg_off + pg_len - 1); > > + truncate_pagecache_range(receiver, r_pg_off, r_pg_off + pg_len - = 1); > > + > > + ext4_inode_block_unlocked_dio(donor); > > + inode_dio_wait(donor); > > + ext4_inode_block_unlocked_dio(receiver); > > + inode_dio_wait(receiver); > > + > > + ext4_discard_preallocations(donor); > > + ext4_discard_preallocations(receiver); > > + > > + error =3D ext4_es_remove_extent(donor, doffset_lblk, len_lblk); > > + if (error) > > + goto out_sem; > > + error =3D ext4_es_remove_extent(receiver, roffset_lblk, len_lblk); > > + if (error) > > + goto out_sem; > > + > > + error =3D ext4_compute_hole_size(receiver, roffset_lblk, = &hole_size); > > + if (error) > > + goto out_sem; > > + if (len_lblk > hole_size) { > > + error =3D -EINVAL; > > + goto out_sem; > > + } > > + > > + error =3D ext4_find_and_split_extent_at(donor, doffset_lblk); > > + if (error) > > + goto out_sem; > > + > > + error =3D ext4_find_and_split_extent_at(donor, doffset_lblk + = len_lblk); > > + if (error) > > + goto out_sem; > > + > > + error =3D ext4_ext_mov_data(donor, receiver, doffset_lblk, > > + roffset_lblk, len_lblk, moved_len); > > + > > + ext4_discard_preallocations(donor); > > + ext4_discard_preallocations(receiver); > > +out_sem: > > + ext4_inode_resume_unlocked_dio(donor); > > + ext4_inode_resume_unlocked_dio(receiver); > > + > > +out_mutex: > > + unlock_two_nondirectories(donor, receiver); > > + return error; > > +} > > diff --git a/fs/ext4/file.c b/fs/ext4/file.c > > index 8695f70..d2feaba 100644 > > --- a/fs/ext4/file.c > > +++ b/fs/ext4/file.c > > @@ -614,5 +614,6 @@ const struct inode_operations = ext4_file_inode_operations =3D { > > .get_acl =3D ext4_get_acl, > > .set_acl =3D ext4_set_acl, > > .fiemap =3D ext4_fiemap, > > + .mov_data =3D ext4_mov_data, > > }; > > > > From phplistbounces@megatronmailer.com Wed Jul 9 02:01:16 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: ** X-Spam-Status: No, score=2.2 required=5.0 tests=HTML_IMAGE_ONLY_32, HTML_MESSAGE,T_DKIM_INVALID autolearn=no version=3.3.1 X-Original-To: xfs@oss.sgi.com Delivered-To: xfs@oss.sgi.com Received: from relay.sgi.com (relay2.corp.sgi.com [137.38.102.29]) by oss.sgi.com (Postfix) with ESMTP id EF2377F3F for ; Wed, 9 Jul 2014 02:01:16 -0500 (CDT) Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by relay2.corp.sgi.com (Postfix) with ESMTP id E378C304039 for ; Wed, 9 Jul 2014 00:01:13 -0700 (PDT) X-ASG-Debug-ID: 1404889270-04cbb06538369de0001-NocioJ Received: from hosting.megatronptc.com (megatronptc.com [72.9.158.98]) by cuda.sgi.com with ESMTP id vUhgG81jZ48HIJFC (version=TLSv1 cipher=AES256-SHA bits=256 verify=NO) for ; Wed, 09 Jul 2014 00:01:11 -0700 (PDT) X-Barracuda-Envelope-From: phplistbounces@megatronmailer.com X-Barracuda-Apparent-Source-IP: 72.9.158.98 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=megatronmailer.com; s=default; h=Content-Type:MIME-Version:List-Owner:List-Subscribe:List-Unsubscribe:List-Help:Message-ID:Reply-To:From:Date:Subject:To; bh=+OXnb2NXQXGNSApTMwkAGFS7FXw2BegtHhvOEi5YUuw=; b=FUK0MzPewvx6MXgYgzRFpV76+5Fzzdd9l6vPtDy2wpG3wxuSV3kkcIFKZdJ2smCJDf6fC0HLnS8JgyEdqGAWX6SEs0DnnqO5WY9I7x+HDmnyf6PWE5wA30zKwMAjUT+gToAT4vEf0RZEcu2GIT1ZZDGoKWmQoSihWe6/Oym75vs=; Received: from megamail by hosting.megatronptc.com with local (Exim 4.82) (envelope-from ) id 1X4lsL-0006gC-O6 for xfs@oss.sgi.com; Wed, 09 Jul 2014 03:01:09 -0400 To: xfs@oss.sgi.com Subject: =?UTF-8?Q?Climatisation_Murale_N=E2=80=99attendez_pas_la_prochaine_canicu?= =?UTF-8?Q?le?= Date: Wed, 9 Jul 2014 02:01:09 -0500 X-ASG-Orig-Subj: =?UTF-8?Q?Climatisation_Murale_N=E2=80=99attendez_pas_la_prochaine_canicu?= =?UTF-8?Q?le?= From: "frigor@sympatico.ca" Reply-To: "frigor@sympatico.ca" Message-ID: X-Priority: 3 X-Mailer: PHPMailer 5.2.5 (https://github.com/Synchro/PHPMailer/) X-phpList-version: 3.0.6 X-MessageID: 4 X-ListMember: xfs@oss.sgi.com Precedence: bulk Bounces-To: phplistbounces@megatronmailer.com List-Help: List-Unsubscribe: List-Subscribe: List-Owner: MIME-Version: 1.0 Content-Type: multipart/alternative; boundary="b1_ddc824917c1a2a4663123266516c64a6" X-AntiAbuse: This header was added to track abuse, please include it with any abuse report X-AntiAbuse: Primary Hostname - hosting.megatronptc.com X-AntiAbuse: Original Domain - oss.sgi.com X-AntiAbuse: Originator/Caller UID/GID - [512 513] / [47 12] X-AntiAbuse: Sender Address Domain - megatronmailer.com X-Get-Message-Sender-Via: hosting.megatronptc.com: authenticated_id: megamail/sender_address_domain X-Barracuda-Connect: megatronptc.com[72.9.158.98] X-Barracuda-Start-Time: 1404889271 X-Barracuda-Encrypted: AES256-SHA X-Barracuda-URL: http://192.48.176.25:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 X-Barracuda-Spam-Score: 0.80 X-Barracuda-Spam-Status: No, SCORE=0.80 using per-user scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.7 tests=BSF_SC7_SA_HREF_WWW_MISMATCH, DKIM_SIGNED, DKIM_VERIFIED, HTML_IMAGE_ONLY_32, HTML_MESSAGE X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.7362 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.80 BSF_SC7_SA_HREF_WWW_MISMATCH BODY: Custom Phishing Mismatch -0.00 DKIM_VERIFIED Domain Keys Identified Mail: signature passes verification 0.00 DKIM_SIGNED Domain Keys Identified Mail: message has a signature 0.00 HTML_IMAGE_ONLY_32 BODY: HTML: images with 2800-3200 bytes of words 0.00 HTML_MESSAGE BODY: HTML included in message --b1_ddc824917c1a2a4663123266516c64a6 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable **Climatisation Murale N'attendez pas la canicule** **Climatiseurs muraux 9000 =C3=A0 18000 BTU** Compresseur Toshiba garantie 5 ans =C3=80 partir de 1295$ installation comprise Prix imbattables sur nos produits de marque Napol=C3=A9on Climatisation D=C3=A9shumidification Chauffage jusqu'=C3=A0 - 15 Celsius (a= vec arr=C3=AAt automatique) DC Inverter Compresseur Toshiba garantie de 5 ans compl=C3=A8te Appareil certifi=C3=A9 Energy Star =C3=89ligible =C3=A0 une subvention de 650$ **Appareil haut de gamme =C3=A0 prix imbattables 12 000 BTU =C3=A0 partir d= e 2195$ installation incluse.** Contactez-nous: Frigor / Groupe Senick RBQ: 8355-1929-45 Service rapide et professionnel http://megatronmailer.com/lists/lt.php?id=3DYR8CSAIfAgEPVl4A R=C3=A9servez maintenant: 514 792-6461 450 441-1235 1 800 678-1673 L'=C3=A9quipe de Frigor s'engage =C3=A0 vous offrir des produits de confort= au foyer d'excellente qualit=C3=A9 et =C3=A0 prix abordable d=C3=A9fiant toute concurrence.=20 De plus nous avons acc=C3=A8s a presque toutes les marques disponibles sur le march=C3=A9. -- Destinataire (votre email - courriel): xfs@oss.sgi.com=20 Diffusion par Megatron Communications inc., gestionnaire de la liste: Frigor inc. Modification de mon consentement: Je veut choisir a quelle liste je donne mon consentement explicite. Demande de retrait total: Je retire mon consentement pour toute les listes de Megatron Mailer Lists (pour tous les clients sans exception)=0A . =20 -- megatronmailer.com/lists/ -- --b1_ddc824917c1a2a4663123266516c64a6 Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: quoted-printable =0A =0A

Clim= atisation Murale N’attendez pas la canicule

3D"thermopompe-murale"

Climatiseurs muraux 9000 à 18000 BTU

Compresseur Toshiba garantie 5 ans À partir de 1295$ installatio= n comprise

Prix imbattables sur nos produits de marque Napoléon

Climatisation Déshumidification Chauffage jusqu'à= ; - 15 Celsius (avec arrêt automatique)

DC Inverter Compresseur Toshiba garantie de 5 ans complète

Appareil certifié Energy Star

Éligible à une subvention de 650$

Appareil haut de gamme à prix imbattables 12 000 BTU à = partir de 2195$ installation incluse.

Contactez-nous: Frigor / Groupe Senick RBQ: 8355-1929-45

Service rapide et professionnel

3D"Logo

www.frigor.ca

Réservez maintenant:

514 792-6461

450 441-1235

1 800 678-1673

L'&eacu= te;quipe de Frigor s'engage à vous offrir des produits de confort au foyer d&r= squo;excellente qualité et à prix abordable défiant to= ute concurrence. 

De plus nous avons accès a presque toutes les marques dis= ponibles sur le marché.


-- =20

Destinataire (votre email - courriel): xfs@oss.sgi.com
Diffusion par Megatron Communications inc., gestionnaire de la liste: F= rigor inc.


Modification de mon consentement:
= Je veut choisir a quelle liste je donne mon consentement explicite.
Demande de retrait total:
= Je retire mon consentement pour toute les listes de Megatron Mailer Lists (pour tous les clients sans exception).

=0A --b1_ddc824917c1a2a4663123266516c64a6-- From BATV+25346d08919987542266+3972+infradead.org+hch@bombadil.srs.infradead.org Wed Jul 9 03:59:15 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: xfs@oss.sgi.com Delivered-To: xfs@oss.sgi.com Received: from relay.sgi.com (relay1.corp.sgi.com [137.38.102.111]) by oss.sgi.com (Postfix) with ESMTP id 941657F3F for ; Wed, 9 Jul 2014 03:59:15 -0500 (CDT) Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by relay1.corp.sgi.com (Postfix) with ESMTP id 4DF0E8F8068 for ; Wed, 9 Jul 2014 01:59:15 -0700 (PDT) X-ASG-Debug-ID: 1404896353-04cbb0653736d4f0001-NocioJ Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.9]) by cuda.sgi.com with ESMTP id miYwPH0fHUaI5Mqr (version=TLSv1 cipher=AES256-SHA bits=256 verify=NO) for ; Wed, 09 Jul 2014 01:59:14 -0700 (PDT) X-Barracuda-Envelope-From: BATV+25346d08919987542266+3972+infradead.org+hch@bombadil.srs.infradead.org X-Barracuda-Apparent-Source-IP: 198.137.202.9 Received: from hch by bombadil.infradead.org with local (Exim 4.80.1 #2 (Red Hat Linux)) id 1X4nib-0006Zb-AD; Wed, 09 Jul 2014 08:59:13 +0000 Date: Wed, 9 Jul 2014 01:59:13 -0700 From: Christoph Hellwig To: Dave Chinner Cc: xfs@oss.sgi.com Subject: Re: [PATCH 1/2] libxfs: clear the buffer error while the buffer is locked Message-ID: <20140709085913.GA24910@infradead.org> X-ASG-Orig-Subj: Re: [PATCH 1/2] libxfs: clear the buffer error while the buffer is locked References: <1404862900-3369-1-git-send-email-david@fromorbit.com> <1404862900-3369-2-git-send-email-david@fromorbit.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1404862900-3369-2-git-send-email-david@fromorbit.com> User-Agent: Mutt/1.5.23 (2014-03-12) X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: bombadil.infradead.org[198.137.202.9] X-Barracuda-Start-Time: 1404896354 X-Barracuda-Encrypted: AES256-SHA X-Barracuda-URL: http://192.48.176.25:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 X-Barracuda-Spam-Score: 0.00 X-Barracuda-Spam-Status: No, SCORE=0.00 using per-user scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.7 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.7364 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- On Wed, Jul 09, 2014 at 09:41:39AM +1000, Dave Chinner wrote: > From: Dave Chinner > > When releasing a buffer, the error shoul dbe cleared while the lock > is still held on the buffer to avoid racing with a new user of the > buffer. > > This was pointed out in review of commit 6af7c1e ("libxfs: reused > invalidated buffers leak state and data") but the version committed > didn't have the fix. Thanks to Christoph Hellwig for checking and > pointing out the oversight. Looks good, Reviewed-by: Christoph Hellwig From BATV+25346d08919987542266+3972+infradead.org+hch@bombadil.srs.infradead.org Wed Jul 9 04:00:23 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: xfs@oss.sgi.com Delivered-To: xfs@oss.sgi.com Received: from relay.sgi.com (relay1.corp.sgi.com [137.38.102.111]) by oss.sgi.com (Postfix) with ESMTP id 21F647F3F for ; Wed, 9 Jul 2014 04:00:23 -0500 (CDT) Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by relay1.corp.sgi.com (Postfix) with ESMTP id 043D98F807A for ; Wed, 9 Jul 2014 02:00:22 -0700 (PDT) X-ASG-Debug-ID: 1404896421-04cbb0653836d560001-NocioJ Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.9]) by cuda.sgi.com with ESMTP id ANe0hxWLGJjTZR5z (version=TLSv1 cipher=AES256-SHA bits=256 verify=NO) for ; Wed, 09 Jul 2014 02:00:21 -0700 (PDT) X-Barracuda-Envelope-From: BATV+25346d08919987542266+3972+infradead.org+hch@bombadil.srs.infradead.org X-Barracuda-Apparent-Source-IP: 198.137.202.9 Received: from hch by bombadil.infradead.org with local (Exim 4.80.1 #2 (Red Hat Linux)) id 1X4njh-0007rQ-6c; Wed, 09 Jul 2014 09:00:21 +0000 Date: Wed, 9 Jul 2014 02:00:21 -0700 From: Christoph Hellwig To: Dave Chinner Cc: xfs@oss.sgi.com Subject: Re: [PATCH 2/2] repair: handle uncorrected corruptions in phase 2 Message-ID: <20140709090021.GB24910@infradead.org> X-ASG-Orig-Subj: Re: [PATCH 2/2] repair: handle uncorrected corruptions in phase 2 References: <1404862900-3369-1-git-send-email-david@fromorbit.com> <1404862900-3369-3-git-send-email-david@fromorbit.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1404862900-3369-3-git-send-email-david@fromorbit.com> User-Agent: Mutt/1.5.23 (2014-03-12) X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: bombadil.infradead.org[198.137.202.9] X-Barracuda-Start-Time: 1404896421 X-Barracuda-Encrypted: AES256-SHA X-Barracuda-URL: http://192.48.176.25:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-Spam-Score: 0.00 X-Barracuda-Spam-Status: No, SCORE=0.00 using per-user scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.7 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.7364 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- Looks good, Reviewed-by: Christoph Hellwig From BATV+25346d08919987542266+3972+infradead.org+hch@bombadil.srs.infradead.org Wed Jul 9 04:02:30 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: xfs@oss.sgi.com Delivered-To: xfs@oss.sgi.com Received: from relay.sgi.com (relay2.corp.sgi.com [137.38.102.29]) by oss.sgi.com (Postfix) with ESMTP id 4078F7F4E for ; Wed, 9 Jul 2014 04:02:30 -0500 (CDT) Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by relay2.corp.sgi.com (Postfix) with ESMTP id 114BF304062 for ; Wed, 9 Jul 2014 02:02:27 -0700 (PDT) X-ASG-Debug-ID: 1404896545-04bdf056688b2560001-NocioJ Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.9]) by cuda.sgi.com with ESMTP id sdMu80Ulb3gePcS3 (version=TLSv1 cipher=AES256-SHA bits=256 verify=NO); Wed, 09 Jul 2014 02:02:25 -0700 (PDT) X-Barracuda-Envelope-From: BATV+25346d08919987542266+3972+infradead.org+hch@bombadil.srs.infradead.org X-Barracuda-Apparent-Source-IP: 198.137.202.9 Received: from hch by bombadil.infradead.org with local (Exim 4.80.1 #2 (Red Hat Linux)) id 1X4nlh-0008JO-0e; Wed, 09 Jul 2014 09:02:25 +0000 Date: Wed, 9 Jul 2014 02:02:24 -0700 From: Christoph Hellwig To: Mark Tinguely Cc: xfs@oss.sgi.com Subject: Re: [PATCH 4/5] xfs: free inodes on log recovery error Message-ID: <20140709090224.GA31122@infradead.org> X-ASG-Orig-Subj: Re: [PATCH 4/5] xfs: free inodes on log recovery error References: <20140702143206.438456679@sgi.com> <20140702144139.894251516@sgi.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20140702144139.894251516@sgi.com> User-Agent: Mutt/1.5.23 (2014-03-12) X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: bombadil.infradead.org[198.137.202.9] X-Barracuda-Start-Time: 1404896545 X-Barracuda-Encrypted: AES256-SHA X-Barracuda-URL: http://192.48.157.11:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 X-Barracuda-Spam-Score: 0.60 X-Barracuda-Spam-Status: No, SCORE=0.60 using per-user scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.7 tests=MARKETING_SUBJECT X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.7364 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.60 MARKETING_SUBJECT Subject contains popular marketing words On Wed, Jul 02, 2014 at 09:32:10AM -0500, Mark Tinguely wrote: > Recovery may free inodes that end up on the inode > reclaim RCU. If recovery fails, we leak these inodes. > The filesystem should be in forced shutdown at this > point, so a call to xfs_reclaim_inode is a fast path > to freeing the inodes and RCU entries. I haven't really started reviewing the series, but your terminology here seems wrong. RCU is just a way to synchronize updates - do you mean inodes are marked as reclaimable in the radix tree? From jan@tulak.me Wed Jul 9 04:30:22 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: xfs@oss.sgi.com Delivered-To: xfs@oss.sgi.com Received: from relay.sgi.com (relay1.corp.sgi.com [137.38.102.111]) by oss.sgi.com (Postfix) with ESMTP id AC89E7F3F for ; Wed, 9 Jul 2014 04:30:22 -0500 (CDT) Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by relay1.corp.sgi.com (Postfix) with ESMTP id 9DCB68F8068 for ; Wed, 9 Jul 2014 02:30:19 -0700 (PDT) X-ASG-Debug-ID: 1404898216-04cb6c76d2533eb0001-NocioJ Received: from mail-wi0-f175.google.com (mail-wi0-f175.google.com [209.85.212.175]) by cuda.sgi.com with ESMTP id 9w1L6mWUugn3E52f (version=TLSv1 cipher=RC4-SHA bits=128 verify=NO) for ; Wed, 09 Jul 2014 02:30:17 -0700 (PDT) X-Barracuda-Envelope-From: jan@tulak.me X-Barracuda-Apparent-Source-IP: 209.85.212.175 Received: by mail-wi0-f175.google.com with SMTP id ho1so2378795wib.8 for ; Wed, 09 Jul 2014 02:30:16 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:message-id:subject:from:to:date:content-type :mime-version:content-transfer-encoding; bh=Nckn5iSK4HTq0KqV3JBdZ9Pxy25Ipqyo6THFwprrWG4=; b=VJWAoM17r/15jm2vT7Shm7EikCqUAeEAjoElJZTQMzfFUkgMvy7oxriahNDxGaCeBz oyYq68vYZbH0S0dvbjVaBrZZ72Oxf2INDsQVrtA3eVQ7ePSjPIUmwV63Jrem2wwOe8Ji PcRsBInqXKN8TdhveU9VsuOulahJWvy/qc88dZ7wc9KYtKT5BIsmRQCR+TNCA6tVV9jU uouKEh5KEFhP8oI1HiggFUrdn309eNADFt1k8XciFwWmlVX4e0qRuo1czkE9bQOcbtfC ALADNJy/QwOFYDN3HgNDTr3uOG1BrgKUjZ8NxJu+y5sZhyBIv75r1lbzrURe1Vtmce04 gwaQ== X-Gm-Message-State: ALoCoQkmM1e+yY43snjkTzqQV5L8i6Je7D1L7yO+o3CfL2v1h5fyYJI3/QcfewEGjb5YGg4e/Ood X-Received: by 10.180.228.103 with SMTP id sh7mr5059972wic.46.1404898215705; Wed, 09 Jul 2014 02:30:15 -0700 (PDT) Received: from [10.34.1.157] (nat-pool-brq-t.redhat.com. [209.132.186.34]) by mx.google.com with ESMTPSA id i4sm17227753wib.21.2014.07.09.02.30.14 for (version=TLSv1 cipher=RC4-SHA bits=128/128); Wed, 09 Jul 2014 02:30:14 -0700 (PDT) Message-ID: <1404898212.7231.12.camel@jtulak> Subject: symlink loop for /lib64/libhandle.so From: Jan =?UTF-8?Q?=C5=A4ul=C3=A1k?= X-ASG-Orig-Subj: symlink loop for /lib64/libhandle.so To: XFS mail list Date: Wed, 09 Jul 2014 11:30:12 +0200 Content-Type: text/plain; charset="UTF-8" X-Mailer: Evolution 3.10.4 (3.10.4-2.fc20) Mime-Version: 1.0 Content-Transfer-Encoding: 7bit X-Barracuda-Connect: mail-wi0-f175.google.com[209.85.212.175] X-Barracuda-Start-Time: 1404898216 X-Barracuda-Encrypted: RC4-SHA X-Barracuda-URL: http://192.48.176.15:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 X-Barracuda-Spam-Score: 0.00 X-Barracuda-Spam-Status: No, SCORE=0.00 using per-user scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.7 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.7365 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- Hi, when I install xfsprogs from Git, I get a symlink loop: $ ls -l /lib64/libhandle.so lrwxrwxrwx. 1 root root 19 Jul 9 09:56 /lib64/libhandle.so -> /lib64/libhandle.so I guess it should point to libhandle.so.1. I'm using this repo: git://oss.sgi.com/xfs/cmds/xfsprogs And just the usual "make && sudo make install" commands. Also, I have made sure the libhandle library was not installed before this installation. Used HW/SW: - A virtual machine in KVM. - Fedora 20 x86_64 If it not an intended behavior, I can try to find the source of the bug and make a patch (I'm new here :-). Thanks, Jan Tulak From bfoster@redhat.com Wed Jul 9 08:28:45 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: xfs@oss.sgi.com Delivered-To: xfs@oss.sgi.com Received: from relay.sgi.com (relay1.corp.sgi.com [137.38.102.111]) by oss.sgi.com (Postfix) with ESMTP id 5F2847F3F for ; Wed, 9 Jul 2014 08:28:45 -0500 (CDT) Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by relay1.corp.sgi.com (Postfix) with ESMTP id 2E0438F804C for ; Wed, 9 Jul 2014 06:28:42 -0700 (PDT) X-ASG-Debug-ID: 1404912520-04bdf056678bd750001-NocioJ Received: from mx1.redhat.com (mx1.redhat.com [209.132.183.28]) by cuda.sgi.com with ESMTP id AkXwu5qrvIwD2vJx (version=TLSv1 cipher=AES256-SHA bits=256 verify=NO) for ; Wed, 09 Jul 2014 06:28:40 -0700 (PDT) X-Barracuda-Envelope-From: bfoster@redhat.com X-Barracuda-Apparent-Source-IP: 209.132.183.28 X-ASG-Whitelist: Client Received: from int-mx14.intmail.prod.int.phx2.redhat.com (int-mx14.intmail.prod.int.phx2.redhat.com [10.5.11.27]) by mx1.redhat.com (8.14.4/8.14.4) with ESMTP id s69DScqv022940 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 9 Jul 2014 09:28:39 -0400 Received: from bfoster.bfoster ([10.18.41.237]) by int-mx14.intmail.prod.int.phx2.redhat.com (8.14.4/8.14.4) with ESMTP id s69DSb16031382; Wed, 9 Jul 2014 09:28:38 -0400 Received: by bfoster.bfoster (Postfix, from userid 1000) id BD72B123BCD; Wed, 9 Jul 2014 09:28:36 -0400 (EDT) Date: Wed, 9 Jul 2014 09:28:36 -0400 From: Brian Foster To: Jan =?utf-8?B?xaR1bMOhaw==?= Cc: XFS mail list Subject: Re: symlink loop for /lib64/libhandle.so Message-ID: <20140709132836.GA65226@bfoster.bfoster> X-ASG-Orig-Subj: Re: symlink loop for /lib64/libhandle.so References: <1404898212.7231.12.camel@jtulak> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: <1404898212.7231.12.camel@jtulak> User-Agent: Mutt/1.5.23 (2014-03-12) X-Scanned-By: MIMEDefang 2.68 on 10.5.11.27 X-Barracuda-Connect: mx1.redhat.com[209.132.183.28] X-Barracuda-Start-Time: 1404912520 X-Barracuda-Encrypted: AES256-SHA X-Barracuda-URL: http://192.48.157.11:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 On Wed, Jul 09, 2014 at 11:30:12AM +0200, Jan Ťulák wrote: > Hi, > > when I install xfsprogs from Git, I get a symlink loop: > $ ls -l /lib64/libhandle.so > lrwxrwxrwx. 1 root root 19 Jul 9 09:56 /lib64/libhandle.so > -> /lib64/libhandle.so > > I guess it should point to libhandle.so.1. > > > I'm using this repo: git://oss.sgi.com/xfs/cmds/xfsprogs > And just the usual "make && sudo make install" commands. > > Also, I have made sure the libhandle library was not installed before > this installation. > > > Used HW/SW: > - A virtual machine in KVM. > - Fedora 20 x86_64 > > If it not an intended behavior, I can try to find the source of the bug > and make a patch (I'm new here :-). > I can reproduce this on fedora rawhide via 'make install-qa.' This is not intended behavior. I couldn't tell you what the problem is, but patches are certainly welcome. :) Brian > Thanks, > Jan Tulak > > _______________________________________________ > xfs mailing list > xfs@oss.sgi.com > http://oss.sgi.com/mailman/listinfo/xfs From phplistbounces@megatronmailer.com Wed Jul 9 15:54:47 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=HTML_MESSAGE,T_DKIM_INVALID autolearn=ham version=3.3.1 X-Original-To: xfs@oss.sgi.com Delivered-To: xfs@oss.sgi.com Received: from relay.sgi.com (relay3.corp.sgi.com [198.149.34.15]) by oss.sgi.com (Postfix) with ESMTP id CC3D47F3F for ; Wed, 9 Jul 2014 15:54:46 -0500 (CDT) Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by relay3.corp.sgi.com (Postfix) with ESMTP id 5D303AC006 for ; Wed, 9 Jul 2014 13:54:46 -0700 (PDT) X-ASG-Debug-ID: 1404939282-04cb6c76cf54fab0001-NocioJ Received: from hosting.megatronptc.com (megatronptc.com [72.9.158.98]) by cuda.sgi.com with ESMTP id V0SLgMjdAaJh13G5 (version=TLSv1 cipher=AES256-SHA bits=256 verify=NO) for ; Wed, 09 Jul 2014 13:54:43 -0700 (PDT) X-Barracuda-Envelope-From: phplistbounces@megatronmailer.com X-Barracuda-Apparent-Source-IP: 72.9.158.98 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=megatronmailer.com; s=default; h=Content-Type:MIME-Version:List-Owner:List-Subscribe:List-Unsubscribe:List-Help:Message-ID:Reply-To:From:Date:Subject:To; bh=5MWa9Z3gvG9IySHubDwIyOVu22zmw6U0e1UaaCOfoh4=; b=KxJcBQZw3vDG+33j5hRWI0LAZrTzW7plQ9NkDQEWBgZ+zzeFDcEx92HLPceIT6sl5KgWXj8rzXMBOTUFE1HmwLSj2i29NAMr05CjmX0HTpvu2J5cBFtmB0S2FxkoposVv/eyJK3S+OUMXhjdE5FFLc9qSaPp5n8HPkhR5lbh2xU=; Received: from megamail by hosting.megatronptc.com with local (Exim 4.82) (envelope-from ) id 1X4yt0-00021v-Ap for xfs@oss.sgi.com; Wed, 09 Jul 2014 16:54:42 -0400 To: xfs@oss.sgi.com Subject: =?UTF-8?Q?Le_Vent_du_Nord_au_Qu=C3=A9bec_-_Location_de_chalets_et_studios?= Date: Wed, 9 Jul 2014 15:54:42 -0500 X-ASG-Orig-Subj: =?UTF-8?Q?Le_Vent_du_Nord_au_Qu=C3=A9bec_-_Location_de_chalets_et_studios?= From: "info@leventdunord.ca" Reply-To: "info@leventdunord.ca" Message-ID: X-Priority: 3 X-Mailer: PHPMailer 5.2.5 (https://github.com/Synchro/PHPMailer/) X-phpList-version: 3.0.6 X-MessageID: 11 X-ListMember: xfs@oss.sgi.com Precedence: bulk Bounces-To: phplistbounces@megatronmailer.com List-Help: List-Unsubscribe: List-Subscribe: List-Owner: MIME-Version: 1.0 Content-Type: multipart/alternative; boundary="b1_b68f6ca36950ea1da19513b947eb654f" X-AntiAbuse: This header was added to track abuse, please include it with any abuse report X-AntiAbuse: Primary Hostname - hosting.megatronptc.com X-AntiAbuse: Original Domain - oss.sgi.com X-AntiAbuse: Originator/Caller UID/GID - [512 513] / [47 12] X-AntiAbuse: Sender Address Domain - megatronmailer.com X-Get-Message-Sender-Via: hosting.megatronptc.com: authenticated_id: megamail/sender_address_domain X-Barracuda-Connect: megatronptc.com[72.9.158.98] X-Barracuda-Start-Time: 1404939283 X-Barracuda-Encrypted: AES256-SHA X-Barracuda-URL: http://192.48.176.15:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 X-Barracuda-Spam-Score: 0.80 X-Barracuda-Spam-Status: No, SCORE=0.80 using per-user scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.7 tests=BSF_SC7_SA_HREF_WWW_MISMATCH, DKIM_SIGNED, DKIM_VERIFIED, HTML_MESSAGE X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.7381 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.80 BSF_SC7_SA_HREF_WWW_MISMATCH BODY: Custom Phishing Mismatch -0.00 DKIM_VERIFIED Domain Keys Identified Mail: signature passes verification 0.00 DKIM_SIGNED Domain Keys Identified Mail: message has a signature 0.00 HTML_MESSAGE BODY: HTML included in message --b1_b68f6ca36950ea1da19513b947eb654f Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable **Le Vent du Nord=0A Mont-Tremblant Qu=C3=A9bec=0A ** ***V*ous invite =C3=A0 venir d=C3=A9couvrir les magnifiques montagnes des Laurentides.** **Situ=C3=A9 au Lac Sup=C3=A9rieur, versant Nord du Mont-Tremblant au Qu=C3=A9bec.** **7 km de la Station de Ski Mont-Tremblant et du Parc National du Mont-Tremblant.** =C3=80 quelques pas des sentiers p=C3=A9destres, des pistes cyclables et de= s sentiers de ski de randonn=C3=A9e. l'endroit id=C3=A9al pour les vacances en famille, en couple ou encore pour se ressourcer loin des grands centres urbains. **Trois splendides chalets, un loft et six appartements de luxe:** le tout =C3=A0 des prix abordables pour tous. Chaque chalet et studio comprennent au moins une salle de bain compl=C3=A8te, une cuisine enti=C3=A8rement =C3=A9quip=C3=A9e (micro-onde, lave-vaisselles, cafeti=C3= =A8re, assiettes, verres, ustensiles, etc.), un t=C3=A9l=C3=A9viseur avec c=C3=A2b= le, un lecteur DVD et internet sans fil (WiFi). Toutes les unit=C3=A9s sont install=C3=A9es avec foyer naturel ou au gaz. (le bois est inclu dans la location) Terrasse =C3=A9quip=C3=A9e d'un ensemble patio avec un parasol et d'un barbecue priv=C3=A9. **L'acc=C3=A8s =C3=A0 la plage, au lac et au quai flottant est disponible p= our chaque unit=C3=A9.** Embarcations: kayak, canot, chaloupe, p=C3=A9dalo. Un moment de d=C3=A9tente dans un spa en plein air est mis =C3=A0 la disposition des studios. **La temp=C3=A9rature du spa est maintenue =C3=A0 38oc tout au long de la saison froide.** Id=C3=A9al pour boucler une merveilleuse journ=C3=A9e de plein air. Visitez notre site web: http://megatronmailer.com/lists/lt.php?id=3DYR8GDQIfBgNEUFUOVVsI Chalets et Studios *Le Vent du Nord* 1954, Chemin du lac Sup=C3=A9rieur Lac-Sup=C3=A9rieur, Qu=C3=A9bec, J0T 1P0 T=C3=A9l=C3=A9phone :+1 (819) 688-6140 Sans frais : 1 877 688-6140 (Canada USA) -- Destinataire (votre email - courriel): xfs@oss.sgi.com=20 Diffusion par Megatron Communications inc., gestionnaire de la liste: Le Vent du Nord. Modification de mon consentement: Je veut choisir a quelle liste je donne mon consentement explicite. Demande de retrait total: Je retire mon consentement pour toute les listes de Megatron Mailer Lists (pour tous les clients sans exception)=0A . =20 -- megatronmailer.com/lists/ -- --b1_b68f6ca36950ea1da19513b947eb654f Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: quoted-printable =0A =0A

Le Vent du Nord Mont-Tremblant Qu= ébec

3D"Le

Vous invite à venir découvrir les magnifiques mont= agnes des Laurentides.

Situé au Lac Supérieur, versant Nord du Mont-Tremblant au= Québec.

7 km de la Station de Ski Mont-Tremblant et du= Parc National du Mont-Tremblant.

À quelques pa= s des sentiers pédestres, des pistes cyclables et des sentiers de sk= i de randonnée.

l'endroit idéal pour les vacances en famille, en couple ou encore= pour se ressourcer loin des grands centres urbains.

Trois splendides chalets, un loft et six appartements de luxe:

le tout à des prix abordables pour tous. Chaque chalet et studio = comprennent au moins une salle de bain complète, une cuisine enti&eg= rave;rement équipée (micro-onde, lave-vaisselles, cafeti&egra= ve;re, assiettes, verres, ustensiles, etc.), un téléviseur av= ec câble, un lecteur DVD et internet sans fil (WiFi).

Toutes les unités sont installées avec foyer naturel ou au ga= z.

(le bois est inclu dans la location)

Terrasse &ea= cute;quipée d'un ensemble patio avec un parasol et d'un barbecue pri= vé.

L’accès à la plage, au lac et au quai flott= ant est disponible pour chaque unité.

Embarcations:  kayak, canot, chaloupe, pédalo.

Un moment de détente dans un spa en plein air est mis à la di= sposition des studios.

La température du spa est maintenue à 38oc tout au long de la saison froide.

Idéal pour bo= ucler une merveilleuse journée de plein air.

Visitez notre site web:

www.leventdunord.ca

Chalets et Studios

Le Vent du Nord

1954, Chemin du lac Supérieur

Lac-Supérieur, Québec, J0T 1P0

Téléphone :+1 (819) 688-6140

Sans frais : 1 877 688-6140 (Canada USA)


-- =20

Destinataire (votre email - courriel): xfs@oss.sgi.com
Diffusion par Megatron Communications inc., gestionnaire de la liste: L= e Vent du Nord.


Modification de mon consentement:
Je veut choisir a quelle liste je donne mon consentement explicite.<= br/>
Demande de retrait total:
Je retire mon consentement pour toute les listes de Megatron Mailer Lists=
(pour tous les clients sans exception)
.

=0A<= img src=3D"http://megatronmailer.com/lists/ut.php?u=3D07a28c1915601022e46f5= bfc85b431ca&m=3D11" width=3D"1" height=3D"1" border=3D"0" /> --b1_b68f6ca36950ea1da19513b947eb654f-- From phplistbounces@megatronmailer.com Wed Jul 9 18:07:08 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=T_DKIM_INVALID autolearn=ham version=3.3.1 X-Original-To: xfs@oss.sgi.com Delivered-To: xfs@oss.sgi.com Received: from relay.sgi.com (relay1.corp.sgi.com [137.38.102.111]) by oss.sgi.com (Postfix) with ESMTP id 0CC6F7F3F for ; Wed, 9 Jul 2014 18:07:08 -0500 (CDT) Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by relay1.corp.sgi.com (Postfix) with ESMTP id ED68F8F804C for ; Wed, 9 Jul 2014 16:07:07 -0700 (PDT) X-ASG-Debug-ID: 1404947221-04cb6c76cf5531c0001-NocioJ Received: from hosting.megatronptc.com (megatronptc.com [72.9.158.98]) by cuda.sgi.com with ESMTP id sq7ABGPLHH5ufi41 (version=TLSv1 cipher=AES256-SHA bits=256 verify=NO) for ; Wed, 09 Jul 2014 16:07:02 -0700 (PDT) X-Barracuda-Envelope-From: phplistbounces@megatronmailer.com X-Barracuda-Apparent-Source-IP: 72.9.158.98 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=megatronmailer.com; s=default; h=Content-Type:Content-Transfer-Encoding:MIME-Version:List-Unsubscribe:Message-ID:Reply-To:From:Date:Subject:To; bh=3mOrHsRmN7cJ0qMkhwjyyygIKFlQs4PIfSPZYqVyLeM=; b=p8sO2zLafJSLw8UEBgNJU0M4BNDMmn2xFvmOF6pDVg6+squaWwlsarNmqCDUTUJjLv8B3XbIHzFZnhg4EWJSmcy7t01wiC6MUkTOrtHMSYx4IDrW/UuGMkoNRCSLWKDPzFTV0m8g+CuVj/zg5n3ZIjmFWxTRJfHV23svs/x6LMc=; Received: from megamail by hosting.megatronptc.com with local (Exim 4.82) (envelope-from ) id 1X50x3-0005QI-Gs for xfs@oss.sgi.com; Wed, 09 Jul 2014 19:07:01 -0400 To: xfs@oss.sgi.com Subject: Goodbye from our Newsletter X-PHP-Script: megatronmailer.com/lists/index.php for 66.249.65.254 X-ASG-Orig-Subj: Goodbye from our Newsletter Received: from crawl-66-249-65-254.googlebot.com [66.249.65.254] by megatronmailer.com with HTTP; Wed, 09 Jul 2014 18:07:01 -0500 Date: Wed, 9 Jul 2014 18:07:01 -0500 From: Megatron Mailer Lists Reply-To: Megatron Mailer Lists Message-ID: <54eb0bdec1f7081e0c8f0a72a6cad2ce@megatronmailer.com> X-Priority: 3 X-Mailer: PHPMailer 5.2.5 (https://github.com/Synchro/PHPMailer/) X-phpList-version: 3.0.6 X-MessageID: systemmessage X-ListMember: xfs@oss.sgi.com Precedence: bulk Bounces-To: phplistbounces@megatronmailer.com List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Content-Type: text/plain; charset=UTF-8 X-AntiAbuse: This header was added to track abuse, please include it with any abuse report X-AntiAbuse: Primary Hostname - hosting.megatronptc.com X-AntiAbuse: Original Domain - oss.sgi.com X-AntiAbuse: Originator/Caller UID/GID - [512 513] / [47 12] X-AntiAbuse: Sender Address Domain - megatronmailer.com X-Get-Message-Sender-Via: hosting.megatronptc.com: authenticated_id: megamail/from_h X-Barracuda-Connect: megatronptc.com[72.9.158.98] X-Barracuda-Start-Time: 1404947222 X-Barracuda-Encrypted: AES256-SHA X-Barracuda-URL: http://192.48.176.15:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 X-Barracuda-Spam-Score: 0.00 X-Barracuda-Spam-Status: No, SCORE=0.00 using per-user scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.7 tests=DKIM_SIGNED X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.7385 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.00 DKIM_SIGNED Domain Keys Identified Mail: message has a signature Goodbye from our Newsletter, sorry to see you go. You have been unsubscribed from our newsletters. This is the last email you will receive from us. Our newsletter system, phpList, will refuse to send you any further messages, without manual intervention by our administrator. If there is an error in this information, you can re-subscribe: please go to http://megatronmailer.com/lists/?p=subscribe and follow the steps. Thank you From david@fromorbit.com Wed Jul 9 20:07:51 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: xfs@oss.sgi.com Delivered-To: xfs@oss.sgi.com Received: from relay.sgi.com (relay1.corp.sgi.com [137.38.102.111]) by oss.sgi.com (Postfix) with ESMTP id 99CFC7F4E for ; Wed, 9 Jul 2014 20:07:51 -0500 (CDT) Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by relay1.corp.sgi.com (Postfix) with ESMTP id 82B4A8F8039 for ; Wed, 9 Jul 2014 18:07:48 -0700 (PDT) X-ASG-Debug-ID: 1404954462-04cb6c76d05567b0001-NocioJ Received: from ipmail04.adl6.internode.on.net (ipmail04.adl6.internode.on.net [150.101.137.141]) by cuda.sgi.com with ESMTP id DhqXNWXyfI96dF4R for ; Wed, 09 Jul 2014 18:07:43 -0700 (PDT) X-Barracuda-Envelope-From: david@fromorbit.com X-Barracuda-Apparent-Source-IP: 150.101.137.141 X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: AnINAMvmvVN5LG3lPGdsb2JhbABZgw6tIQEBAQEBAQaaZAGBBhcEAQEBATg1hAMBAQQBOhwjBQsIAw4KCSUPBSUDBxoTiDoHyCwXGIViiGRkB4RDBZp1i02MFSuBMQ Received: from ppp121-44-109-229.lns20.syd6.internode.on.net (HELO dastard) ([121.44.109.229]) by ipmail04.adl6.internode.on.net with ESMTP; 10 Jul 2014 10:37:13 +0930 Received: from dave by dastard with local (Exim 4.80) (envelope-from ) id 1X52pL-00022c-T0; Thu, 10 Jul 2014 11:07:11 +1000 Date: Thu, 10 Jul 2014 11:07:11 +1000 From: Dave Chinner To: Lukas Czerner Cc: fstests@vger.kernel.org, xfs@oss.sgi.com Subject: Re: [PATCH 2/2] xfstests: Check fs consistency on TEST_DEV only when needed Message-ID: <20140710010711.GJ4453@dastard> X-ASG-Orig-Subj: Re: [PATCH 2/2] xfstests: Check fs consistency on TEST_DEV only when needed References: <1403617014-17870-1-git-send-email-lczerner@redhat.com> <1403617014-17870-2-git-send-email-lczerner@redhat.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1403617014-17870-2-git-send-email-lczerner@redhat.com> User-Agent: Mutt/1.5.21 (2010-09-15) X-Barracuda-Connect: ipmail04.adl6.internode.on.net[150.101.137.141] X-Barracuda-Start-Time: 1404954462 X-Barracuda-URL: http://192.48.176.15:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 X-Barracuda-Spam-Score: 0.00 X-Barracuda-Spam-Status: No, SCORE=0.00 using per-user scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.7 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.7388 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- On Tue, Jun 24, 2014 at 03:36:54PM +0200, Lukas Czerner wrote: > Currently we're checking file system consistency on TEST_DEV after every > successful test run even though the TEST_DEV might not even be used in > that test. It gets mounted/unmounted for each test, so even if it is not used, it might still get modified... > Fix it by checking for number of write io on TEST_DEV device before the > test and compare it with the value after the test. Doesn't work for ram disks: # ./setup TEST: DIR=/mnt/test DEV=/dev/ram0 rt=[] log=[] TAPE: dev=[] rmt=[] rmtirix=[@] SCRATCH: MNT=/mnt/scr DEV=/dev/ram1 rt=[] log=[] VARIABLES: external=no largeblk=no fstyp=xfs large_scratch_dev=no attrsecure=no # ls -l /dev/ram0 brw-rw---- 1 root disk 1, 0 Jul 9 15:51 /dev/ram0 # cat /sys/dev/block/1\:0/stat 0 0 0 0 0 0 0 0 0 0 0 # Nor does it work on loop devices. > Signed-off-by: Lukas Czerner > --- > check | 6 +++++- > common/rc | 11 +++++++++++ > 2 files changed, 16 insertions(+), 1 deletion(-) > > diff --git a/check b/check > index 40f99d7..66d0f72 100755 > --- a/check > +++ b/check > @@ -544,6 +544,7 @@ for section in $HOST_OPTIONS_SECTIONS; do > rm -f core $seqres.notrun > > scratch_atime=`stat -c %X $SCRATCH_DEV` > + test_write_io=`_get_write_io_count $TEST_DEV` > start=`_wallclock` > $timestamp && echo -n " ["`date "+%T"`"]" > [ ! -x $seq ] && chmod u+x $seq # ensure we can run it > @@ -626,7 +627,10 @@ for section in $HOST_OPTIONS_SECTIONS; do > then > try="$try $seqnum" > n_try=`expr $n_try + 1` > - _check_test_fs > + write_io=`_get_write_io_count $TEST_DEV` > + if [ -z $test_write_io ] || [ $write_io -ne $test_write_io ]; then > + _check_test_fs > + fi Which you work around without mentioning the reason for the zero value check. ;) Personally, I want the test devices on my systems checked regardless of whether the test tries to modify them or not. I, quite frankly, don't trust the block device stats because they often get broken or are inaccurate. Indeed, there were recent virtio block device changes in 3.14-rc1 (or was it 3.15?) that broke the device stats and that took several weeks to get fixed properly. Hence I don't think using the block device stats for something as critical as determining whether we should check a filesystem or not. Reducing runtime of the test harness is a good idea, but we should not do that if the cost is that it reduces the reliability of error detection. Cheers, Dave. -- Dave Chinner david@fromorbit.com From sandeen@sandeen.net Wed Jul 9 20:52:24 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: xfs@oss.sgi.com Delivered-To: xfs@oss.sgi.com Received: from relay.sgi.com (relay2.corp.sgi.com [137.38.102.29]) by oss.sgi.com (Postfix) with ESMTP id 543D77F51 for ; Wed, 9 Jul 2014 20:52:24 -0500 (CDT) Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by relay2.corp.sgi.com (Postfix) with ESMTP id 34B85304043 for ; Wed, 9 Jul 2014 18:52:20 -0700 (PDT) X-ASG-Debug-ID: 1404957139-04bdf056698dc1d0001-NocioJ Received: from sandeen.net (sandeen.net [63.231.237.45]) by cuda.sgi.com with ESMTP id RiCOglGMOVjUObb4 for ; Wed, 09 Jul 2014 18:52:19 -0700 (PDT) X-Barracuda-Envelope-From: sandeen@sandeen.net X-Barracuda-Apparent-Source-IP: 63.231.237.45 Received: from liberator.sandeen.net (liberator.sandeen.net [10.0.0.4]) (using TLSv1 with cipher DHE-RSA-AES128-SHA (128/128 bits)) (No client certificate requested) by sandeen.net (Postfix) with ESMTPSA id 70DC963C5FF2; Wed, 9 Jul 2014 20:52:18 -0500 (CDT) Message-ID: <53BDF1D2.6000204@sandeen.net> Date: Wed, 09 Jul 2014 20:52:18 -0500 From: Eric Sandeen MIME-Version: 1.0 To: Dave Chinner , Lukas Czerner CC: fstests@vger.kernel.org, xfs@oss.sgi.com Subject: Re: [PATCH 2/2] xfstests: Check fs consistency on TEST_DEV only when needed References: <1403617014-17870-1-git-send-email-lczerner@redhat.com> <1403617014-17870-2-git-send-email-lczerner@redhat.com> <20140710010711.GJ4453@dastard> X-ASG-Orig-Subj: Re: [PATCH 2/2] xfstests: Check fs consistency on TEST_DEV only when needed In-Reply-To: <20140710010711.GJ4453@dastard> X-Enigmail-Version: 1.6 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit X-Barracuda-Connect: sandeen.net[63.231.237.45] X-Barracuda-Start-Time: 1404957139 X-Barracuda-URL: http://192.48.157.11:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 X-Barracuda-Spam-Score: 0.00 X-Barracuda-Spam-Status: No, SCORE=0.00 using per-user scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.7 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.7389 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- On 7/9/14, 8:07 PM, Dave Chinner wrote: > Reducing runtime of the test harness is a good idea, but we should > not do that if the cost is that it reduces the reliability of error > detection. Still, this could have a really big impact, especially on filesystems with slow fsck. It'd be great to find a way to make this reliable. It's kind of a historical accident that "test" is always mounted, but "scratch" must be _required. What if we added _require_test if we're going to write to test, and doing so triggers the check? I'm sure there are other ways around it. Spending tons of time in fsck for a filesystem we didn't touch isn't time well spent, IMHO. -Eric From Amarillo@yahoo.com Wed Jul 9 23:19:38 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: *** X-Spam-Status: No, score=3.6 required=5.0 tests=FORGED_YAHOO_RCVD, FREEMAIL_FROM,FREEMAIL_REPLYTO,FREEMAIL_REPLYTO_END_DIGIT,HTML_MESSAGE autolearn=no version=3.3.1 X-Original-To: xfs@oss.sgi.com Delivered-To: xfs@oss.sgi.com Received: from relay.sgi.com (relay3.corp.sgi.com [198.149.34.15]) by oss.sgi.com (Postfix) with ESMTP id EA4FE7F54 for ; Wed, 9 Jul 2014 23:19:37 -0500 (CDT) Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by relay3.corp.sgi.com (Postfix) with ESMTP id 630B9AC001 for ; Wed, 9 Jul 2014 21:19:34 -0700 (PDT) X-ASG-Debug-ID: 1404965967-04cbb0653639a410001-NocioJ Received: from derways.org (derways.org [83.239.117.150]) by cuda.sgi.com with ESMTP id chqkwpRFd7iQCvQ8 for ; Wed, 09 Jul 2014 21:19:27 -0700 (PDT) X-Barracuda-Envelope-From: Amarillo@yahoo.com X-Barracuda-Apparent-Source-IP: 83.239.117.150 Received: from localhost (localhost.localdomain [127.0.0.1]) by derways.org (Postfix) with ESMTP id B706260842E for ; Thu, 10 Jul 2014 04:16:35 +0000 (UTC) X-Virus-Scanned: amavisd-new at derways.org Received: from derways.org ([127.0.0.1]) by localhost (derways.org [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id PgcPb3tt602O for ; Thu, 10 Jul 2014 04:16:35 +0000 (UTC) Received: from dls06 (209.250.130.212.tor.pathcom.com [209.250.130.212]) by derways.org (Postfix) with ESMTPA id 0DF4060841B for ; Thu, 10 Jul 2014 04:16:34 +0000 (UTC) From: "JUKI (CHINA) CO., LTD" Subject: Dear Supplier, To: xfs@oss.sgi.com X-ASG-Orig-Subj: Dear Supplier, Content-Type: multipart/alternative; boundary="HItopwsUY1rjtGvKSuZ=_bASEHzqC9S1hL0" MIME-Version: 1.0 Reply-To: moonstratex212@hotmail.com Date: Thu, 10 Jul 2014 00:18:39 -0400 Message-Id: <20140710041635.0DF4060841B@derways.org> X-Barracuda-Connect: derways.org[83.239.117.150] X-Barracuda-Start-Time: 1404965967 X-Barracuda-URL: http://192.48.176.25:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 X-Barracuda-Spam-Score: 1.91 X-Barracuda-Spam-Status: No, SCORE=1.91 using per-user scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.7 tests=BSF_SC7_SA578_CH, FORGED_YAHOO_RCVD, FORGED_YAHOO_RCVD_2, HTML_MESSAGE X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.7392 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.00 FORGED_YAHOO_RCVD 'From' yahoo.com does not match 'Received' headers 0.00 HTML_MESSAGE BODY: HTML included in message 1.41 FORGED_YAHOO_RCVD_2 'From' yahoo.com does not match 'Received' headers 0.50 BSF_SC7_SA578_CH Custom Rule SA578_CH This is a multi-part message in MIME format --HItopwsUY1rjtGvKSuZ=_bASEHzqC9S1hL0 Content-Type: text/plain Content-Transfer-Encoding: quoted-printable - This mail is in HTML. Some elements may be ommited in plain text. - Thanks for your email and information... We have gone through your Ad and seen the good products your company d= eals on, can you assure us on the quality and that you can really Deli= ver within the stipulated period given to us by you if we place an ord= er immediately, or you already have them in stock, we also could not f= ind some products in your page. Check our link below to see if you hav= e the product listed in our catalog . Sign in to validate and access t= he catalog. Click Here To View Catalog And Order Also please give us your payment terms and delivery time. We wait soon= est reply.. Thank you --HItopwsUY1rjtGvKSuZ=_bASEHzqC9S1hL0 Content-Type: text/html Content-Transfer-Encoding: quoted-printable
Thanks for your email and information...<= /FONT>

We have gone through your Ad and seen the good produ= cts your company deals on, can you assure us on the quality and that y= ou can really Deliver within the stipulated period given to us by you = if we place an order immediately, or you already have them in stock, w= e also could not find some products in your page. Check our link below= to see if you have the product listed in our catalog . Sign in to val= idate and access the catalog.


Also please give us your payment= terms and delivery time. We wait soonest reply..

Thank you&n= bsp;
--HItopwsUY1rjtGvKSuZ=_bASEHzqC9S1hL0-- From lczerner@redhat.com Thu Jul 10 03:39:05 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: xfs@oss.sgi.com Delivered-To: xfs@oss.sgi.com Received: from relay.sgi.com (relay1.corp.sgi.com [137.38.102.111]) by oss.sgi.com (Postfix) with ESMTP id F077C7F56 for ; Thu, 10 Jul 2014 03:39:04 -0500 (CDT) Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by relay1.corp.sgi.com (Postfix) with ESMTP id AE7508F8049 for ; Thu, 10 Jul 2014 01:39:01 -0700 (PDT) X-ASG-Debug-ID: 1404981536-04bdf056678eb7e0001-NocioJ Received: from mx1.redhat.com (mx1.redhat.com [209.132.183.28]) by cuda.sgi.com with ESMTP id 6YLdPV5zYUzXVvPi (version=TLSv1 cipher=AES256-SHA bits=256 verify=NO) for ; Thu, 10 Jul 2014 01:38:57 -0700 (PDT) X-Barracuda-Envelope-From: lczerner@redhat.com X-Barracuda-Apparent-Source-IP: 209.132.183.28 X-ASG-Whitelist: Client Received: from int-mx10.intmail.prod.int.phx2.redhat.com (int-mx10.intmail.prod.int.phx2.redhat.com [10.5.11.23]) by mx1.redhat.com (8.14.4/8.14.4) with ESMTP id s6A8cmkW023152 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Thu, 10 Jul 2014 04:38:49 -0400 Received: from vpn1-6-193.ams2.redhat.com (vpn1-6-193.ams2.redhat.com [10.36.6.193]) by int-mx10.intmail.prod.int.phx2.redhat.com (8.14.4/8.14.4) with ESMTP id s6A8cjEn023878 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO); Thu, 10 Jul 2014 04:38:47 -0400 Date: Thu, 10 Jul 2014 10:38:45 +0200 (CEST) From: =?ISO-8859-15?Q?Luk=E1=A8_Czerner?= X-X-Sender: lczerner@localhost.localdomain To: Dave Chinner cc: fstests@vger.kernel.org, xfs@oss.sgi.com Subject: Re: [PATCH 2/2] xfstests: Check fs consistency on TEST_DEV only when needed In-Reply-To: <20140710010711.GJ4453@dastard> X-ASG-Orig-Subj: Re: [PATCH 2/2] xfstests: Check fs consistency on TEST_DEV only when needed Message-ID: References: <1403617014-17870-1-git-send-email-lczerner@redhat.com> <1403617014-17870-2-git-send-email-lczerner@redhat.com> <20140710010711.GJ4453@dastard> User-Agent: Alpine 2.00 (LFD 1167 2008-08-23) MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII X-Scanned-By: MIMEDefang 2.68 on 10.5.11.23 X-Barracuda-Connect: mx1.redhat.com[209.132.183.28] X-Barracuda-Start-Time: 1404981537 X-Barracuda-Encrypted: AES256-SHA X-Barracuda-URL: http://192.48.157.11:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 On Thu, 10 Jul 2014, Dave Chinner wrote: > Date: Thu, 10 Jul 2014 11:07:11 +1000 > From: Dave Chinner > To: Lukas Czerner > Cc: fstests@vger.kernel.org, xfs@oss.sgi.com > Subject: Re: [PATCH 2/2] xfstests: Check fs consistency on TEST_DEV only when > needed > > On Tue, Jun 24, 2014 at 03:36:54PM +0200, Lukas Czerner wrote: > > Currently we're checking file system consistency on TEST_DEV after every > > successful test run even though the TEST_DEV might not even be used in > > that test. > > It gets mounted/unmounted for each test, so even if it is not used, > it might still get modified... > > > Fix it by checking for number of write io on TEST_DEV device before the > > test and compare it with the value after the test. > > Doesn't work for ram disks: > > # ./setup > TEST: DIR=/mnt/test DEV=/dev/ram0 rt=[] log=[] > TAPE: dev=[] rmt=[] rmtirix=[@] > SCRATCH: MNT=/mnt/scr DEV=/dev/ram1 rt=[] log=[] > VARIABLES: external=no largeblk=no fstyp=xfs > large_scratch_dev=no attrsecure=no > # ls -l /dev/ram0 > brw-rw---- 1 root disk 1, 0 Jul 9 15:51 /dev/ram0 > # cat /sys/dev/block/1\:0/stat > 0 0 0 0 0 0 0 0 0 0 0 > # > > Nor does it work on loop devices. > > > Signed-off-by: Lukas Czerner > > --- > > check | 6 +++++- > > common/rc | 11 +++++++++++ > > 2 files changed, 16 insertions(+), 1 deletion(-) > > > > diff --git a/check b/check > > index 40f99d7..66d0f72 100755 > > --- a/check > > +++ b/check > > @@ -544,6 +544,7 @@ for section in $HOST_OPTIONS_SECTIONS; do > > rm -f core $seqres.notrun > > > > scratch_atime=`stat -c %X $SCRATCH_DEV` > > + test_write_io=`_get_write_io_count $TEST_DEV` > > start=`_wallclock` > > $timestamp && echo -n " ["`date "+%T"`"]" > > [ ! -x $seq ] && chmod u+x $seq # ensure we can run it > > @@ -626,7 +627,10 @@ for section in $HOST_OPTIONS_SECTIONS; do > > then > > try="$try $seqnum" > > n_try=`expr $n_try + 1` > > - _check_test_fs > > + write_io=`_get_write_io_count $TEST_DEV` > > + if [ -z $test_write_io ] || [ $write_io -ne $test_write_io ]; then > > + _check_test_fs > > + fi > > Which you work around without mentioning the reason for the zero > value check. ;) That's just a safety trigger :) Didn't think it was worth mentioning. > > Personally, I want the test devices on my systems checked regardless > of whether the test tries to modify them or not. I, quite frankly, > don't trust the block device stats because they often get broken or > are inaccurate. Indeed, there were recent virtio block device > changes in 3.14-rc1 (or was it 3.15?) that broke the device stats > and that took several weeks to get fixed properly. > > Hence I don't think using the block device stats for something as > critical as determining whether we should check a filesystem or not. > > Reducing runtime of the test harness is a good idea, but we should > not do that if the cost is that it reduces the reliability of error > detection. With the patch 1/2 we're going to check scratch dev as well, so if accepted, the xfstests run time is going to be possibly much longer especially so on the file systems where fsck time is quite big. So I think that trying to reduce unnecessary fsck on test_dev is IMO important. I like the idea Eric proposed with the _require_test check for the test that actually require test device and then actually check the device only after such test. Will that be acceptable ? If so I'll rework the patches. Thanks! -Lukas > > Cheers, > > Dave. > From eviline@h2235607.stratoserver.net Thu Jul 10 03:43:58 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: **** X-Spam-Status: No, score=4.7 required=5.0 tests=DEAR_SOMETHING,HTML_MESSAGE, MIME_HTML_ONLY,SUBJ_ALL_CAPS autolearn=no version=3.3.1 X-Original-To: xfs@oss.sgi.com Delivered-To: xfs@oss.sgi.com Received: from relay.sgi.com (relay3.corp.sgi.com [198.149.34.15]) by oss.sgi.com (Postfix) with ESMTP id 0CE7F7F5A for ; Thu, 10 Jul 2014 03:43:58 -0500 (CDT) Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by relay3.corp.sgi.com (Postfix) with ESMTP id 98EDAAC001 for ; Thu, 10 Jul 2014 01:43:54 -0700 (PDT) X-ASG-Debug-ID: 1404981831-04cb6c76d15677c0001-NocioJ Received: from h2235607.stratoserver.net (h2235607.stratoserver.net [85.214.198.177]) by cuda.sgi.com with ESMTP id pb7cuG62VgM1Rdg4 (version=TLSv1 cipher=AES256-SHA bits=256 verify=NO) for ; Thu, 10 Jul 2014 01:43:52 -0700 (PDT) X-Barracuda-Envelope-From: eviline@h2235607.stratoserver.net X-Barracuda-Apparent-Source-IP: 85.214.198.177 Received: by h2235607.stratoserver.net (Postfix, from userid 10001) id 7DE189A80C4; Thu, 10 Jul 2014 10:42:27 +0200 (CEST) To: xfs@oss.sgi.com Subject: RE: NEW ORDER (PO10072014) X-PHP-Originating-Script: 0:eM.php X-ASG-Orig-Subj: RE: NEW ORDER (PO10072014) From: Moataz Barbour (Amer group) Reply-To: mb@amer-group.com MIME-Version: 1.0 Content-Type: text/html Content-Transfer-Encoding: 8bit Message-Id: <20140710084227.7DE189A80C4@h2235607.stratoserver.net> Date: Thu, 10 Jul 2014 10:42:27 +0200 (CEST) X-Barracuda-Connect: h2235607.stratoserver.net[85.214.198.177] X-Barracuda-Start-Time: 1404981832 X-Barracuda-Encrypted: AES256-SHA X-Barracuda-URL: http://192.48.176.15:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 X-Barracuda-Spam-Score: 1.64 X-Barracuda-Spam-Status: No, SCORE=1.64 using per-user scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.7 tests=HTML_MESSAGE, MIME_HTML_ONLY, SUBJ_ALL_CAPS, SUBJ_ALL_CAPS_2 X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.7396 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.00 MIME_HTML_ONLY BODY: Message only has text/html MIME parts 0.00 HTML_MESSAGE BODY: HTML included in message 0.01 SUBJ_ALL_CAPS Subject is all capitals 1.62 SUBJ_ALL_CAPS_2 SUBJ_ALL_CAPS_2
 
Dear Sir,
 
Greetings to you.
 
Kindly Find Below our Purchase order(PO01072014), Please send us invoice with their best price.
Note that item #534 and #535 is needed in a very large quantity, So you will have to give us discount with your best price.
I await the invoice asap.
 
 
Best Regards
 
Moataz Barbour
(Sales Manager)
Amer Group Egypt
Building 11 Cleopatra Street, Korba Area,
Cairo  Egypt
Phone: +20 224155896
Fax: +20 22399755023
 
 
From pubkigns@gmail.com Thu Jul 10 06:47:04 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: ** X-Spam-Status: No, score=2.0 required=5.0 tests=FREEMAIL_FROM,FREEMAIL_REPLYTO, HK_RANDOM_REPLYTO,HTML_MESSAGE,LOTS_OF_MONEY,T_DKIM_INVALID autolearn=no version=3.3.1 X-Original-To: xfs@oss.sgi.com Delivered-To: xfs@oss.sgi.com Received: from relay.sgi.com (relay1.corp.sgi.com [137.38.102.111]) by oss.sgi.com (Postfix) with ESMTP id EAC427F3F for ; Thu, 10 Jul 2014 06:47:03 -0500 (CDT) Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by relay1.corp.sgi.com (Postfix) with ESMTP id C6F638F8049 for ; Thu, 10 Jul 2014 04:47:03 -0700 (PDT) X-ASG-Debug-ID: 1404992821-04cbb065383a9d20001-NocioJ Received: from mail-we0-f196.google.com (mail-we0-f196.google.com [74.125.82.196]) by cuda.sgi.com with ESMTP id DjMBxkpgTfzGrYjz (version=TLSv1 cipher=RC4-SHA bits=128 verify=NO) for ; Thu, 10 Jul 2014 04:47:02 -0700 (PDT) X-Barracuda-Envelope-From: pubkigns@gmail.com X-Barracuda-Apparent-Source-IP: 74.125.82.196 Received: by mail-we0-f196.google.com with SMTP id x48so2865131wes.7 for ; Thu, 10 Jul 2014 04:47:01 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:reply-to:date:message-id:subject:from:to:content-type; bh=AXnHB+0OVlCLtS8LFXiBKErbY251w1MV0iposS/XofE=; b=pURFZVzixBw4pWKWEHP0wTUlAy6f9Rc4pNFtZo4+HUp1xq5mEsjFGBkqQBR+kTHz9J NzXXXnCYiTWlNucywhkfxwWVWS/Qx8Rmug+bmm3KRM6KvV5//dzCi8zObT/SFCrNAGg+ 2XKgzjsENRt7g6s7yKJ8P2Hw53K0mZf/Wz6gyGVBM+plm4s56V5G7N5vJOvngJtJ+fvP NftwDE8cfmt7lSJu7LDn2lhuj4ufoSpPr0PYXjaNUWZoZNYH8Gmk1atvydO7DBI7pDho cMqr2lc3CSwRFBWB2txwTYJDAF7QyHSTJqSjNie0oZ170UYMjDQet+1M27Z+PXwAAqNH 0NSw== MIME-Version: 1.0 X-Received: by 10.194.200.37 with SMTP id jp5mr11188896wjc.120.1404992821060; Thu, 10 Jul 2014 04:47:01 -0700 (PDT) Received: by 10.194.234.134 with HTTP; Thu, 10 Jul 2014 04:47:00 -0700 (PDT) Reply-To: altmmg@gmail.com Date: Thu, 10 Jul 2014 12:47:00 +0100 Message-ID: Subject: Receive Money Now From: =?UTF-8?Q?Bank_Of_America=C2=AE?= X-ASG-Orig-Subj: Receive Money Now To: undisclosed-recipients:; Content-Type: multipart/alternative; boundary=047d7b87445e03e8ff04fdd562b3 X-Barracuda-Connect: mail-we0-f196.google.com[74.125.82.196] X-Barracuda-Start-Time: 1404992822 X-Barracuda-Encrypted: RC4-SHA X-Barracuda-URL: http://192.48.176.25:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 X-Barracuda-BRTS-Evidence: 399c22afe8a8c4aff4ad9ef0dd08834e-549-htm X-Barracuda-Spam-Score: 2.00 X-Barracuda-Spam-Status: No, SCORE=2.00 using per-user scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.7 tests=BSF_SC7_SA440_FBF, DKIM_SIGNED, DKIM_VERIFIED, HTML_MESSAGE X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.7399 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- -0.00 DKIM_VERIFIED Domain Keys Identified Mail: signature passes verification 0.00 DKIM_SIGNED Domain Keys Identified Mail: message has a signature 0.00 HTML_MESSAGE BODY: HTML included in message 2.00 BSF_SC7_SA440_FBF Custom Rule SA440_FBF --047d7b87445e03e8ff04fdd562b3 Content-Type: text/plain; charset=UTF-8 The Certified Cheque Payment of $400,000 is received today via AMERICA EXPRESS with instruction to pay you. Only two payment service available to get the funds to you *cheque will be cleared and processed for cash collection from any MoneyGram/Western Union office with your valid identification *cheque will be cleared and processed for cash withdrawal from your bank account( Cash Deposit In Your Bank Account By Agent) How do you want to be paid? Brian T. Moynihan Chief Executive Officer --047d7b87445e03e8ff04fdd562b3 Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: quoted-printable
The Certified Cheque Payment of $400,000 is received today= via AMERICA EXPRESS with instruction to pay you. Only two payment service = available to get the funds to you

*cheque will be cleared and proces= sed for cash collection from any MoneyGram/Western Union office with your v= alid identification

*cheque will be cleared and processed for cash withdrawal from your ban= k account( Cash Deposit In Your Bank Account By Agent)

How do you wa= nt to be paid?

Brian T. Moynihan
Chief Executive Officer
--047d7b87445e03e8ff04fdd562b3-- From BATV+b41975b7af03e1f605ce+3973+infradead.org+hch@bombadil.srs.infradead.org Thu Jul 10 08:48:59 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: xfs@oss.sgi.com Delivered-To: xfs@oss.sgi.com Received: from relay.sgi.com (relay2.corp.sgi.com [137.38.102.29]) by oss.sgi.com (Postfix) with ESMTP id 107677F3F for ; Thu, 10 Jul 2014 08:48:59 -0500 (CDT) Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by relay2.corp.sgi.com (Postfix) with ESMTP id CAF64304067 for ; Thu, 10 Jul 2014 06:48:55 -0700 (PDT) X-ASG-Debug-ID: 1405000132-04bdf056688f7a60001-NocioJ Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.9]) by cuda.sgi.com with ESMTP id hUSvFpe2DVdqCtHk (version=TLSv1 cipher=AES256-SHA bits=256 verify=NO) for ; Thu, 10 Jul 2014 06:48:53 -0700 (PDT) X-Barracuda-Envelope-From: BATV+b41975b7af03e1f605ce+3973+infradead.org+hch@bombadil.srs.infradead.org X-Barracuda-Apparent-Source-IP: 198.137.202.9 Received: from hch by bombadil.infradead.org with local (Exim 4.80.1 #2 (Red Hat Linux)) id 1X5EiR-0007Fm-Ta; Thu, 10 Jul 2014 13:48:51 +0000 Date: Thu, 10 Jul 2014 06:48:51 -0700 From: Christoph Hellwig To: Brian Foster Cc: Jan ??ul??k , XFS mail list Subject: Re: symlink loop for /lib64/libhandle.so Message-ID: <20140710134851.GA26652@infradead.org> X-ASG-Orig-Subj: Re: symlink loop for /lib64/libhandle.so References: <1404898212.7231.12.camel@jtulak> <20140709132836.GA65226@bfoster.bfoster> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20140709132836.GA65226@bfoster.bfoster> User-Agent: Mutt/1.5.23 (2014-03-12) X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: bombadil.infradead.org[198.137.202.9] X-Barracuda-Start-Time: 1405000133 X-Barracuda-Encrypted: AES256-SHA X-Barracuda-URL: http://192.48.157.11:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 X-Barracuda-Spam-Score: 0.00 X-Barracuda-Spam-Status: No, SCORE=0.00 using per-user scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.7 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.7401 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- On Wed, Jul 09, 2014 at 09:28:36AM -0400, Brian Foster wrote: > > If it not an intended behavior, I can try to find the source of the bug > > and make a patch (I'm new here :-). > > > > I can reproduce this on fedora rawhide via 'make install-qa.' This is > not intended behavior. I couldn't tell you what the problem is, but > patches are certainly welcome. :) This sounds like an fallout from the /lib -> /usr/lib symlink mess in Fedora. Might be worth taking a look at the specfile how Eric worked around that for the RPM.. From jan@tulak.me Thu Jul 10 11:31:27 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: xfs@oss.sgi.com Delivered-To: xfs@oss.sgi.com Received: from relay.sgi.com (relay2.corp.sgi.com [137.38.102.29]) by oss.sgi.com (Postfix) with ESMTP id ADB237F3F for ; Thu, 10 Jul 2014 11:31:27 -0500 (CDT) Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by relay2.corp.sgi.com (Postfix) with ESMTP id A6825304032 for ; Thu, 10 Jul 2014 09:31:24 -0700 (PDT) X-ASG-Debug-ID: 1405009878-04cbb065353b65a0001-NocioJ Received: from mail-wg0-f42.google.com (mail-wg0-f42.google.com [74.125.82.42]) by cuda.sgi.com with ESMTP id v8hjpgPt4SgtflKG (version=TLSv1 cipher=RC4-SHA bits=128 verify=NO) for ; Thu, 10 Jul 2014 09:31:19 -0700 (PDT) X-Barracuda-Envelope-From: jan@tulak.me X-Barracuda-Apparent-Source-IP: 74.125.82.42 Received: by mail-wg0-f42.google.com with SMTP id l18so2348381wgh.1 for ; Thu, 10 Jul 2014 09:31:16 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:message-id:subject:from:to:cc:date:references :in-reply-to:content-type:mime-version:content-transfer-encoding; bh=97y7qNHQZTcOOuNBk/N6F7FDgaPlSObzBZ1+Jl/wlyk=; b=Rost0b44oJLXiaUaSdv6VEjWzr/UpbvNYWk+/Mu3qJMmEnGlzx7W9/bt7nZ8AcI6TT DyCv10y+59U6en+ZQIt6re5+prbd7KdwIDvXz4dBG8cmSqoggYLP3TDuoWOm1/+svSiG c6nhysvsgmAlsbBGPGtHVq5YNeZQDpVBHqyKDw1ltDDp/7/fQfo1clnF/WGBk1j+QkoV nVk9d3izMh5isiMi1nh5vcLKjhhKACo+CMmw+A2MbnRZ3Cggo8P3YY8T+ZUzRBfKDn+f COAF3JyUNrBnHzMhpv8eUYgoVXd4mGYeykJ2c8lQ7M2tnYWcWL2nrf8ypmyC+ByFkzOf JHRA== X-Gm-Message-State: ALoCoQlC/c2YuLxlHJ+rayEPL64xUPfD+sHp8h59H7/72jo+vVqPofO17ZrKxoL4ogZhfFUMOBeT X-Received: by 10.180.182.131 with SMTP id ee3mr19876510wic.37.1405009876033; Thu, 10 Jul 2014 09:31:16 -0700 (PDT) Received: from ?IPv6:2a01:4240:2e27:a613:3ea9:f4ff:fe4c:6d68? ([2a01:4240:2e27:a613:3ea9:f4ff:fe4c:6d68]) by mx.google.com with ESMTPSA id sa4sm79806766wjb.45.2014.07.10.09.31.14 for (version=TLSv1 cipher=RC4-SHA bits=128/128); Thu, 10 Jul 2014 09:31:15 -0700 (PDT) Message-ID: <1405009872.31068.22.camel@jtulak> Subject: Re: symlink loop for /lib64/libhandle.so From: Jan =?UTF-8?Q?=C5=A4ul=C3=A1k?= X-ASG-Orig-Subj: Re: symlink loop for /lib64/libhandle.so To: Christoph Hellwig Cc: Brian Foster , XFS mail list Date: Thu, 10 Jul 2014 18:31:12 +0200 References: <1404898212.7231.12.camel@jtulak> <20140709132836.GA65226@bfoster.bfoster> <20140710134851.GA26652@infradead.org> In-Reply-To: <20140710134851.GA26652@infradead.org> Content-Type: text/plain; charset="UTF-8" X-Mailer: Evolution 3.10.4 (3.10.4-2.fc20) Mime-Version: 1.0 Content-Transfer-Encoding: 7bit X-Barracuda-Connect: mail-wg0-f42.google.com[74.125.82.42] X-Barracuda-Start-Time: 1405009879 X-Barracuda-Encrypted: RC4-SHA X-Barracuda-URL: http://192.48.176.25:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 X-Barracuda-Spam-Score: 0.00 X-Barracuda-Spam-Status: No, SCORE=0.00 using per-user scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.7 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.7405 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- > On 10 Jul 2014, at 15:48, Christoph Hellwig wrote: > > On Wed, Jul 09, 2014 at 09:28:36AM -0400, Brian Foster wrote: >>> If it not an intended behavior, I can try to find the source of the bug >>> and make a patch (I'm new here :-). >> >> I can reproduce this on fedora rawhide via 'make install-qa.' This is >> not intended behavior. I couldn't tell you what the problem is, but >> patches are certainly welcome. :) > > This sounds like an fallout from the /lib -> /usr/lib symlink mess in > Fedora. Might be worth taking a look at the specfile how Eric worked > around that for the RPM.. Yes. I'm trying to find out what exactly is causing the difference. I have tried to use the same tarball which is used in Eric's RPM and it did the same thing as the git version, so it is not something that would change since his last build. So far It seems that if I add DIST_ROOT, PKG_ROOT_SBIN_DIR and PKG_ROOT_LIB_DIR arguments to the "make install-qa" commandm it works OK and the libhandle.so placed in PKG_ROOT_LIB_DIR points correctly to libandle.so.1. Does this makes some sense to you? Jan Tulak From sandeen@sandeen.net Thu Jul 10 11:40:12 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: xfs@oss.sgi.com Delivered-To: xfs@oss.sgi.com Received: from relay.sgi.com (relay2.corp.sgi.com [137.38.102.29]) by oss.sgi.com (Postfix) with ESMTP id B88147F47 for ; Thu, 10 Jul 2014 11:40:12 -0500 (CDT) Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by relay2.corp.sgi.com (Postfix) with ESMTP id A25A0304032 for ; Thu, 10 Jul 2014 09:40:12 -0700 (PDT) X-ASG-Debug-ID: 1405010407-04bdf056668ffb60001-NocioJ Received: from sandeen.net (sandeen.net [63.231.237.45]) by cuda.sgi.com with ESMTP id K1aIY9a5CwydVsU1 for ; Thu, 10 Jul 2014 09:40:07 -0700 (PDT) X-Barracuda-Envelope-From: sandeen@sandeen.net X-Barracuda-Apparent-Source-IP: 63.231.237.45 Received: from liberator.sandeen.net (liberator.sandeen.net [10.0.0.4]) (using TLSv1 with cipher DHE-RSA-AES128-SHA (128/128 bits)) (No client certificate requested) by sandeen.net (Postfix) with ESMTPSA id BAE7B63C3B17; Thu, 10 Jul 2014 11:40:06 -0500 (CDT) Message-ID: <53BEC1E7.1070904@sandeen.net> Date: Thu, 10 Jul 2014 11:40:07 -0500 From: Eric Sandeen MIME-Version: 1.0 To: =?UTF-8?B?SmFuIMWkdWzDoWs=?= , Christoph Hellwig CC: Brian Foster , XFS mail list Subject: Re: symlink loop for /lib64/libhandle.so References: <1404898212.7231.12.camel@jtulak> <20140709132836.GA65226@bfoster.bfoster> <20140710134851.GA26652@infradead.org> <1405009872.31068.22.camel@jtulak> X-ASG-Orig-Subj: Re: symlink loop for /lib64/libhandle.so In-Reply-To: <1405009872.31068.22.camel@jtulak> X-Enigmail-Version: 1.6 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Barracuda-Connect: sandeen.net[63.231.237.45] X-Barracuda-Start-Time: 1405010407 X-Barracuda-URL: http://192.48.157.11:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 X-Barracuda-Spam-Score: 0.00 X-Barracuda-Spam-Status: No, SCORE=0.00 using per-user scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.7 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.7405 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- On 7/10/14, 11:31 AM, Jan Ťulák wrote: > >> On 10 Jul 2014, at 15:48, Christoph Hellwig wrote: >> >> On Wed, Jul 09, 2014 at 09:28:36AM -0400, Brian Foster wrote: >>>> If it not an intended behavior, I can try to find the source of the bug >>>> and make a patch (I'm new here :-). >>> >>> I can reproduce this on fedora rawhide via 'make install-qa.' This is >>> not intended behavior. I couldn't tell you what the problem is, but >>> patches are certainly welcome. :) >> >> This sounds like an fallout from the /lib -> /usr/lib symlink mess in >> Fedora. Might be worth taking a look at the specfile how Eric worked >> around that for the RPM.. I'm pretty sure I used a terrible hack in the specfile... ;) > Yes. I'm trying to find out what exactly is causing the difference. I > have tried to use the same tarball which is used in Eric's RPM and it > did the same thing as the git version, so it is not something that > would change since his last build. The tarball I use in the RPM is exactly what is provided on oss.sgi.com, there's nothing different in there for Fedora. > So far It seems that if I add DIST_ROOT, PKG_ROOT_SBIN_DIR and > PKG_ROOT_LIB_DIR arguments to the "make install-qa" commandm it works OK and > the libhandle.so placed in PKG_ROOT_LIB_DIR points correctly to > libandle.so.1. > > Does this makes some sense to you? Here's what the current RPM build does; I don't claim that it's elegant or beautiful: %install rm -rf $RPM_BUILD_ROOT make V=1 DIST_ROOT=$RPM_BUILD_ROOT install install-dev install-qa \ PKG_ROOT_SBIN_DIR=%{_sbindir} PKG_ROOT_LIB_DIR=%{_libdir} so that sounds like what you're doing, too. FWIW, that above change also removed this old cruft, and I don't remember what it was for: -# fix up symlink to be correct -rm -f $RPM_BUILD_ROOT/%{_libdir}/libhandle.so -ln -s ../../%{_lib}/libhandle.so.1 $RPM_BUILD_ROOT/%{_libdir}/libhandle.so so I'm probably guilty of hacking stuff up too much for Fedora, vs fixing it upstream... :( -Eric From david@fromorbit.com Thu Jul 10 15:50:20 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: xfs@oss.sgi.com Delivered-To: xfs@oss.sgi.com Received: from relay.sgi.com (relay3.corp.sgi.com [198.149.34.15]) by oss.sgi.com (Postfix) with ESMTP id 0B85B7F3F for ; Thu, 10 Jul 2014 15:50:20 -0500 (CDT) Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by relay3.corp.sgi.com (Postfix) with ESMTP id A0997AC004 for ; Thu, 10 Jul 2014 13:50:16 -0700 (PDT) X-ASG-Debug-ID: 1405025413-04cb6c76d1585ed0001-NocioJ Received: from ipmail05.adl6.internode.on.net (ipmail05.adl6.internode.on.net [150.101.137.143]) by cuda.sgi.com with ESMTP id HNvDapnC8WsGcBnj for ; Thu, 10 Jul 2014 13:50:14 -0700 (PDT) X-Barracuda-Envelope-From: david@fromorbit.com X-Barracuda-Apparent-Source-IP: 150.101.137.143 X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: AowKANL7vlN5LG3lPGdsb2JhbABZgw6DSlGEN6RTAQEBAQEBBpwqAYENFwQBAQEBODWEAwEBBSMPASMjEAgBAhgCAgUhAgIPBSUDBxoTiEGQe5wnmS0XGIEUhE6JSgeCd4FMAQSaf4tRjBor Received: from ppp121-44-109-229.lns20.syd6.internode.on.net (HELO dastard) ([121.44.109.229]) by ipmail05.adl6.internode.on.net with ESMTP; 11 Jul 2014 06:20:12 +0930 Received: from dave by dastard with local (Exim 4.80) (envelope-from ) id 1X5LIB-0004pa-4C; Fri, 11 Jul 2014 06:50:11 +1000 Date: Fri, 11 Jul 2014 06:50:11 +1000 From: Dave Chinner To: =?utf-8?B?THVrw6HFoQ==?= Czerner Cc: fstests@vger.kernel.org, xfs@oss.sgi.com Subject: Re: [PATCH 2/2] xfstests: Check fs consistency on TEST_DEV only when needed Message-ID: <20140710205011.GL4453@dastard> X-ASG-Orig-Subj: Re: [PATCH 2/2] xfstests: Check fs consistency on TEST_DEV only when needed References: <1403617014-17870-1-git-send-email-lczerner@redhat.com> <1403617014-17870-2-git-send-email-lczerner@redhat.com> <20140710010711.GJ4453@dastard> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: User-Agent: Mutt/1.5.21 (2010-09-15) X-Barracuda-Connect: ipmail05.adl6.internode.on.net[150.101.137.143] X-Barracuda-Start-Time: 1405025414 X-Barracuda-URL: http://192.48.176.15:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 X-Barracuda-Spam-Score: 0.00 X-Barracuda-Spam-Status: No, SCORE=0.00 using per-user scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.7 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.7412 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- On Thu, Jul 10, 2014 at 10:38:45AM +0200, Lukáš Czerner wrote: > On Thu, 10 Jul 2014, Dave Chinner wrote: > I like the idea Eric proposed with the _require_test check for the > test that actually require test device and then actually check the > device only after such test. Will that be acceptable ? If so I'll > rework the patches. Works for me. Don't forget to add it to the "new" script as well so the default is to check the test device. That will trigger us to check if it is necessary during test development review, rather than forgetting we need to add it. ;) Cheers, Dave. -- Dave Chinner david@fromorbit.com From dave@fromorbit.com Thu Jul 10 18:26:28 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: xfs@oss.sgi.com Delivered-To: xfs@oss.sgi.com Received: from relay.sgi.com (relay2.corp.sgi.com [137.38.102.29]) by oss.sgi.com (Postfix) with ESMTP id A52437F3F for ; Thu, 10 Jul 2014 18:26:28 -0500 (CDT) Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by relay2.corp.sgi.com (Postfix) with ESMTP id 879FA304043 for ; Thu, 10 Jul 2014 16:26:28 -0700 (PDT) X-ASG-Debug-ID: 1405034786-04cbb0421a024c0001-NocioJ Received: from ipmail05.adl6.internode.on.net (ipmail05.adl6.internode.on.net [150.101.137.143]) by cuda.sgi.com with ESMTP id sBWU7DIonAw3GGFC for ; Thu, 10 Jul 2014 16:26:26 -0700 (PDT) X-Barracuda-Envelope-From: dave@fromorbit.com X-Barracuda-Apparent-Source-IP: 150.101.137.143 X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: Ag4KAGMgv1N5LG3lPGdsb2JhbABZgw6IUqRTAQEBAQEBBp00FwQBAQEBODWEAwEBBScgDzMIGDE5AwcUGYhBsjyUCoV6iH1qhC0FsmorgTI Received: from ppp121-44-109-229.lns20.syd6.internode.on.net (HELO dastard) ([121.44.109.229]) by ipmail05.adl6.internode.on.net with ESMTP; 11 Jul 2014 08:56:23 +0930 Received: from disappointment.disaster.area ([192.168.1.110] helo=disappointment) by dastard with esmtp (Exim 4.80) (envelope-from ) id 1X5NjK-0005MB-B7 for xfs@oss.sgi.com; Fri, 11 Jul 2014 09:26:22 +1000 Received: from dave by disappointment with local (Exim 4.82_1-5b7a7c0-XX) (envelope-from ) id 1X5NjK-0000dy-AC for xfs@oss.sgi.com; Fri, 11 Jul 2014 09:26:22 +1000 From: Dave Chinner To: xfs@oss.sgi.com Subject: [PATCH 3/3] xfs: null unused quota inodes when quota is on Date: Fri, 11 Jul 2014 09:26:19 +1000 X-ASG-Orig-Subj: [PATCH 3/3] xfs: null unused quota inodes when quota is on Message-Id: <1405034779-2028-4-git-send-email-david@fromorbit.com> X-Mailer: git-send-email 2.0.0 In-Reply-To: <1405034779-2028-1-git-send-email-david@fromorbit.com> References: <1405034779-2028-1-git-send-email-david@fromorbit.com> X-Barracuda-Connect: ipmail05.adl6.internode.on.net[150.101.137.143] X-Barracuda-Start-Time: 1405034786 X-Barracuda-URL: http://192.48.176.25:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 X-Barracuda-Spam-Score: 0.00 X-Barracuda-Spam-Status: No, SCORE=0.00 using per-user scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.7 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.7417 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- From: Dave Chinner When quota is on, it is expected that unused quota inodes have a value of NULLFSINO. The changes to support a separate project quota in 3.12 broken this rule for non-project quota inode enabled filesystem, as the code now refuses to write the group quota inode if neither group or project quotas are enabled. This regression was introduced by commit d892d58 ("xfs: Start using pquotaino from the superblock"). In this case, we should be writing NULLFSINO rather than nothing to ensure that we leave the group quota inode in a valid state while quotas are enabled. Failure to do so doesn't cause a current kernel to break - the separate project quota inodes introduced translation code to always treat a zero inode as NULLFSINO. This was introduced by commit 0102629 ("xfs: Initialize all quota inodes to be NULLFSINO") with is also in 3.12 but older kernels do not do this and hence taking a filesystem back to an older kernel can result in quotas failing initialisation at mount time. When that happens, we see this in dmesg: [ 1649.215390] XFS (sdb): Mounting Filesystem [ 1649.316894] XFS (sdb): Failed to initialize disk quotas. [ 1649.316902] XFS (sdb): Ending clean mount By ensuring that we write NULLFSINO to quota inodes that aren't active, we avoid this problem. Signed-off-by: Dave Chinner --- fs/xfs/xfs_sb.c | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/fs/xfs/xfs_sb.c b/fs/xfs/xfs_sb.c index c3453b1..9a58699 100644 --- a/fs/xfs/xfs_sb.c +++ b/fs/xfs/xfs_sb.c @@ -483,10 +483,16 @@ xfs_sb_quota_to_disk( } /* - * GQUOTINO and PQUOTINO cannot be used together in versions - * of superblock that do not have pquotino. from->sb_flags - * tells us which quota is active and should be copied to - * disk. + * GQUOTINO and PQUOTINO cannot be used together in versions of + * superblock that do not have pquotino. from->sb_flags tells us which + * quota is active and should be copied to disk. If neither are active, + * make sure we write NULLFSINO to the sb_gquotino field as a quota + * inode value of "0" is invalid when the XFS_SB_VERSION_QUOTA feature + * bit is set. + * + * Note that we don't need to handle the sb_uquotino or sb_pquotino here + * as they do not require any translation. Hence the main sb field loop + * will write them appropriately from the in-core superblock. */ if ((*fields & XFS_SB_GQUOTINO) && (from->sb_qflags & XFS_GQUOTA_ACCT)) @@ -494,6 +500,8 @@ xfs_sb_quota_to_disk( else if ((*fields & XFS_SB_PQUOTINO) && (from->sb_qflags & XFS_PQUOTA_ACCT)) to->sb_gquotino = cpu_to_be64(from->sb_pquotino); + else + to->sb_gquotino = cpu_to_be64(NULLFSINO); *fields &= ~(XFS_SB_PQUOTINO | XFS_SB_GQUOTINO); } -- 2.0.0 From dave@fromorbit.com Thu Jul 10 18:26:30 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: xfs@oss.sgi.com Delivered-To: xfs@oss.sgi.com Received: from relay.sgi.com (relay2.corp.sgi.com [137.38.102.29]) by oss.sgi.com (Postfix) with ESMTP id 109E87F3F for ; Thu, 10 Jul 2014 18:26:30 -0500 (CDT) Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by relay2.corp.sgi.com (Postfix) with ESMTP id 02EE9304032 for ; Thu, 10 Jul 2014 16:26:26 -0700 (PDT) X-ASG-Debug-ID: 1405034784-04cbb04219024b0001-NocioJ Received: from ipmail05.adl6.internode.on.net (ipmail05.adl6.internode.on.net [150.101.137.143]) by cuda.sgi.com with ESMTP id ZGnDfgbKMcmRxfRX for ; Thu, 10 Jul 2014 16:26:24 -0700 (PDT) X-Barracuda-Envelope-From: dave@fromorbit.com X-Barracuda-Apparent-Source-IP: 150.101.137.143 X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: ArIJAGMgv1N5LG3lPGdsb2JhbABZgw6IUqRTAQEBAQEHBZ0vFwQBAQEBODWEYDuBAgMHiG6dYqhkhXqGHwGDR4QtBbBYghIr Received: from ppp121-44-109-229.lns20.syd6.internode.on.net (HELO dastard) ([121.44.109.229]) by ipmail05.adl6.internode.on.net with ESMTP; 11 Jul 2014 08:56:23 +0930 Received: from disappointment.disaster.area ([192.168.1.110] helo=disappointment) by dastard with esmtp (Exim 4.80) (envelope-from ) id 1X5NjK-0005M8-8w for xfs@oss.sgi.com; Fri, 11 Jul 2014 09:26:22 +1000 Received: from dave by disappointment with local (Exim 4.82_1-5b7a7c0-XX) (envelope-from ) id 1X5NjK-0000dl-87 for xfs@oss.sgi.com; Fri, 11 Jul 2014 09:26:22 +1000 From: Dave Chinner To: xfs@oss.sgi.com Subject: [PATCH 0/3] xfs: regression fixes for 3.16-rc5 Date: Fri, 11 Jul 2014 09:26:16 +1000 X-ASG-Orig-Subj: [PATCH 0/3] xfs: regression fixes for 3.16-rc5 Message-Id: <1405034779-2028-1-git-send-email-david@fromorbit.com> X-Mailer: git-send-email 2.0.0 X-Barracuda-Connect: ipmail05.adl6.internode.on.net[150.101.137.143] X-Barracuda-Start-Time: 1405034784 X-Barracuda-URL: http://192.48.176.25:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 X-Barracuda-Spam-Score: 0.00 X-Barracuda-Spam-Status: No, SCORE=0.00 using per-user scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.7 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.7417 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- Hi folks, These three patches are fixes for recent regressions. The first two are fixing up the mess that making the allocation workqueue kswapd aware. The first reverts the original patch, and the second moves the stack switch to the problematic double btree split path rather than being done for all writeback allocation. This allows the stack split to be done unconditionally for all allocations due to the relative rarity of it occurring now, and allows the kswapd awareness to be passed because we aren't going to swamp memory reclaim with hundreds of concurrent allocation requests from "kswapd" context. The last patch is for an older regression, and one that was tripped over recently when fixing up v3.2.0 of repair. It only affects people who are switching from newer kernels to older kernels and have only user quotas enabled. That combination shouldn't be too frequent - the fact the bug has been there since 3.12 indicates that this, indeed, isn't a frequent occurrence. Still, it needs to be fixed. Comments, thoughts, and testing all welcome... -Dave. From dave@fromorbit.com Thu Jul 10 18:26:32 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: xfs@oss.sgi.com Delivered-To: xfs@oss.sgi.com Received: from relay.sgi.com (relay3.corp.sgi.com [198.149.34.15]) by oss.sgi.com (Postfix) with ESMTP id DEC987F57 for ; Thu, 10 Jul 2014 18:26:31 -0500 (CDT) Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by relay3.corp.sgi.com (Postfix) with ESMTP id 5C165AC001 for ; Thu, 10 Jul 2014 16:26:28 -0700 (PDT) X-ASG-Debug-ID: 1405034784-04cbb04219024b0002-NocioJ Received: from ipmail05.adl6.internode.on.net (ipmail05.adl6.internode.on.net [150.101.137.143]) by cuda.sgi.com with ESMTP id CGfNHEs4dwzE5YDk for ; Thu, 10 Jul 2014 16:26:26 -0700 (PDT) X-Barracuda-Envelope-From: dave@fromorbit.com X-Barracuda-Apparent-Source-IP: 150.101.137.143 X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: Ag0KAGMgv1N5LG3lPGdsb2JhbABZgw6IUqRTAQEBAQEBBp00FwQBAQEBODWEBAEFJy8zCEk5AwcUGYhBxkaFeolnhC0FsmorgTEk Received: from ppp121-44-109-229.lns20.syd6.internode.on.net (HELO dastard) ([121.44.109.229]) by ipmail05.adl6.internode.on.net with ESMTP; 11 Jul 2014 08:56:23 +0930 Received: from disappointment.disaster.area ([192.168.1.110] helo=disappointment) by dastard with esmtp (Exim 4.80) (envelope-from ) id 1X5NjK-0005M9-9a for xfs@oss.sgi.com; Fri, 11 Jul 2014 09:26:22 +1000 Received: from dave by disappointment with local (Exim 4.82_1-5b7a7c0-XX) (envelope-from ) id 1X5NjK-0000do-8g for xfs@oss.sgi.com; Fri, 11 Jul 2014 09:26:22 +1000 From: Dave Chinner To: xfs@oss.sgi.com Subject: [PATCH 1/3] Revert "xfs: block allocation work needs to be kswapd aware" Date: Fri, 11 Jul 2014 09:26:17 +1000 X-ASG-Orig-Subj: [PATCH 1/3] Revert "xfs: block allocation work needs to be kswapd aware" Message-Id: <1405034779-2028-2-git-send-email-david@fromorbit.com> X-Mailer: git-send-email 2.0.0 In-Reply-To: <1405034779-2028-1-git-send-email-david@fromorbit.com> References: <1405034779-2028-1-git-send-email-david@fromorbit.com> X-Barracuda-Connect: ipmail05.adl6.internode.on.net[150.101.137.143] X-Barracuda-Start-Time: 1405034785 X-Barracuda-URL: http://192.48.176.25:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 X-Barracuda-Spam-Score: 0.00 X-Barracuda-Spam-Status: No, SCORE=0.00 using per-user scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.7 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.7417 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- This reverts commit 1f6d64829db78a7e1d63e15c9f48f0a5d2b5a679. This commit resulted in regressions in performance in low memory situations where kswapd was doing writeback of delayed allocation blocks. It resulted in significant parallelism of the kswapd work and with the special kswapd flags meant that hundreds of active allocation could dip into kswapd specific memory reserves and avoid being throttled. This cause a large amount of performance variation, as well as random OOM-killer invocations that didn't previously exist. Signed-off-by: Dave Chinner --- fs/xfs/xfs_bmap_util.c | 16 +++------------- fs/xfs/xfs_bmap_util.h | 13 ++++++------- 2 files changed, 9 insertions(+), 20 deletions(-) diff --git a/fs/xfs/xfs_bmap_util.c b/fs/xfs/xfs_bmap_util.c index 703b3ec..057f671 100644 --- a/fs/xfs/xfs_bmap_util.c +++ b/fs/xfs/xfs_bmap_util.c @@ -258,23 +258,14 @@ xfs_bmapi_allocate_worker( struct xfs_bmalloca *args = container_of(work, struct xfs_bmalloca, work); unsigned long pflags; - unsigned long new_pflags = PF_FSTRANS; - /* - * we are in a transaction context here, but may also be doing work - * in kswapd context, and hence we may need to inherit that state - * temporarily to ensure that we don't block waiting for memory reclaim - * in any way. - */ - if (args->kswapd) - new_pflags |= PF_MEMALLOC | PF_SWAPWRITE | PF_KSWAPD; - - current_set_flags_nested(&pflags, new_pflags); + /* we are in a transaction context here */ + current_set_flags_nested(&pflags, PF_FSTRANS); args->result = __xfs_bmapi_allocate(args); complete(args->done); - current_restore_flags_nested(&pflags, new_pflags); + current_restore_flags_nested(&pflags, PF_FSTRANS); } /* @@ -293,7 +284,6 @@ xfs_bmapi_allocate( args->done = &done; - args->kswapd = current_is_kswapd(); INIT_WORK_ONSTACK(&args->work, xfs_bmapi_allocate_worker); queue_work(xfs_alloc_wq, &args->work); wait_for_completion(&done); diff --git a/fs/xfs/xfs_bmap_util.h b/fs/xfs/xfs_bmap_util.h index 075f722..935ed2b 100644 --- a/fs/xfs/xfs_bmap_util.h +++ b/fs/xfs/xfs_bmap_util.h @@ -50,13 +50,12 @@ struct xfs_bmalloca { xfs_extlen_t total; /* total blocks needed for xaction */ xfs_extlen_t minlen; /* minimum allocation size (blocks) */ xfs_extlen_t minleft; /* amount must be left after alloc */ - bool eof; /* set if allocating past last extent */ - bool wasdel; /* replacing a delayed allocation */ - bool userdata;/* set if is user data */ - bool aeof; /* allocated space at eof */ - bool conv; /* overwriting unwritten extents */ - bool stack_switch; - bool kswapd; /* allocation in kswapd context */ + char eof; /* set if allocating past last extent */ + char wasdel; /* replacing a delayed allocation */ + char userdata;/* set if is user data */ + char aeof; /* allocated space at eof */ + char conv; /* overwriting unwritten extents */ + char stack_switch; int flags; struct completion *done; struct work_struct work; -- 2.0.0 From dave@fromorbit.com Thu Jul 10 18:26:33 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: xfs@oss.sgi.com Delivered-To: xfs@oss.sgi.com Received: from relay.sgi.com (relay1.corp.sgi.com [137.38.102.111]) by oss.sgi.com (Postfix) with ESMTP id 2BC487F57 for ; Thu, 10 Jul 2014 18:26:33 -0500 (CDT) Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by relay1.corp.sgi.com (Postfix) with ESMTP id 1A7838F8054 for ; Thu, 10 Jul 2014 16:26:30 -0700 (PDT) X-ASG-Debug-ID: 1405034784-04cbb04219024b0003-NocioJ Received: from ipmail05.adl6.internode.on.net (ipmail05.adl6.internode.on.net [150.101.137.143]) by cuda.sgi.com with ESMTP id zEEsKEY4VkYey6sD for ; Thu, 10 Jul 2014 16:26:27 -0700 (PDT) X-Barracuda-Envelope-From: dave@fromorbit.com X-Barracuda-Apparent-Source-IP: 150.101.137.143 X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: Ag4KAGMgv1N5LG3lPGdsb2JhbABZgw6IUqRTAQEBAQEBBp00FwQBAQEBODWEAwEBBScvMwgYMTkDBxQZG4gmxkaFeo4UBbJqK4ExJA Received: from ppp121-44-109-229.lns20.syd6.internode.on.net (HELO dastard) ([121.44.109.229]) by ipmail05.adl6.internode.on.net with ESMTP; 11 Jul 2014 08:56:23 +0930 Received: from disappointment.disaster.area ([192.168.1.110] helo=disappointment) by dastard with esmtp (Exim 4.80) (envelope-from ) id 1X5NjK-0005MA-AW for xfs@oss.sgi.com; Fri, 11 Jul 2014 09:26:22 +1000 Received: from dave by disappointment with local (Exim 4.82_1-5b7a7c0-XX) (envelope-from ) id 1X5NjK-0000dt-9B for xfs@oss.sgi.com; Fri, 11 Jul 2014 09:26:22 +1000 From: Dave Chinner To: xfs@oss.sgi.com Subject: [PATCH 2/3] xfs: refine the allocation stack switch Date: Fri, 11 Jul 2014 09:26:18 +1000 X-ASG-Orig-Subj: [PATCH 2/3] xfs: refine the allocation stack switch Message-Id: <1405034779-2028-3-git-send-email-david@fromorbit.com> X-Mailer: git-send-email 2.0.0 In-Reply-To: <1405034779-2028-1-git-send-email-david@fromorbit.com> References: <1405034779-2028-1-git-send-email-david@fromorbit.com> X-Barracuda-Connect: ipmail05.adl6.internode.on.net[150.101.137.143] X-Barracuda-Start-Time: 1405034787 X-Barracuda-URL: http://192.48.176.25:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 X-Barracuda-Spam-Score: 0.00 X-Barracuda-Spam-Status: No, SCORE=0.00 using per-user scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.7 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.7417 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- From: Dave Chinner The allocation stack switch at xfs_bmapi_allocate() has served it's purpose, but is no longer a sufficient solution to the stack usage problem we have in the XFS allocation path. Whilst the kernel stack size is now 16k, that is not a valid reason for undoing all our "keep stack usage down" modifications. What it does allow us to do is have the freedom to refine and perfect the modifications knowing that if we get it wrong it won't blow up in our faces - we have a safety net now. This is important because we still have the issue of older kernels having smaller stacks and that they are still supported and are demonstrating a wide range of different stack overflows. Red Hat has several open bugs for allocation based stack overflows from directory modifications and direct IO block allocation and these problems still need to be solved. If we can solve them upstream, then distro's won't need to bake their own unique solutions. To that end, I've observed that every allocation based stack overflow report has had a specific characteristic - it has happened during or directly after a bmap btree block split. That event requires a new block to be allocated to the tree, and so we effectively stack one allocation stack on top of another, and that's when we get into trouble. A further observation is that bmap btree block splits are much rarer than writeback allocation - over a range of different workloads I've observed the ratio of bmap btree inserts to splits ranges from 100:1 (xfstests run) to 10000:1 (local VM image server with sparse files that range in the hundreds of thousands to millions of extents). Either way, bmap btree split events are much, much rarer than allocation events. Finally, we have to move the kswapd state to the allocation workqueue work when allocation is done on behalf of kswapd. This is proving to cause significant perturbation in performance under memory pressure and appears to be generating allocation deadlock warnings under some workloads, so avoiding the use of a workqueue for the majority of kswapd writeback allocation will minimise the impact of such behaviour. Hence it makes sense to move the stack switch to xfs_btree_split() and only do it for bmap btree splits. Stack switches during allocation will be much rarer, so there won't be significant performacne overhead caused by switching stacks. The worse case stack from all allocation paths will be split, not just writeback. And the majority of memory allocations will be done in the correct context (e.g. kswapd) without causing additional latency, and so we simplify the memory reclaim interactions between processes, workqueues and kswapd. The worst stack I've been able to generate with this patch in place is 5600 bytes deep. It's very revealing because we exit XFS at: 37) 1768 64 kmem_cache_alloc+0x13b/0x170 about 1800 bytes of stack consumed, and the remaining 3800 bytes (and 36 functions) is memory reclaim, swap and the IO stack. And this occurs in the inode allocation from an open(O_CREAT) syscall, not writeback. The amount of stack being used is much less than I've previously be able to generate - fs_mark testing has been able to generate stack usage of around 7k without too much trouble; with this patch it's only just getting to 5.5k. This is primarily because the metadata allocation paths (e.g. directory blocks) are no longer causing double splits on the same stack, and hence now stack tracing is showing swapping being the worst stack consumer rather than XFS. Performance of fs_mark inode create workloads is unchanged. Performance of fs_mark async fsync workloads is consistently good with context switches reduced by around 150,000/s (30%). Performance of dbench, streaming IO and postmark is unchanged. Allocation deadlock warnings have not been seen on the workloads that generated them since adding this patch. Signed-off-by: Dave Chinner --- fs/xfs/xfs_bmap.c | 4 +-- fs/xfs/xfs_bmap_util.c | 43 -------------------------- fs/xfs/xfs_bmap_util.h | 15 +++++---- fs/xfs/xfs_btree.c | 84 ++++++++++++++++++++++++++++++++++++++++++++++++-- 4 files changed, 91 insertions(+), 55 deletions(-) diff --git a/fs/xfs/xfs_bmap.c b/fs/xfs/xfs_bmap.c index 96175df..32bc49c 100644 --- a/fs/xfs/xfs_bmap.c +++ b/fs/xfs/xfs_bmap.c @@ -4298,8 +4298,8 @@ xfs_bmapi_delay( } -int -__xfs_bmapi_allocate( +static int +xfs_bmapi_allocate( struct xfs_bmalloca *bma) { struct xfs_mount *mp = bma->ip->i_mount; diff --git a/fs/xfs/xfs_bmap_util.c b/fs/xfs/xfs_bmap_util.c index 057f671..64731ef 100644 --- a/fs/xfs/xfs_bmap_util.c +++ b/fs/xfs/xfs_bmap_util.c @@ -249,49 +249,6 @@ xfs_bmap_rtalloc( } /* - * Stack switching interfaces for allocation - */ -static void -xfs_bmapi_allocate_worker( - struct work_struct *work) -{ - struct xfs_bmalloca *args = container_of(work, - struct xfs_bmalloca, work); - unsigned long pflags; - - /* we are in a transaction context here */ - current_set_flags_nested(&pflags, PF_FSTRANS); - - args->result = __xfs_bmapi_allocate(args); - complete(args->done); - - current_restore_flags_nested(&pflags, PF_FSTRANS); -} - -/* - * Some allocation requests often come in with little stack to work on. Push - * them off to a worker thread so there is lots of stack to use. Otherwise just - * call directly to avoid the context switch overhead here. - */ -int -xfs_bmapi_allocate( - struct xfs_bmalloca *args) -{ - DECLARE_COMPLETION_ONSTACK(done); - - if (!args->stack_switch) - return __xfs_bmapi_allocate(args); - - - args->done = &done; - INIT_WORK_ONSTACK(&args->work, xfs_bmapi_allocate_worker); - queue_work(xfs_alloc_wq, &args->work); - wait_for_completion(&done); - destroy_work_on_stack(&args->work); - return args->result; -} - -/* * Check if the endoff is outside the last extent. If so the caller will grow * the allocation to a stripe unit boundary. All offsets are considered outside * the end of file for an empty fork, so 1 is returned in *eof in that case. diff --git a/fs/xfs/xfs_bmap_util.h b/fs/xfs/xfs_bmap_util.h index 935ed2b..91df8e9 100644 --- a/fs/xfs/xfs_bmap_util.h +++ b/fs/xfs/xfs_bmap_util.h @@ -50,12 +50,13 @@ struct xfs_bmalloca { xfs_extlen_t total; /* total blocks needed for xaction */ xfs_extlen_t minlen; /* minimum allocation size (blocks) */ xfs_extlen_t minleft; /* amount must be left after alloc */ - char eof; /* set if allocating past last extent */ - char wasdel; /* replacing a delayed allocation */ - char userdata;/* set if is user data */ - char aeof; /* allocated space at eof */ - char conv; /* overwriting unwritten extents */ - char stack_switch; + bool eof; /* set if allocating past last extent */ + bool wasdel; /* replacing a delayed allocation */ + bool userdata;/* set if is user data */ + bool aeof; /* allocated space at eof */ + bool conv; /* overwriting unwritten extents */ + bool stack_switch; + bool kswapd; /* work being done for kswapd */ int flags; struct completion *done; struct work_struct work; @@ -65,8 +66,6 @@ struct xfs_bmalloca { int xfs_bmap_finish(struct xfs_trans **tp, struct xfs_bmap_free *flist, int *committed); int xfs_bmap_rtalloc(struct xfs_bmalloca *ap); -int xfs_bmapi_allocate(struct xfs_bmalloca *args); -int __xfs_bmapi_allocate(struct xfs_bmalloca *args); int xfs_bmap_eof(struct xfs_inode *ip, xfs_fileoff_t endoff, int whichfork, int *eof); int xfs_bmap_count_blocks(struct xfs_trans *tp, struct xfs_inode *ip, diff --git a/fs/xfs/xfs_btree.c b/fs/xfs/xfs_btree.c index bf810c6..61168e3 100644 --- a/fs/xfs/xfs_btree.c +++ b/fs/xfs/xfs_btree.c @@ -33,6 +33,7 @@ #include "xfs_error.h" #include "xfs_trace.h" #include "xfs_cksum.h" +#include "xfs_alloc.h" /* * Cursor allocation zone. @@ -2322,8 +2323,8 @@ error1: * Return new block number and the key to its first * record (to be inserted into parent). */ -STATIC int /* error */ -xfs_btree_split( +int /* error */ +__xfs_btree_split( struct xfs_btree_cur *cur, int level, union xfs_btree_ptr *ptrp, @@ -2503,6 +2504,85 @@ error0: return error; } +struct xfs_btree_split_args { + struct xfs_btree_cur *cur; + int level; + union xfs_btree_ptr *ptrp; + union xfs_btree_key *key; + struct xfs_btree_cur **curp; + int *stat; /* success/failure */ + int result; + bool kswapd; /* allocation in kswapd context */ + struct completion *done; + struct work_struct work; +}; + +/* + * Stack switching interfaces for allocation + */ +static void +xfs_btree_split_worker( + struct work_struct *work) +{ + struct xfs_btree_split_args *args = container_of(work, + struct xfs_btree_split_args, work); + unsigned long pflags; + unsigned long new_pflags = PF_FSTRANS; + + /* + * we are in a transaction context here, but may also be doing work + * in kswapd context, and hence we may need to inherit that state + * temporarily to ensure that we don't block waiting for memory reclaim + * in any way. + */ + if (args->kswapd) + new_pflags |= PF_MEMALLOC | PF_SWAPWRITE | PF_KSWAPD; + + current_set_flags_nested(&pflags, new_pflags); + + args->result = __xfs_btree_split(args->cur, args->level, args->ptrp, + args->key, args->curp, args->stat); + complete(args->done); + + current_restore_flags_nested(&pflags, new_pflags); +} + +/* + * BMBT split requests often come in with little stack to work on. Push + * them off to a worker thread so there is lots of stack to use. For the other + * btree types, just call directly to avoid the context switch overhead here. + */ +STATIC int /* error */ +xfs_btree_split( + struct xfs_btree_cur *cur, + int level, + union xfs_btree_ptr *ptrp, + union xfs_btree_key *key, + struct xfs_btree_cur **curp, + int *stat) /* success/failure */ +{ + struct xfs_btree_split_args args; + DECLARE_COMPLETION_ONSTACK(done); + + if (cur->bc_btnum != XFS_BTNUM_BMAP) + return __xfs_btree_split(cur, level, ptrp, key, curp, stat); + + args.cur = cur; + args.level = level; + args.ptrp = ptrp; + args.key = key; + args.curp = curp; + args.stat = stat; + args.done = &done; + args.kswapd = current_is_kswapd(); + INIT_WORK_ONSTACK(&args.work, xfs_btree_split_worker); + queue_work(xfs_alloc_wq, &args.work); + wait_for_completion(&done); + destroy_work_on_stack(&args.work); + return args.result; +} + + /* * Copy the old inode root contents into a real block and make the * broot point to it. -- 2.0.0 From david@fromorbit.com Thu Jul 10 18:32:15 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: xfs@oss.sgi.com Delivered-To: xfs@oss.sgi.com Received: from relay.sgi.com (relay3.corp.sgi.com [198.149.34.15]) by oss.sgi.com (Postfix) with ESMTP id D855E7F3F for ; Thu, 10 Jul 2014 18:32:14 -0500 (CDT) Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by relay3.corp.sgi.com (Postfix) with ESMTP id 5D678AC006 for ; Thu, 10 Jul 2014 16:32:14 -0700 (PDT) X-ASG-Debug-ID: 1405035131-04cb6c6ad002720001-NocioJ Received: from ipmail05.adl6.internode.on.net (ipmail05.adl6.internode.on.net [150.101.137.143]) by cuda.sgi.com with ESMTP id sGaziFhMwEK6dHEP for ; Thu, 10 Jul 2014 16:32:11 -0700 (PDT) X-Barracuda-Envelope-From: david@fromorbit.com X-Barracuda-Apparent-Source-IP: 150.101.137.143 X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: AogKAJchv1N5LG3lPGdsb2JhbABZgw6DSoUIpFMBAQEBAQEGnCoBgQkXBAEBAQE4NYQDAQEFOhwjEAgDDgYECSUPBSUDBxoTiEHGMBcYhWKJSgeEQwEEmn+Xays Received: from ppp121-44-109-229.lns20.syd6.internode.on.net (HELO dastard) ([121.44.109.229]) by ipmail05.adl6.internode.on.net with ESMTP; 11 Jul 2014 09:02:10 +0930 Received: from dave by dastard with local (Exim 4.80) (envelope-from ) id 1X5Nov-0005NR-OP; Fri, 11 Jul 2014 09:32:09 +1000 Date: Fri, 11 Jul 2014 09:32:09 +1000 From: Dave Chinner To: Brian Foster Cc: xfs@oss.sgi.com Subject: Re: [PATCH v2 6/6] xfs: document log sysfs attributes in testing ABI Message-ID: <20140710233209.GN4453@dastard> X-ASG-Orig-Subj: Re: [PATCH v2 6/6] xfs: document log sysfs attributes in testing ABI References: <1403870821-20143-1-git-send-email-bfoster@redhat.com> <1403870821-20143-7-git-send-email-bfoster@redhat.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1403870821-20143-7-git-send-email-bfoster@redhat.com> User-Agent: Mutt/1.5.21 (2010-09-15) X-Barracuda-Connect: ipmail05.adl6.internode.on.net[150.101.137.143] X-Barracuda-Start-Time: 1405035131 X-Barracuda-URL: http://192.48.176.15:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 X-Barracuda-Spam-Score: 0.00 X-Barracuda-Spam-Status: No, SCORE=0.00 using per-user scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.7 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.7416 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- On Fri, Jun 27, 2014 at 08:07:01AM -0400, Brian Foster wrote: > Create a sysfs-fs-xfs ABI documentation file for newly added sysfs > attributes. This is created under the testing section. > > Signed-off-by: Brian Foster > --- > Documentation/ABI/testing/sysfs-fs-xfs | 39 ++++++++++++++++++++++++++++++++++ > 1 file changed, 39 insertions(+) > create mode 100644 Documentation/ABI/testing/sysfs-fs-xfs > > diff --git a/Documentation/ABI/testing/sysfs-fs-xfs b/Documentation/ABI/testing/sysfs-fs-xfs > new file mode 100644 > index 0000000..b81aa08 > --- /dev/null > +++ b/Documentation/ABI/testing/sysfs-fs-xfs > @@ -0,0 +1,39 @@ > +What: /sys/fs/xfs//log/log_head_lsn > +Date: June 2014 > +KernelVersion: 3.16 3.17, actually, but I can fix that up. Reviewed-by: Dave Chinner -- Dave Chinner david@fromorbit.com From david@fromorbit.com Thu Jul 10 18:33:11 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: xfs@oss.sgi.com Delivered-To: xfs@oss.sgi.com Received: from relay.sgi.com (relay2.corp.sgi.com [137.38.102.29]) by oss.sgi.com (Postfix) with ESMTP id D078E7F54 for ; Thu, 10 Jul 2014 18:33:11 -0500 (CDT) Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by relay2.corp.sgi.com (Postfix) with ESMTP id B1FC8304032 for ; Thu, 10 Jul 2014 16:33:11 -0700 (PDT) X-ASG-Debug-ID: 1405035189-04bdf03569027b0001-NocioJ Received: from ipmail05.adl6.internode.on.net (ipmail05.adl6.internode.on.net [150.101.137.143]) by cuda.sgi.com with ESMTP id rP6vCRFuCAI7bAlz for ; Thu, 10 Jul 2014 16:33:09 -0700 (PDT) X-Barracuda-Envelope-From: david@fromorbit.com X-Barracuda-Apparent-Source-IP: 150.101.137.143 X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: AogKAJchv1N5LG3lPGdsb2JhbABZgw6DSoUIpFMBAQEBAQEGnCoBgQkXBAEBAQE4NYQDAQEFOhwjEAgDDgoJJQ8FJQMHGhOIQcYwFxiFYolKB4RDAQSaf5drKw Received: from ppp121-44-109-229.lns20.syd6.internode.on.net (HELO dastard) ([121.44.109.229]) by ipmail05.adl6.internode.on.net with ESMTP; 11 Jul 2014 09:03:08 +0930 Received: from dave by dastard with local (Exim 4.80) (envelope-from ) id 1X5Nps-0005Nf-Gu; Fri, 11 Jul 2014 09:33:08 +1000 Date: Fri, 11 Jul 2014 09:33:08 +1000 From: Dave Chinner To: Brian Foster Cc: xfs@oss.sgi.com Subject: Re: [PATCH v2 4/6] xfs: add xlog sysfs kobject and attribute handlers Message-ID: <20140710233308.GO4453@dastard> X-ASG-Orig-Subj: Re: [PATCH v2 4/6] xfs: add xlog sysfs kobject and attribute handlers References: <1403870821-20143-1-git-send-email-bfoster@redhat.com> <1403870821-20143-5-git-send-email-bfoster@redhat.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1403870821-20143-5-git-send-email-bfoster@redhat.com> User-Agent: Mutt/1.5.21 (2010-09-15) X-Barracuda-Connect: ipmail05.adl6.internode.on.net[150.101.137.143] X-Barracuda-Start-Time: 1405035189 X-Barracuda-URL: http://192.48.157.11:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 X-Barracuda-Spam-Score: 0.00 X-Barracuda-Spam-Status: No, SCORE=0.00 using per-user scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.7 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.7417 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- On Fri, Jun 27, 2014 at 08:06:59AM -0400, Brian Foster wrote: > Embed a kobject into the xfs log data structure (xlog). This creates a > 'log' subdirectory for every XFS mount instance in sysfs. The lifecycle > of the log kobject is tied to the lifecycle of the log. > > Also define a set of generic attribute handlers associated with the log > kobject in preparation for the addition of attributes. > > Signed-off-by: Brian Foster Looks fine. Reviewed-by: Dave Chinner -- Dave Chinner david@fromorbit.com From root@krios.tbi.univie.ac.at Thu Jul 10 23:25:08 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: xfs@oss.sgi.com Delivered-To: xfs@oss.sgi.com Received: from relay.sgi.com (relay1.corp.sgi.com [137.38.102.111]) by oss.sgi.com (Postfix) with ESMTP id E19967F57 for ; Thu, 10 Jul 2014 23:25:08 -0500 (CDT) Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by relay1.corp.sgi.com (Postfix) with ESMTP id D1A928F8033 for ; Thu, 10 Jul 2014 21:25:08 -0700 (PDT) X-ASG-Debug-ID: 1405052704-04cbb0421911080001-NocioJ Received: from krios.tbi.univie.ac.at (krios.tbi.univie.ac.at [131.130.44.60]) by cuda.sgi.com with ESMTP id FTeeHCby8AdrM8md for ; Thu, 10 Jul 2014 21:25:05 -0700 (PDT) X-Barracuda-Envelope-From: root@krios.tbi.univie.ac.at X-Barracuda-Apparent-Source-IP: 131.130.44.60 Received: by krios.tbi.univie.ac.at (Postfix) id 3D2855EEF4; Fri, 11 Jul 2014 06:25:02 +0200 (CEST) Delivered-To: root@krios.tbi.univie.ac.at Received: by krios.tbi.univie.ac.at (Postfix, from userid 0) id 2F3F35F478; Fri, 11 Jul 2014 06:25:02 +0200 (CEST) From: root@krios.tbi.univie.ac.at (Cron Daemon) To: root@krios.tbi.univie.ac.at Subject: Cron test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.daily ) Content-Type: text/plain; charset=UTF-8 X-ASG-Orig-Subj: Cron test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.daily ) X-Cron-Env: X-Cron-Env: X-Cron-Env: X-Cron-Env: Message-Id: <20140711042502.2F3F35F478@krios.tbi.univie.ac.at> Date: Fri, 11 Jul 2014 06:25:02 +0200 (CEST) X-Barracuda-Connect: krios.tbi.univie.ac.at[131.130.44.60] X-Barracuda-Start-Time: 1405052705 X-Barracuda-URL: http://192.48.176.25:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 X-Barracuda-Spam-Score: 0.70 X-Barracuda-Spam-Status: No, SCORE=0.70 using per-user scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.7 tests=BSF_SC0_MISMATCH_TO, BSF_SC0_SA_TO_FROM_ADDR_MATCH, PR0N_SUBJECT X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.7422 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.00 BSF_SC0_MISMATCH_TO Envelope rcpt doesn't match header 0.20 PR0N_SUBJECT Subject has letters around special characters (pr0n) 0.50 BSF_SC0_SA_TO_FROM_ADDR_MATCH Sender Address Matches Recipient Address /etc/cron.daily/logrotate: error: error opening /home/git/gitlab-shell/gitlab-shell.log: Permission denied run-parts: /etc/cron.daily/logrotate exited with return code 1 From sales9@moresun.cn Fri Jul 11 01:26:43 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: *** X-Spam-Status: No, score=3.4 required=5.0 tests=DEAR_FRIEND,HTML_FONT_FACE_BAD, HTML_FONT_LOW_CONTRAST,HTML_MESSAGE autolearn=no version=3.3.1 X-Original-To: xfs@oss.sgi.com Delivered-To: xfs@oss.sgi.com Received: from relay.sgi.com (relay1.corp.sgi.com [137.38.102.111]) by oss.sgi.com (Postfix) with ESMTP id 031287F5D for ; Fri, 11 Jul 2014 01:26:43 -0500 (CDT) Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by relay1.corp.sgi.com (Postfix) with ESMTP id D0F6F8F8049 for ; Thu, 10 Jul 2014 23:26:39 -0700 (PDT) X-ASG-Debug-ID: 1405059991-04cb6c6ad1135d0001-NocioJ Received: from mail.gmail105.cn4e.com (gmail105.cn4e.com [118.145.2.220]) by cuda.sgi.com with ESMTP id DmIEW0DoJhU5KGDX for ; Thu, 10 Jul 2014 23:26:32 -0700 (PDT) X-Barracuda-Envelope-From: sales9@moresun.cn X-Barracuda-Apparent-Source-IP: 118.145.2.220 Received: by mail.gmail105.cn4e.com (Postfix, from userid 12346) id 1A617908086; Fri, 11 Jul 2014 14:26:30 +0800 (CST) Received: from SNOW (localhost.localdomain [127.0.0.1]) by mail.gmail105.cn4e.com (Postfix) with SMTP id 8B9CC908070 for ; Fri, 11 Jul 2014 14:26:28 +0800 (CST) Received: from SNOW (unknown [113.89.39.149]) by mail.gmail105.cn4e.com (Postfix) with ESMTPA for ; Fri, 11 Jul 2014 14:26:28 +0800 (CST) Date: Fri, 11 Jul 2014 14:24:24 +0800 From: sales9 To: xfs Reply-To: sales9 Subject: Re:Mobile accessory ---Snow from Zeefo Disposition-Notification-To: sales9 X-ASG-Orig-Subj: Re:Mobile accessory ---Snow from Zeefo References: <2014050813512637520184@moresun.cn>, , <2014050915403482801121@moresun.cn> X-Priority: 1 X-GUID: 715EBA15-0D98-4A43-8A2B-C1547380DC2B X-Has-Attach: no X-Mailer: Foxmail 7.0.1.92[cn] Mime-Version: 1.0 Message-ID: <20140711142417625251162@moresun.cn> Content-Type: multipart/related; boundary="----=_001_NextPart856656240177_=----" X-Barracuda-Connect: gmail105.cn4e.com[118.145.2.220] X-Barracuda-Start-Time: 1405059991 X-Barracuda-URL: http://192.48.176.15:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 X-Barracuda-Spam-Score: 2.15 X-Barracuda-Spam-Status: No, SCORE=2.15 using per-user scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.7 tests=DEAR_FRIEND, HTML_FONT_FACE_BAD, HTML_FONT_LOW_CONTRAST, HTML_MESSAGE, MAILTO_TO_SPAM_ADDR X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.7424 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 1.00 DEAR_FRIEND BODY: Dear Friend? That's not very dear! 0.00 MAILTO_TO_SPAM_ADDR URI: Includes a link to a likely spammer email 0.54 HTML_FONT_LOW_CONTRAST BODY: HTML font color similar to background 0.00 HTML_MESSAGE BODY: HTML included in message 0.61 HTML_FONT_FACE_BAD BODY: HTML font face is not a word This is a multi-part message in MIME format. ------=_001_NextPart856656240177_=---- Content-Type: multipart/alternative; boundary="----=_002_NextPart058864067288_=----" ------=_002_NextPart058864067288_=---- Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 RGVhciBGcmllbmQgLA0KDQpIb3BlIHRoaXMgbm90ZXMgZmluZHMgeW91IHdlbGwgLiANClRoaXMg aXMgU25vdyBmcm9tIFplZWZvIHdoaWNoIGRvaW5nIG1vYmlsZSBhY2Nlc3NvcnkgZm9yIG1vcmUg dGhhbiA3IHllYXJzICEgIA0KDQpIZXJlIGFyZSBzb21lIGhvdCBtb2RlbHMgZm9yIHlvdXIgcmVm ZXJlbmNlIDoNCjEuUy1QTTEwODYtLUR1YWwgVVNCIHNvbGFyIGNoYXJnZXIgNjAwMG1BaA0KDQoN CjIuVS1QMTA1MC0taXBob25lNSBzdHlsZSBwb3dlciBiYW5rIA0KDQpDYXBhY2l0eTo0NTAwbUFo DQpCYXR0ZXJ5OkxpLXBvbHltZXINCk91dHB1dDo1Vi8xQQ0KTWF0ZXJpYWw6QWx1bWludW0gQWxs b3krTUlEIHRlY2gNCg0KMy5NUzUxOC0tbXVsdGkgY2FibGUNCg0KVXNlIGZvciA6IGlwaG9uZTUg OyBpcGhvbmU0LzRzOyBtaWNybyB1c2INCkJhbGwgU2l6ZSA6IDUwbW0qNTBtbQ0KTWF0ZXJpYWwg OiBTaWxpY29uDQpGdW5jdGlvbiA6IGNoYXJnaW5nICYgZGF0YSB0cmFuc2ZlciAhDQoNCjQuTVM1 MTktLS1jYXIgY2hhcmdlcg0KDQoNCjUuTVM3NzAtLSAzNjAgZGVncmVlIHJvdGF0aW9uIHBob25l IGhvbGRlciANCg0KDQpJZiB5b3UgaGF2ZSBpbnRlcmVzdCBpbiBpdCAsIHBsZWFzZSBmZWVsIGZy ZWUgdG8gY29udGFjdCBtZSAuDQpZb3VyIGVhcmx5IHJlcGx5IHdpbGwgYmUgaGlnaCBhcHByZWNp YXRlZCAuDQoNCg0KDQoNCkJlc3QgcmVnYXJkcywNClNub3cgDQoNClplZWZvIEludGVybmF0aW9u YWwgR3JvdXAgQ28uLCBMaW1pdGVkDQpTaGVuemhlbiBNb3Jlc3VuIEVsZWN0cm9uaWMgVGVjaG5v bG9neSBDby4sIEx0ZA0KU2hlbnpoZW4gWmVlZm8gRWxlY3Ryb25pYyBUZWNobm9sb2d5IENvLiwg THRkDQotLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tDQpXZWI6IHd3 dy5tb3Jlc3VuLmNuICAgICAgICAgICBBbGliYWJhOnd3dy5tb3Jlc3VuLmNvbS5jbiANClRlbDog ODYtNzU1LTg5NDg1Nzc4ICAgICAgICAgICAgV2hhdHNhcHAvTW9iOiA4Ni0xODY1NjY1ODkzNw0K RW1haWw6IHNhbGVzNUBtb3Jlc3VuLmNuICAgICBpc3VuemVlZm8wMTZAaS1pc3VuLmNvbSANClNr eXBlOiBzbm93LmxhdS5tb3Jlc3VuIA0KUVE6MTA5OTE5NzgzNiAgICAgICAgICAgICAgICAgICAg IA0KV2VpeGluL1dlIENoYXQgOiBmaWdodHNub3cNCkFkZDogRmxvb3IgNC01LEJ1aWxkaW5nIEE2 LFRoZSBOZXcgTWF0ZXJpYWwgSW5kdXN0cmlhbCBQYXJrLFNpbGljb24gVmFsbGV5IFBvd2VyLFpv bmd5aSBSZCxaaGFuZ2dlIENvbW11bml0eSxHdWFubGFuLExvbmdodWEgLFNoZW56aGVuLENoaW5h ------=_002_NextPart058864067288_=---- Content-Type: text/html; charset="utf-8" Content-Transfer-Encoding: quoted-printable =EF=BB=BF
Dear Friend ,
 
Hope this notes finds you well .
This is Snow from Zeefo which doing&nbs= p;mobile=20 accessory for more than 7 years ! 
 
Here are some hot models for your reference :
1.= S-PM1086--Dual=20 USB solar charger 6000mAh
 
2= .U-P1050--iphone5=20 style power bank
Capacity:4= 500mAh
Battery:Li= -polymer
Output:5V/= 1A
Material:A= luminum Alloy+MID tech
 
3<= A=20 style=3D"COLOR: #ff0000"=20 href=3D"http://www.moresun.cn/chanpinzhongxin-152512-0-item-253118.html">.= MS518--multi=20 cable
Use=20 for : iphone5 ; iphone4/4s; micro usb
Ball=20 Size : 50mm*50mm
Mater= ial :=20 Silicon
Funct= ion :=20 charging & data transfer !
 
 
5<= SPAN=20 style=3D"COLOR: #ff0000">.MS770-- 360 degree rotation phone holder=20
 
If you have interest in it , pleas= e feel free to contact me .
Your early reply will be high appreciat= ed .
 

Best regards,
Snow
 
Zeefo International Group Co., Limited
Shenzhen= Moresun=20 Electronic Technology Co., Ltd

Shenzhen Zeefo=20 Electronic Technology Co.,=20 Ltd

-------------------------------------------
<= SPAN=20 style=3D"FONT-FAMILY: Calibri; COLOR: #0000ff; FONT-SIZE: 10.5pt">Web:=20 www.moresun.cn     &nbs= p;     Alibaba:www.moresun.com.cn  Tel: 86-755-89485778          = =20  Whatsapp/Mob: 86-18656658937 Email: sales5@moresun.cn     isunzeefo016@i-isun.com  Skype: snow.lau.moresun  QQ:1099197836        &nb= sp;           =20 Weixin/We Chat : fightsnow Add: Floor 4-5,Building A6,The New Material Industrial=20 Park,Silicon Valley Power,Zongyi Rd,Zhangge Community,Guanlan,Longhua=20 ,Shenzhen,China ------=_002_NextPart058864067288_=------ ------=_001_NextPart856656240177_=---- Content-Type: image/jpeg; name="Catch6FA3(07-04-(07-11-14-16-29).jpg" Content-Transfer-Encoding: base64 Content-ID: <_Foxmail.0@57401CB3-43CA-45E6-B82F-4A1FA044A60D> /9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEB AQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQH/2wBDAQEBAQEBAQEBAQEBAQEBAQEBAQEB AQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQH/wAARCAEJAZgDASIA AhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQA AAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3 ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWm p6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6/8QAHwEA AwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREAAgECBAQDBAcFBAQAAQJ3AAECAxEEBSEx BhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYkNOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElK U1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3 uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwD+pu1E 5UBlYK59Pun09+Pfn6V0VtbOrI4RsFQOg4x2/l/LkVei0+FHDb1cRk8ZyAOn59vbjHpV8FNvlnC9 Cufugdhn3+hxX/PphMhwGX4KFLFThLEyUJe7OD95JPXs1JK6enRXVz6imppNa+nTbv0v8tjOcgkj adxGSOgz6g4wQPbvjpUAhdtwQbdwAYgZ4yOBz1/xroxBFJyyMPlxkqOcYORz0Pb2qvJJbwZGcMSd vTjAySTntjJ47dM18VnmIoZRTxFZYpx5k+RJQfvyta19F2tfpstjpp4dzlCVpRUXrZu7atpZPXvd qyRz12z2oDOCoPGQx6gDqAOeSO/frUNrqDybgDuxwc/Xnp0/x4Oeagv7lZECs+8bmO4n5eTn9eDW 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 ------=_001_NextPart856656240177_=---- Content-Type: image/jpeg; name="portable mobile (07-11-14-16-29).jpg" Content-Transfer-Encoding: base64 Content-ID: <_Foxmail.1@FFB33CBE-B7F1-4B0B-886F-6B5862ED93D7> /9j/4AAQSkZJRgABAQEAYABgAAD/4QAwRXhpZgAATU0AKgAAAAgAAQExAAIAAAAOAAAAGgAAAAB3 d3cubWVpdHUuY29tAP/bAEMAAwICAwICAwMDAwQDAwQFCAUFBAQFCgcHBggMCgwMCwoLCw0OEhAN DhEOCwsQFhARExQVFRUMDxcYFhQYEhQVFP/bAEMBAwQEBQQFCQUFCRQNCw0UFBQUFBQUFBQUFBQU FBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFP/AABEIAlgCWAMBEQACEQEDEQH/ xAAfAAABBQEBAQEBAQAAAAAAAAAAAQIDBAUGBwgJCgv/xAC1EAACAQMDAgQDBQUEBAAAAX0BAgMA BBEFEiExQQYTUWEHInEUMoGRoQgjQrHBFVLR8CQzYnKCCQoWFxgZGiUmJygpKjQ1Njc4OTpDREVG R0hJSlNUVVZXWFlaY2RlZmdoaWpzdHV2d3h5eoOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0 tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4eLj5OXm5+jp6vHy8/T19vf4+fr/xAAfAQADAQEBAQEB AQEBAAAAAAAAAQIDBAUGBwgJCgv/xAC1EQACAQIEBAMEBwUEBAABAncAAQIDEQQFITEGEkFRB2Fx EyIygQgUQpGhscEJIzNS8BVictEKFiQ04SXxFxgZGiYnKCkqNTY3ODk6Q0RFRkdISUpTVFVWV1hZ WmNkZWZnaGlqc3R1dnd4eXqCg4SFhoeIiYqSk5SVlpeYmZqio6Slpqeoqaqys7S1tre4ubrCw8TF xsfIycrS09TV1tfY2dri4+Tl5ufo6ery8/T19vf4+fr/2gAMAwEAAhEDEQA/APyqoAKACgAoAKAC gAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKA CgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAK ACgAoAKACgAoA9y+DHwW8E+NPhb4m8X+L/FGpaGdLv4bKC2sLSOYTB42csxZhjG3HHrQAv8AwgHw S/6HrxF/4L4P/jlAC/8ACAfBL/oevEX/AIL4P/jlAB/wgHwS/wCh68Rf+C+D/wCOUAH/AAgHwS/6 HrxF/wCC+D/45QAf8IB8Ev8AoevEX/gvg/8AjlAB/wAIB8Ev+h68Rf8Agvg/+OUAH/CAfBL/AKHr xF/4L4P/AI5QAf8ACAfBL/oevEX/AIL4P/jlAB/wgHwS/wCh68Rf+C+D/wCOUAH/AAgHwS/6HrxF /wCC+D/45QAf8IB8Ev8AoevEX/gvg/8AjlAB/wAIB8Ev+h68Rf8Agvg/+OUAH/CAfBL/AKHrxF/4 L4P/AI5QAf8ACAfBL/oevEX/AIL4P/jlAB/wgHwS/wCh68Rf+C+D/wCOUAH/AAgHwS/6HrxF/wCC +D/45QAf8IB8Ev8AoevEX/gvg/8AjlAB/wAIB8Ev+h68Rf8Agvg/+OUAH/CAfBL/AKHrxF/4L4P/ AI5QAf8ACAfBL/oevEX/AIL4P/jlAB/wgHwS/wCh68Rf+C+D/wCOUAH/AAgHwS/6HrxF/wCC+D/4 5QAf8IB8Ev8AoevEX/gvg/8AjlAB/wAIB8Ev+h68Rf8Agvg/+OUAH/CAfBL/AKHrxF/4L4P/AI5Q Af8ACAfBL/oevEX/AIL4P/jlAB/wgHwS/wCh68Rf+C+D/wCOUAH/AAgHwS/6HrxF/wCC+D/45QAf 8IB8Ev8AoevEX/gvg/8AjlAB/wAIB8Ev+h68Rf8Agvg/+OUAH/CAfBL/AKHrxF/4L4P/AI5QAf8A CAfBL/oevEX/AIL4P/jlAB/wgHwS/wCh68Rf+C+D/wCOUAH/AAgHwS/6HrxF/wCC+D/45QAf8IB8 Ev8AoevEX/gvg/8AjlAB/wAIB8Ev+h68Rf8Agvg/+OUAH/CAfBL/AKHrxF/4L4P/AI5QAf8ACAfB L/oevEX/AIL4P/jlAB/wgHwS/wCh68Rf+C+D/wCOUAH/AAgHwS/6HrxF/wCC+D/45QAf8IB8Ev8A oevEX/gvg/8AjlAB/wAIB8Ev+h68Rf8Agvg/+OUAH/CAfBL/AKHrxF/4L4P/AI5QAf8ACAfBL/oe vEX/AIL4P/jlAB/wgHwS/wCh68Rf+C+D/wCOUAH/AAgHwS/6HrxF/wCC+D/45QAf8IB8Ev8AoevE X/gvg/8AjlAB/wAIB8Ev+h68Rf8Agvg/+OUAH/CAfBL/AKHrxF/4L4P/AI5QAf8ACAfBL/oevEX/ AIL4P/jlAB/wgHwS/wCh68Rf+C+D/wCOUAH/AAgHwS/6HrxF/wCC+D/45QAf8IB8Ev8AoevEX/gv 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 BQB//9k= ------=_001_NextPart856656240177_=---- Content-Type: image/jpeg; name="Catch(04-18-15-0(07-11-14-16-29).jpg" Content-Transfer-Encoding: base64 Content-ID: <_Foxmail.2@6A4BA418-F165-4DE9-B293-59D1F0D86E49> /9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEB AQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQH/2wBDAQEBAQEBAQEBAQEBAQEBAQEBAQEB AQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQH/wAARCAEqASgDASIA AhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQA AAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3 ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWm p6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6/8QAHwEA AwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREAAgECBAQDBAcFBAQAAQJ3AAECAxEEBSEx BhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYkNOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElK U1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3 uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwD+AvTt O1DWNQsdJ0myu9T1TVLy207TdOsLeW7vtQv72ZLazsrK1gSSe5u7q4ljgt7eFHlmmkSONGdgD9XX P/BP/wDbpsppba8/Y4/aetbiB2jmgufgX8S4ZoZFOGjljk8Nq8bqeGRwGByCODXkv7PTtF8ffgfI jMjx/F74aujqdrIyeMtFZWVhyrKQCCOhGa/tU+PfxP8AGj/HD4qIfiF4rQDxv4gwq+ItSAQ/2jcY GBc4+70wABnHfNe1k+TVM3lWjTrRpexUG+aPNfnckvtL+V/ejys0zNZbClL2Tq+0clpLlty8vk9+ byWm5/H2f2Dv22x1/ZE/aVHOOfgl8Rhz6f8AIu9f51In7BH7cEmPL/Y//aYfPTZ8EPiQ3/oPhw1/ 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 ------=_001_NextPart856656240177_=---- Content-Type: image/jpeg; name="Catch1BFF(04-18-(07-11-14-16-29).jpg" Content-Transfer-Encoding: base64 Content-ID: <_Foxmail.3@A630F3EC-E143-44E0-B916-FEC683ABD0F7> /9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAAEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEB AQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQH/2wBDAQEBAQEBAQEBAQEBAQEBAQEBAQEB AQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQH/wAARCAE9ATsDASIA AhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQA AAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3 ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWm p6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6/8QAHwEA AwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREAAgECBAQDBAcFBAQAAQJ3AAECAxEEBSEx BhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYkNOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElK U1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3 uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwD+QH/g nF/wTs+K3/BS/wCNviP4GfCHxn8OvAviHwx8NfEHxQ1HWfibqGtadoLaH4c1DRtNvLSCXQdF12+k 1GWfXLV7eI2QhMccxeZCqq/7QD/g03/bTP8Azcp+yIDxx/wknxQzj1/5Jrj8M89elc1/wahLu/4K CfGMYz/xiD8Uf/Ur+Htf3vLFgkAAMDlgCOSTx3xnrnBOOuBnFXGKkm3K3bS63X+en37Jh/wPzS/q 1z+EyL/g0w/bUlYKP2l/2QQSSBu8TfE8ZwOevw1+nXHWpbj/AINKv22LYAyftLfsgDd0x4n+Jx/l 8Nscd+f64/uuVQp+8oAB+UfezgZ5G7H3uuM57YyadKwf5S6jaNq5z03Y/AjAPTnB7E1caSla0rrS 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 ------=_001_NextPart856656240177_=---- Content-Type: image/jpeg; name="phone holder7(05(07-11-14-16-29).jpg" Content-Transfer-Encoding: base64 Content-ID: <_Foxmail.4@90F80F9F-348A-4815-93BE-5067A9DC47BA> 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 AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABkZXNjAAAAAAAAAC5JRUMgNjE5NjYtMi4x IERlZmF1bHQgUkdCIGNvbG91ciBzcGFjZSAtIHNSR0IAAAAAAAAAAAAAAC5JRUMgNjE5NjYtMi4x IERlZmF1bHQgUkdCIGNvbG91ciBzcGFjZSAtIHNSR0IAAAAAAAAAAAAAAAAAAAAAAAAAAAAAZGVz YwAAAAAAAAAsUmVmZXJlbmNlIFZpZXdpbmcgQ29uZGl0aW9uIGluIElFQzYxOTY2LTIuMQAAAAAA AAAAAAAALFJlZmVyZW5jZSBWaWV3aW5nIENvbmRpdGlvbiBpbiBJRUM2MTk2Ni0yLjEAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAHZpZXcAAAAAABOk/gAUXy4AEM8UAAPtzAAEEwsAA1yeAAAAAVhZ WiAAAAAAAEwJVgBQAAAAVx/nbWVhcwAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAo8AAAACc2ln IAAAAABDUlQgY3VydgAAAAAAAAQAAAAABQAKAA8AFAAZAB4AIwAoAC0AMgA3ADsAQABFAEoATwBU AFkAXgBjAGgAbQByAHcAfACBAIYAiwCQAJUAmgCfAKQAqQCuALIAtwC8AMEAxgDLANAA1QDbAOAA 5QDrAPAA9gD7AQEBBwENARMBGQEfASUBKwEyATgBPgFFAUwBUgFZAWABZwFuAXUBfAGDAYsBkgGa AaEBqQGxAbkBwQHJAdEB2QHhAekB8gH6AgMCDAIUAh0CJgIvAjgCQQJLAlQCXQJnAnECegKEAo4C mAKiAqwCtgLBAssC1QLgAusC9QMAAwsDFgMhAy0DOANDA08DWgNmA3IDfgOKA5YDogOuA7oDxwPT A+AD7AP5BAYEEwQgBC0EOwRIBFUEYwRxBH4EjASaBKgEtgTEBNME4QTwBP4FDQUcBSsFOgVJBVgF ZwV3BYYFlgWmBbUFxQXVBeUF9gYGBhYGJwY3BkgGWQZqBnsGjAadBq8GwAbRBuMG9QcHBxkHKwc9 B08HYQd0B4YHmQesB78H0gflB/gICwgfCDIIRghaCG4IggiWCKoIvgjSCOcI+wkQCSUJOglPCWQJ eQmPCaQJugnPCeUJ+woRCicKPQpUCmoKgQqYCq4KxQrcCvMLCwsiCzkLUQtpC4ALmAuwC8gL4Qv5 DBIMKgxDDFwMdQyODKcMwAzZDPMNDQ0mDUANWg10DY4NqQ3DDd4N+A4TDi4OSQ5kDn8Omw62DtIO 7g8JDyUPQQ9eD3oPlg+zD88P7BAJECYQQxBhEH4QmxC5ENcQ9RETETERTxFtEYwRqhHJEegSBxIm EkUSZBKEEqMSwxLjEwMTIxNDE2MTgxOkE8UT5RQGFCcUSRRqFIsUrRTOFPAVEhU0FVYVeBWbFb0V 4BYDFiYWSRZsFo8WshbWFvoXHRdBF2UXiReuF9IX9xgbGEAYZRiKGK8Y1Rj6GSAZRRlrGZEZtxnd GgQaKhpRGncanhrFGuwbFBs7G2MbihuyG9ocAhwqHFIcexyjHMwc9R0eHUcdcB2ZHcMd7B4WHkAe ah6UHr4e6R8THz4faR+UH78f6iAVIEEgbCCYIMQg8CEcIUghdSGhIc4h+yInIlUigiKvIt0jCiM4 I2YjlCPCI/AkHyRNJHwkqyTaJQklOCVoJZclxyX3JicmVyaHJrcm6CcYJ0kneierJ9woDSg/KHEo oijUKQYpOClrKZ0p0CoCKjUqaCqbKs8rAis2K2krnSvRLAUsOSxuLKIs1y0MLUEtdi2rLeEuFi5M LoIuty7uLyQvWi+RL8cv/jA1MGwwpDDbMRIxSjGCMbox8jIqMmMymzLUMw0zRjN/M7gz8TQrNGU0 njTYNRM1TTWHNcI1/TY3NnI2rjbpNyQ3YDecN9c4FDhQOIw4yDkFOUI5fzm8Ofk6Njp0OrI67zst O2s7qjvoPCc8ZTykPOM9Ij1hPaE94D4gPmA+oD7gPyE/YT+iP+JAI0BkQKZA50EpQWpBrEHuQjBC ckK1QvdDOkN9Q8BEA0RHRIpEzkUSRVVFmkXeRiJGZ0arRvBHNUd7R8BIBUhLSJFI10kdSWNJqUnw SjdKfUrESwxLU0uaS+JMKkxyTLpNAk1KTZNN3E4lTm5Ot08AT0lPk0/dUCdQcVC7UQZRUFGbUeZS MVJ8UsdTE1NfU6pT9lRCVI9U21UoVXVVwlYPVlxWqVb3V0RXklfgWC9YfVjLWRpZaVm4WgdaVlqm WvVbRVuVW+VcNVyGXNZdJ114XcleGl5sXr1fD19hX7NgBWBXYKpg/GFPYaJh9WJJYpxi8GNDY5dj 62RAZJRk6WU9ZZJl52Y9ZpJm6Gc9Z5Nn6Wg/aJZo7GlDaZpp8WpIap9q92tPa6dr/2xXbK9tCG1g bbluEm5rbsRvHm94b9FwK3CGcOBxOnGVcfByS3KmcwFzXXO4dBR0cHTMdSh1hXXhdj52m3b4d1Z3 s3gReG54zHkqeYl553pGeqV7BHtje8J8IXyBfOF9QX2hfgF+Yn7CfyN/hH/lgEeAqIEKgWuBzYIw gpKC9INXg7qEHYSAhOOFR4Wrhg6GcobXhzuHn4gEiGmIzokziZmJ/opkisqLMIuWi/yMY4zKjTGN mI3/jmaOzo82j56QBpBukNaRP5GokhGSepLjk02TtpQglIqU9JVflcmWNJaflwqXdZfgmEyYuJkk mZCZ/JpomtWbQpuvnByciZz3nWSd0p5Anq6fHZ+Ln/qgaaDYoUehtqImopajBqN2o+akVqTHpTil qaYapoum/adup+CoUqjEqTepqaocqo+rAqt1q+msXKzQrUStuK4trqGvFq+LsACwdbDqsWCx1rJL ssKzOLOutCW0nLUTtYq2AbZ5tvC3aLfguFm40blKucK6O7q1uy67p7whvJu9Fb2Pvgq+hL7/v3q/ 9cBwwOzBZ8Hjwl/C28NYw9TEUcTOxUvFyMZGxsPHQce/yD3IvMk6ybnKOMq3yzbLtsw1zLXNNc21 zjbOts83z7jQOdC60TzRvtI/0sHTRNPG1EnUy9VO1dHWVdbY11zX4Nhk2OjZbNnx2nba+9uA3AXc it0Q3ZbeHN6i3ynfr+A24L3hROHM4lPi2+Nj4+vkc+T85YTmDeaW5x/nqegy6LzpRunQ6lvq5etw 6/vshu0R7ZzuKO6070DvzPBY8OXxcvH/8ozzGfOn9DT0wvVQ9d72bfb794r4Gfio+Tj5x/pX+uf7 d/wH/Jj9Kf26/kv+3P9t////7QAMQWRvYmVfQ00AAf/uAA5BZG9iZQBkgAAAAAH/2wCEAAwICAgJ CAwJCQwRCwoLERUPDAwPFRgTExUTExgRDAwMDAwMEQwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwM DAwBDQsLDQ4NEA4OEBQODg4UFA4ODg4UEQwMDAwMEREMDAwMDAwRDAwMDAwMDAwMDAwMDAwMDAwM DAwMDAwMDAwMDP/AABEIAH8AoAMBIgACEQEDEQH/3QAEAAr/xAE/AAABBQEBAQEBAQAAAAAAAAAD AAECBAUGBwgJCgsBAAEFAQEBAQEBAAAAAAAAAAEAAgMEBQYHCAkKCxAAAQQBAwIEAgUHBggFAwwz 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 fj5LjWSysVuDi13pbXMd+dZtasU/VPrr3lz2FznElznBjiSfpOLnA/SV/p/1U6rRay0OFNjCHMew Ma5pHDmuaNyeOXJ/Tj9q3g/rB7bq+Vk0fWrHxH2O+x5eC91NR+j69NgNtn9d1FzEaVnYON1Csh+T l2X6QQ97rJnzf9H+yrwTZQENOIS8QiQo6G3/1dmUpKeE4ap1rCSg2yHg/mnlWgxI1AhKkoH47PSc 8Ay0SBKrCtxPC0WtMR24UmUtnhKlWlzumY9OFjmlsXPd7nSSSI/8kqoofAAV9xJaATMcKARoItzc jBfawsI0Pgso/VmL231srFzHBzLC1u4OGrXcfmrpyU9W3UO+UqHJy0JniuUZfvQkYIIt5Wr6nY4I Jx6NO+wFa+D0PGxYLa62n+Sxo/6kLUftn2hSqbNjQ76M6/BRHkonfJkl/emtMPE/atW1rGw3gfJE Ce8t9X2ANYBAA/KoblNhwY8QIhGr3TGIGzYgGsj7kBrAXw7hSbZCiXKZKnsDTA1VnAx6rnn1fojz hVpR2P2NlJS+UKheRUNtYEAcz4uQpUXWbjKjuSU//9bcCcFDBKeSrC1JIT7kIzKcEpKSAojOUIKW 49gUlJXOTShyfBPJ8ElMy5IHWUOfJPJSUkDkVrgBKrgnwUg53gUrQkLpKaVCSlJ8EkpNyeUKT4JS 7wRQl3AJF5KFJSkpKSbkpUJKUlJT/9n/2wBDAAMCAgMCAgMDAwMEAwMEBQgFBQQEBQoHBwYIDAoM DAsKCwsNDhIQDQ4RDgsLEBYQERMUFRUVDA8XGBYUGBIUFRT/2wBDAQMEBAUEBQkFBQkUDQsNFBQU FBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBT/wAARCAJYAlgD AREAAhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUF BAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0 NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKj pKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6/8QA 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 ------=_001_NextPart856656240177_=------ From jan@tulak.me Fri Jul 11 05:48:13 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: xfs@oss.sgi.com Delivered-To: xfs@oss.sgi.com Received: from relay.sgi.com (relay1.corp.sgi.com [137.38.102.111]) by oss.sgi.com (Postfix) with ESMTP id DD0437F47 for ; Fri, 11 Jul 2014 05:48:13 -0500 (CDT) Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by relay1.corp.sgi.com (Postfix) with ESMTP id ABE528F804C for ; Fri, 11 Jul 2014 03:48:10 -0700 (PDT) X-ASG-Debug-ID: 1405075686-04bdf0356920470001-NocioJ Received: from mail-we0-f180.google.com (mail-we0-f180.google.com [74.125.82.180]) by cuda.sgi.com with ESMTP id LiSOSMDogYXqh1bd (version=TLSv1 cipher=RC4-SHA bits=128 verify=NO) for ; Fri, 11 Jul 2014 03:48:07 -0700 (PDT) X-Barracuda-Envelope-From: jan@tulak.me X-Barracuda-Apparent-Source-IP: 74.125.82.180 Received: by mail-we0-f180.google.com with SMTP id x48so879595wes.39 for ; Fri, 11 Jul 2014 03:48:04 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:message-id:subject:from:to:cc:date:in-reply-to :references:content-type:mime-version:content-transfer-encoding; bh=HqabuZp5foHlWvEMUCPIrjk8y9i2NGjkn9U7l+o58cY=; b=CWP3tmURLJ5UH2fkLSKKrIPBQloYB6s5T9PPFUarKvxCq+8gBjEO1gTqHjZojB7e5F WYUIX8XS4gjd815xEc/Gf6R4hHPf+/W3lCwdfRIdaquRJ4mZe48644hW5ebDIo7cYdEY tQubTzYBgH5l/d7TD2mDQfyFwz8w/puHKC+Il/EKjnIwO1z8AyyKL/8YdCt02kvFlwaT IJnMZ4A2nLN2PxIS3SViGhr3NZBoiAchPUkRsCpFhoAGMlTnkAvs4drTPCWk9OuCdoF8 fjdrU9j0FLAzGwemAdXQqQtba5tlUjU4WfRmuyI4tN22oYNe6bDjAno8cMtDsBzyzZ4Y gJcg== X-Gm-Message-State: ALoCoQkrqmpWds0SxR535XEpCB1gfjeeS1QrWzLZJgBvD8dLYTmbrY9Ek/ZincB3MbzywRLKOcZp X-Received: by 10.180.103.228 with SMTP id fz4mr4038887wib.4.1405075682774; Fri, 11 Jul 2014 03:48:02 -0700 (PDT) Received: from [10.34.1.150] (nat-pool-brq-t.redhat.com. [209.132.186.34]) by mx.google.com with ESMTPSA id cz4sm6008642wib.23.2014.07.11.03.48.00 for (version=TLSv1 cipher=RC4-SHA bits=128/128); Fri, 11 Jul 2014 03:48:01 -0700 (PDT) Message-ID: <1405075678.28203.56.camel@jtulak> Subject: Re: symlink loop for /lib64/libhandle.so From: Jan =?UTF-8?Q?=C5=A4ul=C3=A1k?= X-ASG-Orig-Subj: Re: symlink loop for /lib64/libhandle.so To: Eric Sandeen Cc: Christoph Hellwig , Brian Foster , XFS mail list Date: Fri, 11 Jul 2014 12:47:58 +0200 In-Reply-To: <53BEC1E7.1070904@sandeen.net> References: <1404898212.7231.12.camel@jtulak> <20140709132836.GA65226@bfoster.bfoster> <20140710134851.GA26652@infradead.org> <1405009872.31068.22.camel@jtulak> <53BEC1E7.1070904@sandeen.net> Content-Type: text/plain; charset="UTF-8" X-Mailer: Evolution 3.10.4 (3.10.4-2.fc20) Mime-Version: 1.0 Content-Transfer-Encoding: 7bit X-Barracuda-Connect: mail-we0-f180.google.com[74.125.82.180] X-Barracuda-Start-Time: 1405075687 X-Barracuda-Encrypted: RC4-SHA X-Barracuda-URL: http://192.48.157.11:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 X-Barracuda-Spam-Score: 0.00 X-Barracuda-Spam-Status: No, SCORE=0.00 using per-user scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.7 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.7428 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- On Thu, 2014-07-10 at 11:40 -0500, Eric Sandeen wrote: > Here's what the current RPM build does; I don't claim that it's elegant or > beautiful: > > %install > rm -rf $RPM_BUILD_ROOT > make V=1 DIST_ROOT=$RPM_BUILD_ROOT install install-dev install-qa \ > PKG_ROOT_SBIN_DIR=%{_sbindir} PKG_ROOT_LIB_DIR=%{_libdir} > > so that sounds like what you're doing, too. I think I found it. In short: On Fedora, /lib64 is a symlink into /usr/lib64, but "install/buildmacros" script thinks it as two different directories and mess it. Proposed solution: better condition on line 79 to avoid symlink changes. Long version: I looked for the variables and maybe found something more in files "include/buildmacros" and "install-sh". In the buildmacros file on line around 80 is command: ../$(INSTALL) -S $(PKG_ROOT_LIB_DIR)/$(LIBNAME).so $(PKG_LIB_DIR)/$(LIBNAME).so; It is invoked just once and its arguments are [/lib64/libhandle.so] and [/usr/lib64/libhandle.so] (in this order). This is at the end translated into this call in "install-sh" on line 172: ln -s -f /lib64/libhandle.so //usr/lib64/libhandle.so It seems to be OK, , but when I put a "ls -li" before and after this command on line 172, this is what I got (I just added few echos): ---------------- before: 1668 lrwxrwxrwx. 1 root root 14 Jul 11 10:36 /lib64/libhandle.so -> libhandle.so.1 1668 lrwxrwxrwx. 1 root root 14 Jul 11 10:36 //usr/lib64/libhandle.so -> libhandle.so.1 ...... ln -s -f /lib64/libhandle.so //usr/lib64/libhandle.so ...... after: 1668 lrwxrwxrwx. 1 root root 19 Jul 11 10:36 /lib64/libhandle.so -> /lib64/libhandle.so 1668 lrwxrwxrwx. 1 root root 19 Jul 11 10:36 //usr/lib64/libhandle.so -> /lib64/libhandle.so ----------- Then I have done "ls -l /" and found the reason: lrwxrwxrwx. 1 root root 9 Dec 12 2013 lib64 -> usr/lib64 So the loop is because on Fedora, /lib64 and /usr/lib64 are the same directory. The "buildmacros" script does some check before doing the symlinking, but it just checks the paths as strings. I think that a better condition on line 80 of "include/buildmacros" file should fix it. I tried to make a new condition and it works, but I'm not sure about portability of using the "$(shell ...)" extension of GNU Make. Is there some more portable way how to do it and keep the condition short? Proposed condition: if test "x$(PKG_LIB_DIR)" != "x$(PKG_ROOT_LIB_DIR)"\ -a "x$(shell readlink -f $(PKG_ROOT_LIB_DIR))" != "x$(PKG_LIB_DIR)"\ -a "x$(shell readlink -f $(PKG_LIB_DIR))" != "x$(PKG_ROOT_LIB_DIR)";\ then \ Instead of: if test "x$(PKG_LIB_DIR)" != "x$(PKG_ROOT_LIB_DIR)"; then \ And by the way: It seems to me that the command on line 83 in "buildmacros" has swapped arguments. In two other symlinks around, PKG_LIB_DIR and PKG_ROOT_LIB_DIR for .a and .la files are in other order. Is this all right? Jan Tulak From bfoster@redhat.com Fri Jul 11 07:32:24 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: xfs@oss.sgi.com Delivered-To: xfs@oss.sgi.com Received: from relay.sgi.com (relay2.corp.sgi.com [137.38.102.29]) by oss.sgi.com (Postfix) with ESMTP id A955F7F47 for ; Fri, 11 Jul 2014 07:32:24 -0500 (CDT) Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by relay2.corp.sgi.com (Postfix) with ESMTP id 5C71A304048 for ; Fri, 11 Jul 2014 05:32:24 -0700 (PDT) X-ASG-Debug-ID: 1405081939-04bdf0356a25f30001-NocioJ Received: from mx1.redhat.com (mx1.redhat.com [209.132.183.28]) by cuda.sgi.com with ESMTP id C7jXZ6VR6sOB1h47 (version=TLSv1 cipher=AES256-SHA bits=256 verify=NO) for ; Fri, 11 Jul 2014 05:32:20 -0700 (PDT) X-Barracuda-Envelope-From: bfoster@redhat.com X-Barracuda-Apparent-Source-IP: 209.132.183.28 X-ASG-Whitelist: Client Received: from int-mx11.intmail.prod.int.phx2.redhat.com (int-mx11.intmail.prod.int.phx2.redhat.com [10.5.11.24]) by mx1.redhat.com (8.14.4/8.14.4) with ESMTP id s6BCWCOs014724 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Fri, 11 Jul 2014 08:32:12 -0400 Received: from laptop.bfoster (vpn-63-146.rdu2.redhat.com [10.10.63.146]) by int-mx11.intmail.prod.int.phx2.redhat.com (8.14.4/8.14.4) with ESMTP id s6BCWAtq022275 (version=TLSv1/SSLv3 cipher=AES128-GCM-SHA256 bits=128 verify=NO); Fri, 11 Jul 2014 08:32:12 -0400 Date: Fri, 11 Jul 2014 08:32:10 -0400 From: Brian Foster To: Dave Chinner Cc: xfs@oss.sgi.com Subject: Re: [PATCH 1/3] Revert "xfs: block allocation work needs to be kswapd aware" Message-ID: <20140711123210.GA3077@laptop.bfoster> X-ASG-Orig-Subj: Re: [PATCH 1/3] Revert "xfs: block allocation work needs to be kswapd aware" References: <1405034779-2028-1-git-send-email-david@fromorbit.com> <1405034779-2028-2-git-send-email-david@fromorbit.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1405034779-2028-2-git-send-email-david@fromorbit.com> User-Agent: Mutt/1.5.23 (2014-03-12) X-Scanned-By: MIMEDefang 2.68 on 10.5.11.24 X-Barracuda-Connect: mx1.redhat.com[209.132.183.28] X-Barracuda-Start-Time: 1405081940 X-Barracuda-Encrypted: AES256-SHA X-Barracuda-URL: http://192.48.157.11:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 On Fri, Jul 11, 2014 at 09:26:17AM +1000, Dave Chinner wrote: > This reverts commit 1f6d64829db78a7e1d63e15c9f48f0a5d2b5a679. > > This commit resulted in regressions in performance in low > memory situations where kswapd was doing writeback of delayed > allocation blocks. It resulted in significant parallelism of the > kswapd work and with the special kswapd flags meant that hundreds of > active allocation could dip into kswapd specific memory reserves and > avoid being throttled. This cause a large amount of performance > variation, as well as random OOM-killer invocations that didn't > previously exist. > > Signed-off-by: Dave Chinner > --- I was going to suggest to keep the bool types, but that's fixed up in the subsequent patch. ;) Looks good... Reviewed-by: Brian Foster > fs/xfs/xfs_bmap_util.c | 16 +++------------- > fs/xfs/xfs_bmap_util.h | 13 ++++++------- > 2 files changed, 9 insertions(+), 20 deletions(-) > > diff --git a/fs/xfs/xfs_bmap_util.c b/fs/xfs/xfs_bmap_util.c > index 703b3ec..057f671 100644 > --- a/fs/xfs/xfs_bmap_util.c > +++ b/fs/xfs/xfs_bmap_util.c > @@ -258,23 +258,14 @@ xfs_bmapi_allocate_worker( > struct xfs_bmalloca *args = container_of(work, > struct xfs_bmalloca, work); > unsigned long pflags; > - unsigned long new_pflags = PF_FSTRANS; > > - /* > - * we are in a transaction context here, but may also be doing work > - * in kswapd context, and hence we may need to inherit that state > - * temporarily to ensure that we don't block waiting for memory reclaim > - * in any way. > - */ > - if (args->kswapd) > - new_pflags |= PF_MEMALLOC | PF_SWAPWRITE | PF_KSWAPD; > - > - current_set_flags_nested(&pflags, new_pflags); > + /* we are in a transaction context here */ > + current_set_flags_nested(&pflags, PF_FSTRANS); > > args->result = __xfs_bmapi_allocate(args); > complete(args->done); > > - current_restore_flags_nested(&pflags, new_pflags); > + current_restore_flags_nested(&pflags, PF_FSTRANS); > } > > /* > @@ -293,7 +284,6 @@ xfs_bmapi_allocate( > > > args->done = &done; > - args->kswapd = current_is_kswapd(); > INIT_WORK_ONSTACK(&args->work, xfs_bmapi_allocate_worker); > queue_work(xfs_alloc_wq, &args->work); > wait_for_completion(&done); > diff --git a/fs/xfs/xfs_bmap_util.h b/fs/xfs/xfs_bmap_util.h > index 075f722..935ed2b 100644 > --- a/fs/xfs/xfs_bmap_util.h > +++ b/fs/xfs/xfs_bmap_util.h > @@ -50,13 +50,12 @@ struct xfs_bmalloca { > xfs_extlen_t total; /* total blocks needed for xaction */ > xfs_extlen_t minlen; /* minimum allocation size (blocks) */ > xfs_extlen_t minleft; /* amount must be left after alloc */ > - bool eof; /* set if allocating past last extent */ > - bool wasdel; /* replacing a delayed allocation */ > - bool userdata;/* set if is user data */ > - bool aeof; /* allocated space at eof */ > - bool conv; /* overwriting unwritten extents */ > - bool stack_switch; > - bool kswapd; /* allocation in kswapd context */ > + char eof; /* set if allocating past last extent */ > + char wasdel; /* replacing a delayed allocation */ > + char userdata;/* set if is user data */ > + char aeof; /* allocated space at eof */ > + char conv; /* overwriting unwritten extents */ > + char stack_switch; > int flags; > struct completion *done; > struct work_struct work; > -- > 2.0.0 > > _______________________________________________ > xfs mailing list > xfs@oss.sgi.com > http://oss.sgi.com/mailman/listinfo/xfs From bfoster@redhat.com Fri Jul 11 07:33:59 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: xfs@oss.sgi.com Delivered-To: xfs@oss.sgi.com Received: from relay.sgi.com (relay3.corp.sgi.com [198.149.34.15]) by oss.sgi.com (Postfix) with ESMTP id EED4B7F47 for ; Fri, 11 Jul 2014 07:33:58 -0500 (CDT) Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by relay3.corp.sgi.com (Postfix) with ESMTP id 8E591AC004 for ; Fri, 11 Jul 2014 05:33:58 -0700 (PDT) X-ASG-Debug-ID: 1405082037-04bdf0356926070001-NocioJ Received: from mx1.redhat.com (mx1.redhat.com [209.132.183.28]) by cuda.sgi.com with ESMTP id hni4EhXk5YlLRSbo (version=TLSv1 cipher=AES256-SHA bits=256 verify=NO) for ; Fri, 11 Jul 2014 05:33:57 -0700 (PDT) X-Barracuda-Envelope-From: bfoster@redhat.com X-Barracuda-Apparent-Source-IP: 209.132.183.28 X-ASG-Whitelist: Client Received: from int-mx10.intmail.prod.int.phx2.redhat.com (int-mx10.intmail.prod.int.phx2.redhat.com [10.5.11.23]) by mx1.redhat.com (8.14.4/8.14.4) with ESMTP id s6BCXtIl031432 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Fri, 11 Jul 2014 08:33:56 -0400 Received: from laptop.bfoster (vpn-63-146.rdu2.redhat.com [10.10.63.146]) by int-mx10.intmail.prod.int.phx2.redhat.com (8.14.4/8.14.4) with ESMTP id s6BCXrLn004795 (version=TLSv1/SSLv3 cipher=AES128-GCM-SHA256 bits=128 verify=NO); Fri, 11 Jul 2014 08:33:54 -0400 Date: Fri, 11 Jul 2014 08:33:53 -0400 From: Brian Foster To: Dave Chinner Cc: xfs@oss.sgi.com Subject: Re: [PATCH 2/3] xfs: refine the allocation stack switch Message-ID: <20140711123352.GB3077@laptop.bfoster> X-ASG-Orig-Subj: Re: [PATCH 2/3] xfs: refine the allocation stack switch References: <1405034779-2028-1-git-send-email-david@fromorbit.com> <1405034779-2028-3-git-send-email-david@fromorbit.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1405034779-2028-3-git-send-email-david@fromorbit.com> User-Agent: Mutt/1.5.23 (2014-03-12) X-Scanned-By: MIMEDefang 2.68 on 10.5.11.23 X-Barracuda-Connect: mx1.redhat.com[209.132.183.28] X-Barracuda-Start-Time: 1405082037 X-Barracuda-Encrypted: AES256-SHA X-Barracuda-URL: http://192.48.157.11:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 On Fri, Jul 11, 2014 at 09:26:18AM +1000, Dave Chinner wrote: > From: Dave Chinner > ... > > Signed-off-by: Dave Chinner > --- > fs/xfs/xfs_bmap.c | 4 +-- > fs/xfs/xfs_bmap_util.c | 43 -------------------------- > fs/xfs/xfs_bmap_util.h | 15 +++++---- > fs/xfs/xfs_btree.c | 84 ++++++++++++++++++++++++++++++++++++++++++++++++-- > 4 files changed, 91 insertions(+), 55 deletions(-) > ... > diff --git a/fs/xfs/xfs_bmap_util.h b/fs/xfs/xfs_bmap_util.h > index 935ed2b..91df8e9 100644 > --- a/fs/xfs/xfs_bmap_util.h > +++ b/fs/xfs/xfs_bmap_util.h > @@ -50,12 +50,13 @@ struct xfs_bmalloca { > xfs_extlen_t total; /* total blocks needed for xaction */ > xfs_extlen_t minlen; /* minimum allocation size (blocks) */ > xfs_extlen_t minleft; /* amount must be left after alloc */ > - char eof; /* set if allocating past last extent */ > - char wasdel; /* replacing a delayed allocation */ > - char userdata;/* set if is user data */ > - char aeof; /* allocated space at eof */ > - char conv; /* overwriting unwritten extents */ > - char stack_switch; > + bool eof; /* set if allocating past last extent */ > + bool wasdel; /* replacing a delayed allocation */ > + bool userdata;/* set if is user data */ > + bool aeof; /* allocated space at eof */ > + bool conv; /* overwriting unwritten extents */ > + bool stack_switch; > + bool kswapd; /* work being done for kswapd */ Neither stack_switch nor kswapd are used any longer. Removal of stack_switch means that the XFS_BMAPI_STACK_SWITCH flag can go away as well. > int flags; > struct completion *done; > struct work_struct work; > @@ -65,8 +66,6 @@ struct xfs_bmalloca { > int xfs_bmap_finish(struct xfs_trans **tp, struct xfs_bmap_free *flist, > int *committed); > int xfs_bmap_rtalloc(struct xfs_bmalloca *ap); > -int xfs_bmapi_allocate(struct xfs_bmalloca *args); > -int __xfs_bmapi_allocate(struct xfs_bmalloca *args); > int xfs_bmap_eof(struct xfs_inode *ip, xfs_fileoff_t endoff, > int whichfork, int *eof); > int xfs_bmap_count_blocks(struct xfs_trans *tp, struct xfs_inode *ip, > diff --git a/fs/xfs/xfs_btree.c b/fs/xfs/xfs_btree.c > index bf810c6..61168e3 100644 > --- a/fs/xfs/xfs_btree.c > +++ b/fs/xfs/xfs_btree.c > @@ -33,6 +33,7 @@ > #include "xfs_error.h" > #include "xfs_trace.h" > #include "xfs_cksum.h" > +#include "xfs_alloc.h" > > /* > * Cursor allocation zone. > @@ -2322,8 +2323,8 @@ error1: > * Return new block number and the key to its first > * record (to be inserted into parent). > */ > -STATIC int /* error */ > -xfs_btree_split( > +int /* error */ > +__xfs_btree_split( Looks like this can remain static. The rest looks Ok to me, but I'll run some tests too. Brian > struct xfs_btree_cur *cur, > int level, > union xfs_btree_ptr *ptrp, > @@ -2503,6 +2504,85 @@ error0: > return error; > } > > +struct xfs_btree_split_args { > + struct xfs_btree_cur *cur; > + int level; > + union xfs_btree_ptr *ptrp; > + union xfs_btree_key *key; > + struct xfs_btree_cur **curp; > + int *stat; /* success/failure */ > + int result; > + bool kswapd; /* allocation in kswapd context */ > + struct completion *done; > + struct work_struct work; > +}; > + > +/* > + * Stack switching interfaces for allocation > + */ > +static void > +xfs_btree_split_worker( > + struct work_struct *work) > +{ > + struct xfs_btree_split_args *args = container_of(work, > + struct xfs_btree_split_args, work); > + unsigned long pflags; > + unsigned long new_pflags = PF_FSTRANS; > + > + /* > + * we are in a transaction context here, but may also be doing work > + * in kswapd context, and hence we may need to inherit that state > + * temporarily to ensure that we don't block waiting for memory reclaim > + * in any way. > + */ > + if (args->kswapd) > + new_pflags |= PF_MEMALLOC | PF_SWAPWRITE | PF_KSWAPD; > + > + current_set_flags_nested(&pflags, new_pflags); > + > + args->result = __xfs_btree_split(args->cur, args->level, args->ptrp, > + args->key, args->curp, args->stat); > + complete(args->done); > + > + current_restore_flags_nested(&pflags, new_pflags); > +} > + > +/* > + * BMBT split requests often come in with little stack to work on. Push > + * them off to a worker thread so there is lots of stack to use. For the other > + * btree types, just call directly to avoid the context switch overhead here. > + */ > +STATIC int /* error */ > +xfs_btree_split( > + struct xfs_btree_cur *cur, > + int level, > + union xfs_btree_ptr *ptrp, > + union xfs_btree_key *key, > + struct xfs_btree_cur **curp, > + int *stat) /* success/failure */ > +{ > + struct xfs_btree_split_args args; > + DECLARE_COMPLETION_ONSTACK(done); > + > + if (cur->bc_btnum != XFS_BTNUM_BMAP) > + return __xfs_btree_split(cur, level, ptrp, key, curp, stat); > + > + args.cur = cur; > + args.level = level; > + args.ptrp = ptrp; > + args.key = key; > + args.curp = curp; > + args.stat = stat; > + args.done = &done; > + args.kswapd = current_is_kswapd(); > + INIT_WORK_ONSTACK(&args.work, xfs_btree_split_worker); > + queue_work(xfs_alloc_wq, &args.work); > + wait_for_completion(&done); > + destroy_work_on_stack(&args.work); > + return args.result; > +} > + > + > /* > * Copy the old inode root contents into a real block and make the > * broot point to it. > -- > 2.0.0 > > _______________________________________________ > xfs mailing list > xfs@oss.sgi.com > http://oss.sgi.com/mailman/listinfo/xfs From bfoster@redhat.com Fri Jul 11 08:15:31 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: xfs@oss.sgi.com Delivered-To: xfs@oss.sgi.com Received: from relay.sgi.com (relay3.corp.sgi.com [198.149.34.15]) by oss.sgi.com (Postfix) with ESMTP id 0E20E7F47 for ; Fri, 11 Jul 2014 08:15:31 -0500 (CDT) Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by relay3.corp.sgi.com (Postfix) with ESMTP id 85E7EAC004 for ; Fri, 11 Jul 2014 06:15:27 -0700 (PDT) X-ASG-Debug-ID: 1405084525-04cbb0421c298a0001-NocioJ Received: from mx1.redhat.com (mx1.redhat.com [209.132.183.28]) by cuda.sgi.com with ESMTP id UAKy026lDopz5gSQ (version=TLSv1 cipher=AES256-SHA bits=256 verify=NO) for ; Fri, 11 Jul 2014 06:15:26 -0700 (PDT) X-Barracuda-Envelope-From: bfoster@redhat.com X-Barracuda-Apparent-Source-IP: 209.132.183.28 X-ASG-Whitelist: Client Received: from int-mx09.intmail.prod.int.phx2.redhat.com (int-mx09.intmail.prod.int.phx2.redhat.com [10.5.11.22]) by mx1.redhat.com (8.14.4/8.14.4) with ESMTP id s6BDFJBG002495 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Fri, 11 Jul 2014 09:15:22 -0400 Received: from laptop.bfoster (vpn-63-146.rdu2.redhat.com [10.10.63.146]) by int-mx09.intmail.prod.int.phx2.redhat.com (8.14.4/8.14.4) with ESMTP id s6BDFFkL022796 (version=TLSv1/SSLv3 cipher=AES128-GCM-SHA256 bits=128 verify=NO); Fri, 11 Jul 2014 09:15:17 -0400 Date: Fri, 11 Jul 2014 09:15:15 -0400 From: Brian Foster To: Dave Chinner Cc: xfs@oss.sgi.com Subject: Re: [PATCH 3/3] xfs: null unused quota inodes when quota is on Message-ID: <20140711131514.GA3593@laptop.bfoster> X-ASG-Orig-Subj: Re: [PATCH 3/3] xfs: null unused quota inodes when quota is on References: <1405034779-2028-1-git-send-email-david@fromorbit.com> <1405034779-2028-4-git-send-email-david@fromorbit.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1405034779-2028-4-git-send-email-david@fromorbit.com> User-Agent: Mutt/1.5.23 (2014-03-12) X-Scanned-By: MIMEDefang 2.68 on 10.5.11.22 X-Barracuda-Connect: mx1.redhat.com[209.132.183.28] X-Barracuda-Start-Time: 1405084525 X-Barracuda-Encrypted: AES256-SHA X-Barracuda-URL: http://192.48.176.25:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 On Fri, Jul 11, 2014 at 09:26:19AM +1000, Dave Chinner wrote: > From: Dave Chinner > > When quota is on, it is expected that unused quota inodes have a > value of NULLFSINO. The changes to support a separate project quota > in 3.12 broken this rule for non-project quota inode enabled > filesystem, as the code now refuses to write the group quota inode > if neither group or project quotas are enabled. This regression was > introduced by commit d892d58 ("xfs: Start using pquotaino from the > superblock"). > > In this case, we should be writing NULLFSINO rather than nothing to > ensure that we leave the group quota inode in a valid state while > quotas are enabled. > > Failure to do so doesn't cause a current kernel to break - the > separate project quota inodes introduced translation code to always > treat a zero inode as NULLFSINO. This was introduced by commit > 0102629 ("xfs: Initialize all quota inodes to be NULLFSINO") with is > also in 3.12 but older kernels do not do this and hence taking a > filesystem back to an older kernel can result in quotas failing > initialisation at mount time. When that happens, we see this in > dmesg: > > [ 1649.215390] XFS (sdb): Mounting Filesystem > [ 1649.316894] XFS (sdb): Failed to initialize disk quotas. > [ 1649.316902] XFS (sdb): Ending clean mount > > By ensuring that we write NULLFSINO to quota inodes that aren't > active, we avoid this problem. > > Signed-off-by: Dave Chinner > --- > fs/xfs/xfs_sb.c | 16 ++++++++++++---- > 1 file changed, 12 insertions(+), 4 deletions(-) > > diff --git a/fs/xfs/xfs_sb.c b/fs/xfs/xfs_sb.c > index c3453b1..9a58699 100644 > --- a/fs/xfs/xfs_sb.c > +++ b/fs/xfs/xfs_sb.c > @@ -483,10 +483,16 @@ xfs_sb_quota_to_disk( > } > > /* > - * GQUOTINO and PQUOTINO cannot be used together in versions > - * of superblock that do not have pquotino. from->sb_flags > - * tells us which quota is active and should be copied to > - * disk. > + * GQUOTINO and PQUOTINO cannot be used together in versions of > + * superblock that do not have pquotino. from->sb_flags tells us which > + * quota is active and should be copied to disk. If neither are active, > + * make sure we write NULLFSINO to the sb_gquotino field as a quota > + * inode value of "0" is invalid when the XFS_SB_VERSION_QUOTA feature > + * bit is set. > + * > + * Note that we don't need to handle the sb_uquotino or sb_pquotino here > + * as they do not require any translation. Hence the main sb field loop > + * will write them appropriately from the in-core superblock. > */ sb_uquotino does not require any translation, but sb_pquotino simply doesn't exist on older sb's, right? Is that what you mean to say here? E.g., we clear XFS_SB_PQUOTINO from fields below, so the field loop isn't going to write it (and I take that's the right thing to do). > if ((*fields & XFS_SB_GQUOTINO) && > (from->sb_qflags & XFS_GQUOTA_ACCT)) > @@ -494,6 +500,8 @@ xfs_sb_quota_to_disk( > else if ((*fields & XFS_SB_PQUOTINO) && > (from->sb_qflags & XFS_PQUOTA_ACCT)) > to->sb_gquotino = cpu_to_be64(from->sb_pquotino); > + else > + to->sb_gquotino = cpu_to_be64(NULLFSINO); > We update the field manually and clear the flag bit so the loop doesn't handle it. Seems Ok, despite my minor confusion over the above comment: Reviewed-by: Brian Foster > *fields &= ~(XFS_SB_PQUOTINO | XFS_SB_GQUOTINO); > } > -- > 2.0.0 > > _______________________________________________ > xfs mailing list > xfs@oss.sgi.com > http://oss.sgi.com/mailman/listinfo/xfs From arekm@maven.pl Fri Jul 11 10:23:03 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=T_DKIM_INVALID autolearn=ham version=3.3.1 X-Original-To: xfs@oss.sgi.com Delivered-To: xfs@oss.sgi.com Received: from relay.sgi.com (relay3.corp.sgi.com [198.149.34.15]) by oss.sgi.com (Postfix) with ESMTP id 694457F47 for ; Fri, 11 Jul 2014 10:23:03 -0500 (CDT) Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by relay3.corp.sgi.com (Postfix) with ESMTP id 0BB42AC001 for ; Fri, 11 Jul 2014 08:22:59 -0700 (PDT) X-ASG-Debug-ID: 1405092175-04bdf0356a2f8e0001-NocioJ Received: from mail-wi0-f181.google.com (mail-wi0-f181.google.com [209.85.212.181]) by cuda.sgi.com with ESMTP id BETJLF95nt5rAfnn (version=TLSv1 cipher=RC4-SHA bits=128 verify=NO) for ; Fri, 11 Jul 2014 08:22:56 -0700 (PDT) X-Barracuda-Envelope-From: arekm@maven.pl X-Barracuda-Apparent-Source-IP: 209.85.212.181 Received: by mail-wi0-f181.google.com with SMTP id bs8so1608411wib.2 for ; Fri, 11 Jul 2014 08:22:53 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=maven.pl; s=maven; h=from:to:subject:date:user-agent:cc:references:in-reply-to :mime-version:content-type:content-transfer-encoding:message-id; bh=A3bO32ZIuScRFisybiKs3eMYVZidE88OP99O8Th52Io=; b=rMayRPgNr6ZvetIF2WmJDTZOkPqkp0iad0u2oSTAa6+giErE9iq33L3Lfk3wgBJHt+ 4WNYJnJpJLnDywhz/nsBUdYUL38pLVmb911cjbBFtsl+kshdihVvGA0VBeDso8U913ox ZQfDONTlHjC9CPimBl172Uqvve/q0aERsJE7w= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:from:to:subject:date:user-agent:cc:references :in-reply-to:mime-version:content-type:content-transfer-encoding :message-id; bh=A3bO32ZIuScRFisybiKs3eMYVZidE88OP99O8Th52Io=; b=ixfyyCAhmQ210m+bzm60BT0lP8HikJ1u+tPYq4M8s8HifgIlj9U6AIDQIqYRDkLHod 9GGC5cxg5vhrjneuqnhAvowbQA4nIsH3NzwL8ptUQN7B0cJhbDVOi6p00iTm2gAbfGXr 9QGUyVX0dHgZPGf8+/xNLrE0j5vypDZ9Rt8mhug4DWmhfL48pB+gvd8+VWlnq7dvevvO cyPev6VXtO3W6JiOcJDJUQ68KD0MVO8y1MX1n1E3QD9Gosq0ogO3Wn7WGH5DsJlTve2X BWP7aU61dzpfjQCSfZiPmg8zHl84PuCkZp8pSIb2CrkESRuhIoKRAm+t29yp6ltz2/Ke 6+nw== X-Gm-Message-State: ALoCoQn5X9M18wksftjG+SLaiyk+JnUpWGVbpruxvuwOFRuF6tMgQv7y5wOUIngEt7VmJ/lAHZq+ X-Received: by 10.180.81.72 with SMTP id y8mr5833199wix.7.1405092171832; Fri, 11 Jul 2014 08:22:51 -0700 (PDT) Received: from t400.localnet (89-65-199-25.dynamic.chello.pl. [89.65.199.25]) by mx.google.com with ESMTPSA id i4sm8481098wib.21.2014.07.11.08.22.50 for (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Fri, 11 Jul 2014 08:22:51 -0700 (PDT) From: Arkadiusz =?utf-8?q?Mi=C5=9Bkiewicz?= To: xfs@oss.sgi.com Subject: Re: [PATCH 3/3] xfs: null unused quota inodes when quota is on Date: Fri, 11 Jul 2014 17:22:48 +0200 X-ASG-Orig-Subj: Re: [PATCH 3/3] xfs: null unused quota inodes when quota is on User-Agent: KMail/1.13.7 (Linux/3.16.0-rc4-00120-g85d90fa-dirty; KDE/4.13.2; x86_64; ; ) Cc: Dave Chinner References: <1405034779-2028-1-git-send-email-david@fromorbit.com> <1405034779-2028-4-git-send-email-david@fromorbit.com> In-Reply-To: <1405034779-2028-4-git-send-email-david@fromorbit.com> MIME-Version: 1.0 Content-Type: Text/Plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <201407111722.48507.arekm@maven.pl> X-Barracuda-Connect: mail-wi0-f181.google.com[209.85.212.181] X-Barracuda-Start-Time: 1405092176 X-Barracuda-Encrypted: RC4-SHA X-Barracuda-URL: http://192.48.157.11:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 X-Barracuda-Spam-Score: 0.00 X-Barracuda-Spam-Status: No, SCORE=0.00 using per-user scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.7 tests=DKIM_SIGNED, DKIM_VERIFIED X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.7433 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- -0.00 DKIM_VERIFIED Domain Keys Identified Mail: signature passes verification 0.00 DKIM_SIGNED Domain Keys Identified Mail: message has a signature On Friday 11 of July 2014, Dave Chinner wrote: > From: Dave Chinner >=20 > When quota is on, it is expected that unused quota inodes have a > value of NULLFSINO. The changes to support a separate project quota > in 3.12 broken this rule for non-project quota inode enabled > filesystem, as the code now refuses to write the group quota inode > if neither group or project quotas are enabled. This regression was > introduced by commit d892d58 ("xfs: Start using pquotaino from the > superblock"). >=20 > In this case, we should be writing NULLFSINO rather than nothing to > ensure that we leave the group quota inode in a valid state while > quotas are enabled. >=20 > Failure to do so doesn't cause a current kernel to break - the > separate project quota inodes introduced translation code to always > treat a zero inode as NULLFSINO. This was introduced by commit > 0102629 ("xfs: Initialize all quota inodes to be NULLFSINO") with is > also in 3.12 but older kernels do not do this and hence taking a > filesystem back to an older kernel can result in quotas failing > initialisation at mount time. When that happens, we see this in > dmesg: >=20 > [ 1649.215390] XFS (sdb): Mounting Filesystem > [ 1649.316894] XFS (sdb): Failed to initialize disk quotas. > [ 1649.316902] XFS (sdb): Ending clean mount >=20 > By ensuring that we write NULLFSINO to quota inodes that aren't > active, we avoid this problem. >=20 > Signed-off-by: Dave Chinner > --- > fs/xfs/xfs_sb.c | 16 ++++++++++++---- > 1 file changed, 12 insertions(+), 4 deletions(-) >=20 > diff --git a/fs/xfs/xfs_sb.c b/fs/xfs/xfs_sb.c > index c3453b1..9a58699 100644 > --- a/fs/xfs/xfs_sb.c > +++ b/fs/xfs/xfs_sb.c > @@ -483,10 +483,16 @@ xfs_sb_quota_to_disk( > } >=20 > /* > - * GQUOTINO and PQUOTINO cannot be used together in versions > - * of superblock that do not have pquotino. from->sb_flags > - * tells us which quota is active and should be copied to > - * disk. > + * GQUOTINO and PQUOTINO cannot be used together in versions of > + * superblock that do not have pquotino. from->sb_flags tells us which > + * quota is active and should be copied to disk. If neither are active, > + * make sure we write NULLFSINO to the sb_gquotino field as a quota > + * inode value of "0" is invalid when the XFS_SB_VERSION_QUOTA feature > + * bit is set. > + * > + * Note that we don't need to handle the sb_uquotino or sb_pquotino here > + * as they do not require any translation. Hence the main sb field loop > + * will write them appropriately from the in-core superblock. > */ > if ((*fields & XFS_SB_GQUOTINO) && > (from->sb_qflags & XFS_GQUOTA_ACCT)) > @@ -494,6 +500,8 @@ xfs_sb_quota_to_disk( > else if ((*fields & XFS_SB_PQUOTINO) && > (from->sb_qflags & XFS_PQUOTA_ACCT)) > to->sb_gquotino =3D cpu_to_be64(from->sb_pquotino); > + else > + to->sb_gquotino =3D cpu_to_be64(NULLFSINO); >=20 > *fields &=3D ~(XFS_SB_PQUOTINO | XFS_SB_GQUOTINO); > } Tested-by: Arkadiusz Mi=C5=9Bkiewicz 3.16.0-rc4-00120-g85d90fa + patch $ truncate -s 50M 50M-image $ mkfs.xfs -f 50M-image=20 meta-data=3D50M-image isize=3D256 agcount=3D2, agsize=3D640= 0 blks =3D sectsz=3D512 attr=3D2, projid32bit=3D1 =3D crc=3D0 finobt=3D0 data =3D bsize=3D4096 blocks=3D12800, imaxpct= =3D25 =3D sunit=3D0 swidth=3D0 blks naming =3Dversion 2 bsize=3D4096 ascii-ci=3D0 ftype=3D0 log =3Dinternal log bsize=3D4096 blocks=3D853, version=3D2 =3D sectsz=3D512 sunit=3D0 blks, lazy-coun= t=3D1 realtime =3Dnone extsz=3D4096 blocks=3D0, rtextents=3D0 $ xfs_db 50M-image -c "sb 0" -c "print" |grep quot uquotino =3D 0 gquotino =3D 0 pquotino =3D 0 $ sudo mount 50M-image /media/floppy/ -o usrquota [sudo] password for arekm:=20 $ dmesg|tail -n 4 [ 98.413877] XFS (loop0): Mounting V4 Filesystem [ 98.445950] XFS (loop0): Ending clean mount [ 98.445987] XFS (loop0): Quotacheck needed: Please wait. [ 98.469666] XFS (loop0): Quotacheck: Done. $ sudo umount /media/floppy/ ]$ xfs_db 50M-image -c "sb 0" -c "print" |grep quot = = =20 uquotino =3D 131 = = =20 gquotino =3D null = = =20 pquotino =3D 0 =20 and it properly mounted on 3.10.46 with usrquota,grpquota =2D-=20 Arkadiusz Mi=C5=9Bkiewicz, arekm / maven.pl From arekm@maven.pl Fri Jul 11 10:30:23 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=T_DKIM_INVALID autolearn=ham version=3.3.1 X-Original-To: xfs@oss.sgi.com Delivered-To: xfs@oss.sgi.com Received: from relay.sgi.com (relay1.corp.sgi.com [137.38.102.111]) by oss.sgi.com (Postfix) with ESMTP id 989727F47 for ; Fri, 11 Jul 2014 10:30:23 -0500 (CDT) Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by relay1.corp.sgi.com (Postfix) with ESMTP id 7EBBC8F8037 for ; Fri, 11 Jul 2014 08:30:20 -0700 (PDT) X-ASG-Debug-ID: 1405092617-04cb6c6ad02c6b0001-NocioJ Received: from mail-wg0-f52.google.com (mail-wg0-f52.google.com [74.125.82.52]) by cuda.sgi.com with ESMTP id 09v8S1ZAFdaVHbBO (version=TLSv1 cipher=RC4-SHA bits=128 verify=NO) for ; Fri, 11 Jul 2014 08:30:18 -0700 (PDT) X-Barracuda-Envelope-From: arekm@maven.pl X-Barracuda-Apparent-Source-IP: 74.125.82.52 Received: by mail-wg0-f52.google.com with SMTP id a1so506984wgh.35 for ; Fri, 11 Jul 2014 08:30:16 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=maven.pl; s=maven; h=from:to:subject:date:user-agent:cc:references:in-reply-to :mime-version:content-type:content-transfer-encoding:message-id; bh=qWQ9JKUSPe0TBorpeFsDSZ/y+AUQH20nbIGWGiRRmXk=; b=cstjF8N19AbDTSLlLAiynoqqVfXCRM/hsB6khI688ANPkS+OgMxOgg4yFf30yozO4x ebq8t7j2jxo5ZqQGGmC976lqVWchxr4c8t0grlJ0Xhxo5twvmwFyee/tP+fECMkbufJc 3Gwf1w8o1XbZjHYvyOUSKjK3rgMGlc9A9Byv0= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:from:to:subject:date:user-agent:cc:references :in-reply-to:mime-version:content-type:content-transfer-encoding :message-id; bh=qWQ9JKUSPe0TBorpeFsDSZ/y+AUQH20nbIGWGiRRmXk=; b=LBo+lwHI49ihWiVO+Z1rhg8k0Tb/HtKyzZUJ5aV6gdANhNUHUiRpOx3VGMaG7YHDVq bc8erhGALh2CGy3JoYo93bSSbudUdWe9APjt0mYjR+NCsrZHQvv0ExBx/r0Otei3Ripg XTlNEJctvPwxW92morYJCDzsgLIRH9f2HcQeHgWs8VzcgAkwRBDbsOsyK/9IywC1R5Sz lzVvE/6ALijmnhwbDFVEJkHbdQ0KGvGQ4tulKdvwewSUhDB1COg98abTFEMHxO03+6BC ooxwX+NsRA8muXAm0S0Xwk8K3vcU5eDkAQ98hSPRbGrUJVTMgFm0oKy7DeJ2/4upRv5N i8fw== X-Gm-Message-State: ALoCoQnnVXZKoS5UO9wjXyyQn8fraqaT1rcfWsw2SDg2dD//Acw6+TzmKp8iOnHuI+5j1CWnJ1C5 X-Received: by 10.180.212.12 with SMTP id ng12mr5968045wic.9.1405092614728; Fri, 11 Jul 2014 08:30:14 -0700 (PDT) Received: from t400.localnet (89-65-199-25.dynamic.chello.pl. [89.65.199.25]) by mx.google.com with ESMTPSA id wv8sm5849117wjb.1.2014.07.11.08.30.13 for (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Fri, 11 Jul 2014 08:30:14 -0700 (PDT) From: Arkadiusz =?utf-8?q?Mi=C5=9Bkiewicz?= To: xfs@oss.sgi.com Subject: Re: [PATCH 3/3] xfs: null unused quota inodes when quota is on Date: Fri, 11 Jul 2014 17:30:10 +0200 X-ASG-Orig-Subj: Re: [PATCH 3/3] xfs: null unused quota inodes when quota is on User-Agent: KMail/1.13.7 (Linux/3.16.0-rc4-00120-g85d90fa-dirty; KDE/4.13.2; x86_64; ; ) Cc: Dave Chinner References: <1405034779-2028-1-git-send-email-david@fromorbit.com> <1405034779-2028-4-git-send-email-david@fromorbit.com> <201407111722.48507.arekm@maven.pl> In-Reply-To: <201407111722.48507.arekm@maven.pl> MIME-Version: 1.0 Content-Type: Text/Plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <201407111730.10168.arekm@maven.pl> X-Barracuda-Connect: mail-wg0-f52.google.com[74.125.82.52] X-Barracuda-Start-Time: 1405092618 X-Barracuda-Encrypted: RC4-SHA X-Barracuda-URL: http://192.48.176.15:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 X-Barracuda-Spam-Score: 0.00 X-Barracuda-Spam-Status: No, SCORE=0.00 using per-user scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.7 tests=DKIM_SIGNED, DKIM_VERIFIED X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.7433 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- -0.00 DKIM_VERIFIED Domain Keys Identified Mail: signature passes verification 0.00 DKIM_SIGNED Domain Keys Identified Mail: message has a signature On Friday 11 of July 2014, Arkadiusz Mi=C5=9Bkiewicz wrote: > On Friday 11 of July 2014, Dave Chinner wrote: > > From: Dave Chinner > >=20 > > When quota is on, it is expected that unused quota inodes have a > > value of NULLFSINO. The changes to support a separate project quota > > in 3.12 broken this rule for non-project quota inode enabled > > filesystem, as the code now refuses to write the group quota inode > > if neither group or project quotas are enabled. This regression was > > introduced by commit d892d58 ("xfs: Start using pquotaino from the > > superblock"). > >=20 > > In this case, we should be writing NULLFSINO rather than nothing to > > ensure that we leave the group quota inode in a valid state while > > quotas are enabled. > >=20 > > Failure to do so doesn't cause a current kernel to break - the > > separate project quota inodes introduced translation code to always > > treat a zero inode as NULLFSINO. This was introduced by commit > > 0102629 ("xfs: Initialize all quota inodes to be NULLFSINO") with is > > also in 3.12 but older kernels do not do this and hence taking a > > filesystem back to an older kernel can result in quotas failing > > initialisation at mount time. When that happens, we see this in > > dmesg: > >=20 > > [ 1649.215390] XFS (sdb): Mounting Filesystem > > [ 1649.316894] XFS (sdb): Failed to initialize disk quotas. > > [ 1649.316902] XFS (sdb): Ending clean mount > >=20 > > By ensuring that we write NULLFSINO to quota inodes that aren't > > active, we avoid this problem. > >=20 > > Signed-off-by: Dave Chinner > > --- > >=20 > > fs/xfs/xfs_sb.c | 16 ++++++++++++---- > > 1 file changed, 12 insertions(+), 4 deletions(-) > >=20 > > diff --git a/fs/xfs/xfs_sb.c b/fs/xfs/xfs_sb.c > > index c3453b1..9a58699 100644 > > --- a/fs/xfs/xfs_sb.c > > +++ b/fs/xfs/xfs_sb.c > > @@ -483,10 +483,16 @@ xfs_sb_quota_to_disk( > >=20 > > } > > =09 > > /* > >=20 > > - * GQUOTINO and PQUOTINO cannot be used together in versions > > - * of superblock that do not have pquotino. from->sb_flags > > - * tells us which quota is active and should be copied to > > - * disk. > > + * GQUOTINO and PQUOTINO cannot be used together in versions of > > + * superblock that do not have pquotino. from->sb_flags tells us which > > + * quota is active and should be copied to disk. If neither are=20 active, > > + * make sure we write NULLFSINO to the sb_gquotino field as a quota > > + * inode value of "0" is invalid when the XFS_SB_VERSION_QUOTA feature > > + * bit is set. > > + * > > + * Note that we don't need to handle the sb_uquotino or sb_pquotino > > here + * as they do not require any translation. Hence the main sb > > field loop + * will write them appropriately from the in-core > > superblock. > >=20 > > */ > > =09 > > if ((*fields & XFS_SB_GQUOTINO) && > > =09 > > (from->sb_qflags & XFS_GQUOTA_ACCT)) > >=20 > > @@ -494,6 +500,8 @@ xfs_sb_quota_to_disk( > >=20 > > else if ((*fields & XFS_SB_PQUOTINO) && > > =09 > > (from->sb_qflags & XFS_PQUOTA_ACCT)) > > =09 > > to->sb_gquotino =3D cpu_to_be64(from->sb_pquotino); > >=20 > > + else > > + to->sb_gquotino =3D cpu_to_be64(NULLFSINO); > >=20 > > *fields &=3D ~(XFS_SB_PQUOTINO | XFS_SB_GQUOTINO); > > =20 > > } >=20 > Tested-by: Arkadiusz Mi=C5=9Bkiewicz >=20 > 3.16.0-rc4-00120-g85d90fa + patch >=20 > $ truncate -s 50M 50M-image > $ mkfs.xfs -f 50M-image > meta-data=3D50M-image isize=3D256 agcount=3D2, agsize=3D6= 400 blks > =3D sectsz=3D512 attr=3D2, projid32bit= =3D1 > =3D crc=3D0 finobt=3D0 > data =3D bsize=3D4096 blocks=3D12800, imaxpct= =3D25 > =3D sunit=3D0 swidth=3D0 blks > naming =3Dversion 2 bsize=3D4096 ascii-ci=3D0 ftype=3D0 > log =3Dinternal log bsize=3D4096 blocks=3D853, version= =3D2 > =3D sectsz=3D512 sunit=3D0 blks, lazy-co= unt=3D1 > realtime =3Dnone extsz=3D4096 blocks=3D0, rtextents= =3D0 > $ xfs_db 50M-image -c "sb 0" -c "print" |grep quot > uquotino =3D 0 > gquotino =3D 0 > pquotino =3D 0 > $ sudo mount 50M-image /media/floppy/ -o usrquota > [sudo] password for arekm: > $ dmesg|tail -n 4 > [ 98.413877] XFS (loop0): Mounting V4 Filesystem > [ 98.445950] XFS (loop0): Ending clean mount > [ 98.445987] XFS (loop0): Quotacheck needed: Please wait. > [ 98.469666] XFS (loop0): Quotacheck: Done. > $ sudo umount /media/floppy/ > ]$ xfs_db 50M-image -c "sb 0" -c "print" |grep quot > uquotino =3D 131 > gquotino =3D null > pquotino =3D 0 >=20 > and it properly mounted on 3.10.46 with usrquota,grpquota Actually there is a problem with different options, so likely more fixes is= =20 needed. gquotinode doesn't get allocated if mounted with grpquota: 3.16git+patch: [arekm@t400 test]$ rm 50M-image=20 [arekm@t400 test]$ truncate -s 50M 50M-image [arekm@t400 test]$ mkfs.xfs -f 50M-image=20 meta-data=3D50M-image isize=3D256 agcount=3D2, agsize=3D640= 0 blks =3D sectsz=3D512 attr=3D2, projid32bit=3D1 =3D crc=3D0 finobt=3D0 data =3D bsize=3D4096 blocks=3D12800, imaxpct= =3D25 =3D sunit=3D0 swidth=3D0 blks naming =3Dversion 2 bsize=3D4096 ascii-ci=3D0 ftype=3D0 log =3Dinternal log bsize=3D4096 blocks=3D853, version=3D2 =3D sectsz=3D512 sunit=3D0 blks, lazy-coun= t=3D1 realtime =3Dnone extsz=3D4096 blocks=3D0, rtextents=3D0 $ xfs_db 50M-image -c "sb 0" -c "print" |grep quot uquotino =3D 0 gquotino =3D 0 pquotino =3D 0 $ sudo mount 50M-image /media/floppy/ -o grpquota $ sudo umount /media/floppy/ $ xfs_db 50M-image -c "sb 0" -c "print" |grep quot uquotino =3D null gquotino =3D null pquotino =3D 0 but on 3.10.46 gquotino is allocated: $ rm 50M-image=20 $ truncate -s 50M 50M-image $ mkfs.xfs 50M-image=20 meta-data=3D50M-image isize=3D256 agcount=3D2, agsize=3D640= 0 blks =3D sectsz=3D512 attr=3D2, projid32bit=3D1 =3D crc=3D0 finobt=3D0 data =3D bsize=3D4096 blocks=3D12800, imaxpct= =3D25 =3D sunit=3D0 swidth=3D0 blks naming =3Dversion 2 bsize=3D4096 ascii-ci=3D0 ftype=3D0 log =3Dinternal log bsize=3D4096 blocks=3D853, version=3D2 =3D sectsz=3D512 sunit=3D0 blks, lazy-coun= t=3D1 realtime =3Dnone extsz=3D4096 blocks=3D0, rtextents=3D0 $ xfs_db 50M-image -c "sb 0" -c "print" |grep quot uquotino =3D 0 gquotino =3D 0 pquotino =3D 0 $ sudo mount 50M-image /media/floppy/ -o grpquota $ sudo umount /media/floppy/ $ xfs_db 50M-image -c "sb 0" -c "print" |grep quot uquotino =3D null gquotino =3D 131 pquotino =3D 0 =2D-=20 Arkadiusz Mi=C5=9Bkiewicz, arekm / maven.pl From arekm@maven.pl Fri Jul 11 14:34:22 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=T_DKIM_INVALID autolearn=ham version=3.3.1 X-Original-To: xfs@oss.sgi.com Delivered-To: xfs@oss.sgi.com Received: from relay.sgi.com (relay2.corp.sgi.com [137.38.102.29]) by oss.sgi.com (Postfix) with ESMTP id 84DF97F47 for ; Fri, 11 Jul 2014 14:34:22 -0500 (CDT) Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by relay2.corp.sgi.com (Postfix) with ESMTP id 4EAD2304039 for ; Fri, 11 Jul 2014 12:34:19 -0700 (PDT) X-ASG-Debug-ID: 1405107255-04cbb0421b42650001-NocioJ Received: from mail-we0-f176.google.com (mail-we0-f176.google.com [74.125.82.176]) by cuda.sgi.com with ESMTP id a0Y7KKfk10drGJuN (version=TLSv1 cipher=RC4-SHA bits=128 verify=NO) for ; Fri, 11 Jul 2014 12:34:16 -0700 (PDT) X-Barracuda-Envelope-From: arekm@maven.pl X-Barracuda-Apparent-Source-IP: 74.125.82.176 Received: by mail-we0-f176.google.com with SMTP id u56so1531411wes.21 for ; Fri, 11 Jul 2014 12:34:11 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=maven.pl; s=maven; h=from:to:cc:subject:date:message-id:mime-version:content-type :content-transfer-encoding; bh=Y/qrXrsvD590C+OWSmVy4t6dgIgtZT1Wrb0LJ10n4UY=; b=YT4PYFGJJ1Fqtl5owmRGzs+7dtgrkXoJwvYLYUKtVEUhk+0bViDBfTApfZxb1LqgZS 8+ROaDBddzZaLYVSfwpoBmDg3wVOtQykut58kgDhAlF0aDoXboZA9m2SRAO7eIFSpM9T VxCZsPqHorEuGbSb9dkbWJWr6aSFLOIL14i3c= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:from:to:cc:subject:date:message-id:mime-version :content-type:content-transfer-encoding; bh=Y/qrXrsvD590C+OWSmVy4t6dgIgtZT1Wrb0LJ10n4UY=; b=JBqR4NrKNDP2labLKM5ie9SPllMjrm8Lp3X78uM0zkrldMs17h5sXakzETxQpqxgw4 SttgGrvSEx89iqQM4cA8xCIAadVZ3QPI1fsNzQla9rwLyeagGpHqXe4DQaSwRDDkvK/N EHLh/witpJfFozKPSt9rr1TtsDvmm/3jnJyMJb+V0esVR5o4xOMubxnaRRYuenSYta5p NrX3gnjxciG4xHOlCLeGS5J/pGg0rgutmXjiVIQk/bIB9gDJK6stbAUEVyr1wTUZJtDn /FibBoRMDgHMBwYzn0Ok0xkxgS1hOOVSa6JnvMypOC7D2hOmD1Iwa+KOevibt1HNVUCK ClCQ== X-Gm-Message-State: ALoCoQlrdrWpq7hv28xtc1ARFZf7Jz4SYflpOXnx+jHSEmGWmD9wkS1O7iFSKYuXYIDQYLjsbesb X-Received: by 10.180.105.68 with SMTP id gk4mr7421429wib.24.1405107248143; Fri, 11 Jul 2014 12:34:08 -0700 (PDT) Received: from tarm.maven.pl (89-65-199-25.dynamic.chello.pl. [89.65.199.25]) by mx.google.com with ESMTPSA id v17sm6986156wjr.33.2014.07.11.12.34.07 for (version=TLSv1.2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Fri, 11 Jul 2014 12:34:07 -0700 (PDT) From: =?UTF-8?q?Arkadiusz=20Mi=C5=9Bkiewicz?= To: xfs@oss.sgi.com Cc: =?UTF-8?q?Arkadiusz=20Mi=C5=9Bkiewicz?= Subject: [PATCH] Catch under/overflow cases in cvtnum() and cvttime(). Date: Fri, 11 Jul 2014 21:34:04 +0200 X-ASG-Orig-Subj: [PATCH] Catch under/overflow cases in cvtnum() and cvttime(). Message-Id: <1405107244-14234-1-git-send-email-arekm@maven.pl> X-Mailer: git-send-email 2.0.1 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Barracuda-Connect: mail-we0-f176.google.com[74.125.82.176] X-Barracuda-Start-Time: 1405107256 X-Barracuda-Encrypted: RC4-SHA X-Barracuda-URL: http://192.48.176.25:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 X-Barracuda-Spam-Score: 0.00 X-Barracuda-Spam-Status: No, SCORE=0.00 using per-user scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.7 tests=DKIM_SIGNED, DKIM_VERIFIED X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.7438 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- -0.00 DKIM_VERIFIED Domain Keys Identified Mail: signature passes verification 0.00 DKIM_SIGNED Domain Keys Identified Mail: message has a signature cvtnum() and cvttime() silently ignore overflows. This leads to error conditions not being catched. Example: $ xfs_quota -x -c 'limit -u bsoft=987654321098765432199 \ bhard=987654321098765432199 999' / $ Fixed version: $ xfs_quota -x -c 'limit -u bsoft=987654321098765432199 \ bhard=987654321098765432199 999' / xfs_quota: Error: could not parse size 987654321098765432199. xfs_quota: unrecognised argument bsoft=987654321098765432199 Signed-off-by: Arkadiusz MiÅ›kiewicz --- libxcmd/input.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/libxcmd/input.c b/libxcmd/input.c index c06b5b8..397a124 100644 --- a/libxcmd/input.c +++ b/libxcmd/input.c @@ -154,6 +154,8 @@ cvtnum( int c; i = strtoll(s, &sp, 0); + if ((i == LLONG_MIN || i == LLONG_MAX) && errno == ERANGE) + return -1LL; if (i == 0 && sp == s) return -1LL; if (*sp == '\0') @@ -238,6 +240,8 @@ cvttime( char *sp; i = strtoul(s, &sp, 0); + if (i == ULONG_MAX && errno == ERANGE) + return 0; if (i == 0 && sp == s) return 0; if (*sp == '\0') -- 2.0.0 From david@fromorbit.com Fri Jul 11 16:57:24 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: xfs@oss.sgi.com Delivered-To: xfs@oss.sgi.com Received: from relay.sgi.com (relay2.corp.sgi.com [137.38.102.29]) by oss.sgi.com (Postfix) with ESMTP id D7FC57F47 for ; Fri, 11 Jul 2014 16:57:24 -0500 (CDT) Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by relay2.corp.sgi.com (Postfix) with ESMTP id A63D5304039 for ; Fri, 11 Jul 2014 14:57:24 -0700 (PDT) X-ASG-Debug-ID: 1405115841-04cbb0421a48500001-NocioJ Received: from ipmail05.adl6.internode.on.net (ipmail05.adl6.internode.on.net [150.101.137.143]) by cuda.sgi.com with ESMTP id zzxYZbcAQS0BtEOA for ; Fri, 11 Jul 2014 14:57:22 -0700 (PDT) X-Barracuda-Envelope-From: david@fromorbit.com X-Barracuda-Apparent-Source-IP: 150.101.137.143 X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: AiwJAH1dwFN5LG3lPGdsb2JhbABZgw6DTKlmAQEBAQEBBpZJhWUBgQoXBAEBAQE4NYQDAQEFOhwjEAgDDgcDCSUPBSUDBxoTiEHHBRcYhWOJTgeEQwWbBJdzKw Received: from ppp121-44-109-229.lns20.syd6.internode.on.net (HELO dastard) ([121.44.109.229]) by ipmail05.adl6.internode.on.net with ESMTP; 12 Jul 2014 07:27:20 +0930 Received: from dave by dastard with local (Exim 4.80) (envelope-from ) id 1X5ioh-0000Ge-OU; Sat, 12 Jul 2014 07:57:19 +1000 Date: Sat, 12 Jul 2014 07:57:19 +1000 From: Dave Chinner To: Brian Foster Cc: xfs@oss.sgi.com Subject: Re: [PATCH 2/3] xfs: refine the allocation stack switch Message-ID: <20140711215719.GQ4453@dastard> X-ASG-Orig-Subj: Re: [PATCH 2/3] xfs: refine the allocation stack switch References: <1405034779-2028-1-git-send-email-david@fromorbit.com> <1405034779-2028-3-git-send-email-david@fromorbit.com> <20140711123352.GB3077@laptop.bfoster> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20140711123352.GB3077@laptop.bfoster> User-Agent: Mutt/1.5.21 (2010-09-15) X-Barracuda-Connect: ipmail05.adl6.internode.on.net[150.101.137.143] X-Barracuda-Start-Time: 1405115841 X-Barracuda-URL: http://192.48.176.25:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 X-Barracuda-Spam-Score: 0.00 X-Barracuda-Spam-Status: No, SCORE=0.00 using per-user scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.7 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.7442 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- On Fri, Jul 11, 2014 at 08:33:53AM -0400, Brian Foster wrote: > On Fri, Jul 11, 2014 at 09:26:18AM +1000, Dave Chinner wrote: > > From: Dave Chinner > > > ... > > > > Signed-off-by: Dave Chinner > > --- > > fs/xfs/xfs_bmap.c | 4 +-- > > fs/xfs/xfs_bmap_util.c | 43 -------------------------- > > fs/xfs/xfs_bmap_util.h | 15 +++++---- > > fs/xfs/xfs_btree.c | 84 ++++++++++++++++++++++++++++++++++++++++++++++++-- > > 4 files changed, 91 insertions(+), 55 deletions(-) > > > ... > > diff --git a/fs/xfs/xfs_bmap_util.h b/fs/xfs/xfs_bmap_util.h > > index 935ed2b..91df8e9 100644 > > --- a/fs/xfs/xfs_bmap_util.h > > +++ b/fs/xfs/xfs_bmap_util.h > > @@ -50,12 +50,13 @@ struct xfs_bmalloca { > > xfs_extlen_t total; /* total blocks needed for xaction */ > > xfs_extlen_t minlen; /* minimum allocation size (blocks) */ > > xfs_extlen_t minleft; /* amount must be left after alloc */ > > - char eof; /* set if allocating past last extent */ > > - char wasdel; /* replacing a delayed allocation */ > > - char userdata;/* set if is user data */ > > - char aeof; /* allocated space at eof */ > > - char conv; /* overwriting unwritten extents */ > > - char stack_switch; > > + bool eof; /* set if allocating past last extent */ > > + bool wasdel; /* replacing a delayed allocation */ > > + bool userdata;/* set if is user data */ > > + bool aeof; /* allocated space at eof */ > > + bool conv; /* overwriting unwritten extents */ > > + bool stack_switch; > > + bool kswapd; /* work being done for kswapd */ > > Neither stack_switch nor kswapd are used any longer. Removal of > stack_switch means that the XFS_BMAPI_STACK_SWITCH flag can go away as > well. Yup, I'll fix that. > > -STATIC int /* error */ > > -xfs_btree_split( > > +int /* error */ > > +__xfs_btree_split( > > Looks like this can remain static. The rest looks Ok to me, but I'll run > some tests too. I'll fix that too. Cheers, Dave. -- Dave Chinner david@fromorbit.com From david@fromorbit.com Fri Jul 11 17:00:53 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: xfs@oss.sgi.com Delivered-To: xfs@oss.sgi.com Received: from relay.sgi.com (relay1.corp.sgi.com [137.38.102.111]) by oss.sgi.com (Postfix) with ESMTP id 8547C7F47 for ; Fri, 11 Jul 2014 17:00:53 -0500 (CDT) Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by relay1.corp.sgi.com (Postfix) with ESMTP id 6E3778F8068 for ; Fri, 11 Jul 2014 15:00:53 -0700 (PDT) X-ASG-Debug-ID: 1405116050-04cbb0421c486e0001-NocioJ Received: from ipmail05.adl6.internode.on.net (ipmail05.adl6.internode.on.net [150.101.137.143]) by cuda.sgi.com with ESMTP id 2aa4upFIuoxmj1Ww for ; Fri, 11 Jul 2014 15:00:51 -0700 (PDT) X-Barracuda-Envelope-From: david@fromorbit.com X-Barracuda-Apparent-Source-IP: 150.101.137.143 X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: AiwJAH1dwFN5LG3lPGdsb2JhbABZgw6DTKlmAQEBAQEBBpZJhWUBgQoXBAEBAQE4NYQDAQEEAScTDQ8jEAgDDgcDCSUPBSUDBxoTiDoHszqTSxcYhWOJAU0HhEMFmwSXcyuBMg Received: from ppp121-44-109-229.lns20.syd6.internode.on.net (HELO dastard) ([121.44.109.229]) by ipmail05.adl6.internode.on.net with ESMTP; 12 Jul 2014 07:30:49 +0930 Received: from dave by dastard with local (Exim 4.80) (envelope-from ) id 1X5is5-0000IB-4l; Sat, 12 Jul 2014 08:00:49 +1000 Date: Sat, 12 Jul 2014 08:00:49 +1000 From: Dave Chinner To: Brian Foster Cc: xfs@oss.sgi.com Subject: Re: [PATCH 3/3] xfs: null unused quota inodes when quota is on Message-ID: <20140711220049.GR4453@dastard> X-ASG-Orig-Subj: Re: [PATCH 3/3] xfs: null unused quota inodes when quota is on References: <1405034779-2028-1-git-send-email-david@fromorbit.com> <1405034779-2028-4-git-send-email-david@fromorbit.com> <20140711131514.GA3593@laptop.bfoster> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20140711131514.GA3593@laptop.bfoster> User-Agent: Mutt/1.5.21 (2010-09-15) X-Barracuda-Connect: ipmail05.adl6.internode.on.net[150.101.137.143] X-Barracuda-Start-Time: 1405116050 X-Barracuda-URL: http://192.48.176.25:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 X-Barracuda-Spam-Score: 0.00 X-Barracuda-Spam-Status: No, SCORE=0.00 using per-user scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.7 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.7442 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- On Fri, Jul 11, 2014 at 09:15:15AM -0400, Brian Foster wrote: > On Fri, Jul 11, 2014 at 09:26:19AM +1000, Dave Chinner wrote: > > From: Dave Chinner > > > > When quota is on, it is expected that unused quota inodes have a > > value of NULLFSINO. The changes to support a separate project quota > > in 3.12 broken this rule for non-project quota inode enabled > > filesystem, as the code now refuses to write the group quota inode > > if neither group or project quotas are enabled. This regression was > > introduced by commit d892d58 ("xfs: Start using pquotaino from the > > superblock"). > > > > In this case, we should be writing NULLFSINO rather than nothing to > > ensure that we leave the group quota inode in a valid state while > > quotas are enabled. > > > > Failure to do so doesn't cause a current kernel to break - the > > separate project quota inodes introduced translation code to always > > treat a zero inode as NULLFSINO. This was introduced by commit > > 0102629 ("xfs: Initialize all quota inodes to be NULLFSINO") with is > > also in 3.12 but older kernels do not do this and hence taking a > > filesystem back to an older kernel can result in quotas failing > > initialisation at mount time. When that happens, we see this in > > dmesg: > > > > [ 1649.215390] XFS (sdb): Mounting Filesystem > > [ 1649.316894] XFS (sdb): Failed to initialize disk quotas. > > [ 1649.316902] XFS (sdb): Ending clean mount > > > > By ensuring that we write NULLFSINO to quota inodes that aren't > > active, we avoid this problem. > > > > Signed-off-by: Dave Chinner > > --- > > fs/xfs/xfs_sb.c | 16 ++++++++++++---- > > 1 file changed, 12 insertions(+), 4 deletions(-) > > > > diff --git a/fs/xfs/xfs_sb.c b/fs/xfs/xfs_sb.c > > index c3453b1..9a58699 100644 > > --- a/fs/xfs/xfs_sb.c > > +++ b/fs/xfs/xfs_sb.c > > @@ -483,10 +483,16 @@ xfs_sb_quota_to_disk( > > } > > > > /* > > - * GQUOTINO and PQUOTINO cannot be used together in versions > > - * of superblock that do not have pquotino. from->sb_flags > > - * tells us which quota is active and should be copied to > > - * disk. > > + * GQUOTINO and PQUOTINO cannot be used together in versions of > > + * superblock that do not have pquotino. from->sb_flags tells us which > > + * quota is active and should be copied to disk. If neither are active, > > + * make sure we write NULLFSINO to the sb_gquotino field as a quota > > + * inode value of "0" is invalid when the XFS_SB_VERSION_QUOTA feature > > + * bit is set. > > + * > > + * Note that we don't need to handle the sb_uquotino or sb_pquotino here > > + * as they do not require any translation. Hence the main sb field loop > > + * will write them appropriately from the in-core superblock. > > */ > > sb_uquotino does not require any translation, but sb_pquotino simply > doesn't exist on older sb's, right? Is that what you mean to say here? > E.g., we clear XFS_SB_PQUOTINO from fields below, so the field loop > isn't going to write it (and I take that's the right thing to do). Correct. > > if ((*fields & XFS_SB_GQUOTINO) && > > (from->sb_qflags & XFS_GQUOTA_ACCT)) > > @@ -494,6 +500,8 @@ xfs_sb_quota_to_disk( > > else if ((*fields & XFS_SB_PQUOTINO) && > > (from->sb_qflags & XFS_PQUOTA_ACCT)) > > to->sb_gquotino = cpu_to_be64(from->sb_pquotino); > > + else > > + to->sb_gquotino = cpu_to_be64(NULLFSINO); > > > > We update the field manually and clear the flag bit so the loop doesn't > handle it. Seems Ok, despite my minor confusion over the above comment: Yeah, it's a bit messy. And I'm really thinking that given how rarely we change the superblock, we should just convert it to the same "convert everything" mechanism we use for all the other on-disk formatting functions. i.e. get rid of all the bitfield crap.... Cheers, Dave. -- Dave Chinner david@fromorbit.com From sandeen@redhat.com Fri Jul 11 18:02:07 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: xfs@oss.sgi.com Delivered-To: xfs@oss.sgi.com Received: from relay.sgi.com (relay2.corp.sgi.com [137.38.102.29]) by oss.sgi.com (Postfix) with ESMTP id 7EDD67F47 for ; Fri, 11 Jul 2014 18:02:07 -0500 (CDT) Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by relay2.corp.sgi.com (Postfix) with ESMTP id 8BF92304039 for ; Fri, 11 Jul 2014 16:02:04 -0700 (PDT) X-ASG-Debug-ID: 1405119722-04cbb0421c4a830001-NocioJ Received: from mx1.redhat.com (mx1.redhat.com [209.132.183.28]) by cuda.sgi.com with ESMTP id 7VQhrrg3N4TGRJNF (version=TLSv1 cipher=AES256-SHA bits=256 verify=NO) for ; Fri, 11 Jul 2014 16:02:03 -0700 (PDT) X-Barracuda-Envelope-From: sandeen@redhat.com X-Barracuda-Apparent-Source-IP: 209.132.183.28 X-ASG-Whitelist: Client Received: from int-mx11.intmail.prod.int.phx2.redhat.com (int-mx11.intmail.prod.int.phx2.redhat.com [10.5.11.24]) by mx1.redhat.com (8.14.4/8.14.4) with ESMTP id s6BN22ac030216 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK) for ; Fri, 11 Jul 2014 19:02:02 -0400 Received: from liberator.sandeen.net (ovpn01.gateway.prod.ext.phx2.redhat.com [10.5.9.1]) by int-mx11.intmail.prod.int.phx2.redhat.com (8.14.4/8.14.4) with ESMTP id s6BN20GX026958 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES128-SHA bits=128 verify=NO) for ; Fri, 11 Jul 2014 19:02:01 -0400 Message-ID: <53C06CE9.9000209@redhat.com> Date: Fri, 11 Jul 2014 18:02:01 -0500 From: Eric Sandeen MIME-Version: 1.0 To: xfs-oss Subject: [PATCH] xfs_repair: copy, don't clear, stripe geometry in backup SB X-Enigmail-Version: 1.6 X-ASG-Orig-Subj: [PATCH] xfs_repair: copy, don't clear, stripe geometry in backup SB Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit X-Scanned-By: MIMEDefang 2.68 on 10.5.11.24 X-Barracuda-Connect: mx1.redhat.com[209.132.183.28] X-Barracuda-Start-Time: 1405119723 X-Barracuda-Encrypted: AES256-SHA X-Barracuda-URL: http://192.48.176.25:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 Today, if we have a filesystem with stripe geometry and a damaged primary superblock, we will zero out stripe geometry if we have copied the backup. I'm guessing this might be because changing geometry with mount options only updates the primary, so backups aren't guaranteed to be current or correct. Unfortunately, that leaves us with sb 0 w/ no geom, and backups *with* geom, so the next repair finds the mismatch, and complains. (In other words, the 2nd repair does not come up clean.)_ And ... the second repair copies the backup stripe geometry back into the primary! Rather than clearing stripe geometry in this case, just leave it at what was found in the backup super, and inform the user that this was done. This leaves a consistent filesystem, and gives the user a heads-up to double-check the result. This can all be demonstrated and tested by running xfs/030 with geometry set in MKFS_OPTIONS. (To really make the test pass, we need to filter the warning out of repair output.) Signed-off-by: Eric Sandeen --- diff --git a/repair/globals.h b/repair/globals.h index f6e0a22..6207ca1 100644 --- a/repair/globals.h +++ b/repair/globals.h @@ -124,7 +124,7 @@ EXTERN int lazy_count; /* What to set if to if converting */ EXTERN int primary_sb_modified; EXTERN int bad_ino_btree; -EXTERN int clear_sunit; +EXTERN int copied_sunit; EXTERN int fs_is_dirty; /* for hunting down the root inode */ diff --git a/repair/sb.c b/repair/sb.c index bc421cc..ad27756 100644 --- a/repair/sb.c +++ b/repair/sb.c @@ -151,7 +151,7 @@ find_secondary_sb(xfs_sb_t *rsb) */ memmove(rsb, &bufsb, sizeof(xfs_sb_t)); rsb->sb_inprogress = 0; - clear_sunit = 1; + copied_sunit = 1; if (verify_set_primary_sb(rsb, 0, &dirty) == XR_OK) { do_warn( diff --git a/repair/xfs_repair.c b/repair/xfs_repair.c index 9eb2fa4..834697a 100644 --- a/repair/xfs_repair.c +++ b/repair/xfs_repair.c @@ -193,7 +193,7 @@ process_args(int argc, char **argv) delete_attr_ok = 1; force_geo = 0; assume_xfs = 0; - clear_sunit = 0; + copied_sunit = 0; sb_inoalignmt = 0; sb_unit = 0; sb_width = 0; @@ -898,13 +898,11 @@ _("Warning: project quota information would be cleared.\n" dsb->sb_qflags &= cpu_to_be16(~XFS_ALL_QUOTA_CHKD); } - if (clear_sunit) { + if (copied_sunit) { do_warn( -_("Note - stripe unit (%d) and width (%d) fields have been reset.\n" - "Please set with mount -o sunit=,swidth=\n"), +_("Note - stripe unit (%d) and width (%d) were copied from a backup superblock.\n" + "Please reset with mount -o sunit=,swidth= if necessary\n"), be32_to_cpu(dsb->sb_unit), be32_to_cpu(dsb->sb_width)); - dsb->sb_unit = 0; - dsb->sb_width = 0; } libxfs_writebuf(sbp, 0); From sandeen@sandeen.net Fri Jul 11 18:15:02 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: xfs@oss.sgi.com Delivered-To: xfs@oss.sgi.com Received: from relay.sgi.com (relay2.corp.sgi.com [137.38.102.29]) by oss.sgi.com (Postfix) with ESMTP id 5F5FB7F47 for ; Fri, 11 Jul 2014 18:15:02 -0500 (CDT) Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by relay2.corp.sgi.com (Postfix) with ESMTP id 5EBB4304039 for ; Fri, 11 Jul 2014 16:15:02 -0700 (PDT) X-ASG-Debug-ID: 1405120499-04cbb0421c4adf0001-NocioJ Received: from sandeen.net (sandeen.net [63.231.237.45]) by cuda.sgi.com with ESMTP id lQvdbJ9Fa4HdDb8d for ; Fri, 11 Jul 2014 16:14:59 -0700 (PDT) X-Barracuda-Envelope-From: sandeen@sandeen.net X-Barracuda-Apparent-Source-IP: 63.231.237.45 Received: from liberator.sandeen.net (liberator.sandeen.net [10.0.0.4]) (using TLSv1 with cipher DHE-RSA-AES128-SHA (128/128 bits)) (No client certificate requested) by sandeen.net (Postfix) with ESMTPSA id 85A9963C3B17; Fri, 11 Jul 2014 18:14:59 -0500 (CDT) Message-ID: <53C06FF3.2090600@sandeen.net> Date: Fri, 11 Jul 2014 18:14:59 -0500 From: Eric Sandeen MIME-Version: 1.0 To: =?UTF-8?B?QXJrYWRpdXN6IE1pxZtraWV3aWN6?= , xfs@oss.sgi.com Subject: Re: [PATCH] Catch under/overflow cases in cvtnum() and cvttime(). References: <1405107244-14234-1-git-send-email-arekm@maven.pl> X-ASG-Orig-Subj: Re: [PATCH] Catch under/overflow cases in cvtnum() and cvttime(). In-Reply-To: <1405107244-14234-1-git-send-email-arekm@maven.pl> X-Enigmail-Version: 1.6 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Barracuda-Connect: sandeen.net[63.231.237.45] X-Barracuda-Start-Time: 1405120499 X-Barracuda-URL: http://192.48.176.25:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 X-Barracuda-Spam-Score: 0.00 X-Barracuda-Spam-Status: No, SCORE=0.00 using per-user scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.7 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.7443 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- On 7/11/14, 2:34 PM, Arkadiusz MiÅ›kiewicz wrote: > cvtnum() and cvttime() silently ignore overflows. This leads to error > conditions not being catched. Example: > > $ xfs_quota -x -c 'limit -u bsoft=987654321098765432199 \ > bhard=987654321098765432199 999' / > $ > > Fixed version: > $ xfs_quota -x -c 'limit -u bsoft=987654321098765432199 \ > bhard=987654321098765432199 999' / > xfs_quota: Error: could not parse size 987654321098765432199. > xfs_quota: unrecognised argument bsoft=987654321098765432199 So, strtol(3) suggests setting errno to 0 before the call: NOTES Since strtol() can legitimately return 0, LONG_MAX, or LONG_MIN (LLONG_MAX or LLONG_MIN for strtoll()) on both success and failure, the calling program should set errno to 0 before the call, and then deter- mine if an error occurred by checking whether errno has a non-zero value after the call. Ditto for strtoul(). I guess that is just to ensure that there's not a leftover errno when we make the call? Worth doing, maybe? Thanks, -Eric > Signed-off-by: Arkadiusz MiÅ›kiewicz > --- > libxcmd/input.c | 4 ++++ > 1 file changed, 4 insertions(+) > > diff --git a/libxcmd/input.c b/libxcmd/input.c > index c06b5b8..397a124 100644 > --- a/libxcmd/input.c > +++ b/libxcmd/input.c > @@ -154,6 +154,8 @@ cvtnum( > int c; > > i = strtoll(s, &sp, 0); > + if ((i == LLONG_MIN || i == LLONG_MAX) && errno == ERANGE) > + return -1LL; > if (i == 0 && sp == s) > return -1LL; > if (*sp == '\0') > @@ -238,6 +240,8 @@ cvttime( > char *sp; > > i = strtoul(s, &sp, 0); > + if (i == ULONG_MAX && errno == ERANGE) > + return 0; > if (i == 0 && sp == s) > return 0; > if (*sp == '\0') > From robin.listas@gmail.com Fri Jul 11 19:31:04 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=FREEMAIL_FROM,T_DKIM_INVALID autolearn=ham version=3.3.1 X-Original-To: xfs@oss.sgi.com Delivered-To: xfs@oss.sgi.com Received: from relay.sgi.com (relay3.corp.sgi.com [198.149.34.15]) by oss.sgi.com (Postfix) with ESMTP id 1DC037F47 for ; Fri, 11 Jul 2014 19:31:04 -0500 (CDT) Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by relay3.corp.sgi.com (Postfix) with ESMTP id 9D9BBAC001 for ; Fri, 11 Jul 2014 17:31:00 -0700 (PDT) X-ASG-Debug-ID: 1405125057-04cb6c6ad344940001-NocioJ Received: from mail-wi0-f178.google.com (mail-wi0-f178.google.com [209.85.212.178]) by cuda.sgi.com with ESMTP id rmEu0IQ5XZw89raD (version=TLSv1 cipher=RC4-SHA bits=128 verify=NO) for ; Fri, 11 Jul 2014 17:30:58 -0700 (PDT) X-Barracuda-Envelope-From: robin.listas@gmail.com X-Barracuda-Apparent-Source-IP: 209.85.212.178 X-Barracuda-IPDD: Level1 [gmail.com/209.85.212.178] Received: by mail-wi0-f178.google.com with SMTP id hi2so36019wib.11 for ; Fri, 11 Jul 2014 17:30:57 -0700 (PDT) X-Barracuda-IPDD: Level1 [gmail.com/209.85.212.178] X-Barracuda-IPDD: Level1 [gmail.com/209.85.212.178] DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=sender:date:from:to:subject:in-reply-to:message-id:references :user-agent:mime-version:content-type; bh=kCdEDtrXFbL6dIAzFnFwdqA6OmP2bNZznrDA1iyR94s=; b=lzulqDGtOWeosaG/TC63MrnCicfNW0ryZSSbFdEa8O3kdEEcLzgAS4O77Nv6X6xF7b snZyAxc0YmBzWCi8B8my4YCzzQvCK1qcPOA3yG/XF6+QO3x+NZ+ls/e0TP5RnCurSXWD YjjCdNjOIwJLg1hCWl5ATjjiG0WlGBdzT4bZG33ozM1etVlWxuz1WDN288SjwQR2+ozw kXZ7jGCJRGYFZtBVhkZiyL7Mz1BYK2lrWQr8g98e3y7CxvXhnyd71n7FOYrAUN0aZT/O /G6oRhoMTwXp0FzTH9fZesVxyP23bmrshrItP2qYq4krYMyxuozj8JOK2I9HevQ7RTz3 YDIA== X-Received: by 10.180.93.8 with SMTP id cq8mr4826674wib.17.1405125057584; Fri, 11 Jul 2014 17:30:57 -0700 (PDT) Received: from Telcontar.valinor (90.Red-79-150-228.dynamicIP.rima-tde.net. [79.150.228.90]) by mx.google.com with ESMTPSA id jy8sm8342129wjc.7.2014.07.11.17.30.55 for (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Fri, 11 Jul 2014 17:30:56 -0700 (PDT) Sender: Carlos Robinson Received: from localhost (localhost [127.0.0.1]) by Telcontar.valinor (Postfix) with ESMTP id 6178460685 for ; Sat, 12 Jul 2014 02:30:55 +0200 (CEST) X-Virus-Scanned: amavisd-new at valinor Received: from Telcontar.valinor ([127.0.0.1]) by localhost (Telcontar.valinor [127.0.0.1]) (amavisd-new, port 10024) with LMTP id buV_S-MEiHMK for ; Sat, 12 Jul 2014 02:30:54 +0200 (CEST) Received: from localhost (localhost [127.0.0.1]) by Telcontar.valinor (Postfix) with ESMTP id 9EDFC60679 for ; Sat, 12 Jul 2014 02:30:53 +0200 (CEST) Date: Sat, 12 Jul 2014 02:30:45 +0200 (CEST) From: "Carlos E. R." X-X-Sender: cer@Telcontar.valinor To: XFS mailing list Subject: Re: Got "Internal error XFS_WANT_CORRUPTED_GOTO". Filesystem needs reformatting to correct issue. In-Reply-To: <20140705122833.GA3573@bfoster.bfoster> X-ASG-Orig-Subj: Re: Got "Internal error XFS_WANT_CORRUPTED_GOTO". Filesystem needs reformatting to correct issue. Message-ID: References: <20140702120441.GA51757@bfoster.bfoster> <20140703173916.GB3452@laptop.bfoster> <20140705122833.GA3573@bfoster.bfoster> User-Agent: Alpine 2.11 (LSU 23 2013-08-11) MIME-Version: 1.0 Content-Type: TEXT/PLAIN; format=flowed; charset=US-ASCII X-Barracuda-Connect: mail-wi0-f178.google.com[209.85.212.178] X-Barracuda-Start-Time: 1405125058 X-Barracuda-Encrypted: RC4-SHA X-Barracuda-URL: http://192.48.176.15:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 X-Barracuda-Spam-Score: 0.00 X-Barracuda-Spam-Status: No, SCORE=0.00 using per-user scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.7 tests=DKIM_SIGNED, DKIM_VERIFIED X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.7444 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- -0.00 DKIM_VERIFIED Domain Keys Identified Mail: signature passes verification 0.00 DKIM_SIGNED Domain Keys Identified Mail: message has a signature -----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 On Saturday, 2014-07-05 at 08:28 -0400, Brian Foster wrote: > On Fri, Jul 04, 2014 at 11:32:26PM +0200, Carlos E. R. wrote: >> If I don't do that backup-format-restore, I get issues soon, and it crashes >> within a day - I got after booting (the first event): >> > > I echo Dave's previous question... within a day of doing what? Just > using the system or doing more hibernation cycles? It is in the long post with the logs I posted. The first time it crashed, I rebooted, got some errors I probably did not see, managed to mount the device, and I used the machine normally, doing several hibernation cycles. On one of these, it crashed, within the day. As explained in this part of the previous post: >> 0.1> 2014-03-15 03:53:47 Telcontar kernel - - - [ 301.857523] XFS: Internal error XFS_WANT_CORRUPTED_RETURN at line 350 of file /home/abuild/rpmbuild/BUILD/kernel-desktop-3.11.10/linux-3.11/fs/xfs/xfs_all >> >> And some hours later: >> >> <0.1> 2014-03-15 22:20:34 Telcontar kernel - - - [20151.298345] XFS: Internal error XFS_WANT_CORRUPTED_GOTO at line 1602 of file /home/abuild/rpmbuild/BUILD/kernel-desktop-3.11.10/linux-3.11/fs/xfs/xfs_allo >> >> >> It was here that I decided to backup-format-restore instead. >>> That also means it's probably not be necessary to do a full backup, >>> reformat and restore sequence as part of your routine here. xfs_repair >>> should scour through all of the allocation metadata and yell if it finds >>> something like free blocks allocated to a file. >> >> No, if I don't backup-format-restore it happens again within a day. There is >> something lingering. Unless that was just chance... :-? >> >> It is true that during that day I hibernated several times more than needed >> to see if it happened again - and it did. >> > > This depends on what causes this to happen, not how frequent it happens. > Does it continue to happen along with hibernation, or do you start > seeing these kind of errors during normal use? Except the first time that this happened, the sequence is this: I use the machine for weeks, without event, booting once, then hibernating at least once per day. I finally reboot when I have to apply some system update, or something special. Till one day, this "thing" happens. It happens inmediately after coming out from hibernation, and puts the affected partition, always /home, in read only mode. When it happens, I reboot, repair partition manually if needed, then I back up the files, format it, and replace all the files from the backup just made, with xfsdump. Well, this last time, I used rsync instead. It has happened "only" four times: 2014-03-15 03:35:17 2014-03-15 22:20:34 2014-04-17 22:47:08 2014-06-29 12:32:18 > If the latter, that could suggest something broken on disk. That was my first thought, because it started hapening after replacing the hard disk, but also after a kernel update. But I have tested that disk several times, with smartctl and with the manufacturer test tool, and nothing came out. > If the > former, that could simply suggest the fs (perhaps on-disk) has made it > into some kind of state that makes this easier to reproduce, for > whatever reason. It could be timing, location of metadata, > fragmentation, or anything really for that matter, but it doesn't > necessarily mean corruption (even though it doesn't rule it out). > Perhaps the clean regeneration of everything by a from-scratch recovery > simply makes this more difficult to reproduce until the fs naturally > becomes more aged/fragmented, for example. > > This probably makes a pristine, pre-repair metadump of the reproducing > fs more interesting. I could try some of my previous tests against a > restore of that metadump. Well, I suggest that, unless you can find something on the metadata (I just sent you the link via email from google), we wait till the next event. I will at that time take an intact metadata photo. But this can take a month or two to happen again, if the pattern keeps. > I was somewhat thinking out loud originally discussing this topic. I was > suggesting to run this against a restored metadump, not the primary > dataset or a backup. > > The metadump creates an image of the metadata of the source fs in a file > (no data is copied). This metadump image can be restored at will via > 'xfs_mdrestore.' This allows restoring to a file, mounting the file > loopback, and performing experiments or investigation on the fs > generally as it existed when the shutdown was reproducible. Ah... I see. > So basically: > > - xfs_mdrestore > - mount /mnt > - rm -rf /mnt/* > > ... was what I was suggesting. can be recreated from the > metadump image afterwards to get back to square one. I see. Well, I tried this on a copy of the 'dd' image days ago, and nothing hapened. I guess the procedure above would be the same. >> I have an active bugzilla account at , I'm >> logged in there now. I haven't checked if I can create a bug, not been sure >> what parameters to use (product, component, whom to assign to). I think that >> would be the most appropriate place. >> >> Meanwhile, I have uploaded the file to my google drive account, so I can >> share it with anybody on request - ie, it is not public, I need to add a >> gmail address to the list of people that can read the file. >> >> Alternatively, I could just email the file to people asking for it, offlist, >> but not in a single email, in chunks limited to 1.5 MB per email. >> > > Either of the bugzilla or google drive options works Ok for me. It's here: Whoever wants to read it, has to tell me the address to add to it, access is not public. - -- Cheers, Carlos E. R. (from 13.1 x86_64 "Bottle" at Telcontar) -----BEGIN PGP SIGNATURE----- Version: GnuPG v2.0.22 (GNU/Linux) iEYEARECAAYFAlPAgb0ACgkQtTMYHG2NR9U/FQCgjtwuDC0HTSG3i7DrEV8+qZeT 6mUAn0FGf42SsU1WeRx/AAk4X2oqV4Bc =pASJ -----END PGP SIGNATURE----- From robin.listas@gmail.com Fri Jul 11 20:30:26 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=FREEMAIL_FROM,T_DKIM_INVALID autolearn=ham version=3.3.1 X-Original-To: xfs@oss.sgi.com Delivered-To: xfs@oss.sgi.com Received: from relay.sgi.com (relay1.corp.sgi.com [137.38.102.111]) by oss.sgi.com (Postfix) with ESMTP id 23FB87F53 for ; Fri, 11 Jul 2014 20:30:26 -0500 (CDT) Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by relay1.corp.sgi.com (Postfix) with ESMTP id 0F5B58F804C for ; Fri, 11 Jul 2014 18:30:22 -0700 (PDT) X-ASG-Debug-ID: 1405128620-04cbb0421b4e940001-NocioJ Received: from mail-wi0-f182.google.com (mail-wi0-f182.google.com [209.85.212.182]) by cuda.sgi.com with ESMTP id iGbpojgetDp1RyYQ (version=TLSv1 cipher=RC4-SHA bits=128 verify=NO) for ; Fri, 11 Jul 2014 18:30:21 -0700 (PDT) X-Barracuda-Envelope-From: robin.listas@gmail.com X-Barracuda-Apparent-Source-IP: 209.85.212.182 X-Barracuda-IPDD: Level1 [gmail.com/209.85.212.182] Received: by mail-wi0-f182.google.com with SMTP id d1so69979wiv.9 for ; Fri, 11 Jul 2014 18:30:20 -0700 (PDT) X-Barracuda-IPDD: Level1 [gmail.com/209.85.212.182] X-Barracuda-IPDD: Level1 [gmail.com/209.85.212.182] DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=sender:date:from:to:subject:in-reply-to:message-id:references :user-agent:mime-version:content-type; bh=zx+UaK7+mPOmczNMUrPwQT7QevdFqu3f9jxak/cZNQQ=; b=nXP9HWCpoPmkIuQ8mhfuX8RGkxm+g47Wyy/oeMbFzpTMJVUrH0EGNX7dK5sDnvUtgX IJCjv1KQahwSEwTMwrpgp9x+sK+/fn8Y2+XBBOa39eGwzWJoaas/hag0QtvL/VoKeQc5 0YfWijwx+4fxg7E+7mp6n00y0eRgYv/Kh7/ztvB98rsxcbi1uCM08FSHSi3tSD2O/es+ 8NccFUhRGee915qzl5+BLsD8vm10CiFy3UU2TGEAU7vZBHn2uPjqiOLVtJq6RmvcAIiV 538RdRaAMpPkdh/Zm34uv1fsxfc3qdMVVyHKo2uqcAU6LEDuZfue02DojSKcQw/K+xVB ET5A== X-Received: by 10.180.198.116 with SMTP id jb20mr9121044wic.59.1405128620115; Fri, 11 Jul 2014 18:30:20 -0700 (PDT) Received: from Telcontar.valinor (90.Red-79-150-228.dynamicIP.rima-tde.net. [79.150.228.90]) by mx.google.com with ESMTPSA id ev9sm964788wic.24.2014.07.11.18.30.18 for (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Fri, 11 Jul 2014 18:30:19 -0700 (PDT) Sender: Carlos Robinson Received: from localhost (localhost [127.0.0.1]) by Telcontar.valinor (Postfix) with ESMTP id 29EB560685 for ; Sat, 12 Jul 2014 03:30:18 +0200 (CEST) X-Virus-Scanned: amavisd-new at valinor Received: from Telcontar.valinor ([127.0.0.1]) by localhost (Telcontar.valinor [127.0.0.1]) (amavisd-new, port 10024) with LMTP id GqY636tFh2Sy for ; Sat, 12 Jul 2014 03:30:18 +0200 (CEST) Received: from localhost (localhost [127.0.0.1]) by Telcontar.valinor (Postfix) with ESMTP id E707C60679 for ; Sat, 12 Jul 2014 03:30:17 +0200 (CEST) Date: Sat, 12 Jul 2014 03:30:17 +0200 (CEST) From: "Carlos E. R." X-X-Sender: cer@Telcontar.valinor To: XFS mailing list Subject: Re: Got "Internal error XFS_WANT_CORRUPTED_GOTO". Filesystem needs reformatting to correct issue. In-Reply-To: X-ASG-Orig-Subj: Re: Got "Internal error XFS_WANT_CORRUPTED_GOTO". Filesystem needs reformatting to correct issue. Message-ID: References: <20140702120441.GA51757@bfoster.bfoster> <20140703173916.GB3452@laptop.bfoster> <20140705122833.GA3573@bfoster.bfoster> User-Agent: Alpine 2.11 (LSU 23 2013-08-11) MIME-Version: 1.0 Content-Type: TEXT/PLAIN; format=flowed; charset=US-ASCII X-Barracuda-Connect: mail-wi0-f182.google.com[209.85.212.182] X-Barracuda-Start-Time: 1405128620 X-Barracuda-Encrypted: RC4-SHA X-Barracuda-URL: http://192.48.176.25:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 X-Barracuda-Spam-Score: 0.00 X-Barracuda-Spam-Status: No, SCORE=0.00 using per-user scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.7 tests=DKIM_SIGNED, DKIM_VERIFIED X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.7446 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- -0.00 DKIM_VERIFIED Domain Keys Identified Mail: signature passes verification 0.00 DKIM_SIGNED Domain Keys Identified Mail: message has a signature -----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 On Saturday, 2014-07-12 at 02:30 +0200, Carlos E. R. wrote: > On Saturday, 2014-07-05 at 08:28 -0400, Brian Foster wrote: [xfs_metadump] > It's here: > > > > Whoever wants to read it, has to tell me the address to add to it, access > is not public. Wait. I just found out that I did something very wrong. That xfs_metadump file is very wrong, it is not look to be the correct one. The info on it says: Telcontar:/data/storage_d/old_backup # xfs_info tgtfile meta-data=/dev/sdf2 isize=256 agcount=4, agsize=122341568 blks = sectsz=512 attr=2, projid32bit=0 = crc=0 data = bsize=4096 blocks=489366272, imaxpct=5 = sunit=0 swidth=0 blks naming =version 2 bsize=4096 ascii-ci=0 ftype=0 log =internal bsize=4096 blocks=238948, version=2 = sectsz=512 sunit=0 blks, lazy-count=1 realtime =none extsz=4096 blocks=0, rtextents=0 while the currently mounted home says: elcontar:~ # mount | grep home /dev/sde5 on /home type xfs (rw,noatime,attr2,inode64,noquota) Telcontar:~ # xfs_info /dev/sde5 meta-data=/dev/sde5 isize=256 agcount=4, agsize=32000000 blks = sectsz=512 attr=2, projid32bit=1 = crc=0 data = bsize=4096 blocks=128000000, imaxpct=25 = sunit=0 swidth=0 blks naming =version 2 bsize=4096 ascii-ci=0 ftype=0 log =internal bsize=4096 blocks=62500, version=2 = sectsz=512 sunit=0 blks, lazy-count=1 realtime =none extsz=4096 blocks=0, rtextents=0 Telcontar:~ # mount | grep /home So, please wait till I verify things again. Tomorrow, it is 3 AM here. Sorry :-( Unless "xfs_info tgtfile" gives the information about the device where "tgtfile" is stored (/dev/sdf2), not on the image file itself :-? I'm very confused. - -- Cheers, Carlos E. R. (from 13.1 x86_64 "Bottle" at Telcontar) -----BEGIN PGP SIGNATURE----- Version: GnuPG v2.0.22 (GNU/Linux) iEYEARECAAYFAlPAj6kACgkQtTMYHG2NR9X+IwCeJtpsS6XJJ1xNeLPmb6PlXA8D C9IAn1hn1g/ty/41dG5h4ijQoXqs1N7G =Xtcq -----END PGP SIGNATURE----- From sandeen@redhat.com Fri Jul 11 20:32:41 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: xfs@oss.sgi.com Delivered-To: xfs@oss.sgi.com Received: from relay.sgi.com (relay2.corp.sgi.com [137.38.102.29]) by oss.sgi.com (Postfix) with ESMTP id 5F7DB7F3F for ; Fri, 11 Jul 2014 20:32:41 -0500 (CDT) Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by relay2.corp.sgi.com (Postfix) with ESMTP id 51090304039 for ; Fri, 11 Jul 2014 18:32:38 -0700 (PDT) X-ASG-Debug-ID: 1405128756-04cbb042194ea30001-NocioJ Received: from mx1.redhat.com (mx1.redhat.com [209.132.183.28]) by cuda.sgi.com with ESMTP id 9doWhDG1A79UujIx (version=TLSv1 cipher=AES256-SHA bits=256 verify=NO) for ; Fri, 11 Jul 2014 18:32:37 -0700 (PDT) X-Barracuda-Envelope-From: sandeen@redhat.com X-Barracuda-Apparent-Source-IP: 209.132.183.28 X-ASG-Whitelist: Client Received: from int-mx09.intmail.prod.int.phx2.redhat.com (int-mx09.intmail.prod.int.phx2.redhat.com [10.5.11.22]) by mx1.redhat.com (8.14.4/8.14.4) with ESMTP id s6C1WaE9004445 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK) for ; Fri, 11 Jul 2014 21:32:36 -0400 Received: from liberator.sandeen.net (ovpn01.gateway.prod.ext.phx2.redhat.com [10.5.9.1]) by int-mx09.intmail.prod.int.phx2.redhat.com (8.14.4/8.14.4) with ESMTP id s6C1WZtC012849 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES128-SHA bits=128 verify=NO) for ; Fri, 11 Jul 2014 21:32:36 -0400 Message-ID: <53C09034.3070203@redhat.com> Date: Fri, 11 Jul 2014 20:32:36 -0500 From: Eric Sandeen MIME-Version: 1.0 To: xfs-oss Subject: [PATCH] xfsprogs: libxcmd/paths: make all comparisons using realpath'd paths X-Enigmail-Version: 1.6 X-ASG-Orig-Subj: [PATCH] xfsprogs: libxcmd/paths: make all comparisons using realpath'd paths Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit X-Scanned-By: MIMEDefang 2.68 on 10.5.11.22 X-Barracuda-Connect: mx1.redhat.com[209.132.183.28] X-Barracuda-Start-Time: 1405128757 X-Barracuda-Encrypted: AES256-SHA X-Barracuda-URL: http://192.48.176.25:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 Both mountpoints and devices can be symlinks, so given a path to look for, and mountpoints/devices from the system, use realpath() on *everything* before making the comparison to see if our path is a match. So, with symlinks for mount points as well as for devices: # ls -l /dev/mapper/testvg-lvol0 lrwxrwxrwx. 1 root root 7 Jul 11 19:24 /dev/mapper/testvg-lvol0 -> ../dm-3 # ls -l /mnt/scratch2 lrwxrwxrwx. 1 root root 12 Jul 11 19:57 /mnt/scratch2 -> /mnt/scratch this should all work, and does now: # xfs_quota -xc "report -h" /mnt/scratch2 User quota on /mnt/scratch (/dev/mapper/testvg-lvol0) Blocks User ID Used Soft Hard Warn/Grace ---------- --------------------------------- root 0 0 0 00 [------] # xfs_quota -xc "report -h" /mnt/scratch User quota on /mnt/scratch (/dev/mapper/testvg-lvol0) Blocks User ID Used Soft Hard Warn/Grace ---------- --------------------------------- root 0 0 0 00 [------] # xfs_quota -xc "report -h" /dev/dm-3 User quota on /mnt/scratch (/dev/mapper/testvg-lvol0) Blocks User ID Used Soft Hard Warn/Grace ---------- --------------------------------- root 0 0 0 00 [------] # xfs_quota -xc "report -h" /dev/mapper/testvg-lvol0 User quota on /mnt/scratch (/dev/mapper/testvg-lvol0) Blocks User ID Used Soft Hard Warn/Grace ---------- --------------------------------- root 0 0 0 00 [------] The commit: 050a7f1 xfsprogs: handle symlinks etc in fs_table_initialise_mounts() tried to fix this earlier, but only worked one way; it compared the argument path in both given and realpath form to the paths in getmntent, but did not compare to the realpaths of the getmntent devices. If we reduce everything, everywhere, to a realpath(), we've got our best shot at finding the match. Signed-off-by: Eric Sandeen --- diff --git a/libxcmd/paths.c b/libxcmd/paths.c index 7b0e434..8da3968 100644 --- a/libxcmd/paths.c +++ b/libxcmd/paths.c @@ -269,6 +269,9 @@ out_nomem: /* * If *path is NULL, initialize the fs table with all xfs mount points in mtab * If *path is specified, search for that path in mtab + * + * Everything - path, devices, and mountpoints - are reduced to realpath() + * for comparison, but fs_table is populated with what comes from getmntent. */ static int fs_table_initialise_mounts( @@ -278,7 +281,7 @@ fs_table_initialise_mounts( FILE *mtp; char *fslog, *fsrt; int error, found; - char *rpath = NULL; + char *rpath = NULL, *rmnt_fsname = NULL, *rmnt_dir = NULL; error = found = 0; fslog = fsrt = NULL; @@ -300,11 +303,16 @@ fs_table_initialise_mounts( while ((mnt = getmntent(mtp)) != NULL) { if (strcmp(mnt->mnt_type, "xfs") != 0) continue; + free(rmnt_dir); + if ((rmnt_dir = realpath(mnt->mnt_dir, NULL)) == NULL) + continue; + free(rmnt_fsname); + if ((rmnt_fsname = realpath(mnt->mnt_fsname, NULL)) == NULL) + continue; + if (path && - ((strcmp(path, mnt->mnt_dir) != 0) && - (strcmp(path, mnt->mnt_fsname) != 0) && - (strcmp(rpath, mnt->mnt_dir) != 0) && - (strcmp(rpath, mnt->mnt_fsname) != 0))) + ((strcmp(rpath, rmnt_dir) != 0) && + (strcmp(rpath, rmnt_fsname) != 0))) continue; if (fs_extract_mount_options(mnt, &fslog, &fsrt)) continue; @@ -317,6 +325,8 @@ fs_table_initialise_mounts( } endmntent(mtp); free(rpath); + free(rmnt_dir); + free(rmnt_fsname); if (path && !found) error = ENXIO; @@ -330,6 +340,9 @@ fs_table_initialise_mounts( /* * If *path is NULL, initialize the fs table with all xfs mount points in mtab * If *path is specified, search for that path in mtab + * + * Everything - path, devices, and mountpoints - are reduced to realpath() + * for comparison, but fs_table is populated with what comes from getmntinfo. */ static int fs_table_initialise_mounts( @@ -337,7 +350,7 @@ fs_table_initialise_mounts( { struct statfs *stats; int i, count, error, found; - char *rpath = NULL; + char *rpath = NULL, *rmntfromname= NULL, *rmntonname= NULL; error = found = 0; if ((count = getmntinfo(&stats, 0)) < 0) { @@ -354,11 +367,16 @@ fs_table_initialise_mounts( for (i = 0; i < count; i++) { if (strcmp(stats[i].f_fstypename, "xfs") != 0) continue; + free(rmntfromname); + if ((rmntfromname = realpath(stats[i].f_mntfromname, NULL)) == NULL) + continue; + free(rmntonname); + if ((rmntfromname = realpath(stats[i].f_mntonname, NULL)) == NULL) + continue; + if (path && - ((strcmp(path, stats[i].f_mntonname) != 0) && - (strcmp(path, stats[i].f_mntfromname) != 0) && - (strcmp(rpath, stats[i].f_mntonname) != 0) && - (strcmp(rpath, stats[i].f_mntfromname) != 0))) + ((strcmp(rpath, rmntonname) != 0) && + (strcmp(rpath, rmntfromname) != 0))) continue; /* TODO: external log and realtime device? */ (void) fs_table_insert(stats[i].f_mntonname, 0, @@ -370,6 +388,8 @@ fs_table_initialise_mounts( } } free(rpath); + free(rmntfromname); + free(rmntonname); if (path && !found) error = ENXIO; diff --git a/quota/report.c b/quota/report.c index 70894a2..d486524 100644 --- a/quota/report.c +++ b/quota/report.c @@ -624,7 +624,7 @@ report_f( if (flags & ALL_MOUNTS_FLAG) report_any_type(fp, form, type, NULL, lower, upper, flags); - else if (fs_path->fs_flags & FS_MOUNT_POINT) + else if (fs_path && fs_path->fs_flags & FS_MOUNT_POINT) report_any_type(fp, form, type, fs_path->fs_dir, lower, upper, flags); } else while (argc > optind) { From sandeen@sandeen.net Fri Jul 11 20:34:26 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: xfs@oss.sgi.com Delivered-To: xfs@oss.sgi.com Received: from relay.sgi.com (relay1.corp.sgi.com [137.38.102.111]) by oss.sgi.com (Postfix) with ESMTP id E49647F58 for ; Fri, 11 Jul 2014 20:34:25 -0500 (CDT) Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by relay1.corp.sgi.com (Postfix) with ESMTP id CFAA88F8071 for ; Fri, 11 Jul 2014 18:34:25 -0700 (PDT) X-ASG-Debug-ID: 1405128864-04cb6c6ad246790001-NocioJ Received: from sandeen.net (sandeen.net [63.231.237.45]) by cuda.sgi.com with ESMTP id 3dZnZgCESChS9pWD for ; Fri, 11 Jul 2014 18:34:24 -0700 (PDT) X-Barracuda-Envelope-From: sandeen@sandeen.net X-Barracuda-Apparent-Source-IP: 63.231.237.45 Received: from liberator.sandeen.net (liberator.sandeen.net [10.0.0.4]) (using TLSv1 with cipher DHE-RSA-AES128-SHA (128/128 bits)) (No client certificate requested) by sandeen.net (Postfix) with ESMTPSA id E72506371E5F; Fri, 11 Jul 2014 20:34:23 -0500 (CDT) Message-ID: <53C090A0.9050403@sandeen.net> Date: Fri, 11 Jul 2014 20:34:24 -0500 From: Eric Sandeen MIME-Version: 1.0 To: Eric Sandeen , xfs-oss Subject: [PATCH V2] xfsprogs: libxcmd/paths: make all comparisons using realpath'd paths References: <53C09034.3070203@redhat.com> X-ASG-Orig-Subj: [PATCH V2] xfsprogs: libxcmd/paths: make all comparisons using realpath'd paths In-Reply-To: <53C09034.3070203@redhat.com> X-Enigmail-Version: 1.6 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit X-Barracuda-Connect: sandeen.net[63.231.237.45] X-Barracuda-Start-Time: 1405128864 X-Barracuda-URL: http://192.48.176.15:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 X-Barracuda-Spam-Score: 0.00 X-Barracuda-Spam-Status: No, SCORE=0.00 using per-user scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.7 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.7445 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- Both mountpoints and devices can be symlinks, so given a path to look for, and mountpoints/devices from the system, use realpath() on *everything* before making the comparison to see if our path is a match. So, with symlinks for mount points as well as for devices: # ls -l /dev/mapper/testvg-lvol0 lrwxrwxrwx. 1 root root 7 Jul 11 19:24 /dev/mapper/testvg-lvol0 -> ../dm-3 # ls -l /mnt/scratch2 lrwxrwxrwx. 1 root root 12 Jul 11 19:57 /mnt/scratch2 -> /mnt/scratch this should all work, and does now: # xfs_quota -xc "report -h" /mnt/scratch2 User quota on /mnt/scratch (/dev/mapper/testvg-lvol0) Blocks User ID Used Soft Hard Warn/Grace ---------- --------------------------------- root 0 0 0 00 [------] # xfs_quota -xc "report -h" /mnt/scratch User quota on /mnt/scratch (/dev/mapper/testvg-lvol0) Blocks User ID Used Soft Hard Warn/Grace ---------- --------------------------------- root 0 0 0 00 [------] # xfs_quota -xc "report -h" /dev/dm-3 User quota on /mnt/scratch (/dev/mapper/testvg-lvol0) Blocks User ID Used Soft Hard Warn/Grace ---------- --------------------------------- root 0 0 0 00 [------] # xfs_quota -xc "report -h" /dev/mapper/testvg-lvol0 User quota on /mnt/scratch (/dev/mapper/testvg-lvol0) Blocks User ID Used Soft Hard Warn/Grace ---------- --------------------------------- root 0 0 0 00 [------] The commit: 050a7f1 xfsprogs: handle symlinks etc in fs_table_initialise_mounts() tried to fix this earlier, but only worked one way; it compared the argument path in both given and realpath form to the paths in getmntent, but did not compare to the realpaths of the getmntent devices. If we reduce everything, everywhere, to a realpath(), we've got our best shot at finding the match. Signed-off-by: Eric Sandeen --- V2: remove the quota/report.c change which snuck in... diff --git a/libxcmd/paths.c b/libxcmd/paths.c index 7b0e434..8da3968 100644 --- a/libxcmd/paths.c +++ b/libxcmd/paths.c @@ -269,6 +269,9 @@ out_nomem: /* * If *path is NULL, initialize the fs table with all xfs mount points in mtab * If *path is specified, search for that path in mtab + * + * Everything - path, devices, and mountpoints - are reduced to realpath() + * for comparison, but fs_table is populated with what comes from getmntent. */ static int fs_table_initialise_mounts( @@ -278,7 +281,7 @@ fs_table_initialise_mounts( FILE *mtp; char *fslog, *fsrt; int error, found; - char *rpath = NULL; + char *rpath = NULL, *rmnt_fsname = NULL, *rmnt_dir = NULL; error = found = 0; fslog = fsrt = NULL; @@ -300,11 +303,16 @@ fs_table_initialise_mounts( while ((mnt = getmntent(mtp)) != NULL) { if (strcmp(mnt->mnt_type, "xfs") != 0) continue; + free(rmnt_dir); + if ((rmnt_dir = realpath(mnt->mnt_dir, NULL)) == NULL) + continue; + free(rmnt_fsname); + if ((rmnt_fsname = realpath(mnt->mnt_fsname, NULL)) == NULL) + continue; + if (path && - ((strcmp(path, mnt->mnt_dir) != 0) && - (strcmp(path, mnt->mnt_fsname) != 0) && - (strcmp(rpath, mnt->mnt_dir) != 0) && - (strcmp(rpath, mnt->mnt_fsname) != 0))) + ((strcmp(rpath, rmnt_dir) != 0) && + (strcmp(rpath, rmnt_fsname) != 0))) continue; if (fs_extract_mount_options(mnt, &fslog, &fsrt)) continue; @@ -317,6 +325,8 @@ fs_table_initialise_mounts( } endmntent(mtp); free(rpath); + free(rmnt_dir); + free(rmnt_fsname); if (path && !found) error = ENXIO; @@ -330,6 +340,9 @@ fs_table_initialise_mounts( /* * If *path is NULL, initialize the fs table with all xfs mount points in mtab * If *path is specified, search for that path in mtab + * + * Everything - path, devices, and mountpoints - are reduced to realpath() + * for comparison, but fs_table is populated with what comes from getmntinfo. */ static int fs_table_initialise_mounts( @@ -337,7 +350,7 @@ fs_table_initialise_mounts( { struct statfs *stats; int i, count, error, found; - char *rpath = NULL; + char *rpath = NULL, *rmntfromname= NULL, *rmntonname= NULL; error = found = 0; if ((count = getmntinfo(&stats, 0)) < 0) { @@ -354,11 +367,16 @@ fs_table_initialise_mounts( for (i = 0; i < count; i++) { if (strcmp(stats[i].f_fstypename, "xfs") != 0) continue; + free(rmntfromname); + if ((rmntfromname = realpath(stats[i].f_mntfromname, NULL)) == NULL) + continue; + free(rmntonname); + if ((rmntfromname = realpath(stats[i].f_mntonname, NULL)) == NULL) + continue; + if (path && - ((strcmp(path, stats[i].f_mntonname) != 0) && - (strcmp(path, stats[i].f_mntfromname) != 0) && - (strcmp(rpath, stats[i].f_mntonname) != 0) && - (strcmp(rpath, stats[i].f_mntfromname) != 0))) + ((strcmp(rpath, rmntonname) != 0) && + (strcmp(rpath, rmntfromname) != 0))) continue; /* TODO: external log and realtime device? */ (void) fs_table_insert(stats[i].f_mntonname, 0, @@ -370,6 +388,8 @@ fs_table_initialise_mounts( } } free(rpath); + free(rmntfromname); + free(rmntonname); if (path && !found) error = ENXIO; From sandeen@sandeen.net Fri Jul 11 20:39:48 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: xfs@oss.sgi.com Delivered-To: xfs@oss.sgi.com Received: from relay.sgi.com (relay1.corp.sgi.com [137.38.102.111]) by oss.sgi.com (Postfix) with ESMTP id 4ABB07F60 for ; Fri, 11 Jul 2014 20:39:48 -0500 (CDT) Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by relay1.corp.sgi.com (Postfix) with ESMTP id 26FBD8F8059 for ; Fri, 11 Jul 2014 18:39:47 -0700 (PDT) X-ASG-Debug-ID: 1405129185-04bdf0356b4a970001-NocioJ Received: from sandeen.net (sandeen.net [63.231.237.45]) by cuda.sgi.com with ESMTP id FGrfyFXYVFGBZnuG for ; Fri, 11 Jul 2014 18:39:45 -0700 (PDT) X-Barracuda-Envelope-From: sandeen@sandeen.net X-Barracuda-Apparent-Source-IP: 63.231.237.45 Received: from liberator.sandeen.net (liberator.sandeen.net [10.0.0.4]) (using TLSv1 with cipher DHE-RSA-AES128-SHA (128/128 bits)) (No client certificate requested) by sandeen.net (Postfix) with ESMTPSA id 560EA6371E5F; Fri, 11 Jul 2014 20:39:45 -0500 (CDT) Message-ID: <53C091E1.1010907@sandeen.net> Date: Fri, 11 Jul 2014 20:39:45 -0500 From: Eric Sandeen MIME-Version: 1.0 To: Jeff Liu , "xfs@oss.sgi.com" Subject: Re: [PATCH] xfsprogs/quota: fix NULL pointer dereference in report_f References: <52849CC5.10109@oracle.com> X-ASG-Orig-Subj: Re: [PATCH] xfsprogs/quota: fix NULL pointer dereference in report_f In-Reply-To: <52849CC5.10109@oracle.com> X-Enigmail-Version: 1.6 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit X-Barracuda-Connect: sandeen.net[63.231.237.45] X-Barracuda-Start-Time: 1405129185 X-Barracuda-URL: http://192.48.157.11:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 X-Barracuda-Spam-Score: 0.00 X-Barracuda-Spam-Status: No, SCORE=0.00 using per-user scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.7 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.7446 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- On 11/14/13, 3:49 AM, Jeff Liu wrote: > From: Jie Liu > > Run xfs_quota report against an invalid XFS path without desired quota > limitation is enabled will hit SEGSEGV as fs_path is uninitialized, e.g. > > # xfs_quota -xc 'report -up' /invalid_path > xfs_quota: cannot setup path for mount /invalid_path: No such file or directory > Segmentation fault (core dumped) > > (gdb) r -xc 'report -up' /invalid_path > xfs_quota: cannot setup path for mount /invalid_path: No such file or directory > > Program received signal SIGSEGV, Segmentation fault. > 0x0000000000408b4d in report_f (argc=2, argv=0x105ea70) at report.c:627 > 627 else if (fs_path->fs_flags & FS_MOUNT_POINT) > > This patch fix report_f() to only do report if the fs_path is initialized. > > Signed-off-by: Jie Liu Reviewed-by: Eric Sandeen I know hch had grand plans to make this all nicer, but based on Jeff's followup emails, it looks like this is the only spot needed to simply resolve the problems w/ nonexistent paths in quota, and is a small, contained change we can easily make before the next point release. Thanks, -Eric > --- > quota/report.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/quota/report.c b/quota/report.c > index 70894a2..8e3316e 100644 > --- a/quota/report.c > +++ b/quota/report.c > @@ -624,7 +624,7 @@ report_f( > if (flags & ALL_MOUNTS_FLAG) > report_any_type(fp, form, type, NULL, > lower, upper, flags); > - else if (fs_path->fs_flags & FS_MOUNT_POINT) > + else if (fs_path && (fs_path->fs_flags & FS_MOUNT_POINT)) > report_any_type(fp, form, type, fs_path->fs_dir, > lower, upper, flags); > } else while (argc > optind) { > From robin.listas@gmail.com Fri Jul 11 20:45:12 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=FREEMAIL_FROM,T_DKIM_INVALID autolearn=ham version=3.3.1 X-Original-To: xfs@oss.sgi.com Delivered-To: xfs@oss.sgi.com Received: from relay.sgi.com (relay2.corp.sgi.com [137.38.102.29]) by oss.sgi.com (Postfix) with ESMTP id D125D7F66 for ; Fri, 11 Jul 2014 20:45:12 -0500 (CDT) Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by relay2.corp.sgi.com (Postfix) with ESMTP id B3951304039 for ; Fri, 11 Jul 2014 18:45:12 -0700 (PDT) X-ASG-Debug-ID: 1405129510-04cb6c6ad146c30001-NocioJ Received: from mail-wg0-f50.google.com (mail-wg0-f50.google.com [74.125.82.50]) by cuda.sgi.com with ESMTP id XQ99J5R0t9vyuFMj (version=TLSv1 cipher=RC4-SHA bits=128 verify=NO) for ; Fri, 11 Jul 2014 18:45:11 -0700 (PDT) X-Barracuda-Envelope-From: robin.listas@gmail.com X-Barracuda-Apparent-Source-IP: 74.125.82.50 Received: by mail-wg0-f50.google.com with SMTP id n12so1843056wgh.9 for ; Fri, 11 Jul 2014 18:45:10 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=sender:date:from:to:subject:in-reply-to:message-id:references :user-agent:mime-version:content-type; bh=0grYK/SHAGBK9Sb6vDMErd+rvDSNA//DVucmVdx5LNA=; b=VPMslhkDoJTqzbQ1ong9+Hvw1QFC9eMFjr8G5nktWRGEPBgMUeNrJUy3f/rOSLnAuA KpRUgSN84a0/HONdzkQbl8jQWFo2cceUEMUI4ot60FWjHXPQxsrWhhzrp/SGCFHGKmke 2ZjgfN7XOuTaUCTJpSfKOKf/MXsq7Nf2+MkTfJsjnttWsiSV81DMIG7Z3CCjy+nRPyia rys1QIUFNHw4DrPvL/DF9n3kHwao+F0uxqLlvmPUX5M8xrkhpa2OQ3l34+31gXDdAd6O frHM9luf8Zjzno9tBHSRbMuinxxtaE77M49bpPygizcPSpiuv8QHSObCJeElMEX5XrWg V3tA== X-Received: by 10.180.19.1 with SMTP id a1mr9685196wie.16.1405129510065; Fri, 11 Jul 2014 18:45:10 -0700 (PDT) Received: from Telcontar.valinor (90.Red-79-150-228.dynamicIP.rima-tde.net. [79.150.228.90]) by mx.google.com with ESMTPSA id 10sm8636998wjx.26.2014.07.11.18.45.08 for (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Fri, 11 Jul 2014 18:45:09 -0700 (PDT) Sender: Carlos Robinson Received: from localhost (localhost [127.0.0.1]) by Telcontar.valinor (Postfix) with ESMTP id D9E4D60685 for ; Sat, 12 Jul 2014 03:45:07 +0200 (CEST) X-Virus-Scanned: amavisd-new at valinor Received: from Telcontar.valinor ([127.0.0.1]) by localhost (Telcontar.valinor [127.0.0.1]) (amavisd-new, port 10024) with LMTP id u6bYkCWvp-El for ; Sat, 12 Jul 2014 03:45:07 +0200 (CEST) Received: from localhost (localhost [127.0.0.1]) by Telcontar.valinor (Postfix) with ESMTP id B4D8C60679 for ; Sat, 12 Jul 2014 03:45:07 +0200 (CEST) Date: Sat, 12 Jul 2014 03:45:07 +0200 (CEST) From: "Carlos E. R." X-X-Sender: cer@Telcontar.valinor To: XFS mailing list Subject: Re: Got "Internal error XFS_WANT_CORRUPTED_GOTO". Filesystem needs reformatting to correct issue. In-Reply-To: X-ASG-Orig-Subj: Re: Got "Internal error XFS_WANT_CORRUPTED_GOTO". Filesystem needs reformatting to correct issue. Message-ID: References: <20140702120441.GA51757@bfoster.bfoster> <20140703173916.GB3452@laptop.bfoster> <20140705122833.GA3573@bfoster.bfoster> User-Agent: Alpine 2.11 (LSU 23 2013-08-11) MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII; format=flowed X-Barracuda-Connect: mail-wg0-f50.google.com[74.125.82.50] X-Barracuda-Start-Time: 1405129511 X-Barracuda-Encrypted: RC4-SHA X-Barracuda-URL: http://192.48.176.15:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 X-Barracuda-Spam-Score: 0.00 X-Barracuda-Spam-Status: No, SCORE=0.00 using per-user scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.7 tests=DKIM_SIGNED, DKIM_VERIFIED X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.7445 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- -0.00 DKIM_VERIFIED Domain Keys Identified Mail: signature passes verification 0.00 DKIM_SIGNED Domain Keys Identified Mail: message has a signature -----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 On Saturday, 2014-07-12 at 03:30 +0200, Carlos E. R. wrote: > So, please wait till I verify things again. Tomorrow, it is 3 AM here. > Sorry :-( > > Unless "xfs_info tgtfile" gives the information about the device where > "tgtfile" is stored (/dev/sdf2), not on the image file itself :-? > > I'm very confused. False alarm. See: Telcontar:/data/storage_c/tmp_borrar # xfs_info tgtfile meta-data=/dev/sde18 isize=256 agcount=4, agsize=35770496 blks = sectsz=512 attr=2, projid32bit=0 = crc=0 data = bsize=4096 blocks=143081984, imaxpct=25 = sunit=0 swidth=0 blks naming =version 2 bsize=4096 ascii-ci=0 ftype=0 log =internal bsize=4096 blocks=69864, version=2 = sectsz=512 sunit=0 blks, lazy-count=1 realtime =none extsz=4096 blocks=0, rtextents=0 Telcontar:/data/storage_c/tmp_borrar # Telcontar:/data/storage_d/old_backup # xfs_info tgtfile meta-data=/dev/sdf2 isize=256 agcount=4, agsize=122341568 blks = sectsz=512 attr=2, projid32bit=0 = crc=0 data = bsize=4096 blocks=489366272, imaxpct=5 = sunit=0 swidth=0 blks naming =version 2 bsize=4096 ascii-ci=0 ftype=0 log =internal bsize=4096 blocks=238948, version=2 = sectsz=512 sunit=0 blks, lazy-count=1 realtime =none extsz=4096 blocks=0, rtextents=0 Telcontar:/data/storage_d/old_backup # Telcontar:/data/storage_d/old_backup # file tgtfile tgtfile: XFS filesystem metadump image Telcontar:/data/storage_d/old_backup # It appears that the command "xfs_info" analyzes the current, underlying, filesystem, not the one given on the command line. Or something in that line, I'm too sleepy. I hope you can understand my meaning better than my words... So the uploaded file is the correct one. - -- Cheers, Carlos E. R. (from 13.1 x86_64 "Bottle" at Telcontar) -----BEGIN PGP SIGNATURE----- Version: GnuPG v2.0.22 (GNU/Linux) iEYEARECAAYFAlPAkyMACgkQtTMYHG2NR9U2uACfTdPx8DGCkBzLGiSVGn3XCcSV 7ukAnAvR1CjR9Jx3rPosLYNceBtQjJjf =/odv -----END PGP SIGNATURE----- From arekm@maven.pl Sat Jul 12 01:13:35 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=T_DKIM_INVALID autolearn=ham version=3.3.1 X-Original-To: xfs@oss.sgi.com Delivered-To: xfs@oss.sgi.com Received: from relay.sgi.com (relay1.corp.sgi.com [137.38.102.111]) by oss.sgi.com (Postfix) with ESMTP id 9E8C07F6D for ; Sat, 12 Jul 2014 01:13:35 -0500 (CDT) Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by relay1.corp.sgi.com (Postfix) with ESMTP id 5C7B58F8054 for ; Fri, 11 Jul 2014 23:13:35 -0700 (PDT) X-ASG-Debug-ID: 1405145611-04bdf0356b545b0001-NocioJ Received: from mail-wg0-f49.google.com (mail-wg0-f49.google.com [74.125.82.49]) by cuda.sgi.com with ESMTP id Heqy43q2ZbrgDaxJ (version=TLSv1 cipher=RC4-SHA bits=128 verify=NO) for ; Fri, 11 Jul 2014 23:13:32 -0700 (PDT) X-Barracuda-Envelope-From: arekm@maven.pl X-Barracuda-Apparent-Source-IP: 74.125.82.49 Received: by mail-wg0-f49.google.com with SMTP id k14so1279956wgh.32 for ; Fri, 11 Jul 2014 23:13:30 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=maven.pl; s=maven; h=from:to:subject:date:user-agent:cc:references:in-reply-to :mime-version:content-type:content-transfer-encoding:message-id; bh=mmc3yFMnosJinp/sLkAL1PEHp+gppQ6mI9eHfmUNvxI=; b=UL1donOj8598LgR6M7fgNZnP3DMuyRRrnQPVGrYTLAQtbycUYUxuzDa51dI5j2B36/ dBkJsGsli4nJWH1uOZHqD/2t61qoSy+8eYN/uzTD0nzW3FTpWBK4T0HPZINYorO9X/N9 Jez036C5OhkWP6UKvMCgwzqny1jhFUa9SWXus= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:from:to:subject:date:user-agent:cc:references :in-reply-to:mime-version:content-type:content-transfer-encoding :message-id; bh=mmc3yFMnosJinp/sLkAL1PEHp+gppQ6mI9eHfmUNvxI=; b=l+Xsft8reqTyEbK+pdQktpInSuXwPhepctkhV0+VJ1Y3zl14skU7YoYrbbOCuEd2yW HM2NqyxJeP+9WWVnW1lTGQZ6YKE6Kr7T4/XHNooTymi4Us1qSoWk+nVJywloCRD7K+w1 khaoGXXN1Bdp0gDMLu8Qo1Xh9KJzCMb4IpqycPof4CvM8LDqu6NfsoYs89/5kKP4QUR9 WCe4HNUpAC0EYXbUvoSwAjZUJmj3fX9bHadbX5qhHRTstCI4EySE5u2IxLOYvjgm3gH+ MNWGzo00ARWWoD6G5wiXKpvXppWoYfAM3XR2djXa2JRMgng9OeOxGofHlJo2OJx5So06 9ptA== X-Gm-Message-State: ALoCoQkfAPDfitiwXmkzpMTFxU1yitlUtPsC8k2ZXCcvMJcgAiD5aOd9v4eLRd33OnxlmNk+2iN5 X-Received: by 10.194.92.148 with SMTP id cm20mr4720043wjb.57.1405145610859; Fri, 11 Jul 2014 23:13:30 -0700 (PDT) Received: from t400.localnet (89-65-199-25.dynamic.chello.pl. [89.65.199.25]) by mx.google.com with ESMTPSA id ex4sm3190027wic.2.2014.07.11.23.13.30 for (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Fri, 11 Jul 2014 23:13:30 -0700 (PDT) From: Arkadiusz =?utf-8?q?Mi=C5=9Bkiewicz?= To: Eric Sandeen Subject: Re: [PATCH] Catch under/overflow cases in cvtnum() and cvttime(). Date: Sat, 12 Jul 2014 08:13:27 +0200 X-ASG-Orig-Subj: Re: [PATCH] Catch under/overflow cases in cvtnum() and cvttime(). User-Agent: KMail/1.13.7 (Linux/3.16.0-rc4-00120-g85d90fa-dirty; KDE/4.13.2; x86_64; ; ) Cc: xfs@oss.sgi.com References: <1405107244-14234-1-git-send-email-arekm@maven.pl> <53C06FF3.2090600@sandeen.net> In-Reply-To: <53C06FF3.2090600@sandeen.net> MIME-Version: 1.0 Content-Type: Text/Plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <201407120813.27317.arekm@maven.pl> X-Barracuda-Connect: mail-wg0-f49.google.com[74.125.82.49] X-Barracuda-Start-Time: 1405145612 X-Barracuda-Encrypted: RC4-SHA X-Barracuda-URL: http://192.48.157.11:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 X-Barracuda-Spam-Score: 0.00 X-Barracuda-Spam-Status: No, SCORE=0.00 using per-user scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.7 tests=DKIM_SIGNED, DKIM_VERIFIED X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.7450 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- -0.00 DKIM_VERIFIED Domain Keys Identified Mail: signature passes verification 0.00 DKIM_SIGNED Domain Keys Identified Mail: message has a signature On Saturday 12 of July 2014, Eric Sandeen wrote: > On 7/11/14, 2:34 PM, Arkadiusz Mi=C5=9Bkiewicz wrote: > > cvtnum() and cvttime() silently ignore overflows. This leads to error > > conditions not being catched. Example: > >=20 > > $ xfs_quota -x -c 'limit -u bsoft=3D987654321098765432199 \ > >=20 > > bhard=3D987654321098765432199 999' / > >=20 > > $ > >=20 > > Fixed version: > > $ xfs_quota -x -c 'limit -u bsoft=3D987654321098765432199 \ > >=20 > > bhard=3D987654321098765432199 999' / > >=20 > > xfs_quota: Error: could not parse size 987654321098765432199. > > xfs_quota: unrecognised argument bsoft=3D987654321098765432199 >=20 > So, strtol(3) suggests setting errno to 0 before the call: >=20 > NOTES > Since strtol() can legitimately return 0, LONG_MAX, or=20 > LONG_MIN (LLONG_MAX or LLONG_MIN for strtoll()) on both success and > failure, the calling program should set errno to 0 before the call, and > then deter- mine if an error occurred by checking whether errno has a= =20 > non-zero value after the call. >=20 > Ditto for strtoul(). Hm, my man pages 3.70 don't have such notes, strtol(3): NOTES In locales other than the "C" locale, also other strings may be=20 accepted. (For example, the thousands separator of the current locale may = be=20 supported.) BSD also has quad_t strtoq(const char *nptr, char **endptr, int base); with completely analogous definition. Depending on the wordsize of = the=20 current architecture, this may be equivalent to strtoll() or to strtol(). >=20 > I guess that is just to ensure that there's not a leftover errno > when we make the call? Worth doing, maybe? ERANGE is checked in few other places already in input.c and none initializ= e=20 errno before strtoul() call. >=20 > Thanks, > -Eric >=20 > > Signed-off-by: Arkadiusz Mi=C5=9Bkiewicz > > --- > >=20 > > libxcmd/input.c | 4 ++++ > > 1 file changed, 4 insertions(+) > >=20 > > diff --git a/libxcmd/input.c b/libxcmd/input.c > > index c06b5b8..397a124 100644 > > --- a/libxcmd/input.c > > +++ b/libxcmd/input.c > > @@ -154,6 +154,8 @@ cvtnum( > >=20 > > int c; > > =09 > > i =3D strtoll(s, &sp, 0); > >=20 > > + if ((i =3D=3D LLONG_MIN || i =3D=3D LLONG_MAX) && errno =3D=3D ERANGE) > > + return -1LL; > >=20 > > if (i =3D=3D 0 && sp =3D=3D s) > > =09 > > return -1LL; > > =09 > > if (*sp =3D=3D '\0') > >=20 > > @@ -238,6 +240,8 @@ cvttime( > >=20 > > char *sp; > > =09 > > i =3D strtoul(s, &sp, 0); > >=20 > > + if (i =3D=3D ULONG_MAX && errno =3D=3D ERANGE) > > + return 0; > >=20 > > if (i =3D=3D 0 && sp =3D=3D s) > > =09 > > return 0; > > =09 > > if (*sp =3D=3D '\0') =2D-=20 Arkadiusz Mi=C5=9Bkiewicz, arekm / maven.pl From phplistbounces@megatronmailer.com Sat Jul 12 02:39:22 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=T_DKIM_INVALID autolearn=ham version=3.3.1 X-Original-To: xfs@oss.sgi.com Delivered-To: xfs@oss.sgi.com Received: from relay.sgi.com (relay1.corp.sgi.com [137.38.102.111]) by oss.sgi.com (Postfix) with ESMTP id CF2E47F5A for ; Sat, 12 Jul 2014 02:39:22 -0500 (CDT) Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by relay1.corp.sgi.com (Postfix) with ESMTP id 9FE4D8F8068 for ; Sat, 12 Jul 2014 00:39:19 -0700 (PDT) X-ASG-Debug-ID: 1405150755-04bdf0356858260001-NocioJ Received: from hosting.megatronptc.com (megatronptc.com [72.9.158.98]) by cuda.sgi.com with ESMTP id rzcxyLVpMvysGZbl (version=TLSv1 cipher=AES256-SHA bits=256 verify=NO) for ; Sat, 12 Jul 2014 00:39:16 -0700 (PDT) X-Barracuda-Envelope-From: phplistbounces@megatronmailer.com X-Barracuda-Apparent-Source-IP: 72.9.158.98 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=megatronmailer.com; s=default; h=Content-Type:Content-Transfer-Encoding:MIME-Version:List-Unsubscribe:Message-ID:Reply-To:From:Date:Subject:To; bh=3mOrHsRmN7cJ0qMkhwjyyygIKFlQs4PIfSPZYqVyLeM=; b=k7xEIE63Yc8u6Bruf63DeO9ZlX6+h0pKi0yL1IAbaVZVtfm4jduOn+1ug+QTpE3Ky945X5lIR+C8m08tbEflzt25WkbR1kTWvpNUn2nxV95QrWgcO1Zlbzwyu+Xw/yYjq+lkta0NhRreYgKJ38Qql78gD82qhPXiQpBNJQm6DQ8=; Received: from megamail by hosting.megatronptc.com with local (Exim 4.82) (envelope-from ) id 1X5rts-0002Af-MC for xfs@oss.sgi.com; Sat, 12 Jul 2014 03:39:16 -0400 To: xfs@oss.sgi.com Subject: Goodbye from our Newsletter X-PHP-Script: megatronmailer.com/lists/index.php for 66.249.65.254 X-ASG-Orig-Subj: Goodbye from our Newsletter Received: from crawl-66-249-65-254.googlebot.com [66.249.65.254] by megatronmailer.com with HTTP; Sat, 12 Jul 2014 02:39:16 -0500 Date: Sat, 12 Jul 2014 02:39:16 -0500 From: Megatron Mailer Lists Reply-To: Megatron Mailer Lists Message-ID: <8711166404daa1bdc922d58a134c401a@megatronmailer.com> X-Priority: 3 X-Mailer: PHPMailer 5.2.5 (https://github.com/Synchro/PHPMailer/) X-phpList-version: 3.0.6 X-MessageID: systemmessage X-ListMember: xfs@oss.sgi.com Precedence: bulk Bounces-To: phplistbounces@megatronmailer.com List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Content-Type: text/plain; charset=UTF-8 X-AntiAbuse: This header was added to track abuse, please include it with any abuse report X-AntiAbuse: Primary Hostname - hosting.megatronptc.com X-AntiAbuse: Original Domain - oss.sgi.com X-AntiAbuse: Originator/Caller UID/GID - [512 513] / [47 12] X-AntiAbuse: Sender Address Domain - megatronmailer.com X-Get-Message-Sender-Via: hosting.megatronptc.com: authenticated_id: megamail/from_h X-Barracuda-Connect: megatronptc.com[72.9.158.98] X-Barracuda-Start-Time: 1405150756 X-Barracuda-Encrypted: AES256-SHA X-Barracuda-URL: http://192.48.157.11:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 X-Barracuda-Spam-Score: 0.00 X-Barracuda-Spam-Status: No, SCORE=0.00 using per-user scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.7 tests=DKIM_SIGNED X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.7452 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.00 DKIM_SIGNED Domain Keys Identified Mail: message has a signature Goodbye from our Newsletter, sorry to see you go. You have been unsubscribed from our newsletters. This is the last email you will receive from us. Our newsletter system, phpList, will refuse to send you any further messages, without manual intervention by our administrator. If there is an error in this information, you can re-subscribe: please go to http://megatronmailer.com/lists/?p=subscribe and follow the steps. Thank you From eva.franzen@ridklubben.net Sat Jul 12 04:41:46 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: *** X-Spam-Status: No, score=3.5 required=5.0 tests=ADVANCE_FEE_3_NEW autolearn=no version=3.3.1 X-Original-To: xfs@oss.sgi.com Delivered-To: xfs@oss.sgi.com Received: from relay.sgi.com (relay1.corp.sgi.com [137.38.102.111]) by oss.sgi.com (Postfix) with ESMTP id 57AE27F5F for ; Sat, 12 Jul 2014 04:41:46 -0500 (CDT) Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by relay1.corp.sgi.com (Postfix) with ESMTP id 45CC58F8054 for ; Sat, 12 Jul 2014 02:41:46 -0700 (PDT) X-ASG-Debug-ID: 1405158101-04cbb042195fbf0001-NocioJ Received: from smtpgate.concode.se (smtpgate.concode.se [89.31.248.4]) by cuda.sgi.com with ESMTP id fSzuLBgwLFCPEVCJ for ; Sat, 12 Jul 2014 02:41:41 -0700 (PDT) X-Barracuda-Envelope-From: eva.franzen@ridklubben.net X-Barracuda-Apparent-Source-IP: 89.31.248.4 Received: from smtpgate.concode.local (hermes [10.1.3.102]) by smtpgate.concode.se (8.14.1/8.14.1) with ESMTP id s6C9LeaE022236; Sat, 12 Jul 2014 11:34:54 +0200 Received: from HERMES.concode.local ([10.1.3.102]) by hermes ([10.1.3.102]) with mapi; Sat, 12 Jul 2014 11:27:35 +0200 From: "Eva.Ridklubben" Date: Sat, 12 Jul 2014 11:27:34 +0200 Subject: diplomatic cash payment delivery Thread-Topic: diplomatic cash payment delivery X-ASG-Orig-Subj: diplomatic cash payment delivery Thread-Index: AQHPnbOCqGvQ7PTjn06HMJXN2jvh2A== Message-ID: <0DE257B73D863248B5C21FFB2BE0FC7905C882AF0007@hermes> Accept-Language: en-US, sv-SE Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: acceptlanguage: en-US, sv-SE Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 X-Concode.com-MailScanner-Information: Please contact the ISP for more information X-Concode.com-MailScanner: Found to be clean X-Concode.com-MailScanner-From: eva.franzen@ridklubben.net X-Barracuda-Connect: smtpgate.concode.se[89.31.248.4] X-Barracuda-Start-Time: 1405158101 X-Barracuda-URL: http://192.48.176.25:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 X-Barracuda-Spam-Score: 1.23 X-Barracuda-Spam-Status: No, SCORE=1.23 using per-user scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.7 tests=MISSING_HEADERS, THREAD_INDEX, THREAD_TOPIC, TO_CC_NONE X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.7454 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.01 THREAD_INDEX thread-index: AcO7Y8iR61tzADqsRmmc5wNiFHEOig== 0.01 THREAD_TOPIC Thread-Topic: ...(Japanese Subject)... 1.21 MISSING_HEADERS Missing To: header 0.00 TO_CC_NONE No To: or Cc: header To: undisclosed-recipients:; Headquarters 2 (HQ2): International Monetary Fund Washington, DC, 20431,USA The International Monetary Fund has mandated your fund to be delivered through diplomatic cash payment option and it will be delivered to you through a concealed consignment.Kindly forward your full name and address,including your telephone number and valid identity so that we can commence the delivery immediately.email:(chris_ben92@yahoo.com) Yours Faithfully, Dr.Chris Mathew IMF diplomatic payment coordinator Under the IMF's Monetary and Exchange Affairs Department USA --=20 This message has been scanned for viruses and dangerous content by MailScanner, and is believed to be clean. From sandeen@sandeen.net Sat Jul 12 08:38:02 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: xfs@oss.sgi.com Delivered-To: xfs@oss.sgi.com Received: from relay.sgi.com (relay1.corp.sgi.com [137.38.102.111]) by oss.sgi.com (Postfix) with ESMTP id 2136D7F47 for ; Sat, 12 Jul 2014 08:38:02 -0500 (CDT) Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by relay1.corp.sgi.com (Postfix) with ESMTP id E6B728F8054 for ; Sat, 12 Jul 2014 06:37:58 -0700 (PDT) X-ASG-Debug-ID: 1405172275-04cb6c6ad261d00001-NocioJ Received: from sandeen.net (sandeen.net [63.231.237.45]) by cuda.sgi.com with ESMTP id FTUmpx87Hfoy3out for ; Sat, 12 Jul 2014 06:37:55 -0700 (PDT) X-Barracuda-Envelope-From: sandeen@sandeen.net X-Barracuda-Apparent-Source-IP: 63.231.237.45 Received: from liberator.sandeen.net (liberator.sandeen.net [10.0.0.4]) (using TLSv1 with cipher DHE-RSA-AES128-SHA (128/128 bits)) (No client certificate requested) by sandeen.net (Postfix) with ESMTPSA id 00E5A63C3BD2; Sat, 12 Jul 2014 08:37:54 -0500 (CDT) Message-ID: <53C13A34.6020602@sandeen.net> Date: Sat, 12 Jul 2014 08:37:56 -0500 From: Eric Sandeen MIME-Version: 1.0 To: =?UTF-8?B?QXJrYWRpdXN6IE1pxZtraWV3aWN6?= CC: xfs@oss.sgi.com Subject: Re: [PATCH] Catch under/overflow cases in cvtnum() and cvttime(). References: <1405107244-14234-1-git-send-email-arekm@maven.pl> <53C06FF3.2090600@sandeen.net> <201407120813.27317.arekm@maven.pl> X-ASG-Orig-Subj: Re: [PATCH] Catch under/overflow cases in cvtnum() and cvttime(). In-Reply-To: <201407120813.27317.arekm@maven.pl> X-Enigmail-Version: 1.6 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Barracuda-Connect: sandeen.net[63.231.237.45] X-Barracuda-Start-Time: 1405172275 X-Barracuda-URL: http://192.48.176.15:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 X-Barracuda-Spam-Score: 0.00 X-Barracuda-Spam-Status: No, SCORE=0.00 using per-user scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.7 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.7457 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- On 7/12/14, 1:13 AM, Arkadiusz MiÅ›kiewicz wrote: > On Saturday 12 of July 2014, Eric Sandeen wrote: >> On 7/11/14, 2:34 PM, Arkadiusz MiÅ›kiewicz wrote: >>> cvtnum() and cvttime() silently ignore overflows. This leads to error >>> conditions not being catched. Example: >>> >>> $ xfs_quota -x -c 'limit -u bsoft=987654321098765432199 \ >>> >>> bhard=987654321098765432199 999' / >>> >>> $ >>> >>> Fixed version: >>> $ xfs_quota -x -c 'limit -u bsoft=987654321098765432199 \ >>> >>> bhard=987654321098765432199 999' / >>> >>> xfs_quota: Error: could not parse size 987654321098765432199. >>> xfs_quota: unrecognised argument bsoft=987654321098765432199 >> >> So, strtol(3) suggests setting errno to 0 before the call: >> >> NOTES >> Since strtol() can legitimately return 0, LONG_MAX, or >> LONG_MIN (LLONG_MAX or LLONG_MIN for strtoll()) on both success and >> failure, the calling program should set errno to 0 before the call, and >> then deter- mine if an error occurred by checking whether errno has a >> non-zero value after the call. >> >> Ditto for strtoul(). > > Hm, my man pages 3.70 don't have such notes, strtol(3): > > NOTES > In locales other than the "C" locale, also other strings may be > accepted. (For example, the thousands separator of the current locale may be > supported.) > > BSD also has > > quad_t > strtoq(const char *nptr, char **endptr, int base); > > with completely analogous definition. Depending on the wordsize of the > current architecture, this may be equivalent to strtoll() or to strtol(). > >> >> I guess that is just to ensure that there's not a leftover errno >> when we make the call? Worth doing, maybe? > > ERANGE is checked in few other places already in input.c and none initialize > errno before strtoul() call. http://c-faq.com/misc/errno.html suggests it too: > It's only necessary to detect errors with errno when a function does > not have a unique, unambiguous, out-of-band error return (i.e. > because all of its possible return values are valid; one example is > atoi). In these cases (and in these cases only; check the > documentation to be sure whether a function allows this), you can > detect errors by setting errno to 0, calling the function, then > testing errno. I wonder why it was removed from the man page, it makes sense to me, but maybe I'm missing something. -Eric From sandeen@sandeen.net Sat Jul 12 08:43:13 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: xfs@oss.sgi.com Delivered-To: xfs@oss.sgi.com Received: from relay.sgi.com (relay2.corp.sgi.com [137.38.102.29]) by oss.sgi.com (Postfix) with ESMTP id 383A67F47 for ; Sat, 12 Jul 2014 08:43:13 -0500 (CDT) Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by relay2.corp.sgi.com (Postfix) with ESMTP id DF025304039 for ; Sat, 12 Jul 2014 06:43:09 -0700 (PDT) X-ASG-Debug-ID: 1405172584-04bdf0356863d50001-NocioJ Received: from sandeen.net (sandeen.net [63.231.237.45]) by cuda.sgi.com with ESMTP id Ti0hHK0zHWq1upBn for ; Sat, 12 Jul 2014 06:43:04 -0700 (PDT) X-Barracuda-Envelope-From: sandeen@sandeen.net X-Barracuda-Apparent-Source-IP: 63.231.237.45 Received: from liberator.sandeen.net (liberator.sandeen.net [10.0.0.4]) (using TLSv1 with cipher DHE-RSA-AES128-SHA (128/128 bits)) (No client certificate requested) by sandeen.net (Postfix) with ESMTPSA id D52B361F88A2; Sat, 12 Jul 2014 08:43:03 -0500 (CDT) Message-ID: <53C13B69.50702@sandeen.net> Date: Sat, 12 Jul 2014 08:43:05 -0500 From: Eric Sandeen MIME-Version: 1.0 To: =?UTF-8?B?QXJrYWRpdXN6IE1pxZtraWV3aWN6?= CC: xfs@oss.sgi.com Subject: Re: [PATCH] Catch under/overflow cases in cvtnum() and cvttime(). References: <1405107244-14234-1-git-send-email-arekm@maven.pl> <53C06FF3.2090600@sandeen.net> <201407120813.27317.arekm@maven.pl> <53C13A34.6020602@sandeen.net> X-ASG-Orig-Subj: Re: [PATCH] Catch under/overflow cases in cvtnum() and cvttime(). In-Reply-To: <53C13A34.6020602@sandeen.net> X-Enigmail-Version: 1.6 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Barracuda-Connect: sandeen.net[63.231.237.45] X-Barracuda-Start-Time: 1405172584 X-Barracuda-URL: http://192.48.157.11:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 X-Barracuda-Spam-Score: 0.00 X-Barracuda-Spam-Status: No, SCORE=0.00 using per-user scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.7 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.7458 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- On 7/12/14, 8:37 AM, Eric Sandeen wrote: > On 7/12/14, 1:13 AM, Arkadiusz MiÅ›kiewicz wrote: >> On Saturday 12 of July 2014, Eric Sandeen wrote: >>> On 7/11/14, 2:34 PM, Arkadiusz MiÅ›kiewicz wrote: >>>> cvtnum() and cvttime() silently ignore overflows. This leads to error >>>> conditions not being catched. Example: >>>> >>>> $ xfs_quota -x -c 'limit -u bsoft=987654321098765432199 \ >>>> >>>> bhard=987654321098765432199 999' / >>>> >>>> $ >>>> >>>> Fixed version: >>>> $ xfs_quota -x -c 'limit -u bsoft=987654321098765432199 \ >>>> >>>> bhard=987654321098765432199 999' / >>>> >>>> xfs_quota: Error: could not parse size 987654321098765432199. >>>> xfs_quota: unrecognised argument bsoft=987654321098765432199 >>> >>> So, strtol(3) suggests setting errno to 0 before the call: >>> >>> NOTES >>> Since strtol() can legitimately return 0, LONG_MAX, or >>> LONG_MIN (LLONG_MAX or LLONG_MIN for strtoll()) on both success and >>> failure, the calling program should set errno to 0 before the call, and >>> then deter- mine if an error occurred by checking whether errno has a >>> non-zero value after the call. >>> >>> Ditto for strtoul(). >> >> Hm, my man pages 3.70 don't have such notes, strtol(3): >> >> NOTES >> In locales other than the "C" locale, also other strings may be >> accepted. (For example, the thousands separator of the current locale may be >> supported.) >> >> BSD also has >> >> quad_t >> strtoq(const char *nptr, char **endptr, int base); >> >> with completely analogous definition. Depending on the wordsize of the >> current architecture, this may be equivalent to strtoll() or to strtol(). >> >>> >>> I guess that is just to ensure that there's not a leftover errno >>> when we make the call? Worth doing, maybe? >> >> ERANGE is checked in few other places already in input.c and none initialize >> errno before strtoul() call. > > http://c-faq.com/misc/errno.html suggests it too: > >> It's only necessary to detect errors with errno when a function does >> not have a unique, unambiguous, out-of-band error return (i.e. >> because all of its possible return values are valid; one example is >> atoi). In these cases (and in these cases only; check the >> documentation to be sure whether a function allows this), you can >> detect errors by setting errno to 0, calling the function, then >> testing errno. > > I wonder why it was removed from the man page Actually it seems to still be there: http://git.kernel.org/cgit/docs/man-pages/man-pages.git/tree/man3/strtol.3#n190 fiddly detail but probably worth doing... -Eric From bfoster@redhat.com Sat Jul 12 09:19:36 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: xfs@oss.sgi.com Delivered-To: xfs@oss.sgi.com Received: from relay.sgi.com (relay2.corp.sgi.com [137.38.102.29]) by oss.sgi.com (Postfix) with ESMTP id D66B77F47 for ; Sat, 12 Jul 2014 09:19:36 -0500 (CDT) Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by relay2.corp.sgi.com (Postfix) with ESMTP id C492A304062 for ; Sat, 12 Jul 2014 07:19:33 -0700 (PDT) X-ASG-Debug-ID: 1405174771-04cbb0421c69b90001-NocioJ Received: from mx1.redhat.com (mx1.redhat.com [209.132.183.28]) by cuda.sgi.com with ESMTP id yZuwxn1Ti2S5kalu (version=TLSv1 cipher=AES256-SHA bits=256 verify=NO) for ; Sat, 12 Jul 2014 07:19:32 -0700 (PDT) X-Barracuda-Envelope-From: bfoster@redhat.com X-Barracuda-Apparent-Source-IP: 209.132.183.28 X-ASG-Whitelist: Client Received: from int-mx11.intmail.prod.int.phx2.redhat.com (int-mx11.intmail.prod.int.phx2.redhat.com [10.5.11.24]) by mx1.redhat.com (8.14.4/8.14.4) with ESMTP id s6CEJRZu017327 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Sat, 12 Jul 2014 10:19:27 -0400 Received: from bfoster.bfoster ([10.18.41.237]) by int-mx11.intmail.prod.int.phx2.redhat.com (8.14.4/8.14.4) with ESMTP id s6CEJRLT003811; Sat, 12 Jul 2014 10:19:27 -0400 Received: by bfoster.bfoster (Postfix, from userid 1000) id E03CF124B7C; Sat, 12 Jul 2014 10:19:25 -0400 (EDT) Date: Sat, 12 Jul 2014 10:19:25 -0400 From: Brian Foster To: "Carlos E. R." Cc: XFS mailing list Subject: Re: Got "Internal error XFS_WANT_CORRUPTED_GOTO". Filesystem needs reformatting to correct issue. Message-ID: <20140712141925.GA53265@bfoster.bfoster> X-ASG-Orig-Subj: Re: Got "Internal error XFS_WANT_CORRUPTED_GOTO". Filesystem needs reformatting to correct issue. References: <20140702120441.GA51757@bfoster.bfoster> <20140703173916.GB3452@laptop.bfoster> <20140705122833.GA3573@bfoster.bfoster> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.5.23 (2014-03-12) X-Scanned-By: MIMEDefang 2.68 on 10.5.11.24 X-Barracuda-Connect: mx1.redhat.com[209.132.183.28] X-Barracuda-Start-Time: 1405174772 X-Barracuda-Encrypted: AES256-SHA X-Barracuda-URL: http://192.48.176.25:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 On Sat, Jul 12, 2014 at 02:30:45AM +0200, Carlos E. R. wrote: > -----BEGIN PGP SIGNED MESSAGE----- > Hash: SHA1 > > > > On Saturday, 2014-07-05 at 08:28 -0400, Brian Foster wrote: > >On Fri, Jul 04, 2014 at 11:32:26PM +0200, Carlos E. R. wrote: > > > >>If I don't do that backup-format-restore, I get issues soon, and it crashes > >>within a day - I got after booting (the first event): > >> > > > >I echo Dave's previous question... within a day of doing what? Just > >using the system or doing more hibernation cycles? > > It is in the long post with the logs I posted. > > The first time it crashed, I rebooted, got some errors I probably did not > see, managed to mount the device, and I used the machine normally, doing > several hibernation cycles. On one of these, it crashed, within the day. > That still suggests something could be going on at runtime during the hibernation or wakeup cycle. Identifying some kind of runtime error or metadata inconsistency without involving hibernation would be a smoking gun for a general corruption. So far we have no evidence of reproduction without hibernation and no evidence of a persistent corruption. That doesn't rule out something going on on-disk, but it certainly suggests a runtime corruption during hibernation/wake is more likely. > > As explained in this part of the previous post: > > >>0.1> 2014-03-15 03:53:47 Telcontar kernel - - - [ 301.857523] XFS: Internal error XFS_WANT_CORRUPTED_RETURN at line 350 of file /home/abuild/rpmbuild/BUILD/kernel-desktop-3.11.10/linux-3.11/fs/xfs/xfs_all > >> > >>And some hours later: > >> > >><0.1> 2014-03-15 22:20:34 Telcontar kernel - - - [20151.298345] XFS: Internal error XFS_WANT_CORRUPTED_GOTO at line 1602 of file /home/abuild/rpmbuild/BUILD/kernel-desktop-3.11.10/linux-3.11/fs/xfs/xfs_allo > >> > >> > >>It was here that I decided to backup-format-restore instead. > > > > > > >>>That also means it's probably not be necessary to do a full backup, > >>>reformat and restore sequence as part of your routine here. xfs_repair > >>>should scour through all of the allocation metadata and yell if it finds > >>>something like free blocks allocated to a file. > >> > >>No, if I don't backup-format-restore it happens again within a day. There is > >>something lingering. Unless that was just chance... :-? > >> > >>It is true that during that day I hibernated several times more than needed > >>to see if it happened again - and it did. > >> > > > >This depends on what causes this to happen, not how frequent it happens. > >Does it continue to happen along with hibernation, or do you start > >seeing these kind of errors during normal use? > > > Except the first time that this happened, the sequence is this: > > I use the machine for weeks, without event, booting once, then hibernating > at least once per day. I finally reboot when I have to apply some system > update, or something special. > > Till one day, this "thing" happens. It happens inmediately after coming out > from hibernation, and puts the affected partition, always /home, in read > only mode. When it happens, I reboot, repair partition manually if needed, > then I back up the files, format it, and replace all the files from the > backup just made, with xfsdump. Well, this last time, I used rsync instead. > > > It has happened "only" four times: > > 2014-03-15 03:35:17 > 2014-03-15 22:20:34 > 2014-04-17 22:47:08 > 2014-06-29 12:32:18 > > > >If the latter, that could suggest something broken on disk. > > That was my first thought, because it started hapening after replacing the > hard disk, but also after a kernel update. But I have tested that disk > several times, with smartctl and with the manufacturer test tool, and > nothing came out. > I was referring to a potential on-disk corruption, but that's good to know as well. > > >If the > >former, that could simply suggest the fs (perhaps on-disk) has made it > >into some kind of state that makes this easier to reproduce, for > >whatever reason. It could be timing, location of metadata, > >fragmentation, or anything really for that matter, but it doesn't > >necessarily mean corruption (even though it doesn't rule it out). > >Perhaps the clean regeneration of everything by a from-scratch recovery > >simply makes this more difficult to reproduce until the fs naturally > >becomes more aged/fragmented, for example. > > > >This probably makes a pristine, pre-repair metadump of the reproducing > >fs more interesting. I could try some of my previous tests against a > >restore of that metadump. > > > Well, I suggest that, unless you can find something on the metadata (I just > sent you the link via email from google), we wait till the next event. I > will at that time take an intact metadata photo. But this can take a month > or two to happen again, if the pattern keeps. > That would be a good idea. I'll take a look at the metadump when I have a chance. If there is nothing out of the ordinary, the next best option is to metadump the fs that reproduces the behavior. I could retry some of my previous vm hibernation tests against that. As mentioned previously, once you have a more reliably reproducing state, that's also a good opportunity to see if you can narrow down which of the things you have running against the fs appear to trigger this. > > > > >I was somewhat thinking out loud originally discussing this topic. I was > >suggesting to run this against a restored metadump, not the primary > >dataset or a backup. > > > >The metadump creates an image of the metadata of the source fs in a file > >(no data is copied). This metadump image can be restored at will via > >'xfs_mdrestore.' This allows restoring to a file, mounting the file > >loopback, and performing experiments or investigation on the fs > >generally as it existed when the shutdown was reproducible. > > Ah... I see. > > > >So basically: > > > >- xfs_mdrestore > >- mount /mnt > >- rm -rf /mnt/* > > > >... was what I was suggesting. can be recreated from the > >metadump image afterwards to get back to square one. > > I see. > > Well, I tried this on a copy of the 'dd' image days ago, and nothing > hapened. I guess the procedure above would be the same. > A dd of the raw block device will preserve the metadata, so yeah that's effectively the same test. If there were an obvious free space corruption, the fs probably would have shutdown. I can retry the same test via the metadump on a debug kernel as well. Brian > > > > > >>I have an active bugzilla account at , I'm > >>logged in there now. I haven't checked if I can create a bug, not been sure > >>what parameters to use (product, component, whom to assign to). I think that > >>would be the most appropriate place. > >> > >>Meanwhile, I have uploaded the file to my google drive account, so I can > >>share it with anybody on request - ie, it is not public, I need to add a > >>gmail address to the list of people that can read the file. > >> > >>Alternatively, I could just email the file to people asking for it, offlist, > >>but not in a single email, in chunks limited to 1.5 MB per email. > >> > > > >Either of the bugzilla or google drive options works Ok for me. > > It's here: > > > > Whoever wants to read it, has to tell me the address to add to it, access is > not public. > > > - -- Cheers, > Carlos E. R. > (from 13.1 x86_64 "Bottle" at Telcontar) > -----BEGIN PGP SIGNATURE----- > Version: GnuPG v2.0.22 (GNU/Linux) > > iEYEARECAAYFAlPAgb0ACgkQtTMYHG2NR9U/FQCgjtwuDC0HTSG3i7DrEV8+qZeT > 6mUAn0FGf42SsU1WeRx/AAk4X2oqV4Bc > =pASJ > -----END PGP SIGNATURE----- > > _______________________________________________ > xfs mailing list > xfs@oss.sgi.com > http://oss.sgi.com/mailman/listinfo/xfs From bfoster@redhat.com Sat Jul 12 09:26:49 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: xfs@oss.sgi.com Delivered-To: xfs@oss.sgi.com Received: from relay.sgi.com (relay3.corp.sgi.com [198.149.34.15]) by oss.sgi.com (Postfix) with ESMTP id EAE737F47 for ; Sat, 12 Jul 2014 09:26:48 -0500 (CDT) Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by relay3.corp.sgi.com (Postfix) with ESMTP id 45BA2AC001 for ; Sat, 12 Jul 2014 07:26:45 -0700 (PDT) X-ASG-Debug-ID: 1405175203-04cb6c6ad063830001-NocioJ Received: from mx1.redhat.com (mx1.redhat.com [209.132.183.28]) by cuda.sgi.com with ESMTP id HCiMHmCUHGLO8fdH (version=TLSv1 cipher=AES256-SHA bits=256 verify=NO) for ; Sat, 12 Jul 2014 07:26:43 -0700 (PDT) X-Barracuda-Envelope-From: bfoster@redhat.com X-Barracuda-Apparent-Source-IP: 209.132.183.28 X-ASG-Whitelist: Client Received: from int-mx13.intmail.prod.int.phx2.redhat.com (int-mx13.intmail.prod.int.phx2.redhat.com [10.5.11.26]) by mx1.redhat.com (8.14.4/8.14.4) with ESMTP id s6CEQdea004281 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Sat, 12 Jul 2014 10:26:39 -0400 Received: from bfoster.bfoster ([10.18.41.237]) by int-mx13.intmail.prod.int.phx2.redhat.com (8.14.4/8.14.4) with ESMTP id s6CEQdPC003993; Sat, 12 Jul 2014 10:26:39 -0400 Received: by bfoster.bfoster (Postfix, from userid 1000) id 3D5DD124B7C; Sat, 12 Jul 2014 10:26:38 -0400 (EDT) Date: Sat, 12 Jul 2014 10:26:38 -0400 From: Brian Foster To: "Carlos E. R." Cc: XFS mailing list Subject: Re: Got "Internal error XFS_WANT_CORRUPTED_GOTO". Filesystem needs reformatting to correct issue. Message-ID: <20140712142637.GB53265@bfoster.bfoster> X-ASG-Orig-Subj: Re: Got "Internal error XFS_WANT_CORRUPTED_GOTO". Filesystem needs reformatting to correct issue. References: <20140702120441.GA51757@bfoster.bfoster> <20140703173916.GB3452@laptop.bfoster> <20140705122833.GA3573@bfoster.bfoster> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.5.23 (2014-03-12) X-Scanned-By: MIMEDefang 2.68 on 10.5.11.26 X-Barracuda-Connect: mx1.redhat.com[209.132.183.28] X-Barracuda-Start-Time: 1405175203 X-Barracuda-Encrypted: AES256-SHA X-Barracuda-URL: http://192.48.176.15:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 On Sat, Jul 12, 2014 at 03:45:07AM +0200, Carlos E. R. wrote: > -----BEGIN PGP SIGNED MESSAGE----- > Hash: SHA1 > > > > On Saturday, 2014-07-12 at 03:30 +0200, Carlos E. R. wrote: > > >So, please wait till I verify things again. Tomorrow, it is 3 AM here. > >Sorry :-( > > > >Unless "xfs_info tgtfile" gives the information about the device where > >"tgtfile" is stored (/dev/sdf2), not on the image file itself :-? > > > >I'm very confused. > > False alarm. See: > > > Telcontar:/data/storage_c/tmp_borrar # xfs_info tgtfile > meta-data=/dev/sde18 isize=256 agcount=4, agsize=35770496 blks > = sectsz=512 attr=2, projid32bit=0 > = crc=0 > data = bsize=4096 blocks=143081984, imaxpct=25 > = sunit=0 swidth=0 blks > naming =version 2 bsize=4096 ascii-ci=0 ftype=0 > log =internal bsize=4096 blocks=69864, version=2 > = sectsz=512 sunit=0 blks, lazy-count=1 > realtime =none extsz=4096 blocks=0, rtextents=0 > Telcontar:/data/storage_c/tmp_borrar # > > Telcontar:/data/storage_d/old_backup # xfs_info tgtfile > meta-data=/dev/sdf2 isize=256 agcount=4, agsize=122341568 blks > = sectsz=512 attr=2, projid32bit=0 > = crc=0 > data = bsize=4096 blocks=489366272, imaxpct=5 > = sunit=0 swidth=0 blks > naming =version 2 bsize=4096 ascii-ci=0 ftype=0 > log =internal bsize=4096 blocks=238948, version=2 > = sectsz=512 sunit=0 blks, lazy-count=1 > realtime =none extsz=4096 blocks=0, rtextents=0 > Telcontar:/data/storage_d/old_backup # > > Telcontar:/data/storage_d/old_backup # file tgtfile > tgtfile: XFS filesystem metadump image > Telcontar:/data/storage_d/old_backup # > > > It appears that the command "xfs_info" analyzes the current, underlying, > filesystem, not the one given on the command line. Or something in that > line, I'm too sleepy. I hope you can understand my meaning better than my > words... > xfs_info reports on the mounted fs. If you check out 'man xfs_info,' you'll see it specifies the mountpoint as a parameter but it can query the fs info from the actual mountpoint or any file therein. E.g., so it doesn't know anything about a metadump file and pointing it at one will just report on the fs that contains the file. If you wanted to test an actual metadump image, restore the metadump to an fs image, mount and test that: xfs_mdrestore ./metadump ./mynewfsimage mount ./mynewfsimage /mnt -o loop xfs_info /mnt/ Brian > > So the uploaded file is the correct one. > > > - -- Cheers, > Carlos E. R. > (from 13.1 x86_64 "Bottle" at Telcontar) > > -----BEGIN PGP SIGNATURE----- > Version: GnuPG v2.0.22 (GNU/Linux) > > iEYEARECAAYFAlPAkyMACgkQtTMYHG2NR9U2uACfTdPx8DGCkBzLGiSVGn3XCcSV > 7ukAnAvR1CjR9Jx3rPosLYNceBtQjJjf > =/odv > -----END PGP SIGNATURE----- > > _______________________________________________ > xfs mailing list > xfs@oss.sgi.com > http://oss.sgi.com/mailman/listinfo/xfs From douglas.harris@wccs.edu Sat Jul 12 19:45:02 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: * X-Spam-Status: No, score=1.2 required=5.0 tests=FREEMAIL_FORGED_REPLYTO, HTML_MESSAGE autolearn=no version=3.3.1 X-Original-To: xfs@oss.sgi.com Delivered-To: xfs@oss.sgi.com Received: from relay.sgi.com (relay3.corp.sgi.com [198.149.34.15]) by oss.sgi.com (Postfix) with ESMTP id 7E3017F5D for ; Sat, 12 Jul 2014 19:45:02 -0500 (CDT) Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by relay3.corp.sgi.com (Postfix) with ESMTP id 098BCAC001 for ; Sat, 12 Jul 2014 17:44:58 -0700 (PDT) X-ASG-Debug-ID: 1405212293-04cb6c6ad075470001-NocioJ Received: from zimbra.wccs.edu (zimbra.wccs.edu [207.157.86.98]) by cuda.sgi.com with ESMTP id OOVZ7gkEj9BECTuG; Sat, 12 Jul 2014 17:44:53 -0700 (PDT) X-Barracuda-Envelope-From: douglas.harris@wccs.edu X-Barracuda-Apparent-Source-IP: 207.157.86.98 Received: from localhost (localhost.localdomain [127.0.0.1]) by zimbra.wccs.edu (Postfix) with ESMTP id 98D8D6166A0; Sat, 12 Jul 2014 19:43:27 -0500 (CDT) X-Virus-Scanned: amavisd-new at wccs.edu Received: from zimbra.wccs.edu ([127.0.0.1]) by localhost (zimbra.wccs.edu [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id Xw0QmuHYisSO; Sat, 12 Jul 2014 19:43:25 -0500 (CDT) Received: from zimbra.wccs.edu (localhost.localdomain [127.0.0.1]) by zimbra.wccs.edu (Postfix) with ESMTP id DDCF66164AB; Sat, 12 Jul 2014 19:43:15 -0500 (CDT) Date: Sat, 12 Jul 2014 19:43:15 -0500 (CDT) From: Davie Chi Reply-To: Davie Chi Message-ID: <239336615.137390.1405212195904.JavaMail.root@zimbra> Subject: Directed to you MIME-Version: 1.0 X-ASG-Orig-Subj: Directed to you Content-Type: multipart/alternative; boundary="----=_Part_137389_1923894842.1405212195901" X-Originating-IP: [75.125.151.196] X-Mailer: Zimbra 6.0.10_GA_2692 (zclient/6.0.10_GA_2692) To: undisclosed-recipients:; X-Barracuda-Connect: zimbra.wccs.edu[207.157.86.98] X-Barracuda-Start-Time: 1405212293 X-Barracuda-URL: http://192.48.176.15:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 X-Barracuda-Spam-Score: 2.00 X-Barracuda-Spam-Status: No, SCORE=2.00 using per-user scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.7 tests=BSF_SC0_SA620a, BSF_SC2_MV0292, HTML_MESSAGE X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.7468 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.00 HTML_MESSAGE BODY: HTML included in message 1.50 BSF_SC2_MV0292 Custom rule MV0292 0.50 BSF_SC0_SA620a Custom Rule SA620a ------=_Part_137389_1923894842.1405212195901 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit An Mr Davie Chi manager in a private bank,I have a financial proposal of mutual benefit to you. contact for details, Sincerely, Davie Chi Davie.Hammond_chi@yahoo.com.hk ------=_Part_137389_1923894842.1405212195901 Content-Type: text/html; charset=utf-8 Content-Transfer-Encoding: 7bit

An Mr Davie Chi  manager in a private bank,I have a financial proposal of mutual benefit to you. contact for details,


Sincerely,
Davie Chi
Davie.Hammond_chi@yahoo.com.hk
------=_Part_137389_1923894842.1405212195901-- From sam.just@inktank.com Sat Jul 12 20:17:02 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: xfs@oss.sgi.com Delivered-To: xfs@oss.sgi.com Received: from relay.sgi.com (relay2.corp.sgi.com [137.38.102.29]) by oss.sgi.com (Postfix) with ESMTP id AB6D37F5D for ; Sat, 12 Jul 2014 20:17:02 -0500 (CDT) Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by relay2.corp.sgi.com (Postfix) with ESMTP id 92F14304032 for ; Sat, 12 Jul 2014 18:16:59 -0700 (PDT) X-ASG-Debug-ID: 1405214214-04cbb0421a7b630001-NocioJ Received: from mail-qa0-f52.google.com (mail-qa0-f52.google.com [209.85.216.52]) by cuda.sgi.com with ESMTP id hGTaG4I7NnoJJhx7 (version=TLSv1 cipher=RC4-SHA bits=128 verify=NO) for ; Sat, 12 Jul 2014 18:16:54 -0700 (PDT) X-Barracuda-Envelope-From: sam.just@inktank.com X-Barracuda-Apparent-Source-IP: 209.85.216.52 Received: by mail-qa0-f52.google.com with SMTP id j15so2132478qaq.11 for ; Sat, 12 Jul 2014 18:16:54 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:date:message-id:subject:from:to :content-type; bh=6PbZS9k+ehftSjslIntJrOYGL/++7BexPfSUXV+0Cig=; b=Ze/8KFhzfgPnhuPt8ry5rkuPuy9EHpvTQmCmaUJhmVwn6v71LPOF1giJNGzkW8Y/S2 cjWD0IJZ3lhjfGWSjeoUYZYmDs28aFelbHcNKAiAAQiRSZo4iqbqyAxo4k++bSLVBY7w R9m9fWOMU/teYUkLJEjY3DoTtNDq0Jn21IQgamjw0GljUkrpl0n/68O5t5lQAb/I009I u1DEoC2v1iJCXJs5lUaPkej0OvIH7mgZ8PmfzHsoMYCtkePIuk2jiFgCIEJ3tm0cox4D qE/OjqaAspzcNCvaIL/r3rlB0rMpCI5OIYrPUjWoBx4J+YjubW6LthsLTZntc9MG1F7i 7olw== X-Gm-Message-State: ALoCoQmsHjzYGwWy5xnzgLD4tideTcDaVHmqJfhKCbJfzatY2aDOmCLC/JngEqI4uM6xnJPpGgAV MIME-Version: 1.0 X-Received: by 10.224.79.11 with SMTP id n11mr9579414qak.40.1405214214228; Sat, 12 Jul 2014 18:16:54 -0700 (PDT) Received: by 10.96.109.194 with HTTP; Sat, 12 Jul 2014 18:16:54 -0700 (PDT) Date: Sat, 12 Jul 2014 18:16:54 -0700 Message-ID: Subject: consequences of XFS_IOC_FSSETXATTR on non-empty file? From: Samuel Just X-ASG-Orig-Subj: consequences of XFS_IOC_FSSETXATTR on non-empty file? To: xfs@oss.sgi.com, "ceph-devel@vger.kernel.org" , Sage Weil , Ilya Dryomov Content-Type: text/plain; charset=UTF-8 X-Barracuda-Connect: mail-qa0-f52.google.com[209.85.216.52] X-Barracuda-Start-Time: 1405214214 X-Barracuda-Encrypted: RC4-SHA X-Barracuda-URL: http://192.48.176.25:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 X-Barracuda-Spam-Score: 0.00 X-Barracuda-Spam-Status: No, SCORE=0.00 using per-user scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.7 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.7469 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- Hi, We are seeing reports of ceph-osd stores on xfs of files with some garbage data (possibly misplaced from data elsewhere in the filesystem). There was a bug for a while where the ceph-osd process would set a value for fsx_extsize on a non-empty (possibly sparse) file using XFS_IOC_FSSETXATTR. Could that plausibly result in a file with garbage data? Let me know if there is any additional information or detail which might be valuable. One report was on kernel versions 3.14.3 and 3.14.4. -Sam From david@fromorbit.com Sat Jul 12 20:26:30 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: xfs@oss.sgi.com Delivered-To: xfs@oss.sgi.com Received: from relay.sgi.com (relay3.corp.sgi.com [198.149.34.15]) by oss.sgi.com (Postfix) with ESMTP id CD33C7F67 for ; Sat, 12 Jul 2014 20:26:30 -0500 (CDT) Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by relay3.corp.sgi.com (Postfix) with ESMTP id 626CCAC002 for ; Sat, 12 Jul 2014 18:26:30 -0700 (PDT) X-ASG-Debug-ID: 1405214787-04bdf0356b78960001-NocioJ Received: from ipmail06.adl2.internode.on.net (ipmail06.adl2.internode.on.net [150.101.137.129]) by cuda.sgi.com with ESMTP id d3JBDrj8TrWu9AJu for ; Sat, 12 Jul 2014 18:26:28 -0700 (PDT) X-Barracuda-Envelope-From: david@fromorbit.com X-Barracuda-Apparent-Source-IP: 150.101.137.129 X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: AqIJAITfwVN5LG3lPGdsb2JhbABZgw6DTIUIpGIBBAacbQGBEBcEAQEBATg1hAQBBTocIxAIAw4KCSUPBSUDBxoTiEHGYhcYhWOJUAeEQwWbDYtYjBwr Received: from ppp121-44-109-229.lns20.syd6.internode.on.net (HELO dastard) ([121.44.109.229]) by ipmail06.adl2.internode.on.net with ESMTP; 13 Jul 2014 10:56:26 +0930 Received: from dave by dastard with local (Exim 4.80) (envelope-from ) id 1X68Ya-0003LD-MJ; Sun, 13 Jul 2014 11:26:24 +1000 Date: Sun, 13 Jul 2014 11:26:24 +1000 From: Dave Chinner To: Samuel Just Cc: xfs@oss.sgi.com, "ceph-devel@vger.kernel.org" , Sage Weil , Ilya Dryomov Subject: Re: consequences of XFS_IOC_FSSETXATTR on non-empty file? Message-ID: <20140713012624.GS4453@dastard> X-ASG-Orig-Subj: Re: consequences of XFS_IOC_FSSETXATTR on non-empty file? References: MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.5.21 (2010-09-15) X-Barracuda-Connect: ipmail06.adl2.internode.on.net[150.101.137.129] X-Barracuda-Start-Time: 1405214787 X-Barracuda-URL: http://192.48.157.11:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 X-Barracuda-Spam-Score: 0.00 X-Barracuda-Spam-Status: No, SCORE=0.00 using per-user scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.7 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.7470 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- On Sat, Jul 12, 2014 at 06:16:54PM -0700, Samuel Just wrote: > Hi, > > We are seeing reports of ceph-osd stores on xfs of files with some > garbage data (possibly misplaced from data elsewhere in the > filesystem). There was a bug for a while where the ceph-osd process > would set a value for fsx_extsize on a non-empty (possibly sparse) > file using XFS_IOC_FSSETXATTR. Could that plausibly result in a file > with garbage data? No, setting an extent size on a non-empty file will simply fail with EINVAL. Do you have any method of reproducing the bad data in files? Cheers, Dave. -- Dave Chinner david@fromorbit.com From sam.just@inktank.com Sat Jul 12 20:48:54 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: xfs@oss.sgi.com Delivered-To: xfs@oss.sgi.com Received: from relay.sgi.com (relay2.corp.sgi.com [137.38.102.29]) by oss.sgi.com (Postfix) with ESMTP id CBE1B7F73 for ; Sat, 12 Jul 2014 20:48:54 -0500 (CDT) Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by relay2.corp.sgi.com (Postfix) with ESMTP id B3386304032 for ; Sat, 12 Jul 2014 18:48:54 -0700 (PDT) X-ASG-Debug-ID: 1405216132-04cbb0421a7c060001-NocioJ Received: from mail-qc0-f175.google.com (mail-qc0-f175.google.com [209.85.216.175]) by cuda.sgi.com with ESMTP id 7mOFRVKqNHrkYnG0 (version=TLSv1 cipher=RC4-SHA bits=128 verify=NO) for ; Sat, 12 Jul 2014 18:48:53 -0700 (PDT) X-Barracuda-Envelope-From: sam.just@inktank.com X-Barracuda-Apparent-Source-IP: 209.85.216.175 Received: by mail-qc0-f175.google.com with SMTP id i8so2347394qcq.34 for ; Sat, 12 Jul 2014 18:48:52 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:in-reply-to:references:date :message-id:subject:from:to:cc:content-type; bh=iwt7GYll1IDYyf7Z3xYsNb9ZX7bMm9+95FFEZsOZWbI=; b=NpnBvxjLpJYs0suhOavBsKTNrKckGadEjWFn4YtgMVX0mkMgOxfvuXJSpLTspV1YdR G9HgJsuJv9e5oiXYg527z0B8OwInR+5oOs2OESXgXsI4NNEjYl4KAWX5X/Vftd+GnRIb HFRiE6atlF9xuXL6uinK3Ig32oZeBz0x9IVS4U/2v2nQrsPe6gzGFpXmq6Pge+63mDC9 Ts7lgKQDZlKNUmvke4GaqVKqEg/7sHS1jaR8/ct3qpOuJpD7rravhj232jyK2neo5kM6 2EIlw6stG5xi01h2C0iH7oObLa/VDR9DpN4Soi0GT2B2zGkqMsHscgbmBHh4WP1yyTQ3 Aomw== X-Gm-Message-State: ALoCoQn/MXCfYxAhZbb9tLVOufRCyREXsAQei5toCpn7tfvlWyCr2ukk3iM8ZyTQWxEpjiiB63YF MIME-Version: 1.0 X-Received: by 10.224.13.82 with SMTP id b18mr11770108qaa.8.1405216132602; Sat, 12 Jul 2014 18:48:52 -0700 (PDT) Received: by 10.96.109.194 with HTTP; Sat, 12 Jul 2014 18:48:52 -0700 (PDT) In-Reply-To: <20140713012624.GS4453@dastard> References: <20140713012624.GS4453@dastard> Date: Sat, 12 Jul 2014 18:48:52 -0700 Message-ID: Subject: Re: consequences of XFS_IOC_FSSETXATTR on non-empty file? From: Samuel Just X-ASG-Orig-Subj: Re: consequences of XFS_IOC_FSSETXATTR on non-empty file? To: Dave Chinner Cc: xfs@oss.sgi.com, "ceph-devel@vger.kernel.org" , Sage Weil , Ilya Dryomov Content-Type: multipart/mixed; boundary=047d7bdca91e6acdc904fe096079 X-Barracuda-Connect: mail-qc0-f175.google.com[209.85.216.175] X-Barracuda-Start-Time: 1405216133 X-Barracuda-Encrypted: RC4-SHA X-Barracuda-URL: http://192.48.176.25:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 X-Barracuda-Spam-Score: 0.00 X-Barracuda-Spam-Status: No, SCORE=0.00 using per-user scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.7 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.7470 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- --047d7bdca91e6acdc904fe096079 Content-Type: text/plain; charset=UTF-8 Actually, on this ubuntu kernel (3.13.0-24-generic), it doesn't seem to give an error. I'll attach my test case for that. We don't yet have a way of reproducing the corruption -- the ext_size change in the osd simply seemed like a promising lead. -Sam On Sat, Jul 12, 2014 at 6:26 PM, Dave Chinner wrote: > On Sat, Jul 12, 2014 at 06:16:54PM -0700, Samuel Just wrote: >> Hi, >> >> We are seeing reports of ceph-osd stores on xfs of files with some >> garbage data (possibly misplaced from data elsewhere in the >> filesystem). There was a bug for a while where the ceph-osd process >> would set a value for fsx_extsize on a non-empty (possibly sparse) >> file using XFS_IOC_FSSETXATTR. Could that plausibly result in a file >> with garbage data? > > No, setting an extent size on a non-empty file will simply fail > with EINVAL. > > Do you have any method of reproducing the bad data in files? > > Cheers, > > Dave. > -- > Dave Chinner > david@fromorbit.com --047d7bdca91e6acdc904fe096079 Content-Type: text/x-c++src; charset=US-ASCII; name="xfs_extsize_test.cc" Content-Disposition: attachment; filename="xfs_extsize_test.cc" Content-Transfer-Encoding: base64 X-Attachment-Id: f_hxjpc6z90 LyoqCiAqIFRyeSBjaGFuZ2luZyBleHRzaXplIG9uIGEgbm9uLWVtcHR5IHNwYXJzZSBvYmplY3QK ICovCgojaW5jbHVkZSA8eGZzL3hmcy5oPgojaW5jbHVkZSA8Y3N0ZGlvPgojaW5jbHVkZSA8dW5p c3RkLmg+CiNpbmNsdWRlIDxpb3N0cmVhbT4KI2luY2x1ZGUgPHN0cmluZy5oPgoKaW50IG1haW4o KSB7CiAgY2hhciBidWZbMjU2XTsKICBtZW1zZXQoYnVmLCAxLCBzaXplb2YoYnVmKSk7CgogIGlu dCBmZCA9IG9wZW4oInRlc3QiLCBPX1JEV1J8T19DUkVBVHxPX0VYQ0wsIDA2NjYpOwogIGFzc2Vy dChmZCA+PSAwKTsKCiAgaW50IHIgPSBwd3JpdGUoZmQsIGJ1ZiwgMSwgMjQ8PDEwKTsKICBhc3Nl cnQociA9PSAxKTsKCiAgY2xvc2UoZmQpOwoKICBmZCA9IG9wZW4oInRlc3QiLCBPX1JEV1IpOwog IGFzc2VydChmZCA+PSAwKTsKCiAgc3RydWN0IGZzeGF0dHIgZnN4OwogIHIgPSBpb2N0bChmZCwg WEZTX0lPQ19GU0dFVFhBVFRSLCAmZnN4KTsKICBpZiAociA8IDApIHsKICAgIGludCByZXQgPSAt ZXJybm87CiAgICBzdGQ6OmNlcnIgPDwgIkZTR0VUWEFUVFI6ICIgPDwgcmV0IDw8IHN0ZDo6ZW5k bDsKICAgIHJldHVybiByZXQ7CiAgfQoKICAvLyBhbHJlYWR5IHNldD8KICBpZiAoZnN4LmZzeF94 ZmxhZ3MgJiBYRlNfWEZMQUdfRVhUU0laRSkgewogICAgc3RkOjpjZXJyIDw8ICJhbHJlYWR5IHNl dCIgPDwgc3RkOjplbmRsOwogICAgcmV0dXJuIDA7CiAgfQoKICBzdGQ6OmNlcnIgPDwgZnN4LmZz eF9uZXh0ZW50cyA8PCAiIGV4ZW50cywgZXh0c2l6ZSBpcyAiIDw8IGZzeC5mc3hfZXh0c2l6ZSA8 PCBzdGQ6OmVuZGw7CgogIHVuc2lnbmVkIHZhbCA9IDQ8PDIwOwogIGZzeC5mc3hfeGZsYWdzIHw9 IFhGU19YRkxBR19FWFRTSVpFOwogIGZzeC5mc3hfZXh0c2l6ZSA9IHZhbDsKICAKICBpZiAoaW9j dGwoZmQsIFhGU19JT0NfRlNTRVRYQVRUUiwgJmZzeCkgPCAwKSB7CiAgICBpbnQgcmV0ID0gLWVy cm5vOwogICAgc3RkOjpjZXJyIDw8ICJGU1NFVFhBVFRSOiAiIDw8IHJldCA8PCBzdGQ6OmVuZGw7 CiAgICByZXR1cm4gcmV0OwogIH0KCiAgc3RydWN0IGZzeGF0dHIgZnN4MjsKICByID0gaW9jdGwo ZmQsIFhGU19JT0NfRlNHRVRYQVRUUiwgJmZzeDIpOwogIGlmIChyIDwgMCkgewogICAgaW50IHJl dCA9IC1lcnJubzsKICAgIHN0ZDo6Y2VyciA8PCAiRlNHRVRYQVRUUjogIiA8PCByZXQgPDwgc3Rk OjplbmRsOwogICAgcmV0dXJuIHJldDsKICB9CgogIGlmIChmc3gyLmZzeF94ZmxhZ3MgJiBYRlNf WEZMQUdfRVhUU0laRSkgewogICAgc3RkOjpjZXJyIDw8ICJzdWNjZXNzZnVsbHkgc2V0IHRvICIg PDwgZnN4Mi5mc3hfZXh0c2l6ZSA8PCBzdGQ6OmVuZGw7CiAgfQoKICBjbG9zZShmZCk7CgojaWYg MAogIGZkID0gb3BlbigidGVzdCIsIE9fUkRPTkxZKTsKICBhc3NlcnQoZmQgPj0gMCk7CgogIGNo YXIgemJ1ZlsyNDw8MTBdOwogIG1lbXNldCh6YnVmLCAwLCBzaXplb2YoemJ1ZikpOwogIGNoYXIg b2J1ZlsyNDw8MTBdOwogIHIgPSByZWFkKGZkLCBvYnVmLCBzaXplb2Yob2J1ZikpOwogIGFzc2Vy dChyID09IHNpemVvZihvYnVmKSk7CgogIHIgPSBtZW1jbXAoemJ1Ziwgb2J1Ziwgc2l6ZW9mKHpi dWYpKTsKICBhc3NlcnQociA9PSAwKTsKICBjbG9zZShmZCk7CiNlbmRpZgp9Cg== --047d7bdca91e6acdc904fe096079-- From root@krios.tbi.univie.ac.at Sat Jul 12 23:25:11 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: xfs@oss.sgi.com Delivered-To: xfs@oss.sgi.com Received: from relay.sgi.com (relay2.corp.sgi.com [137.38.102.29]) by oss.sgi.com (Postfix) with ESMTP id 581C47F56 for ; Sat, 12 Jul 2014 23:25:11 -0500 (CDT) Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by relay2.corp.sgi.com (Postfix) with ESMTP id 4A350304032 for ; Sat, 12 Jul 2014 21:25:08 -0700 (PDT) X-ASG-Debug-ID: 1405225505-04cb6c6ad37b530001-NocioJ Received: from krios.tbi.univie.ac.at (krios.tbi.univie.ac.at [131.130.44.60]) by cuda.sgi.com with ESMTP id c7PPB33CuepTFUKy for ; Sat, 12 Jul 2014 21:25:06 -0700 (PDT) X-Barracuda-Envelope-From: root@krios.tbi.univie.ac.at X-Barracuda-Apparent-Source-IP: 131.130.44.60 Received: by krios.tbi.univie.ac.at (Postfix) id 8AD725F29C; Sun, 13 Jul 2014 06:25:02 +0200 (CEST) Delivered-To: root@krios.tbi.univie.ac.at Received: by krios.tbi.univie.ac.at (Postfix, from userid 0) id 7B2765F34B; Sun, 13 Jul 2014 06:25:02 +0200 (CEST) From: root@krios.tbi.univie.ac.at (Cron Daemon) To: root@krios.tbi.univie.ac.at Subject: Cron test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.daily ) Content-Type: text/plain; charset=UTF-8 X-ASG-Orig-Subj: Cron test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.daily ) X-Cron-Env: X-Cron-Env: X-Cron-Env: X-Cron-Env: Message-Id: <20140713042502.7B2765F34B@krios.tbi.univie.ac.at> Date: Sun, 13 Jul 2014 06:25:02 +0200 (CEST) X-Barracuda-Connect: krios.tbi.univie.ac.at[131.130.44.60] X-Barracuda-Start-Time: 1405225506 X-Barracuda-URL: http://192.48.176.15:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 X-Barracuda-Spam-Score: 0.70 X-Barracuda-Spam-Status: No, SCORE=0.70 using per-user scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.7 tests=BSF_SC0_MISMATCH_TO, BSF_SC0_SA_TO_FROM_ADDR_MATCH, PR0N_SUBJECT X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.7472 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.00 BSF_SC0_MISMATCH_TO Envelope rcpt doesn't match header 0.20 PR0N_SUBJECT Subject has letters around special characters (pr0n) 0.50 BSF_SC0_SA_TO_FROM_ADDR_MATCH Sender Address Matches Recipient Address /etc/cron.daily/logrotate: error: error opening /home/git/gitlab/log/application.log: Permission denied error: error opening /home/git/gitlab/log/githost.log: Permission denied error: error opening /home/git/gitlab/log/production.log: Permission denied error: error opening /home/git/gitlab/log/satellites.log: Permission denied error: error opening /home/git/gitlab/log/sidekiq.log: Permission denied error: error opening /home/git/gitlab/log/unicorn.stderr.log: Permission denied error: error opening /home/git/gitlab/log/unicorn.stdout.log: Permission denied error: error opening /home/git/gitlab-shell/gitlab-shell.log: Permission denied run-parts: /etc/cron.daily/logrotate exited with return code 1 From BATV+30be317e0d497a8a114c+3976+infradead.org+hch@bombadil.srs.infradead.org Sun Jul 13 03:35:20 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: xfs@oss.sgi.com Delivered-To: xfs@oss.sgi.com Received: from relay.sgi.com (relay1.corp.sgi.com [137.38.102.111]) by oss.sgi.com (Postfix) with ESMTP id E53207F51 for ; Sun, 13 Jul 2014 03:35:20 -0500 (CDT) Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by relay1.corp.sgi.com (Postfix) with ESMTP id D73A58F8054 for ; Sun, 13 Jul 2014 01:35:17 -0700 (PDT) X-ASG-Debug-ID: 1405240514-04cb6c6ad384e50001-NocioJ Received: from picconi.debian.org (picconi.debian.org [5.153.231.3]) by cuda.sgi.com with ESMTP id oMPjDMJvTXpWpFbH (version=TLSv1 cipher=AES128-SHA bits=128 verify=NO) for ; Sun, 13 Jul 2014 01:35:15 -0700 (PDT) X-Barracuda-Envelope-From: BATV+30be317e0d497a8a114c+3976+infradead.org+hch@bombadil.srs.infradead.org X-Barracuda-Apparent-Source-IP: 5.153.231.3 Received: from bombadil.infradead.org ([2001:1868:205::9]) by picconi.debian.org with esmtps (TLS1.2:DHE_RSA_AES_256_CBC_SHA256:256) (Exim 4.80) (envelope-from ) id 1X6FFX-0004Ei-Hy for xfslibs-dev@packages.debian.org; Sun, 13 Jul 2014 08:35:13 +0000 Received: from hch by bombadil.infradead.org with local (Exim 4.80.1 #2 (Red Hat Linux)) id 1X6FE0-00086R-Ix; Sun, 13 Jul 2014 08:33:36 +0000 Date: Sun, 13 Jul 2014 01:33:36 -0700 From: Christoph Hellwig To: Andrei POPESCU Cc: Y Giridhar Appaji Nag , 751511@bugs.debian.org, xfslibs-dev@packages.debian.org Subject: Re: Bug#751511: xfslibs-dev: Incorrect licensing information in debian/copyright Message-ID: <20140713083336.GA24104@infradead.org> X-ASG-Orig-Subj: Re: Bug#751511: xfslibs-dev: Incorrect licensing information in debian/copyright References: <20140613142534.8854.10300.reportbug@sibsagar.btc.netapp.com> <20140613152414.GF2840@sid.nuvreauspam> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20140613152414.GF2840@sid.nuvreauspam> User-Agent: Mutt/1.5.23 (2014-03-12) X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html Delivered-To: xfslibs-dev@packages.debian.org X-Barracuda-Connect: picconi.debian.org[5.153.231.3] X-Barracuda-Start-Time: 1405240515 X-Barracuda-Encrypted: AES128-SHA X-Barracuda-URL: http://192.48.176.15:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 X-Barracuda-Spam-Score: 0.00 X-Barracuda-Spam-Status: No, SCORE=0.00 using per-user scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.7 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.7476 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- On Fri, Jun 13, 2014 at 06:24:14PM +0300, Andrei POPESCU wrote: > Control: reassign -1 xfslibs-dev > > On Vi, 13 iun 14, 19:55:34, Y Giridhar Appaji Nag wrote: > > Source: xfslibs-dev > > Severity: serious > > Justification: Policy 4.5 > > > > It looks like the xfslibs-dev package source files are licensed under LGPL > > v2.1, however the debian/copyright file indicates that only the libhandle > > package is under LGPL and that the rest of the package is licensed under GPL. All the headers in xfslibs-dev are licensed under the LGPL. The man pages don't have specific licensing information in the source file nad thus default to GPL. From BATV+30be317e0d497a8a114c+3976+infradead.org+hch@bombadil.srs.infradead.org Sun Jul 13 03:52:32 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: xfs@oss.sgi.com Delivered-To: xfs@oss.sgi.com Received: from relay.sgi.com (relay2.corp.sgi.com [137.38.102.29]) by oss.sgi.com (Postfix) with ESMTP id 26CA27F51 for ; Sun, 13 Jul 2014 03:52:32 -0500 (CDT) Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by relay2.corp.sgi.com (Postfix) with ESMTP id 19018304032 for ; Sun, 13 Jul 2014 01:52:27 -0700 (PDT) X-ASG-Debug-ID: 1405241545-04cb6c6ad1857f0001-NocioJ Received: from bombadil.infradead.org ([198.137.202.9]) by cuda.sgi.com with ESMTP id f7oNckuN7PaC1Fjf (version=TLSv1 cipher=AES256-SHA bits=256 verify=NO) for ; Sun, 13 Jul 2014 01:52:26 -0700 (PDT) X-Barracuda-Envelope-From: BATV+30be317e0d497a8a114c+3976+infradead.org+hch@bombadil.srs.infradead.org X-Barracuda-Apparent-Source-IP: 198.137.202.9 Received: from hch by bombadil.infradead.org with local (Exim 4.80.1 #2 (Red Hat Linux)) id 1X6FWD-0004ze-GG for xfs@oss.sgi.com; Sun, 13 Jul 2014 08:52:25 +0000 Date: Sun, 13 Jul 2014 01:52:25 -0700 From: Christoph Hellwig To: xfs@oss.sgi.com Subject: Re: Your message to xfs awaits moderator approval Message-ID: <20140713085225.GA19073@infradead.org> X-ASG-Orig-Subj: Re: Your message to xfs awaits moderator approval References: MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.5.23 (2014-03-12) X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: UNKNOWN[198.137.202.9] X-Barracuda-Start-Time: 1405241546 X-Barracuda-Encrypted: AES256-SHA X-Barracuda-URL: http://192.48.176.15:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 X-Barracuda-Spam-Score: 2.60 X-Barracuda-Spam-Status: No, SCORE=2.60 using per-user scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.7 tests=BSF_SC5_MJ1963, BSF_SC7_SA_HREF_FROM_MISMATCH_TEXT_URIx1_HL, RDNS_NONE X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.7477 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.10 RDNS_NONE Delivered to trusted network by a host with no rDNS 0.50 BSF_SC5_MJ1963 Custom Rule MJ1963 2.00 BSF_SC7_SA_HREF_FROM_MISMATCH_TEXT_URIx1_HL Custom Rule HREF_FROM_MISMATCH_TEXT_URIx1_HL Looks like the list server broke the forwarding of the Debian bug reports.. On Sun, Jul 13, 2014 at 03:35:22AM -0500, xfs-bounces@oss.sgi.com wrote: > Your mail to 'xfs' with the subject > > Re: Bug#751511: xfslibs-dev: Incorrect licensing information in > debian/copyright > > Is being held until the list moderator can review it for approval. > > The reason it is being held: > > Message has implicit destination > > Either the message will get posted to the list, or you will receive > notification of the moderator's decision. If you would like to cancel > this posting, please visit the following URL: > > http://oss.sgi.com/mailman/confirm/xfs/7ca40b56f5aea55cd0ed7b0f161cce447939b63b > ---end quoted text--- From debbugs@buxtehude.debian.org Sun Jul 13 03:57:09 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=unavailable version=3.3.1 X-Original-To: xfs@oss.sgi.com Delivered-To: xfs@oss.sgi.com Received: from relay.sgi.com (relay2.corp.sgi.com [137.38.102.29]) by oss.sgi.com (Postfix) with ESMTP id E652F7F61 for ; Sun, 13 Jul 2014 03:57:09 -0500 (CDT) Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by relay2.corp.sgi.com (Postfix) with ESMTP id A855E304032 for ; Sun, 13 Jul 2014 01:57:09 -0700 (PDT) X-ASG-Debug-ID: 1405241827-04bdf0356887130001-NocioJ Received: from buxtehude.debian.org (buxtehude.debian.org [140.211.166.26]) by cuda.sgi.com with ESMTP id 67Em1L6ExtDKEwLX (version=TLSv1 cipher=AES128-SHA bits=128 verify=NO) for ; Sun, 13 Jul 2014 01:57:07 -0700 (PDT) X-Barracuda-Envelope-From: debbugs@buxtehude.debian.org X-Barracuda-Apparent-Source-IP: 140.211.166.26 Received: from debbugs by buxtehude.debian.org with local (Exim 4.80) (envelope-from ) id 1X6Fai-000680-N5; Sun, 13 Jul 2014 08:57:04 +0000 X-Loop: owner@bugs.debian.org Subject: Bug#751511: xfslibs-dev: Incorrect licensing information in debian/copyright Reply-To: Christoph Hellwig , 751511@bugs.debian.org X-ASG-Orig-Subj: Bug#751511: xfslibs-dev: Incorrect licensing information in debian/copyright Resent-From: Christoph Hellwig Resent-To: debian-bugs-dist@lists.debian.org Resent-Cc: XFS Development Team X-Loop: owner@bugs.debian.org Resent-Date: Sun, 13 Jul 2014 08:57:01 +0000 Resent-Message-ID: X-Debian-PR-Message: followup 751511 X-Debian-PR-Package: xfslibs-dev X-Debian-PR-Keywords: wheezy-ignore X-Debian-PR-Source: xfsprogs Received: via spool by 751511-submit@bugs.debian.org id=B751511.140524158822254 (code B ref 751511); Sun, 13 Jul 2014 08:57:01 +0000 Received: (at 751511) by bugs.debian.org; 13 Jul 2014 08:53:08 +0000 Received: from bombadil.infradead.org ([198.137.202.9] ident=exim) by buxtehude.debian.org with esmtps (TLS1.2:DHE_RSA_AES_256_CBC_SHA256:256) (Exim 4.80) (envelope-from ) id 1X6FWt-0005mj-3u for 751511@bugs.debian.org; Sun, 13 Jul 2014 08:53:07 +0000 Received: from hch by bombadil.infradead.org with local (Exim 4.80.1 #2 (Red Hat Linux)) id 1X6FE0-00086R-Ix; Sun, 13 Jul 2014 08:33:36 +0000 Date: Sun, 13 Jul 2014 01:33:36 -0700 From: Christoph Hellwig To: Andrei POPESCU Cc: Y Giridhar Appaji Nag , 751511@bugs.debian.org, xfslibs-dev@packages.debian.org Message-ID: <20140713083336.GA24104@infradead.org> References: <20140613142534.8854.10300.reportbug@sibsagar.btc.netapp.com> <20140613152414.GF2840@sid.nuvreauspam> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20140613152414.GF2840@sid.nuvreauspam> User-Agent: Mutt/1.5.23 (2014-03-12) X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Greylist: delayed 1164 seconds by postgrey-1.34 at buxtehude; Sun, 13 Jul 2014 08:53:07 UTC Resent-Sender: Debian BTS X-Barracuda-Connect: buxtehude.debian.org[140.211.166.26] X-Barracuda-Start-Time: 1405241827 X-Barracuda-Encrypted: AES128-SHA X-Barracuda-URL: http://192.48.157.11:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 X-Barracuda-Spam-Score: 0.00 X-Barracuda-Spam-Status: No, SCORE=0.00 using per-user scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.7 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.7477 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- On Fri, Jun 13, 2014 at 06:24:14PM +0300, Andrei POPESCU wrote: > Control: reassign -1 xfslibs-dev > > On Vi, 13 iun 14, 19:55:34, Y Giridhar Appaji Nag wrote: > > Source: xfslibs-dev > > Severity: serious > > Justification: Policy 4.5 > > > > It looks like the xfslibs-dev package source files are licensed under LGPL > > v2.1, however the debian/copyright file indicates that only the libhandle > > package is under LGPL and that the rest of the package is licensed under GPL. All the headers in xfslibs-dev are licensed under the LGPL. The man pages don't have specific licensing information in the source file nad thus default to GPL. From hans.w.kraus@gmx.at Sun Jul 13 09:54:15 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=FREEMAIL_FROM autolearn=ham version=3.3.1 X-Original-To: xfs@oss.sgi.com Delivered-To: xfs@oss.sgi.com Received: from relay.sgi.com (relay1.corp.sgi.com [137.38.102.111]) by oss.sgi.com (Postfix) with ESMTP id 18CC67F4E for ; Sun, 13 Jul 2014 09:54:15 -0500 (CDT) Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by relay1.corp.sgi.com (Postfix) with ESMTP id 067BE8F8039 for ; Sun, 13 Jul 2014 07:54:11 -0700 (PDT) X-ASG-Debug-ID: 1405263249-04cb6c6ad0915d0001-NocioJ Received: from mout.gmx.net (mout.gmx.net [212.227.15.15]) by cuda.sgi.com with ESMTP id NL9Td32B36yju9Ww (version=TLSv1 cipher=AES256-SHA bits=256 verify=NO) for ; Sun, 13 Jul 2014 07:54:10 -0700 (PDT) X-Barracuda-Envelope-From: hans.w.kraus@gmx.at X-Barracuda-Apparent-Source-IP: 212.227.15.15 Received: from [80.120.180.154] by 3capp-gmx-bs57.server.lan (via HTTP); Sun, 13 Jul 2014 16:54:08 +0200 MIME-Version: 1.0 Message-ID: From: "Hans Kraus" To: xfs@oss.sgi.com Subject: Re: Error (failing assert) in xfs_repair Content-Type: text/plain; charset=UTF-8 X-ASG-Orig-Subj: Re: Error (failing assert) in xfs_repair Date: Sun, 13 Jul 2014 16:54:08 +0200 Importance: normal Sensitivity: Normal X-Priority: 3 X-Provags-ID: V03:K0:ongjqxWUGNOnBjpcgRI+KoMkryKGtULCozqRGotITDZ JEUyb2xCxtI1Ir9SfDvCc8B76nHMCTYJOJOvFlA0PXep04DslS 0rIlEdG/U3nIb1N/cJEDqxhW8u8JjA/SnLVElga1rFoKf6mOnl 1tCdH4GJTFrfIZ3q2t4sO+2tIdC5OxfR8KwFN1K93v45DH7Dhs cHgZuct5X7P1337xJXCEXhv1gCr7z9i2Cx6qV7th590EwwA3dS xpt6l1adeyotDzOwLg5MqJiMVdptWMtySceFDewN1dRvX9ZsAB Ca4rrY= X-Barracuda-Connect: mout.gmx.net[212.227.15.15] X-Barracuda-Start-Time: 1405263250 X-Barracuda-Encrypted: AES256-SHA X-Barracuda-URL: http://192.48.176.15:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 X-Barracuda-Spam-Score: 0.00 X-Barracuda-Spam-Status: No, SCORE=0.00 using per-user scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.7 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.7483 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- Hi Dave, thanks for the patch. It worked and I lost not very many files. The good thing with backuppc is, that only deleted or corrupted files are copied anew, as a result of the file deduplication (on file basis). Thanks, Hans From ilya.dryomov@inktank.com Sun Jul 13 12:01:18 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: xfs@oss.sgi.com Delivered-To: xfs@oss.sgi.com Received: from relay.sgi.com (relay2.corp.sgi.com [137.38.102.29]) by oss.sgi.com (Postfix) with ESMTP id 5493E7F62 for ; Sun, 13 Jul 2014 12:01:18 -0500 (CDT) Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by relay2.corp.sgi.com (Postfix) with ESMTP id 25AB2304043 for ; Sun, 13 Jul 2014 10:01:17 -0700 (PDT) X-ASG-Debug-ID: 1405270873-04cb6c6ad295be0001-NocioJ Received: from mail-qc0-f173.google.com (mail-qc0-f173.google.com [209.85.216.173]) by cuda.sgi.com with ESMTP id dou2hkYuqo3cgHIC (version=TLSv1 cipher=RC4-SHA bits=128 verify=NO) for ; Sun, 13 Jul 2014 10:01:13 -0700 (PDT) X-Barracuda-Envelope-From: ilya.dryomov@inktank.com X-Barracuda-Apparent-Source-IP: 209.85.216.173 Received: by mail-qc0-f173.google.com with SMTP id c9so2670461qcz.32 for ; Sun, 13 Jul 2014 10:01:13 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:in-reply-to:references:date :message-id:subject:from:to:cc:content-type; bh=8lA/CqW2o+BgmHbIKBpZKDWGRqYydXTGgdZeWbkNI+k=; b=eCg6hJbF67g5euLeRxIbW0XLRToxPOR3w5y3iM0SvM4aIDqu+xpCwcTPf6YkvRqAEd WnbK9FKC3DTWnOmM9sC22c9NjTAVZEts0QcbYK1ozRGvhfhvg5EDB8cp4PMozi8yPWLO 6w6B7Do98F+cLv3AgxwHS3/dHIclyGl2fz26sSYQab41INR5Q00PA4L4yVDwXcCwWujE rL/BC9WNb0NWWYuZ5l2AFow45yGYgjmpC+eja3wz2nR6ISFrPt4gTo2YZfp+6xKu4Xcj DlixOFh0kJqBTjbxbpMMGn8YWLSQ8ETqW7yOVELY2JQD9Y+loIGwRwDIvMBanNU3JA33 3FVg== X-Gm-Message-State: ALoCoQl/tUrnXCVgIr/x1yaF/nZJvupSw0JfXsigiFT2Z0qnVMz0Bbd2/XcO1MO20hNBgwNGH6K+ MIME-Version: 1.0 X-Received: by 10.140.26.69 with SMTP id 63mr17149229qgu.1.1405270873403; Sun, 13 Jul 2014 10:01:13 -0700 (PDT) Received: by 10.140.89.138 with HTTP; Sun, 13 Jul 2014 10:01:13 -0700 (PDT) In-Reply-To: References: <20140713012624.GS4453@dastard> Date: Sun, 13 Jul 2014 21:01:13 +0400 Message-ID: Subject: Re: consequences of XFS_IOC_FSSETXATTR on non-empty file? From: Ilya Dryomov X-ASG-Orig-Subj: Re: consequences of XFS_IOC_FSSETXATTR on non-empty file? To: Samuel Just Cc: Dave Chinner , xfs@oss.sgi.com, "ceph-devel@vger.kernel.org" , Sage Weil Content-Type: text/plain; charset=UTF-8 X-Barracuda-Connect: mail-qc0-f173.google.com[209.85.216.173] X-Barracuda-Start-Time: 1405270873 X-Barracuda-Encrypted: RC4-SHA X-Barracuda-URL: http://192.48.176.15:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 X-Barracuda-Spam-Score: 0.01 X-Barracuda-Spam-Status: No, SCORE=0.01 using per-user scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.7 tests=BSF_SC0_SA_TO_FROM_DOMAIN_MATCH X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.7485 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.01 BSF_SC0_SA_TO_FROM_DOMAIN_MATCH Sender Domain Matches Recipient Domain On Sun, Jul 13, 2014 at 5:48 AM, Samuel Just wrote: > Actually, on this ubuntu kernel (3.13.0-24-generic), it doesn't seem > to give an error. I'll attach my test case for that. We don't yet > have a way of reproducing the corruption -- the ext_size change in the > osd simply seemed like a promising lead. > -Sam > > On Sat, Jul 12, 2014 at 6:26 PM, Dave Chinner wrote: >> On Sat, Jul 12, 2014 at 06:16:54PM -0700, Samuel Just wrote: >>> Hi, >>> >>> We are seeing reports of ceph-osd stores on xfs of files with some >>> garbage data (possibly misplaced from data elsewhere in the >>> filesystem). There was a bug for a while where the ceph-osd process >>> would set a value for fsx_extsize on a non-empty (possibly sparse) >>> file using XFS_IOC_FSSETXATTR. Could that plausibly result in a file >>> with garbage data? >> >> No, setting an extent size on a non-empty file will simply fail >> with EINVAL. AFAIR it checks whether or not any extents are actually allocated, not whether the file is empty or not. I think if you call fsync() or even fdatasync() before close(fd), it will fail as expected. Thanks, Ilya From arekm@maven.pl Sun Jul 13 12:38:17 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=T_DKIM_INVALID autolearn=ham version=3.3.1 X-Original-To: xfs@oss.sgi.com Delivered-To: xfs@oss.sgi.com Received: from relay.sgi.com (relay2.corp.sgi.com [137.38.102.29]) by oss.sgi.com (Postfix) with ESMTP id C3BBA7F73 for ; Sun, 13 Jul 2014 12:38:17 -0500 (CDT) Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by relay2.corp.sgi.com (Postfix) with ESMTP id 7DF09304032 for ; Sun, 13 Jul 2014 10:38:17 -0700 (PDT) X-ASG-Debug-ID: 1405273093-04bdf0356897b30001-NocioJ Received: from mail-wg0-f43.google.com (mail-wg0-f43.google.com [74.125.82.43]) by cuda.sgi.com with ESMTP id rmKgzqbLdLiOhEeZ (version=TLSv1 cipher=RC4-SHA bits=128 verify=NO) for ; Sun, 13 Jul 2014 10:38:14 -0700 (PDT) X-Barracuda-Envelope-From: arekm@maven.pl X-Barracuda-Apparent-Source-IP: 74.125.82.43 Received: by mail-wg0-f43.google.com with SMTP id l18so2374745wgh.2 for ; Sun, 13 Jul 2014 10:38:13 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=maven.pl; s=maven; h=from:to:cc:subject:date:message-id:in-reply-to:references; bh=NI1qXlu5P8wc/XyoMl6j0GKnShL1v0noEKhpMCHGNiE=; b=loMVAgfS9LcxCFdbMsXRF4WkBqzedd/mSI2tKy0qJfJIUOP1+oJvxvVWd3edL+OtSH +Cky3w1CDUPjhpBsYyb3v7f2Ux8oIh3+6m2yi6gJZXLhx0/tBUrFh9tZShNh5AhoVFB5 ny5PehmhxbMdr3aGqJ+0b7lZ3CTgAPYpbiv3k= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references; bh=NI1qXlu5P8wc/XyoMl6j0GKnShL1v0noEKhpMCHGNiE=; b=Bet3mteFFhM11rUlytK9o8/qb5ODXMcaLjTGiz3IzaXiOPlLymhHegBV9O/FqFiVf9 qhO390Up+cWHV6de3OrStn9a/8lO3Lw1pnjzbAShqBnPjgXh0NWtTlod8HYxvRLX4frn hTl5DyBmcR4Xs3/eno5w99MiBdNmRSGiZnEt3K4+DjMmdhdzQ9Q3Hv7CXBScaWfRbnEJ 1TAoyr/j/ceGqvJdpN/QoU5FbNjGg/xSjtL7rHaz7pFQ8fjTDEcLTyGg4kmwsPE9Eqjb rfSfzCIEEO55ce6qDxDaci6Gsns7zSdhPbK3nW8wyVnfw9mw7MkbNA7mHrFu334XHwin GE9A== X-Gm-Message-State: ALoCoQkObzjrb0Agb1taH1YQaDIzzNDh69XKIDdRaCRRIcscg6l8L46lzJw7gB0c7kvyZF4eL4Oj X-Received: by 10.180.75.75 with SMTP id a11mr18680839wiw.3.1405273093083; Sun, 13 Jul 2014 10:38:13 -0700 (PDT) Received: from tarm.maven.pl (89-65-199-25.dynamic.chello.pl. [89.65.199.25]) by mx.google.com with ESMTPSA id k19sm21071078wie.20.2014.07.13.10.38.11 for (version=TLSv1.2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Sun, 13 Jul 2014 10:38:12 -0700 (PDT) From: =?UTF-8?q?Arkadiusz=20Mi=C5=9Bkiewicz?= To: xfs@oss.sgi.com Cc: =?UTF-8?q?Arkadiusz=20Mi=C5=9Bkiewicz?= Subject: [PATCH] Init errno before strto* calls. Date: Sun, 13 Jul 2014 19:38:08 +0200 X-ASG-Orig-Subj: [PATCH] Init errno before strto* calls. Message-Id: <1405273088-7956-1-git-send-email-arekm@maven.pl> X-Mailer: git-send-email 2.0.1 In-Reply-To: <1405107244-14234-1-git-send-email-arekm@maven.pl> References: <1405107244-14234-1-git-send-email-arekm@maven.pl> X-Barracuda-Connect: mail-wg0-f43.google.com[74.125.82.43] X-Barracuda-Start-Time: 1405273094 X-Barracuda-Encrypted: RC4-SHA X-Barracuda-URL: http://192.48.157.11:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 X-Barracuda-Spam-Score: 0.00 X-Barracuda-Spam-Status: No, SCORE=0.00 using per-user scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.7 tests=DKIM_SIGNED, DKIM_VERIFIED X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.7486 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- -0.00 DKIM_VERIFIED Domain Keys Identified Mail: signature passes verification 0.00 DKIM_SIGNED Domain Keys Identified Mail: message has a signature Eric Sandeen noted that strtol(3) and friends require errno initialization. From (fresh) man page: NOTES Since strtol() can legitimately return 0, LONG_MAX, or LONG_MIN (LLONG_MAX or LLONG_MIN for strtoll()) on both success and failure, the calling program should set errno to 0 before the call, and then determine if an error occurred by checking whether errno has a non-zero value after the call. So do it. --- libxcmd/input.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/libxcmd/input.c b/libxcmd/input.c index 397a124..711b527 100644 --- a/libxcmd/input.c +++ b/libxcmd/input.c @@ -153,6 +153,7 @@ cvtnum( char *sp; int c; + errno = 0; i = strtoll(s, &sp, 0); if ((i == LLONG_MIN || i == LLONG_MAX) && errno == ERANGE) return -1LL; @@ -239,6 +240,7 @@ cvttime( unsigned long i; char *sp; + errno = 0; i = strtoul(s, &sp, 0); if (i == ULONG_MAX && errno == ERANGE) return 0; @@ -348,6 +350,7 @@ prid_from_string( * Allow either a full numeric or a valid projectname, even * if it starts with a digit. */ + errno = 0; prid_long = strtoul(project, &sp, 10); if (*project != '\0' && *sp == '\0') { if ((prid_long == ULONG_MAX && errno == ERANGE) @@ -369,6 +372,7 @@ uid_from_string( unsigned long uid_long; char *sp; + errno = 0; uid_long = strtoul(user, &sp, 10); if (sp != user) { if ((uid_long == ULONG_MAX && errno == ERANGE) @@ -390,6 +394,7 @@ gid_from_string( unsigned long gid_long; char *sp; + errno = 0; gid_long = strtoul(group, &sp, 10); if (sp != group) { if ((gid_long == ULONG_MAX && errno == ERANGE) -- 2.0.1 From david@fromorbit.com Sun Jul 13 17:55:49 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: xfs@oss.sgi.com Delivered-To: xfs@oss.sgi.com Received: from relay.sgi.com (relay2.corp.sgi.com [137.38.102.29]) by oss.sgi.com (Postfix) with ESMTP id 8DA567F47 for ; Sun, 13 Jul 2014 17:55:49 -0500 (CDT) Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by relay2.corp.sgi.com (Postfix) with ESMTP id 8920B304032 for ; Sun, 13 Jul 2014 15:55:46 -0700 (PDT) X-ASG-Debug-ID: 1405292143-04cb6c6ad29ed90001-NocioJ Received: from ipmail06.adl2.internode.on.net (ipmail06.adl2.internode.on.net [150.101.137.129]) by cuda.sgi.com with ESMTP id StmSIjpOBFGXKCE7 for ; Sun, 13 Jul 2014 15:55:44 -0700 (PDT) X-Barracuda-Envelope-From: david@fromorbit.com X-Barracuda-Apparent-Source-IP: 150.101.137.129 X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: ArYNABIOw1N5LG3lPGdsb2JhbABZgw6DTKltAQEBAQEBBpcHhWYBgQoXBAEBAQE4NYQDAQEEATocIwULCAMYCSUPBSUDBxoTiDoHxyMXGIVjiVAHgy2BFgWbDYtYjBwr Received: from ppp121-44-109-229.lns20.syd6.internode.on.net (HELO dastard) ([121.44.109.229]) by ipmail06.adl2.internode.on.net with ESMTP; 14 Jul 2014 08:25:34 +0930 Received: from dave by dastard with local (Exim 4.80) (envelope-from ) id 1X6Sg8-0005ev-IB; Mon, 14 Jul 2014 08:55:32 +1000 Date: Mon, 14 Jul 2014 08:55:32 +1000 From: Dave Chinner To: Ilya Dryomov Cc: Samuel Just , xfs@oss.sgi.com, "ceph-devel@vger.kernel.org" , Sage Weil Subject: Re: consequences of XFS_IOC_FSSETXATTR on non-empty file? Message-ID: <20140713225532.GD22339@dastard> X-ASG-Orig-Subj: Re: consequences of XFS_IOC_FSSETXATTR on non-empty file? References: <20140713012624.GS4453@dastard> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.5.21 (2010-09-15) X-Barracuda-Connect: ipmail06.adl2.internode.on.net[150.101.137.129] X-Barracuda-Start-Time: 1405292143 X-Barracuda-URL: http://192.48.176.15:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 X-Barracuda-Spam-Score: 0.00 X-Barracuda-Spam-Status: No, SCORE=0.00 using per-user scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.7 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.7491 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- On Sun, Jul 13, 2014 at 09:01:13PM +0400, Ilya Dryomov wrote: > On Sun, Jul 13, 2014 at 5:48 AM, Samuel Just wrote: > > Actually, on this ubuntu kernel (3.13.0-24-generic), it doesn't seem > > to give an error. I'll attach my test case for that. We don't yet > > have a way of reproducing the corruption -- the ext_size change in the > > osd simply seemed like a promising lead. > > -Sam > > > > On Sat, Jul 12, 2014 at 6:26 PM, Dave Chinner wrote: > >> On Sat, Jul 12, 2014 at 06:16:54PM -0700, Samuel Just wrote: > >>> Hi, > >>> > >>> We are seeing reports of ceph-osd stores on xfs of files with some > >>> garbage data (possibly misplaced from data elsewhere in the > >>> filesystem). There was a bug for a while where the ceph-osd process > >>> would set a value for fsx_extsize on a non-empty (possibly sparse) > >>> file using XFS_IOC_FSSETXATTR. Could that plausibly result in a file > >>> with garbage data? > >> > >> No, setting an extent size on a non-empty file will simply fail > >> with EINVAL. > > AFAIR it checks whether or not any extents are actually allocated, not > whether the file is empty or not. FWIW, that's an implementation detail, not the definition of the intended behaviour of the ioctl. Indeed, the man page says: "The fsx_xflags realtime file bit and the file's extent size may be changed only when the file is empty, ..." For most people, "[non-]empty file" is much more easily understood than "a file without real extents, but might have been written to and so have dirty, in-memory delayed allocation data whose asynchronous flushing may or may not affect the behaviour of a call to XFS_IOC_FSSETXATTR". i.e. the intended application behaviour is that they should only be able to change the extent size hint *before* any data is written to the file. > I think if you call fsync() or even > fdatasync() before close(fd), it will fail as expected. Only if you are trying to change the extent size immediately after the first write you do to an empty file. Which is, as per the above, not the recommended or intended use of the ioctl. Cheers, Dave. -- Dave Chinner david@fromorbit.com From david@fromorbit.com Sun Jul 13 18:04:14 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: xfs@oss.sgi.com Delivered-To: xfs@oss.sgi.com Received: from relay.sgi.com (relay1.corp.sgi.com [137.38.102.111]) by oss.sgi.com (Postfix) with ESMTP id 9C4477F50 for ; Sun, 13 Jul 2014 18:04:14 -0500 (CDT) Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by relay1.corp.sgi.com (Postfix) with ESMTP id 838518F8050 for ; Sun, 13 Jul 2014 16:04:14 -0700 (PDT) X-ASG-Debug-ID: 1405292648-04cbb0421ba5720001-NocioJ Received: from ipmail06.adl2.internode.on.net (ipmail06.adl2.internode.on.net [150.101.137.129]) by cuda.sgi.com with ESMTP id 5zAGA4A7Hy44AViq for ; Sun, 13 Jul 2014 16:04:09 -0700 (PDT) X-Barracuda-Envelope-From: david@fromorbit.com X-Barracuda-Apparent-Source-IP: 150.101.137.129 X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: ArkNAEUPw1N5LG3lPGdsb2JhbABZgw6DTFGpHAEBAQEBAQaXB4VmAYEKFwQBAQEBODWEBAEFIw8BIyMQCAMYAgIFIQICDwUlAwcaE4hBr0eXXBcYgRSET4lQB4J3NoEWBZsNl3Qr Received: from ppp121-44-109-229.lns20.syd6.internode.on.net (HELO dastard) ([121.44.109.229]) by ipmail06.adl2.internode.on.net with ESMTP; 14 Jul 2014 08:34:08 +0930 Received: from dave by dastard with local (Exim 4.80) (envelope-from ) id 1X6SoQ-0005gb-8g; Mon, 14 Jul 2014 09:04:06 +1000 Date: Mon, 14 Jul 2014 09:04:06 +1000 From: Dave Chinner To: Arkadiusz =?utf-8?Q?Mi=C5=9Bkiewicz?= Cc: xfs@oss.sgi.com Subject: Re: [PATCH] Init errno before strto* calls. Message-ID: <20140713230406.GE22339@dastard> X-ASG-Orig-Subj: Re: [PATCH] Init errno before strto* calls. References: <1405107244-14234-1-git-send-email-arekm@maven.pl> <1405273088-7956-1-git-send-email-arekm@maven.pl> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: <1405273088-7956-1-git-send-email-arekm@maven.pl> User-Agent: Mutt/1.5.21 (2010-09-15) X-Barracuda-Connect: ipmail06.adl2.internode.on.net[150.101.137.129] X-Barracuda-Start-Time: 1405292648 X-Barracuda-URL: http://192.48.176.25:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 X-Barracuda-Spam-Score: 0.00 X-Barracuda-Spam-Status: No, SCORE=0.00 using per-user scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.7 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.7491 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- On Sun, Jul 13, 2014 at 07:38:08PM +0200, Arkadiusz Miśkiewicz wrote: > Eric Sandeen noted that strtol(3) and friends require errno > initialization. From (fresh) man page: > > NOTES > Since strtol() can legitimately return 0, LONG_MAX, > or LONG_MIN (LLONG_MAX or LLONG_MIN for strtoll()) on both > success and failure, the calling program should set errno > to 0 before the call, and then determine if an error > occurred by checking whether errno has a non-zero > value after the call. > > So do it. > --- > libxcmd/input.c | 5 +++++ > 1 file changed, 5 insertions(+) > > diff --git a/libxcmd/input.c b/libxcmd/input.c > index 397a124..711b527 100644 > --- a/libxcmd/input.c > +++ b/libxcmd/input.c > @@ -153,6 +153,7 @@ cvtnum( > char *sp; > int c; > > + errno = 0; > i = strtoll(s, &sp, 0); > if ((i == LLONG_MIN || i == LLONG_MAX) && errno == ERANGE) > return -1LL; I think that just checking for (errno != 0) is better here, because then we also catch errors from unsupported formats or invalid strings (i.e. EINVAL). i.e. if the result is out of range, then ERANGE is always returned, so we don't need to check the actual value at all... Both patches could be condensed down to a single patch that does: + errno = 0; i = strtoll(s, &sp, 0); + if (errno) + return -1LL; Cheers, Dave. -- Dave Chinner david@fromorbit.com From david@fromorbit.com Sun Jul 13 19:58:57 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: xfs@oss.sgi.com Delivered-To: xfs@oss.sgi.com Received: from relay.sgi.com (relay2.corp.sgi.com [137.38.102.29]) by oss.sgi.com (Postfix) with ESMTP id 660B27F53 for ; Sun, 13 Jul 2014 19:58:57 -0500 (CDT) Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by relay2.corp.sgi.com (Postfix) with ESMTP id 689E0304032 for ; Sun, 13 Jul 2014 17:58:54 -0700 (PDT) X-ASG-Debug-ID: 1405299531-04cbb0421ba7f00001-NocioJ Received: from ipmail06.adl2.internode.on.net (ipmail06.adl2.internode.on.net [150.101.137.129]) by cuda.sgi.com with ESMTP id gNLAWt76egqh3NRV for ; Sun, 13 Jul 2014 17:58:52 -0700 (PDT) X-Barracuda-Envelope-From: david@fromorbit.com X-Barracuda-Apparent-Source-IP: 150.101.137.129 X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: AroNAG4qw1N5LG3lPGdsb2JhbABZgw6DTFGpHAEBAQEBAQaXB4VmAYEMFwQBAQEBODWEAwEBBSMPARQPIxAIAxUDAgIFIQICDwUlAwcaE4hBrzKFN5IiFxiBFIRPiQNNB4J3gUwFmw2XdCuBMg Received: from ppp121-44-109-229.lns20.syd6.internode.on.net (HELO dastard) ([121.44.109.229]) by ipmail06.adl2.internode.on.net with ESMTP; 14 Jul 2014 10:28:22 +0930 Received: from dave by dastard with local (Exim 4.80) (envelope-from ) id 1X6Uaz-0005tf-M9; Mon, 14 Jul 2014 10:58:21 +1000 Date: Mon, 14 Jul 2014 10:58:21 +1000 From: Dave Chinner To: Arkadiusz =?utf-8?Q?Mi=C5=9Bkiewicz?= Cc: xfs@oss.sgi.com Subject: Re: [PATCH 3/3] xfs: null unused quota inodes when quota is on Message-ID: <20140714005821.GT4453@dastard> X-ASG-Orig-Subj: Re: [PATCH 3/3] xfs: null unused quota inodes when quota is on References: <1405034779-2028-1-git-send-email-david@fromorbit.com> <1405034779-2028-4-git-send-email-david@fromorbit.com> <201407111722.48507.arekm@maven.pl> <201407111730.10168.arekm@maven.pl> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: <201407111730.10168.arekm@maven.pl> User-Agent: Mutt/1.5.21 (2010-09-15) X-Barracuda-Connect: ipmail06.adl2.internode.on.net[150.101.137.129] X-Barracuda-Start-Time: 1405299531 X-Barracuda-URL: http://192.48.176.25:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 X-Barracuda-Spam-Score: 0.00 X-Barracuda-Spam-Status: No, SCORE=0.00 using per-user scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.7 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.7493 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- On Fri, Jul 11, 2014 at 05:30:10PM +0200, Arkadiusz Miśkiewicz wrote: > On Friday 11 of July 2014, Arkadiusz Miśkiewicz wrote: > > On Friday 11 of July 2014, Dave Chinner wrote: > > > From: Dave Chinner > > > > > > When quota is on, it is expected that unused quota inodes have a > > > value of NULLFSINO. The changes to support a separate project quota > > > in 3.12 broken this rule for non-project quota inode enabled > > > filesystem, as the code now refuses to write the group quota inode > > > if neither group or project quotas are enabled. This regression was > > > introduced by commit d892d58 ("xfs: Start using pquotaino from the > > > superblock"). > > > > > > In this case, we should be writing NULLFSINO rather than nothing to > > > ensure that we leave the group quota inode in a valid state while > > > quotas are enabled. > > > > > > Failure to do so doesn't cause a current kernel to break - the > > > separate project quota inodes introduced translation code to always > > > treat a zero inode as NULLFSINO. This was introduced by commit > > > 0102629 ("xfs: Initialize all quota inodes to be NULLFSINO") with is > > > also in 3.12 but older kernels do not do this and hence taking a > > > filesystem back to an older kernel can result in quotas failing > > > initialisation at mount time. When that happens, we see this in > > > dmesg: > > > > > > [ 1649.215390] XFS (sdb): Mounting Filesystem > > > [ 1649.316894] XFS (sdb): Failed to initialize disk quotas. > > > [ 1649.316902] XFS (sdb): Ending clean mount > > > > > > By ensuring that we write NULLFSINO to quota inodes that aren't > > > active, we avoid this problem. > > > > > > Signed-off-by: Dave Chinner ..... > Actually there is a problem with different options, so likely more fixes is > needed. gquotinode doesn't get allocated if mounted with grpquota: > > 3.16git+patch: > [arekm@t400 test]$ rm 50M-image > [arekm@t400 test]$ truncate -s 50M 50M-image > [arekm@t400 test]$ mkfs.xfs -f 50M-image > meta-data=50M-image isize=256 agcount=2, agsize=6400 blks > = sectsz=512 attr=2, projid32bit=1 > = crc=0 finobt=0 > data = bsize=4096 blocks=12800, imaxpct=25 > = sunit=0 swidth=0 blks > naming =version 2 bsize=4096 ascii-ci=0 ftype=0 > log =internal log bsize=4096 blocks=853, version=2 > = sectsz=512 sunit=0 blks, lazy-count=1 > realtime =none extsz=4096 blocks=0, rtextents=0 > $ xfs_db 50M-image -c "sb 0" -c "print" |grep quot > uquotino = 0 > gquotino = 0 > pquotino = 0 > $ sudo mount 50M-image /media/floppy/ -o grpquota > $ sudo umount /media/floppy/ > $ xfs_db 50M-image -c "sb 0" -c "print" |grep quot > uquotino = null > gquotino = null > pquotino = 0 Ok, I can reproduce that. What a freakin' mess. We can't unconditionally write NULLFSINO to the field because of the way the updates and logging of the superblock buffer work - it only updates the fields that are changed, so most updates (which occur during mount or unmount) don't set the quota inode fields at all. In fact, the whole "only write the specific sb fields" code seems like an optimisation that is no longer needed, given that we never actually update or log the superblock buffer in a fast path anymore. So, for the dev tree, I'm just going to rip all this crap out. As to a small, targeted regression fix, well, I haven't worked that out yet.... -Dave. -- Dave Chinner david@fromorbit.com From dave@fromorbit.com Sun Jul 13 23:49:12 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: xfs@oss.sgi.com Delivered-To: xfs@oss.sgi.com Received: from relay.sgi.com (relay2.corp.sgi.com [137.38.102.29]) by oss.sgi.com (Postfix) with ESMTP id A37A87F60 for ; Sun, 13 Jul 2014 23:49:12 -0500 (CDT) Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by relay2.corp.sgi.com (Postfix) with ESMTP id 99414304053 for ; Sun, 13 Jul 2014 21:49:12 -0700 (PDT) X-ASG-Debug-ID: 1405313350-04cb6c6ad2a7e30001-NocioJ Received: from ipmail06.adl2.internode.on.net (ipmail06.adl2.internode.on.net [150.101.137.129]) by cuda.sgi.com with ESMTP id 7dED8KDYIF5WCpDz for ; Sun, 13 Jul 2014 21:49:11 -0700 (PDT) X-Barracuda-Envelope-From: dave@fromorbit.com X-Barracuda-Apparent-Source-IP: 150.101.137.129 X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: Av4OAGNgw1N5LG3lPGdsb2JhbABYgw6IVKRnAQEBAQEBBp1/FwQBAQEBODWEBAEFJy8zCBgxOQMHFBmIQcclhXuOGgWzASuBMSQ Received: from ppp121-44-109-229.lns20.syd6.internode.on.net (HELO dastard) ([121.44.109.229]) by ipmail06.adl2.internode.on.net with ESMTP; 14 Jul 2014 14:19:03 +0930 Received: from disappointment.disaster.area ([192.168.1.110] helo=disappointment) by dastard with esmtp (Exim 4.80) (envelope-from ) id 1X6YCE-0006Jd-Ad for xfs@oss.sgi.com; Mon, 14 Jul 2014 14:49:02 +1000 Received: from dave by disappointment with local (Exim 4.82_1-5b7a7c0-XX) (envelope-from ) id 1X6YCE-0007ah-9k for xfs@oss.sgi.com; Mon, 14 Jul 2014 14:49:02 +1000 From: Dave Chinner To: xfs@oss.sgi.com Subject: [PATCH 1/3] Revert "xfs: block allocation work needs to be kswapd aware" Date: Mon, 14 Jul 2014 14:48:57 +1000 X-ASG-Orig-Subj: [PATCH 1/3] Revert "xfs: block allocation work needs to be kswapd aware" Message-Id: <1405313339-29110-2-git-send-email-david@fromorbit.com> X-Mailer: git-send-email 2.0.0 In-Reply-To: <1405313339-29110-1-git-send-email-david@fromorbit.com> References: <1405313339-29110-1-git-send-email-david@fromorbit.com> X-Barracuda-Connect: ipmail06.adl2.internode.on.net[150.101.137.129] X-Barracuda-Start-Time: 1405313350 X-Barracuda-URL: http://192.48.176.15:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 X-Barracuda-Spam-Score: 0.00 X-Barracuda-Spam-Status: No, SCORE=0.00 using per-user scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.7 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.7497 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- From: Dave Chinner This reverts commit 1f6d64829db78a7e1d63e15c9f48f0a5d2b5a679. This commit resulted in regressions in performance in low memory situations where kswapd was doing writeback of delayed allocation blocks. It resulted in significant parallelism of the kswapd work and with the special kswapd flags meant that hundreds of active allocation could dip into kswapd specific memory reserves and avoid being throttled. This cause a large amount of performance variation, as well as random OOM-killer invocations that didn't previously exist. Signed-off-by: Dave Chinner Reviewed-by: Brian Foster --- fs/xfs/xfs_bmap_util.c | 16 +++------------- fs/xfs/xfs_bmap_util.h | 13 ++++++------- 2 files changed, 9 insertions(+), 20 deletions(-) diff --git a/fs/xfs/xfs_bmap_util.c b/fs/xfs/xfs_bmap_util.c index 703b3ec..057f671 100644 --- a/fs/xfs/xfs_bmap_util.c +++ b/fs/xfs/xfs_bmap_util.c @@ -258,23 +258,14 @@ xfs_bmapi_allocate_worker( struct xfs_bmalloca *args = container_of(work, struct xfs_bmalloca, work); unsigned long pflags; - unsigned long new_pflags = PF_FSTRANS; - /* - * we are in a transaction context here, but may also be doing work - * in kswapd context, and hence we may need to inherit that state - * temporarily to ensure that we don't block waiting for memory reclaim - * in any way. - */ - if (args->kswapd) - new_pflags |= PF_MEMALLOC | PF_SWAPWRITE | PF_KSWAPD; - - current_set_flags_nested(&pflags, new_pflags); + /* we are in a transaction context here */ + current_set_flags_nested(&pflags, PF_FSTRANS); args->result = __xfs_bmapi_allocate(args); complete(args->done); - current_restore_flags_nested(&pflags, new_pflags); + current_restore_flags_nested(&pflags, PF_FSTRANS); } /* @@ -293,7 +284,6 @@ xfs_bmapi_allocate( args->done = &done; - args->kswapd = current_is_kswapd(); INIT_WORK_ONSTACK(&args->work, xfs_bmapi_allocate_worker); queue_work(xfs_alloc_wq, &args->work); wait_for_completion(&done); diff --git a/fs/xfs/xfs_bmap_util.h b/fs/xfs/xfs_bmap_util.h index 075f722..935ed2b 100644 --- a/fs/xfs/xfs_bmap_util.h +++ b/fs/xfs/xfs_bmap_util.h @@ -50,13 +50,12 @@ struct xfs_bmalloca { xfs_extlen_t total; /* total blocks needed for xaction */ xfs_extlen_t minlen; /* minimum allocation size (blocks) */ xfs_extlen_t minleft; /* amount must be left after alloc */ - bool eof; /* set if allocating past last extent */ - bool wasdel; /* replacing a delayed allocation */ - bool userdata;/* set if is user data */ - bool aeof; /* allocated space at eof */ - bool conv; /* overwriting unwritten extents */ - bool stack_switch; - bool kswapd; /* allocation in kswapd context */ + char eof; /* set if allocating past last extent */ + char wasdel; /* replacing a delayed allocation */ + char userdata;/* set if is user data */ + char aeof; /* allocated space at eof */ + char conv; /* overwriting unwritten extents */ + char stack_switch; int flags; struct completion *done; struct work_struct work; -- 2.0.0 From dave@fromorbit.com Sun Jul 13 23:49:14 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: xfs@oss.sgi.com Delivered-To: xfs@oss.sgi.com Received: from relay.sgi.com (relay3.corp.sgi.com [198.149.34.15]) by oss.sgi.com (Postfix) with ESMTP id 786227F60 for ; Sun, 13 Jul 2014 23:49:14 -0500 (CDT) Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by relay3.corp.sgi.com (Postfix) with ESMTP id 11E5CAC007 for ; Sun, 13 Jul 2014 21:49:14 -0700 (PDT) X-ASG-Debug-ID: 1405313347-04bdf0356ba9080003-NocioJ Received: from ipmail06.adl2.internode.on.net (ipmail06.adl2.internode.on.net [150.101.137.129]) by cuda.sgi.com with ESMTP id BvVsmkhYmcHGeBdH for ; Sun, 13 Jul 2014 21:49:11 -0700 (PDT) X-Barracuda-Envelope-From: dave@fromorbit.com X-Barracuda-Apparent-Source-IP: 150.101.137.129 X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: Av4OAGNgw1N5LG3lPGdsb2JhbABYgw6IVKRnAQEBAQEBBp1/FwQBAQEBODWEBAEFJy8zCBgxOQMHFBkbiCbHJYV7jhoFswErgTEk Received: from ppp121-44-109-229.lns20.syd6.internode.on.net (HELO dastard) ([121.44.109.229]) by ipmail06.adl2.internode.on.net with ESMTP; 14 Jul 2014 14:19:03 +0930 Received: from disappointment.disaster.area ([192.168.1.110] helo=disappointment) by dastard with esmtp (Exim 4.80) (envelope-from ) id 1X6YCE-0006Je-B3 for xfs@oss.sgi.com; Mon, 14 Jul 2014 14:49:02 +1000 Received: from dave by disappointment with local (Exim 4.82_1-5b7a7c0-XX) (envelope-from ) id 1X6YCE-0007am-AK for xfs@oss.sgi.com; Mon, 14 Jul 2014 14:49:02 +1000 From: Dave Chinner To: xfs@oss.sgi.com Subject: [PATCH 2/3] xfs: refine the allocation stack switch Date: Mon, 14 Jul 2014 14:48:58 +1000 X-ASG-Orig-Subj: [PATCH 2/3] xfs: refine the allocation stack switch Message-Id: <1405313339-29110-3-git-send-email-david@fromorbit.com> X-Mailer: git-send-email 2.0.0 In-Reply-To: <1405313339-29110-1-git-send-email-david@fromorbit.com> References: <1405313339-29110-1-git-send-email-david@fromorbit.com> X-Barracuda-Connect: ipmail06.adl2.internode.on.net[150.101.137.129] X-Barracuda-Start-Time: 1405313351 X-Barracuda-URL: http://192.48.157.11:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 X-Barracuda-Spam-Score: 0.00 X-Barracuda-Spam-Status: No, SCORE=0.00 using per-user scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.7 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.7497 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- From: Dave Chinner The allocation stack switch at xfs_bmapi_allocate() has served it's purpose, but is no longer a sufficient solution to the stack usage problem we have in the XFS allocation path. Whilst the kernel stack size is now 16k, that is not a valid reason for undoing all our "keep stack usage down" modifications. What it does allow us to do is have the freedom to refine and perfect the modifications knowing that if we get it wrong it won't blow up in our faces - we have a safety net now. This is important because we still have the issue of older kernels having smaller stacks and that they are still supported and are demonstrating a wide range of different stack overflows. Red Hat has several open bugs for allocation based stack overflows from directory modifications and direct IO block allocation and these problems still need to be solved. If we can solve them upstream, then distro's won't need to bake their own unique solutions. To that end, I've observed that every allocation based stack overflow report has had a specific characteristic - it has happened during or directly after a bmap btree block split. That event requires a new block to be allocated to the tree, and so we effectively stack one allocation stack on top of another, and that's when we get into trouble. A further observation is that bmap btree block splits are much rarer than writeback allocation - over a range of different workloads I've observed the ratio of bmap btree inserts to splits ranges from 100:1 (xfstests run) to 10000:1 (local VM image server with sparse files that range in the hundreds of thousands to millions of extents). Either way, bmap btree split events are much, much rarer than allocation events. Finally, we have to move the kswapd state to the allocation workqueue work when allocation is done on behalf of kswapd. This is proving to cause significant perturbation in performance under memory pressure and appears to be generating allocation deadlock warnings under some workloads, so avoiding the use of a workqueue for the majority of kswapd writeback allocation will minimise the impact of such behaviour. Hence it makes sense to move the stack switch to xfs_btree_split() and only do it for bmap btree splits. Stack switches during allocation will be much rarer, so there won't be significant performacne overhead caused by switching stacks. The worse case stack from all allocation paths will be split, not just writeback. And the majority of memory allocations will be done in the correct context (e.g. kswapd) without causing additional latency, and so we simplify the memory reclaim interactions between processes, workqueues and kswapd. The worst stack I've been able to generate with this patch in place is 5600 bytes deep. It's very revealing because we exit XFS at: 37) 1768 64 kmem_cache_alloc+0x13b/0x170 about 1800 bytes of stack consumed, and the remaining 3800 bytes (and 36 functions) is memory reclaim, swap and the IO stack. And this occurs in the inode allocation from an open(O_CREAT) syscall, not writeback. The amount of stack being used is much less than I've previously be able to generate - fs_mark testing has been able to generate stack usage of around 7k without too much trouble; with this patch it's only just getting to 5.5k. This is primarily because the metadata allocation paths (e.g. directory blocks) are no longer causing double splits on the same stack, and hence now stack tracing is showing swapping being the worst stack consumer rather than XFS. Performance of fs_mark inode create workloads is unchanged. Performance of fs_mark async fsync workloads is consistently good with context switches reduced by around 150,000/s (30%). Performance of dbench, streaming IO and postmark is unchanged. Allocation deadlock warnings have not been seen on the workloads that generated them since adding this patch. Signed-off-by: Dave Chinner --- fs/xfs/xfs_bmap.c | 7 ++--- fs/xfs/xfs_bmap.h | 4 +-- fs/xfs/xfs_bmap_util.c | 43 -------------------------- fs/xfs/xfs_bmap_util.h | 13 +++----- fs/xfs/xfs_btree.c | 82 +++++++++++++++++++++++++++++++++++++++++++++++++- fs/xfs/xfs_iomap.c | 3 +- 6 files changed, 90 insertions(+), 62 deletions(-) diff --git a/fs/xfs/xfs_bmap.c b/fs/xfs/xfs_bmap.c index 96175df..75c3fe5 100644 --- a/fs/xfs/xfs_bmap.c +++ b/fs/xfs/xfs_bmap.c @@ -4298,8 +4298,8 @@ xfs_bmapi_delay( } -int -__xfs_bmapi_allocate( +static int +xfs_bmapi_allocate( struct xfs_bmalloca *bma) { struct xfs_mount *mp = bma->ip->i_mount; @@ -4578,9 +4578,6 @@ xfs_bmapi_write( bma.flist = flist; bma.firstblock = firstblock; - if (flags & XFS_BMAPI_STACK_SWITCH) - bma.stack_switch = 1; - while (bno < end && n < *nmap) { inhole = eof || bma.got.br_startoff > bno; wasdelay = !inhole && isnullstartblock(bma.got.br_startblock); diff --git a/fs/xfs/xfs_bmap.h b/fs/xfs/xfs_bmap.h index 38ba36e..b879ca5 100644 --- a/fs/xfs/xfs_bmap.h +++ b/fs/xfs/xfs_bmap.h @@ -77,7 +77,6 @@ typedef struct xfs_bmap_free * from written to unwritten, otherwise convert from unwritten to written. */ #define XFS_BMAPI_CONVERT 0x040 -#define XFS_BMAPI_STACK_SWITCH 0x080 #define XFS_BMAPI_FLAGS \ { XFS_BMAPI_ENTIRE, "ENTIRE" }, \ @@ -86,8 +85,7 @@ typedef struct xfs_bmap_free { XFS_BMAPI_PREALLOC, "PREALLOC" }, \ { XFS_BMAPI_IGSTATE, "IGSTATE" }, \ { XFS_BMAPI_CONTIG, "CONTIG" }, \ - { XFS_BMAPI_CONVERT, "CONVERT" }, \ - { XFS_BMAPI_STACK_SWITCH, "STACK_SWITCH" } + { XFS_BMAPI_CONVERT, "CONVERT" } static inline int xfs_bmapi_aflag(int w) diff --git a/fs/xfs/xfs_bmap_util.c b/fs/xfs/xfs_bmap_util.c index 057f671..64731ef 100644 --- a/fs/xfs/xfs_bmap_util.c +++ b/fs/xfs/xfs_bmap_util.c @@ -249,49 +249,6 @@ xfs_bmap_rtalloc( } /* - * Stack switching interfaces for allocation - */ -static void -xfs_bmapi_allocate_worker( - struct work_struct *work) -{ - struct xfs_bmalloca *args = container_of(work, - struct xfs_bmalloca, work); - unsigned long pflags; - - /* we are in a transaction context here */ - current_set_flags_nested(&pflags, PF_FSTRANS); - - args->result = __xfs_bmapi_allocate(args); - complete(args->done); - - current_restore_flags_nested(&pflags, PF_FSTRANS); -} - -/* - * Some allocation requests often come in with little stack to work on. Push - * them off to a worker thread so there is lots of stack to use. Otherwise just - * call directly to avoid the context switch overhead here. - */ -int -xfs_bmapi_allocate( - struct xfs_bmalloca *args) -{ - DECLARE_COMPLETION_ONSTACK(done); - - if (!args->stack_switch) - return __xfs_bmapi_allocate(args); - - - args->done = &done; - INIT_WORK_ONSTACK(&args->work, xfs_bmapi_allocate_worker); - queue_work(xfs_alloc_wq, &args->work); - wait_for_completion(&done); - destroy_work_on_stack(&args->work); - return args->result; -} - -/* * Check if the endoff is outside the last extent. If so the caller will grow * the allocation to a stripe unit boundary. All offsets are considered outside * the end of file for an empty fork, so 1 is returned in *eof in that case. diff --git a/fs/xfs/xfs_bmap_util.h b/fs/xfs/xfs_bmap_util.h index 935ed2b..2fdb72d 100644 --- a/fs/xfs/xfs_bmap_util.h +++ b/fs/xfs/xfs_bmap_util.h @@ -50,12 +50,11 @@ struct xfs_bmalloca { xfs_extlen_t total; /* total blocks needed for xaction */ xfs_extlen_t minlen; /* minimum allocation size (blocks) */ xfs_extlen_t minleft; /* amount must be left after alloc */ - char eof; /* set if allocating past last extent */ - char wasdel; /* replacing a delayed allocation */ - char userdata;/* set if is user data */ - char aeof; /* allocated space at eof */ - char conv; /* overwriting unwritten extents */ - char stack_switch; + bool eof; /* set if allocating past last extent */ + bool wasdel; /* replacing a delayed allocation */ + bool userdata;/* set if is user data */ + bool aeof; /* allocated space at eof */ + bool conv; /* overwriting unwritten extents */ int flags; struct completion *done; struct work_struct work; @@ -65,8 +64,6 @@ struct xfs_bmalloca { int xfs_bmap_finish(struct xfs_trans **tp, struct xfs_bmap_free *flist, int *committed); int xfs_bmap_rtalloc(struct xfs_bmalloca *ap); -int xfs_bmapi_allocate(struct xfs_bmalloca *args); -int __xfs_bmapi_allocate(struct xfs_bmalloca *args); int xfs_bmap_eof(struct xfs_inode *ip, xfs_fileoff_t endoff, int whichfork, int *eof); int xfs_bmap_count_blocks(struct xfs_trans *tp, struct xfs_inode *ip, diff --git a/fs/xfs/xfs_btree.c b/fs/xfs/xfs_btree.c index bf810c6..cf893bc 100644 --- a/fs/xfs/xfs_btree.c +++ b/fs/xfs/xfs_btree.c @@ -33,6 +33,7 @@ #include "xfs_error.h" #include "xfs_trace.h" #include "xfs_cksum.h" +#include "xfs_alloc.h" /* * Cursor allocation zone. @@ -2323,7 +2324,7 @@ error1: * record (to be inserted into parent). */ STATIC int /* error */ -xfs_btree_split( +__xfs_btree_split( struct xfs_btree_cur *cur, int level, union xfs_btree_ptr *ptrp, @@ -2503,6 +2504,85 @@ error0: return error; } +struct xfs_btree_split_args { + struct xfs_btree_cur *cur; + int level; + union xfs_btree_ptr *ptrp; + union xfs_btree_key *key; + struct xfs_btree_cur **curp; + int *stat; /* success/failure */ + int result; + bool kswapd; /* allocation in kswapd context */ + struct completion *done; + struct work_struct work; +}; + +/* + * Stack switching interfaces for allocation + */ +static void +xfs_btree_split_worker( + struct work_struct *work) +{ + struct xfs_btree_split_args *args = container_of(work, + struct xfs_btree_split_args, work); + unsigned long pflags; + unsigned long new_pflags = PF_FSTRANS; + + /* + * we are in a transaction context here, but may also be doing work + * in kswapd context, and hence we may need to inherit that state + * temporarily to ensure that we don't block waiting for memory reclaim + * in any way. + */ + if (args->kswapd) + new_pflags |= PF_MEMALLOC | PF_SWAPWRITE | PF_KSWAPD; + + current_set_flags_nested(&pflags, new_pflags); + + args->result = __xfs_btree_split(args->cur, args->level, args->ptrp, + args->key, args->curp, args->stat); + complete(args->done); + + current_restore_flags_nested(&pflags, new_pflags); +} + +/* + * BMBT split requests often come in with little stack to work on. Push + * them off to a worker thread so there is lots of stack to use. For the other + * btree types, just call directly to avoid the context switch overhead here. + */ +STATIC int /* error */ +xfs_btree_split( + struct xfs_btree_cur *cur, + int level, + union xfs_btree_ptr *ptrp, + union xfs_btree_key *key, + struct xfs_btree_cur **curp, + int *stat) /* success/failure */ +{ + struct xfs_btree_split_args args; + DECLARE_COMPLETION_ONSTACK(done); + + if (cur->bc_btnum != XFS_BTNUM_BMAP) + return __xfs_btree_split(cur, level, ptrp, key, curp, stat); + + args.cur = cur; + args.level = level; + args.ptrp = ptrp; + args.key = key; + args.curp = curp; + args.stat = stat; + args.done = &done; + args.kswapd = current_is_kswapd(); + INIT_WORK_ONSTACK(&args.work, xfs_btree_split_worker); + queue_work(xfs_alloc_wq, &args.work); + wait_for_completion(&done); + destroy_work_on_stack(&args.work); + return args.result; +} + + /* * Copy the old inode root contents into a real block and make the * broot point to it. diff --git a/fs/xfs/xfs_iomap.c b/fs/xfs/xfs_iomap.c index 6c5eb4c..6d3ec2b 100644 --- a/fs/xfs/xfs_iomap.c +++ b/fs/xfs/xfs_iomap.c @@ -749,8 +749,7 @@ xfs_iomap_write_allocate( * pointer that the caller gave to us. */ error = xfs_bmapi_write(tp, ip, map_start_fsb, - count_fsb, - XFS_BMAPI_STACK_SWITCH, + count_fsb, 0, &first_block, 1, imap, &nimaps, &free_list); if (error) -- 2.0.0 From dave@fromorbit.com Sun Jul 13 23:49:16 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: xfs@oss.sgi.com Delivered-To: xfs@oss.sgi.com Received: from relay.sgi.com (relay3.corp.sgi.com [198.149.34.15]) by oss.sgi.com (Postfix) with ESMTP id 6761B7F60 for ; Sun, 13 Jul 2014 23:49:16 -0500 (CDT) Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by relay3.corp.sgi.com (Postfix) with ESMTP id F2E6CAC006 for ; Sun, 13 Jul 2014 21:49:15 -0700 (PDT) X-ASG-Debug-ID: 1405313347-04bdf0356ba9080001-NocioJ Received: from ipmail06.adl2.internode.on.net (ipmail06.adl2.internode.on.net [150.101.137.129]) by cuda.sgi.com with ESMTP id 54wEgMeC6Ki82jvV for ; Sun, 13 Jul 2014 21:49:08 -0700 (PDT) X-Barracuda-Envelope-From: dave@fromorbit.com X-Barracuda-Apparent-Source-IP: 150.101.137.129 X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: AsQcAGNgw1N5LG3lPGdsb2JhbABYgw5SrFECFgEBAQEBAQYFaZQ8iFUXBAEBAQE4NYRgO4ECAweIbg6gEacGhXuHQIFDaoQtBbBvghIrL4ED Received: from ppp121-44-109-229.lns20.syd6.internode.on.net (HELO dastard) ([121.44.109.229]) by ipmail06.adl2.internode.on.net with ESMTP; 14 Jul 2014 14:19:03 +0930 Received: from disappointment.disaster.area ([192.168.1.110] helo=disappointment) by dastard with esmtp (Exim 4.80) (envelope-from ) id 1X6YCE-0006Jc-9z for xfs@oss.sgi.com; Mon, 14 Jul 2014 14:49:02 +1000 Received: from dave by disappointment with local (Exim 4.82_1-5b7a7c0-XX) (envelope-from ) id 1X6YCE-0007ae-8y for xfs@oss.sgi.com; Mon, 14 Jul 2014 14:49:02 +1000 From: Dave Chinner To: xfs@oss.sgi.com Subject: [PATCH 0/3, V2] xfs; fixes for 3.16-rc5 Date: Mon, 14 Jul 2014 14:48:56 +1000 X-ASG-Orig-Subj: [PATCH 0/3, V2] xfs; fixes for 3.16-rc5 Message-Id: <1405313339-29110-1-git-send-email-david@fromorbit.com> X-Mailer: git-send-email 2.0.0 X-Barracuda-Connect: ipmail06.adl2.internode.on.net[150.101.137.129] X-Barracuda-Start-Time: 1405313347 X-Barracuda-URL: http://192.48.157.11:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 X-Barracuda-Spam-Score: 0.00 X-Barracuda-Spam-Status: No, SCORE=0.00 using per-user scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.7 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.7497 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- Hi folks, This is an updated series of fixes for 3.16-rc5, first posted here: http://oss.sgi.com/pipermail/xfs/2014-July/037159.html The first patch is unchanged, the other two have been modified as a result of review feedback (thanks Brian and Arkadiusz!). Please review and test. -Dave. Version 2 - get rid of unused flags in struct xfs_bmalloca - get rid of XFS_BMAPI_STACK_SWITCH - fix gquotino being NULLed incorrectly when group quota was enabled on filesystems with a shared group/project quota inode. From dave@fromorbit.com Sun Jul 13 23:49:15 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: xfs@oss.sgi.com Delivered-To: xfs@oss.sgi.com Received: from relay.sgi.com (relay1.corp.sgi.com [137.38.102.111]) by oss.sgi.com (Postfix) with ESMTP id 9D3A57F69 for ; Sun, 13 Jul 2014 23:49:15 -0500 (CDT) Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by relay1.corp.sgi.com (Postfix) with ESMTP id 74E568F804C for ; Sun, 13 Jul 2014 21:49:12 -0700 (PDT) X-ASG-Debug-ID: 1405313347-04bdf0356ba9080002-NocioJ Received: from ipmail06.adl2.internode.on.net (ipmail06.adl2.internode.on.net [150.101.137.129]) by cuda.sgi.com with ESMTP id TkC5IqVPypCpwhxl for ; Sun, 13 Jul 2014 21:49:10 -0700 (PDT) X-Barracuda-Envelope-From: dave@fromorbit.com X-Barracuda-Apparent-Source-IP: 150.101.137.129 X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: Av4OAGNgw1N5LG3lPGdsb2JhbABYgw6IVKRnAQEBAQEBBp1/FwQBAQEBODWEBAEFJyAPMwgYMTkDBxQZiEG0eZIshXuJA4UXBbMBK4Ey Received: from ppp121-44-109-229.lns20.syd6.internode.on.net (HELO dastard) ([121.44.109.229]) by ipmail06.adl2.internode.on.net with ESMTP; 14 Jul 2014 14:19:03 +0930 Received: from disappointment.disaster.area ([192.168.1.110] helo=disappointment) by dastard with esmtp (Exim 4.80) (envelope-from ) id 1X6YCE-0006Jf-Bd for xfs@oss.sgi.com; Mon, 14 Jul 2014 14:49:02 +1000 Received: from dave by disappointment with local (Exim 4.82_1-5b7a7c0-XX) (envelope-from ) id 1X6YCE-0007ar-An for xfs@oss.sgi.com; Mon, 14 Jul 2014 14:49:02 +1000 From: Dave Chinner To: xfs@oss.sgi.com Subject: [PATCH 3/3] xfs: null unused quota inodes when quota is on Date: Mon, 14 Jul 2014 14:48:59 +1000 X-ASG-Orig-Subj: [PATCH 3/3] xfs: null unused quota inodes when quota is on Message-Id: <1405313339-29110-4-git-send-email-david@fromorbit.com> X-Mailer: git-send-email 2.0.0 In-Reply-To: <1405313339-29110-1-git-send-email-david@fromorbit.com> References: <1405313339-29110-1-git-send-email-david@fromorbit.com> X-Barracuda-Connect: ipmail06.adl2.internode.on.net[150.101.137.129] X-Barracuda-Start-Time: 1405313349 X-Barracuda-URL: http://192.48.157.11:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 X-Barracuda-Spam-Score: 0.00 X-Barracuda-Spam-Status: No, SCORE=0.00 using per-user scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.7 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.7497 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- From: Dave Chinner When quota is on, it is expected that unused quota inodes have a value of NULLFSINO. The changes to support a separate project quota in 3.12 broken this rule for non-project quota inode enabled filesystem, as the code now refuses to write the group quota inode if neither group or project quotas are enabled. This regression was introduced by commit d892d58 ("xfs: Start using pquotaino from the superblock"). In this case, we should be writing NULLFSINO rather than nothing to ensure that we leave the group quota inode in a valid state while quotas are enabled. Failure to do so doesn't cause a current kernel to break - the separate project quota inodes introduced translation code to always treat a zero inode as NULLFSINO. This was introduced by commit 0102629 ("xfs: Initialize all quota inodes to be NULLFSINO") with is also in 3.12 but older kernels do not do this and hence taking a filesystem back to an older kernel can result in quotas failing initialisation at mount time. When that happens, we see this in dmesg: [ 1649.215390] XFS (sdb): Mounting Filesystem [ 1649.316894] XFS (sdb): Failed to initialize disk quotas. [ 1649.316902] XFS (sdb): Ending clean mount By ensuring that we write NULLFSINO to quota inodes that aren't active, we avoid this problem. We have to be really careful when determining if the quota inodes are active or not, because we don't want to write a NULLFSINO if the quota inodes are active and we simply aren't updating them. Signed-off-by: Dave Chinner --- fs/xfs/xfs_sb.c | 25 +++++++++++++++++++++---- 1 file changed, 21 insertions(+), 4 deletions(-) diff --git a/fs/xfs/xfs_sb.c b/fs/xfs/xfs_sb.c index c3453b1..7703fa6 100644 --- a/fs/xfs/xfs_sb.c +++ b/fs/xfs/xfs_sb.c @@ -483,10 +483,16 @@ xfs_sb_quota_to_disk( } /* - * GQUOTINO and PQUOTINO cannot be used together in versions - * of superblock that do not have pquotino. from->sb_flags - * tells us which quota is active and should be copied to - * disk. + * GQUOTINO and PQUOTINO cannot be used together in versions of + * superblock that do not have pquotino. from->sb_flags tells us which + * quota is active and should be copied to disk. If neither are active, + * make sure we write NULLFSINO to the sb_gquotino field as a quota + * inode value of "0" is invalid when the XFS_SB_VERSION_QUOTA feature + * bit is set. + * + * Note that we don't need to handle the sb_uquotino or sb_pquotino here + * as they do not require any translation. Hence the main sb field loop + * will write them appropriately from the in-core superblock. */ if ((*fields & XFS_SB_GQUOTINO) && (from->sb_qflags & XFS_GQUOTA_ACCT)) @@ -494,6 +500,17 @@ xfs_sb_quota_to_disk( else if ((*fields & XFS_SB_PQUOTINO) && (from->sb_qflags & XFS_PQUOTA_ACCT)) to->sb_gquotino = cpu_to_be64(from->sb_pquotino); + else { + /* + * We can't rely on just the fields being logged to tell us + * that it is safe to write NULLFSINO - we should only do that + * if quotas are not actually enabled. Hence only write + * NULLFSINO if both in-core quota inodes are NULL. + */ + if (from->sb_gquotino == NULLFSINO && + from->sb_pquotino == NULLFSINO) + to->sb_gquotino = cpu_to_be64(NULLFSINO); + } *fields &= ~(XFS_SB_PQUOTINO | XFS_SB_GQUOTINO); } -- 2.0.0 From iusty@k1024.org Mon Jul 14 02:09:21 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: xfs@oss.sgi.com Delivered-To: xfs@oss.sgi.com Received: from relay.sgi.com (relay2.corp.sgi.com [137.38.102.29]) by oss.sgi.com (Postfix) with ESMTP id 454107F58 for ; Mon, 14 Jul 2014 02:09:21 -0500 (CDT) Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by relay2.corp.sgi.com (Postfix) with ESMTP id 38423304062 for ; Mon, 14 Jul 2014 00:09:21 -0700 (PDT) X-ASG-Debug-ID: 1405321755-04cb6c6ad3aee50001-NocioJ Received: from mail-wi0-f182.google.com (mail-wi0-f182.google.com [209.85.212.182]) by cuda.sgi.com with ESMTP id p7GUCGMIWlaixBuy (version=TLSv1 cipher=RC4-SHA bits=128 verify=NO) for ; Mon, 14 Jul 2014 00:09:16 -0700 (PDT) X-Barracuda-Envelope-From: iusty@k1024.org X-Barracuda-Apparent-Source-IP: 209.85.212.182 Received: by mail-wi0-f182.google.com with SMTP id d1so1969341wiv.9 for ; Mon, 14 Jul 2014 00:09:15 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:date:from:to:subject:message-id:mail-followup-to :mime-version:content-type:content-disposition:user-agent; bh=21dZk/cssGuvrO1Q5ySrAINpb3LGKUbNIcteoTZSP94=; b=Ln0clvxSCz9CnH/RcQHvyOpdZAAdqRToXl7fHzF0pp5VsDL1BrqgZRiagLqZ1jqs7U rRqrw/HiK1RkV1WQIVw8SMmtWiXVL1lS2uZvotmBC7dfKvfRxuQ1PYWm6kHrtYtP4SZ/ yXzTT5TtjHRGo67IkoB0xgZg3uC1qPQnG7j+SeFxhpfEl5nRQCn7KoxgvWSEJDU2/T4G HdsX71nBIXT/qg57D63QLdTT6axyO6TwkIuhL9v8j4LHje1D4+Sx5H+jy1nbT9XvYrn0 UAOphC78OxjLi863f2/NQ1RhxH57hcuvnt3PFjJY1UInxBYzrPTg/5bsqhVLavIhpI13 bH1w== X-Gm-Message-State: ALoCoQl0RNkHDMGHPlhI+bQFMBHTPRVm3kdNuDMJJKoy3Z6oded9s8lJri7J7zwHlrDsZra8dRb5 X-Received: by 10.194.104.200 with SMTP id gg8mr7938576wjb.93.1405321755391; Mon, 14 Jul 2014 00:09:15 -0700 (PDT) Received: from teal.hq.k1024.org (178-83-234-80.dynamic.hispeed.ch. [178.83.234.80]) by mx.google.com with ESMTPSA id eo4sm27770782wid.4.2014.07.14.00.09.14 for (version=TLSv1 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Mon, 14 Jul 2014 00:09:14 -0700 (PDT) Received: by teal.hq.k1024.org (Postfix, from userid 4004) id ADA9D2052DD; Mon, 14 Jul 2014 09:09:13 +0200 (CEST) Date: Mon, 14 Jul 2014 09:09:13 +0200 From: Iustin Pop To: xfs@oss.sgi.com Subject: Error setting extent size on a directory Message-ID: <20140714070913.GA29541@teal.hq.k1024.org> X-ASG-Orig-Subj: Error setting extent size on a directory Mail-Followup-To: xfs@oss.sgi.com MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline X-Linux: This message was written on Linux X-Header: /usr/include gives great headers User-Agent: Mutt/1.5.23 (2014-03-12) X-Barracuda-Connect: mail-wi0-f182.google.com[209.85.212.182] X-Barracuda-Start-Time: 1405321756 X-Barracuda-Encrypted: RC4-SHA X-Barracuda-URL: http://192.48.176.15:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 X-Barracuda-Spam-Score: 0.00 X-Barracuda-Spam-Status: No, SCORE=0.00 using per-user scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.7 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.7499 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- Hi, During the restore of a file system, a few directories failed to have their extent size set: xfsrestore: WARNING: attempt to set extended attributes (xflags 0x1080, extsize = 0x800000, projid = 0x0) of a failed: Invalid argument Since there were just a few, I've set the nodump flag (0x80 in flags above) manually, which worked, but trying to set the extent size still fails: xfs_io . xfs_io> extsize [0] . xfs_io> extsize 8m xfs_io: XFS_IOC_FSSETXATTR .: Invalid argument The xfsctl man page says that an extent size should be settable any time on a directory, so why would this fail? Looking at the kernel sources, I see a number of possible cases where EINVAL is returned: - ip->i_d.di_nextents non-zero - requested extend size bigger than MAXEXTLEN; not the case here - extsize_fsb > mp->m_sb.sb_agblocks / 2; not the case - fa->fsx_extsize % size - extent size not a multiple of FS block size; again not the case So to me this reads as if the di_nextents check can also fail for a directory which has extents, contradicting the man page. Which one needs to be updated? The question arises to if the extent size also applies, then, to allocating extents for a directory - instead of just being inherited for files (the man page says no). thanks, iustin From iusty@k1024.org Mon Jul 14 02:19:43 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: xfs@oss.sgi.com Delivered-To: xfs@oss.sgi.com Received: from relay.sgi.com (relay1.corp.sgi.com [137.38.102.111]) by oss.sgi.com (Postfix) with ESMTP id EDF427F63 for ; Mon, 14 Jul 2014 02:19:42 -0500 (CDT) Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by relay1.corp.sgi.com (Postfix) with ESMTP id EE4068F8033 for ; Mon, 14 Jul 2014 00:19:39 -0700 (PDT) X-ASG-Debug-ID: 1405322377-04cb6c6ad0af490001-NocioJ Received: from mail-we0-f172.google.com (mail-we0-f172.google.com [74.125.82.172]) by cuda.sgi.com with ESMTP id ZDd1c7TfjrX6mfs4 (version=TLSv1 cipher=RC4-SHA bits=128 verify=NO) for ; Mon, 14 Jul 2014 00:19:38 -0700 (PDT) X-Barracuda-Envelope-From: iusty@k1024.org X-Barracuda-Apparent-Source-IP: 74.125.82.172 Received: by mail-we0-f172.google.com with SMTP id x48so1864688wes.3 for ; Mon, 14 Jul 2014 00:19:37 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:date:from:to:subject:message-id:mail-followup-to :mime-version:content-type:content-disposition:user-agent; bh=rLKiqsBb9GOvZSO42LzNS1LbXdIAk6LY5H914fowfag=; b=VamGuHVYFxU3LE+iemId7enEn4QRhB3ewO4aVLZwwMByCG9NY00dERL88SguzfLRn+ abDjQx7idUAx0ijUWn+0fdSDKr4/9KTw8LGO2MRr2FNDtMI/s7flwHY9e9oCj+sicMqv 5f79orXXjSCjTWz9MIOoyjLbnTVTu66wyg2gBqpYgwjhrGjzOP8ZZEcbYWycwthxi4aU qPaxgnK0uRnGMKYt0V0OPZABS2IdvNHHpULNsQUw2kiv0SnRS1CjfhNFjWdjezwIqRaU XJitCUbX+qNqs1vX8RYe0/SqQjuZEy1MxsyJCsm1ZlpIHAK5eEvOglqvqRjQunVwL9GK FFLA== X-Gm-Message-State: ALoCoQlP0WC+fzGmDW/r09AXs4chEqwqiyPQN3f2xlv0XYu8Ri3N9aFftplx/rw9bl1XtboYtw8D X-Received: by 10.180.97.67 with SMTP id dy3mr22692804wib.16.1405322377562; Mon, 14 Jul 2014 00:19:37 -0700 (PDT) Received: from teal.hq.k1024.org (178-83-234-80.dynamic.hispeed.ch. [178.83.234.80]) by mx.google.com with ESMTPSA id ed15sm27853512wic.9.2014.07.14.00.19.36 for (version=TLSv1 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Mon, 14 Jul 2014 00:19:37 -0700 (PDT) Received: by teal.hq.k1024.org (Postfix, from userid 4004) id 1F0182052DD; Mon, 14 Jul 2014 09:19:36 +0200 (CEST) Date: Mon, 14 Jul 2014 09:19:35 +0200 From: Iustin Pop To: xfs@oss.sgi.com Subject: xfsrestore -t and default location of housekeeping dir Message-ID: <20140714071935.GB29541@teal.hq.k1024.org> X-ASG-Orig-Subj: xfsrestore -t and default location of housekeeping dir Mail-Followup-To: xfs@oss.sgi.com MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline X-Linux: This message was written on Linux X-Header: /usr/include gives great headers User-Agent: Mutt/1.5.23 (2014-03-12) X-Barracuda-Connect: mail-we0-f172.google.com[74.125.82.172] X-Barracuda-Start-Time: 1405322378 X-Barracuda-Encrypted: RC4-SHA X-Barracuda-URL: http://192.48.176.15:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 X-Barracuda-Spam-Score: 0.00 X-Barracuda-Spam-Status: No, SCORE=0.00 using per-user scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.7 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.7499 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- Hi, While testing a just-made dump with via 'xfsrestore -t', I learned that the default housekeepingdir path is still under the original filesystem. My xfsrestore therefore failed, since that filesystem was read-only. Since '-t' should denote a pure no-op operation, with no changes, would it make more sense to default the housekeeping location to a temporary location if it is used? thanks, iustin From ilya.dryomov@inktank.com Mon Jul 14 02:24:10 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: xfs@oss.sgi.com Delivered-To: xfs@oss.sgi.com Received: from relay.sgi.com (relay3.corp.sgi.com [198.149.34.15]) by oss.sgi.com (Postfix) with ESMTP id C85477F63 for ; Mon, 14 Jul 2014 02:24:10 -0500 (CDT) Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by relay3.corp.sgi.com (Postfix) with ESMTP id 4CC28AC006 for ; Mon, 14 Jul 2014 00:24:06 -0700 (PDT) X-ASG-Debug-ID: 1405322645-04cbb0421ab6720001-NocioJ Received: from mail-qc0-f179.google.com (mail-qc0-f179.google.com [209.85.216.179]) by cuda.sgi.com with ESMTP id CPP9DKRkHkyuKZD3 (version=TLSv1 cipher=RC4-SHA bits=128 verify=NO) for ; Mon, 14 Jul 2014 00:24:05 -0700 (PDT) X-Barracuda-Envelope-From: ilya.dryomov@inktank.com X-Barracuda-Apparent-Source-IP: 209.85.216.179 Received: by mail-qc0-f179.google.com with SMTP id r5so2341939qcx.38 for ; Mon, 14 Jul 2014 00:24:05 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:in-reply-to:references:date :message-id:subject:from:to:cc:content-type; bh=I4bpYOKfROmk/RwOXF7AZTCsiAMhOIxSG5G+vscUUW4=; b=ilE0QlGpNBpdgkNf3rpYD+BlTJPQb6nuWU1//l+KIro1cU20UMRWa+srlXlcjSVtXz DFILcWzsjJtA7Ih2YT+9h+UAAccVKQfwdttAuWbnbLKGl9Gsofc0HPDG9QvUlXFPqHp3 C8rgiDSZvpMeUFKJ7FiGI2xTmJRoZP42NvMC6S3LjF+QENHG/fBqcbm4kWF7308Ris+X A0UY3WbvfNv85tTmJTTxVjjF8U0tb3Xb65QohFIwWK1eR779NxlrGCfxNxVoeZQXrzHN 11aWab2l3DpY+wiB9MltbDQTSHrAKcZAEjGe/0lcPIGKiyOREkBQ4nG/rTfoYY8UvUQy HrLA== X-Gm-Message-State: ALoCoQlDznv1Hc1Ht+TV77UsKQEE9ra64BGKIZHKia/BtsEqqcCNjOyDpEoXGAK43chmo6/jxv/j MIME-Version: 1.0 X-Received: by 10.224.129.68 with SMTP id n4mr19012730qas.66.1405322645226; Mon, 14 Jul 2014 00:24:05 -0700 (PDT) Received: by 10.140.89.138 with HTTP; Mon, 14 Jul 2014 00:24:05 -0700 (PDT) In-Reply-To: <20140713225532.GD22339@dastard> References: <20140713012624.GS4453@dastard> <20140713225532.GD22339@dastard> Date: Mon, 14 Jul 2014 11:24:05 +0400 Message-ID: Subject: Re: consequences of XFS_IOC_FSSETXATTR on non-empty file? From: Ilya Dryomov X-ASG-Orig-Subj: Re: consequences of XFS_IOC_FSSETXATTR on non-empty file? To: Dave Chinner Cc: Samuel Just , xfs@oss.sgi.com, "ceph-devel@vger.kernel.org" , Sage Weil Content-Type: text/plain; charset=UTF-8 X-Barracuda-Connect: mail-qc0-f179.google.com[209.85.216.179] X-Barracuda-Start-Time: 1405322645 X-Barracuda-Encrypted: RC4-SHA X-Barracuda-URL: http://192.48.176.25:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 X-Barracuda-Spam-Score: 0.00 X-Barracuda-Spam-Status: No, SCORE=0.00 using per-user scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.7 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.7500 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- On Mon, Jul 14, 2014 at 2:55 AM, Dave Chinner wrote: > On Sun, Jul 13, 2014 at 09:01:13PM +0400, Ilya Dryomov wrote: >> On Sun, Jul 13, 2014 at 5:48 AM, Samuel Just wrote: >> > Actually, on this ubuntu kernel (3.13.0-24-generic), it doesn't seem >> > to give an error. I'll attach my test case for that. We don't yet >> > have a way of reproducing the corruption -- the ext_size change in the >> > osd simply seemed like a promising lead. >> > -Sam >> > >> > On Sat, Jul 12, 2014 at 6:26 PM, Dave Chinner wrote: >> >> On Sat, Jul 12, 2014 at 06:16:54PM -0700, Samuel Just wrote: >> >>> Hi, >> >>> >> >>> We are seeing reports of ceph-osd stores on xfs of files with some >> >>> garbage data (possibly misplaced from data elsewhere in the >> >>> filesystem). There was a bug for a while where the ceph-osd process >> >>> would set a value for fsx_extsize on a non-empty (possibly sparse) >> >>> file using XFS_IOC_FSSETXATTR. Could that plausibly result in a file >> >>> with garbage data? >> >> >> >> No, setting an extent size on a non-empty file will simply fail >> >> with EINVAL. >> >> AFAIR it checks whether or not any extents are actually allocated, not >> whether the file is empty or not. > > FWIW, that's an implementation detail, not the definition of the > intended behaviour of the ioctl. Indeed, the man page says: > > "The fsx_xflags realtime file bit and the file's extent size may be > changed only when the file is empty, ..." > > For most people, "[non-]empty file" is much more easily understood > than "a file without real extents, but might have been written to > and so have dirty, in-memory delayed allocation data whose > asynchronous flushing may or may not affect the behaviour of a call > to XFS_IOC_FSSETXATTR". > > i.e. the intended application behaviour is that they should only be > able to change the extent size hint *before* any data is written to > the file. > >> I think if you call fsync() or even >> fdatasync() before close(fd), it will fail as expected. > > Only if you are trying to change the extent size immediately after > the first write you do to an empty file. Which is, as per the above, > not the recommended or intended use of the ioctl. That's understood, but that is exactly what Sam's test program happens to try to do, so I had to point the "file w/o real extents" thing out. Thanks, Ilya From arekm@maven.pl Mon Jul 14 02:57:07 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=T_DKIM_INVALID autolearn=ham version=3.3.1 X-Original-To: xfs@oss.sgi.com Delivered-To: xfs@oss.sgi.com Received: from relay.sgi.com (relay1.corp.sgi.com [137.38.102.111]) by oss.sgi.com (Postfix) with ESMTP id 340037F6F for ; Mon, 14 Jul 2014 02:57:07 -0500 (CDT) Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by relay1.corp.sgi.com (Postfix) with ESMTP id 35F588F804C for ; Mon, 14 Jul 2014 00:57:07 -0700 (PDT) X-ASG-Debug-ID: 1405324622-04cbb04219b7b70001-NocioJ Received: from mail-wi0-f182.google.com (mail-wi0-f182.google.com [209.85.212.182]) by cuda.sgi.com with ESMTP id zd5HuQbg8c5cMbg4 (version=TLSv1 cipher=RC4-SHA bits=128 verify=NO) for ; Mon, 14 Jul 2014 00:57:03 -0700 (PDT) X-Barracuda-Envelope-From: arekm@maven.pl X-Barracuda-Apparent-Source-IP: 209.85.212.182 Received: by mail-wi0-f182.google.com with SMTP id d1so2029777wiv.9 for ; Mon, 14 Jul 2014 00:57:02 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=maven.pl; s=maven; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-type:content-transfer-encoding; bh=guzcXRPvB6lSLy7gcitWyhZTHHHfMSWRIlQgpcUPCG0=; b=KQFTi03S77QHzZBTHVaywqYLQTFJcUxBT42DSkENJBu7OjyoC/V4jYPCpBMXWtRRfl Dj6vrZMveFbleuqjAs1lJpLBDoseAV5mV53MIKqhH3huhxMf5MFdAhQFQyINp3nebjTL krT2L4zXgqDupz9/BxkGfj6Nx0Ajuw3UdDjZU= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-type:content-transfer-encoding; bh=guzcXRPvB6lSLy7gcitWyhZTHHHfMSWRIlQgpcUPCG0=; b=FgHXuB58ZhgHJ/efAOmXN6L6GvPei4e46LRfYfcl7X1CkfaciNlQVBFdzosjoTS4nN Q74J2+QpkJFrTjfIy50PRcALOd0+Yk3XlmXlZkQMVIQD2m2LbMIvGDgRKXrhANcVYe1e GC5+y7sYBS18RwkIkQdVe4y9FbHVF+++SQEb3j2inpQxFF5jOjt6/1fi6oafI8f0HRcj jJzEbYj0F+cs6Va4wbnK3D1ZzthIrmuL+h6WY7lYl/Ix4ORTVjYWjuNbtUkjpbb3Xgwk Uxnif745xTWgKQ5o6Uh5/8vMbOCffe4zQm4zdMtUX7bk5v6EMpHTbuBC3AfgCxBFnZPc rJuQ== X-Gm-Message-State: ALoCoQnxtT15lvw7W4DMevjzGSF1JUaaWV/a8NDXzr5xuibAsVT2oKn83xsCtz+fLvAZ9zGNfByu X-Received: by 10.194.77.177 with SMTP id t17mr16600889wjw.55.1405324622659; Mon, 14 Jul 2014 00:57:02 -0700 (PDT) Received: from tarm.maven.pl ([91.234.176.246]) by mx.google.com with ESMTPSA id w6sm23807827wjr.4.2014.07.14.00.57.01 for (version=TLSv1.2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Mon, 14 Jul 2014 00:57:01 -0700 (PDT) From: =?UTF-8?q?Arkadiusz=20Mi=C5=9Bkiewicz?= To: xfs@oss.sgi.com Cc: =?UTF-8?q?Arkadiusz=20Mi=C5=9Bkiewicz?= Subject: [PATCH] Detect strto* failures based on errno. Date: Mon, 14 Jul 2014 09:56:59 +0200 X-ASG-Orig-Subj: [PATCH] Detect strto* failures based on errno. Message-Id: <1405324619-25515-1-git-send-email-arekm@maven.pl> X-Mailer: git-send-email 2.0.1 In-Reply-To: <20140713230406.GE22339@dastard> References: <20140713230406.GE22339@dastard> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Barracuda-Connect: mail-wi0-f182.google.com[209.85.212.182] X-Barracuda-Start-Time: 1405324623 X-Barracuda-Encrypted: RC4-SHA X-Barracuda-URL: http://192.48.176.25:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 X-Barracuda-Spam-Score: 0.00 X-Barracuda-Spam-Status: No, SCORE=0.00 using per-user scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.7 tests=DKIM_SIGNED, DKIM_VERIFIED X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.7500 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- -0.00 DKIM_VERIFIED Domain Keys Identified Mail: signature passes verification 0.00 DKIM_SIGNED Domain Keys Identified Mail: message has a signature Code was testing for ERANGE errno only in some places. In other places it didn't do any errno checking at all. Unify strto* result testing by treating any non zero errno as failure. Signed-off-by: Arkadiusz Miśkiewicz --- libxcmd/input.c | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) diff --git a/libxcmd/input.c b/libxcmd/input.c index c06b5b8..d72dff3 100644 --- a/libxcmd/input.c +++ b/libxcmd/input.c @@ -153,8 +153,9 @@ cvtnum( char *sp; int c; + errno = 0; i = strtoll(s, &sp, 0); - if (i == 0 && sp == s) + if (errno || (i == 0 && sp == s)) return -1LL; if (*sp == '\0') return i; @@ -237,8 +238,9 @@ cvttime( unsigned long i; char *sp; + errno = 0; i = strtoul(s, &sp, 0); - if (i == 0 && sp == s) + if (errno || (i == 0 && sp == s)) return 0; if (*sp == '\0') return i; @@ -344,10 +346,10 @@ prid_from_string( * Allow either a full numeric or a valid projectname, even * if it starts with a digit. */ + errno = 0; prid_long = strtoul(project, &sp, 10); if (*project != '\0' && *sp == '\0') { - if ((prid_long == ULONG_MAX && errno == ERANGE) - || (prid_long > (prid_t)-1)) + if (errno || (prid_long > (prid_t)-1)) return -1; return (prid_t)prid_long; } @@ -365,10 +367,10 @@ uid_from_string( unsigned long uid_long; char *sp; + errno = 0; uid_long = strtoul(user, &sp, 10); if (sp != user) { - if ((uid_long == ULONG_MAX && errno == ERANGE) - || (uid_long > (uid_t)-1)) + if (errno || (uid_long > (uid_t)-1)) return -1; return (uid_t)uid_long; } @@ -386,10 +388,10 @@ gid_from_string( unsigned long gid_long; char *sp; + errno = 0; gid_long = strtoul(group, &sp, 10); if (sp != group) { - if ((gid_long == ULONG_MAX && errno == ERANGE) - || (gid_long > (gid_t)-1)) + if (errno || (gid_long > (gid_t)-1)) return -1; return (gid_t)gid_long; } -- 2.0.1 From jan@tulak.me Mon Jul 14 03:04:59 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: xfs@oss.sgi.com Delivered-To: xfs@oss.sgi.com Received: from relay.sgi.com (relay1.corp.sgi.com [137.38.102.111]) by oss.sgi.com (Postfix) with ESMTP id 3279F7F6F for ; Mon, 14 Jul 2014 03:04:59 -0500 (CDT) Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by relay1.corp.sgi.com (Postfix) with ESMTP id 36BF78F8040 for ; Mon, 14 Jul 2014 01:04:55 -0700 (PDT) X-ASG-Debug-ID: 1405325091-04cb6c6ad3b0eb0001-NocioJ Received: from mail-wg0-f52.google.com (mail-wg0-f52.google.com [74.125.82.52]) by cuda.sgi.com with ESMTP id SbMRfTASjOdF342H (version=TLSv1 cipher=RC4-SHA bits=128 verify=NO) for ; Mon, 14 Jul 2014 01:04:52 -0700 (PDT) X-Barracuda-Envelope-From: jan@tulak.me X-Barracuda-Apparent-Source-IP: 74.125.82.52 Received: by mail-wg0-f52.google.com with SMTP id a1so2937019wgh.23 for ; Mon, 14 Jul 2014 01:04:51 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:message-id:subject:from:to:cc:date:in-reply-to :references:content-type:mime-version:content-transfer-encoding; bh=6aSqjg55B6Y4C2aQQvVCcdzbNdvKEG0953ZBQVqWnfs=; b=VU/rgMugoMYe2UfBygQalvWyrTJHnjkNGirLHGQcRfII+uiz0xli2qVgTkCbtCHabR CtPGai+3OjtOvzBqWbLGRPsVzZzmfHhvyI5iDYGj6lKe2cU9YKTfDWQgmues+Z16T2c2 aKfXazVmWMecOdS/i939K76lcJFtP02uCuM5FqBO76eqm+8tqOnned7X4hZsgJO97I1h E0A1HRr0JDJcL64i1tGnM7/86EBmJe7IVdrdE29L5P7YKqFpi3TR0+6uVOd9z2r0/o+c 5qKyoiBoJPM8R7TjtzW4b91a0KFdGtD+gVB5kcfpzBrx6yf1S4i4VN5XgRGLhagQPVgH v6zw== X-Gm-Message-State: ALoCoQkre+0Z+d4pDEdxGXaLiuVdnlyALKk1fKpnE+0KSprFFoxfJZdHrfoDFQZL155as+WciJUJ X-Received: by 10.194.6.10 with SMTP id w10mr17243470wjw.51.1405325090911; Mon, 14 Jul 2014 01:04:50 -0700 (PDT) Received: from [10.34.1.187] (nat-pool-brq-t.redhat.com. [209.132.186.34]) by mx.google.com with ESMTPSA id cz8sm23843473wjc.11.2014.07.14.01.04.49 for (version=TLSv1 cipher=RC4-SHA bits=128/128); Mon, 14 Jul 2014 01:04:50 -0700 (PDT) Message-ID: <1405325087.3196.6.camel@jtulak> Subject: Re: symlink loop for /lib64/libhandle.so From: Jan =?UTF-8?Q?=C5=A4ul=C3=A1k?= X-ASG-Orig-Subj: Re: symlink loop for /lib64/libhandle.so To: Eric Sandeen Cc: Christoph Hellwig , Brian Foster , XFS mail list Date: Mon, 14 Jul 2014 10:04:47 +0200 In-Reply-To: <1405075678.28203.56.camel@jtulak> References: <1404898212.7231.12.camel@jtulak> <20140709132836.GA65226@bfoster.bfoster> <20140710134851.GA26652@infradead.org> <1405009872.31068.22.camel@jtulak> <53BEC1E7.1070904@sandeen.net> <1405075678.28203.56.camel@jtulak> Content-Type: text/plain; charset="UTF-8" X-Mailer: Evolution 3.10.4 (3.10.4-2.fc20) Mime-Version: 1.0 Content-Transfer-Encoding: 8bit X-Barracuda-Connect: mail-wg0-f52.google.com[74.125.82.52] X-Barracuda-Start-Time: 1405325092 X-Barracuda-Encrypted: RC4-SHA X-Barracuda-URL: http://192.48.176.15:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 X-Barracuda-Spam-Score: 0.00 X-Barracuda-Spam-Status: No, SCORE=0.00 using per-user scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.7 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.7500 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- On Fri, 2014-07-11 at 12:47 +0200, Jan Ťulák wrote: > I think I found it. In short: On Fedora, /lib64 is a symlink > into /usr/lib64, but "install/buildmacros" script thinks it as two > different directories and mess it. Proposed solution: better condition > on line 79 to avoid symlink changes. Just a correction, the file is in "include" directory, not in "install". And I have created a bug report and added the proposed change as a patch: http://oss.sgi.com/bugzilla/show_bug.cgi?id=1059 Jan Tulak From BATV+babdfea135ccdf26e4f6+3977+infradead.org+hch@bombadil.srs.infradead.org Mon Jul 14 03:26:14 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: xfs@oss.sgi.com Delivered-To: xfs@oss.sgi.com Received: from relay.sgi.com (relay2.corp.sgi.com [137.38.102.29]) by oss.sgi.com (Postfix) with ESMTP id CC4F07F7C for ; Mon, 14 Jul 2014 03:26:14 -0500 (CDT) Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by relay2.corp.sgi.com (Postfix) with ESMTP id A476C304043 for ; Mon, 14 Jul 2014 01:26:11 -0700 (PDT) X-ASG-Debug-ID: 1405326370-04cb6c6ad1b1a90001-NocioJ Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.9]) by cuda.sgi.com with ESMTP id HvAOMJArwVs6lVW6 (version=TLSv1 cipher=AES256-SHA bits=256 verify=NO) for ; Mon, 14 Jul 2014 01:26:10 -0700 (PDT) X-Barracuda-Envelope-From: BATV+babdfea135ccdf26e4f6+3977+infradead.org+hch@bombadil.srs.infradead.org X-Barracuda-Apparent-Source-IP: 198.137.202.9 Received: from hch by bombadil.infradead.org with local (Exim 4.80.1 #2 (Red Hat Linux)) id 1X6baJ-0005hj-BD; Mon, 14 Jul 2014 08:26:07 +0000 Date: Mon, 14 Jul 2014 01:26:07 -0700 From: Christoph Hellwig To: Jan ??ul??k Cc: Eric Sandeen , Christoph Hellwig , Brian Foster , XFS mail list Subject: Re: symlink loop for /lib64/libhandle.so Message-ID: <20140714082607.GA19882@infradead.org> X-ASG-Orig-Subj: Re: symlink loop for /lib64/libhandle.so References: <1404898212.7231.12.camel@jtulak> <20140709132836.GA65226@bfoster.bfoster> <20140710134851.GA26652@infradead.org> <1405009872.31068.22.camel@jtulak> <53BEC1E7.1070904@sandeen.net> <1405075678.28203.56.camel@jtulak> <1405325087.3196.6.camel@jtulak> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1405325087.3196.6.camel@jtulak> User-Agent: Mutt/1.5.23 (2014-03-12) X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: bombadil.infradead.org[198.137.202.9] X-Barracuda-Start-Time: 1405326370 X-Barracuda-Encrypted: AES256-SHA X-Barracuda-URL: http://192.48.176.15:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 X-Barracuda-Spam-Score: 0.00 X-Barracuda-Spam-Status: No, SCORE=0.00 using per-user scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.7 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.7500 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- On Mon, Jul 14, 2014 at 10:04:47AM +0200, Jan ??ul??k wrote: > And I have created a bug report and added the proposed change as a > patch: http://oss.sgi.com/bugzilla/show_bug.cgi?id=1059 Can you just send the properly formatted and signed off patch to the list? That's the usual process for XFS changes and makes everyones life simpler. From rjevskiy@gmail.com Mon Jul 14 04:13:06 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=FREEMAIL_FROM,T_DKIM_INVALID autolearn=ham version=3.3.1 X-Original-To: xfs@oss.sgi.com Delivered-To: xfs@oss.sgi.com Received: from relay.sgi.com (relay1.corp.sgi.com [137.38.102.111]) by oss.sgi.com (Postfix) with ESMTP id E50897F83 for ; Mon, 14 Jul 2014 04:13:05 -0500 (CDT) Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by relay1.corp.sgi.com (Postfix) with ESMTP id D1C508F8035 for ; Mon, 14 Jul 2014 02:13:02 -0700 (PDT) X-ASG-Debug-ID: 1405329176-04cb6c6ad2b3ba0001-NocioJ Received: from mail-lb0-f178.google.com (mail-lb0-f178.google.com [209.85.217.178]) by cuda.sgi.com with ESMTP id pL9CcJtPCInkZa0L (version=TLSv1 cipher=RC4-SHA bits=128 verify=NO) for ; Mon, 14 Jul 2014 02:12:57 -0700 (PDT) X-Barracuda-Envelope-From: rjevskiy@gmail.com X-Barracuda-Apparent-Source-IP: 209.85.217.178 X-Barracuda-IPDD: Level1 [gmail.com/209.85.217.178] Received: by mail-lb0-f178.google.com with SMTP id 10so2640921lbg.9 for ; Mon, 14 Jul 2014 02:12:56 -0700 (PDT) X-Barracuda-IPDD: Level1 [gmail.com/209.85.217.178] X-Barracuda-IPDD: Level1 [gmail.com/209.85.217.178] DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=sender:from:to:cc:subject:in-reply-to:references:user-agent:date :message-id:mime-version:content-type:content-transfer-encoding; bh=N5NjNWYNDP/SKRrwHBJFbw/2NKqZKb3XC2KSD1DBAMg=; b=K1ELEtIs0MZj4zkgy8RvBcMcgvREhswjIkLcW1c4uWvDxCpy185rdWucgAsVc9Bwsd oP64UL8uLHxvB72zwStFzAJGo/CcMG3UmYkYxUVS7/rKlx8CDSYDtr1sfCKNLfU9YKJr VQhKqg2uAy/zs04FAJIBfp/4Ylz9lJfsoAJL50Q0TCUrZpp8ZCZPOEU4assT17KAlKuT CSF4qcPrX+KiR/XFMSz5fTSffX2y/NuRXcr1w9LRso9uB2r7ctko92RtjGvQ7A1rDqfh tM9FsBZro+r54Ik/mpMcIPlW6w2nDSAjj+Kmtc4tQIv82KnYzbZ6MLktSGryv27P0DHe POmw== X-Received: by 10.152.29.38 with SMTP id g6mr1516873lah.54.1405329175888; Mon, 14 Jul 2014 02:12:55 -0700 (PDT) Received: from smtp.gmail.com (swsoft-msk-nat.sw.ru. [195.214.232.10]) by mx.google.com with ESMTPSA id 10sm5077779law.22.2014.07.14.02.12.54 for (version=TLSv1.2 cipher=RC4-SHA bits=128/128); Mon, 14 Jul 2014 02:12:55 -0700 (PDT) Sender: Dmitry Monakhov From: Dmitry Monakhov To: =?utf-8?B?THVrw6HFoQ==?= Czerner , Namjae Jeon Cc: Dave Chinner , Theodore Ts'o , linux-ext4 , linux-fsdevel@vger.kernel.org, linux-kernel@vger.kernel.org, Brian Foster , Christoph Hellwig , Ashish Sangwan , xfs@oss.sgi.com Subject: Re: [PATCH 3/3] ext4: Add support IOC_MOV_DATA ioctl In-Reply-To: X-ASG-Orig-Subj: Re: [PATCH 3/3] ext4: Add support IOC_MOV_DATA ioctl References: <004001cf9aa4$2670e280$7352a780$@samsung.com> User-Agent: Notmuch/0.6.1 (http://notmuchmail.org) Emacs/23.3.1 (x86_64-redhat-linux-gnu) Date: Mon, 14 Jul 2014 13:12:53 +0400 Message-ID: <87tx6ktiay.fsf@openvz.org> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-Barracuda-Connect: mail-lb0-f178.google.com[209.85.217.178] X-Barracuda-Start-Time: 1405329176 X-Barracuda-Encrypted: RC4-SHA X-Barracuda-URL: http://192.48.176.15:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 X-Barracuda-Spam-Score: 0.00 X-Barracuda-Spam-Status: No, SCORE=0.00 using per-user scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.7 tests=DKIM_SIGNED, DKIM_VERIFIED X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.7501 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- -0.00 DKIM_VERIFIED Domain Keys Identified Mail: signature passes verification 0.00 DKIM_SIGNED Domain Keys Identified Mail: message has a signature On Tue, 8 Jul 2014 16:02:28 +0200 (CEST), Luk=C3=A1=C5=A1 Czerner wrote: Non-text part: MULTIPART/MIXED > On Tue, 8 Jul 2014, Namjae Jeon wrote: >=20 > > Date: Tue, 08 Jul 2014 21:00:02 +0900 > > From: Namjae Jeon > > To: Dave Chinner , Theodore Ts'o > > Cc: linux-ext4 , linux-fsdevel@vger.kernel.= org, > > linux-kernel@vger.kernel.org, Luk=C3=A1=C5=A1 Czerner , > > Brian Foster , Christoph Hellwig , > > Ashish Sangwan , xfs@oss.sgi.com > > Subject: [PATCH 3/3] ext4: Add support IOC_MOV_DATA ioctl > >=20 > > This patch implements fs ioctl's IOC_MOV_DATA for Ext4. >=20 > Hmm isn't this basically what ext4_move_extents() does ? eg. > EXT4_IOC_MOVE_EXT ? >=20 > I guess that the intention here is to do the move, without actually > moving the data right ? But nevertheless maybe some code can be > shared with ext4_move_extents() ? It definitely can be shared, because it has specific case for unwritten data see move_extent_per_page(). But I think we can observe another way to unify this two things. An idea inspired by the fact that ioc_move_data works only for regular inodes, where orig_offset =3D=3D donor_offset. This is showstopper for my utility e4defrag2 ( new version of e4defrag which is able defragmen= t=20 pack small files as described here : http://lists.openwall.net/linux-ext4/2014/04/28/3)=20 Proposed API is very similar to ext4_ext_migrate: Args:=20 orig_file: inode which we want to defragment donor_file: a file which will be used as a donor of blocks 1) fallocate big donor_file 2) a) Create tmp inode wich nlink =3D 0 b) move extents required extents from donor to tmp_donor_inode c) return file descriptor (tmp_fd) to that tmp_donor_inode 4) Mark orig_file's inode with EXT4_STATE_EXT_MIGRATE state 5) Copy data from orig_file to tmp_fd 6) IOC_SWAP_EX: atomically swap orig_file->i_data and tmp_fd->i_data if EXT4_STATE_EXT_MIGRATE was not cleared. =20 This approach can works not only for regular file w/o journaling enabled, but also for journaled ones, and directories. =20=20=20=20=20=20=20 >=20 > -Lukas >=20 > >=20 > > The semantics of this ioctl are: > > 1) Like collapse range, offsets and length should be file system block = size > > aligned. > > 2) In the receiver file, atleast length size hole should be present at > > receiver_offset > > 3) It does not change file size of any of donor or receiver file. > > 4) It leaves a hole at the place from where blocks are moved out in don= or file. > > 5) Both (donor_offset + length) and (receiver_offset + length) should b= e within > > size of donor file and receiver file respectively. > > Only unwritten extents resides beyond file size and it does not make= sense > > to transfer unwritten extents, leave apart the security issues it ma= y raise. > > 6) If the range to be transfered from donor file contain any holes, the= y are > > replicated as it is in receiver file. It mean holes are preserved and > > the length of hole will be added to moved_len signifying that the ho= le range > > is succesfully transfered. > >=20 > > Signed-off-by: Namjae Jeon > > Signed-off-by: Ashish Sangwan > > --- > > fs/ext4/ext4.h | 2 + > > fs/ext4/extents.c | 375 ++++++++++++++++++++++++++++++++++++++++++++++= ++++++++ > > fs/ext4/file.c | 1 + > > 3 files changed, 378 insertions(+) > >=20 > > diff --git a/fs/ext4/ext4.h b/fs/ext4/ext4.h > > index 6386c5f..26478eb 100644 > > --- a/fs/ext4/ext4.h > > +++ b/fs/ext4/ext4.h > > @@ -2725,6 +2725,8 @@ extern int ext4_fiemap(struct inode *inode, struc= t fiemap_extent_info *fieinfo, > > extern int ext4_ext_precache(struct inode *inode); > > extern int ext4_collapse_range(struct inode *inode, loff_t offset, lof= f_t len); > > extern int ext4_insert_range(struct file *file, loff_t offset, loff_t = len); > > +extern int ext4_mov_data(struct inode *, struct inode *, loff_t, loff_= t, loff_t, > > + loff_t *); > >=20=20 > > /* move_extent.c */ > > extern void ext4_double_down_write_data_sem(struct inode *first, > > diff --git a/fs/ext4/extents.c b/fs/ext4/extents.c > > index 0c2432e..511db03 100644 > > --- a/fs/ext4/extents.c > > +++ b/fs/ext4/extents.c > > @@ -5811,3 +5811,378 @@ out_mutex: > > mutex_unlock(&inode->i_mutex); > > return ret; > > } > > + > > +/* > > + * If offset_lblk does not lie on the extent start boundary, split ext= ent > > + */ > > +int ext4_find_and_split_extent_at(struct inode *inode, ext4_lblk_t off= set_lblk) > > +{ > > + struct ext4_ext_path *path; > > + handle_t *handle; > > + int credits, err =3D 0, split_flag, ex_len; > > + struct ext4_extent *ex; > > + int depth =3D ext_depth(inode); > > + ext4_lblk_t ex_start; > > + > > + path =3D ext4_ext_find_extent(inode, offset_lblk, NULL, 0); > > + if (IS_ERR(path)) > > + return PTR_ERR(path); > > + > > + ex =3D path[depth].p_ext; > > + if (!ex) > > + goto free_path; > > + ex_start =3D le32_to_cpu(ex->ee_block); > > + ex_len =3D ext4_ext_get_actual_len(ex); > > + > > + if (offset_lblk > ex_start && offset_lblk < (ex_start + ex_len)) { > > + credits =3D ext4_writepage_trans_blocks(inode); > > + handle =3D ext4_journal_start(inode, EXT4_HT_TRUNCATE, credits); > > + if (IS_ERR(handle)) { > > + err =3D PTR_ERR(handle); > > + goto free_path; > > + } > > + if (ext4_ext_is_unwritten(ex)) > > + split_flag =3D EXT4_EXT_MARK_UNWRIT1 | > > + EXT4_EXT_MARK_UNWRIT2; > > + else > > + split_flag =3D 0; > > + > > + err =3D ext4_split_extent_at(handle, inode, path, offset_lblk, > > + split_flag, EXT4_EX_NOCACHE | > > + EXT4_GET_BLOCKS_PRE_IO); > > + ext4_journal_stop(handle); > > + } > > + > > +free_path: > > + ext4_ext_drop_refs(path); > > + kfree(path); > > + return err; > > +} > > + > > +/* > > + * Compute the size of hole in terms of filesystem blocks present at o= ffset_lblk > > + * until the next extent is found OR till we reach the last block with= in isize. > > + * Store the computed value in hole_blkcnt. > > + * offset_lblk should be within isize of inode. > > + */ > > +int ext4_compute_hole_size(struct inode *inode, ext4_lblk_t offset_lbl= k, > > + ext4_lblk_t *hole_blkcnt) > > +{ > > + struct ext4_ext_path *path; > > + struct ext4_extent *ex; > > + ext4_lblk_t ex_start, isize_lblk; > > + int ret =3D 0, depth, ex_len; > > + > > + isize_lblk =3D (inode->i_size + EXT4_BLOCK_SIZE(inode->i_sb) - 1) >> > > + EXT4_BLOCK_SIZE_BITS(inode->i_sb); > > + > > + if (offset_lblk > isize_lblk) > > + return -EINVAL; > > + > > + *hole_blkcnt =3D 0; > > + path =3D ext4_ext_find_extent(inode, offset_lblk, NULL, 0); > > + if (IS_ERR(path)) > > + return PTR_ERR(path); > > + > > + depth =3D ext_depth(inode); > > + ex =3D path[depth].p_ext; > > + if (!ex) { > > + /* No blocks allocated in this file */ > > + *hole_blkcnt =3D isize_lblk - offset_lblk; > > + goto out; > > + } > > + ex_start =3D le32_to_cpu(ex->ee_block); > > + ex_len =3D ext4_ext_get_actual_len(ex); > > + > > + /* if offset_lblk lies within extent? */ > > + if (offset_lblk >=3D ex_start && offset_lblk < (ex_start + ex_len)) > > + goto out; > > + > > + if (ex_start < offset_lblk) { > > + ret =3D mext_next_extent(inode, path, &ex); > > + if (!ret) { > > + ex_start =3D le32_to_cpu(ex->ee_block); > > + } else { > > + if (ret =3D=3D 1) { > > + *hole_blkcnt =3D isize_lblk - offset_lblk; > > + ret =3D 0; > > + } > > + goto out; > > + } > > + } > > + *hole_blkcnt =3D (ex_start < isize_lblk) ? (ex_start - offset_lblk) : > > + (isize_lblk - offset_lblk); > > +out: > > + ext4_ext_drop_refs(path); > > + kfree(path); > > + > > + return ret; > > +} > > + > > +/* > > + * Remove a complete extent from in memory and on-disk extent tree > > + * without freeing any data blocks covered by the extent. Caller must = call > > + * ext4_mark_inode_dirty() to sync the changes to disk. > > + */ > > +int ext4_ext_rm_extent(handle_t *handle, struct inode *inode, > > + struct ext4_ext_path *path, struct ext4_extent *ex) > > +{ > > + struct ext4_extent_header *eh; > > + int depth =3D ext_depth(inode); > > + int credits, err, correct_index =3D 0; > > + int ex_ee_len =3D ext4_ext_get_actual_len(ex); > > + > > + if (!path[depth].p_hdr) > > + path[depth].p_hdr =3D ext_block_hdr(path[depth].p_bh); > > + eh =3D path[depth].p_hdr; > > + > > + credits =3D 7 + 2*(ex_ee_len/EXT4_BLOCKS_PER_GROUP(inode->i_sb)); > > + if (ex =3D=3D EXT_FIRST_EXTENT(eh)) { > > + correct_index =3D 1; > > + credits +=3D (ext_depth(inode)) + 1; > > + } > > + credits +=3D EXT4_MAXQUOTAS_TRANS_BLOCKS(inode->i_sb); > > + err =3D ext4_ext_truncate_extend_restart(handle, inode, credits); > > + if (err) > > + return err; > > + > > + err =3D ext4_ext_get_access(handle, inode, path + depth); > > + if (err) > > + return err; > > + > > + ext4_ext_store_pblock(ex, 0); > > + memmove(ex, ex+1, > > + (EXT_LAST_EXTENT(eh) - ex) * sizeof(struct ext4_extent)); > > + memset(EXT_LAST_EXTENT(eh), 0, sizeof(struct ext4_extent)); > > + le16_add_cpu(&eh->eh_entries, -1); > > + > > + err =3D ext4_ext_dirty(handle, inode, path + depth); > > + if (err) > > + return err; > > + > > + if (correct_index && eh->eh_entries) > > + err =3D ext4_ext_correct_indexes(handle, inode, path); > > + > > + if (err =3D=3D 0 && eh->eh_entries =3D=3D 0 && path[depth].p_bh !=3D = NULL) > > + err =3D ext4_ext_rm_idx(handle, inode, path, depth); > > + > > + return err; > > +} > > + > > +/* > > + * Move len_lblk amount of blocks from donor inode to receiver inode. > > + * Blocks are to be moved from doffset_lblk and moved to roffset_lblk. > > + * Caller of this function must make sure there is atleast len_lblk si= ze > > + * hole at roffset_lblk. Also doffset_lblk and doffset_lblk + len_lblk > > + * should fall on extent boundary. > > + */ > > +int ext4_ext_mov_data(struct inode *donor, struct inode *receiver, > > + ext4_lblk_t doffset_lblk, ext4_lblk_t roffset_lblk, > > + ext4_lblk_t len_lblk, loff_t *bytes_moved) > > +{ > > + int error =3D 0, depth =3D ext_depth(donor); > > + struct ext4_ext_path *path; > > + struct ext4_extent *ex; > > + loff_t blocks_moved =3D 0; > > + handle_t *handle; > > + int credits =3D ext4_writepage_trans_blocks(donor) + > > + ext4_writepage_trans_blocks(receiver); > > + > > + while (blocks_moved < len_lblk && !error) { > > + struct ext4_ext_path *rpath =3D NULL; > > + ext4_lblk_t ex_start; > > + int ex_len; > > + > > + path =3D ext4_ext_find_extent(donor, doffset_lblk, NULL, 0); > > + if (IS_ERR(path)) { > > + error =3D PTR_ERR(path); > > + break; > > + } > > + ex =3D path[depth].p_ext; > > + /* > > + * No allocated blocks? This could only happen during > > + * 1st iteration. Otherwise it is en error. > > + */ > > + if (!ex) { > > + if (blocks_moved) > > + error =3D -EIO; > > + else > > + blocks_moved =3D len_lblk; > > + goto out; > > + } > > + ex_start =3D le32_to_cpu(ex->ee_block); > > + ex_len =3D ext4_ext_get_actual_len(ex); > > + > > + if (doffset_lblk !=3D ex_start) { > > + /* Hole within range, move to the next extent */ > > + if (ex_start < doffset_lblk) > > + error =3D mext_next_extent(donor, path, &ex); > > + /* Below if will also handle ex_start > doffset_lblk */ > > + if (error =3D=3D 0) { > > + ex_start =3D le32_to_cpu(ex->ee_block); > > + blocks_moved +=3D ex_start - doffset_lblk; > > + roffset_lblk +=3D ex_start - doffset_lblk; > > + doffset_lblk =3D ex_start; > > + } > > + if (error =3D=3D 1) { > > + /* doffset_lblk till EOF is hole. Success!! */ > > + blocks_moved =3D len_lblk; > > + error =3D 0; > > + } > > + goto out; > > + } > > + > > + /* Add this extent to receiver */ > > + handle =3D ext4_journal_start(donor, EXT4_HT_TRUNCATE, credits); > > + if (IS_ERR(handle)) { > > + error =3D PTR_ERR(handle); > > + goto out; > > + } > > + > > + rpath =3D ext4_ext_find_extent(receiver, roffset_lblk, NULL, 0); > > + if (IS_ERR(rpath)) { > > + error =3D PTR_ERR(rpath); > > + ext4_journal_stop(handle); > > + goto out; > > + } > > + ex->ee_block =3D cpu_to_le32(roffset_lblk); > > + error =3D ext4_ext_insert_extent(handle, receiver, rpath, ex, 0); > > + if (error) > > + goto hout; > > + > > + /* Remove this extent from donor */ > > + error =3D ext4_ext_rm_extent(handle, donor, path, ex); > > + if (error) > > + goto hout; > > + > > + /* Extent moved successfully */ > > + roffset_lblk +=3D ex_len; > > + doffset_lblk +=3D ex_len; > > + blocks_moved +=3D ex_len; > > + > > + donor->i_blocks -=3D (ex_len << (donor->i_blkbits - 9)); > > + receiver->i_blocks +=3D (ex_len << (receiver->i_blkbits - 9)); > > + donor->i_mtime =3D donor->i_ctime =3D ext4_current_time(donor); > > + receiver->i_mtime =3D receiver->i_ctime =3D > > + ext4_current_time(receiver); > > + ext4_mark_inode_dirty(handle, donor); > > + ext4_mark_inode_dirty(handle, receiver); > > +hout: > > + ext4_journal_stop(handle); > > + ext4_ext_drop_refs(rpath); > > + kfree(rpath); > > +out: > > + ext4_ext_drop_refs(path); > > + kfree(path); > > + } > > + > > + /* This can happen when (doffset_lblk + len_lblk) is in a hole */ > > + if (blocks_moved > len_lblk) > > + blocks_moved =3D len_lblk; > > + > > + *bytes_moved =3D blocks_moved << EXT4_BLOCK_SIZE_BITS(donor->i_sb); > > + return error; > > +} > > + > > +int ext4_mov_data(struct inode *donor, struct inode *receiver, loff_t = doffset, > > + loff_t roffset, loff_t len, loff_t *moved_len) > > +{ > > + struct super_block *sb =3D donor->i_sb; > > + loff_t d_pg_off, r_pg_off, pg_len; > > + ext4_lblk_t doffset_lblk, roffset_lblk, len_lblk, hole_size; > > + int error; > > + > > + if (doffset & (EXT4_BLOCK_SIZE(sb) - 1) || > > + roffset & (EXT4_BLOCK_SIZE(sb) - 1) || > > + len & (EXT4_BLOCK_SIZE(sb) - 1)) > > + return -EINVAL; > > + > > + if (EXT4_SB(sb)->s_cluster_ratio > 1) > > + return -EOPNOTSUPP; > > + > > + if (!ext4_test_inode_flag(donor, EXT4_INODE_EXTENTS) || > > + !ext4_test_inode_flag(receiver, EXT4_INODE_EXTENTS)) > > + return -EOPNOTSUPP; > > + > > + doffset_lblk =3D doffset >> EXT4_BLOCK_SIZE_BITS(sb); > > + roffset_lblk =3D roffset >> EXT4_BLOCK_SIZE_BITS(sb); > > + len_lblk =3D len >> EXT4_BLOCK_SIZE_BITS(sb); > > + > > + d_pg_off =3D round_down(doffset, PAGE_SIZE); > > + r_pg_off =3D round_down(roffset, PAGE_SIZE); > > + pg_len =3D round_up(len, PAGE_SIZE); > > + > > + if (ext4_should_journal_data(donor)) { > > + error =3D ext4_force_commit(donor->i_sb); > > + if (error) > > + return error; > > + error =3D ext4_force_commit(receiver->i_sb); > > + if (error) > > + return error; > > + } > > + > > + error =3D filemap_write_and_wait_range(donor->i_mapping, > > + d_pg_off, d_pg_off + pg_len); > > + if (error) > > + return error; > > + error =3D filemap_write_and_wait_range(receiver->i_mapping, > > + r_pg_off, r_pg_off + pg_len); > > + if (error) > > + return error; > > + > > + lock_two_nondirectories(donor, receiver); > > + > > + /* Check for isize limits for both files */ > > + if (doffset + len > donor->i_size || > > + roffset + len > receiver->i_size) { > > + error =3D -EINVAL; > > + goto out_mutex; > > + } > > + > > + truncate_pagecache_range(donor, d_pg_off, d_pg_off + pg_len - 1); > > + truncate_pagecache_range(receiver, r_pg_off, r_pg_off + pg_len - 1); > > + > > + ext4_inode_block_unlocked_dio(donor); > > + inode_dio_wait(donor); > > + ext4_inode_block_unlocked_dio(receiver); > > + inode_dio_wait(receiver); > > + > > + ext4_discard_preallocations(donor); > > + ext4_discard_preallocations(receiver); > > + > > + error =3D ext4_es_remove_extent(donor, doffset_lblk, len_lblk); > > + if (error) > > + goto out_sem; > > + error =3D ext4_es_remove_extent(receiver, roffset_lblk, len_lblk); > > + if (error) > > + goto out_sem; > > + > > + error =3D ext4_compute_hole_size(receiver, roffset_lblk, &hole_size); > > + if (error) > > + goto out_sem; > > + if (len_lblk > hole_size) { > > + error =3D -EINVAL; > > + goto out_sem; > > + } > > + > > + error =3D ext4_find_and_split_extent_at(donor, doffset_lblk); > > + if (error) > > + goto out_sem; > > + > > + error =3D ext4_find_and_split_extent_at(donor, doffset_lblk + len_lbl= k); > > + if (error) > > + goto out_sem; > > + > > + error =3D ext4_ext_mov_data(donor, receiver, doffset_lblk, > > + roffset_lblk, len_lblk, moved_len); > > + > > + ext4_discard_preallocations(donor); > > + ext4_discard_preallocations(receiver); > > +out_sem: > > + ext4_inode_resume_unlocked_dio(donor); > > + ext4_inode_resume_unlocked_dio(receiver); > > + > > +out_mutex: > > + unlock_two_nondirectories(donor, receiver); > > + return error; > > +} > > diff --git a/fs/ext4/file.c b/fs/ext4/file.c > > index 8695f70..d2feaba 100644 > > --- a/fs/ext4/file.c > > +++ b/fs/ext4/file.c > > @@ -614,5 +614,6 @@ const struct inode_operations ext4_file_inode_opera= tions =3D { > > .get_acl =3D ext4_get_acl, > > .set_acl =3D ext4_set_acl, > > .fiemap =3D ext4_fiemap, > > + .mov_data =3D ext4_mov_data, > > }; > >=20=20 > >=20 From m.mizuma@jp.fujitsu.com Mon Jul 14 06:01:48 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: xfs@oss.sgi.com Delivered-To: xfs@oss.sgi.com Received: from relay.sgi.com (relay2.corp.sgi.com [137.38.102.29]) by oss.sgi.com (Postfix) with ESMTP id 3BC467F87 for ; Mon, 14 Jul 2014 06:01:48 -0500 (CDT) Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by relay2.corp.sgi.com (Postfix) with ESMTP id 2A0C6304043 for ; Mon, 14 Jul 2014 04:01:44 -0700 (PDT) X-ASG-Debug-ID: 1405335702-04cb6c6ad0b7ad0001-NocioJ Received: from fgwmail6.fujitsu.co.jp ([192.51.44.36]) by cuda.sgi.com with ESMTP id sdNZyKfHomSkxplB (version=TLSv1 cipher=AES256-SHA bits=256 verify=NO) for ; Mon, 14 Jul 2014 04:01:43 -0700 (PDT) X-Barracuda-Envelope-From: m.mizuma@jp.fujitsu.com X-Barracuda-Apparent-Source-IP: 192.51.44.36 Received: from kw-mxauth.gw.nic.fujitsu.com (unknown [10.0.237.134]) by fgwmail6.fujitsu.co.jp (Postfix) with ESMTP id 7F12D3EE0C0 for ; Mon, 14 Jul 2014 20:01:41 +0900 (JST) Received: from s1.gw.fujitsu.co.jp (s1.gw.nic.fujitsu.com [10.0.50.91]) by kw-mxauth.gw.nic.fujitsu.com (Postfix) with ESMTP id 86EC4AC0595 for ; Mon, 14 Jul 2014 20:01:40 +0900 (JST) Received: from g01jpfmpwyt01.exch.g01.fujitsu.local (g01jpfmpwyt01.exch.g01.fujitsu.local [10.128.193.38]) by s1.gw.fujitsu.co.jp (Postfix) with ESMTP id 297B01DB8043 for ; Mon, 14 Jul 2014 20:01:40 +0900 (JST) Received: from g01jpexchyt35.g01.fujitsu.local (unknown [10.128.193.4]) by g01jpfmpwyt01.exch.g01.fujitsu.local (Postfix) with ESMTP id EC6646D6567; Mon, 14 Jul 2014 20:00:55 +0900 (JST) Received: from [10.124.101.117] (10.124.101.117) by g01jpexchyt35.g01.fujitsu.local (10.128.193.50) with Microsoft SMTP Server id 14.3.181.6; Mon, 14 Jul 2014 20:00:55 +0900 Message-ID: <53C3B867.2020005@jp.fujitsu.com> Date: Mon, 14 Jul 2014 20:00:55 +0900 From: Masayoshi Mizuma User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:24.0) Gecko/20100101 Thunderbird/24.2.0 MIME-Version: 1.0 To: CC: , Subject: Re: xfs: two deadlock problems occur when kswapd writebacks XFS pages. References: <53A0013A.1010100@jp.fujitsu.com> <20140617132609.GI9508@dastard> <53A15DC7.50001@jp.fujitsu.com> <53A7D6CC.1040605@jp.fujitsu.com> <20140624220530.GD1976@devil.localdomain> X-ASG-Orig-Subj: Re: xfs: two deadlock problems occur when kswapd writebacks XFS pages. In-Reply-To: <20140624220530.GD1976@devil.localdomain> Content-Type: text/plain; charset="ISO-8859-1"; format=flowed Content-Transfer-Encoding: 7bit X-SecurityPolicyCheck-GC: OK by FENCE-Mail X-Barracuda-Connect: UNKNOWN[192.51.44.36] X-Barracuda-Start-Time: 1405335702 X-Barracuda-Encrypted: AES256-SHA X-Barracuda-URL: http://192.48.176.15:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 X-Barracuda-Spam-Score: 0.60 X-Barracuda-Spam-Status: No, SCORE=0.60 using per-user scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.7 tests=BSF_SC0_MISMATCH_TO, BSF_SC5_MJ1963, RDNS_NONE X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.7503 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.00 BSF_SC0_MISMATCH_TO Envelope rcpt doesn't match header 0.10 RDNS_NONE Delivered to trusted network by a host with no rDNS 0.50 BSF_SC5_MJ1963 Custom Rule MJ1963 Hi Dave, Thank you for your comment! and I apologize for my delayed response. As your comment, I have investigated again the RHEL7 crash dump why the processes which doing direct memory reclaim are stuck at shrink_inactive_list(). Then, I found the reason that the processes and kswapd are trying to free page caches from a zone despite the number of inactive file pages is very very small (40 pages). kswapd moved inactive file pages to isolate file pages to free the pages at shrink_inactive_list(). As the result, NR_INACTIVE_FILE was 0 and NR_ISOLATED_FILE was 40. Therefore, no one can increase NR_INACTIVE_FILE or decrease NR_ISOLATED_FILE, so the system hangs up. In such situation, we should not try to free inactive file pages because kswapd and direct memory reclaimer can move inactive file pages to isolate file pages up to 32 pages. And, I found why the problems did not happen on the upstream kernel. The problems did not happen because of the following commit. --- commit 623762517e2370be3b3f95f4fe08d6c063a49b06 Author: Johannes Weiner Date: Tue May 6 12:50:07 2014 -0700 revert "mm: vmscan: do not swap anon pages just because free+file is low" --- Thank you so much! Masayoshi Mizuma On Wed, 25 Jun 2014 08:05:30 +1000 Dave Chinner wrote: > On Mon, Jun 23, 2014 at 04:27:08PM +0900, Masayoshi Mizuma wrote: >> Hi Dave, >> >> (I removed CCing xfs and linux-mm. And I changed your email address >> to @redhat.com because this email includes RHEL7 kernel stack traces.) > > Please don't do that. There's nothing wrong with posting RHEL7 stack > traces to public lists (though I'd prefer you to reproduce this > problem on a 3.15 or 3.16-rc kernel), and breaking the thread of > discussion makes it impossible to involve the people necessary to > solve this problem. > > I've re-added xfs and linux-mm to the cc list, and taken my redhat > address off it... > > > > [looks at sysrq-w output] > > kswapd0 is blocked in shrink_inactive_list/congestion_wait(). > > kswapd1 is blocked waiting for log space from > shrink_inactive_list(). > > kthreadd is blocked in shrink_inactive_list/congestion_wait trying > to fork another process. > > xfsaild is in uninterruptible sleep, indicating that there is still > metadata to be written to push the log tail to it's required target, > and it will retry again in less than 20ms. > > xfslogd is not blocked, indicating the log has not deadlocked > due to lack of space. > > there are lots of timestamp updates waiting for log space. > > There is one kworker stuck in data IO completion on an inode lock. > > There are several threads blocked on an AGF lock trying to free > extents. > > The bdi writeback thread is blocked waiting for allocation. > > A single xfs_alloc_wq kworker is blocked in > shrink_inactive_list/congestion_wait while trying to read in btree > blocks for transactional modification. Indicative of memory pressure > trashing the working set of cached metadata. waiting for memory > reclaim > - holds agf lock, blocks unlinks > > There are 113 (!) blocked sadc processes - why are there so many > stats gathering processes running? If you stop gathering stats, does > the problem go away? > > There are 54 mktemp processes blocked - what is generating them? > what filesystem are they actually running on? i.e. which XFS > filesystem in the system is having log space shortages? And what is > the xfs_info output of that filesystem i.e. have you simply > oversubscribed a tiny log and so it crawls along at a very slow > pace? > > All of the blocked processes are on CPUs 0-3 i.e. on node 0, which > is handled by kswapd0, which is not blocked waiting for log > space. Hmmm - what is the value of /proc/sys/vm/zone_reclaim_mode? > If it is not zero, does setting it to zero make the problem go away? > > Interestingly enough, for a system under extreme memory pressure, > don't see any processes blocked waiting for swap space or swap IO. > Do you have any swap space configured on this machine? If you > don't, does the problem go away when you add a swap device? > > Overall, I can't see anything that indicates that the filesystem has > actually hung. I can see it having trouble allocating the memory it > needs to make forwards progress, but the system itself is not > deadlocked. Is there any IO being issued when the system is in this > state? If there is Io being issued, then progress is being made and > the system is merely slow because of the extreme memory pressure > generated by the stress test. > > If there is not IO being issued, does the system start making > progress again if you kill one of the memory hogs? i.e. does the > equivalent of triggering an OOM-kill make the system responsive > again? If it does, then the filesystem is not hung and the problem > is that there isn't enough free memory to allow the filesystem to do > IO and hence allow memory reclaim to make progress. In which case, > does increasing /proc/sys/vm/min_free_kbytes make the problem go > away? > > Cheers, > > Dave. > From bfoster@redhat.com Mon Jul 14 07:02:38 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: xfs@oss.sgi.com Delivered-To: xfs@oss.sgi.com Received: from relay.sgi.com (relay3.corp.sgi.com [198.149.34.15]) by oss.sgi.com (Postfix) with ESMTP id 5B8577F85 for ; Mon, 14 Jul 2014 07:02:38 -0500 (CDT) Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by relay3.corp.sgi.com (Postfix) with ESMTP id CEA0DAC005 for ; Mon, 14 Jul 2014 05:02:34 -0700 (PDT) X-ASG-Debug-ID: 1405339352-04cbb0421bc0af0001-NocioJ Received: from mx1.redhat.com (mx1.redhat.com [209.132.183.28]) by cuda.sgi.com with ESMTP id zDgiL4qcGXlTlXEs (version=TLSv1 cipher=AES256-SHA bits=256 verify=NO) for ; Mon, 14 Jul 2014 05:02:33 -0700 (PDT) X-Barracuda-Envelope-From: bfoster@redhat.com X-Barracuda-Apparent-Source-IP: 209.132.183.28 X-ASG-Whitelist: Client Received: from int-mx09.intmail.prod.int.phx2.redhat.com (int-mx09.intmail.prod.int.phx2.redhat.com [10.5.11.22]) by mx1.redhat.com (8.14.4/8.14.4) with ESMTP id s6EC2PJA018667 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Mon, 14 Jul 2014 08:02:25 -0400 Received: from bfoster.bfoster ([10.18.41.237]) by int-mx09.intmail.prod.int.phx2.redhat.com (8.14.4/8.14.4) with ESMTP id s6EC2ODK022358; Mon, 14 Jul 2014 08:02:24 -0400 Received: by bfoster.bfoster (Postfix, from userid 1000) id AB643124B7C; Mon, 14 Jul 2014 08:02:23 -0400 (EDT) Date: Mon, 14 Jul 2014 08:02:23 -0400 From: Brian Foster To: Dave Chinner Cc: xfs@oss.sgi.com Subject: Re: [PATCH 2/3] xfs: refine the allocation stack switch Message-ID: <20140714120222.GA14369@bfoster.bfoster> X-ASG-Orig-Subj: Re: [PATCH 2/3] xfs: refine the allocation stack switch References: <1405313339-29110-1-git-send-email-david@fromorbit.com> <1405313339-29110-3-git-send-email-david@fromorbit.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1405313339-29110-3-git-send-email-david@fromorbit.com> User-Agent: Mutt/1.5.23 (2014-03-12) X-Scanned-By: MIMEDefang 2.68 on 10.5.11.22 X-Barracuda-Connect: mx1.redhat.com[209.132.183.28] X-Barracuda-Start-Time: 1405339353 X-Barracuda-Encrypted: AES256-SHA X-Barracuda-URL: http://192.48.176.25:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 On Mon, Jul 14, 2014 at 02:48:58PM +1000, Dave Chinner wrote: > From: Dave Chinner > ... > > Signed-off-by: Dave Chinner > --- Looks good... Reviewed-by: Brian Foster > fs/xfs/xfs_bmap.c | 7 ++--- > fs/xfs/xfs_bmap.h | 4 +-- > fs/xfs/xfs_bmap_util.c | 43 -------------------------- > fs/xfs/xfs_bmap_util.h | 13 +++----- > fs/xfs/xfs_btree.c | 82 +++++++++++++++++++++++++++++++++++++++++++++++++- > fs/xfs/xfs_iomap.c | 3 +- > 6 files changed, 90 insertions(+), 62 deletions(-) > > diff --git a/fs/xfs/xfs_bmap.c b/fs/xfs/xfs_bmap.c > index 96175df..75c3fe5 100644 > --- a/fs/xfs/xfs_bmap.c > +++ b/fs/xfs/xfs_bmap.c > @@ -4298,8 +4298,8 @@ xfs_bmapi_delay( > } > > > -int > -__xfs_bmapi_allocate( > +static int > +xfs_bmapi_allocate( > struct xfs_bmalloca *bma) > { > struct xfs_mount *mp = bma->ip->i_mount; > @@ -4578,9 +4578,6 @@ xfs_bmapi_write( > bma.flist = flist; > bma.firstblock = firstblock; > > - if (flags & XFS_BMAPI_STACK_SWITCH) > - bma.stack_switch = 1; > - > while (bno < end && n < *nmap) { > inhole = eof || bma.got.br_startoff > bno; > wasdelay = !inhole && isnullstartblock(bma.got.br_startblock); > diff --git a/fs/xfs/xfs_bmap.h b/fs/xfs/xfs_bmap.h > index 38ba36e..b879ca5 100644 > --- a/fs/xfs/xfs_bmap.h > +++ b/fs/xfs/xfs_bmap.h > @@ -77,7 +77,6 @@ typedef struct xfs_bmap_free > * from written to unwritten, otherwise convert from unwritten to written. > */ > #define XFS_BMAPI_CONVERT 0x040 > -#define XFS_BMAPI_STACK_SWITCH 0x080 > > #define XFS_BMAPI_FLAGS \ > { XFS_BMAPI_ENTIRE, "ENTIRE" }, \ > @@ -86,8 +85,7 @@ typedef struct xfs_bmap_free > { XFS_BMAPI_PREALLOC, "PREALLOC" }, \ > { XFS_BMAPI_IGSTATE, "IGSTATE" }, \ > { XFS_BMAPI_CONTIG, "CONTIG" }, \ > - { XFS_BMAPI_CONVERT, "CONVERT" }, \ > - { XFS_BMAPI_STACK_SWITCH, "STACK_SWITCH" } > + { XFS_BMAPI_CONVERT, "CONVERT" } > > > static inline int xfs_bmapi_aflag(int w) > diff --git a/fs/xfs/xfs_bmap_util.c b/fs/xfs/xfs_bmap_util.c > index 057f671..64731ef 100644 > --- a/fs/xfs/xfs_bmap_util.c > +++ b/fs/xfs/xfs_bmap_util.c > @@ -249,49 +249,6 @@ xfs_bmap_rtalloc( > } > > /* > - * Stack switching interfaces for allocation > - */ > -static void > -xfs_bmapi_allocate_worker( > - struct work_struct *work) > -{ > - struct xfs_bmalloca *args = container_of(work, > - struct xfs_bmalloca, work); > - unsigned long pflags; > - > - /* we are in a transaction context here */ > - current_set_flags_nested(&pflags, PF_FSTRANS); > - > - args->result = __xfs_bmapi_allocate(args); > - complete(args->done); > - > - current_restore_flags_nested(&pflags, PF_FSTRANS); > -} > - > -/* > - * Some allocation requests often come in with little stack to work on. Push > - * them off to a worker thread so there is lots of stack to use. Otherwise just > - * call directly to avoid the context switch overhead here. > - */ > -int > -xfs_bmapi_allocate( > - struct xfs_bmalloca *args) > -{ > - DECLARE_COMPLETION_ONSTACK(done); > - > - if (!args->stack_switch) > - return __xfs_bmapi_allocate(args); > - > - > - args->done = &done; > - INIT_WORK_ONSTACK(&args->work, xfs_bmapi_allocate_worker); > - queue_work(xfs_alloc_wq, &args->work); > - wait_for_completion(&done); > - destroy_work_on_stack(&args->work); > - return args->result; > -} > - > -/* > * Check if the endoff is outside the last extent. If so the caller will grow > * the allocation to a stripe unit boundary. All offsets are considered outside > * the end of file for an empty fork, so 1 is returned in *eof in that case. > diff --git a/fs/xfs/xfs_bmap_util.h b/fs/xfs/xfs_bmap_util.h > index 935ed2b..2fdb72d 100644 > --- a/fs/xfs/xfs_bmap_util.h > +++ b/fs/xfs/xfs_bmap_util.h > @@ -50,12 +50,11 @@ struct xfs_bmalloca { > xfs_extlen_t total; /* total blocks needed for xaction */ > xfs_extlen_t minlen; /* minimum allocation size (blocks) */ > xfs_extlen_t minleft; /* amount must be left after alloc */ > - char eof; /* set if allocating past last extent */ > - char wasdel; /* replacing a delayed allocation */ > - char userdata;/* set if is user data */ > - char aeof; /* allocated space at eof */ > - char conv; /* overwriting unwritten extents */ > - char stack_switch; > + bool eof; /* set if allocating past last extent */ > + bool wasdel; /* replacing a delayed allocation */ > + bool userdata;/* set if is user data */ > + bool aeof; /* allocated space at eof */ > + bool conv; /* overwriting unwritten extents */ > int flags; > struct completion *done; > struct work_struct work; > @@ -65,8 +64,6 @@ struct xfs_bmalloca { > int xfs_bmap_finish(struct xfs_trans **tp, struct xfs_bmap_free *flist, > int *committed); > int xfs_bmap_rtalloc(struct xfs_bmalloca *ap); > -int xfs_bmapi_allocate(struct xfs_bmalloca *args); > -int __xfs_bmapi_allocate(struct xfs_bmalloca *args); > int xfs_bmap_eof(struct xfs_inode *ip, xfs_fileoff_t endoff, > int whichfork, int *eof); > int xfs_bmap_count_blocks(struct xfs_trans *tp, struct xfs_inode *ip, > diff --git a/fs/xfs/xfs_btree.c b/fs/xfs/xfs_btree.c > index bf810c6..cf893bc 100644 > --- a/fs/xfs/xfs_btree.c > +++ b/fs/xfs/xfs_btree.c > @@ -33,6 +33,7 @@ > #include "xfs_error.h" > #include "xfs_trace.h" > #include "xfs_cksum.h" > +#include "xfs_alloc.h" > > /* > * Cursor allocation zone. > @@ -2323,7 +2324,7 @@ error1: > * record (to be inserted into parent). > */ > STATIC int /* error */ > -xfs_btree_split( > +__xfs_btree_split( > struct xfs_btree_cur *cur, > int level, > union xfs_btree_ptr *ptrp, > @@ -2503,6 +2504,85 @@ error0: > return error; > } > > +struct xfs_btree_split_args { > + struct xfs_btree_cur *cur; > + int level; > + union xfs_btree_ptr *ptrp; > + union xfs_btree_key *key; > + struct xfs_btree_cur **curp; > + int *stat; /* success/failure */ > + int result; > + bool kswapd; /* allocation in kswapd context */ > + struct completion *done; > + struct work_struct work; > +}; > + > +/* > + * Stack switching interfaces for allocation > + */ > +static void > +xfs_btree_split_worker( > + struct work_struct *work) > +{ > + struct xfs_btree_split_args *args = container_of(work, > + struct xfs_btree_split_args, work); > + unsigned long pflags; > + unsigned long new_pflags = PF_FSTRANS; > + > + /* > + * we are in a transaction context here, but may also be doing work > + * in kswapd context, and hence we may need to inherit that state > + * temporarily to ensure that we don't block waiting for memory reclaim > + * in any way. > + */ > + if (args->kswapd) > + new_pflags |= PF_MEMALLOC | PF_SWAPWRITE | PF_KSWAPD; > + > + current_set_flags_nested(&pflags, new_pflags); > + > + args->result = __xfs_btree_split(args->cur, args->level, args->ptrp, > + args->key, args->curp, args->stat); > + complete(args->done); > + > + current_restore_flags_nested(&pflags, new_pflags); > +} > + > +/* > + * BMBT split requests often come in with little stack to work on. Push > + * them off to a worker thread so there is lots of stack to use. For the other > + * btree types, just call directly to avoid the context switch overhead here. > + */ > +STATIC int /* error */ > +xfs_btree_split( > + struct xfs_btree_cur *cur, > + int level, > + union xfs_btree_ptr *ptrp, > + union xfs_btree_key *key, > + struct xfs_btree_cur **curp, > + int *stat) /* success/failure */ > +{ > + struct xfs_btree_split_args args; > + DECLARE_COMPLETION_ONSTACK(done); > + > + if (cur->bc_btnum != XFS_BTNUM_BMAP) > + return __xfs_btree_split(cur, level, ptrp, key, curp, stat); > + > + args.cur = cur; > + args.level = level; > + args.ptrp = ptrp; > + args.key = key; > + args.curp = curp; > + args.stat = stat; > + args.done = &done; > + args.kswapd = current_is_kswapd(); > + INIT_WORK_ONSTACK(&args.work, xfs_btree_split_worker); > + queue_work(xfs_alloc_wq, &args.work); > + wait_for_completion(&done); > + destroy_work_on_stack(&args.work); > + return args.result; > +} > + > + > /* > * Copy the old inode root contents into a real block and make the > * broot point to it. > diff --git a/fs/xfs/xfs_iomap.c b/fs/xfs/xfs_iomap.c > index 6c5eb4c..6d3ec2b 100644 > --- a/fs/xfs/xfs_iomap.c > +++ b/fs/xfs/xfs_iomap.c > @@ -749,8 +749,7 @@ xfs_iomap_write_allocate( > * pointer that the caller gave to us. > */ > error = xfs_bmapi_write(tp, ip, map_start_fsb, > - count_fsb, > - XFS_BMAPI_STACK_SWITCH, > + count_fsb, 0, > &first_block, 1, > imap, &nimaps, &free_list); > if (error) > -- > 2.0.0 > > _______________________________________________ > xfs mailing list > xfs@oss.sgi.com > http://oss.sgi.com/mailman/listinfo/xfs From bfoster@redhat.com Mon Jul 14 07:02:43 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: xfs@oss.sgi.com Delivered-To: xfs@oss.sgi.com Received: from relay.sgi.com (relay1.corp.sgi.com [137.38.102.111]) by oss.sgi.com (Postfix) with ESMTP id 1C8907F90 for ; Mon, 14 Jul 2014 07:02:43 -0500 (CDT) Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by relay1.corp.sgi.com (Postfix) with ESMTP id 154E48F8035 for ; Mon, 14 Jul 2014 05:02:40 -0700 (PDT) X-ASG-Debug-ID: 1405339358-04cb6c6ad2b9a80001-NocioJ Received: from mx1.redhat.com (mx1.redhat.com [209.132.183.28]) by cuda.sgi.com with ESMTP id Ap2A6sIaDV61NiSJ (version=TLSv1 cipher=AES256-SHA bits=256 verify=NO) for ; Mon, 14 Jul 2014 05:02:39 -0700 (PDT) X-Barracuda-Envelope-From: bfoster@redhat.com X-Barracuda-Apparent-Source-IP: 209.132.183.28 X-ASG-Whitelist: Client Received: from int-mx09.intmail.prod.int.phx2.redhat.com (int-mx09.intmail.prod.int.phx2.redhat.com [10.5.11.22]) by mx1.redhat.com (8.14.4/8.14.4) with ESMTP id s6EC2bmr017158 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Mon, 14 Jul 2014 08:02:37 -0400 Received: from bfoster.bfoster ([10.18.41.237]) by int-mx09.intmail.prod.int.phx2.redhat.com (8.14.4/8.14.4) with ESMTP id s6EC2amJ022533; Mon, 14 Jul 2014 08:02:37 -0400 Received: by bfoster.bfoster (Postfix, from userid 1000) id EF5B9124B7C; Mon, 14 Jul 2014 08:02:35 -0400 (EDT) Date: Mon, 14 Jul 2014 08:02:35 -0400 From: Brian Foster To: Dave Chinner Cc: xfs@oss.sgi.com Subject: Re: [PATCH 3/3] xfs: null unused quota inodes when quota is on Message-ID: <20140714120235.GB14369@bfoster.bfoster> X-ASG-Orig-Subj: Re: [PATCH 3/3] xfs: null unused quota inodes when quota is on References: <1405313339-29110-1-git-send-email-david@fromorbit.com> <1405313339-29110-4-git-send-email-david@fromorbit.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1405313339-29110-4-git-send-email-david@fromorbit.com> User-Agent: Mutt/1.5.23 (2014-03-12) X-Scanned-By: MIMEDefang 2.68 on 10.5.11.22 X-Barracuda-Connect: mx1.redhat.com[209.132.183.28] X-Barracuda-Start-Time: 1405339359 X-Barracuda-Encrypted: AES256-SHA X-Barracuda-URL: http://192.48.176.15:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 On Mon, Jul 14, 2014 at 02:48:59PM +1000, Dave Chinner wrote: > From: Dave Chinner > > When quota is on, it is expected that unused quota inodes have a > value of NULLFSINO. The changes to support a separate project quota > in 3.12 broken this rule for non-project quota inode enabled > filesystem, as the code now refuses to write the group quota inode > if neither group or project quotas are enabled. This regression was > introduced by commit d892d58 ("xfs: Start using pquotaino from the > superblock"). > > In this case, we should be writing NULLFSINO rather than nothing to > ensure that we leave the group quota inode in a valid state while > quotas are enabled. > > Failure to do so doesn't cause a current kernel to break - the > separate project quota inodes introduced translation code to always > treat a zero inode as NULLFSINO. This was introduced by commit > 0102629 ("xfs: Initialize all quota inodes to be NULLFSINO") with is > also in 3.12 but older kernels do not do this and hence taking a > filesystem back to an older kernel can result in quotas failing > initialisation at mount time. When that happens, we see this in > dmesg: > > [ 1649.215390] XFS (sdb): Mounting Filesystem > [ 1649.316894] XFS (sdb): Failed to initialize disk quotas. > [ 1649.316902] XFS (sdb): Ending clean mount > > By ensuring that we write NULLFSINO to quota inodes that aren't > active, we avoid this problem. We have to be really careful when > determining if the quota inodes are active or not, because we don't > want to write a NULLFSINO if the quota inodes are active and we > simply aren't updating them. > > Signed-off-by: Dave Chinner > --- Reviewed-by: Brian Foster > fs/xfs/xfs_sb.c | 25 +++++++++++++++++++++---- > 1 file changed, 21 insertions(+), 4 deletions(-) > > diff --git a/fs/xfs/xfs_sb.c b/fs/xfs/xfs_sb.c > index c3453b1..7703fa6 100644 > --- a/fs/xfs/xfs_sb.c > +++ b/fs/xfs/xfs_sb.c > @@ -483,10 +483,16 @@ xfs_sb_quota_to_disk( > } > > /* > - * GQUOTINO and PQUOTINO cannot be used together in versions > - * of superblock that do not have pquotino. from->sb_flags > - * tells us which quota is active and should be copied to > - * disk. > + * GQUOTINO and PQUOTINO cannot be used together in versions of > + * superblock that do not have pquotino. from->sb_flags tells us which > + * quota is active and should be copied to disk. If neither are active, > + * make sure we write NULLFSINO to the sb_gquotino field as a quota > + * inode value of "0" is invalid when the XFS_SB_VERSION_QUOTA feature > + * bit is set. > + * > + * Note that we don't need to handle the sb_uquotino or sb_pquotino here > + * as they do not require any translation. Hence the main sb field loop > + * will write them appropriately from the in-core superblock. > */ > if ((*fields & XFS_SB_GQUOTINO) && > (from->sb_qflags & XFS_GQUOTA_ACCT)) > @@ -494,6 +500,17 @@ xfs_sb_quota_to_disk( > else if ((*fields & XFS_SB_PQUOTINO) && > (from->sb_qflags & XFS_PQUOTA_ACCT)) > to->sb_gquotino = cpu_to_be64(from->sb_pquotino); > + else { > + /* > + * We can't rely on just the fields being logged to tell us > + * that it is safe to write NULLFSINO - we should only do that > + * if quotas are not actually enabled. Hence only write > + * NULLFSINO if both in-core quota inodes are NULL. > + */ > + if (from->sb_gquotino == NULLFSINO && > + from->sb_pquotino == NULLFSINO) > + to->sb_gquotino = cpu_to_be64(NULLFSINO); > + } > > *fields &= ~(XFS_SB_PQUOTINO | XFS_SB_GQUOTINO); > } > -- > 2.0.0 > > _______________________________________________ > xfs mailing list > xfs@oss.sgi.com > http://oss.sgi.com/mailman/listinfo/xfs From bfoster@redhat.com Mon Jul 14 07:34:11 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: xfs@oss.sgi.com Delivered-To: xfs@oss.sgi.com Received: from relay.sgi.com (relay1.corp.sgi.com [137.38.102.111]) by oss.sgi.com (Postfix) with ESMTP id 1ACEA7F8E for ; Mon, 14 Jul 2014 07:34:11 -0500 (CDT) Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by relay1.corp.sgi.com (Postfix) with ESMTP id E1E348F8037 for ; Mon, 14 Jul 2014 05:34:10 -0700 (PDT) X-ASG-Debug-ID: 1405341249-04bdf03568bc5d0001-NocioJ Received: from mx1.redhat.com (mx1.redhat.com [209.132.183.28]) by cuda.sgi.com with ESMTP id yy8TJZfBxixJ8OVy (version=TLSv1 cipher=AES256-SHA bits=256 verify=NO) for ; Mon, 14 Jul 2014 05:34:09 -0700 (PDT) X-Barracuda-Envelope-From: bfoster@redhat.com X-Barracuda-Apparent-Source-IP: 209.132.183.28 X-ASG-Whitelist: Client Received: from int-mx11.intmail.prod.int.phx2.redhat.com (int-mx11.intmail.prod.int.phx2.redhat.com [10.5.11.24]) by mx1.redhat.com (8.14.4/8.14.4) with ESMTP id s6ECY8KF002323 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK) for ; Mon, 14 Jul 2014 08:34:09 -0400 Received: from bfoster.bfoster ([10.18.41.237]) by int-mx11.intmail.prod.int.phx2.redhat.com (8.14.4/8.14.4) with ESMTP id s6ECY8Gi000333; Mon, 14 Jul 2014 08:34:08 -0400 Received: by bfoster.bfoster (Postfix, from userid 1000) id A54CE124B7C; Mon, 14 Jul 2014 08:34:07 -0400 (EDT) Date: Mon, 14 Jul 2014 08:34:07 -0400 From: Brian Foster To: Eric Sandeen Cc: xfs-oss Subject: Re: [PATCH] xfs_repair: copy, don't clear, stripe geometry in backup SB Message-ID: <20140714123407.GC14369@bfoster.bfoster> X-ASG-Orig-Subj: Re: [PATCH] xfs_repair: copy, don't clear, stripe geometry in backup SB References: <53C06CE9.9000209@redhat.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <53C06CE9.9000209@redhat.com> User-Agent: Mutt/1.5.23 (2014-03-12) X-Scanned-By: MIMEDefang 2.68 on 10.5.11.24 X-Barracuda-Connect: mx1.redhat.com[209.132.183.28] X-Barracuda-Start-Time: 1405341249 X-Barracuda-Encrypted: AES256-SHA X-Barracuda-URL: http://192.48.157.11:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 On Fri, Jul 11, 2014 at 06:02:01PM -0500, Eric Sandeen wrote: > Today, if we have a filesystem with stripe geometry and > a damaged primary superblock, we will zero out stripe geometry > if we have copied the backup. > > I'm guessing this might be because changing geometry with mount > options only updates the primary, so backups aren't guaranteed > to be current or correct. > > Unfortunately, that leaves us with sb 0 w/ no geom, and backups > *with* geom, so the next repair finds the mismatch, and complains. > (In other words, the 2nd repair does not come up clean.)_ > And ... the second repair copies the backup stripe geometry back > into the primary! > > Rather than clearing stripe geometry in this case, just leave it > at what was found in the backup super, and inform the user that this > was done. This leaves a consistent filesystem, and gives the user > a heads-up to double-check the result. > > This can all be demonstrated and tested by running xfs/030 with > geometry set in MKFS_OPTIONS. (To really make the test pass, > we need to filter the warning out of repair output.) > > Signed-off-by: Eric Sandeen > --- Seems reasonable to me. Reviewed-by: Brian Foster > > diff --git a/repair/globals.h b/repair/globals.h > index f6e0a22..6207ca1 100644 > --- a/repair/globals.h > +++ b/repair/globals.h > @@ -124,7 +124,7 @@ EXTERN int lazy_count; /* What to set if to if converting */ > > EXTERN int primary_sb_modified; > EXTERN int bad_ino_btree; > -EXTERN int clear_sunit; > +EXTERN int copied_sunit; > EXTERN int fs_is_dirty; > > /* for hunting down the root inode */ > diff --git a/repair/sb.c b/repair/sb.c > index bc421cc..ad27756 100644 > --- a/repair/sb.c > +++ b/repair/sb.c > @@ -151,7 +151,7 @@ find_secondary_sb(xfs_sb_t *rsb) > */ > memmove(rsb, &bufsb, sizeof(xfs_sb_t)); > rsb->sb_inprogress = 0; > - clear_sunit = 1; > + copied_sunit = 1; > > if (verify_set_primary_sb(rsb, 0, &dirty) == XR_OK) { > do_warn( > diff --git a/repair/xfs_repair.c b/repair/xfs_repair.c > index 9eb2fa4..834697a 100644 > --- a/repair/xfs_repair.c > +++ b/repair/xfs_repair.c > @@ -193,7 +193,7 @@ process_args(int argc, char **argv) > delete_attr_ok = 1; > force_geo = 0; > assume_xfs = 0; > - clear_sunit = 0; > + copied_sunit = 0; > sb_inoalignmt = 0; > sb_unit = 0; > sb_width = 0; > @@ -898,13 +898,11 @@ _("Warning: project quota information would be cleared.\n" > dsb->sb_qflags &= cpu_to_be16(~XFS_ALL_QUOTA_CHKD); > } > > - if (clear_sunit) { > + if (copied_sunit) { > do_warn( > -_("Note - stripe unit (%d) and width (%d) fields have been reset.\n" > - "Please set with mount -o sunit=,swidth=\n"), > +_("Note - stripe unit (%d) and width (%d) were copied from a backup superblock.\n" > + "Please reset with mount -o sunit=,swidth= if necessary\n"), > be32_to_cpu(dsb->sb_unit), be32_to_cpu(dsb->sb_width)); > - dsb->sb_unit = 0; > - dsb->sb_width = 0; > } > > libxfs_writebuf(sbp, 0); > > _______________________________________________ > xfs mailing list > xfs@oss.sgi.com > http://oss.sgi.com/mailman/listinfo/xfs From bfoster@redhat.com Mon Jul 14 07:34:34 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: xfs@oss.sgi.com Delivered-To: xfs@oss.sgi.com Received: from relay.sgi.com (relay1.corp.sgi.com [137.38.102.111]) by oss.sgi.com (Postfix) with ESMTP id A020D7F8E for ; Mon, 14 Jul 2014 07:34:34 -0500 (CDT) Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by relay1.corp.sgi.com (Postfix) with ESMTP id 758D48F8035 for ; Mon, 14 Jul 2014 05:34:34 -0700 (PDT) X-ASG-Debug-ID: 1405341272-04bdf0356bbc600001-NocioJ Received: from mx1.redhat.com (mx1.redhat.com [209.132.183.28]) by cuda.sgi.com with ESMTP id ZOtk8nlygapzU5Ew (version=TLSv1 cipher=AES256-SHA bits=256 verify=NO) for ; Mon, 14 Jul 2014 05:34:33 -0700 (PDT) X-Barracuda-Envelope-From: bfoster@redhat.com X-Barracuda-Apparent-Source-IP: 209.132.183.28 X-ASG-Whitelist: Client Received: from int-mx14.intmail.prod.int.phx2.redhat.com (int-mx14.intmail.prod.int.phx2.redhat.com [10.5.11.27]) by mx1.redhat.com (8.14.4/8.14.4) with ESMTP id s6ECYWxY028567 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Mon, 14 Jul 2014 08:34:32 -0400 Received: from bfoster.bfoster ([10.18.41.237]) by int-mx14.intmail.prod.int.phx2.redhat.com (8.14.4/8.14.4) with ESMTP id s6ECYVb8016354; Mon, 14 Jul 2014 08:34:32 -0400 Received: by bfoster.bfoster (Postfix, from userid 1000) id E750D124B7C; Mon, 14 Jul 2014 08:34:30 -0400 (EDT) Date: Mon, 14 Jul 2014 08:34:30 -0400 From: Brian Foster To: Eric Sandeen Cc: Eric Sandeen , xfs-oss Subject: Re: [PATCH V2] xfsprogs: libxcmd/paths: make all comparisons using realpath'd paths Message-ID: <20140714123430.GD14369@bfoster.bfoster> X-ASG-Orig-Subj: Re: [PATCH V2] xfsprogs: libxcmd/paths: make all comparisons using realpath'd paths References: <53C09034.3070203@redhat.com> <53C090A0.9050403@sandeen.net> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <53C090A0.9050403@sandeen.net> User-Agent: Mutt/1.5.23 (2014-03-12) X-Scanned-By: MIMEDefang 2.68 on 10.5.11.27 X-Barracuda-Connect: mx1.redhat.com[209.132.183.28] X-Barracuda-Start-Time: 1405341273 X-Barracuda-Encrypted: AES256-SHA X-Barracuda-URL: http://192.48.157.11:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 On Fri, Jul 11, 2014 at 08:34:24PM -0500, Eric Sandeen wrote: > Both mountpoints and devices can be symlinks, so given a path > to look for, and mountpoints/devices from the system, use > realpath() on *everything* before making the comparison to see > if our path is a match. > > So, with symlinks for mount points as well as for devices: > > # ls -l /dev/mapper/testvg-lvol0 > lrwxrwxrwx. 1 root root 7 Jul 11 19:24 /dev/mapper/testvg-lvol0 -> ../dm-3 > # ls -l /mnt/scratch2 > lrwxrwxrwx. 1 root root 12 Jul 11 19:57 /mnt/scratch2 -> /mnt/scratch > > this should all work, and does now: > > # xfs_quota -xc "report -h" /mnt/scratch2 > User quota on /mnt/scratch (/dev/mapper/testvg-lvol0) > Blocks > User ID Used Soft Hard Warn/Grace > ---------- --------------------------------- > root 0 0 0 00 [------] > > # xfs_quota -xc "report -h" /mnt/scratch > User quota on /mnt/scratch (/dev/mapper/testvg-lvol0) > Blocks > User ID Used Soft Hard Warn/Grace > ---------- --------------------------------- > root 0 0 0 00 [------] > > # xfs_quota -xc "report -h" /dev/dm-3 > User quota on /mnt/scratch (/dev/mapper/testvg-lvol0) > Blocks > User ID Used Soft Hard Warn/Grace > ---------- --------------------------------- > root 0 0 0 00 [------] > > # xfs_quota -xc "report -h" /dev/mapper/testvg-lvol0 > User quota on /mnt/scratch (/dev/mapper/testvg-lvol0) > Blocks > User ID Used Soft Hard Warn/Grace > ---------- --------------------------------- > root 0 0 0 00 [------] > > The commit: > > 050a7f1 xfsprogs: handle symlinks etc in fs_table_initialise_mounts() > > tried to fix this earlier, but only worked one way; > it compared the argument path in both given and realpath > form to the paths in getmntent, but did not compare to > the realpaths of the getmntent devices. > > If we reduce everything, everywhere, to a realpath(), we've > got our best shot at finding the match. > > Signed-off-by: Eric Sandeen > --- > > V2: remove the quota/report.c change which snuck in... > > diff --git a/libxcmd/paths.c b/libxcmd/paths.c > index 7b0e434..8da3968 100644 > --- a/libxcmd/paths.c > +++ b/libxcmd/paths.c > @@ -269,6 +269,9 @@ out_nomem: > /* > * If *path is NULL, initialize the fs table with all xfs mount points in mtab > * If *path is specified, search for that path in mtab > + * > + * Everything - path, devices, and mountpoints - are reduced to realpath() > + * for comparison, but fs_table is populated with what comes from getmntent. > */ > static int > fs_table_initialise_mounts( > @@ -278,7 +281,7 @@ fs_table_initialise_mounts( > FILE *mtp; > char *fslog, *fsrt; > int error, found; > - char *rpath = NULL; > + char *rpath = NULL, *rmnt_fsname = NULL, *rmnt_dir = NULL; > > error = found = 0; > fslog = fsrt = NULL; > @@ -300,11 +303,16 @@ fs_table_initialise_mounts( > while ((mnt = getmntent(mtp)) != NULL) { > if (strcmp(mnt->mnt_type, "xfs") != 0) > continue; > + free(rmnt_dir); > + if ((rmnt_dir = realpath(mnt->mnt_dir, NULL)) == NULL) > + continue; > + free(rmnt_fsname); > + if ((rmnt_fsname = realpath(mnt->mnt_fsname, NULL)) == NULL) > + continue; > + > if (path && > - ((strcmp(path, mnt->mnt_dir) != 0) && > - (strcmp(path, mnt->mnt_fsname) != 0) && > - (strcmp(rpath, mnt->mnt_dir) != 0) && > - (strcmp(rpath, mnt->mnt_fsname) != 0))) > + ((strcmp(rpath, rmnt_dir) != 0) && > + (strcmp(rpath, rmnt_fsname) != 0))) > continue; > if (fs_extract_mount_options(mnt, &fslog, &fsrt)) > continue; > @@ -317,6 +325,8 @@ fs_table_initialise_mounts( > } > endmntent(mtp); > free(rpath); > + free(rmnt_dir); > + free(rmnt_fsname); > > if (path && !found) > error = ENXIO; > @@ -330,6 +340,9 @@ fs_table_initialise_mounts( > /* > * If *path is NULL, initialize the fs table with all xfs mount points in mtab > * If *path is specified, search for that path in mtab > + * > + * Everything - path, devices, and mountpoints - are reduced to realpath() > + * for comparison, but fs_table is populated with what comes from getmntinfo. > */ > static int > fs_table_initialise_mounts( > @@ -337,7 +350,7 @@ fs_table_initialise_mounts( > { > struct statfs *stats; > int i, count, error, found; > - char *rpath = NULL; > + char *rpath = NULL, *rmntfromname= NULL, *rmntonname= NULL; A couple missing spaces before '=' here. The fundamental change looks good, but the memory allocation handling seems a little ugly to me. A 'next:' label in the loop that frees the path buffers is cleaner IMO. Another option could be to put a couple PATH_MAX buffers on the stack or allocate them directly to also eliminate the realpath() return value assignment..? Brian > > error = found = 0; > if ((count = getmntinfo(&stats, 0)) < 0) { > @@ -354,11 +367,16 @@ fs_table_initialise_mounts( > for (i = 0; i < count; i++) { > if (strcmp(stats[i].f_fstypename, "xfs") != 0) > continue; > + free(rmntfromname); > + if ((rmntfromname = realpath(stats[i].f_mntfromname, NULL)) == NULL) > + continue; > + free(rmntonname); > + if ((rmntfromname = realpath(stats[i].f_mntonname, NULL)) == NULL) > + continue; > + > if (path && > - ((strcmp(path, stats[i].f_mntonname) != 0) && > - (strcmp(path, stats[i].f_mntfromname) != 0) && > - (strcmp(rpath, stats[i].f_mntonname) != 0) && > - (strcmp(rpath, stats[i].f_mntfromname) != 0))) > + ((strcmp(rpath, rmntonname) != 0) && > + (strcmp(rpath, rmntfromname) != 0))) > continue; > /* TODO: external log and realtime device? */ > (void) fs_table_insert(stats[i].f_mntonname, 0, > @@ -370,6 +388,8 @@ fs_table_initialise_mounts( > } > } > free(rpath); > + free(rmntfromname); > + free(rmntonname); > if (path && !found) > error = ENXIO; > > > _______________________________________________ > xfs mailing list > xfs@oss.sgi.com > http://oss.sgi.com/mailman/listinfo/xfs From sandeen@sandeen.net Mon Jul 14 09:11:30 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: xfs@oss.sgi.com Delivered-To: xfs@oss.sgi.com Received: from relay.sgi.com (relay1.corp.sgi.com [137.38.102.111]) by oss.sgi.com (Postfix) with ESMTP id 37D0D7F8C for ; Mon, 14 Jul 2014 09:11:30 -0500 (CDT) Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by relay1.corp.sgi.com (Postfix) with ESMTP id 23E648F80A1 for ; Mon, 14 Jul 2014 07:11:26 -0700 (PDT) X-ASG-Debug-ID: 1405347081-04bdf0356ac0a80001-NocioJ Received: from sandeen.net (sandeen.net [63.231.237.45]) by cuda.sgi.com with ESMTP id H5jVxkZ7Npvq2sEE for ; Mon, 14 Jul 2014 07:11:21 -0700 (PDT) X-Barracuda-Envelope-From: sandeen@sandeen.net X-Barracuda-Apparent-Source-IP: 63.231.237.45 Received: from liberator.sandeen.net (liberator.sandeen.net [10.0.0.4]) (using TLSv1 with cipher DHE-RSA-AES128-SHA (128/128 bits)) (No client certificate requested) by sandeen.net (Postfix) with ESMTPSA id 0C4F463BE4E5; Mon, 14 Jul 2014 09:11:21 -0500 (CDT) Message-ID: <53C3E50A.3020801@sandeen.net> Date: Mon, 14 Jul 2014 09:11:22 -0500 From: Eric Sandeen MIME-Version: 1.0 To: Brian Foster CC: Eric Sandeen , xfs-oss Subject: Re: [PATCH V2] xfsprogs: libxcmd/paths: make all comparisons using realpath'd paths References: <53C09034.3070203@redhat.com> <53C090A0.9050403@sandeen.net> <20140714123430.GD14369@bfoster.bfoster> X-ASG-Orig-Subj: Re: [PATCH V2] xfsprogs: libxcmd/paths: make all comparisons using realpath'd paths In-Reply-To: <20140714123430.GD14369@bfoster.bfoster> X-Enigmail-Version: 1.6 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit X-Barracuda-Connect: sandeen.net[63.231.237.45] X-Barracuda-Start-Time: 1405347081 X-Barracuda-URL: http://192.48.157.11:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 X-Barracuda-Spam-Score: 0.00 X-Barracuda-Spam-Status: No, SCORE=0.00 using per-user scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.7 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.7506 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- On 7/14/14, 7:34 AM, Brian Foster wrote: > On Fri, Jul 11, 2014 at 08:34:24PM -0500, Eric Sandeen wrote: >> Both mountpoints and devices can be symlinks, so given a path >> to look for, and mountpoints/devices from the system, use >> realpath() on *everything* before making the comparison to see >> if our path is a match. >> >> So, with symlinks for mount points as well as for devices: >> @@ -337,7 +350,7 @@ fs_table_initialise_mounts( >> { >> struct statfs *stats; >> int i, count, error, found; >> - char *rpath = NULL; >> + char *rpath = NULL, *rmntfromname= NULL, *rmntonname= NULL; > > A couple missing spaces before '=' here. whoopsies > The fundamental change looks good, but the memory allocation handling > seems a little ugly to me. A 'next:' label in the loop that frees the > path buffers is cleaner IMO. Another option could be to put a couple > PATH_MAX buffers on the stack or allocate them directly to also > eliminate the realpath() return value assignment..? Yeah, that probably makes more sense, thanks. -eric From jack@suse.cz Mon Jul 14 09:45:35 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: xfs@oss.sgi.com Delivered-To: xfs@oss.sgi.com Received: from relay.sgi.com (relay2.corp.sgi.com [137.38.102.29]) by oss.sgi.com (Postfix) with ESMTP id BB10C7FA5 for ; Mon, 14 Jul 2014 09:45:35 -0500 (CDT) Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by relay2.corp.sgi.com (Postfix) with ESMTP id A38A2304043 for ; Mon, 14 Jul 2014 07:45:32 -0700 (PDT) X-ASG-Debug-ID: 1405349128-04cbb0421ac7e40001-NocioJ Received: from mx2.suse.de (cantor2.suse.de [195.135.220.15]) by cuda.sgi.com with ESMTP id XvXIRc13SR8Bs5cP (version=TLSv1 cipher=AES256-SHA bits=256 verify=NO) for ; Mon, 14 Jul 2014 07:45:30 -0700 (PDT) X-Barracuda-Envelope-From: jack@suse.cz X-Barracuda-Apparent-Source-IP: 195.135.220.15 Received: from relay2.suse.de (charybdis-ext.suse.de [195.135.220.254]) by mx2.suse.de (Postfix) with ESMTP id 987A5ACA2 for ; Mon, 14 Jul 2014 14:45:28 +0000 (UTC) Received: by quack.suse.cz (Postfix, from userid 1000) id 0B9B781ED9; Mon, 14 Jul 2014 16:45:27 +0200 (CEST) From: Jan Kara To: xfs@oss.sgi.com Cc: Jan Kara Subject: [PATCH] logprint: Fix printing of AGF buffers Date: Mon, 14 Jul 2014 16:45:00 +0200 X-ASG-Orig-Subj: [PATCH] logprint: Fix printing of AGF buffers Message-Id: <1405349100-19734-1-git-send-email-jack@suse.cz> X-Mailer: git-send-email 1.8.1.4 X-Barracuda-Connect: cantor2.suse.de[195.135.220.15] X-Barracuda-Start-Time: 1405349130 X-Barracuda-Encrypted: AES256-SHA X-Barracuda-URL: http://192.48.176.25:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 X-Barracuda-Spam-Score: 0.00 X-Barracuda-Spam-Status: No, SCORE=0.00 using per-user scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.7 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.7507 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- Currently xfs_logprint doesn't show detailed data about AGF buffers and instead always shows "Out of space". This is because xfs_agf_t has additional fields and padding which we never read from disk and thus buffer length is always smaller than the size of xfs_agf_t. Fix the problem by only making sure we have enough data in the buffer to contain all the information we want to print. Signed-off-by: Jan Kara --- logprint/log_misc.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/logprint/log_misc.c b/logprint/log_misc.c index d482cf3fba57..e7306c08789a 100644 --- a/logprint/log_misc.c +++ b/logprint/log_misc.c @@ -367,7 +367,8 @@ xlog_print_trans_buffer(xfs_caddr_t *ptr, int len, int *i, int num_ops) } else if (be32_to_cpu(*(__be32 *)(*ptr)) == XFS_AGF_MAGIC) { agf = (xfs_agf_t *)(*ptr); printf(_("AGF Buffer: XAGF ")); - if (be32_to_cpu(head->oh_len) < sizeof(xfs_agf_t)) { + /* Make sure buffer contains all the data we want to print */ + if (be32_to_cpu(head->oh_len) < offsetof(xfs_agf_t, agf_uuid)) { printf(_("Out of space\n")); } else { printf("\n"); -- 1.8.1.4 From sandeen@sandeen.net Mon Jul 14 11:06:10 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: xfs@oss.sgi.com Delivered-To: xfs@oss.sgi.com Received: from relay.sgi.com (relay2.corp.sgi.com [137.38.102.29]) by oss.sgi.com (Postfix) with ESMTP id 649D07FA9 for ; Mon, 14 Jul 2014 11:06:10 -0500 (CDT) Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by relay2.corp.sgi.com (Postfix) with ESMTP id 5153B304032 for ; Mon, 14 Jul 2014 09:06:06 -0700 (PDT) X-ASG-Debug-ID: 1405353965-04cbb0421bcbf20001-NocioJ Received: from sandeen.net (sandeen.net [63.231.237.45]) by cuda.sgi.com with ESMTP id HHI436VbCmrUuGh0 for ; Mon, 14 Jul 2014 09:06:05 -0700 (PDT) X-Barracuda-Envelope-From: sandeen@sandeen.net X-Barracuda-Apparent-Source-IP: 63.231.237.45 Received: from liberator.sandeen.net (liberator.sandeen.net [10.0.0.4]) (using TLSv1 with cipher DHE-RSA-AES128-SHA (128/128 bits)) (No client certificate requested) by sandeen.net (Postfix) with ESMTPSA id 55C5C63BE4E5 for ; Mon, 14 Jul 2014 11:06:05 -0500 (CDT) Message-ID: <53C3FFED.5080301@sandeen.net> Date: Mon, 14 Jul 2014 11:06:05 -0500 From: Eric Sandeen MIME-Version: 1.0 To: xfs-oss Subject: time for an xfsdump release? X-Enigmail-Version: 1.6 X-ASG-Orig-Subj: time for an xfsdump release? Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit X-Barracuda-Connect: sandeen.net[63.231.237.45] X-Barracuda-Start-Time: 1405353965 X-Barracuda-URL: http://192.48.176.25:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 X-Barracuda-Spam-Score: 0.00 X-Barracuda-Spam-Status: No, SCORE=0.00 using per-user scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.7 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.7508 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- There aren't a lot of changes since v3.1.3, but with the rate of change of xfsdump (slow), I wonder if it's worth cutting a point release to get these bugfixes out there: b1d6979 remove ancient sys_getdents code paths 9ed517b xfsdump: getdents.c: clean up ifdef-hell around sys_getdents c3a4db1 xfsdump: Fix memory and fd leak in invutil/stobj.c a88c490 restore: don't trash file capabilities 0ece1a1 xfsdump: handle large, wholly-sparse files 151858e xfsdump: fix DEBUGPARTIALS build 1162bdb xfsdump: avoid segfault in partial_reg() in error case Thanks, -Eric From rjevskiy@gmail.com Mon Jul 14 11:27:36 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=FREEMAIL_FROM,T_DKIM_INVALID autolearn=ham version=3.3.1 X-Original-To: xfs@oss.sgi.com Delivered-To: xfs@oss.sgi.com Received: from relay.sgi.com (relay3.corp.sgi.com [198.149.34.15]) by oss.sgi.com (Postfix) with ESMTP id 3A6DD7FAC for ; Mon, 14 Jul 2014 11:27:36 -0500 (CDT) Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by relay3.corp.sgi.com (Postfix) with ESMTP id AD405AC001 for ; Mon, 14 Jul 2014 09:27:32 -0700 (PDT) X-ASG-Debug-ID: 1405355249-04cb6c6ad1c51c0001-NocioJ Received: from mail-la0-f43.google.com (mail-la0-f43.google.com [209.85.215.43]) by cuda.sgi.com with ESMTP id 5ikt2fwRIsC82HHz (version=TLSv1 cipher=RC4-SHA bits=128 verify=NO) for ; Mon, 14 Jul 2014 09:27:30 -0700 (PDT) X-Barracuda-Envelope-From: rjevskiy@gmail.com X-Barracuda-Apparent-Source-IP: 209.85.215.43 X-Barracuda-IPDD: Level1 [gmail.com/209.85.215.43] Received: by mail-la0-f43.google.com with SMTP id hr17so2568324lab.2 for ; Mon, 14 Jul 2014 09:27:28 -0700 (PDT) X-Barracuda-IPDD: Level1 [gmail.com/209.85.215.43] X-Barracuda-IPDD: Level1 [gmail.com/209.85.215.43] DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=sender:from:to:cc:subject:in-reply-to:references:user-agent:date :message-id:mime-version:content-type; bh=3hOrs/BNrBo0hzK7spe6F8uGthgljT5aL7gE7QFjerU=; b=O/6BuJ6/qeUOzeD8RvNJkGs0jA4/3L/+PWE6o3vz4jGuvg0G9HWj6aM1T2uZpikhAi AoZ6iqNTJK73J7lOdqJh/W+xVSbNMYmAskGOgz1zIzqM4hJq6g0WNbV1rRzAZ6B7S+kU Mw/1rHF150sr7LFI3L/r1ZR2jjuGFObZB+sj8LFUi77mSV6LBxgD39kkD8xmgzpvsq/P hDnJ+i3wvoMqVR9Q4wzhX3h/+Lh5y8NpycWx1OKmwo6ePukGsqQ8ElRiP7BSuTe1Djed d48PC7YQYROd2/4wjskpCRoZhFwQBKPzQZ4jBBeH8IQYkfJIyrcriwmF68GtDAN/8vBu fUHg== X-Received: by 10.152.29.170 with SMTP id l10mr14821033lah.43.1405355248668; Mon, 14 Jul 2014 09:27:28 -0700 (PDT) Received: from smtp.gmail.com (swsoft-msk-nat.sw.ru. [195.214.232.10]) by mx.google.com with ESMTPSA id 4sm5572897lam.0.2014.07.14.09.27.27 for (version=TLSv1.2 cipher=RC4-SHA bits=128/128); Mon, 14 Jul 2014 09:27:27 -0700 (PDT) Sender: Dmitry Monakhov From: Dmitry Monakhov To: Namjae Jeon , 'Christoph Hellwig' Cc: 'Dave Chinner' , 'Theodore Ts'o' , 'linux-ext4' , linux-fsdevel@vger.kernel.org, linux-kernel@vger.kernel.org, 'Luk?? Czerner' , 'Brian Foster' , 'Ashish Sangwan' , xfs@oss.sgi.com Subject: RE: [PATCH 2/3] xfs: Add support IOC_MOV_DATA ioctl In-Reply-To: <001801cf9b3f$ad786ff0$08694fd0$@samsung.com> X-ASG-Orig-Subj: RE: [PATCH 2/3] xfs: Add support IOC_MOV_DATA ioctl References: <003f01cf9aa4$1e9e5240$5bdaf6c0$@samsung.com> <20140708121500.GA518@infradead.org> <001801cf9b3f$ad786ff0$08694fd0$@samsung.com> User-Agent: Notmuch/0.6.1 (http://notmuchmail.org) Emacs/23.3.1 (x86_64-redhat-linux-gnu) Date: Mon, 14 Jul 2014 20:27:26 +0400 Message-ID: <87ha2jsy6p.fsf@openvz.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii X-Barracuda-Connect: mail-la0-f43.google.com[209.85.215.43] X-Barracuda-Start-Time: 1405355249 X-Barracuda-Encrypted: RC4-SHA X-Barracuda-URL: http://192.48.176.15:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 X-Barracuda-Spam-Score: 0.00 X-Barracuda-Spam-Status: No, SCORE=0.00 using per-user scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.7 tests=DKIM_SIGNED, DKIM_VERIFIED X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.7508 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- -0.00 DKIM_VERIFIED Domain Keys Identified Mail: signature passes verification 0.00 DKIM_SIGNED Domain Keys Identified Mail: message has a signature On Wed, 09 Jul 2014 15:33:21 +0900, Namjae Jeon wrote: > > > > On Tue, Jul 08, 2014 at 08:59:49PM +0900, Namjae Jeon wrote: > > > This patch implements fs ioctl's IOC_MOV_DATA for XFS. > > > > Shouldn't this share code with the XFS_IOC_SWAPEXT implementation? > Lukas has raised the same question for ext4. > Both xfs(XFS_IOC_SWAPEXT) and ext4(EXT4_IOC_MOVE_EXT) has ioctls which uses > almost similar kind of structure as struct mov_data. > As such, there seems to be possiblity for sharing basic code (I will try) > used for sanity checking in IOC_MOV_DATA to be shared with these ioctls > but the core functionality code will remain different. > > Thanks! Actually they are differ. EXT4_IOC_MOVE_EXT copy data inside kernel, but XFS_IOC_SWAPEXT live this job to userpsace see: http://oss.sgi.com/cgi-bin/gitweb.cgi?p=xfs/cmds/xfsprogs.git;a=blob;f=fsr/xfs_fsr.c packfile And I'll vote to make EXT4_IOC_MOVE_EXT deprecated, and implement EXT4_IOC_SWAPEXT as XFS does that. Ted, Lukas what do you think about that? > > -- > To unsubscribe from this list: send the line "unsubscribe linux-kernel" in > the body of a message to majordomo@vger.kernel.org > More majordomo info at http://vger.kernel.org/majordomo-info.html > Please read the FAQ at http://www.tux.org/lkml/ From iusty@k1024.org Mon Jul 14 12:54:55 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: xfs@oss.sgi.com Delivered-To: xfs@oss.sgi.com Received: from relay.sgi.com (relay3.corp.sgi.com [198.149.34.15]) by oss.sgi.com (Postfix) with ESMTP id B1DE27F4E for ; Mon, 14 Jul 2014 12:54:55 -0500 (CDT) Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by relay3.corp.sgi.com (Postfix) with ESMTP id 29F51AC006 for ; Mon, 14 Jul 2014 10:54:52 -0700 (PDT) X-ASG-Debug-ID: 1405360488-04cbb0421ad0f50001-NocioJ Received: from mail-we0-f182.google.com (mail-we0-f182.google.com [74.125.82.182]) by cuda.sgi.com with ESMTP id UVKFkUhubZemRqEm (version=TLSv1 cipher=RC4-SHA bits=128 verify=NO) for ; Mon, 14 Jul 2014 10:54:48 -0700 (PDT) X-Barracuda-Envelope-From: iusty@k1024.org X-Barracuda-Apparent-Source-IP: 74.125.82.182 Received: by mail-we0-f182.google.com with SMTP id q59so4514762wes.13 for ; Mon, 14 Jul 2014 10:54:47 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:from:to:cc:subject:date:message-id:mime-version :content-type:content-transfer-encoding; bh=yp3siWyIvuy/nHMyIf6J02QCuboc1vXbzhA1hrNXYAs=; b=ijeMh7i/cYv/hMOjy88nZ8MqWxYZC816B20yxSpD/rN6bzOkVRY+YgRVh6VbSW0YUy yufPdCrZYvWcpHOBJ0dG7K1lOBcmkkR8w71o1Cz/LzUg1ZRMGQlLNiGD7SrjwT9m1KkU 6NvQ+5LSYO9zd0GKtI5tE5ULC0K7jqNYwOHquDUU5F5qM1KrmQo59LdALd4/yVTaqtV9 GLuGM0TwlXQyUQWFcWrdINZBKsHE85z4zJkTnraIdHXOHSwNntr4uWlhJxqz0Vl62TsC qE/OOD7U7FeU92qKUxAXxKhu9N7D/7wbUM+CmflZgFVVJZb5Ybyqi1UhNxzMZ+53tev8 WVzQ== X-Gm-Message-State: ALoCoQlmGquYCVlqOllEn6hH0uXGzEnT5/30DdMZ16EMuDk03HCGcj+6UiEUuWj2aNN48/Pljaet X-Received: by 10.195.13.102 with SMTP id ex6mr20483060wjd.48.1405360487666; Mon, 14 Jul 2014 10:54:47 -0700 (PDT) Received: from teal.hq.k1024.org (178-83-234-80.dynamic.hispeed.ch. [178.83.234.80]) by mx.google.com with ESMTPSA id u10sm26880821wjz.43.2014.07.14.10.54.46 for (version=TLSv1 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Mon, 14 Jul 2014 10:54:47 -0700 (PDT) Received: from ruru.hq.k1024.org (ruru.hq.k1024.org [10.1.167.27]) by teal.hq.k1024.org (Postfix) with ESMTP id 2502D2052A8; Mon, 14 Jul 2014 19:54:46 +0200 (CEST) Received: from ruru.hq.k1024.org (localhost [127.0.0.1]) by ruru.hq.k1024.org (Postfix) with ESMTP id 13BF71B4485A; Mon, 14 Jul 2014 19:54:43 +0200 (CEST) From: Iustin Pop To: xfs@oss.sgi.com Cc: Iustin Pop Subject: [PATCH] Fix trivial typo in xfsrestore warning message Date: Mon, 14 Jul 2014 19:54:42 +0200 X-ASG-Orig-Subj: [PATCH] Fix trivial typo in xfsrestore warning message Message-Id: <1405360482-28870-1-git-send-email-iusty@k1024.org> X-Mailer: git-send-email 2.0.1 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Barracuda-Connect: mail-we0-f182.google.com[74.125.82.182] X-Barracuda-Start-Time: 1405360488 X-Barracuda-Encrypted: RC4-SHA X-Barracuda-URL: http://192.48.176.25:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 X-Barracuda-Spam-Score: 0.00 X-Barracuda-Spam-Status: No, SCORE=0.00 using per-user scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.7 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.7511 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- Also modify the po/ files, although not sure if that's the correct procedure. Signed-off-by: Iustin Pop --- po/de.po | 2 +- po/pl.po | 2 +- restore/tree.c | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/po/de.po b/po/de.po index 8811356..8bdd756 100644 --- a/po/de.po +++ b/po/de.po @@ -2832,7 +2832,7 @@ msgstr "chmod %s fehlgeschlagen: %s\n" #, c-format msgid "" "attempt to set extended attributes (xflags 0x%x, extsize = 0x%x, projid = 0x%" -"x)of %s failed: %s\n" +"x) of %s failed: %s\n" msgstr "" "Versuch erweiterte Attribute (xflags 0x%x, extsize = 0x%x, projid = 0x%x) " "von %s zu setzen fehlgeschlagen: %s\n" diff --git a/po/pl.po b/po/pl.po index d4d68b4..3ce823e 100644 --- a/po/pl.po +++ b/po/pl.po @@ -3770,7 +3770,7 @@ msgstr "chmod %s nie powiodło się: %s\n" #, c-format msgid "" "attempt to set extended attributes (xflags 0x%x, extsize = 0x%x, projid = 0x" -"%x)of %s failed: %s\n" +"%x) of %s failed: %s\n" msgstr "" "próba ustawienia rozszerzonych atrybutów (xflags 0x%x, extsize = 0x%x, " "projid = 0x%x) %s nie powiodła się: %s\n" diff --git a/restore/tree.c b/restore/tree.c index 7e6127f..08e177f 100644 --- a/restore/tree.c +++ b/restore/tree.c @@ -2617,7 +2617,7 @@ setdirattr( dah_t dah, char *path ) "extended attributes " "(xflags 0x%x, " "extsize = 0x%x, " - "projid = 0x%x)" + "projid = 0x%x) " "of %s failed: " "%s\n"), fsxattr.fsx_xflags, -- 2.0.0.rc4 From david@fromorbit.com Mon Jul 14 15:23:36 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: xfs@oss.sgi.com Delivered-To: xfs@oss.sgi.com Received: from relay.sgi.com (relay3.corp.sgi.com [198.149.34.15]) by oss.sgi.com (Postfix) with ESMTP id 429857F4E for ; Mon, 14 Jul 2014 15:23:36 -0500 (CDT) Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by relay3.corp.sgi.com (Postfix) with ESMTP id E19D7AC004 for ; Mon, 14 Jul 2014 13:23:35 -0700 (PDT) X-ASG-Debug-ID: 1405369413-04bdf03569d1a40001-NocioJ Received: from ipmail04.adl6.internode.on.net (ipmail04.adl6.internode.on.net [150.101.137.141]) by cuda.sgi.com with ESMTP id XkRKMO6ZG9U0Clk1 for ; Mon, 14 Jul 2014 13:23:33 -0700 (PDT) X-Barracuda-Envelope-From: david@fromorbit.com X-Barracuda-Apparent-Source-IP: 150.101.137.141 X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: AlQNAH47xFN5LG3lPGdsb2JhbABZgw6DTYUIpHYBAQEBAQEGlweFZgGBFxcEAQEBATg1hAQBBTocIxAIAxgJJQ8FJQMHGhOIQchiFxiFY4lQB4RDBZsNi1iMHSs Received: from ppp121-44-109-229.lns20.syd6.internode.on.net (HELO dastard) ([121.44.109.229]) by ipmail04.adl6.internode.on.net with ESMTP; 15 Jul 2014 05:53:32 +0930 Received: from dave by dastard with local (Exim 4.80) (envelope-from ) id 1X6mmZ-0000Ny-1m; Tue, 15 Jul 2014 06:23:31 +1000 Date: Tue, 15 Jul 2014 06:23:31 +1000 From: Dave Chinner To: Ilya Dryomov Cc: Samuel Just , xfs@oss.sgi.com, "ceph-devel@vger.kernel.org" , Sage Weil Subject: Re: consequences of XFS_IOC_FSSETXATTR on non-empty file? Message-ID: <20140714202330.GU4453@dastard> X-ASG-Orig-Subj: Re: consequences of XFS_IOC_FSSETXATTR on non-empty file? References: <20140713012624.GS4453@dastard> <20140713225532.GD22339@dastard> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.5.21 (2010-09-15) X-Barracuda-Connect: ipmail04.adl6.internode.on.net[150.101.137.141] X-Barracuda-Start-Time: 1405369413 X-Barracuda-URL: http://192.48.157.11:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 X-Barracuda-Spam-Score: 0.00 X-Barracuda-Spam-Status: No, SCORE=0.00 using per-user scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.7 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.7511 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- On Mon, Jul 14, 2014 at 11:24:05AM +0400, Ilya Dryomov wrote: > On Mon, Jul 14, 2014 at 2:55 AM, Dave Chinner wrote: > > On Sun, Jul 13, 2014 at 09:01:13PM +0400, Ilya Dryomov wrote: > >> On Sun, Jul 13, 2014 at 5:48 AM, Samuel Just wrote: > >> I think if you call fsync() or even > >> fdatasync() before close(fd), it will fail as expected. > > > > Only if you are trying to change the extent size immediately after > > the first write you do to an empty file. Which is, as per the above, > > not the recommended or intended use of the ioctl. > > That's understood, but that is exactly what Sam's test program happens > to try to do, so I had to point the "file w/o real extents" thing out. Oh, I missed that there was a test program attached. That's what happens when people top post a reply then attach text at the bottom.... Moral of the story: don't top post ;) Cheersm Dave. -- Dave Chinner david@fromorbit.com From sandeen@sandeen.net Mon Jul 14 16:21:29 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: xfs@oss.sgi.com Delivered-To: xfs@oss.sgi.com Received: from relay.sgi.com (relay1.corp.sgi.com [137.38.102.111]) by oss.sgi.com (Postfix) with ESMTP id 0615B7F51 for ; Mon, 14 Jul 2014 16:21:29 -0500 (CDT) Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by relay1.corp.sgi.com (Postfix) with ESMTP id CAA2A8F804C for ; Mon, 14 Jul 2014 14:21:25 -0700 (PDT) X-ASG-Debug-ID: 1405372882-04bdf0356ad40f0001-NocioJ Received: from sandeen.net (sandeen.net [63.231.237.45]) by cuda.sgi.com with ESMTP id cASQWFgynDLhHQur for ; Mon, 14 Jul 2014 14:21:23 -0700 (PDT) X-Barracuda-Envelope-From: sandeen@sandeen.net X-Barracuda-Apparent-Source-IP: 63.231.237.45 Received: from liberator.sandeen.net (liberator.sandeen.net [10.0.0.4]) (using TLSv1 with cipher DHE-RSA-AES128-SHA (128/128 bits)) (No client certificate requested) by sandeen.net (Postfix) with ESMTPSA id 716E661F895F; Mon, 14 Jul 2014 16:21:22 -0500 (CDT) Message-ID: <53C449D2.6090008@sandeen.net> Date: Mon, 14 Jul 2014 16:21:22 -0500 From: Eric Sandeen MIME-Version: 1.0 To: Eric Sandeen , xfs-oss Subject: [PATCH V3] xfsprogs: libxcmd/paths: make all comparisons using realpath'd paths References: <53C09034.3070203@redhat.com> <53C090A0.9050403@sandeen.net> X-ASG-Orig-Subj: [PATCH V3] xfsprogs: libxcmd/paths: make all comparisons using realpath'd paths In-Reply-To: <53C090A0.9050403@sandeen.net> X-Enigmail-Version: 1.6 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit X-Barracuda-Connect: sandeen.net[63.231.237.45] X-Barracuda-Start-Time: 1405372882 X-Barracuda-URL: http://192.48.157.11:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 X-Barracuda-Spam-Score: 0.00 X-Barracuda-Spam-Status: No, SCORE=0.00 using per-user scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.7 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.7511 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- Both mountpoints and devices can be symlinks, so given a path to look for, and mountpoints/devices from the system, use realpath() on *everything* before making the comparison to see if our path is a match. So, with symlinks for mount points as well as for devices: # ls -l /dev/mapper/testvg-lvol0 lrwxrwxrwx. 1 root root 7 Jul 11 19:24 /dev/mapper/testvg-lvol0 -> ../dm-3 # ls -l /mnt/scratch2 lrwxrwxrwx. 1 root root 12 Jul 11 19:57 /mnt/scratch2 -> /mnt/scratch this should all work, and does now: # xfs_quota -xc "report -h" /mnt/scratch2 User quota on /mnt/scratch (/dev/mapper/testvg-lvol0) Blocks User ID Used Soft Hard Warn/Grace ---------- --------------------------------- root 0 0 0 00 [------] # xfs_quota -xc "report -h" /mnt/scratch User quota on /mnt/scratch (/dev/mapper/testvg-lvol0) Blocks User ID Used Soft Hard Warn/Grace ---------- --------------------------------- root 0 0 0 00 [------] # xfs_quota -xc "report -h" /dev/dm-3 User quota on /mnt/scratch (/dev/mapper/testvg-lvol0) Blocks User ID Used Soft Hard Warn/Grace ---------- --------------------------------- root 0 0 0 00 [------] # xfs_quota -xc "report -h" /dev/mapper/testvg-lvol0 User quota on /mnt/scratch (/dev/mapper/testvg-lvol0) Blocks User ID Used Soft Hard Warn/Grace ---------- --------------------------------- root 0 0 0 00 [------] The commit: 050a7f1 xfsprogs: handle symlinks etc in fs_table_initialise_mounts() tried to fix this earlier, but only worked one way; it compared the argument path in both given and realpath form to the paths in getmntent, but did not compare to the realpaths of the getmntent devices. If we reduce everything, everywhere, to a realpath(), we've got our best shot at finding the match. Signed-off-by: Eric Sandeen --- V2: remove the quota/report.c change which snuck in... V3: don't use dynamically allocated realpaths diff --git a/libxcmd/paths.c b/libxcmd/paths.c index 7b0e434..443adbb 100644 --- a/libxcmd/paths.c +++ b/libxcmd/paths.c @@ -269,6 +269,9 @@ out_nomem: /* * If *path is NULL, initialize the fs table with all xfs mount points in mtab * If *path is specified, search for that path in mtab + * + * Everything - path, devices, and mountpoints - are boiled down to realpath() + * for comparison, but fs_table is populated with what comes from getmntent. */ static int fs_table_initialise_mounts( @@ -278,7 +281,7 @@ fs_table_initialise_mounts( FILE *mtp; char *fslog, *fsrt; int error, found; - char *rpath = NULL; + char rpath[PATH_MAX], rmnt_fsname[PATH_MAX], rmnt_dir[PATH_MAX]; error = found = 0; fslog = fsrt = NULL; @@ -294,17 +297,20 @@ fs_table_initialise_mounts( /* Use realpath to resolve symlinks, relative paths, etc */ if (path) - if ((rpath = realpath(path, NULL)) == NULL) - return ENOENT; + if (!realpath(path, rpath)) + return errno; while ((mnt = getmntent(mtp)) != NULL) { if (strcmp(mnt->mnt_type, "xfs") != 0) continue; + if (!realpath(mnt->mnt_dir, rmnt_dir)) + continue; + if (!realpath(mnt->mnt_fsname, rmnt_fsname)) + continue; + if (path && - ((strcmp(path, mnt->mnt_dir) != 0) && - (strcmp(path, mnt->mnt_fsname) != 0) && - (strcmp(rpath, mnt->mnt_dir) != 0) && - (strcmp(rpath, mnt->mnt_fsname) != 0))) + ((strcmp(rpath, rmnt_dir) != 0) && + (strcmp(rpath, rmnt_fsname) != 0))) continue; if (fs_extract_mount_options(mnt, &fslog, &fsrt)) continue; @@ -316,7 +322,6 @@ fs_table_initialise_mounts( } } endmntent(mtp); - free(rpath); if (path && !found) error = ENXIO; @@ -330,6 +335,9 @@ fs_table_initialise_mounts( /* * If *path is NULL, initialize the fs table with all xfs mount points in mtab * If *path is specified, search for that path in mtab + * + * Everything - path, devices, and mountpoints - are boiled down to realpath() + * for comparison, but fs_table is populated with what comes from getmntinfo. */ static int fs_table_initialise_mounts( @@ -337,7 +345,7 @@ fs_table_initialise_mounts( { struct statfs *stats; int i, count, error, found; - char *rpath = NULL; + char rpath[PATH_MAX], rmntfromname[PATH_MAX], rmntonname[PATH_MAX]; error = found = 0; if ((count = getmntinfo(&stats, 0)) < 0) { @@ -348,17 +356,20 @@ fs_table_initialise_mounts( /* Use realpath to resolve symlinks, relative paths, etc */ if (path) - if ((rpath = realpath(path, NULL)) == NULL) - return ENOENT; + if (!realpath(path, rpath)) + return errno; for (i = 0; i < count; i++) { if (strcmp(stats[i].f_fstypename, "xfs") != 0) continue; + if (!realpath(stats[i].f_mntfromname, rmntfromname)) + continue; + if (!realpath(stats[i].f_mntonname, rmnttomname))) + continue; + if (path && - ((strcmp(path, stats[i].f_mntonname) != 0) && - (strcmp(path, stats[i].f_mntfromname) != 0) && - (strcmp(rpath, stats[i].f_mntonname) != 0) && - (strcmp(rpath, stats[i].f_mntfromname) != 0))) + ((strcmp(rpath, rmntonname) != 0) && + (strcmp(rpath, rmntfromname) != 0))) continue; /* TODO: external log and realtime device? */ (void) fs_table_insert(stats[i].f_mntonname, 0, @@ -369,7 +380,6 @@ fs_table_initialise_mounts( break; } } - free(rpath); if (path && !found) error = ENXIO; From tytso@thunk.org Mon Jul 14 16:26:34 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=T_DKIM_INVALID autolearn=ham version=3.3.1 X-Original-To: xfs@oss.sgi.com Delivered-To: xfs@oss.sgi.com Received: from relay.sgi.com (relay2.corp.sgi.com [137.38.102.29]) by oss.sgi.com (Postfix) with ESMTP id E7A477F5F for ; Mon, 14 Jul 2014 16:26:33 -0500 (CDT) Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by relay2.corp.sgi.com (Postfix) with ESMTP id D7A27304051 for ; Mon, 14 Jul 2014 14:26:30 -0700 (PDT) X-ASG-Debug-ID: 1405373183-04cb6c6ad0d2a90001-NocioJ Received: from imap.thunk.org (imap.thunk.org [74.207.234.97]) by cuda.sgi.com with ESMTP id OLVC9JEFgVnCmKdv (version=TLSv1 cipher=AES128-SHA bits=128 verify=NO) for ; Mon, 14 Jul 2014 14:26:23 -0700 (PDT) X-Barracuda-Envelope-From: tytso@thunk.org X-Barracuda-Apparent-Source-IP: 74.207.234.97 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=thunk.org; s=ef5046eb; h=In-Reply-To:Content-Type:MIME-Version:References:Message-ID:Subject:Cc:To:From:Date; bh=xGAAIRP3n6K8DtNM6AVGJUVjbZHBm0GWgTdk7bDDblc=; b=iCkCt52azApDyo0W2WCCxhb4iyZ8eHTXMGUpngnk180q4sQYnIz8LPQ/LD+PIja8CZvgAWO/xFPYkBMuB6VADE5ew1E4wsECebGRUBVrdneZDNCc2cisQNS8iPqYY+lMngnQo9kmCJBfXquhZRWwYhZ0xFHe75VdsEQ8XTgEboU=; Received: from root (helo=closure.thunk.org) by imap.thunk.org with local-esmtp (Exim 4.80) (envelope-from ) id 1X6nko-0007Fk-1U; Mon, 14 Jul 2014 21:25:46 +0000 Received: by closure.thunk.org (Postfix, from userid 15806) id 250B7580372; Mon, 14 Jul 2014 17:25:39 -0400 (EDT) Date: Mon, 14 Jul 2014 17:25:39 -0400 From: Theodore Ts'o To: Dmitry Monakhov Cc: Namjae Jeon , 'Christoph Hellwig' , 'Dave Chinner' , 'linux-ext4' , linux-fsdevel@vger.kernel.org, linux-kernel@vger.kernel.org, 'Luk?? Czerner' , 'Brian Foster' , 'Ashish Sangwan' , xfs@oss.sgi.com Subject: Re: [PATCH 2/3] xfs: Add support IOC_MOV_DATA ioctl Message-ID: <20140714212539.GH8935@thunk.org> X-ASG-Orig-Subj: Re: [PATCH 2/3] xfs: Add support IOC_MOV_DATA ioctl Mail-Followup-To: Theodore Ts'o , Dmitry Monakhov , Namjae Jeon , 'Christoph Hellwig' , 'Dave Chinner' , 'linux-ext4' , linux-fsdevel@vger.kernel.org, linux-kernel@vger.kernel.org, 'Luk?? Czerner' , 'Brian Foster' , 'Ashish Sangwan' , xfs@oss.sgi.com References: <003f01cf9aa4$1e9e5240$5bdaf6c0$@samsung.com> <20140708121500.GA518@infradead.org> <001801cf9b3f$ad786ff0$08694fd0$@samsung.com> <87ha2jsy6p.fsf@openvz.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <87ha2jsy6p.fsf@openvz.org> User-Agent: Mutt/1.5.23 (2014-03-12) X-SA-Exim-Connect-IP: X-SA-Exim-Mail-From: tytso@thunk.org X-SA-Exim-Scanned: No (on imap.thunk.org); SAEximRunCond expanded to false X-Barracuda-Connect: imap.thunk.org[74.207.234.97] X-Barracuda-Start-Time: 1405373183 X-Barracuda-Encrypted: AES128-SHA X-Barracuda-URL: http://192.48.176.15:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 X-Barracuda-Spam-Score: 0.00 X-Barracuda-Spam-Status: No, SCORE=0.00 using per-user scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.7 tests=DKIM_SIGNED, DKIM_VERIFIED X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.7511 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- -0.00 DKIM_VERIFIED Domain Keys Identified Mail: signature passes verification 0.00 DKIM_SIGNED Domain Keys Identified Mail: message has a signature On Mon, Jul 14, 2014 at 08:27:26PM +0400, Dmitry Monakhov wrote: > Actually they are differ. EXT4_IOC_MOVE_EXT copy data inside kernel, > but XFS_IOC_SWAPEXT live this job to userpsace see: > http://oss.sgi.com/cgi-bin/gitweb.cgi?p=xfs/cmds/xfsprogs.git;a=blob;f=fsr/xfs_fsr.c packfile > And I'll vote to make EXT4_IOC_MOVE_EXT deprecated, and implement EXT4_IOC_SWAPEXT > as XFS does that. > Ted, Lukas what do you think about that? The reason why EXT4_IOC_MOVE_EXT moves the data via the cache is to avoid being subject to races if the file happens to mmap'ed and being actively modified at the time of the defrag operation. I'm not sure how XFS handles that case, but if it's not somehow locking the file against mmap's before it starts the userspace copy, it would seem to me to be fairly dangerous in terms of prevent potential data loss in this scenario. Unless they are doing some especially clever? Regards, - Ted From david@fromorbit.com Mon Jul 14 17:06:49 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: xfs@oss.sgi.com Delivered-To: xfs@oss.sgi.com Received: from relay.sgi.com (relay1.corp.sgi.com [137.38.102.111]) by oss.sgi.com (Postfix) with ESMTP id C5F507F66 for ; Mon, 14 Jul 2014 17:06:49 -0500 (CDT) Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by relay1.corp.sgi.com (Postfix) with ESMTP id B76898F8040 for ; Mon, 14 Jul 2014 15:06:46 -0700 (PDT) X-ASG-Debug-ID: 1405375604-04cbb0421cdae60001-NocioJ Received: from ipmail04.adl6.internode.on.net (ipmail04.adl6.internode.on.net [150.101.137.141]) by cuda.sgi.com with ESMTP id O8yP5oHGE8PXOcJQ for ; Mon, 14 Jul 2014 15:06:44 -0700 (PDT) X-Barracuda-Envelope-From: david@fromorbit.com X-Barracuda-Apparent-Source-IP: 150.101.137.141 X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: AnkKAOdTxFN5LG3lPGdsb2JhbABZDoMAUoJ7qXEMAQEBAQEBBpUsgVuFZgGBEBcEAQEBATg1hAQBBTocMwgDGAklDwUlAwcaARKIQQ7IfRiFY4dAgheEQwWbDYtYi0lUKy8BAQ Received: from ppp121-44-109-229.lns20.syd6.internode.on.net (HELO dastard) ([121.44.109.229]) by ipmail04.adl6.internode.on.net with ESMTP; 15 Jul 2014 07:36:35 +0930 Received: from dave by dastard with local (Exim 4.80) (envelope-from ) id 1X6oOH-0000iC-PX; Tue, 15 Jul 2014 08:06:33 +1000 Date: Tue, 15 Jul 2014 08:06:33 +1000 From: Dave Chinner To: Theodore Ts'o , Dmitry Monakhov , Namjae Jeon , 'Christoph Hellwig' , 'linux-ext4' , linux-fsdevel@vger.kernel.org, linux-kernel@vger.kernel.org, 'Luk?? Czerner' , 'Brian Foster' , 'Ashish Sangwan' , xfs@oss.sgi.com Subject: Re: [PATCH 2/3] xfs: Add support IOC_MOV_DATA ioctl Message-ID: <20140714220633.GV4453@dastard> X-ASG-Orig-Subj: Re: [PATCH 2/3] xfs: Add support IOC_MOV_DATA ioctl References: <003f01cf9aa4$1e9e5240$5bdaf6c0$@samsung.com> <20140708121500.GA518@infradead.org> <001801cf9b3f$ad786ff0$08694fd0$@samsung.com> <87ha2jsy6p.fsf@openvz.org> <20140714212539.GH8935@thunk.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20140714212539.GH8935@thunk.org> User-Agent: Mutt/1.5.21 (2010-09-15) X-Barracuda-Connect: ipmail04.adl6.internode.on.net[150.101.137.141] X-Barracuda-Start-Time: 1405375604 X-Barracuda-URL: http://192.48.176.25:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 X-Barracuda-Spam-Score: 0.00 X-Barracuda-Spam-Status: No, SCORE=0.00 using per-user scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.7 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.7511 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- On Mon, Jul 14, 2014 at 05:25:39PM -0400, Theodore Ts'o wrote: > On Mon, Jul 14, 2014 at 08:27:26PM +0400, Dmitry Monakhov wrote: > > Actually they are differ. EXT4_IOC_MOVE_EXT copy data inside kernel, > > but XFS_IOC_SWAPEXT live this job to userpsace see: > > http://oss.sgi.com/cgi-bin/gitweb.cgi?p=xfs/cmds/xfsprogs.git;a=blob;f=fsr/xfs_fsr.c packfile > > And I'll vote to make EXT4_IOC_MOVE_EXT deprecated, and implement EXT4_IOC_SWAPEXT > > as XFS does that. > > Ted, Lukas what do you think about that? > > The reason why EXT4_IOC_MOVE_EXT moves the data via the cache is to > avoid being subject to races if the file happens to mmap'ed and being > actively modified at the time of the defrag operation. > > I'm not sure how XFS handles that case, but if it's not somehow > locking the file against mmap's before it starts the userspace copy, > it would seem to me to be fairly dangerous in terms of prevent > potential data loss in this scenario. Unless they are doing some > especially clever? Yes, we're being clever: a) we can snapshot the inode directly with bulkstat and then feed that as a cookie back into the swap extent ioctl, hence detect any change made to the inode since the snapshot was taken; b) we do invisible IO to copy the data (i.e. doesn't update timestamps on the files); and c) the swap ext ioctl aborts if the file is mmapped() at the time we do the extent swap. Basically, if there is any inconsistency or trouble, we abort the swap without doing anything and leave userspace to clean up. As it is, we'll be looking to replace the swapext call with this new move ioctl because we can do a lot more with it and avoids implementation wrinkles like having to check and handle different sized data and inode forks, and having to change the owner field in every bmap btree block after the swap has occurred. FWIW, what we ideally need for these sorts of defrag programs is per-file freezing. i.e. we freeze the file to be defragged, then do the copy in userspace, swap/move the copied range and then unfreeze it once complete. That guarantees that the file is not modified in any way while userspace is doing the defrag... Cheers, Dave. -- Dave Chinner david@fromorbit.com From dgc@oss.sgi.com Mon Jul 14 17:24:59 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-0.0 required=5.0 tests=NO_RELAYS autolearn=ham version=3.3.1 X-Original-To: xfs@oss.sgi.com Delivered-To: xfs@oss.sgi.com Received: by oss.sgi.com (Postfix, from userid 10266) id 933217F6C; Mon, 14 Jul 2014 17:24:59 -0500 (CDT) From: xfs@oss.sgi.com To: xfs@oss.sgi.com Subject: [XFS updates] XFS development tree branch, xfs-for-3.16-rc5, created. xfs-for-linus-3.16-rc1-13104-g03e0134 X-Git-Refname: refs/heads/xfs-for-3.16-rc5 X-Git-Reftype: branch X-Git-Oldrev: 0000000000000000000000000000000000000000 X-Git-Newrev: 03e01349c654fbdea80d3d9b4ab599244eb55bb7 Message-Id: <20140714222459.933217F6C@oss.sgi.com> Date: Mon, 14 Jul 2014 17:24:59 -0500 (CDT) This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "XFS development tree". The branch, xfs-for-3.16-rc5 has been created at 03e01349c654fbdea80d3d9b4ab599244eb55bb7 (commit) - Log ----------------------------------------------------------------- commit 03e01349c654fbdea80d3d9b4ab599244eb55bb7 Author: Dave Chinner Date: Tue Jul 15 07:28:41 2014 +1000 xfs: null unused quota inodes when quota is on When quota is on, it is expected that unused quota inodes have a value of NULLFSINO. The changes to support a separate project quota in 3.12 broken this rule for non-project quota inode enabled filesystem, as the code now refuses to write the group quota inode if neither group or project quotas are enabled. This regression was introduced by commit d892d58 ("xfs: Start using pquotaino from the superblock"). In this case, we should be writing NULLFSINO rather than nothing to ensure that we leave the group quota inode in a valid state while quotas are enabled. Failure to do so doesn't cause a current kernel to break - the separate project quota inodes introduced translation code to always treat a zero inode as NULLFSINO. This was introduced by commit 0102629 ("xfs: Initialize all quota inodes to be NULLFSINO") with is also in 3.12 but older kernels do not do this and hence taking a filesystem back to an older kernel can result in quotas failing initialisation at mount time. When that happens, we see this in dmesg: [ 1649.215390] XFS (sdb): Mounting Filesystem [ 1649.316894] XFS (sdb): Failed to initialize disk quotas. [ 1649.316902] XFS (sdb): Ending clean mount By ensuring that we write NULLFSINO to quota inodes that aren't active, we avoid this problem. We have to be really careful when determining if the quota inodes are active or not, because we don't want to write a NULLFSINO if the quota inodes are active and we simply aren't updating them. Signed-off-by: Dave Chinner Reviewed-by: Brian Foster Signed-off-by: Dave Chinner commit cf11da9c5d374962913ca5ba0ce0886b58286224 Author: Dave Chinner Date: Tue Jul 15 07:08:24 2014 +1000 xfs: refine the allocation stack switch The allocation stack switch at xfs_bmapi_allocate() has served it's purpose, but is no longer a sufficient solution to the stack usage problem we have in the XFS allocation path. Whilst the kernel stack size is now 16k, that is not a valid reason for undoing all our "keep stack usage down" modifications. What it does allow us to do is have the freedom to refine and perfect the modifications knowing that if we get it wrong it won't blow up in our faces - we have a safety net now. This is important because we still have the issue of older kernels having smaller stacks and that they are still supported and are demonstrating a wide range of different stack overflows. Red Hat has several open bugs for allocation based stack overflows from directory modifications and direct IO block allocation and these problems still need to be solved. If we can solve them upstream, then distro's won't need to bake their own unique solutions. To that end, I've observed that every allocation based stack overflow report has had a specific characteristic - it has happened during or directly after a bmap btree block split. That event requires a new block to be allocated to the tree, and so we effectively stack one allocation stack on top of another, and that's when we get into trouble. A further observation is that bmap btree block splits are much rarer than writeback allocation - over a range of different workloads I've observed the ratio of bmap btree inserts to splits ranges from 100:1 (xfstests run) to 10000:1 (local VM image server with sparse files that range in the hundreds of thousands to millions of extents). Either way, bmap btree split events are much, much rarer than allocation events. Finally, we have to move the kswapd state to the allocation workqueue work when allocation is done on behalf of kswapd. This is proving to cause significant perturbation in performance under memory pressure and appears to be generating allocation deadlock warnings under some workloads, so avoiding the use of a workqueue for the majority of kswapd writeback allocation will minimise the impact of such behaviour. Hence it makes sense to move the stack switch to xfs_btree_split() and only do it for bmap btree splits. Stack switches during allocation will be much rarer, so there won't be significant performacne overhead caused by switching stacks. The worse case stack from all allocation paths will be split, not just writeback. And the majority of memory allocations will be done in the correct context (e.g. kswapd) without causing additional latency, and so we simplify the memory reclaim interactions between processes, workqueues and kswapd. The worst stack I've been able to generate with this patch in place is 5600 bytes deep. It's very revealing because we exit XFS at: 37) 1768 64 kmem_cache_alloc+0x13b/0x170 about 1800 bytes of stack consumed, and the remaining 3800 bytes (and 36 functions) is memory reclaim, swap and the IO stack. And this occurs in the inode allocation from an open(O_CREAT) syscall, not writeback. The amount of stack being used is much less than I've previously be able to generate - fs_mark testing has been able to generate stack usage of around 7k without too much trouble; with this patch it's only just getting to 5.5k. This is primarily because the metadata allocation paths (e.g. directory blocks) are no longer causing double splits on the same stack, and hence now stack tracing is showing swapping being the worst stack consumer rather than XFS. Performance of fs_mark inode create workloads is unchanged. Performance of fs_mark async fsync workloads is consistently good with context switches reduced by around 150,000/s (30%). Performance of dbench, streaming IO and postmark is unchanged. Allocation deadlock warnings have not been seen on the workloads that generated them since adding this patch. Signed-off-by: Dave Chinner Reviewed-by: Brian Foster Signed-off-by: Dave Chinner commit aa182e64f16fc29a4984c2d79191b161888bbd9b Author: Dave Chinner Date: Tue Jul 15 07:08:10 2014 +1000 Revert "xfs: block allocation work needs to be kswapd aware" This reverts commit 1f6d64829db78a7e1d63e15c9f48f0a5d2b5a679. This commit resulted in regressions in performance in low memory situations where kswapd was doing writeback of delayed allocation blocks. It resulted in significant parallelism of the kswapd work and with the special kswapd flags meant that hundreds of active allocation could dip into kswapd specific memory reserves and avoid being throttled. This cause a large amount of performance variation, as well as random OOM-killer invocations that didn't previously exist. Signed-off-by: Dave Chinner Reviewed-by: Brian Foster Signed-off-by: Dave Chinner ----------------------------------------------------------------------- hooks/post-receive -- XFS development tree From dgc@oss.sgi.com Mon Jul 14 17:25:17 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-0.0 required=5.0 tests=NO_RELAYS autolearn=ham version=3.3.1 X-Original-To: xfs@oss.sgi.com Delivered-To: xfs@oss.sgi.com Received: by oss.sgi.com (Postfix, from userid 10266) id EA0117F72; Mon, 14 Jul 2014 17:25:17 -0500 (CDT) From: xfs@oss.sgi.com To: xfs@oss.sgi.com Subject: [XFS updates] XFS development tree branch, xfs-sysfs-support, created. xfs-for-linus-3.16-rc1-13117-ga087481 X-Git-Refname: refs/heads/xfs-sysfs-support X-Git-Reftype: branch X-Git-Oldrev: 0000000000000000000000000000000000000000 X-Git-Newrev: a087481811bed920eb5eedbb5574b915881adbea Message-Id: <20140714222517.EA0117F72@oss.sgi.com> Date: Mon, 14 Jul 2014 17:25:17 -0500 (CDT) This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "XFS development tree". The branch, xfs-sysfs-support has been created at a087481811bed920eb5eedbb5574b915881adbea (commit) - Log ----------------------------------------------------------------- commit a087481811bed920eb5eedbb5574b915881adbea Author: Brian Foster Date: Tue Jul 15 08:09:06 2014 +1000 xfs: document log sysfs attributes in testing ABI Create a sysfs-fs-xfs ABI documentation file for newly added sysfs attributes. This is created under the testing section. Signed-off-by: Brian Foster Reviewed-by: Dave Chinner Signed-off-by: Dave Chinner commit 80d6d69821a27c3cd4687c2eefe409cbd1b7f458 Author: Brian Foster Date: Tue Jul 15 08:07:48 2014 +1000 xfs: add log attributes for log lsn and grant head data Create log attributes to export the current runtime state of the log to sysfs. Note that the filesystem should be frozen for consistency across attributes. The following per-mount attributes are created: log_head_lsn, log_tail_lsn, reserve_grant_head and write_grant_head. These represent the physical log head, tail and reserve and write grant heads respectively. Attribute values are exported in the following format: "cycle:[block,byte]" ... where cycle represents the log cycle and [block,bytes] represents either the basic block or byte offset of the log, depending on the attribute. Log sequence number (LSN) values are encoded in basic blocks and grant heads are encoded in bytes. All values are in decimal format. Signed-off-by: Brian Foster Reviewed-by: Dave Chinner Signed-off-by: Dave Chinner commit baff4e44b92aad363dcce176b907a369ee8b348e Author: Brian Foster Date: Tue Jul 15 08:07:29 2014 +1000 xfs: add xlog sysfs kobject and attribute handlers Embed a kobject into the xfs log data structure (xlog). This creates a 'log' subdirectory for every XFS mount instance in sysfs. The lifecycle of the log kobject is tied to the lifecycle of the log. Also define a set of generic attribute handlers associated with the log kobject in preparation for the addition of attributes. Signed-off-by: Brian Foster Reviewed-by: Dave Chinner Signed-off-by: Dave Chinner commit a31b1d3d89e40f585a1c6745b066774ee3263eb2 Author: Brian Foster Date: Tue Jul 15 08:07:01 2014 +1000 xfs: add xfs_mount sysfs kobject Embed a base kobject into xfs_mount. This creates a kobject associated with each XFS mount and a subdirectory in sysfs with the name of the filesystem. The subdirectory lifecycle matches that of the mount. Also add the new xfs_sysfs.[c,h] source files with some XFS sysfs infrastructure to facilitate attribute creation. Note that there are currently no attributes exported as part of the xfs_mount kobject. It exists solely to serve as a per-mount container for child objects. Signed-off-by: Brian Foster Reviewed-by: Dave Chinner Signed-off-by: Dave Chinner commit 3d8712265c26546823b38eb97487262500ff13db Author: Brian Foster Date: Tue Jul 15 07:41:37 2014 +1000 xfs: add a sysfs kset Create a sysfs kset to contain all sub-objects associated with the XFS module. The kset is created and removed on module initialization and removal respectively. The kset uses fs_obj as a parent. This leads to the creation of a /sys/fs/xfs directory when the kset exists. Signed-off-by: Brian Foster Reviewed-by: Dave Chinner Signed-off-by: Dave Chinner commit a70a4fa528faf6f22adce9a9067d1f4dfc332ade Author: Brian Foster Date: Tue Jul 15 07:41:25 2014 +1000 xfs: fix a couple error sequence jumps in xfs_mountfs() xfs_mountfs() has a couple failure conditions that do not jump to the correct labels. Specifically: - xfs_initialize_perag_data() failure does not deallocate the log even though it occurs after log initialization - xfs_mount_reset_sbqflags() failure returns the error directly rather than jump to the error sequence Signed-off-by: Brian Foster Reviewed-by: Dave Chinner Signed-off-by: Dave Chinner commit 7f8a058f6dc52219117bc2469b1fb816f7fa1a4b Merge: 03e0134 2451337 Author: Dave Chinner Date: Tue Jul 15 07:37:18 2014 +1000 Merge branch 'xfs-libxfs-restructure' into for-next ----------------------------------------------------------------------- hooks/post-receive -- XFS development tree From dgc@oss.sgi.com Mon Jul 14 17:25:51 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-0.0 required=5.0 tests=NO_RELAYS autolearn=ham version=3.3.1 X-Original-To: xfs@oss.sgi.com Delivered-To: xfs@oss.sgi.com Received: by oss.sgi.com (Postfix, from userid 10266) id EC5CF7F76; Mon, 14 Jul 2014 17:25:51 -0500 (CDT) From: xfs@oss.sgi.com To: xfs@oss.sgi.com Subject: [XFS updates] XFS development tree branch, for-next, updated. xfs-for-linus-3.16-rc1-13117-ga087481 X-Git-Refname: refs/heads/for-next X-Git-Reftype: branch X-Git-Oldrev: 2451337dd043901b5270b7586942abe564443e3d X-Git-Newrev: a087481811bed920eb5eedbb5574b915881adbea Message-Id: <20140714222551.EC5CF7F76@oss.sgi.com> Date: Mon, 14 Jul 2014 17:25:51 -0500 (CDT) This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "XFS development tree". The branch, for-next has been updated 80d6d69 xfs: add log attributes for log lsn and grant head data baff4e4 xfs: add xlog sysfs kobject and attribute handlers a31b1d3 xfs: add xfs_mount sysfs kobject 3d87122 xfs: add a sysfs kset a70a4fa xfs: fix a couple error sequence jumps in xfs_mountfs() 7f8a058 Merge branch 'xfs-libxfs-restructure' into for-next 03e0134 xfs: null unused quota inodes when quota is on cf11da9 xfs: refine the allocation stack switch aa182e6 Revert "xfs: block allocation work needs to be kswapd aware" from 2451337dd043901b5270b7586942abe564443e3d (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log ----------------------------------------------------------------- commit 80d6d69821a27c3cd4687c2eefe409cbd1b7f458 Author: Brian Foster Date: Tue Jul 15 08:07:48 2014 +1000 xfs: add log attributes for log lsn and grant head data Create log attributes to export the current runtime state of the log to sysfs. Note that the filesystem should be frozen for consistency across attributes. The following per-mount attributes are created: log_head_lsn, log_tail_lsn, reserve_grant_head and write_grant_head. These represent the physical log head, tail and reserve and write grant heads respectively. Attribute values are exported in the following format: "cycle:[block,byte]" ... where cycle represents the log cycle and [block,bytes] represents either the basic block or byte offset of the log, depending on the attribute. Log sequence number (LSN) values are encoded in basic blocks and grant heads are encoded in bytes. All values are in decimal format. Signed-off-by: Brian Foster Reviewed-by: Dave Chinner Signed-off-by: Dave Chinner commit baff4e44b92aad363dcce176b907a369ee8b348e Author: Brian Foster Date: Tue Jul 15 08:07:29 2014 +1000 xfs: add xlog sysfs kobject and attribute handlers Embed a kobject into the xfs log data structure (xlog). This creates a 'log' subdirectory for every XFS mount instance in sysfs. The lifecycle of the log kobject is tied to the lifecycle of the log. Also define a set of generic attribute handlers associated with the log kobject in preparation for the addition of attributes. Signed-off-by: Brian Foster Reviewed-by: Dave Chinner Signed-off-by: Dave Chinner commit a31b1d3d89e40f585a1c6745b066774ee3263eb2 Author: Brian Foster Date: Tue Jul 15 08:07:01 2014 +1000 xfs: add xfs_mount sysfs kobject Embed a base kobject into xfs_mount. This creates a kobject associated with each XFS mount and a subdirectory in sysfs with the name of the filesystem. The subdirectory lifecycle matches that of the mount. Also add the new xfs_sysfs.[c,h] source files with some XFS sysfs infrastructure to facilitate attribute creation. Note that there are currently no attributes exported as part of the xfs_mount kobject. It exists solely to serve as a per-mount container for child objects. Signed-off-by: Brian Foster Reviewed-by: Dave Chinner Signed-off-by: Dave Chinner commit 3d8712265c26546823b38eb97487262500ff13db Author: Brian Foster Date: Tue Jul 15 07:41:37 2014 +1000 xfs: add a sysfs kset Create a sysfs kset to contain all sub-objects associated with the XFS module. The kset is created and removed on module initialization and removal respectively. The kset uses fs_obj as a parent. This leads to the creation of a /sys/fs/xfs directory when the kset exists. Signed-off-by: Brian Foster Reviewed-by: Dave Chinner Signed-off-by: Dave Chinner commit a70a4fa528faf6f22adce9a9067d1f4dfc332ade Author: Brian Foster Date: Tue Jul 15 07:41:25 2014 +1000 xfs: fix a couple error sequence jumps in xfs_mountfs() xfs_mountfs() has a couple failure conditions that do not jump to the correct labels. Specifically: - xfs_initialize_perag_data() failure does not deallocate the log even though it occurs after log initialization - xfs_mount_reset_sbqflags() failure returns the error directly rather than jump to the error sequence Signed-off-by: Brian Foster Reviewed-by: Dave Chinner Signed-off-by: Dave Chinner commit 7f8a058f6dc52219117bc2469b1fb816f7fa1a4b Merge: 03e0134 2451337 Author: Dave Chinner Date: Tue Jul 15 07:37:18 2014 +1000 Merge branch 'xfs-libxfs-restructure' into for-next ----------------------------------------------------------------------- Summary of changes: fs/xfs/Makefile | 1 + fs/xfs/libxfs/xfs_bmap.c | 7 +- fs/xfs/libxfs/xfs_bmap.h | 4 +- fs/xfs/libxfs/xfs_btree.c | 82 ++++++++++++++++++++++- fs/xfs/libxfs/xfs_sb.c | 25 +++++-- fs/xfs/xfs_bmap_util.c | 53 --------------- fs/xfs/xfs_bmap_util.h | 4 -- fs/xfs/xfs_iomap.c | 3 +- fs/xfs/xfs_linux.h | 11 ++++ fs/xfs/xfs_log.c | 9 +++ fs/xfs/xfs_log_priv.h | 2 + fs/xfs/xfs_mount.c | 18 ++++- fs/xfs/xfs_mount.h | 1 + fs/xfs/xfs_super.c | 12 +++- fs/xfs/xfs_sysfs.c | 165 ++++++++++++++++++++++++++++++++++++++++++++++ fs/xfs/xfs_sysfs.h | 59 +++++++++++++++++ 16 files changed, 380 insertions(+), 76 deletions(-) create mode 100644 fs/xfs/xfs_sysfs.c create mode 100644 fs/xfs/xfs_sysfs.h hooks/post-receive -- XFS development tree From david@fromorbit.com Mon Jul 14 23:47:53 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: xfs@oss.sgi.com Delivered-To: xfs@oss.sgi.com Received: from relay.sgi.com (relay3.corp.sgi.com [198.149.34.15]) by oss.sgi.com (Postfix) with ESMTP id 0C7107F66 for ; Mon, 14 Jul 2014 23:47:53 -0500 (CDT) Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by relay3.corp.sgi.com (Postfix) with ESMTP id 883E6AC003 for ; Mon, 14 Jul 2014 21:47:52 -0700 (PDT) X-ASG-Debug-ID: 1405399670-04cb6c6ad3e39c0001-NocioJ Received: from ipmail04.adl6.internode.on.net (ipmail04.adl6.internode.on.net [150.101.137.141]) by cuda.sgi.com with ESMTP id Hn7Ux2v5OevqEKR0 for ; Mon, 14 Jul 2014 21:47:50 -0700 (PDT) X-Barracuda-Envelope-From: david@fromorbit.com X-Barracuda-Apparent-Source-IP: 150.101.137.141 X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: AogIACWxxFN5LG3lPGdsb2JhbABZgw4fM4gEpHoBAQEBAQEGlSECiF0XBAEBAQE4NYRgGCMkNAUlAwctiEGiAac5GIVjh0CBQ2qCIA9EgToFmxWVZ4ISKy8BAQGBAA Received: from ppp121-44-109-229.lns20.syd6.internode.on.net (HELO dastard) ([121.44.109.229]) by ipmail04.adl6.internode.on.net with ESMTP; 15 Jul 2014 14:17:49 +0930 Received: from dave by dastard with local (Exim 4.80) (envelope-from ) id 1X6ueZ-0001es-Bj for xfs@oss.sgi.com; Tue, 15 Jul 2014 14:47:47 +1000 Date: Tue, 15 Jul 2014 14:47:47 +1000 From: Dave Chinner To: xfs@oss.sgi.com Subject: [ANNOUNCE] xfsprogs v3.2.1 released Message-ID: <20140715044747.GJ22339@dastard> X-ASG-Orig-Subj: [ANNOUNCE] xfsprogs v3.2.1 released MIME-Version: 1.0 Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="8t9RHnE3ZwKMSgU+" Content-Disposition: inline User-Agent: Mutt/1.5.21 (2010-09-15) X-Barracuda-Connect: ipmail04.adl6.internode.on.net[150.101.137.141] X-Barracuda-Start-Time: 1405399670 X-Barracuda-URL: http://192.48.176.15:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 X-Barracuda-Spam-Score: 0.00 X-Barracuda-Spam-Status: No, SCORE=0.00 using per-user scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.7 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.7511 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- --8t9RHnE3ZwKMSgU+ Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Content-Transfer-Encoding: quoted-printable Hello! xfsprogs v3.2.1 has just been released. This is mainly a bug fix release, primary to fix several bugs that prevented xfs_repair from correctly repairing broken filesystems in a single pass. There are many other fixes and updates, as well as support for the shiny new on-disk free inode btree index feature. The source code can be accessed via git using this URL: git://oss.sgi.com/xfs/cmds/xfsprogs.git A signed gzipped-tar archive of the source code is available here: ftp://oss.sgi.com/projects/xfs/cmd_tars/xfsprogs-3.2.1.tar.gz ftp://oss.sgi.com/projects/xfs/cmd_tars/xfsprogs-3.2.1.tar.gz.sign The archive is signed with my gpg key (the same one that this release announcement is signed with). Problems, issues, questions and general discussion about the release should be directed to the XFS mailing list (xfs@oss.sgi.com). A summary of the changes during development of this release (taken =66rom doc/CHANGES) is as follows: - Added support for new on-disk free inode btree (Brian Foster) - libxfs inode use-after free fixes (Mark Tinguely) - xfs_copy threading cleanups (Junxiao Bi) - xfs_check has been removed - C++ header compiler fixes (Roger Willcocks) - xfs_repair prefetch fixes (Eric Sandeen) - xfs_repair directory block CRC detection fixes (Jan Kara) - xfs_repair directory rebuild fixes - libxfs buffer error handling fixes - xfs_repair quota inode handling fixes - removed incorrect asserts from phase 2 of xfs_repair - updated Polish translations (Jakub Bogusz) - xfs_mkfs 4k sector device fixes (Eric Sandeen) - xfs_fsr cleanups nd fixes (Eric Sandeen) - mount options described in xfs(5) man page (Eric Sandeen) --=20 Dave Chinner david@fromorbit.com --8t9RHnE3ZwKMSgU+ Content-Type: application/pgp-signature; name="signature.asc" Content-Description: Digital signature -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.12 (GNU/Linux) iQIcBAEBAgAGBQJTxLJyAAoJEK3oKUf0dfodKwYP/jmWpl65jFMHNIr4RAmBsGgB ehQrpjciEgTk9GWkbxCREOuL4e6Tarv7CdCMqxketBgIb9PK/diwl1ym5udzxfEx btwU+6wdC03jiz4yjgNPkJF1DLBopUJcOo/agWldk3l8BhouuQOfEvpWCNjWtLL0 PNqxTSWl+3svHIKHqS1fr8QPe4BJ35ToxQMiG7aYXSl94kIwREfNf43+AIXVZ64r 2CWDvqOPf/COossRQ+RrxPp47lFsNo7Xcmotoh43sJn03+fhNK0dPE9eNjRjou15 OPeU6V0gP4r/cVRm9OEYMaU/ZOldtJHJfvyvTtuTPQy+7+PQ5nvOFHBdY1SsXK1u ry25V/DKP2MqONwI3lVuec5B4MMpFu2P8gzEOighcWzF+TlTdv/eP8XdiTJUKKsI ySIGbBhKh/eqWpxdImUg2hb/C/oRBzvsw1LnvUpp1IvC4+kpHQoBpyfDdYzT7uPT 6fl9peMbJRIHA+zNFPoEisTuCRFShRUVtBbwKbvNKphJXCYSQNx+V72yqII5ffRg 03DfbaGf++eVnDM1BOHjex+hHcMbOattsMvTWjhPVm1iw6Lbs1rGAGAWWKUWw742 1VWIu83C7G2N9dWPpZSadqYtKehVqPaYwJ1XC3XuzocVwXTEeL0ystZdhHhH6qIl lZ91kSU3SdPGOjKCBeAK =eRwP -----END PGP SIGNATURE----- --8t9RHnE3ZwKMSgU+-- From david@fromorbit.com Mon Jul 14 23:56:09 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: xfs@oss.sgi.com Delivered-To: xfs@oss.sgi.com Received: from relay.sgi.com (relay2.corp.sgi.com [137.38.102.29]) by oss.sgi.com (Postfix) with ESMTP id 9D9AD7F83 for ; Mon, 14 Jul 2014 23:56:09 -0500 (CDT) Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by relay2.corp.sgi.com (Postfix) with ESMTP id 7FCD4304039 for ; Mon, 14 Jul 2014 21:56:06 -0700 (PDT) X-ASG-Debug-ID: 1405400164-04bdf0356ae6d80001-NocioJ Received: from ipmail04.adl6.internode.on.net (ipmail04.adl6.internode.on.net [150.101.137.141]) by cuda.sgi.com with ESMTP id 7fNTnuX9htOoIPvZ for ; Mon, 14 Jul 2014 21:56:04 -0700 (PDT) X-Barracuda-Envelope-From: david@fromorbit.com X-Barracuda-Apparent-Source-IP: 150.101.137.141 X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: AoYIAH+zxFN5LG3lPGdsb2JhbABZgw6IVqR+AQEBAQEBBpxuAYERFwQBAQEBODWEBAEFOhwjEAgDDgoJJQ8FJQMHGhOIQckpFxiFY4lQB4RDBZsVl3kr Received: from ppp121-44-109-229.lns20.syd6.internode.on.net (HELO dastard) ([121.44.109.229]) by ipmail04.adl6.internode.on.net with ESMTP; 15 Jul 2014 14:26:03 +0930 Received: from dave by dastard with local (Exim 4.80) (envelope-from ) id 1X6umY-0001fu-9p; Tue, 15 Jul 2014 14:56:02 +1000 Date: Tue, 15 Jul 2014 14:56:02 +1000 From: Dave Chinner To: Iustin Pop Cc: xfs@oss.sgi.com Subject: Re: [PATCH] Fix trivial typo in xfsrestore warning message Message-ID: <20140715045602.GW4453@dastard> X-ASG-Orig-Subj: Re: [PATCH] Fix trivial typo in xfsrestore warning message References: <1405360482-28870-1-git-send-email-iusty@k1024.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1405360482-28870-1-git-send-email-iusty@k1024.org> User-Agent: Mutt/1.5.21 (2010-09-15) X-Barracuda-Connect: ipmail04.adl6.internode.on.net[150.101.137.141] X-Barracuda-Start-Time: 1405400164 X-Barracuda-URL: http://192.48.157.11:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 X-Barracuda-Spam-Score: 0.00 X-Barracuda-Spam-Status: No, SCORE=0.00 using per-user scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.7 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.7511 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- On Mon, Jul 14, 2014 at 07:54:42PM +0200, Iustin Pop wrote: > Also modify the po/ files, although not sure if that's the correct > procedure. > > Signed-off-by: Iustin Pop That's fine for a simple change like this. Thanks! -Dave. -- Dave Chinner david@fromorbit.com From dave@fromorbit.com Tue Jul 15 00:45:16 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: xfs@oss.sgi.com Delivered-To: xfs@oss.sgi.com Received: from relay.sgi.com (relay2.corp.sgi.com [137.38.102.29]) by oss.sgi.com (Postfix) with ESMTP id BECC17F83 for ; Tue, 15 Jul 2014 00:45:16 -0500 (CDT) Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by relay2.corp.sgi.com (Postfix) with ESMTP id A997530404E for ; Mon, 14 Jul 2014 22:45:16 -0700 (PDT) X-ASG-Debug-ID: 1405403111-04cbb04219eafe0001-NocioJ Received: from ipmail04.adl6.internode.on.net (ipmail04.adl6.internode.on.net [150.101.137.141]) by cuda.sgi.com with ESMTP id vtN6vpTQd1hwGNuL for ; Mon, 14 Jul 2014 22:45:11 -0700 (PDT) X-Barracuda-Envelope-From: dave@fromorbit.com X-Barracuda-Apparent-Source-IP: 150.101.137.141 X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: AoEIAEG/xFN5LG3lPGdsb2JhbABZgw6IVqR+AQEBAQEBBp1/FwQBAQEBODWEYDuBAgMHiG6hf6c8hXuJbYQtBbB8ghIr Received: from ppp121-44-109-229.lns20.syd6.internode.on.net (HELO dastard) ([121.44.109.229]) by ipmail04.adl6.internode.on.net with ESMTP; 15 Jul 2014 15:15:10 +0930 Received: from disappointment.disaster.area ([192.168.1.110] helo=disappointment) by dastard with esmtp (Exim 4.80) (envelope-from ) id 1X6vY5-0001m0-4P for xfs@oss.sgi.com; Tue, 15 Jul 2014 15:45:09 +1000 Received: from dave by disappointment with local (Exim 4.82_1-5b7a7c0-XX) (envelope-from ) id 1X6vY5-0000oT-3H for xfs@oss.sgi.com; Tue, 15 Jul 2014 15:45:09 +1000 From: Dave Chinner To: xfs@oss.sgi.com Subject: [PATCH 0/2] xfsdump: fix build issues Date: Tue, 15 Jul 2014 15:45:04 +1000 X-ASG-Orig-Subj: [PATCH 0/2] xfsdump: fix build issues Message-Id: <1405403106-3084-1-git-send-email-david@fromorbit.com> X-Mailer: git-send-email 2.0.0 X-Barracuda-Connect: ipmail04.adl6.internode.on.net[150.101.137.141] X-Barracuda-Start-Time: 1405403111 X-Barracuda-URL: http://192.48.176.25:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 X-Barracuda-Spam-Score: 0.00 X-Barracuda-Spam-Status: No, SCORE=0.00 using per-user scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.7 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.7511 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- Hi folks, it's clearly been a while since I built xfsdump, because it didn't compile in my current dev environment. These patches are needed to make it compile again. Once there are reviewed and merged, I'll do a point release for the xfsdump package.... I also noticed that 'make deb' issues a huge number of set-but-not-used variable warnings, which means that the debian package is building with different compiler flags to the normal build. We should fix that at some point. Cheers, Dave. From dave@fromorbit.com Tue Jul 15 00:45:17 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: xfs@oss.sgi.com Delivered-To: xfs@oss.sgi.com Received: from relay.sgi.com (relay2.corp.sgi.com [137.38.102.29]) by oss.sgi.com (Postfix) with ESMTP id BE2017F8C for ; Tue, 15 Jul 2014 00:45:17 -0500 (CDT) Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by relay2.corp.sgi.com (Postfix) with ESMTP id B751130404E for ; Mon, 14 Jul 2014 22:45:17 -0700 (PDT) X-ASG-Debug-ID: 1405403111-04cbb04219eafe0002-NocioJ Received: from ipmail04.adl6.internode.on.net (ipmail04.adl6.internode.on.net [150.101.137.141]) by cuda.sgi.com with ESMTP id jf7RxWM4XVsXzPkB for ; Mon, 14 Jul 2014 22:45:16 -0700 (PDT) X-Barracuda-Envelope-From: dave@fromorbit.com X-Barracuda-Apparent-Source-IP: 150.101.137.141 X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: AoIIAEG/xFN5LG3lPGdsb2JhbABZgw6IVqR+AQEBAQEBBp1/FwQBAQEBODWEBAEFVjMIGDE5AwcUGYhByTuFe4lthC0Fsw4r Received: from ppp121-44-109-229.lns20.syd6.internode.on.net (HELO dastard) ([121.44.109.229]) by ipmail04.adl6.internode.on.net with ESMTP; 15 Jul 2014 15:15:10 +0930 Received: from disappointment.disaster.area ([192.168.1.110] helo=disappointment) by dastard with esmtp (Exim 4.80) (envelope-from ) id 1X6vY5-0001m1-4z for xfs@oss.sgi.com; Tue, 15 Jul 2014 15:45:09 +1000 Received: from dave by disappointment with local (Exim 4.82_1-5b7a7c0-XX) (envelope-from ) id 1X6vY5-0000oW-48 for xfs@oss.sgi.com; Tue, 15 Jul 2014 15:45:09 +1000 From: Dave Chinner To: xfs@oss.sgi.com Subject: [PATCH 1/2] dump: don't redefine min() or max() Date: Tue, 15 Jul 2014 15:45:05 +1000 X-ASG-Orig-Subj: [PATCH 1/2] dump: don't redefine min() or max() Message-Id: <1405403106-3084-2-git-send-email-david@fromorbit.com> X-Mailer: git-send-email 2.0.0 In-Reply-To: <1405403106-3084-1-git-send-email-david@fromorbit.com> References: <1405403106-3084-1-git-send-email-david@fromorbit.com> X-Barracuda-Connect: ipmail04.adl6.internode.on.net[150.101.137.141] X-Barracuda-Start-Time: 1405403115 X-Barracuda-URL: http://192.48.176.25:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 X-Barracuda-Spam-Score: 0.00 X-Barracuda-Spam-Status: No, SCORE=0.00 using per-user scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.7 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.7511 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- From: Dave Chinner They are included from other header files. Signed-off-by: Dave Chinner --- common/util.h | 3 --- restore/dirattr.c | 2 -- restore/namreg.c | 2 -- restore/node.c | 3 --- 4 files changed, 10 deletions(-) diff --git a/common/util.h b/common/util.h index 529c319..86ea8d2 100644 --- a/common/util.h +++ b/common/util.h @@ -67,9 +67,6 @@ extern intgen_t read_buf( char *bufp, intgen_t *statp ); -#define min( a, b ) ( ( ( a ) < ( b ) ) ? ( a ) : ( b ) ) -#define max( a, b ) ( ( ( a ) > ( b ) ) ? ( a ) : ( b ) ) - /* strncpyterm - like strncpy, but guarantees the destination is null-terminated */ diff --git a/restore/dirattr.c b/restore/dirattr.c index 8a1fb06..fcfa0c8 100644 --- a/restore/dirattr.c +++ b/restore/dirattr.c @@ -51,8 +51,6 @@ /* structure definitions used locally ****************************************/ -#define max( a, b ) ( ( ( a ) > ( b ) ) ? ( a ) : ( b ) ) - /* node handle limits */ #ifdef DIRATTRCHK diff --git a/restore/namreg.c b/restore/namreg.c index 80d558a..41362d1 100644 --- a/restore/namreg.c +++ b/restore/namreg.c @@ -34,8 +34,6 @@ /* structure definitions used locally ****************************************/ -#define max( a, b ) ( ( ( a ) > ( b ) ) ? ( a ) : ( b ) ) - #define NAMREG_AVGLEN 10 /* persistent context for a namreg - placed in first page diff --git a/restore/node.c b/restore/node.c index b5df88a..4cc8fb0 100644 --- a/restore/node.c +++ b/restore/node.c @@ -30,9 +30,6 @@ #include "node.h" #include "mmap.h" -#define max( a, b ) ( ( ( a ) > ( b ) ) ? ( a ) : ( b ) ) -#define min( a, b ) ( ( ( a ) < ( b ) ) ? ( a ) : ( b ) ) - extern size_t pgsz; extern size_t pgmask; -- 2.0.0 From dave@fromorbit.com Tue Jul 15 00:45:19 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: xfs@oss.sgi.com Delivered-To: xfs@oss.sgi.com Received: from relay.sgi.com (relay3.corp.sgi.com [198.149.34.15]) by oss.sgi.com (Postfix) with ESMTP id A6EAF7F9A for ; Tue, 15 Jul 2014 00:45:19 -0500 (CDT) Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by relay3.corp.sgi.com (Postfix) with ESMTP id 23F6DAC001 for ; Mon, 14 Jul 2014 22:45:19 -0700 (PDT) X-ASG-Debug-ID: 1405403116-04cb6c6ad1e5d30001-NocioJ Received: from ipmail04.adl6.internode.on.net (ipmail04.adl6.internode.on.net [150.101.137.141]) by cuda.sgi.com with ESMTP id 0tbOunyi4HH0UdUf for ; Mon, 14 Jul 2014 22:45:17 -0700 (PDT) X-Barracuda-Envelope-From: dave@fromorbit.com X-Barracuda-Apparent-Source-IP: 150.101.137.141 X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: Au8QAEG/xFN5LG3lPGdsb2JhbABZgw6EH4Q3pH4BAQEBAQEGlSGHSAOBExcEAQEBATg1hAQBAQQBAiAPASMzCBcBBQImAgIoEQMHFBAJiEGxIpgZgSyET4ltgmGBTAWYKppkKw Received: from ppp121-44-109-229.lns20.syd6.internode.on.net (HELO dastard) ([121.44.109.229]) by ipmail04.adl6.internode.on.net with ESMTP; 15 Jul 2014 15:15:10 +0930 Received: from disappointment.disaster.area ([192.168.1.110] helo=disappointment) by dastard with esmtp (Exim 4.80) (envelope-from ) id 1X6vY5-0001m2-5R for xfs@oss.sgi.com; Tue, 15 Jul 2014 15:45:09 +1000 Received: from dave by disappointment with local (Exim 4.82_1-5b7a7c0-XX) (envelope-from ) id 1X6vY5-0000ob-4g for xfs@oss.sgi.com; Tue, 15 Jul 2014 15:45:09 +1000 From: Dave Chinner To: xfs@oss.sgi.com Subject: [PATCH 2/2] dump: fix translation build errors Date: Tue, 15 Jul 2014 15:45:06 +1000 X-ASG-Orig-Subj: [PATCH 2/2] dump: fix translation build errors Message-Id: <1405403106-3084-3-git-send-email-david@fromorbit.com> X-Mailer: git-send-email 2.0.0 In-Reply-To: <1405403106-3084-1-git-send-email-david@fromorbit.com> References: <1405403106-3084-1-git-send-email-david@fromorbit.com> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Barracuda-Connect: ipmail04.adl6.internode.on.net[150.101.137.141] X-Barracuda-Start-Time: 1405403116 X-Barracuda-URL: http://192.48.176.15:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 X-Barracuda-Spam-Score: 0.00 X-Barracuda-Spam-Status: No, SCORE=0.00 using per-user scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.7 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.7511 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- From: Dave Chinner The translations fail to build because of duplicate message strings. Remove the duplicate. Also, fix the missing "language" tag from the german translation. Signed-off-by: Dave Chinner --- po/de.po | 10 +--------- po/pl.po | 9 --------- 2 files changed, 1 insertion(+), 18 deletions(-) diff --git a/po/de.po b/po/de.po index 8bdd756..62face8 100644 --- a/po/de.po +++ b/po/de.po @@ -10,6 +10,7 @@ msgstr "" "PO-Revision-Date: 2012-08-28 10:58+0200\n" "Last-Translator: Chris Leick \n" "Language-Team: German \n" +"Language: de\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" @@ -3470,15 +3471,6 @@ msgstr "Versuch, %s mit »stat« abzufragen, fehlgeschlagen: %s\n" msgid "attempt to truncate %s failed: %s\n" msgstr "Versuch, %s zu kürzen, fehlgeschlagen: %s\n" -#: .././restore/content.c:7337 .././restore/content.c:7585 -#, c-format -msgid "" -"attempt to set extended attributes (xflags 0x%x, extsize = 0x%x, projid = 0x%" -"x) of %s failed: %s\n" -msgstr "" -"Versuch, erweiterte Attribute (xflags 0x%x, extsize = 0x%x, projid = 0x%x) " -"von %s zu setzen, fehlgeschlagen: %s\n" - #: .././restore/content.c:7493 .././restore/content.c:7760 #, c-format msgid "unable to set access and modification times of %s: %s\n" diff --git a/po/pl.po b/po/pl.po index 3ce823e..62dee9a 100644 --- a/po/pl.po +++ b/po/pl.po @@ -3766,15 +3766,6 @@ msgstr "chown (uid=%d, gid=%d) %s nie powiodło się: %s\n" msgid "chmod %s failed: %s\n" msgstr "chmod %s nie powiodło się: %s\n" -#: .././restore/tree.c:2616 -#, c-format -msgid "" -"attempt to set extended attributes (xflags 0x%x, extsize = 0x%x, projid = 0x" -"%x) of %s failed: %s\n" -msgstr "" -"próba ustawienia rozszerzonych atrybutów (xflags 0x%x, extsize = 0x%x, " -"projid = 0x%x) %s nie powiodła się: %s\n" - #: .././restore/tree.c:2643 #, c-format msgid "unable to rmdir %s: not empty\n" -- 2.0.0 From jeff.liu@oracle.com Tue Jul 15 04:28:02 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: xfs@oss.sgi.com Delivered-To: xfs@oss.sgi.com Received: from relay.sgi.com (relay2.corp.sgi.com [137.38.102.29]) by oss.sgi.com (Postfix) with ESMTP id B6CD07F57 for ; Tue, 15 Jul 2014 04:28:02 -0500 (CDT) Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by relay2.corp.sgi.com (Postfix) with ESMTP id 9140C304043 for ; Tue, 15 Jul 2014 02:27:59 -0700 (PDT) X-ASG-Debug-ID: 1405416477-04bdf0356af1090001-NocioJ Received: from aserp1040.oracle.com (aserp1040.oracle.com [141.146.126.69]) by cuda.sgi.com with ESMTP id 13QYQoNy64HfqMbD (version=TLSv1 cipher=AES256-SHA bits=256 verify=NO) for ; Tue, 15 Jul 2014 02:27:57 -0700 (PDT) X-Barracuda-Envelope-From: jeff.liu@oracle.com X-Barracuda-Apparent-Source-IP: 141.146.126.69 Received: from ucsinet21.oracle.com (ucsinet21.oracle.com [156.151.31.93]) by aserp1040.oracle.com (Sentrion-MTA-4.3.2/Sentrion-MTA-4.3.2) with ESMTP id s6F9RtCj000334 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK) for ; Tue, 15 Jul 2014 09:27:56 GMT Received: from aserz7022.oracle.com (aserz7022.oracle.com [141.146.126.231]) by ucsinet21.oracle.com (8.14.4+Sun/8.14.4) with ESMTP id s6F9Rt3b014961 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO) for ; Tue, 15 Jul 2014 09:27:55 GMT Received: from abhmp0018.oracle.com (abhmp0018.oracle.com [141.146.116.24]) by aserz7022.oracle.com (8.14.4+Sun/8.14.4) with ESMTP id s6F9RsOd022738 for ; Tue, 15 Jul 2014 09:27:54 GMT Received: from [192.168.1.103] (/112.237.69.165) by default (Oracle Beehive Gateway v4.0) with ESMTP ; Tue, 15 Jul 2014 02:27:54 -0700 Message-ID: <53C4F513.4020502@oracle.com> Date: Tue, 15 Jul 2014 17:32:03 +0800 From: Jeff Liu User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:24.0) Gecko/20100101 Thunderbird/24.5.0 MIME-Version: 1.0 To: "xfs@oss.sgi.com" Subject: [PATCH] xfs: remove XFS_IS_OQUOTA_ON macros Content-Type: text/plain; charset=ISO-8859-1 X-ASG-Orig-Subj: [PATCH] xfs: remove XFS_IS_OQUOTA_ON macros Content-Transfer-Encoding: 7bit X-Source-IP: ucsinet21.oracle.com [156.151.31.93] X-Barracuda-Connect: aserp1040.oracle.com[141.146.126.69] X-Barracuda-Start-Time: 1405416477 X-Barracuda-Encrypted: AES256-SHA X-Barracuda-URL: http://192.48.157.11:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 X-Barracuda-Spam-Score: 0.00 X-Barracuda-Spam-Status: No, SCORE=0.00 using per-user scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.7 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.7515 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- From: Jie Liu Remove the XFS_IS_OQUOTA_ON macros as it is obsoleted. Signed-off-by: Jie Liu --- fs/xfs/libxfs/xfs_quota_defs.h | 2 -- 1 file changed, 2 deletions(-) diff --git a/fs/xfs/libxfs/xfs_quota_defs.h b/fs/xfs/libxfs/xfs_quota_defs.h index 137e209..1b0a083 100644 --- a/fs/xfs/libxfs/xfs_quota_defs.h +++ b/fs/xfs/libxfs/xfs_quota_defs.h @@ -98,8 +98,6 @@ typedef __uint16_t xfs_qwarncnt_t; #define XFS_IS_QUOTA_ON(mp) ((mp)->m_qflags & (XFS_UQUOTA_ACTIVE | \ XFS_GQUOTA_ACTIVE | \ XFS_PQUOTA_ACTIVE)) -#define XFS_IS_OQUOTA_ON(mp) ((mp)->m_qflags & (XFS_GQUOTA_ACTIVE | \ - XFS_PQUOTA_ACTIVE)) #define XFS_IS_UQUOTA_ON(mp) ((mp)->m_qflags & XFS_UQUOTA_ACTIVE) #define XFS_IS_GQUOTA_ON(mp) ((mp)->m_qflags & XFS_GQUOTA_ACTIVE) #define XFS_IS_PQUOTA_ON(mp) ((mp)->m_qflags & XFS_PQUOTA_ACTIVE) -- 1.8.3.2 From jeff.liu@oracle.com Tue Jul 15 04:31:26 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: xfs@oss.sgi.com Delivered-To: xfs@oss.sgi.com Received: from relay.sgi.com (relay1.corp.sgi.com [137.38.102.111]) by oss.sgi.com (Postfix) with ESMTP id 3C9E67F63 for ; Tue, 15 Jul 2014 04:31:26 -0500 (CDT) Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by relay1.corp.sgi.com (Postfix) with ESMTP id 35EB58F8052 for ; Tue, 15 Jul 2014 02:31:23 -0700 (PDT) X-ASG-Debug-ID: 1405416678-04cb6c6ad3eea10001-NocioJ Received: from aserp1040.oracle.com (aserp1040.oracle.com [141.146.126.69]) by cuda.sgi.com with ESMTP id J6tcGZgaw9aG7mLn (version=TLSv1 cipher=AES256-SHA bits=256 verify=NO) for ; Tue, 15 Jul 2014 02:31:18 -0700 (PDT) X-Barracuda-Envelope-From: jeff.liu@oracle.com X-Barracuda-Apparent-Source-IP: 141.146.126.69 Received: from acsinet22.oracle.com (acsinet22.oracle.com [141.146.126.238]) by aserp1040.oracle.com (Sentrion-MTA-4.3.2/Sentrion-MTA-4.3.2) with ESMTP id s6F9VHDd004600 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK) for ; Tue, 15 Jul 2014 09:31:18 GMT Received: from userz7022.oracle.com (userz7022.oracle.com [156.151.31.86]) by acsinet22.oracle.com (8.14.4+Sun/8.14.4) with ESMTP id s6F9VGan001916 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO) for ; Tue, 15 Jul 2014 09:31:17 GMT Received: from abhmp0010.oracle.com (abhmp0010.oracle.com [141.146.116.16]) by userz7022.oracle.com (8.14.5+Sun/8.14.4) with ESMTP id s6F9VE9U007410 for ; Tue, 15 Jul 2014 09:31:16 GMT Received: from [192.168.1.103] (/112.237.69.165) by default (Oracle Beehive Gateway v4.0) with ESMTP ; Tue, 15 Jul 2014 02:31:13 -0700 Message-ID: <53C4F5DB.2060108@oracle.com> Date: Tue, 15 Jul 2014 17:35:23 +0800 From: Jeff Liu User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:24.0) Gecko/20100101 Thunderbird/24.5.0 MIME-Version: 1.0 To: "xfs@oss.sgi.com" Subject: [PATCH] xfs: fix uflags detection at xfs_fs_rm_xquota Content-Type: text/plain; charset=ISO-8859-1 X-ASG-Orig-Subj: [PATCH] xfs: fix uflags detection at xfs_fs_rm_xquota Content-Transfer-Encoding: 7bit X-Source-IP: acsinet22.oracle.com [141.146.126.238] X-Barracuda-Connect: aserp1040.oracle.com[141.146.126.69] X-Barracuda-Start-Time: 1405416678 X-Barracuda-Encrypted: AES256-SHA X-Barracuda-URL: http://192.48.176.15:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 X-Barracuda-Spam-Score: 0.00 X-Barracuda-Spam-Status: No, SCORE=0.00 using per-user scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.7 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.7514 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- From: Jie Liu We are intended to check up uflags against FS_PROJ_QUOTA rather than FS_USER_UQUOTA once more, it looks to me like a typo, but might cause the project quota metadata space can not be removed. Signed-off-by: Jie Liu --- fs/xfs/xfs_quotaops.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/fs/xfs/xfs_quotaops.c b/fs/xfs/xfs_quotaops.c index 4f7aecb..b238027 100644 --- a/fs/xfs/xfs_quotaops.c +++ b/fs/xfs/xfs_quotaops.c @@ -123,7 +123,7 @@ xfs_fs_rm_xquota( flags |= XFS_DQ_USER; if (uflags & FS_GROUP_QUOTA) flags |= XFS_DQ_GROUP; - if (uflags & FS_USER_QUOTA) + if (uflags & FS_PROJ_QUOTA) flags |= XFS_DQ_PROJ; return xfs_qm_scall_trunc_qfiles(mp, flags); -- 1.8.3.2 From lczerner@redhat.com Tue Jul 15 04:47:59 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: xfs@oss.sgi.com Delivered-To: xfs@oss.sgi.com Received: from relay.sgi.com (relay2.corp.sgi.com [137.38.102.29]) by oss.sgi.com (Postfix) with ESMTP id ECA337F74 for ; Tue, 15 Jul 2014 04:47:59 -0500 (CDT) Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by relay2.corp.sgi.com (Postfix) with ESMTP id C0B68304048 for ; Tue, 15 Jul 2014 02:47:59 -0700 (PDT) X-ASG-Debug-ID: 1405417677-04cbb04219f30e0001-NocioJ Received: from mx1.redhat.com (mx1.redhat.com [209.132.183.28]) by cuda.sgi.com with ESMTP id VKxidRSukckE4InD (version=TLSv1 cipher=AES256-SHA bits=256 verify=NO) for ; Tue, 15 Jul 2014 02:47:58 -0700 (PDT) X-Barracuda-Envelope-From: lczerner@redhat.com X-Barracuda-Apparent-Source-IP: 209.132.183.28 X-ASG-Whitelist: Client Received: from int-mx09.intmail.prod.int.phx2.redhat.com (int-mx09.intmail.prod.int.phx2.redhat.com [10.5.11.22]) by mx1.redhat.com (8.14.4/8.14.4) with ESMTP id s6F9lv8B023835 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 15 Jul 2014 05:47:57 -0400 Received: from localhost.localdomain.com (vpn1-5-23.ams2.redhat.com [10.36.5.23]) by int-mx09.intmail.prod.int.phx2.redhat.com (8.14.4/8.14.4) with ESMTP id s6F9ls8h029075; Tue, 15 Jul 2014 05:47:55 -0400 From: Lukas Czerner To: fstests@vger.kernel.org Cc: xfs@oss.sgi.com, Lukas Czerner Subject: [PATCH v2 1/2] xfstests: Check the file system consistency on SCRATCH_DEV Date: Tue, 15 Jul 2014 11:47:51 +0200 X-ASG-Orig-Subj: [PATCH v2 1/2] xfstests: Check the file system consistency on SCRATCH_DEV Message-Id: <1405417672-25683-1-git-send-email-lczerner@redhat.com> X-Scanned-By: MIMEDefang 2.68 on 10.5.11.22 X-Barracuda-Connect: mx1.redhat.com[209.132.183.28] X-Barracuda-Start-Time: 1405417678 X-Barracuda-Encrypted: AES256-SHA X-Barracuda-URL: http://192.48.176.25:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 There are about 198 tests which requires scratch_dev, but does not check the file system consistency afterwards. Xfstests infrastructure does not do it automatically, so fix it by running _check_scratch_fs() after each test that _require_scratch. Also remove all the _check_scratch_fs() calls that are not actually needed and will be covered by the check script. Signed-off-by: Lukas Czerner --- check | 2 ++ common/rc | 1 + tests/btrfs/024 | 1 - tests/btrfs/043 | 2 -- tests/btrfs/044 | 2 -- tests/btrfs/045 | 2 -- tests/btrfs/046 | 2 -- tests/btrfs/047 | 2 -- tests/btrfs/048 | 2 -- tests/btrfs/050 | 2 -- tests/btrfs/051 | 2 -- tests/btrfs/053 | 2 -- tests/btrfs/054 | 2 -- tests/ext4/271 | 3 +-- tests/ext4/301 | 3 +-- tests/ext4/302 | 3 +-- tests/ext4/303 | 3 +-- tests/ext4/304 | 3 +-- tests/generic/009 | 0 tests/generic/017 | 6 ------ tests/generic/019 | 1 - tests/generic/026 | 0 tests/generic/027 | 1 - tests/generic/068 | 2 -- tests/generic/076 | 1 - tests/generic/083 | 1 - tests/generic/097 | 7 ------- tests/generic/099 | 7 ------- tests/generic/100 | 1 - tests/generic/117 | 2 -- tests/generic/124 | 3 --- tests/generic/204 | 2 -- tests/generic/269 | 3 +-- tests/generic/270 | 3 +-- tests/generic/273 | 3 +-- tests/generic/299 | 3 +-- tests/generic/300 | 3 +-- tests/generic/312 | 1 - tests/generic/315 | 0 tests/generic/320 | 1 - tests/generic/321 | 2 -- tests/generic/322 | 2 -- tests/shared/006 | 1 - tests/shared/272 | 3 +-- tests/xfs/010 | 1 - tests/xfs/011 | 1 - tests/xfs/013 | 1 - tests/xfs/014 | 1 - tests/xfs/019 | 3 --- tests/xfs/019.out | 1 - tests/xfs/034 | 2 -- tests/xfs/042 | 1 - tests/xfs/042.out | 1 - tests/xfs/085 | 6 ------ tests/xfs/085.out | 1 - tests/xfs/104 | 1 - tests/xfs/110 | 2 -- tests/xfs/121 | 3 --- tests/xfs/181 | 3 --- tests/xfs/278 | 5 ----- tests/xfs/297 | 1 - tests/xfs/306 | 1 - 62 files changed, 14 insertions(+), 119 deletions(-) mode change 100644 => 100755 tests/generic/009 mode change 100644 => 100755 tests/generic/026 mode change 100644 => 100755 tests/generic/315 mode change 100644 => 100755 tests/generic/321 mode change 100644 => 100755 tests/generic/322 diff --git a/check b/check index b1eaed2..5b76fab 100755 --- a/check +++ b/check @@ -626,6 +626,8 @@ for section in $HOST_OPTIONS_SECTIONS; do try="$try $seqnum" n_try=`expr $n_try + 1` _check_test_fs + test -f ${RESULT_DIR}/require_scratch && _check_scratch_fs + rm -f ${RESULT_DIR}/require_scratch fi seq="after_$seqnum" diff --git a/common/rc b/common/rc index 95030ae..57c4446 100644 --- a/common/rc +++ b/common/rc @@ -986,6 +986,7 @@ _require_scratch() exit 1 fi fi + touch ${RESULT_DIR}/require_scratch } # this test needs a logdev diff --git a/tests/btrfs/024 b/tests/btrfs/024 index cb8a6e4..03d105a 100755 --- a/tests/btrfs/024 +++ b/tests/btrfs/024 @@ -77,7 +77,6 @@ _scratch_mkfs > /dev/null 2>&1 _scratch_mount "-o compress-force=no" __workout _scratch_unmount -_check_scratch_fs echo "*** done" status=0 ; exit diff --git a/tests/btrfs/043 b/tests/btrfs/043 index b1fef96..4993349 100644 --- a/tests/btrfs/043 +++ b/tests/btrfs/043 @@ -143,7 +143,5 @@ run_check $FSSUM_PROG -r $tmp/1.fssum $SCRATCH_MNT/mysnap1 _run_btrfs_util_prog receive $SCRATCH_MNT -f $tmp/2.snap run_check $FSSUM_PROG -r $tmp/2.fssum $SCRATCH_MNT/mysnap2 -_check_scratch_fs - status=0 exit diff --git a/tests/btrfs/044 b/tests/btrfs/044 index dae189e..5565b86 100644 --- a/tests/btrfs/044 +++ b/tests/btrfs/044 @@ -123,7 +123,5 @@ run_check $FSSUM_PROG -r $tmp/1.fssum $SCRATCH_MNT/mysnap1 _run_btrfs_util_prog receive $SCRATCH_MNT -f $tmp/2.snap run_check $FSSUM_PROG -r $tmp/2.fssum $SCRATCH_MNT/mysnap2 -_check_scratch_fs - status=0 exit diff --git a/tests/btrfs/045 b/tests/btrfs/045 index 4567a3f..8570fa6 100755 --- a/tests/btrfs/045 +++ b/tests/btrfs/045 @@ -370,7 +370,5 @@ run_check $FSSUM_PROG -r $tmp/1.fssum $SCRATCH_MNT/mysnap1 _run_btrfs_util_prog receive $SCRATCH_MNT -f $tmp/2.snap run_check $FSSUM_PROG -r $tmp/2.fssum $SCRATCH_MNT/mysnap2 -_check_scratch_fs - status=0 exit diff --git a/tests/btrfs/046 b/tests/btrfs/046 index 685e359..c0d10e1 100644 --- a/tests/btrfs/046 +++ b/tests/btrfs/046 @@ -298,7 +298,5 @@ echo "File digests in the replica filesystem:" md5sum $SCRATCH_MNT/mysnap1/foo | _filter_scratch md5sum $SCRATCH_MNT/mysnap2/foo | _filter_scratch -_check_scratch_fs - status=0 exit diff --git a/tests/btrfs/047 b/tests/btrfs/047 index 2dc6499..8b20e79 100755 --- a/tests/btrfs/047 +++ b/tests/btrfs/047 @@ -116,7 +116,5 @@ $XFS_IO_PROG -r -c "seek -r -a 0" $SCRATCH_MNT/mysnap2/foo # the file's size. $XFS_IO_PROG -r -c "fiemap -v" $SCRATCH_MNT/mysnap2/foo | _filter_fiemap -_check_scratch_fs - status=0 exit diff --git a/tests/btrfs/048 b/tests/btrfs/048 index e998f97..2a9bfc3 100755 --- a/tests/btrfs/048 +++ b/tests/btrfs/048 @@ -214,7 +214,5 @@ $BTRFS_UTIL_PROG property get $SCRATCH_MNT/sv1 compression touch $SCRATCH_MNT/sv1/file2 $BTRFS_UTIL_PROG property get $SCRATCH_MNT/sv1/file2 compression -_check_scratch_fs - status=0 exit diff --git a/tests/btrfs/050 b/tests/btrfs/050 index 6e4bd13..9079408 100755 --- a/tests/btrfs/050 +++ b/tests/btrfs/050 @@ -103,7 +103,5 @@ _scratch_mount _run_btrfs_util_prog receive $SCRATCH_MNT -f $send_files_dir/1.snap run_check $FSSUM_PROG -r $send_files_dir/1.fssum $SCRATCH_MNT/mysnap1 -_check_scratch_fs - status=0 exit diff --git a/tests/btrfs/051 b/tests/btrfs/051 index 53df664..deaa765 100755 --- a/tests/btrfs/051 +++ b/tests/btrfs/051 @@ -79,7 +79,5 @@ _scratch_mount _run_btrfs_util_prog receive $SCRATCH_MNT -f $send_files_dir/1.snap run_check $FSSUM_PROG -r $send_files_dir/1.fssum $SCRATCH_MNT/mysnap1 -_check_scratch_fs - status=0 exit diff --git a/tests/btrfs/053 b/tests/btrfs/053 index 3994110..7eef55f 100755 --- a/tests/btrfs/053 +++ b/tests/btrfs/053 @@ -103,7 +103,5 @@ run_check $FSSUM_PROG -r $send_files_dir/1.fssum $SCRATCH_MNT/mysnap1 _run_btrfs_util_prog receive $SCRATCH_MNT -f $send_files_dir/2.snap run_check $FSSUM_PROG -r $send_files_dir/2.fssum $SCRATCH_MNT/mysnap2 -_check_scratch_fs - status=0 exit diff --git a/tests/btrfs/054 b/tests/btrfs/054 index 215861c..258eead 100755 --- a/tests/btrfs/054 +++ b/tests/btrfs/054 @@ -103,7 +103,5 @@ _run_btrfs_util_prog receive $SCRATCH_MNT -f $send_files_dir/2.snap [ -e $SCRATCH_MNT/testdir ] && \ echo "Directory testdir was supposed to be deleted after incremental send!" -_check_scratch_fs - status=0 exit diff --git a/tests/ext4/271 b/tests/ext4/271 index 274e904..e77ae57 100755 --- a/tests/ext4/271 +++ b/tests/ext4/271 @@ -62,6 +62,5 @@ if ! _scratch_unmount; then exit fi echo "Check filesystem" -_check_scratch_fs -status=$? +status=0 exit diff --git a/tests/ext4/301 b/tests/ext4/301 index 0ca3622..568327d 100755 --- a/tests/ext4/301 +++ b/tests/ext4/301 @@ -121,5 +121,4 @@ if ! _scratch_unmount; then status=1 exit fi -_check_scratch_fs -status=$? +status=0 diff --git a/tests/ext4/302 b/tests/ext4/302 index 497f4c6..1e90016 100755 --- a/tests/ext4/302 +++ b/tests/ext4/302 @@ -137,6 +137,5 @@ if ! _scratch_unmount; then status=1 exit fi -_check_scratch_fs -status=$? +status=0 exit diff --git a/tests/ext4/303 b/tests/ext4/303 index 93354e5..9573872 100755 --- a/tests/ext4/303 +++ b/tests/ext4/303 @@ -147,6 +147,5 @@ if ! _scratch_unmount; then status=1 exit fi -_check_scratch_fs -status=$? +status=0 exit diff --git a/tests/ext4/304 b/tests/ext4/304 index 74e601a..b9b4356 100755 --- a/tests/ext4/304 +++ b/tests/ext4/304 @@ -124,6 +124,5 @@ if ! _scratch_unmount; then status=1 exit fi -_check_scratch_fs -status=$? +status=0 exit diff --git a/tests/generic/009 b/tests/generic/009 old mode 100644 new mode 100755 diff --git a/tests/generic/017 b/tests/generic/017 index 11705bf..c769dd8 100755 --- a/tests/generic/017 +++ b/tests/generic/017 @@ -67,12 +67,6 @@ done # Check if 80 extents are present $XFS_IO_PROG -c "fiemap -v" $testfile | grep "^ *[0-9]*:" |wc -l -_check_scratch_fs -if [ $? -ne 0 ]; then - status=1 - exit -fi - # success, all done status=0 exit diff --git a/tests/generic/019 b/tests/generic/019 index 7a019ad..b387507 100755 --- a/tests/generic/019 +++ b/tests/generic/019 @@ -171,7 +171,6 @@ _workout() # perform mount/umount, after that all errors should be fixed run_check _scratch_mount run_check _scratch_unmount - _check_scratch_fs } # real QA test starts here diff --git a/tests/generic/026 b/tests/generic/026 old mode 100644 new mode 100755 diff --git a/tests/generic/027 b/tests/generic/027 index b9232ec..8dab117 100755 --- a/tests/generic/027 +++ b/tests/generic/027 @@ -101,7 +101,6 @@ while [ $i -le $loop ]; do let i=$i+1 done _scratch_unmount -_check_scratch_fs status=0 exit diff --git a/tests/generic/068 b/tests/generic/068 index a764019..7794326 100755 --- a/tests/generic/068 +++ b/tests/generic/068 @@ -130,6 +130,4 @@ rm $tmp.running # wait for fsstresses to finish wait -_check_scratch_fs - exit 1 diff --git a/tests/generic/076 b/tests/generic/076 index a53840f..02af762 100755 --- a/tests/generic/076 +++ b/tests/generic/076 @@ -77,7 +77,6 @@ FSSTRESS_ARGS=`_scale_fsstress_args -p 2 -n 2000 $FSSTRESS_AVOID` echo "run fsstress with args: $FSSTRESS_ARGS" >>$seqres.full $FSSTRESS_PROG $FSSTRESS_ARGS >>$seqres.full _lets_get_pidst -_check_scratch_fs echo "*** done" status=0 diff --git a/tests/generic/083 b/tests/generic/083 index f9135f8..61316bf 100755 --- a/tests/generic/083 +++ b/tests/generic/083 @@ -84,7 +84,6 @@ workout() # -w ensures that the only ops are ones which cause write I/O FSSTRESS_ARGS=`_scale_fsstress_args -d $SCRATCH_MNT -w -p $procs -n $nops $FSSTRESS_AVOID` $FSSTRESS_PROG $FSSTRESS_ARGS >>$seqres.full - _check_scratch_fs } echo "*** test out-of-space handling for random write operations" diff --git a/tests/generic/097 b/tests/generic/097 index c120422..f40d5d5 100755 --- a/tests/generic/097 +++ b/tests/generic/097 @@ -244,13 +244,6 @@ ${ATTR_PROG} -R -l foo cd / -# Check the filesystem -_check_scratch_fs - -# optional stuff if your test has verbose output to help resolve problems -#echo -#echo "If failure, check $seqres.full (this) and $seqres.full.ok (reference)" - # success, all done status=0 exit diff --git a/tests/generic/099 b/tests/generic/099 index 7351966..83097e9 100755 --- a/tests/generic/099 +++ b/tests/generic/099 @@ -328,13 +328,6 @@ chacl $acl3 largeaclfile _acl_list largeaclfile | _filter_aces_notypes #------------------------------------------------------- - -if [ "$FSTYP" == "udf" ]; then - cd / - umount $TARGET_DIR - # Check the filesystem - _check_scratch_fs -fi # success, all done status=0 exit diff --git a/tests/generic/100 b/tests/generic/100 index 05d766f..00ba23e 100755 --- a/tests/generic/100 +++ b/tests/generic/100 @@ -80,7 +80,6 @@ ls -R -l ${TEST_DIR}${POPULATED_DIR} >>$seqres.full 2>&1 diff -qr $POPULATED_DIR ${TEST_DIR}${POPULATED_DIR} cd / -_check_scratch_fs status=0 exit diff --git a/tests/generic/117 b/tests/generic/117 index f81265b..935dcaf 100755 --- a/tests/generic/117 +++ b/tests/generic/117 @@ -108,8 +108,6 @@ cd / umount $SCRATCH_MNT echo echo Checking filesystem -_check_scratch_fs -_scratch_mount status=$? exit diff --git a/tests/generic/124 b/tests/generic/124 index 93ec4a1..77f6e7d 100755 --- a/tests/generic/124 +++ b/tests/generic/124 @@ -76,7 +76,4 @@ fi umount $SCRATCH_DEV -_check_test_fs -_check_scratch_fs - exit diff --git a/tests/generic/204 b/tests/generic/204 index de029c6..d6bb094 100755 --- a/tests/generic/204 +++ b/tests/generic/204 @@ -83,8 +83,6 @@ for i in `seq 1 $files`; do echo XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX > $SCRATCH_MNT/$i done -_check_scratch_fs - # success, all done echo "*** done" status=0 diff --git a/tests/generic/269 b/tests/generic/269 index 684cf42..cff5e54 100755 --- a/tests/generic/269 +++ b/tests/generic/269 @@ -79,6 +79,5 @@ if ! _scratch_unmount; then status=1 exit fi -_check_scratch_fs -status=$? +status=0 exit diff --git a/tests/generic/270 b/tests/generic/270 index b5ed7af..cebd377 100755 --- a/tests/generic/270 +++ b/tests/generic/270 @@ -104,6 +104,5 @@ if ! _scratch_unmount; then status=1 exit fi -_check_scratch_fs -status=$? +status=0 exit diff --git a/tests/generic/273 b/tests/generic/273 index 8e121a2..1ceb6c4 100755 --- a/tests/generic/273 +++ b/tests/generic/273 @@ -138,6 +138,5 @@ _scratch_mount _do_workload -_check_scratch_fs -status=$? +status=0 exit diff --git a/tests/generic/299 b/tests/generic/299 index bf02c94..e8685a4 100755 --- a/tests/generic/299 +++ b/tests/generic/299 @@ -152,6 +152,5 @@ if ! _scratch_unmount; then status=1 exit fi -_check_scratch_fs -status=$? +status=0 exit diff --git a/tests/generic/300 b/tests/generic/300 index 01d4600..5234d05 100755 --- a/tests/generic/300 +++ b/tests/generic/300 @@ -155,6 +155,5 @@ if ! _scratch_unmount; then status=1 exit fi -_check_scratch_fs -status=$? +status=0 exit diff --git a/tests/generic/312 b/tests/generic/312 index 7611bb9..b035978 100755 --- a/tests/generic/312 +++ b/tests/generic/312 @@ -67,6 +67,5 @@ echo "Silence is golden" $XFS_IO_PROG -f -c "falloc 0 6g" $SCRATCH_MNT/testfile.$seq >>$seqres.full 2>&1 _scratch_unmount -_check_scratch_fs status=0 exit diff --git a/tests/generic/315 b/tests/generic/315 old mode 100644 new mode 100755 diff --git a/tests/generic/320 b/tests/generic/320 index e1ba970..3dd3bea 100755 --- a/tests/generic/320 +++ b/tests/generic/320 @@ -116,6 +116,5 @@ _scratch_mount >>$seqres.full 2>&1 do_workload -_check_scratch_fs status=0 exit diff --git a/tests/generic/321 b/tests/generic/321 old mode 100644 new mode 100755 index 345416c..8410d40 --- a/tests/generic/321 +++ b/tests/generic/321 @@ -121,8 +121,6 @@ _replay_rename_test() _ls_l $SCRATCH_MNT | tail -n +2 | awk '{ print $1, $9 }' _ls_l $SCRATCH_MNT/bar | tail -n +2 | awk '{ print $1, $9 }' _unmount_flakey - _check_scratch_fs $FLAKEY_DEV - [ $? -ne 0 ] && _fatal "fsck failed" } _scratch_mkfs >> $seqres.full 2>&1 diff --git a/tests/generic/322 b/tests/generic/322 old mode 100644 new mode 100755 index c43fcb1..fe1a4d5 --- a/tests/generic/322 +++ b/tests/generic/322 @@ -94,8 +94,6 @@ _write_after_fsync_rename_test() _mount_flakey md5sum $SCRATCH_MNT/bar | _filter_scratch _unmount_flakey - _check_scratch_fs $FLAKEY_DEV - [ $? -ne 0 ] && _fatal "fsck failed" } _scratch_mkfs >> $seqres.full 2>&1 diff --git a/tests/shared/006 b/tests/shared/006 index 445c35d..55c5965 100755 --- a/tests/shared/006 +++ b/tests/shared/006 @@ -91,7 +91,6 @@ _check_scratch_fs rm -rf $SCRATCH_MNT/testdir echo "Inode status after deleting all test files" >>$seqres.full $DF_PROG -i $SCRATCH_MNT >>$seqres.full -_check_scratch_fs status=0 exit diff --git a/tests/shared/272 b/tests/shared/272 index 0f812f3..4417535 100755 --- a/tests/shared/272 +++ b/tests/shared/272 @@ -103,6 +103,5 @@ if ! _scratch_unmount; then exit fi echo "Check filesystem" -_check_scratch_fs -status=$? +status=0 exit diff --git a/tests/xfs/010 b/tests/xfs/010 index 2b5ad00..fd2e27c 100755 --- a/tests/xfs/010 +++ b/tests/xfs/010 @@ -127,7 +127,6 @@ _check_scratch_fs _corrupt_finobt_root $SCRATCH_DEV _scratch_xfs_repair 2>&1 | _filter_repair -_check_scratch_fs status=0 exit diff --git a/tests/xfs/011 b/tests/xfs/011 index 5763af9..658a822 100755 --- a/tests/xfs/011 +++ b/tests/xfs/011 @@ -110,7 +110,6 @@ killall $FSSTRESS_PROG wait umount $SCRATCH_MNT -_check_scratch_fs status=0 exit diff --git a/tests/xfs/013 b/tests/xfs/013 index d47bf53..dea3d08 100755 --- a/tests/xfs/013 +++ b/tests/xfs/013 @@ -150,7 +150,6 @@ rm -rf $SCRATCH_MNT/fsstress rm -rf $SCRATCH_MNT/dir* umount $SCRATCH_MNT -_check_scratch_fs status=0 exit diff --git a/tests/xfs/014 b/tests/xfs/014 index 1e092a9..8866bfe 100755 --- a/tests/xfs/014 +++ b/tests/xfs/014 @@ -194,7 +194,6 @@ umount $LOOP_MNT echo $orig_sp_time > /proc/sys/fs/xfs/speculative_prealloc_lifetime umount $SCRATCH_MNT -_check_scratch_fs status=0 exit diff --git a/tests/xfs/019 b/tests/xfs/019 index d35d15b..09670b9 100755 --- a/tests/xfs/019 +++ b/tests/xfs/019 @@ -136,9 +136,6 @@ _verify_fs() _full "umount" umount $SCRATCH_DEV >>$seqfull 2>&1 \ || _fail "umount failed" - - echo "*** check FS" - _check_scratch_fs } #_verify_fs 1 diff --git a/tests/xfs/019.out b/tests/xfs/019.out index 0c1bf8f..19614d9 100644 --- a/tests/xfs/019.out +++ b/tests/xfs/019.out @@ -79,6 +79,5 @@ Device: Inode: Links: 1 Mode: (0123/l--x-w--wx) Uid: (0) Gid: (0) Device: Inode: Links: 1 *** unmount FS -*** check FS *** done *** unmount diff --git a/tests/xfs/034 b/tests/xfs/034 index 6f73fdd..6beeb56 100755 --- a/tests/xfs/034 +++ b/tests/xfs/034 @@ -83,8 +83,6 @@ then fi # pv 801241 causes corruption here (inode left in agi_unlinked list) -_check_scratch_fs - echo "*** done" # happy exit status=0 diff --git a/tests/xfs/042 b/tests/xfs/042 index db0fa28..77dd704 100755 --- a/tests/xfs/042 +++ b/tests/xfs/042 @@ -162,7 +162,6 @@ if ! _do "diff $tmp.sum1 $tmp.sum2"; then status=1; exit fi echo "done" -_do "Checking filesystem" "_check_scratch_fs" # success, all done echo "xfs_fsr tests passed." diff --git a/tests/xfs/042.out b/tests/xfs/042.out index f5b37b3..41baf09 100644 --- a/tests/xfs/042.out +++ b/tests/xfs/042.out @@ -9,5 +9,4 @@ Remove other files... done Run xfs_fsr on filesystem... done Check fill file... done Check large file... done -Checking filesystem... done xfs_fsr tests passed. diff --git a/tests/xfs/085 b/tests/xfs/085 index af71b77..54c2d01 100755 --- a/tests/xfs/085 +++ b/tests/xfs/085 @@ -88,12 +88,6 @@ umount $SCRATCH_MNT echo "logprint after mount and replay..." _print_logstate -if _check_scratch_fs; then - echo "filesystem is checked ok" -else - echo "filesystem is NOT ok" -fi - # success, all done status=0 exit diff --git a/tests/xfs/085.out b/tests/xfs/085.out index 48e3e73..d2d99a1 100644 --- a/tests/xfs/085.out +++ b/tests/xfs/085.out @@ -111,4 +111,3 @@ ls SCRATCH_MNT unmount logprint after mount and replay... clean log -filesystem is checked ok diff --git a/tests/xfs/104 b/tests/xfs/104 index e899aca..69fcc69 100755 --- a/tests/xfs/104 +++ b/tests/xfs/104 @@ -113,7 +113,6 @@ done wait # stop for any remaining stress processes umount $SCRATCH_DEV -_check_scratch_fs status=0 exit diff --git a/tests/xfs/110 b/tests/xfs/110 index 48bea45..7428faf 100755 --- a/tests/xfs/110 +++ b/tests/xfs/110 @@ -81,7 +81,5 @@ do done wait -_check_scratch_fs - status=0 exit diff --git a/tests/xfs/121 b/tests/xfs/121 index 1e06e45..1457ed1 100755 --- a/tests/xfs/121 +++ b/tests/xfs/121 @@ -106,9 +106,6 @@ fi _scratch_mount >> $seqres.full 2>&1 \ || _fail "mount failed" -# should now be peaches -_check_scratch_fs - # success, all done status=0 exit diff --git a/tests/xfs/181 b/tests/xfs/181 index 38d556c..4e7ac3a 100755 --- a/tests/xfs/181 +++ b/tests/xfs/181 @@ -120,9 +120,6 @@ fi _scratch_mount >> $seqres.full 2>&1 \ || _fail "mount failed" -# should now be peaches -_check_scratch_fs - # success, all done status=0 exit diff --git a/tests/xfs/278 b/tests/xfs/278 index dacd1fc..2b1db8a 100755 --- a/tests/xfs/278 +++ b/tests/xfs/278 @@ -78,9 +78,4 @@ echo "" >>$seqres.full xfs_repair $SCRATCH_DEV >> $seqres.full 2>&1 echo "===== END of xfs_repair =====" >> $seqres.full -#if _check_scratch_fs; then -# status=0 -#else -# status=1 -#fi exit diff --git a/tests/xfs/297 b/tests/xfs/297 index 3fe32f1..1cdbbb9 100755 --- a/tests/xfs/297 +++ b/tests/xfs/297 @@ -82,6 +82,5 @@ echo "Test done" | tee -a $seqres.full killall -q $FSSTRESS_PROG wait -_check_scratch_fs status=0 exit diff --git a/tests/xfs/306 b/tests/xfs/306 index 0794de3..3053fd9 100644 --- a/tests/xfs/306 +++ b/tests/xfs/306 @@ -97,7 +97,6 @@ for d in $load_dir/*; do done wait umount $SCRATCH_MNT -_check_scratch_fs echo "No output is good. Failures are loud." -- 1.8.3.1 From lczerner@redhat.com Tue Jul 15 04:48:03 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: xfs@oss.sgi.com Delivered-To: xfs@oss.sgi.com Received: from relay.sgi.com (relay2.corp.sgi.com [137.38.102.29]) by oss.sgi.com (Postfix) with ESMTP id 284527F75 for ; Tue, 15 Jul 2014 04:48:03 -0500 (CDT) Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by relay2.corp.sgi.com (Postfix) with ESMTP id 16230304048 for ; Tue, 15 Jul 2014 02:48:02 -0700 (PDT) X-ASG-Debug-ID: 1405417679-04cb6c6ad2ef410001-NocioJ Received: from mx1.redhat.com (mx1.redhat.com [209.132.183.28]) by cuda.sgi.com with ESMTP id 51vxyHhc6C702W6Y (version=TLSv1 cipher=AES256-SHA bits=256 verify=NO) for ; Tue, 15 Jul 2014 02:48:00 -0700 (PDT) X-Barracuda-Envelope-From: lczerner@redhat.com X-Barracuda-Apparent-Source-IP: 209.132.183.28 X-ASG-Whitelist: Client Received: from int-mx09.intmail.prod.int.phx2.redhat.com (int-mx09.intmail.prod.int.phx2.redhat.com [10.5.11.22]) by mx1.redhat.com (8.14.4/8.14.4) with ESMTP id s6F9lxVa023847 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 15 Jul 2014 05:47:59 -0400 Received: from localhost.localdomain.com (vpn1-5-23.ams2.redhat.com [10.36.5.23]) by int-mx09.intmail.prod.int.phx2.redhat.com (8.14.4/8.14.4) with ESMTP id s6F9ls8i029075; Tue, 15 Jul 2014 05:47:57 -0400 From: Lukas Czerner To: fstests@vger.kernel.org Cc: xfs@oss.sgi.com, Lukas Czerner Subject: [PATCH v2 2/2] xfstests: Check fs consistency on TEST_DEV only when needed Date: Tue, 15 Jul 2014 11:47:52 +0200 X-ASG-Orig-Subj: [PATCH v2 2/2] xfstests: Check fs consistency on TEST_DEV only when needed Message-Id: <1405417672-25683-2-git-send-email-lczerner@redhat.com> In-Reply-To: <1405417672-25683-1-git-send-email-lczerner@redhat.com> References: <1405417672-25683-1-git-send-email-lczerner@redhat.com> X-Scanned-By: MIMEDefang 2.68 on 10.5.11.22 X-Barracuda-Connect: mx1.redhat.com[209.132.183.28] X-Barracuda-Start-Time: 1405417680 X-Barracuda-Encrypted: AES256-SHA X-Barracuda-URL: http://192.48.176.15:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 Currently we're checking file system consistency on TEST_DEV after every successful test run even though the TEST_DEV might not even be used in that test. Fix it by introducing _require_test to for the test ti indicate that it's about to use TEST_DEV. Also add _require_test to the new script so that this requirement is a default. Signed-off-by: Lukas Czerner --- check | 3 ++- common/rc | 49 +++++++++++++++++++++++++++++++++++++++++++++++++ new | 1 + tests/btrfs/008 | 1 + tests/btrfs/016 | 1 + tests/btrfs/019 | 1 + tests/btrfs/020 | 1 + tests/btrfs/026 | 1 + tests/btrfs/027 | 1 + tests/btrfs/028 | 1 + tests/btrfs/029 | 1 + tests/btrfs/031 | 1 + tests/btrfs/041 | 1 + tests/btrfs/046 | 1 + tests/btrfs/047 | 1 + tests/btrfs/048 | 1 + tests/btrfs/050 | 1 + tests/btrfs/051 | 1 + tests/btrfs/053 | 1 + tests/btrfs/054 | 1 + tests/ext4/001 | 1 + tests/ext4/002 | 1 + tests/generic/001 | 1 + tests/generic/002 | 1 + tests/generic/004 | 1 + tests/generic/005 | 1 + tests/generic/006 | 1 + tests/generic/007 | 1 + tests/generic/008 | 1 + tests/generic/009 | 1 + tests/generic/010 | 1 + tests/generic/011 | 1 + tests/generic/012 | 1 + tests/generic/013 | 1 + tests/generic/014 | 1 + tests/generic/016 | 1 + tests/generic/020 | 1 + tests/generic/021 | 1 + tests/generic/022 | 1 + tests/generic/023 | 1 + tests/generic/024 | 1 + tests/generic/025 | 1 + tests/generic/026 | 1 + tests/generic/028 | 1 + tests/generic/070 | 1 + tests/generic/074 | 1 + tests/generic/075 | 1 + tests/generic/088 | 1 + tests/generic/089 | 1 + tests/generic/091 | 1 + tests/generic/093 | 1 + tests/generic/097 | 1 + tests/generic/099 | 1 + tests/generic/100 | 1 + tests/generic/112 | 1 + tests/generic/113 | 1 + tests/generic/123 | 1 + tests/generic/124 | 1 + tests/generic/125 | 1 + tests/generic/126 | 1 + tests/generic/127 | 1 + tests/generic/131 | 1 + tests/generic/133 | 1 + tests/generic/184 | 1 + tests/generic/192 | 1 + tests/generic/193 | 1 + tests/generic/198 | 1 + tests/generic/207 | 1 + tests/generic/208 | 1 + tests/generic/209 | 1 + tests/generic/210 | 1 + tests/generic/211 | 1 + tests/generic/212 | 1 + tests/generic/213 | 1 + tests/generic/214 | 1 + tests/generic/215 | 1 + tests/generic/221 | 1 + tests/generic/228 | 1 + tests/generic/236 | 1 + tests/generic/237 | 1 + tests/generic/239 | 1 + tests/generic/240 | 1 + tests/generic/241 | 1 + tests/generic/245 | 1 + tests/generic/246 | 1 + tests/generic/247 | 1 + tests/generic/248 | 1 + tests/generic/249 | 1 + tests/generic/255 | 1 + tests/generic/256 | 1 + tests/generic/257 | 1 + tests/generic/258 | 1 + tests/generic/263 | 1 + tests/generic/285 | 1 + tests/generic/286 | 1 + tests/generic/306 | 1 + tests/generic/308 | 1 + tests/generic/309 | 1 + tests/generic/310 | 1 + tests/generic/313 | 1 + tests/generic/314 | 1 + tests/generic/315 | 1 + tests/generic/316 | 1 + tests/shared/051 | 1 + tests/shared/298 | 1 + tests/xfs/003 | 1 + tests/xfs/008 | 1 + tests/xfs/012 | 1 + tests/xfs/045 | 1 + tests/xfs/048 | 1 + tests/xfs/066 | 1 + tests/xfs/073 | 1 + tests/xfs/078 | 1 + tests/xfs/080 | 1 + tests/xfs/084 | 1 + tests/xfs/134 | 1 + tests/xfs/164 | 1 + tests/xfs/165 | 1 + tests/xfs/195 | 1 + tests/xfs/197 | 1 + tests/xfs/206 | 1 + tests/xfs/222 | 1 + tests/xfs/229 | 1 + tests/xfs/242 | 1 + tests/xfs/250 | 1 + tests/xfs/252 | 1 + tests/xfs/253 | 1 + tests/xfs/259 | 1 + tests/xfs/290 | 1 + tests/xfs/292 | 1 + 130 files changed, 179 insertions(+), 1 deletion(-) diff --git a/check b/check index 5b76fab..77c6559 100755 --- a/check +++ b/check @@ -625,7 +625,8 @@ for section in $HOST_OPTIONS_SECTIONS; do then try="$try $seqnum" n_try=`expr $n_try + 1` - _check_test_fs + test -f ${RESULT_DIR}/require_test && _check_test_fs + rm -f ${RESULT_DIR}/require_test test -f ${RESULT_DIR}/require_scratch && _check_scratch_fs rm -f ${RESULT_DIR}/require_scratch fi diff --git a/common/rc b/common/rc index 57c4446..27a2ba7 100644 --- a/common/rc +++ b/common/rc @@ -989,6 +989,55 @@ _require_scratch() touch ${RESULT_DIR}/require_scratch } +# this test needs a test partition - check we're ok & unmount it +# +_require_test() +{ + case "$FSTYP" in + nfs*) + _notrun "requires a test device" + ;; + tmpfs) + if [ -z "$TEST_DEV" -o ! -d "$TEST_DIR" ]; + then + _notrun "this test requires a valid \$TEST_DIR and unique $TEST_DEV" + fi + ;; + *) + if [ -z "$TEST_DEV" -o "`_is_block_dev $TEST_DEV`" = "" ] + then + _notrun "this test requires a valid \$TEST_DEV" + fi + if [ "`_is_block_dev $SCRATCH_DEV`" = "`_is_block_dev $TEST_DEV`" ] + then + _notrun "this test requires a valid \$TEST_DEV" + fi + if [ ! -d "$TEST_DIR" ] + then + _notrun "this test requires a valid \$TEST_DIR" + fi + ;; + esac + + # mounted? + if _mount | grep -q $TEST_DEV + then + # if it's mounted, make sure its on $TEST_DIR + if ! _mount | grep $TEST_DEV | grep -q $TEST_DIR + then + echo "\$TEST_DEV is mounted but not on \$TEST_DIR - aborting" + exit 1 + fi + else + out=`_mount_or_remount_rw "$MOUNT_OPTIONS" $TEST_DEV $TEST_DIR` + if [ $? -ne 1 ]; then + echo $out + exit 1 + fi + fi + touch ${RESULT_DIR}/require_test +} + # this test needs a logdev # _require_logdev() diff --git a/new b/new index f712892..f3e6fa1 100755 --- a/new +++ b/new @@ -129,6 +129,7 @@ _cleanup() # Modify as appropriate. _supported_fs generic _supported_os IRIX Linux +_require_test # if error exit diff --git a/tests/btrfs/008 b/tests/btrfs/008 index 9fa36a6..019af04 100755 --- a/tests/btrfs/008 +++ b/tests/btrfs/008 @@ -50,6 +50,7 @@ trap "_cleanup ; exit \$status" 0 1 2 3 15 # real QA test starts here _supported_fs btrfs _supported_os Linux +_require_test _require_scratch _scratch_mkfs > /dev/null 2>&1 diff --git a/tests/btrfs/016 b/tests/btrfs/016 index d04c21a..c8fc708 100755 --- a/tests/btrfs/016 +++ b/tests/btrfs/016 @@ -49,6 +49,7 @@ trap "_cleanup ; exit \$status" 0 1 2 3 15 # real QA test starts here _supported_fs btrfs _supported_os Linux +_require_test _require_scratch _require_fssum diff --git a/tests/btrfs/019 b/tests/btrfs/019 index 45bba5e..452d24b 100755 --- a/tests/btrfs/019 +++ b/tests/btrfs/019 @@ -50,6 +50,7 @@ trap "_cleanup ; exit \$status" 0 1 2 3 15 # real QA test starts here _supported_fs btrfs _supported_os Linux +_require_test _require_scratch _scratch_mkfs > /dev/null 2>&1 diff --git a/tests/btrfs/020 b/tests/btrfs/020 index 7464bd0..5a928dd 100755 --- a/tests/btrfs/020 +++ b/tests/btrfs/020 @@ -55,6 +55,7 @@ trap "_cleanup ; exit \$status" 0 1 2 3 15 # real QA test starts here _supported_fs btrfs _supported_os Linux +_require_test rm -f $seqres.full echo "Silence is golden" diff --git a/tests/btrfs/026 b/tests/btrfs/026 index c2ac561..7559ca2 100644 --- a/tests/btrfs/026 +++ b/tests/btrfs/026 @@ -50,6 +50,7 @@ _supported_os Linux _require_xfs_io_command "fiemap" _require_cp_reflink +_require_test TESTDIR1=$TEST_DIR/test-$seq rm -rf $TESTDIR1 diff --git a/tests/btrfs/027 b/tests/btrfs/027 index d615efd..d2b812b 100644 --- a/tests/btrfs/027 +++ b/tests/btrfs/027 @@ -50,6 +50,7 @@ _supported_os Linux _require_xfs_io_command "fiemap" _require_cp_reflink +_require_test TESTDIR1=$TEST_DIR/test-$seq rm -rf $TESTDIR1 diff --git a/tests/btrfs/028 b/tests/btrfs/028 index 50cffd3..7193337 100644 --- a/tests/btrfs/028 +++ b/tests/btrfs/028 @@ -48,6 +48,7 @@ _supported_os Linux _require_xfs_io_command "fiemap" _require_cp_reflink +_require_test rm -f $seqres.full diff --git a/tests/btrfs/029 b/tests/btrfs/029 index 80c05e3..0b77b33 100644 --- a/tests/btrfs/029 +++ b/tests/btrfs/029 @@ -52,6 +52,7 @@ _cleanup() _supported_fs btrfs _supported_os Linux +_require_test _require_scratch _require_cp_reflink diff --git a/tests/btrfs/031 b/tests/btrfs/031 index e158a57..bcd332c 100644 --- a/tests/btrfs/031 +++ b/tests/btrfs/031 @@ -53,6 +53,7 @@ _cleanup() _supported_fs btrfs _supported_os Linux +_require_test _require_scratch _require_cp_reflink diff --git a/tests/btrfs/041 b/tests/btrfs/041 index b86e2f5..9639787 100755 --- a/tests/btrfs/041 +++ b/tests/btrfs/041 @@ -51,6 +51,7 @@ _cleanup() # real QA test starts here _supported_fs btrfs _supported_os Linux +_require_test _require_scratch _need_to_be_root diff --git a/tests/btrfs/046 b/tests/btrfs/046 index c0d10e1..288fb7f 100644 --- a/tests/btrfs/046 +++ b/tests/btrfs/046 @@ -51,6 +51,7 @@ _cleanup() # real QA test starts here _supported_fs btrfs _supported_os Linux +_require_test _require_scratch _require_fssum _need_to_be_root diff --git a/tests/btrfs/047 b/tests/btrfs/047 index 8b20e79..2c50bf6 100755 --- a/tests/btrfs/047 +++ b/tests/btrfs/047 @@ -57,6 +57,7 @@ _cleanup() # real QA test starts here _supported_fs btrfs _supported_os Linux +_require_test _require_scratch _require_fssum _require_xfs_io_command "fiemap" diff --git a/tests/btrfs/048 b/tests/btrfs/048 index 2a9bfc3..dc7386d 100755 --- a/tests/btrfs/048 +++ b/tests/btrfs/048 @@ -45,6 +45,7 @@ _cleanup() # real QA test starts here _supported_fs btrfs _supported_os Linux +_require_test _require_scratch _require_btrfs "property" _need_to_be_root diff --git a/tests/btrfs/050 b/tests/btrfs/050 index 9079408..b72408a 100755 --- a/tests/btrfs/050 +++ b/tests/btrfs/050 @@ -51,6 +51,7 @@ _cleanup() # real QA test starts here _supported_fs btrfs _supported_os Linux +_require_test _require_scratch _require_fssum _need_to_be_root diff --git a/tests/btrfs/051 b/tests/btrfs/051 index deaa765..1ddfb74 100755 --- a/tests/btrfs/051 +++ b/tests/btrfs/051 @@ -48,6 +48,7 @@ _cleanup() # real QA test starts here _supported_fs btrfs _supported_os Linux +_require_test _require_scratch _require_fssum _need_to_be_root diff --git a/tests/btrfs/053 b/tests/btrfs/053 index 7eef55f..43a831c 100755 --- a/tests/btrfs/053 +++ b/tests/btrfs/053 @@ -50,6 +50,7 @@ _cleanup() # real QA test starts here _supported_fs btrfs _supported_os Linux +_require_test _require_scratch _require_fssum _require_attrs diff --git a/tests/btrfs/054 b/tests/btrfs/054 index 258eead..33241b0 100755 --- a/tests/btrfs/054 +++ b/tests/btrfs/054 @@ -58,6 +58,7 @@ _cleanup() # real QA test starts here _supported_fs btrfs _supported_os Linux +_require_test _require_scratch _need_to_be_root diff --git a/tests/ext4/001 b/tests/ext4/001 index 827d806..5409f48 100755 --- a/tests/ext4/001 +++ b/tests/ext4/001 @@ -46,6 +46,7 @@ trap "_cleanup ; exit \$status" 0 1 2 3 15 _supported_fs ext4 _supported_os Linux _require_xfs_io_command "fzero" +_require_test testfile=$TEST_DIR/001.$$ diff --git a/tests/ext4/002 b/tests/ext4/002 index 8cb3fd1..035ea7b 100755 --- a/tests/ext4/002 +++ b/tests/ext4/002 @@ -120,6 +120,7 @@ _check_ext4_eof_flag() _supported_fs ext4 _supported_os Linux _require_xfs_io_command "falloc" +_require_test # Real QA test starts here. rm -f $seqres.full diff --git a/tests/generic/001 b/tests/generic/001 index 6e5f3dd..e977a01 100755 --- a/tests/generic/001 +++ b/tests/generic/001 @@ -48,6 +48,7 @@ trap "_cleanup; rm -f $tmp.*; exit \$status" 0 1 2 3 15 # real QA test starts here _supported_fs generic _supported_os IRIX Linux +_require_test verbose=true verify=$here/verify_fill diff --git a/tests/generic/002 b/tests/generic/002 index 656d29f..f63b208 100755 --- a/tests/generic/002 +++ b/tests/generic/002 @@ -43,6 +43,7 @@ _cleanup() # real QA test starts here _supported_fs generic _supported_os IRIX Linux +_require_test echo "Silence is goodness ..." diff --git a/tests/generic/004 b/tests/generic/004 index 23ca349..c7aa473 100755 --- a/tests/generic/004 +++ b/tests/generic/004 @@ -44,6 +44,7 @@ _cleanup() _supported_fs generic _supported_os Linux +_require_test _require_xfs_io_command "flink" testfile="${TEST_DIR}/tst-tmpfile-flink" diff --git a/tests/generic/005 b/tests/generic/005 index 544af14..d78e43f 100755 --- a/tests/generic/005 +++ b/tests/generic/005 @@ -66,6 +66,7 @@ _touch() # real QA test starts here _supported_fs generic +_require_test # IRIX UDF does not support symlinks if [ $FSTYP == 'udf' ]; then diff --git a/tests/generic/006 b/tests/generic/006 index 481e1f1..7a38dbf 100755 --- a/tests/generic/006 +++ b/tests/generic/006 @@ -54,6 +54,7 @@ _count() # real QA test starts here _supported_fs generic _supported_os IRIX Linux +_require_test mkdir $TEST_DIR/permname.$$ diff --git a/tests/generic/007 b/tests/generic/007 index abbee74..88cd6cc 100755 --- a/tests/generic/007 +++ b/tests/generic/007 @@ -48,6 +48,7 @@ _cleanup() # real QA test starts here _supported_fs generic _supported_os IRIX Linux +_require_test status=1 # default failure sourcefile=$tmp.nametest diff --git a/tests/generic/008 b/tests/generic/008 index 65e1661..9b70b28 100755 --- a/tests/generic/008 +++ b/tests/generic/008 @@ -44,6 +44,7 @@ trap "exit \$status" 0 1 2 3 15 _supported_os Linux _require_xfs_io_command "fzero" +_require_test testfile=$TEST_DIR/008.$$ diff --git a/tests/generic/009 b/tests/generic/009 index 08eafb9..7fbec34 100755 --- a/tests/generic/009 +++ b/tests/generic/009 @@ -45,6 +45,7 @@ trap "_cleanup ; exit \$status" 0 1 2 3 15 # real QA test starts here _supported_os Linux _require_xfs_io_command "fzero" +_require_test testfile=$TEST_DIR/009.$$ diff --git a/tests/generic/010 b/tests/generic/010 index 9d2e76a..ea8ea50 100755 --- a/tests/generic/010 +++ b/tests/generic/010 @@ -56,6 +56,7 @@ _filter_dbtest() # real QA test starts here _supported_fs generic _supported_os IRIX Linux +_require_test rm -f $seqres.full diff --git a/tests/generic/011 b/tests/generic/011 index bed23aa..f3c2f7c 100755 --- a/tests/generic/011 +++ b/tests/generic/011 @@ -46,6 +46,7 @@ _cleanup() # real QA test starts here _supported_fs generic _supported_os IRIX Linux +_require_test out=$TEST_DIR/dirstress.$$ diff --git a/tests/generic/012 b/tests/generic/012 index 730625b..6b1e20b 100755 --- a/tests/generic/012 +++ b/tests/generic/012 @@ -51,6 +51,7 @@ trap "_cleanup ; exit \$status" 0 1 2 3 15 _supported_fs generic _supported_os Linux +_require_test _require_xfs_io_command "fpunch" _require_xfs_io_command "falloc" _require_xfs_io_command "fiemap" diff --git a/tests/generic/013 b/tests/generic/013 index 8e76d3d..93d9904 100755 --- a/tests/generic/013 +++ b/tests/generic/013 @@ -91,6 +91,7 @@ _do_test() # real QA test starts here _supported_fs generic _supported_os IRIX Linux +_require_test rm -f $seqres.full echo "brevity is wit..." diff --git a/tests/generic/014 b/tests/generic/014 index a9c2638..7961961 100755 --- a/tests/generic/014 +++ b/tests/generic/014 @@ -45,6 +45,7 @@ _cleanup() _supported_fs generic _supported_os IRIX Linux +_require_test _require_sparse_files # ensure EOF preallocation doesn't massively extend the runtime of this test diff --git a/tests/generic/016 b/tests/generic/016 index 15a2551..b994775 100755 --- a/tests/generic/016 +++ b/tests/generic/016 @@ -51,6 +51,7 @@ trap "_cleanup ; exit \$status" 0 1 2 3 15 _supported_fs generic _supported_os Linux +_require_test _require_xfs_io_command "fpunch" _require_xfs_io_command "falloc" _require_xfs_io_command "fiemap" diff --git a/tests/generic/020 b/tests/generic/020 index a9bd17a..49230da 100755 --- a/tests/generic/020 +++ b/tests/generic/020 @@ -76,6 +76,7 @@ _attr_list() _supported_fs generic _supported_os Linux +_require_test _require_attrs rm -f $seqres.full diff --git a/tests/generic/021 b/tests/generic/021 index eb88e01..4729400 100755 --- a/tests/generic/021 +++ b/tests/generic/021 @@ -51,6 +51,7 @@ trap "_cleanup ; exit \$status" 0 1 2 3 15 _supported_fs generic _supported_os Linux +_require_test _require_xfs_io_command "fpunch" _require_xfs_io_command "falloc" _require_xfs_io_command "fiemap" diff --git a/tests/generic/022 b/tests/generic/022 index 55bf8c5..1228e51 100755 --- a/tests/generic/022 +++ b/tests/generic/022 @@ -51,6 +51,7 @@ trap "_cleanup ; exit \$status" 0 1 2 3 15 _supported_fs generic _supported_os Linux +_require_test _require_xfs_io_command "fpunch" _require_xfs_io_command "falloc" _require_xfs_io_command "fiemap" diff --git a/tests/generic/023 b/tests/generic/023 index aaf196a..114485c 100755 --- a/tests/generic/023 +++ b/tests/generic/023 @@ -43,6 +43,7 @@ _cleanup() _supported_fs generic _supported_os Linux +_require_test _requires_renameat2 # real QA test starts here diff --git a/tests/generic/024 b/tests/generic/024 index fa61169..8945191 100755 --- a/tests/generic/024 +++ b/tests/generic/024 @@ -43,6 +43,7 @@ _cleanup() _supported_fs generic _supported_os Linux +_require_test _requires_renameat2 rename_dir=$TEST_DIR/$$ diff --git a/tests/generic/025 b/tests/generic/025 index 251fffe..6b6c8ab 100755 --- a/tests/generic/025 +++ b/tests/generic/025 @@ -43,6 +43,7 @@ _cleanup() _supported_fs generic _supported_os Linux +_require_test _requires_renameat2 rename_dir=$TEST_DIR/$$ diff --git a/tests/generic/026 b/tests/generic/026 index 6dae966..ab75839 100755 --- a/tests/generic/026 +++ b/tests/generic/026 @@ -48,6 +48,7 @@ _cleanup() # real QA test starts here _supported_fs generic _supported_os Linux +_require_test _require_scratch _need_to_be_root _acl_setup_ids diff --git a/tests/generic/028 b/tests/generic/028 index eb3c799..f181d3e 100755 --- a/tests/generic/028 +++ b/tests/generic/028 @@ -50,6 +50,7 @@ _cleanup() # real QA test starts here _supported_fs generic _supported_os Linux +_require_test echo "Silence is golden" diff --git a/tests/generic/070 b/tests/generic/070 index f593d84..7591b25 100755 --- a/tests/generic/070 +++ b/tests/generic/070 @@ -47,6 +47,7 @@ _cleanup() _supported_fs generic _supported_os IRIX Linux +_require_test _require_attrs FSSTRESS_ARGS=`_scale_fsstress_args \ diff --git a/tests/generic/074 b/tests/generic/074 index 668132e..df85d66 100755 --- a/tests/generic/074 +++ b/tests/generic/074 @@ -110,6 +110,7 @@ rm -f $seqres.full _supported_fs generic _supported_os IRIX Linux +_require_test # # set params diff --git a/tests/generic/075 b/tests/generic/075 index af4f34b..a2411c6 100755 --- a/tests/generic/075 +++ b/tests/generic/075 @@ -123,6 +123,7 @@ _process_args() # real QA test starts here _supported_fs generic _supported_os IRIX Linux +_require_test size10=`expr 10 \* 1024 \* 1024` # 10 megabytes filelen=$size10 diff --git a/tests/generic/088 b/tests/generic/088 index fce6489..983de98 100755 --- a/tests/generic/088 +++ b/tests/generic/088 @@ -48,6 +48,7 @@ _link_out_file $seq.out $seqfull.out # real QA test starts here _supported_fs generic _supported_os IRIX Linux +_require_test path=$TEST_DIR/t_access src/t_access_root $path | tee $seqres.full | _filter diff --git a/tests/generic/089 b/tests/generic/089 index fdddad4..4324f83 100755 --- a/tests/generic/089 +++ b/tests/generic/089 @@ -51,6 +51,7 @@ addentries() # real QA test starts here _supported_fs generic _supported_os Linux +_require_test rm -f $seqres.full [ "X$TEST_DIR" = "X" ] && exit 1 diff --git a/tests/generic/091 b/tests/generic/091 index e7b60fe..3775016 100755 --- a/tests/generic/091 +++ b/tests/generic/091 @@ -38,6 +38,7 @@ trap "rm -f $tmp.*; exit \$status" 0 1 2 3 15 # real QA test starts here _supported_fs generic _supported_os Linux +_require_test rm -f $seqres.full diff --git a/tests/generic/093 b/tests/generic/093 index fe20f38..8f810a6 100755 --- a/tests/generic/093 +++ b/tests/generic/093 @@ -58,6 +58,7 @@ _filefilter() _supported_fs generic _supported_os IRIX +_require_test _require_attrs [ -x $runas ] || _notrun "$runas executable not found" diff --git a/tests/generic/097 b/tests/generic/097 index f40d5d5..637c73b 100755 --- a/tests/generic/097 +++ b/tests/generic/097 @@ -75,6 +75,7 @@ fi _supported_fs generic _supported_os IRIX +_require_test _require_scratch _require_attrs diff --git a/tests/generic/099 b/tests/generic/099 index 83097e9..b544fe2 100755 --- a/tests/generic/099 +++ b/tests/generic/099 @@ -80,6 +80,7 @@ rm -f $seqres.full _supported_fs generic _supported_os IRIX +_require_test _acl_setup_ids _require_acls diff --git a/tests/generic/100 b/tests/generic/100 index 00ba23e..59b8e75 100755 --- a/tests/generic/100 +++ b/tests/generic/100 @@ -44,6 +44,7 @@ _cleanup() # real QA test starts here _supported_fs generic _supported_os IRIX Linux +_require_test # Use _populate_fs() in common/rc to create a directory structure. TEMP_DIR=/tmp diff --git a/tests/generic/112 b/tests/generic/112 index 1e34d99..b59cbfa 100755 --- a/tests/generic/112 +++ b/tests/generic/112 @@ -121,6 +121,7 @@ _process_args() # real QA test starts here _supported_fs generic _supported_os Linux +_require_test [ -x $here/ltp/aio-stress ] || \ _notrun "fsx not built with AIO for this platform" diff --git a/tests/generic/113 b/tests/generic/113 index 56672f0..7208fa2 100755 --- a/tests/generic/113 +++ b/tests/generic/113 @@ -76,6 +76,7 @@ _do_test() # real QA test starts here _supported_fs generic _supported_os Linux +_require_test [ -x $here/ltp/aio-stress ] || _notrun "aio-stress not built for this platform" diff --git a/tests/generic/123 b/tests/generic/123 index 911e9d2..453ede4 100755 --- a/tests/generic/123 +++ b/tests/generic/123 @@ -48,6 +48,7 @@ _cleanup() _supported_fs generic _supported_os Linux IRIX +_require_test _require_user my_test_subdir=$TEST_DIR/123subdir diff --git a/tests/generic/124 b/tests/generic/124 index 77f6e7d..888bbc0 100755 --- a/tests/generic/124 +++ b/tests/generic/124 @@ -48,6 +48,7 @@ _cleanup() _supported_fs generic _supported_os Linux +_require_test _require_scratch _scratch_mkfs >/dev/null 2>&1 _scratch_mount diff --git a/tests/generic/125 b/tests/generic/125 index f4ffea5..bcf9b3e 100755 --- a/tests/generic/125 +++ b/tests/generic/125 @@ -39,6 +39,7 @@ trap "exit \$status" 0 1 2 3 15 _supported_fs generic _supported_os Linux +_require_test _require_user TESTDIR=$TEST_DIR/ftrunc diff --git a/tests/generic/126 b/tests/generic/126 index 1796527..a22d587 100755 --- a/tests/generic/126 +++ b/tests/generic/126 @@ -43,6 +43,7 @@ _cleanup() # real QA test starts here _supported_fs generic _supported_os Linux +_require_test QA_FS_PERMS=$here/src/fs_perms diff --git a/tests/generic/127 b/tests/generic/127 index f6b7f95..94d15b2 100755 --- a/tests/generic/127 +++ b/tests/generic/127 @@ -104,6 +104,7 @@ _fsx_std_mmap() # real QA test starts here _supported_fs generic _supported_os Linux +_require_test _fsx_lite_nommap _fsx_lite_mmap diff --git a/tests/generic/131 b/tests/generic/131 index ce3e490..b4e3ff0 100755 --- a/tests/generic/131 +++ b/tests/generic/131 @@ -44,6 +44,7 @@ _cleanup() # real QA test starts here _supported_fs generic _supported_os Linux +_require_test TESTFILE=$TEST_DIR/lock_file diff --git a/tests/generic/133 b/tests/generic/133 index 7fb1695..f1d67aa 100755 --- a/tests/generic/133 +++ b/tests/generic/133 @@ -38,6 +38,7 @@ trap "exit \$status" 0 1 2 3 15 # real QA test starts here _supported_fs generic _supported_os Linux IRIX +_require_test echo "Buffered writer, buffered reader" $XFS_IO_PROG -f -d -c 'pwrite -b 64k 0 512m' $TEST_DIR/io_test > /dev/null diff --git a/tests/generic/184 b/tests/generic/184 index dcc8b4e..d7c0eb9 100755 --- a/tests/generic/184 +++ b/tests/generic/184 @@ -44,6 +44,7 @@ _cleanup() # real QA test starts here _supported_fs generic _supported_os IRIX Linux +_require_test rm -f $TEST_DIR/null mknod $TEST_DIR/null c 1 3 diff --git a/tests/generic/192 b/tests/generic/192 index 2b4e41c..f630be9 100755 --- a/tests/generic/192 +++ b/tests/generic/192 @@ -53,6 +53,7 @@ is_noatime_set() { _supported_fs generic _supported_os Linux +_require_test #delay=150 #delay=75 #delay=60 diff --git a/tests/generic/193 b/tests/generic/193 index 4fa20ff..cd3c0b0 100755 --- a/tests/generic/193 +++ b/tests/generic/193 @@ -70,6 +70,7 @@ _filter_files() _supported_fs generic _supported_os Linux +_require_test _require_user _need_to_be_root diff --git a/tests/generic/198 b/tests/generic/198 index 5190d34..5978f54 100755 --- a/tests/generic/198 +++ b/tests/generic/198 @@ -44,6 +44,7 @@ _cleanup() _supported_fs generic _supported_os Linux _require_aiodio aiodio_sparse2 +_require_test echo "Silence is golden." diff --git a/tests/generic/207 b/tests/generic/207 index 0709061..8f22c55 100755 --- a/tests/generic/207 +++ b/tests/generic/207 @@ -44,6 +44,7 @@ _cleanup() _supported_fs generic _supported_os Linux +_require_test _run_aiodio aio-dio-extend-stat diff --git a/tests/generic/208 b/tests/generic/208 index 58d1d08..f57e2bc 100755 --- a/tests/generic/208 +++ b/tests/generic/208 @@ -44,6 +44,7 @@ _cleanup() _supported_fs generic _supported_os Linux +_require_test rm -f $seqres.full diff --git a/tests/generic/209 b/tests/generic/209 index 2abafcf..aface56 100755 --- a/tests/generic/209 +++ b/tests/generic/209 @@ -44,6 +44,7 @@ _cleanup() _supported_fs generic _supported_os Linux +_require_test _run_aiodio aio-dio-invalidate-readahead diff --git a/tests/generic/210 b/tests/generic/210 index ebeb137..6abd3b4 100755 --- a/tests/generic/210 +++ b/tests/generic/210 @@ -44,6 +44,7 @@ _cleanup() _supported_fs generic _supported_os Linux +_require_test _run_aiodio aio-dio-subblock-eof-read diff --git a/tests/generic/211 b/tests/generic/211 index d1110f5..e0afeff 100755 --- a/tests/generic/211 +++ b/tests/generic/211 @@ -44,6 +44,7 @@ _cleanup() _supported_fs generic _supported_os Linux +_require_test _run_aiodio aio-free-ring-with-bogus-nr-pages diff --git a/tests/generic/212 b/tests/generic/212 index 23ceae0..e3b2dad 100755 --- a/tests/generic/212 +++ b/tests/generic/212 @@ -45,6 +45,7 @@ _cleanup() _supported_fs generic _supported_os Linux +_require_test _run_aiodio aio-io-setup-with-nonwritable-context-pointer diff --git a/tests/generic/213 b/tests/generic/213 index c99520f..609fcf1 100755 --- a/tests/generic/213 +++ b/tests/generic/213 @@ -54,6 +54,7 @@ _supported_os Linux rm -f $seqres.full +_require_test _require_xfs_io_command "falloc" # check there's enough freespace on $TEST_DIR ... (1GiB + 1MiB) diff --git a/tests/generic/214 b/tests/generic/214 index 444c1fe..dff267e 100755 --- a/tests/generic/214 +++ b/tests/generic/214 @@ -47,6 +47,7 @@ trap "_cleanup; exit \$status" 0 1 2 3 15 _supported_fs generic # only Linux supports fallocate _supported_os Linux +_require_test [ -n "$XFS_IO_PROG" ] || _notrun "xfs_io executable not found" diff --git a/tests/generic/215 b/tests/generic/215 index eaae8d8..6ddd1fc 100755 --- a/tests/generic/215 +++ b/tests/generic/215 @@ -45,6 +45,7 @@ trap "_cleanup; exit \$status" 0 1 2 3 15 # real QA test starts here _supported_fs generic _supported_os Linux +_require_test testfile=$TEST_DIR/tst.mmap diff --git a/tests/generic/221 b/tests/generic/221 index e7d4740..aa42f65 100755 --- a/tests/generic/221 +++ b/tests/generic/221 @@ -39,6 +39,7 @@ status=1 # failure is the default! # real QA test starts here _supported_fs generic _supported_os Linux +_require_test echo "Silence is golden." diff --git a/tests/generic/228 b/tests/generic/228 index 7ac0872..1856dec 100755 --- a/tests/generic/228 +++ b/tests/generic/228 @@ -47,6 +47,7 @@ trap "_cleanup; exit \$status" 0 1 2 3 15 25 _supported_fs generic # only Linux supports fallocate _supported_os Linux +_require_test [ -n "$XFS_IO_PROG" ] || _notrun "xfs_io executable not found" diff --git a/tests/generic/236 b/tests/generic/236 index 10cf71a..12ea0bc 100755 --- a/tests/generic/236 +++ b/tests/generic/236 @@ -43,6 +43,7 @@ trap "_cleanup; exit \$status" 0 1 2 3 15 _supported_fs generic # only Linux supports fallocate _supported_os Linux +_require_test rm -f $TEST_DIR/ouch* diff --git a/tests/generic/237 b/tests/generic/237 index 6a61ec8..ff11ed3 100755 --- a/tests/generic/237 +++ b/tests/generic/237 @@ -49,6 +49,7 @@ _cleanup() _supported_fs generic # only Linux supports fallocate _supported_os Linux +_require_test [ -x $runas ] || _notrun "$runas executable not found" diff --git a/tests/generic/239 b/tests/generic/239 index bf39953..4f764c2 100755 --- a/tests/generic/239 +++ b/tests/generic/239 @@ -44,6 +44,7 @@ _cleanup() _supported_fs generic _supported_os Linux +_require_test _require_sparse_files _require_aiodio aio-dio-hole-filling-race diff --git a/tests/generic/240 b/tests/generic/240 index 44ba0d3..e32f15a 100755 --- a/tests/generic/240 +++ b/tests/generic/240 @@ -50,6 +50,7 @@ _cleanup() _supported_fs generic _supported_os Linux +_require_test _require_sparse_files _require_aiodio aiodio_sparse2 diff --git a/tests/generic/241 b/tests/generic/241 index 7c3f6e8..b45f5e9 100755 --- a/tests/generic/241 +++ b/tests/generic/241 @@ -42,6 +42,7 @@ _cleanup() _supported_fs generic _supported_os Linux +_require_test [ "$DBENCH_PROG" = "" ] && _notrun "dbench not found" diff --git a/tests/generic/245 b/tests/generic/245 index 9b87fbb..4034d04 100755 --- a/tests/generic/245 +++ b/tests/generic/245 @@ -39,6 +39,7 @@ status=1 # failure is the default! # real QA test starts here _supported_fs generic _supported_os Linux +_require_test dir=$TEST_DIR/test-mv diff --git a/tests/generic/246 b/tests/generic/246 index dd809fb..4184cfc 100755 --- a/tests/generic/246 +++ b/tests/generic/246 @@ -40,6 +40,7 @@ status=1 # failure is the default! # real QA test starts here _supported_fs generic _supported_os Linux +_require_test file=$TEST_DIR/mmap-writev diff --git a/tests/generic/247 b/tests/generic/247 index 5f16281..c8648a2 100755 --- a/tests/generic/247 +++ b/tests/generic/247 @@ -46,6 +46,7 @@ _cleanup() # Modify as appropriate. _supported_fs generic _supported_os Linux +_require_test testfile=$TEST_DIR/$seq.$$ diff --git a/tests/generic/248 b/tests/generic/248 index 873313d..f47d47f 100755 --- a/tests/generic/248 +++ b/tests/generic/248 @@ -46,6 +46,7 @@ _cleanup() # Modify as appropriate. _supported_fs generic _supported_os Linux +_require_test TESTFILE=$TEST_DIR/test_file TEST_PROG=$here/src/pwrite_mmap_blocked diff --git a/tests/generic/249 b/tests/generic/249 index 306e820..d8b4df4 100755 --- a/tests/generic/249 +++ b/tests/generic/249 @@ -44,6 +44,7 @@ _cleanup() # real QA test starts here _supported_fs generic _supported_os Linux +_require_test echo "Feel the serenity." diff --git a/tests/generic/255 b/tests/generic/255 index 8419065..14de49e 100755 --- a/tests/generic/255 +++ b/tests/generic/255 @@ -46,6 +46,7 @@ trap "_cleanup ; exit \$status" 0 1 2 3 15 _supported_fs generic _supported_os Linux +_require_test _require_xfs_io_command "fpunch" _require_xfs_io_command "falloc" _require_xfs_io_command "fiemap" diff --git a/tests/generic/256 b/tests/generic/256 index 92c4f30..086c00a 100755 --- a/tests/generic/256 +++ b/tests/generic/256 @@ -49,6 +49,7 @@ _supported_os Linux _require_xfs_io_command "fpunch" _require_scratch _require_user +_require_test testfile=$TEST_DIR/256.$$ diff --git a/tests/generic/257 b/tests/generic/257 index a9ce73b..64f2100 100755 --- a/tests/generic/257 +++ b/tests/generic/257 @@ -42,6 +42,7 @@ trap "_cleanup; exit \$status" 0 1 2 3 15 # real QA test starts here _supported_fs generic _supported_os Linux +_require_test mkdir $TEST_DIR/ttt for n in {1..168}; do diff --git a/tests/generic/258 b/tests/generic/258 index 3aeb5ce..b9b5cf9 100755 --- a/tests/generic/258 +++ b/tests/generic/258 @@ -45,6 +45,7 @@ trap "_cleanup ; exit \$status" 0 1 2 3 15 # real QA test starts here _supported_fs generic _supported_os Linux +_require_test TESTFILE=$TEST_DIR/timestamp-test.txt diff --git a/tests/generic/263 b/tests/generic/263 index 6ecb74d..6ee2165 100755 --- a/tests/generic/263 +++ b/tests/generic/263 @@ -38,6 +38,7 @@ trap "rm -f $tmp.*; exit \$status" 0 1 2 3 15 # real QA test starts here _supported_fs generic _supported_os Linux +_require_test rm -f $seqres.full diff --git a/tests/generic/285 b/tests/generic/285 index ac34d34..d6275b5 100755 --- a/tests/generic/285 +++ b/tests/generic/285 @@ -40,6 +40,7 @@ trap "_cleanup; exit \$status" 0 1 2 3 15 _supported_fs generic _supported_os Linux +_require_test _require_seek_data_hole BASE_TEST_FILE=$TEST_DIR/seek_sanity_testfile diff --git a/tests/generic/286 b/tests/generic/286 index f4fe39a..94c22c6 100755 --- a/tests/generic/286 +++ b/tests/generic/286 @@ -38,6 +38,7 @@ trap "_cleanup; exit \$status" 0 1 2 3 15 _supported_fs generic _supported_os Linux +_require_test _require_seek_data_hole src=$TEST_DIR/seek_copy_testfile diff --git a/tests/generic/306 b/tests/generic/306 index 04d28df..64d8cde 100755 --- a/tests/generic/306 +++ b/tests/generic/306 @@ -47,6 +47,7 @@ _cleanup() _supported_fs generic _supported_os Linux _require_scratch +_require_test DEVNULL=$SCRATCH_MNT/devnull DEVZERO=$SCRATCH_MNT/devzero diff --git a/tests/generic/308 b/tests/generic/308 index 5646486..e639da1 100755 --- a/tests/generic/308 +++ b/tests/generic/308 @@ -44,6 +44,7 @@ testfile=$TEST_DIR/testfile.$seq # real QA test starts here _supported_fs generic _supported_os Linux +_require_test rm -f $seqres.full echo "Silence is golden" diff --git a/tests/generic/309 b/tests/generic/309 index cbaf307..c6b89db 100755 --- a/tests/generic/309 +++ b/tests/generic/309 @@ -46,6 +46,7 @@ _cleanup() # real QA test starts here _supported_fs generic _supported_os IRIX Linux +_require_test echo "Silence is golden" diff --git a/tests/generic/310 b/tests/generic/310 index 26d2d4a..9d46e87 100755 --- a/tests/generic/310 +++ b/tests/generic/310 @@ -57,6 +57,7 @@ trap "_cleanup; exit \$status" 0 1 2 3 15 # real QA test starts here _supported_fs generic _supported_os Linux +_require_test dmesg -c > /dev/null diff --git a/tests/generic/313 b/tests/generic/313 index 623c777..a906926 100755 --- a/tests/generic/313 +++ b/tests/generic/313 @@ -45,6 +45,7 @@ _cleanup() # real QA test starts here _supported_fs generic _supported_os IRIX Linux +_require_test testfile=$TEST_DIR/testfile.$seq diff --git a/tests/generic/314 b/tests/generic/314 index f430b82..294fb23 100755 --- a/tests/generic/314 +++ b/tests/generic/314 @@ -43,6 +43,7 @@ _cleanup() # real QA test starts here _supported_fs generic +_require_test _require_acls _require_user _need_to_be_root diff --git a/tests/generic/315 b/tests/generic/315 index 9c01b5e..62fdc01 100755 --- a/tests/generic/315 +++ b/tests/generic/315 @@ -48,6 +48,7 @@ _cleanup() # Modify as appropriate. _supported_fs generic _supported_os Linux +_require_test rm -f $seqres.full diff --git a/tests/generic/316 b/tests/generic/316 index 29a4331..0ccf01f 100755 --- a/tests/generic/316 +++ b/tests/generic/316 @@ -45,6 +45,7 @@ _cleanup() _supported_fs generic _supported_os Linux +_require_test _require_xfs_io_command "fpunch" _require_xfs_io_command "fiemap" diff --git a/tests/shared/051 b/tests/shared/051 index 2b61f45..44dfd64 100755 --- a/tests/shared/051 +++ b/tests/shared/051 @@ -70,6 +70,7 @@ _cleanup() # real QA test starts here _supported_fs xfs udf _supported_os Linux +_require_test [ -x $runas ] || _notrun "$runas executable not found" diff --git a/tests/shared/298 b/tests/shared/298 index c1a6316..c12e889 100755 --- a/tests/shared/298 +++ b/tests/shared/298 @@ -32,6 +32,7 @@ trap "_cleanup; exit \$status" 0 1 2 3 15 _supported_fs ext4 xfs _supported_os Linux +_require_test _require_loop _require_fstrim _require_xfs_io_command "fiemap" diff --git a/tests/xfs/003 b/tests/xfs/003 index 228dd17..2eed40f 100755 --- a/tests/xfs/003 +++ b/tests/xfs/003 @@ -40,6 +40,7 @@ _need_to_be_root # real QA test starts here _supported_fs xfs _supported_os IRIX Linux +_require_test [ -f core ] && rm -f core [ -f core ] && echo "Warning: can't nuke existing core file!" diff --git a/tests/xfs/008 b/tests/xfs/008 index 56be923..9f22087 100755 --- a/tests/xfs/008 +++ b/tests/xfs/008 @@ -87,6 +87,7 @@ _do_test() # real QA test starts here _supported_fs xfs _supported_os IRIX Linux +_require_test rm -f $seqres.full diff --git a/tests/xfs/012 b/tests/xfs/012 index 4127222..7b9a54d 100755 --- a/tests/xfs/012 +++ b/tests/xfs/012 @@ -104,6 +104,7 @@ _do_test() # real QA test starts here _supported_fs xfs _supported_os IRIX Linux +_require_test rm -f $seqres.full diff --git a/tests/xfs/045 b/tests/xfs/045 index 84ca802..31516b3 100755 --- a/tests/xfs/045 +++ b/tests/xfs/045 @@ -44,6 +44,7 @@ _get_existing_uuid() _supported_fs xfs _supported_os Linux +_require_test _require_scratch echo "*** get uuid" diff --git a/tests/xfs/048 b/tests/xfs/048 index f9fb16f..3dd685f 100755 --- a/tests/xfs/048 +++ b/tests/xfs/048 @@ -44,6 +44,7 @@ _cleanup() # real QA test starts here _supported_fs xfs _supported_os IRIX Linux +_require_test src/fault $TEST_DIR || exit diff --git a/tests/xfs/066 b/tests/xfs/066 index db29249..736439b 100755 --- a/tests/xfs/066 +++ b/tests/xfs/066 @@ -45,6 +45,7 @@ _cleanup() # real QA test starts here _supported_fs xfs _supported_os IRIX Linux +_require_test _my_stat_filter() { diff --git a/tests/xfs/073 b/tests/xfs/073 index ca553ae..f955771 100755 --- a/tests/xfs/073 +++ b/tests/xfs/073 @@ -126,6 +126,7 @@ _verify_copy() # real QA test starts here _supported_fs xfs _supported_os Linux +_require_test [ "$USE_EXTERNAL" = yes ] && _notrun "Cannot xfs_copy with external devices" [ -n "$XFS_COPY_PROG" ] || _notrun "xfs_copy binary not yet installed" diff --git a/tests/xfs/078 b/tests/xfs/078 index e04c6cc..f859efc 100755 --- a/tests/xfs/078 +++ b/tests/xfs/078 @@ -48,6 +48,7 @@ _cleanup() _supported_fs xfs _supported_os Linux +_require_test # Must have loop device _require_loop diff --git a/tests/xfs/080 b/tests/xfs/080 index 59c6104..e0f5b1b 100755 --- a/tests/xfs/080 +++ b/tests/xfs/080 @@ -46,6 +46,7 @@ _supported_fs xfs # Apparently should be able to work on IRIX, # but not at the moment. _supported_os Linux +_require_test quiet=-q clean=-c diff --git a/tests/xfs/084 b/tests/xfs/084 index 0d17cf3..7aa193b 100755 --- a/tests/xfs/084 +++ b/tests/xfs/084 @@ -51,6 +51,7 @@ pgsize=`$here/src/feature -s` # real QA test starts here _supported_fs xfs _supported_os IRIX Linux +_require_test if [ $HOSTOS == "IRIX" ]; then if uname -R | grep -iq debug; then diff --git a/tests/xfs/134 b/tests/xfs/134 index 6f092f2..adafa39 100755 --- a/tests/xfs/134 +++ b/tests/xfs/134 @@ -48,6 +48,7 @@ trap "_cleanup; exit \$status" 0 1 2 3 15 _supported_fs xfs _supported_os Linux IRIX +_require_test _require_xfs_quota dir=$SCRATCH_MNT/project diff --git a/tests/xfs/164 b/tests/xfs/164 index 33a038f..404c208 100755 --- a/tests/xfs/164 +++ b/tests/xfs/164 @@ -67,6 +67,7 @@ _filter_bmap() # Modify as appropriate. _supported_fs xfs _supported_os IRIX Linux +_require_test testfile=$TEST_DIR/file.$seq diff --git a/tests/xfs/165 b/tests/xfs/165 index bc882da..4080a88 100755 --- a/tests/xfs/165 +++ b/tests/xfs/165 @@ -64,6 +64,7 @@ _filter_bmap() # Modify as appropriate. _supported_fs xfs _supported_os IRIX Linux +_require_test # io tests testfile=$TEST_DIR/file.$seq diff --git a/tests/xfs/195 b/tests/xfs/195 index d67ce9f..6abddbc 100755 --- a/tests/xfs/195 +++ b/tests/xfs/195 @@ -63,6 +63,7 @@ _do_dump() _supported_fs xfs _supported_os Linux +_require_test _require_user echo "Preparing subtree" diff --git a/tests/xfs/197 b/tests/xfs/197 index bc2de9d..7706e03 100755 --- a/tests/xfs/197 +++ b/tests/xfs/197 @@ -48,6 +48,7 @@ trap "_cleanup; exit \$status" 0 1 2 3 15 # real QA test starts here _supported_fs xfs _supported_os Linux +_require_test bitsperlong=`src/feature -w` if [ "$bitsperlong" -ne 32 ]; then diff --git a/tests/xfs/206 b/tests/xfs/206 index f739597..f6dcca6 100755 --- a/tests/xfs/206 +++ b/tests/xfs/206 @@ -53,6 +53,7 @@ _cleanup() # Modify as appropriate. _supported_fs xfs _supported_os IRIX Linux +_require_test _require_loop bitsperlong=`src/feature -w` diff --git a/tests/xfs/222 b/tests/xfs/222 index 0e5aaf6..77ecfc6 100755 --- a/tests/xfs/222 +++ b/tests/xfs/222 @@ -47,6 +47,7 @@ trap "_cleanup ; exit \$status" 0 1 2 3 15 # real QA test starts here _supported_fs xfs _supported_os Linux +_require_test [ "$XFS_FSR_PROG" = "" ] && _notrun "xfs_fsr not found" diff --git a/tests/xfs/229 b/tests/xfs/229 index 3e02421..c057677 100755 --- a/tests/xfs/229 +++ b/tests/xfs/229 @@ -49,6 +49,7 @@ trap "_cleanup ; exit \$status" 0 1 2 3 15 # real QA test starts here _supported_fs xfs _supported_os Linux +_require_test TDIR="${TEST_DIR}/t_holes" NFILES="10" diff --git a/tests/xfs/242 b/tests/xfs/242 index 24a572a..304e69f 100755 --- a/tests/xfs/242 +++ b/tests/xfs/242 @@ -45,6 +45,7 @@ trap "_cleanup ; exit \$status" 0 1 2 3 15 # real QA test starts here _supported_fs xfs _supported_os Linux +_require_test _test_io_zero() { diff --git a/tests/xfs/250 b/tests/xfs/250 index 3b67c3f..c1622a4 100755 --- a/tests/xfs/250 +++ b/tests/xfs/250 @@ -45,6 +45,7 @@ _cleanup() # real QA test starts here _supported_fs xfs _supported_os Linux +_require_test _require_loop LOOP_DEV=$TEST_DIR/$seq.fs diff --git a/tests/xfs/252 b/tests/xfs/252 index b2c4c08..ddafda6 100755 --- a/tests/xfs/252 +++ b/tests/xfs/252 @@ -46,6 +46,7 @@ trap "_cleanup ; exit \$status" 0 1 2 3 15 _supported_fs xfs _supported_os Linux +_require_test _require_xfs_io_command "fpunch" _require_xfs_io_command "fiemap" diff --git a/tests/xfs/253 b/tests/xfs/253 index 4119794..91eb041 100755 --- a/tests/xfs/253 +++ b/tests/xfs/253 @@ -53,6 +53,7 @@ _cleanup() . ./common/rc . ./common/filter +_require_test _require_scratch # real QA test starts here diff --git a/tests/xfs/259 b/tests/xfs/259 index 8241d94..6587a65 100755 --- a/tests/xfs/259 +++ b/tests/xfs/259 @@ -41,6 +41,7 @@ trap "_cleanup ; exit \$status" 0 1 2 3 15 # real QA test starts here _supported_fs xfs _supported_os Linux +_require_test _require_loop _require_math diff --git a/tests/xfs/290 b/tests/xfs/290 index 55322ec..adc398f 100755 --- a/tests/xfs/290 +++ b/tests/xfs/290 @@ -46,6 +46,7 @@ trap "exit \$status" 0 1 2 3 15 _supported_fs xfs _supported_os Linux +_require_test _require_xfs_io_command "zero" testfile=$TEST_DIR/290.$$ diff --git a/tests/xfs/292 b/tests/xfs/292 index 2910118..44aaef7 100755 --- a/tests/xfs/292 +++ b/tests/xfs/292 @@ -46,6 +46,7 @@ _cleanup() # Modify as appropriate. _supported_fs xfs _supported_os IRIX Linux +_require_test fsfile=$TEST_DIR/fsfile.$seq -- 1.8.3.1 From BATV+34dcbea03536f6a26cde+3978+infradead.org+hch@bombadil.srs.infradead.org Tue Jul 15 05:13:49 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: xfs@oss.sgi.com Delivered-To: xfs@oss.sgi.com Received: from relay.sgi.com (relay1.corp.sgi.com [137.38.102.111]) by oss.sgi.com (Postfix) with ESMTP id 076397F7E for ; Tue, 15 Jul 2014 05:13:49 -0500 (CDT) Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by relay1.corp.sgi.com (Postfix) with ESMTP id EECB38F804C for ; Tue, 15 Jul 2014 03:13:45 -0700 (PDT) X-ASG-Debug-ID: 1405419220-04bdf03569f28b0001-NocioJ Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.9]) by cuda.sgi.com with ESMTP id ItFQbTC4VkqbLnHc (version=TLSv1 cipher=AES256-SHA bits=256 verify=NO) for ; Tue, 15 Jul 2014 03:13:40 -0700 (PDT) X-Barracuda-Envelope-From: BATV+34dcbea03536f6a26cde+3978+infradead.org+hch@bombadil.srs.infradead.org X-Barracuda-Apparent-Source-IP: 198.137.202.9 Received: from hch by bombadil.infradead.org with local (Exim 4.80.1 #2 (Red Hat Linux)) id 1X6zju-00085c-UY; Tue, 15 Jul 2014 10:13:38 +0000 Date: Tue, 15 Jul 2014 03:13:38 -0700 From: Christoph Hellwig To: Eric Sandeen Cc: Eric Sandeen , xfs-oss Subject: Re: [PATCH V3] xfsprogs: libxcmd/paths: make all comparisons using realpath'd paths Message-ID: <20140715101338.GA30363@infradead.org> X-ASG-Orig-Subj: Re: [PATCH V3] xfsprogs: libxcmd/paths: make all comparisons using realpath'd paths References: <53C09034.3070203@redhat.com> <53C090A0.9050403@sandeen.net> <53C449D2.6090008@sandeen.net> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <53C449D2.6090008@sandeen.net> User-Agent: Mutt/1.5.23 (2014-03-12) X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: bombadil.infradead.org[198.137.202.9] X-Barracuda-Start-Time: 1405419220 X-Barracuda-Encrypted: AES256-SHA X-Barracuda-URL: http://192.48.157.11:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 X-Barracuda-Spam-Score: 0.00 X-Barracuda-Spam-Status: No, SCORE=0.00 using per-user scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.7 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.7515 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- Looks good, Reviewed-by: Christoph Hellwig Can you also create a testcase for it? Should be simple enough by creating symlinks for the scratch device and mount and testing the quota tool on it. From BATV+34dcbea03536f6a26cde+3978+infradead.org+hch@bombadil.srs.infradead.org Tue Jul 15 05:14:42 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: xfs@oss.sgi.com Delivered-To: xfs@oss.sgi.com Received: from relay.sgi.com (relay2.corp.sgi.com [137.38.102.29]) by oss.sgi.com (Postfix) with ESMTP id 6A0C37F85 for ; Tue, 15 Jul 2014 05:14:42 -0500 (CDT) Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by relay2.corp.sgi.com (Postfix) with ESMTP id 5544F304043 for ; Tue, 15 Jul 2014 03:14:39 -0700 (PDT) X-ASG-Debug-ID: 1405419278-04bdf03568f2950001-NocioJ Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.9]) by cuda.sgi.com with ESMTP id 1glaGuflpA2wwDoQ (version=TLSv1 cipher=AES256-SHA bits=256 verify=NO) for ; Tue, 15 Jul 2014 03:14:38 -0700 (PDT) X-Barracuda-Envelope-From: BATV+34dcbea03536f6a26cde+3978+infradead.org+hch@bombadil.srs.infradead.org X-Barracuda-Apparent-Source-IP: 198.137.202.9 Received: from hch by bombadil.infradead.org with local (Exim 4.80.1 #2 (Red Hat Linux)) id 1X6zkr-0008Aa-16; Tue, 15 Jul 2014 10:14:37 +0000 Date: Tue, 15 Jul 2014 03:14:37 -0700 From: Christoph Hellwig To: Eric Sandeen Cc: Jeff Liu , "xfs@oss.sgi.com" Subject: Re: [PATCH] xfsprogs/quota: fix NULL pointer dereference in report_f Message-ID: <20140715101437.GB30363@infradead.org> X-ASG-Orig-Subj: Re: [PATCH] xfsprogs/quota: fix NULL pointer dereference in report_f References: <52849CC5.10109@oracle.com> <53C091E1.1010907@sandeen.net> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <53C091E1.1010907@sandeen.net> User-Agent: Mutt/1.5.23 (2014-03-12) X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: bombadil.infradead.org[198.137.202.9] X-Barracuda-Start-Time: 1405419278 X-Barracuda-Encrypted: AES256-SHA X-Barracuda-URL: http://192.48.157.11:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 X-Barracuda-Spam-Score: 0.00 X-Barracuda-Spam-Status: No, SCORE=0.00 using per-user scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.7 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.7515 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- On Fri, Jul 11, 2014 at 08:39:45PM -0500, Eric Sandeen wrote: > > Signed-off-by: Jie Liu > > Reviewed-by: Eric Sandeen > > I know hch had grand plans to make this all nicer, but based on Jeff's > followup emails, it looks like this is the only spot needed to simply > resolve the problems w/ nonexistent paths in quota, and is a small, > contained change we can easily make before the next point release. Didn't I say I'm fine with putting this in earlier even if I'd prefer a grand solution? either way, consider this: Reviewed-by: Christoph Hellwig From BATV+34dcbea03536f6a26cde+3978+infradead.org+hch@bombadil.srs.infradead.org Tue Jul 15 05:19:33 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: xfs@oss.sgi.com Delivered-To: xfs@oss.sgi.com Received: from relay.sgi.com (relay2.corp.sgi.com [137.38.102.29]) by oss.sgi.com (Postfix) with ESMTP id E2EAF7F85 for ; Tue, 15 Jul 2014 05:19:33 -0500 (CDT) Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by relay2.corp.sgi.com (Postfix) with ESMTP id CC225304043 for ; Tue, 15 Jul 2014 03:19:33 -0700 (PDT) X-ASG-Debug-ID: 1405419571-04bdf03568f2bb0001-NocioJ Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.9]) by cuda.sgi.com with ESMTP id 5rBMkMwhIPZJ8XDN (version=TLSv1 cipher=AES256-SHA bits=256 verify=NO) for ; Tue, 15 Jul 2014 03:19:31 -0700 (PDT) X-Barracuda-Envelope-From: BATV+34dcbea03536f6a26cde+3978+infradead.org+hch@bombadil.srs.infradead.org X-Barracuda-Apparent-Source-IP: 198.137.202.9 Received: from hch by bombadil.infradead.org with local (Exim 4.80.1 #2 (Red Hat Linux)) id 1X6zpb-0001SZ-6j; Tue, 15 Jul 2014 10:19:31 +0000 Date: Tue, 15 Jul 2014 03:19:31 -0700 From: Christoph Hellwig To: Jan Kara Cc: xfs@oss.sgi.com Subject: Re: [PATCH] logprint: Fix printing of AGF buffers Message-ID: <20140715101931.GC30363@infradead.org> X-ASG-Orig-Subj: Re: [PATCH] logprint: Fix printing of AGF buffers References: <1405349100-19734-1-git-send-email-jack@suse.cz> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1405349100-19734-1-git-send-email-jack@suse.cz> User-Agent: Mutt/1.5.23 (2014-03-12) X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: bombadil.infradead.org[198.137.202.9] X-Barracuda-Start-Time: 1405419571 X-Barracuda-Encrypted: AES256-SHA X-Barracuda-URL: http://192.48.157.11:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 X-Barracuda-Spam-Score: 0.00 X-Barracuda-Spam-Status: No, SCORE=0.00 using per-user scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.7 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.7515 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- On Mon, Jul 14, 2014 at 04:45:00PM +0200, Jan Kara wrote: > Currently xfs_logprint doesn't show detailed data about AGF buffers and > instead always shows "Out of space". This is because xfs_agf_t has > additional fields and padding which we never read from disk and thus > buffer length is always smaller than the size of xfs_agf_t. > > Fix the problem by only making sure we have enough data in the buffer > to contain all the information we want to print. The fix looks correct to me, but te explanation should be more verbose: the reason why we don't read agf_uuid and above is because you're probably dumping a v4 filesystems which doesn't even have those fields. Its seems like various other fields have the same issue in logprint, and I also suspect we want some defines for the v4 size instead of using the offsetoff tricks. From BATV+34dcbea03536f6a26cde+3978+infradead.org+hch@bombadil.srs.infradead.org Tue Jul 15 05:20:02 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: xfs@oss.sgi.com Delivered-To: xfs@oss.sgi.com Received: from relay.sgi.com (relay1.corp.sgi.com [137.38.102.111]) by oss.sgi.com (Postfix) with ESMTP id 5D0647F92 for ; Tue, 15 Jul 2014 05:20:02 -0500 (CDT) Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by relay1.corp.sgi.com (Postfix) with ESMTP id 5B8708F804C for ; Tue, 15 Jul 2014 03:20:02 -0700 (PDT) X-ASG-Debug-ID: 1405419600-04cbb0421cf43d0001-NocioJ Received: from bombadil.infradead.org ([198.137.202.9]) by cuda.sgi.com with ESMTP id oAJgTMxuwVj4LKEt (version=TLSv1 cipher=AES256-SHA bits=256 verify=NO) for ; Tue, 15 Jul 2014 03:20:01 -0700 (PDT) X-Barracuda-Envelope-From: BATV+34dcbea03536f6a26cde+3978+infradead.org+hch@bombadil.srs.infradead.org X-Barracuda-Apparent-Source-IP: 198.137.202.9 Received: from hch by bombadil.infradead.org with local (Exim 4.80.1 #2 (Red Hat Linux)) id 1X6zq4-0001Vy-SC; Tue, 15 Jul 2014 10:20:00 +0000 Date: Tue, 15 Jul 2014 03:20:00 -0700 From: Christoph Hellwig To: Eric Sandeen Cc: xfs-oss Subject: Re: time for an xfsdump release? Message-ID: <20140715102000.GD30363@infradead.org> X-ASG-Orig-Subj: Re: time for an xfsdump release? References: <53C3FFED.5080301@sandeen.net> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <53C3FFED.5080301@sandeen.net> User-Agent: Mutt/1.5.23 (2014-03-12) X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: UNKNOWN[198.137.202.9] X-Barracuda-Start-Time: 1405419601 X-Barracuda-Encrypted: AES256-SHA X-Barracuda-URL: http://192.48.176.25:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 X-Barracuda-Spam-Score: 0.10 X-Barracuda-Spam-Status: No, SCORE=0.10 using per-user scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.7 tests=RDNS_NONE X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.7516 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.10 RDNS_NONE Delivered to trusted network by a host with no rDNS Yes, sounds like time for a release soon. Dave also has some more fixes and there's also an outstanding bug report as well. From BATV+34dcbea03536f6a26cde+3978+infradead.org+hch@bombadil.srs.infradead.org Tue Jul 15 05:20:20 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: xfs@oss.sgi.com Delivered-To: xfs@oss.sgi.com Received: from relay.sgi.com (relay2.corp.sgi.com [137.38.102.29]) by oss.sgi.com (Postfix) with ESMTP id E6F6B7F92 for ; Tue, 15 Jul 2014 05:20:20 -0500 (CDT) Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by relay2.corp.sgi.com (Postfix) with ESMTP id D318E304048 for ; Tue, 15 Jul 2014 03:20:20 -0700 (PDT) X-ASG-Debug-ID: 1405419619-04cb6c6ad1f09d0001-NocioJ Received: from bombadil.infradead.org ([198.137.202.9]) by cuda.sgi.com with ESMTP id O74EkFHu6RDmU3RP (version=TLSv1 cipher=AES256-SHA bits=256 verify=NO) for ; Tue, 15 Jul 2014 03:20:20 -0700 (PDT) X-Barracuda-Envelope-From: BATV+34dcbea03536f6a26cde+3978+infradead.org+hch@bombadil.srs.infradead.org X-Barracuda-Apparent-Source-IP: 198.137.202.9 Received: from hch by bombadil.infradead.org with local (Exim 4.80.1 #2 (Red Hat Linux)) id 1X6zqN-0002Zr-Bo; Tue, 15 Jul 2014 10:20:19 +0000 Date: Tue, 15 Jul 2014 03:20:19 -0700 From: Christoph Hellwig To: Dave Chinner Cc: xfs@oss.sgi.com Subject: Re: [PATCH 1/2] dump: don't redefine min() or max() Message-ID: <20140715102019.GE30363@infradead.org> X-ASG-Orig-Subj: Re: [PATCH 1/2] dump: don't redefine min() or max() References: <1405403106-3084-1-git-send-email-david@fromorbit.com> <1405403106-3084-2-git-send-email-david@fromorbit.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1405403106-3084-2-git-send-email-david@fromorbit.com> User-Agent: Mutt/1.5.23 (2014-03-12) X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: UNKNOWN[198.137.202.9] X-Barracuda-Start-Time: 1405419620 X-Barracuda-Encrypted: AES256-SHA X-Barracuda-URL: http://192.48.176.15:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 X-Barracuda-Spam-Score: 0.10 X-Barracuda-Spam-Status: No, SCORE=0.10 using per-user scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.7 tests=RDNS_NONE X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.7515 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.10 RDNS_NONE Delivered to trusted network by a host with no rDNS On Tue, Jul 15, 2014 at 03:45:05PM +1000, Dave Chinner wrote: > From: Dave Chinner > > They are included from other header files. > > Signed-off-by: Dave Chinner Looks good, Reviewed-by: Christoph Hellwig From BATV+34dcbea03536f6a26cde+3978+infradead.org+hch@bombadil.srs.infradead.org Tue Jul 15 05:21:46 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: xfs@oss.sgi.com Delivered-To: xfs@oss.sgi.com Received: from relay.sgi.com (relay1.corp.sgi.com [137.38.102.111]) by oss.sgi.com (Postfix) with ESMTP id 5D90C7F92 for ; Tue, 15 Jul 2014 05:21:46 -0500 (CDT) Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by relay1.corp.sgi.com (Postfix) with ESMTP id 5B1AE8F804C for ; Tue, 15 Jul 2014 03:21:46 -0700 (PDT) X-ASG-Debug-ID: 1405419705-04cb6c6ad0f0b70001-NocioJ Received: from bombadil.infradead.org ([198.137.202.9]) by cuda.sgi.com with ESMTP id HSNvcenWVx1AOgtl (version=TLSv1 cipher=AES256-SHA bits=256 verify=NO) for ; Tue, 15 Jul 2014 03:21:45 -0700 (PDT) X-Barracuda-Envelope-From: BATV+34dcbea03536f6a26cde+3978+infradead.org+hch@bombadil.srs.infradead.org X-Barracuda-Apparent-Source-IP: 198.137.202.9 Received: from hch by bombadil.infradead.org with local (Exim 4.80.1 #2 (Red Hat Linux)) id 1X6zrj-0002oq-VJ; Tue, 15 Jul 2014 10:21:43 +0000 Date: Tue, 15 Jul 2014 03:21:43 -0700 From: Christoph Hellwig To: Dave Chinner Cc: xfs@oss.sgi.com, Jakub Bogusz Subject: Re: [PATCH 2/2] dump: fix translation build errors Message-ID: <20140715102143.GF30363@infradead.org> X-ASG-Orig-Subj: Re: [PATCH 2/2] dump: fix translation build errors References: <1405403106-3084-1-git-send-email-david@fromorbit.com> <1405403106-3084-3-git-send-email-david@fromorbit.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1405403106-3084-3-git-send-email-david@fromorbit.com> User-Agent: Mutt/1.5.23 (2014-03-12) X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: UNKNOWN[198.137.202.9] X-Barracuda-Start-Time: 1405419705 X-Barracuda-Encrypted: AES256-SHA X-Barracuda-URL: http://192.48.176.15:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 X-Barracuda-Spam-Score: 0.10 X-Barracuda-Spam-Status: No, SCORE=0.10 using per-user scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.7 tests=RDNS_NONE X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.7515 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.10 RDNS_NONE Delivered to trusted network by a host with no rDNS On Tue, Jul 15, 2014 at 03:45:06PM +1000, Dave Chinner wrote: > From: Dave Chinner > > The translations fail to build because of duplicate message strings. > Remove the duplicate. > > Also, fix the missing "language" tag from the german translation. > > Signed-off-by: Dave Chinner Looks good. Btw, Jakub are you still interested in xfsdump translations? We might do another release soon so it might be a good time to start work on it. From BATV+34dcbea03536f6a26cde+3978+infradead.org+hch@bombadil.srs.infradead.org Tue Jul 15 05:23:05 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: xfs@oss.sgi.com Delivered-To: xfs@oss.sgi.com Received: from relay.sgi.com (relay2.corp.sgi.com [137.38.102.29]) by oss.sgi.com (Postfix) with ESMTP id 920157F9C for ; Tue, 15 Jul 2014 05:23:05 -0500 (CDT) Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by relay2.corp.sgi.com (Postfix) with ESMTP id 7A349304043 for ; Tue, 15 Jul 2014 03:23:05 -0700 (PDT) X-ASG-Debug-ID: 1405419784-04bdf0356af2d70001-NocioJ Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.9]) by cuda.sgi.com with ESMTP id LoCaTEz0M6pZtQGO (version=TLSv1 cipher=AES256-SHA bits=256 verify=NO) for ; Tue, 15 Jul 2014 03:23:04 -0700 (PDT) X-Barracuda-Envelope-From: BATV+34dcbea03536f6a26cde+3978+infradead.org+hch@bombadil.srs.infradead.org X-Barracuda-Apparent-Source-IP: 198.137.202.9 Received: from hch by bombadil.infradead.org with local (Exim 4.80.1 #2 (Red Hat Linux)) id 1X6zt2-00037R-2w; Tue, 15 Jul 2014 10:23:04 +0000 Date: Tue, 15 Jul 2014 03:23:04 -0700 From: Christoph Hellwig To: Jeff Liu Cc: "xfs@oss.sgi.com" Subject: Re: [PATCH] xfs: remove XFS_IS_OQUOTA_ON macros Message-ID: <20140715102304.GG30363@infradead.org> X-ASG-Orig-Subj: Re: [PATCH] xfs: remove XFS_IS_OQUOTA_ON macros References: <53C4F513.4020502@oracle.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <53C4F513.4020502@oracle.com> User-Agent: Mutt/1.5.23 (2014-03-12) X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: bombadil.infradead.org[198.137.202.9] X-Barracuda-Start-Time: 1405419784 X-Barracuda-Encrypted: AES256-SHA X-Barracuda-URL: http://192.48.157.11:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 X-Barracuda-Spam-Score: 0.00 X-Barracuda-Spam-Status: No, SCORE=0.00 using per-user scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.7 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.7516 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- On Tue, Jul 15, 2014 at 05:32:03PM +0800, Jeff Liu wrote: > From: Jie Liu > > Remove the XFS_IS_OQUOTA_ON macros as it is obsoleted. > > Signed-off-by: Jie Liu Looks good, Reviewed-by: Christoph Hellwig From BATV+34dcbea03536f6a26cde+3978+infradead.org+hch@bombadil.srs.infradead.org Tue Jul 15 05:25:22 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: xfs@oss.sgi.com Delivered-To: xfs@oss.sgi.com Received: from relay.sgi.com (relay2.corp.sgi.com [137.38.102.29]) by oss.sgi.com (Postfix) with ESMTP id 067907F9C for ; Tue, 15 Jul 2014 05:25:22 -0500 (CDT) Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by relay2.corp.sgi.com (Postfix) with ESMTP id F0670304051 for ; Tue, 15 Jul 2014 03:25:21 -0700 (PDT) X-ASG-Debug-ID: 1405419920-04cbb0421cf46d0001-NocioJ Received: from bombadil.infradead.org ([198.137.202.9]) by cuda.sgi.com with ESMTP id gkrDOFLIjjTRZ0pj (version=TLSv1 cipher=AES256-SHA bits=256 verify=NO) for ; Tue, 15 Jul 2014 03:25:20 -0700 (PDT) X-Barracuda-Envelope-From: BATV+34dcbea03536f6a26cde+3978+infradead.org+hch@bombadil.srs.infradead.org X-Barracuda-Apparent-Source-IP: 198.137.202.9 Received: from hch by bombadil.infradead.org with local (Exim 4.80.1 #2 (Red Hat Linux)) id 1X6zvE-0004oL-GC; Tue, 15 Jul 2014 10:25:20 +0000 Date: Tue, 15 Jul 2014 03:25:20 -0700 From: Christoph Hellwig To: Jeff Liu Cc: "xfs@oss.sgi.com" Subject: Re: [PATCH] xfs: fix uflags detection at xfs_fs_rm_xquota Message-ID: <20140715102520.GH30363@infradead.org> X-ASG-Orig-Subj: Re: [PATCH] xfs: fix uflags detection at xfs_fs_rm_xquota References: <53C4F5DB.2060108@oracle.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <53C4F5DB.2060108@oracle.com> User-Agent: Mutt/1.5.23 (2014-03-12) X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: UNKNOWN[198.137.202.9] X-Barracuda-Start-Time: 1405419920 X-Barracuda-Encrypted: AES256-SHA X-Barracuda-URL: http://192.48.176.25:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 X-Barracuda-Spam-Score: 0.10 X-Barracuda-Spam-Status: No, SCORE=0.10 using per-user scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.7 tests=RDNS_NONE X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.7516 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.10 RDNS_NONE Delivered to trusted network by a host with no rDNS On Tue, Jul 15, 2014 at 05:35:23PM +0800, Jeff Liu wrote: > From: Jie Liu > > We are intended to check up uflags against FS_PROJ_QUOTA rather than > FS_USER_UQUOTA once more, it looks to me like a typo, but might cause > the project quota metadata space can not be removed. This code was introduced by commit 9da93f9b7cdf8ab28da6b364cdc1fafc8670b4dc which attempts to fix the broken quotarm code. Seems like we need a testcase for this functionality or just remove it. Physically removing the quota file never seems that useful to me to start with.. Reviewed-by: Christoph Hellwig From jan@tulak.me Tue Jul 15 05:28:30 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: xfs@oss.sgi.com Delivered-To: xfs@oss.sgi.com Received: from relay.sgi.com (relay3.corp.sgi.com [198.149.34.15]) by oss.sgi.com (Postfix) with ESMTP id E383A7FA1 for ; Tue, 15 Jul 2014 05:28:29 -0500 (CDT) Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by relay3.corp.sgi.com (Postfix) with ESMTP id 5DD29AC003 for ; Tue, 15 Jul 2014 03:28:29 -0700 (PDT) X-ASG-Debug-ID: 1405420106-04cb6c6ad3f0f70001-NocioJ Received: from mail-ie0-f174.google.com (mail-ie0-f174.google.com [209.85.223.174]) by cuda.sgi.com with ESMTP id LIjdkvkwsQJKFj0c (version=TLSv1 cipher=RC4-SHA bits=128 verify=NO) for ; Tue, 15 Jul 2014 03:28:26 -0700 (PDT) X-Barracuda-Envelope-From: jan@tulak.me X-Barracuda-Apparent-Source-IP: 209.85.223.174 Received: by mail-ie0-f174.google.com with SMTP id rp18so2188740iec.5 for ; Tue, 15 Jul 2014 03:28:26 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:in-reply-to:references:date :message-id:subject:from:to:cc:content-type; bh=0B87cngzIBR2A9bDTVa6S+FbqrbEM8I4BUdohCIMP6E=; b=BTqUQxAO7pVGSIFdMaNVF+IS00C/MxvszwxUBKtsigMiY3yeYzIlerzDHsqPGIYOTB uh5fu6VdnVjAtOsHzJ6nBDE9zn4C9ojXcGa7k+A7Per7O9cPWiYbhYLUW7VIMbQGkhkH KVsDReDObTZBMncajMh6E83CUH6FoXD+suY8gbBPws4QAsGNV9pdubcB7RwPMTJpGj+p dyUC7rCDwOXFCywdf+J8oUdUZljp4IZ5o2+VRY2CIyVMPYSOp0dhIWG2o63lvWv55wa+ IGBA5WyQhUISqoJFHyacV0D0rFsPTYQ9iRHGElVn3ojYijeAbuNZ1kL5GQqf7pEEpKVf Gw2g== X-Gm-Message-State: ALoCoQmATPzkTDyCIYjSrDeBcHyU4tME9gU68V58dlR9b2Wo7LFVon+BaIIct35JnSDf7BJYGNAo MIME-Version: 1.0 X-Received: by 10.42.80.81 with SMTP id u17mr10224893ick.64.1405420106136; Tue, 15 Jul 2014 03:28:26 -0700 (PDT) Received: by 10.42.89.81 with HTTP; Tue, 15 Jul 2014 03:28:26 -0700 (PDT) X-Originating-IP: [209.132.186.34] In-Reply-To: <20140714082607.GA19882@infradead.org> References: <1404898212.7231.12.camel@jtulak> <20140709132836.GA65226@bfoster.bfoster> <20140710134851.GA26652@infradead.org> <1405009872.31068.22.camel@jtulak> <53BEC1E7.1070904@sandeen.net> <1405075678.28203.56.camel@jtulak> <1405325087.3196.6.camel@jtulak> <20140714082607.GA19882@infradead.org> Date: Tue, 15 Jul 2014 12:28:26 +0200 Message-ID: Subject: Re: symlink loop for /lib64/libhandle.so From: =?UTF-8?B?SmFuIMWkdWzDoWs=?= X-ASG-Orig-Subj: Re: symlink loop for /lib64/libhandle.so To: Christoph Hellwig Cc: Eric Sandeen , Brian Foster , XFS mail list Content-Type: text/plain; charset=UTF-8 X-Barracuda-Connect: mail-ie0-f174.google.com[209.85.223.174] X-Barracuda-Start-Time: 1405420106 X-Barracuda-Encrypted: RC4-SHA X-Barracuda-URL: http://192.48.176.15:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 X-Barracuda-Spam-Score: 0.00 X-Barracuda-Spam-Status: No, SCORE=0.00 using per-user scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.7 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.7515 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 2014-07-14 10:26 GMT+02:00 Christoph Hellwig : > > Can you just send the properly formatted and signed off patch to the > list? That's the usual process for XFS changes and makes everyones life > simpler. > I hope this is all right. And sorry Chris, I mistakenly replied just to you instead of into the mailing list. Reported-by: Jan Tulak Signed-off-by: Jan Tulak --- include/buildmacros | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/include/buildmacros b/include/buildmacros index 7a01880..657b82a 100644 --- a/include/buildmacros +++ b/include/buildmacros @@ -76,7 +76,11 @@ INSTALL_LTLIB_DEV = \ ../$(INSTALL) -m 644 $(LIBNAME).lai $(PKG_LIB_DIR)/$(LIBNAME).la ; \ ../$(INSTALL) -m 755 -d $(PKG_ROOT_LIB_DIR); \ ../$(INSTALL) -T so_base $(LIBNAME).lai $(PKG_ROOT_LIB_DIR); \ - if test "x$(PKG_LIB_DIR)" != "x$(PKG_ROOT_LIB_DIR)" ; then \ + if test "x$(PKG_LIB_DIR)" != "x$(PKG_ROOT_LIB_DIR)"\ + -a "x$(shell readlink -f $(PKG_ROOT_LIB_DIR))" != "x$(PKG_LIB_DIR)"\ + -a "x$(shell readlink -f $(PKG_LIB_DIR))" != "x$(PKG_ROOT_LIB_DIR)"\ + -a "x$(shell readlink -f $(PKG_LIB_DIR))" != "x$(shell readlink -f $(PKG_ROOT_LIB_DIR))";\ + then \ ../$(INSTALL) -S $(PKG_LIB_DIR)/$(LIBNAME).a $(PKG_ROOT_LIB_DIR)/$(LIBNAME) .a; \ ../$(INSTALL) -S $(PKG_LIB_DIR)/$(LIBNAME).la $(PKG_ROOT_LIB_DIR)/$(LIBNAME).la; \ ../$(INSTALL) -S $(PKG_ROOT_LIB_DIR)/$(LIBNAME).so $(PKG_LIB_DIR)/$(LIBNAME).so; \ 2014-07-14 10:26 GMT+02:00 Christoph Hellwig : > On Mon, Jul 14, 2014 at 10:04:47AM +0200, Jan ??ul??k wrote: >> And I have created a bug report and added the proposed change as a >> patch: http://oss.sgi.com/bugzilla/show_bug.cgi?id=1059 > > Can you just send the properly formatted and signed off patch to the > list? That's the usual process for XFS changes and makes everyones life > simpler. > From chandan@linux.vnet.ibm.com Tue Jul 15 05:50:40 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: xfs@oss.sgi.com Delivered-To: xfs@oss.sgi.com Received: from relay.sgi.com (relay2.corp.sgi.com [137.38.102.29]) by oss.sgi.com (Postfix) with ESMTP id C625C7FAD for ; Tue, 15 Jul 2014 05:50:40 -0500 (CDT) Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by relay2.corp.sgi.com (Postfix) with ESMTP id B8753304043 for ; Tue, 15 Jul 2014 03:50:40 -0700 (PDT) X-ASG-Debug-ID: 1405421436-04cbb04219f5540001-NocioJ Received: from e23smtp07.au.ibm.com (e23smtp07.au.ibm.com [202.81.31.140]) by cuda.sgi.com with ESMTP id oM1RLu4crnKs8ogq (version=TLSv1 cipher=AES256-SHA bits=256 verify=NO) for ; Tue, 15 Jul 2014 03:50:38 -0700 (PDT) X-Barracuda-Envelope-From: chandan@linux.vnet.ibm.com X-Barracuda-Apparent-Source-IP: 202.81.31.140 X-Barracuda-IPDD: Level2 [linux.vnet.ibm.com/202.81.31.140] Received: from /spool/local by e23smtp07.au.ibm.com with IBM ESMTP SMTP Gateway: Authorized Use Only! Violators will be prosecuted for from ; Tue, 15 Jul 2014 20:50:34 +1000 X-Barracuda-IPDD: Level2 [linux.vnet.ibm.com/202.81.31.140] X-Barracuda-IPDD: Level2 [linux.vnet.ibm.com/202.81.31.140] X-Barracuda-IPDD: Level2 [linux.vnet.ibm.com/202.81.31.140] X-Barracuda-IPDD: Level2 [linux.vnet.ibm.com/202.81.31.140] Received: from d23dlp01.au.ibm.com (202.81.31.203) by e23smtp07.au.ibm.com (202.81.31.204) with IBM ESMTP SMTP Gateway: Authorized Use Only! Violators will be prosecuted; Tue, 15 Jul 2014 20:50:32 +1000 Received: from d23relay03.au.ibm.com (d23relay03.au.ibm.com [9.190.235.21]) by d23dlp01.au.ibm.com (Postfix) with ESMTP id 0C2B32CE8040 for ; Tue, 15 Jul 2014 20:50:32 +1000 (EST) Received: from d23av01.au.ibm.com (d23av01.au.ibm.com [9.190.234.96]) by d23relay03.au.ibm.com (8.13.8/8.13.8/NCO v10.0) with ESMTP id s6FAoFYd11862378 for ; Tue, 15 Jul 2014 20:50:15 +1000 Received: from d23av01.au.ibm.com (localhost [127.0.0.1]) by d23av01.au.ibm.com (8.14.4/8.14.4/NCO v10.0 AVout) with ESMTP id s6FAoV4D016599 for ; Tue, 15 Jul 2014 20:50:31 +1000 Received: from localhost.localdomain ([9.124.35.34]) by d23av01.au.ibm.com (8.14.4/8.14.4/NCO v10.0 AVin) with ESMTP id s6FAoUMw016583; Tue, 15 Jul 2014 20:50:31 +1000 From: Chandan Rajendra To: linux-btrfs@vger.kernel.org, xfs@oss.sgi.com Cc: linux-fsdevel@vger.kernel.org Subject: Fiemap inconsistent behaviour when file offset range isn't on a block boundary Date: Tue, 15 Jul 2014 16:20:29 +0630 X-ASG-Orig-Subj: Fiemap inconsistent behaviour when file offset range isn't on a block boundary Message-ID: <2891198.LvUkX379bh@localhost.localdomain> User-Agent: KMail/4.11.4 (Linux/3.13.7-100.fc19.x86_64; KDE/4.11.5; x86_64; ; ) MIME-Version: 1.0 Content-Transfer-Encoding: 7Bit Content-Type: text/plain; charset="us-ascii" X-TM-AS-MML: disable X-Content-Scanned: Fidelis XPS MAILER x-cbid: 14071510-0260-0000-0000-0000055E2609 X-Barracuda-Connect: e23smtp07.au.ibm.com[202.81.31.140] X-Barracuda-Start-Time: 1405421438 X-Barracuda-Encrypted: AES256-SHA X-Barracuda-URL: http://192.48.176.25:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 All the filesystems created and used below have 4k blocksize. The "file.bin" file mentioned below is 8k in size and has two 4k extents. The test program used can be found at http://fpaste.org/118057/. 1. First run (file range being passed is on block boundaries). ,---- | [root@guest0 btrfs]# for f in $(ls -1 /mnt/{btrfs,ext4,xfs}/file.bin) ; | > do | > echo "-------------- File: $f -----------"; | > /root/print-fiemap 0 8192 $f; | > done | -------------- File: /mnt/btrfs/file.bin ----------- | File range: 0 - 8191. | Found 2 extents. | Fiemap information: | Logical: 0 | Physical: 12582912 | Length: 4096 | Flags: | | Logical: 4096 | Physical: 12656640 | Length: 4096 | Flags: FIEMAP_EXTENT_LAST | | | -------------- File: /mnt/ext4/file.bin ----------- | File range: 0 - 8191. | Found 2 extents. | Fiemap information: | Logical: 0 | Physical: 135270400 | Length: 4096 | Flags: | | Logical: 4096 | Physical: 135278592 | Length: 4096 | Flags: FIEMAP_EXTENT_LAST | | | -------------- File: /mnt/xfs/file.bin ----------- | File range: 0 - 8191. | Found 2 extents. | Fiemap information: | Logical: 0 | Physical: 49152 | Length: 4096 | Flags: | | Logical: 4096 | Physical: 57344 | Length: 4096 | Flags: FIEMAP_EXTENT_LAST | `---- 2. If the file offset range being passed as input to fiemap ioctl is not on block boundaries and falls within an extent's range then that extent is skipped. ,---- | [root@guest0 btrfs]# for f in $(ls -1 /mnt/{btrfs,ext4,xfs}/file.bin) ; | > do | > echo "-------------- File: $f -----------"; | > /root/print-fiemap 1 4095 $f; | > done | -------------- File: /mnt/btrfs/file.bin ----------- | File range: 1 - 4095. | Found 0 extents. | | | -------------- File: /mnt/ext4/file.bin ----------- | File range: 1 - 4095. | Found 1 extents. | Fiemap information: | Logical: 0 | Physical: 135270400 | Length: 4096 | Flags: | | -------------- File: /mnt/xfs/file.bin ----------- | File range: 1 - 4095. | Found 2 extents. | Fiemap information: | Logical: 0 | Physical: 49152 | Length: 4096 | Flags: | | Logical: 4096 | Physical: 57344 | Length: 4096 | Flags: FIEMAP_EXTENT_LAST | `---- From linux/Documentation/filesystems/fiemap.txt, "fm_start, and fm_length specify the logical range within the file which the process would like mappings for. Extents returned mirror those on disk - that is, the logical offset of the 1st returned extent may start before fm_start, and the range covered by the last returned extent may end after fm_length. All offsets and lengths are in bytes." So IMHO, the above would mean that all the extents that map the file range [fm_start, fm_start + fm_length - 1] should be returned by a fiemap ioctl call (as done by ext4). In the case of Btrfs, the commit ea8efc74bd0402b4d5f663d007b4e25fa29ea778 i.e. "Btrfs: make sure not to return overlapping extents to fiemap", forces the first extent returned by btrfs_fiemap() to start from fm_start (if fm_start is greater than the file offset mapped by the containing extent's first byte). Can somebody please list some example scenarios where extent_fiemap() ends up returning dupclicate and overlapping extents? Also, the commit 4d479cf010d56ec9c54f3099992d039918f1296b i.e. "Btrfs: sectorsize align offsets in fiemap", rounds up first byte of the file offset range to the next block. Shouldn't it be rounded down instead? XFS lists both the extents even though the first one encompasses the file range specified in the input. -- chandan From bfoster@redhat.com Tue Jul 15 07:15:19 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: xfs@oss.sgi.com Delivered-To: xfs@oss.sgi.com Received: from relay.sgi.com (relay3.corp.sgi.com [198.149.34.15]) by oss.sgi.com (Postfix) with ESMTP id 6389B7F9E for ; Tue, 15 Jul 2014 07:15:19 -0500 (CDT) Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by relay3.corp.sgi.com (Postfix) with ESMTP id F1DE8AC006 for ; Tue, 15 Jul 2014 05:15:18 -0700 (PDT) X-ASG-Debug-ID: 1405426517-04bdf0356af6730001-NocioJ Received: from mx1.redhat.com (mx1.redhat.com [209.132.183.28]) by cuda.sgi.com with ESMTP id Y9Pvw0CGIUABWDmG (version=TLSv1 cipher=AES256-SHA bits=256 verify=NO) for ; Tue, 15 Jul 2014 05:15:17 -0700 (PDT) X-Barracuda-Envelope-From: bfoster@redhat.com X-Barracuda-Apparent-Source-IP: 209.132.183.28 X-ASG-Whitelist: Client Received: from int-mx13.intmail.prod.int.phx2.redhat.com (int-mx13.intmail.prod.int.phx2.redhat.com [10.5.11.26]) by mx1.redhat.com (8.14.4/8.14.4) with ESMTP id s6FCFDgG031729 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 15 Jul 2014 08:15:14 -0400 Received: from bfoster.bfoster ([10.18.41.237]) by int-mx13.intmail.prod.int.phx2.redhat.com (8.14.4/8.14.4) with ESMTP id s6FCFDnC001600; Tue, 15 Jul 2014 08:15:13 -0400 Received: by bfoster.bfoster (Postfix, from userid 1000) id 78C30124B7C; Tue, 15 Jul 2014 08:15:12 -0400 (EDT) Date: Tue, 15 Jul 2014 08:15:12 -0400 From: Brian Foster To: Chandan Rajendra Cc: linux-btrfs@vger.kernel.org, xfs@oss.sgi.com, linux-fsdevel@vger.kernel.org Subject: Re: Fiemap inconsistent behaviour when file offset range isn't on a block boundary Message-ID: <20140715121512.GA54811@bfoster.bfoster> X-ASG-Orig-Subj: Re: Fiemap inconsistent behaviour when file offset range isn't on a block boundary References: <2891198.LvUkX379bh@localhost.localdomain> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <2891198.LvUkX379bh@localhost.localdomain> User-Agent: Mutt/1.5.23 (2014-03-12) X-Scanned-By: MIMEDefang 2.68 on 10.5.11.26 X-Barracuda-Connect: mx1.redhat.com[209.132.183.28] X-Barracuda-Start-Time: 1405426517 X-Barracuda-Encrypted: AES256-SHA X-Barracuda-URL: http://192.48.157.11:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 On Tue, Jul 15, 2014 at 04:20:29PM +0630, Chandan Rajendra wrote: > All the filesystems created and used below have 4k blocksize. The > "file.bin" file mentioned below is 8k in size and has two 4k > extents. The test program used can be found at http://fpaste.org/118057/. > > 1. First run (file range being passed is on block boundaries). > ,---- > | [root@guest0 btrfs]# for f in $(ls -1 /mnt/{btrfs,ext4,xfs}/file.bin) ; > | > do > | > echo "-------------- File: $f -----------"; > | > /root/print-fiemap 0 8192 $f; > | > done > | -------------- File: /mnt/btrfs/file.bin ----------- > | File range: 0 - 8191. > | Found 2 extents. > | Fiemap information: > | Logical: 0 > | Physical: 12582912 > | Length: 4096 > | Flags: > | > | Logical: 4096 > | Physical: 12656640 > | Length: 4096 > | Flags: FIEMAP_EXTENT_LAST | > | > | -------------- File: /mnt/ext4/file.bin ----------- > | File range: 0 - 8191. > | Found 2 extents. > | Fiemap information: > | Logical: 0 > | Physical: 135270400 > | Length: 4096 > | Flags: > | > | Logical: 4096 > | Physical: 135278592 > | Length: 4096 > | Flags: FIEMAP_EXTENT_LAST | > | > | -------------- File: /mnt/xfs/file.bin ----------- > | File range: 0 - 8191. > | Found 2 extents. > | Fiemap information: > | Logical: 0 > | Physical: 49152 > | Length: 4096 > | Flags: > | > | Logical: 4096 > | Physical: 57344 > | Length: 4096 > | Flags: FIEMAP_EXTENT_LAST | > `---- > > 2. If the file offset range being passed as input to fiemap ioctl is > not on block boundaries and falls within an extent's range then that > extent is skipped. > ,---- > | [root@guest0 btrfs]# for f in $(ls -1 /mnt/{btrfs,ext4,xfs}/file.bin) ; > | > do > | > echo "-------------- File: $f -----------"; > | > /root/print-fiemap 1 4095 $f; > | > done > | -------------- File: /mnt/btrfs/file.bin ----------- > | File range: 1 - 4095. > | Found 0 extents. > | > | > | -------------- File: /mnt/ext4/file.bin ----------- > | File range: 1 - 4095. > | Found 1 extents. > | Fiemap information: > | Logical: 0 > | Physical: 135270400 > | Length: 4096 > | Flags: > | > | -------------- File: /mnt/xfs/file.bin ----------- > | File range: 1 - 4095. > | Found 2 extents. > | Fiemap information: > | Logical: 0 > | Physical: 49152 > | Length: 4096 > | Flags: > | > | Logical: 4096 > | Physical: 57344 > | Length: 4096 > | Flags: FIEMAP_EXTENT_LAST | > `---- > > From linux/Documentation/filesystems/fiemap.txt, "fm_start, and > fm_length specify the logical range within the file which the > process would like mappings for. Extents returned mirror those on > disk - that is, the logical offset of the 1st returned extent may > start before fm_start, and the range covered by the last returned > extent may end after fm_length. All offsets and lengths are in > bytes." > > So IMHO, the above would mean that all the extents that map the > file range [fm_start, fm_start + fm_length - 1] should be returned > by a fiemap ioctl call (as done by ext4). > > In the case of Btrfs, the commit > ea8efc74bd0402b4d5f663d007b4e25fa29ea778 i.e. "Btrfs: make sure not > to return overlapping extents to fiemap", forces the first extent > returned by btrfs_fiemap() to start from fm_start (if fm_start is > greater than the file offset mapped by the containing extent's > first byte). Can somebody please list some example scenarios where > extent_fiemap() ends up returning dupclicate and overlapping > extents? > Also, the commit 4d479cf010d56ec9c54f3099992d039918f1296b > i.e. "Btrfs: sectorsize align offsets in fiemap", rounds up first > byte of the file offset range to the next block. Shouldn't it be > rounded down instead? > > XFS lists both the extents even though the first one encompasses the > file range specified in the input. > I gave this a test on XFS with a file that looks like this: # xfs_bmap -v /mnt/file /mnt/file: EXT: FILE-OFFSET BLOCK-RANGE AG AG-OFFSET TOTAL FLAGS 0: [0..15]: 102368..102383 1 (51168..51183) 16 10000 1: [16..63]: 1832..1879 0 (1832..1879) 48 10000 I narrowed the print_fiemap behavior down to this: # ./print_fiemap 1 7680 /mnt/file File range: 1 - 7680. Found 1 extents. Fiemap information: Logical: 0 Physical: 52412416 Length: 8192 Flags: FIEMAP_EXTENT_UNWRITTEN | # ./print_fiemap 1 7681 /mnt/file File range: 1 - 7681. Found 2 extents. Fiemap information: Logical: 0 Physical: 52412416 Length: 8192 Flags: FIEMAP_EXTENT_UNWRITTEN | Logical: 8192 Physical: 937984 Length: 4096 Flags: FIEMAP_EXTENT_LAST | FIEMAP_EXTENT_UNWRITTEN | ... which is caused by using the BTOBB() macro on the provided length value. This rounds the length up by a basic block (512 bytes). Switching this to use BTOBBT() fixes it for me. Patch below, care to test? Thanks. Brian ---8<--- diff --git a/fs/xfs/xfs_iops.c b/fs/xfs/xfs_iops.c index d75621a..d2fbc42 100644 --- a/fs/xfs/xfs_iops.c +++ b/fs/xfs/xfs_iops.c @@ -1060,7 +1060,7 @@ xfs_vn_fiemap( if (length == FIEMAP_MAX_OFFSET) bm.bmv_length = -1LL; else - bm.bmv_length = BTOBB(length); + bm.bmv_length = BTOBBT(length); /* We add one because in getbmap world count includes the header */ bm.bmv_count = !fieinfo->fi_extents_max ? MAXEXTNUM : > -- > chandan > > _______________________________________________ > xfs mailing list > xfs@oss.sgi.com > http://oss.sgi.com/mailman/listinfo/xfs From sandeen@sandeen.net Tue Jul 15 07:54:08 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: xfs@oss.sgi.com Delivered-To: xfs@oss.sgi.com Received: from relay.sgi.com (relay3.corp.sgi.com [198.149.34.15]) by oss.sgi.com (Postfix) with ESMTP id A9EF97FB5 for ; Tue, 15 Jul 2014 07:54:08 -0500 (CDT) Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by relay3.corp.sgi.com (Postfix) with ESMTP id 530EFAC001 for ; Tue, 15 Jul 2014 05:54:07 -0700 (PDT) X-ASG-Debug-ID: 1405428846-04bdf03568f8200001-NocioJ Received: from sandeen.net (sandeen.net [63.231.237.45]) by cuda.sgi.com with ESMTP id hk2NKG4Qg7czbkES for ; Tue, 15 Jul 2014 05:54:06 -0700 (PDT) X-Barracuda-Envelope-From: sandeen@sandeen.net X-Barracuda-Apparent-Source-IP: 63.231.237.45 Received: from liberator.sandeen.net (liberator.sandeen.net [10.0.0.4]) (using TLSv1 with cipher DHE-RSA-AES128-SHA (128/128 bits)) (No client certificate requested) by sandeen.net (Postfix) with ESMTPSA id A31176522293; Tue, 15 Jul 2014 07:54:05 -0500 (CDT) Message-ID: <53C5246E.9090202@sandeen.net> Date: Tue, 15 Jul 2014 07:54:06 -0500 From: Eric Sandeen MIME-Version: 1.0 To: Christoph Hellwig CC: Jeff Liu , "xfs@oss.sgi.com" Subject: Re: [PATCH] xfsprogs/quota: fix NULL pointer dereference in report_f References: <52849CC5.10109@oracle.com> <53C091E1.1010907@sandeen.net> <20140715101437.GB30363@infradead.org> X-ASG-Orig-Subj: Re: [PATCH] xfsprogs/quota: fix NULL pointer dereference in report_f In-Reply-To: <20140715101437.GB30363@infradead.org> X-Enigmail-Version: 1.6 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit X-Barracuda-Connect: sandeen.net[63.231.237.45] X-Barracuda-Start-Time: 1405428846 X-Barracuda-URL: http://192.48.157.11:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 X-Barracuda-Spam-Score: 0.00 X-Barracuda-Spam-Status: No, SCORE=0.00 using per-user scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.7 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.7518 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- On 7/15/14, 5:14 AM, Christoph Hellwig wrote: > On Fri, Jul 11, 2014 at 08:39:45PM -0500, Eric Sandeen wrote: >>> Signed-off-by: Jie Liu >> >> Reviewed-by: Eric Sandeen >> >> I know hch had grand plans to make this all nicer, but based on Jeff's >> followup emails, it looks like this is the only spot needed to simply >> resolve the problems w/ nonexistent paths in quota, and is a small, >> contained change we can easily make before the next point release. > > Didn't I say I'm fine with putting this in earlier even if I'd prefer > a grand solution? Yes, you did, but it never got a formal reviewed-by or got merged, so I bumped it :) FWIW I did look at the grand solution, and there was .. something that didn't make sense to me, so I backed off. Oh, yeah, I wasn't quite sure what to do with: add_args_command(init_args_command); and init_args_command(); in quota/init.c -Eric > either way, consider this: > > > Reviewed-by: Christoph Hellwig > From bfoster@redhat.com Tue Jul 15 08:54:00 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: xfs@oss.sgi.com Delivered-To: xfs@oss.sgi.com Received: from relay.sgi.com (relay2.corp.sgi.com [137.38.102.29]) by oss.sgi.com (Postfix) with ESMTP id CB7C07F51 for ; Tue, 15 Jul 2014 08:54:00 -0500 (CDT) Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by relay2.corp.sgi.com (Postfix) with ESMTP id 972B8304048 for ; Tue, 15 Jul 2014 06:53:57 -0700 (PDT) X-ASG-Debug-ID: 1405432435-04bdf03568fa9d0001-NocioJ Received: from mx1.redhat.com (mx1.redhat.com [209.132.183.28]) by cuda.sgi.com with ESMTP id rSTUOydnDpPtsbYD (version=TLSv1 cipher=AES256-SHA bits=256 verify=NO) for ; Tue, 15 Jul 2014 06:53:55 -0700 (PDT) X-Barracuda-Envelope-From: bfoster@redhat.com X-Barracuda-Apparent-Source-IP: 209.132.183.28 X-ASG-Whitelist: Client Received: from int-mx09.intmail.prod.int.phx2.redhat.com (int-mx09.intmail.prod.int.phx2.redhat.com [10.5.11.22]) by mx1.redhat.com (8.14.4/8.14.4) with ESMTP id s6FDrqkw014826 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 15 Jul 2014 09:53:53 -0400 Received: from laptop.bfoster (vpn-58-228.rdu2.redhat.com [10.10.58.228]) by int-mx09.intmail.prod.int.phx2.redhat.com (8.14.4/8.14.4) with ESMTP id s6FDrnJ5010631 (version=TLSv1/SSLv3 cipher=AES128-GCM-SHA256 bits=128 verify=NO); Tue, 15 Jul 2014 09:53:51 -0400 Date: Tue, 15 Jul 2014 09:53:49 -0400 From: Brian Foster To: Chandan Rajendra Cc: linux-fsdevel@vger.kernel.org, linux-btrfs@vger.kernel.org, xfs@oss.sgi.com Subject: Re: Fiemap inconsistent behaviour when file offset range isn't on a block boundary Message-ID: <20140715135349.GA4304@laptop.bfoster> X-ASG-Orig-Subj: Re: Fiemap inconsistent behaviour when file offset range isn't on a block boundary References: <2891198.LvUkX379bh@localhost.localdomain> <20140715121512.GA54811@bfoster.bfoster> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20140715121512.GA54811@bfoster.bfoster> User-Agent: Mutt/1.5.23 (2014-03-12) X-Scanned-By: MIMEDefang 2.68 on 10.5.11.22 X-Barracuda-Connect: mx1.redhat.com[209.132.183.28] X-Barracuda-Start-Time: 1405432435 X-Barracuda-Encrypted: AES256-SHA X-Barracuda-URL: http://192.48.157.11:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 On Tue, Jul 15, 2014 at 08:15:12AM -0400, Brian Foster wrote: > On Tue, Jul 15, 2014 at 04:20:29PM +0630, Chandan Rajendra wrote: > > All the filesystems created and used below have 4k blocksize. The > > "file.bin" file mentioned below is 8k in size and has two 4k > > extents. The test program used can be found at http://fpaste.org/118057/. > > > > 1. First run (file range being passed is on block boundaries). > > ,---- > > | [root@guest0 btrfs]# for f in $(ls -1 /mnt/{btrfs,ext4,xfs}/file.bin) ; > > | > do > > | > echo "-------------- File: $f -----------"; > > | > /root/print-fiemap 0 8192 $f; > > | > done > > | -------------- File: /mnt/btrfs/file.bin ----------- > > | File range: 0 - 8191. > > | Found 2 extents. > > | Fiemap information: > > | Logical: 0 > > | Physical: 12582912 > > | Length: 4096 > > | Flags: > > | > > | Logical: 4096 > > | Physical: 12656640 > > | Length: 4096 > > | Flags: FIEMAP_EXTENT_LAST | > > | > > | -------------- File: /mnt/ext4/file.bin ----------- > > | File range: 0 - 8191. > > | Found 2 extents. > > | Fiemap information: > > | Logical: 0 > > | Physical: 135270400 > > | Length: 4096 > > | Flags: > > | > > | Logical: 4096 > > | Physical: 135278592 > > | Length: 4096 > > | Flags: FIEMAP_EXTENT_LAST | > > | > > | -------------- File: /mnt/xfs/file.bin ----------- > > | File range: 0 - 8191. > > | Found 2 extents. > > | Fiemap information: > > | Logical: 0 > > | Physical: 49152 > > | Length: 4096 > > | Flags: > > | > > | Logical: 4096 > > | Physical: 57344 > > | Length: 4096 > > | Flags: FIEMAP_EXTENT_LAST | > > `---- > > > > 2. If the file offset range being passed as input to fiemap ioctl is > > not on block boundaries and falls within an extent's range then that > > extent is skipped. > > ,---- > > | [root@guest0 btrfs]# for f in $(ls -1 /mnt/{btrfs,ext4,xfs}/file.bin) ; > > | > do > > | > echo "-------------- File: $f -----------"; > > | > /root/print-fiemap 1 4095 $f; > > | > done > > | -------------- File: /mnt/btrfs/file.bin ----------- > > | File range: 1 - 4095. > > | Found 0 extents. > > | > > | > > | -------------- File: /mnt/ext4/file.bin ----------- > > | File range: 1 - 4095. > > | Found 1 extents. > > | Fiemap information: > > | Logical: 0 > > | Physical: 135270400 > > | Length: 4096 > > | Flags: > > | > > | -------------- File: /mnt/xfs/file.bin ----------- > > | File range: 1 - 4095. > > | Found 2 extents. > > | Fiemap information: > > | Logical: 0 > > | Physical: 49152 > > | Length: 4096 > > | Flags: > > | > > | Logical: 4096 > > | Physical: 57344 > > | Length: 4096 > > | Flags: FIEMAP_EXTENT_LAST | > > `---- > > > > From linux/Documentation/filesystems/fiemap.txt, "fm_start, and > > fm_length specify the logical range within the file which the > > process would like mappings for. Extents returned mirror those on > > disk - that is, the logical offset of the 1st returned extent may > > start before fm_start, and the range covered by the last returned > > extent may end after fm_length. All offsets and lengths are in > > bytes." > > > > So IMHO, the above would mean that all the extents that map the > > file range [fm_start, fm_start + fm_length - 1] should be returned > > by a fiemap ioctl call (as done by ext4). > > > > In the case of Btrfs, the commit > > ea8efc74bd0402b4d5f663d007b4e25fa29ea778 i.e. "Btrfs: make sure not > > to return overlapping extents to fiemap", forces the first extent > > returned by btrfs_fiemap() to start from fm_start (if fm_start is > > greater than the file offset mapped by the containing extent's > > first byte). Can somebody please list some example scenarios where > > extent_fiemap() ends up returning dupclicate and overlapping > > extents? > > Also, the commit 4d479cf010d56ec9c54f3099992d039918f1296b > > i.e. "Btrfs: sectorsize align offsets in fiemap", rounds up first > > byte of the file offset range to the next block. Shouldn't it be > > rounded down instead? > > > > XFS lists both the extents even though the first one encompasses the > > file range specified in the input. > > > > I gave this a test on XFS with a file that looks like this: > > # xfs_bmap -v /mnt/file > /mnt/file: > EXT: FILE-OFFSET BLOCK-RANGE AG AG-OFFSET TOTAL FLAGS > 0: [0..15]: 102368..102383 1 (51168..51183) 16 10000 > 1: [16..63]: 1832..1879 0 (1832..1879) 48 10000 > > I narrowed the print_fiemap behavior down to this: > > # ./print_fiemap 1 7680 /mnt/file > File range: 1 - 7680. > Found 1 extents. > Fiemap information: > Logical: 0 > Physical: 52412416 > Length: 8192 > Flags: FIEMAP_EXTENT_UNWRITTEN | > > # ./print_fiemap 1 7681 /mnt/file > File range: 1 - 7681. > Found 2 extents. > Fiemap information: > Logical: 0 > Physical: 52412416 > Length: 8192 > Flags: FIEMAP_EXTENT_UNWRITTEN | > > Logical: 8192 > Physical: 937984 > Length: 4096 > Flags: FIEMAP_EXTENT_LAST | FIEMAP_EXTENT_UNWRITTEN | > > ... which is caused by using the BTOBB() macro on the provided length > value. This rounds the length up by a basic block (512 bytes). Switching > this to use BTOBBT() fixes it for me. Patch below, care to test? Thanks. > > Brian > > ---8<--- > > diff --git a/fs/xfs/xfs_iops.c b/fs/xfs/xfs_iops.c > index d75621a..d2fbc42 100644 > --- a/fs/xfs/xfs_iops.c > +++ b/fs/xfs/xfs_iops.c > @@ -1060,7 +1060,7 @@ xfs_vn_fiemap( > if (length == FIEMAP_MAX_OFFSET) > bm.bmv_length = -1LL; > else > - bm.bmv_length = BTOBB(length); > + bm.bmv_length = BTOBBT(length); > > /* We add one because in getbmap world count includes the header */ > bm.bmv_count = !fieinfo->fi_extents_max ? MAXEXTNUM : It occurs to me that this probably isn't the right fix. The documentation doesn't clarify for me what the expected behavior is for unaligned offsets to fiemap. We could round down the start offset and round up the length and go with that..? I suppose this is confusing with regard to how your test application presents the output. E.g., it shows the file range as start offset+length, but that could just be wrong. Thoughts? Brian > > > -- > > chandan > > > > _______________________________________________ > > xfs mailing list > > xfs@oss.sgi.com > > http://oss.sgi.com/mailman/listinfo/xfs > > _______________________________________________ > xfs mailing list > xfs@oss.sgi.com > http://oss.sgi.com/mailman/listinfo/xfs From jack@suse.cz Tue Jul 15 09:09:47 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: xfs@oss.sgi.com Delivered-To: xfs@oss.sgi.com Received: from relay.sgi.com (relay1.corp.sgi.com [137.38.102.111]) by oss.sgi.com (Postfix) with ESMTP id 3FADB7F67 for ; Tue, 15 Jul 2014 09:09:47 -0500 (CDT) Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by relay1.corp.sgi.com (Postfix) with ESMTP id 2C7BB8F806F for ; Tue, 15 Jul 2014 07:09:44 -0700 (PDT) X-ASG-Debug-ID: 1405433380-04bdf0356afb490001-NocioJ Received: from mx2.suse.de (cantor2.suse.de [195.135.220.15]) by cuda.sgi.com with ESMTP id K9lxMHtMRxFPZ8zJ (version=TLSv1 cipher=AES256-SHA bits=256 verify=NO) for ; Tue, 15 Jul 2014 07:09:41 -0700 (PDT) X-Barracuda-Envelope-From: jack@suse.cz X-Barracuda-Apparent-Source-IP: 195.135.220.15 Received: from relay1.suse.de (charybdis-ext.suse.de [195.135.220.254]) by mx2.suse.de (Postfix) with ESMTP id 4697FAB08; Tue, 15 Jul 2014 14:09:40 +0000 (UTC) Received: by quack.suse.cz (Postfix, from userid 1000) id B536981ED9; Tue, 15 Jul 2014 16:09:38 +0200 (CEST) Date: Tue, 15 Jul 2014 16:09:38 +0200 From: Jan Kara To: Christoph Hellwig Cc: Jan Kara , xfs@oss.sgi.com Subject: Re: [PATCH] logprint: Fix printing of AGF buffers Message-ID: <20140715140938.GA1733@quack.suse.cz> X-ASG-Orig-Subj: Re: [PATCH] logprint: Fix printing of AGF buffers References: <1405349100-19734-1-git-send-email-jack@suse.cz> <20140715101931.GC30363@infradead.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20140715101931.GC30363@infradead.org> User-Agent: Mutt/1.5.21 (2010-09-15) X-Barracuda-Connect: cantor2.suse.de[195.135.220.15] X-Barracuda-Start-Time: 1405433381 X-Barracuda-Encrypted: AES256-SHA X-Barracuda-URL: http://192.48.157.11:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 X-Barracuda-Spam-Score: 0.00 X-Barracuda-Spam-Status: No, SCORE=0.00 using per-user scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.7 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.7519 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- On Tue 15-07-14 03:19:31, Christoph Hellwig wrote: > On Mon, Jul 14, 2014 at 04:45:00PM +0200, Jan Kara wrote: > > Currently xfs_logprint doesn't show detailed data about AGF buffers and > > instead always shows "Out of space". This is because xfs_agf_t has > > additional fields and padding which we never read from disk and thus > > buffer length is always smaller than the size of xfs_agf_t. > > > > Fix the problem by only making sure we have enough data in the buffer > > to contain all the information we want to print. > > The fix looks correct to me, but te explanation should be more verbose: > the reason why we don't read agf_uuid and above is because you're > probably dumping a v4 filesystems which doesn't even have those fields. I'm actually dumping v5 filesystem. The issue is that with v5 filesystem not all fields are logged (e.g. CRC isn't) and thus the length of logged buffer is shorter than the length of in-memory structure. > Its seems like various other fields have the same issue in logprint, > and I also suspect we want some defines for the v4 size instead of using > the offsetoff tricks. I had a look before I submitted this patch and I didn't find anything. Now that I'm looking again, AGI buffers probably need a similar treatment. Superblock buffers are already checked against fixed number so those don't have a problem. Dquot buffers should be fine as well because those don't have a checksum and other unlogged stuff. And I didn't find any other structures in the log that would have the problem (please point me if I missed something). Regarding how to fix this cleanly - offsetof() seems like a reasonably clean way to me. If you prefer to define number of bytes each buffer type has to have in the log, I can do that as well. Or I could define alternative structures only containing fields we need in the log so that we can print info but this all seems like an additional complexity with disputable gain... Honza -- Jan Kara SUSE Labs, CR From jakub@bogusz.priv.pl Tue Jul 15 09:55:25 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: xfs@oss.sgi.com Delivered-To: xfs@oss.sgi.com Received: from relay.sgi.com (relay3.corp.sgi.com [198.149.34.15]) by oss.sgi.com (Postfix) with ESMTP id 7ACDF7F69 for ; Tue, 15 Jul 2014 09:55:23 -0500 (CDT) Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by relay3.corp.sgi.com (Postfix) with ESMTP id CC654AC00A for ; Tue, 15 Jul 2014 07:55:19 -0700 (PDT) X-ASG-Debug-ID: 1405436114-04cbb0421bfe560001-NocioJ Received: from mail.qboosh.pl (mail.qboosh.pl [217.73.31.61]) by cuda.sgi.com with ESMTP id vUhc97e096wsPkHb (version=TLSv1 cipher=AES256-SHA bits=256 verify=NO) for ; Tue, 15 Jul 2014 07:55:15 -0700 (PDT) X-Barracuda-Envelope-From: jakub@bogusz.priv.pl X-Barracuda-Apparent-Source-IP: 217.73.31.61 Received: by mail.qboosh.pl (Postfix, from userid 1000) id C3E531091DF; Tue, 15 Jul 2014 16:55:14 +0200 (CEST) Date: Tue, 15 Jul 2014 16:55:14 +0200 From: Jakub Bogusz To: Christoph Hellwig Cc: Dave Chinner , xfs@oss.sgi.com Subject: Re: [PATCH 2/2] dump: fix translation build errors Message-ID: <20140715145514.GA14398@mail> X-ASG-Orig-Subj: Re: [PATCH 2/2] dump: fix translation build errors References: <1405403106-3084-1-git-send-email-david@fromorbit.com> <1405403106-3084-3-git-send-email-david@fromorbit.com> <20140715102143.GF30363@infradead.org> Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="J/dobhs11T7y2rNN" Content-Disposition: inline In-Reply-To: <20140715102143.GF30363@infradead.org> User-Agent: Mutt/1.4.2.3i X-Barracuda-Connect: mail.qboosh.pl[217.73.31.61] X-Barracuda-Start-Time: 1405436115 X-Barracuda-Encrypted: AES256-SHA X-Barracuda-URL: http://192.48.176.25:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 X-Barracuda-Spam-Score: 0.00 X-Barracuda-Spam-Status: No, SCORE=0.00 using per-user scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.7 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.7520 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- --J/dobhs11T7y2rNN Content-Type: text/plain; charset=us-ascii Content-Disposition: inline On Tue, Jul 15, 2014 at 03:21:43AM -0700, Christoph Hellwig wrote: > On Tue, Jul 15, 2014 at 03:45:06PM +1000, Dave Chinner wrote: > > From: Dave Chinner > > > > The translations fail to build because of duplicate message strings. > > Remove the duplicate. > > > > Also, fix the missing "language" tag from the german translation. > > > > Signed-off-by: Dave Chinner > > Looks good. > > Btw, Jakub are you still interested in xfsdump translations? We might > do another release soon so it might be a good time to start work on it. Do you mean current git master (git://oss.sgi.com/xfs/cmds/xfsdump.git)? I checked it, single message needed update (new pl.po attached). -- Jakub Bogusz http://qboosh.pl/ --J/dobhs11T7y2rNN Content-Type: application/gzip Content-Disposition: attachment; filename="xfsdump-3.1.3+git.pl.po.gz" Content-Transfer-Encoding: base64 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 --J/dobhs11T7y2rNN-- From bfoster@redhat.com Tue Jul 15 10:08:16 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: xfs@oss.sgi.com Delivered-To: xfs@oss.sgi.com Received: from relay.sgi.com (relay1.corp.sgi.com [137.38.102.111]) by oss.sgi.com (Postfix) with ESMTP id 7FBA67F6A for ; Tue, 15 Jul 2014 10:08:16 -0500 (CDT) Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by relay1.corp.sgi.com (Postfix) with ESMTP id 745868F8081 for ; Tue, 15 Jul 2014 08:08:16 -0700 (PDT) X-ASG-Debug-ID: 1405436891-04cb6c6ad3fb320001-NocioJ Received: from mx1.redhat.com (mx1.redhat.com [209.132.183.28]) by cuda.sgi.com with ESMTP id i1ZwzfLRVdXSVKHW (version=TLSv1 cipher=AES256-SHA bits=256 verify=NO) for ; Tue, 15 Jul 2014 08:08:12 -0700 (PDT) X-Barracuda-Envelope-From: bfoster@redhat.com X-Barracuda-Apparent-Source-IP: 209.132.183.28 X-ASG-Whitelist: Client Received: from int-mx14.intmail.prod.int.phx2.redhat.com (int-mx14.intmail.prod.int.phx2.redhat.com [10.5.11.27]) by mx1.redhat.com (8.14.4/8.14.4) with ESMTP id s6FF87Ab005769 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 15 Jul 2014 11:08:08 -0400 Received: from bfoster.bfoster ([10.18.41.237]) by int-mx14.intmail.prod.int.phx2.redhat.com (8.14.4/8.14.4) with ESMTP id s6FF87LK007626; Tue, 15 Jul 2014 11:08:07 -0400 Received: by bfoster.bfoster (Postfix, from userid 1000) id 6629F124B7C; Tue, 15 Jul 2014 11:08:06 -0400 (EDT) From: Brian Foster To: xfs@oss.sgi.com Cc: Chandan Rajendra Subject: [PATCH] xfs: fix rounding error of fiemap length parameter Date: Tue, 15 Jul 2014 11:08:06 -0400 X-ASG-Orig-Subj: [PATCH] xfs: fix rounding error of fiemap length parameter Message-Id: <1405436886-61287-1-git-send-email-bfoster@redhat.com> X-Scanned-By: MIMEDefang 2.68 on 10.5.11.27 X-Barracuda-Connect: mx1.redhat.com[209.132.183.28] X-Barracuda-Start-Time: 1405436892 X-Barracuda-Encrypted: AES256-SHA X-Barracuda-URL: http://192.48.176.15:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 The offset and length parameters are converted from bytes to basic blocks by xfs_vn_fiemap(). The BTOBB() converter rounds the value up to the nearest basic block. This leads to unexpected behavior when unaligned offsets are provided to FIEMAP. Fix the conversions of byte values to block values to cover the provided offsets. Round down the start offset to the nearest basic block. Calculate the end offset based on the provided values, round up and calculate length based on the start block offset. Signed-off-by: Brian Foster Reported-by: Chandan Rajendra --- Here's another pass at this. I think this is consistent with what ext4 does... Brian fs/xfs/xfs_iops.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/fs/xfs/xfs_iops.c b/fs/xfs/xfs_iops.c index d75621a..7212949 100644 --- a/fs/xfs/xfs_iops.c +++ b/fs/xfs/xfs_iops.c @@ -1055,12 +1055,12 @@ xfs_vn_fiemap( return error; /* Set up bmap header for xfs internal routine */ - bm.bmv_offset = BTOBB(start); + bm.bmv_offset = BTOBBT(start); /* Special case for whole file */ if (length == FIEMAP_MAX_OFFSET) bm.bmv_length = -1LL; else - bm.bmv_length = BTOBB(length); + bm.bmv_length = BTOBB(start + length) - bm.bmv_offset; /* We add one because in getbmap world count includes the header */ bm.bmv_count = !fieinfo->fi_extents_max ? MAXEXTNUM : -- 1.8.3.1 From chandan@linux.vnet.ibm.com Tue Jul 15 10:26:15 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: xfs@oss.sgi.com Delivered-To: xfs@oss.sgi.com Received: from relay.sgi.com (relay1.corp.sgi.com [137.38.102.111]) by oss.sgi.com (Postfix) with ESMTP id 603157F6B for ; Tue, 15 Jul 2014 10:26:15 -0500 (CDT) Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by relay1.corp.sgi.com (Postfix) with ESMTP id 426EF8F8040 for ; Tue, 15 Jul 2014 08:26:14 -0700 (PDT) X-ASG-Debug-ID: 1405437971-04cbb0421bffad0001-NocioJ Received: from e28smtp01.in.ibm.com (e28smtp01.in.ibm.com [122.248.162.1]) by cuda.sgi.com with ESMTP id 8RlfZyCv9Hdzyymq (version=TLSv1 cipher=AES256-SHA bits=256 verify=NO) for ; Tue, 15 Jul 2014 08:26:13 -0700 (PDT) X-Barracuda-Envelope-From: chandan@linux.vnet.ibm.com X-Barracuda-Apparent-Source-IP: 122.248.162.1 X-Barracuda-IPDD: Level2 [linux.vnet.ibm.com/122.248.162.1] Received: from /spool/local by e28smtp01.in.ibm.com with IBM ESMTP SMTP Gateway: Authorized Use Only! Violators will be prosecuted for from ; Tue, 15 Jul 2014 20:56:10 +0530 X-Barracuda-IPDD: Level2 [linux.vnet.ibm.com/122.248.162.1] X-Barracuda-IPDD: Level2 [linux.vnet.ibm.com/122.248.162.1] X-Barracuda-IPDD: Level2 [linux.vnet.ibm.com/122.248.162.1] X-Barracuda-IPDD: Level2 [linux.vnet.ibm.com/122.248.162.1] Received: from d28dlp01.in.ibm.com (9.184.220.126) by e28smtp01.in.ibm.com (192.168.1.131) with IBM ESMTP SMTP Gateway: Authorized Use Only! Violators will be prosecuted; Tue, 15 Jul 2014 20:56:08 +0530 Received: from d28relay03.in.ibm.com (d28relay03.in.ibm.com [9.184.220.60]) by d28dlp01.in.ibm.com (Postfix) with ESMTP id DDBF9E0045 for ; Tue, 15 Jul 2014 20:57:39 +0530 (IST) Received: from d28av05.in.ibm.com (d28av05.in.ibm.com [9.184.220.67]) by d28relay03.in.ibm.com (8.13.8/8.13.8/NCO v10.0) with ESMTP id s6FFRkvk6816034 for ; Tue, 15 Jul 2014 20:57:46 +0530 Received: from d28av05.in.ibm.com (localhost [127.0.0.1]) by d28av05.in.ibm.com (8.14.4/8.14.4/NCO v10.0 AVout) with ESMTP id s6FFQ7mA001520 for ; Tue, 15 Jul 2014 20:56:07 +0530 Received: from localhost.localdomain ([9.77.212.63]) by d28av05.in.ibm.com (8.14.4/8.14.4/NCO v10.0 AVin) with ESMTP id s6FFQ6kY001480; Tue, 15 Jul 2014 20:56:06 +0530 From: Chandan Rajendra To: Brian Foster Cc: linux-fsdevel@vger.kernel.org, linux-btrfs@vger.kernel.org, xfs@oss.sgi.com Subject: Re: Fiemap inconsistent behaviour when file offset range isn't on a block boundary Date: Tue, 15 Jul 2014 20:56:05 +0630 X-ASG-Orig-Subj: Re: Fiemap inconsistent behaviour when file offset range isn't on a block boundary Message-ID: <5323082.sjN6jdPVVH@localhost.localdomain> User-Agent: KMail/4.11.4 (Linux/3.13.7-100.fc19.x86_64; KDE/4.11.5; x86_64; ; ) In-Reply-To: <20140715135349.GA4304@laptop.bfoster> References: <2891198.LvUkX379bh@localhost.localdomain> <20140715121512.GA54811@bfoster.bfoster> <20140715135349.GA4304@laptop.bfoster> MIME-Version: 1.0 Content-Transfer-Encoding: 7Bit Content-Type: text/plain; charset="us-ascii" X-TM-AS-MML: disable X-Content-Scanned: Fidelis XPS MAILER x-cbid: 14071515-4790-0000-0000-000002AD3493 X-Barracuda-Connect: e28smtp01.in.ibm.com[122.248.162.1] X-Barracuda-Start-Time: 1405437972 X-Barracuda-Encrypted: AES256-SHA X-Barracuda-URL: http://192.48.176.25:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 On Tuesday 15 Jul 2014 09:53:49 Brian Foster wrote: > On Tue, Jul 15, 2014 at 08:15:12AM -0400, Brian Foster wrote: > > On Tue, Jul 15, 2014 at 04:20:29PM +0630, Chandan Rajendra wrote: > > > All the filesystems created and used below have 4k blocksize. The > > > "file.bin" file mentioned below is 8k in size and has two 4k > > > extents. The test program used can be found at http://fpaste.org/118057/. > > > > > > 1. First run (file range being passed is on block boundaries). > > > ,---- > > > | [root@guest0 btrfs]# for f in $(ls -1 /mnt/{btrfs,ext4,xfs}/file.bin) ; > > > | > do > > > | > echo "-------------- File: $f -----------"; > > > | > /root/print-fiemap 0 8192 $f; > > > | > done > > > | -------------- File: /mnt/btrfs/file.bin ----------- > > > | File range: 0 - 8191. > > > | Found 2 extents. > > > | Fiemap information: > > > | Logical: 0 > > > | Physical: 12582912 > > > | Length: 4096 > > > | Flags: > > > | > > > | Logical: 4096 > > > | Physical: 12656640 > > > | Length: 4096 > > > | Flags: FIEMAP_EXTENT_LAST | > > > | > > > | -------------- File: /mnt/ext4/file.bin ----------- > > > | File range: 0 - 8191. > > > | Found 2 extents. > > > | Fiemap information: > > > | Logical: 0 > > > | Physical: 135270400 > > > | Length: 4096 > > > | Flags: > > > | > > > | Logical: 4096 > > > | Physical: 135278592 > > > | Length: 4096 > > > | Flags: FIEMAP_EXTENT_LAST | > > > | > > > | -------------- File: /mnt/xfs/file.bin ----------- > > > | File range: 0 - 8191. > > > | Found 2 extents. > > > | Fiemap information: > > > | Logical: 0 > > > | Physical: 49152 > > > | Length: 4096 > > > | Flags: > > > | > > > | Logical: 4096 > > > | Physical: 57344 > > > | Length: 4096 > > > | Flags: FIEMAP_EXTENT_LAST | > > > `---- > > > > > > 2. If the file offset range being passed as input to fiemap ioctl is > > > not on block boundaries and falls within an extent's range then that > > > extent is skipped. > > > ,---- > > > | [root@guest0 btrfs]# for f in $(ls -1 /mnt/{btrfs,ext4,xfs}/file.bin) ; > > > | > do > > > | > echo "-------------- File: $f -----------"; > > > | > /root/print-fiemap 1 4095 $f; > > > | > done > > > | -------------- File: /mnt/btrfs/file.bin ----------- > > > | File range: 1 - 4095. > > > | Found 0 extents. > > > | > > > | > > > | -------------- File: /mnt/ext4/file.bin ----------- > > > | File range: 1 - 4095. > > > | Found 1 extents. > > > | Fiemap information: > > > | Logical: 0 > > > | Physical: 135270400 > > > | Length: 4096 > > > | Flags: > > > | > > > | -------------- File: /mnt/xfs/file.bin ----------- > > > | File range: 1 - 4095. > > > | Found 2 extents. > > > | Fiemap information: > > > | Logical: 0 > > > | Physical: 49152 > > > | Length: 4096 > > > | Flags: > > > | > > > | Logical: 4096 > > > | Physical: 57344 > > > | Length: 4096 > > > | Flags: FIEMAP_EXTENT_LAST | > > > `---- > > > > > > From linux/Documentation/filesystems/fiemap.txt, "fm_start, and > > > fm_length specify the logical range within the file which the > > > process would like mappings for. Extents returned mirror those on > > > disk - that is, the logical offset of the 1st returned extent may > > > start before fm_start, and the range covered by the last returned > > > extent may end after fm_length. All offsets and lengths are in > > > bytes." > > > > > > So IMHO, the above would mean that all the extents that map the > > > file range [fm_start, fm_start + fm_length - 1] should be returned > > > by a fiemap ioctl call (as done by ext4). > > > > > > In the case of Btrfs, the commit > > > ea8efc74bd0402b4d5f663d007b4e25fa29ea778 i.e. "Btrfs: make sure not > > > to return overlapping extents to fiemap", forces the first extent > > > returned by btrfs_fiemap() to start from fm_start (if fm_start is > > > greater than the file offset mapped by the containing extent's > > > first byte). Can somebody please list some example scenarios where > > > extent_fiemap() ends up returning dupclicate and overlapping > > > extents? > > > Also, the commit 4d479cf010d56ec9c54f3099992d039918f1296b > > > i.e. "Btrfs: sectorsize align offsets in fiemap", rounds up first > > > byte of the file offset range to the next block. Shouldn't it be > > > rounded down instead? > > > > > > XFS lists both the extents even though the first one encompasses the > > > file range specified in the input. > > > > > > > I gave this a test on XFS with a file that looks like this: > > > > # xfs_bmap -v /mnt/file > > /mnt/file: > > EXT: FILE-OFFSET BLOCK-RANGE AG AG-OFFSET TOTAL FLAGS > > 0: [0..15]: 102368..102383 1 (51168..51183) 16 10000 > > 1: [16..63]: 1832..1879 0 (1832..1879) 48 10000 > > > > I narrowed the print_fiemap behavior down to this: > > > > # ./print_fiemap 1 7680 /mnt/file > > File range: 1 - 7680. > > Found 1 extents. > > Fiemap information: > > Logical: 0 > > Physical: 52412416 > > Length: 8192 > > Flags: FIEMAP_EXTENT_UNWRITTEN | > > > > # ./print_fiemap 1 7681 /mnt/file > > File range: 1 - 7681. > > Found 2 extents. > > Fiemap information: > > Logical: 0 > > Physical: 52412416 > > Length: 8192 > > Flags: FIEMAP_EXTENT_UNWRITTEN | > > > > Logical: 8192 > > Physical: 937984 > > Length: 4096 > > Flags: FIEMAP_EXTENT_LAST | FIEMAP_EXTENT_UNWRITTEN | > > > > ... which is caused by using the BTOBB() macro on the provided length > > value. This rounds the length up by a basic block (512 bytes). Switching > > this to use BTOBBT() fixes it for me. Patch below, care to test? Thanks. > > > > Brian > > > > ---8<--- > > > > diff --git a/fs/xfs/xfs_iops.c b/fs/xfs/xfs_iops.c > > index d75621a..d2fbc42 100644 > > --- a/fs/xfs/xfs_iops.c > > +++ b/fs/xfs/xfs_iops.c > > @@ -1060,7 +1060,7 @@ xfs_vn_fiemap( > > if (length == FIEMAP_MAX_OFFSET) > > bm.bmv_length = -1LL; > > else > > - bm.bmv_length = BTOBB(length); > > + bm.bmv_length = BTOBBT(length); > > > > /* We add one because in getbmap world count includes the header */ > > bm.bmv_count = !fieinfo->fi_extents_max ? MAXEXTNUM : > Hello Brian, > It occurs to me that this probably isn't the right fix. The > documentation doesn't clarify for me what the expected behavior is for > unaligned offsets to fiemap. We could round down the start offset and > round up the length and go with that..? As I had indicated for Btrfs, I think we should round down start_offset and round up 'start_offset + length'. > > I suppose this is confusing with regard to how your test application > presents the output. E.g., it shows the file range as start > offset+length, but that could just be wrong. Thoughts? Are you referring to the below statement? printf("File range: %llu - %llu.\n", fiemap->fm_start, fiemap->fm_start + fiemap->fm_length - 1); If yes, then the file range printed would be, [start_offset, start_offset + len - 1] > > Brian > > > > > > > _______________________________________________ > > xfs mailing list > > xfs@oss.sgi.com > > http://oss.sgi.com/mailman/listinfo/xfs > -- chandan From BATV+34dcbea03536f6a26cde+3978+infradead.org+hch@bombadil.srs.infradead.org Tue Jul 15 10:39:27 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: xfs@oss.sgi.com Delivered-To: xfs@oss.sgi.com Received: from relay.sgi.com (relay2.corp.sgi.com [137.38.102.29]) by oss.sgi.com (Postfix) with ESMTP id 8A9587F6F for ; Tue, 15 Jul 2014 10:39:27 -0500 (CDT) Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by relay2.corp.sgi.com (Postfix) with ESMTP id 7E36C304062 for ; Tue, 15 Jul 2014 08:39:24 -0700 (PDT) X-ASG-Debug-ID: 1405438762-04cbb04219100670001-NocioJ Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.9]) by cuda.sgi.com with ESMTP id SHk9izTcbQo98KdL (version=TLSv1 cipher=AES256-SHA bits=256 verify=NO) for ; Tue, 15 Jul 2014 08:39:23 -0700 (PDT) X-Barracuda-Envelope-From: BATV+34dcbea03536f6a26cde+3978+infradead.org+hch@bombadil.srs.infradead.org X-Barracuda-Apparent-Source-IP: 198.137.202.9 Received: from hch by bombadil.infradead.org with local (Exim 4.80.1 #2 (Red Hat Linux)) id 1X74p8-0001zB-Lb; Tue, 15 Jul 2014 15:39:22 +0000 Date: Tue, 15 Jul 2014 08:39:22 -0700 From: Christoph Hellwig To: Jan Kara Cc: Christoph Hellwig , xfs@oss.sgi.com Subject: Re: [PATCH] logprint: Fix printing of AGF buffers Message-ID: <20140715153922.GB5369@infradead.org> X-ASG-Orig-Subj: Re: [PATCH] logprint: Fix printing of AGF buffers References: <1405349100-19734-1-git-send-email-jack@suse.cz> <20140715101931.GC30363@infradead.org> <20140715140938.GA1733@quack.suse.cz> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20140715140938.GA1733@quack.suse.cz> User-Agent: Mutt/1.5.23 (2014-03-12) X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: bombadil.infradead.org[198.137.202.9] X-Barracuda-Start-Time: 1405438763 X-Barracuda-Encrypted: AES256-SHA X-Barracuda-URL: http://192.48.176.25:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 X-Barracuda-Spam-Score: 0.00 X-Barracuda-Spam-Status: No, SCORE=0.00 using per-user scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.7 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.7521 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- On Tue, Jul 15, 2014 at 04:09:38PM +0200, Jan Kara wrote: > I had a look before I submitted this patch and I didn't find anything. > Now that I'm looking again, AGI buffers probably need a similar treatment. > Superblock buffers are already checked against fixed number so those don't > have a problem. Dquot buffers should be fine as well because those don't > have a checksum and other unlogged stuff. And I didn't find any other > structures in the log that would have the problem (please point me if I > missed something). > > Regarding how to fix this cleanly - offsetof() seems like a reasonably > clean way to me. If you prefer to define number of bytes each buffer type > has to have in the log, I can do that as well. Or I could define > alternative structures only containing fields we need in the log so that we > can print info but this all seems like an additional complexity with > disputable gain... I've taken a bit of a closer log (OMG, what a mess logprint is..), and it seems at least in this are the AGF and AGI are affected of the struct growth in v4. It seems like in this specific case using your offsetoff trick is fine, it just needs a good comment explaining it. From BATV+34dcbea03536f6a26cde+3978+infradead.org+hch@bombadil.srs.infradead.org Tue Jul 15 10:40:12 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: xfs@oss.sgi.com Delivered-To: xfs@oss.sgi.com Received: from relay.sgi.com (relay1.corp.sgi.com [137.38.102.111]) by oss.sgi.com (Postfix) with ESMTP id 274B77F7B for ; Tue, 15 Jul 2014 10:40:12 -0500 (CDT) Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by relay1.corp.sgi.com (Postfix) with ESMTP id 17CF68F8078 for ; Tue, 15 Jul 2014 08:40:12 -0700 (PDT) X-ASG-Debug-ID: 1405438810-04cb6c6ad0fcd80001-NocioJ Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.9]) by cuda.sgi.com with ESMTP id Oo1JYXHY8oW84W6t (version=TLSv1 cipher=AES256-SHA bits=256 verify=NO) for ; Tue, 15 Jul 2014 08:40:11 -0700 (PDT) X-Barracuda-Envelope-From: BATV+34dcbea03536f6a26cde+3978+infradead.org+hch@bombadil.srs.infradead.org X-Barracuda-Apparent-Source-IP: 198.137.202.9 Received: from hch by bombadil.infradead.org with local (Exim 4.80.1 #2 (Red Hat Linux)) id 1X74ps-0003I0-LU; Tue, 15 Jul 2014 15:40:08 +0000 Date: Tue, 15 Jul 2014 08:40:08 -0700 From: Christoph Hellwig To: Jakub Bogusz Cc: Dave Chinner , xfs@oss.sgi.com Subject: Re: [PATCH 2/2] dump: fix translation build errors Message-ID: <20140715154008.GC5369@infradead.org> X-ASG-Orig-Subj: Re: [PATCH 2/2] dump: fix translation build errors References: <1405403106-3084-1-git-send-email-david@fromorbit.com> <1405403106-3084-3-git-send-email-david@fromorbit.com> <20140715102143.GF30363@infradead.org> <20140715145514.GA14398@mail> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20140715145514.GA14398@mail> User-Agent: Mutt/1.5.23 (2014-03-12) X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: bombadil.infradead.org[198.137.202.9] X-Barracuda-Start-Time: 1405438810 X-Barracuda-Encrypted: AES256-SHA X-Barracuda-URL: http://192.48.176.15:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 X-Barracuda-Spam-Score: 0.00 X-Barracuda-Spam-Status: No, SCORE=0.00 using per-user scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.7 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.7520 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- On Tue, Jul 15, 2014 at 04:55:14PM +0200, Jakub Bogusz wrote: > > Btw, Jakub are you still interested in xfsdump translations? We might > > do another release soon so it might be a good time to start work on it. > > Do you mean current git master (git://oss.sgi.com/xfs/cmds/xfsdump.git)? Yes! > I checked it, single message needed update (new pl.po attached). Thanks a lot! From BATV+34dcbea03536f6a26cde+3978+infradead.org+hch@bombadil.srs.infradead.org Tue Jul 15 10:49:01 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: xfs@oss.sgi.com Delivered-To: xfs@oss.sgi.com Received: from relay.sgi.com (relay2.corp.sgi.com [137.38.102.29]) by oss.sgi.com (Postfix) with ESMTP id ACE687F76 for ; Tue, 15 Jul 2014 10:49:01 -0500 (CDT) Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by relay2.corp.sgi.com (Postfix) with ESMTP id 6CF4B304043 for ; Tue, 15 Jul 2014 08:49:01 -0700 (PDT) X-ASG-Debug-ID: 1405439339-04cbb0421b100d90001-NocioJ Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.9]) by cuda.sgi.com with ESMTP id 0kVM4rkkbb3C1vQA (version=TLSv1 cipher=AES256-SHA bits=256 verify=NO) for ; Tue, 15 Jul 2014 08:48:59 -0700 (PDT) X-Barracuda-Envelope-From: BATV+34dcbea03536f6a26cde+3978+infradead.org+hch@bombadil.srs.infradead.org X-Barracuda-Apparent-Source-IP: 198.137.202.9 Received: from hch by bombadil.infradead.org with local (Exim 4.80.1 #2 (Red Hat Linux)) id 1X74yP-0005JE-Gk; Tue, 15 Jul 2014 15:48:57 +0000 Date: Tue, 15 Jul 2014 08:48:57 -0700 From: Christoph Hellwig To: Jan ??ul??k Cc: Eric Sandeen , Brian Foster , XFS mail list Subject: Re: symlink loop for /lib64/libhandle.so Message-ID: <20140715154857.GA14716@infradead.org> X-ASG-Orig-Subj: Re: symlink loop for /lib64/libhandle.so References: <1404898212.7231.12.camel@jtulak> <20140709132836.GA65226@bfoster.bfoster> <20140710134851.GA26652@infradead.org> <1405009872.31068.22.camel@jtulak> <53BEC1E7.1070904@sandeen.net> <1405075678.28203.56.camel@jtulak> <1405325087.3196.6.camel@jtulak> <20140714082607.GA19882@infradead.org> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="4Ckj6UjgE2iN1+kY" Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.5.23 (2014-03-12) X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: bombadil.infradead.org[198.137.202.9] X-Barracuda-Start-Time: 1405439339 X-Barracuda-Encrypted: AES256-SHA X-Barracuda-URL: http://192.48.176.25:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 X-Barracuda-Spam-Score: 0.00 X-Barracuda-Spam-Status: No, SCORE=0.00 using per-user scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.7 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.7521 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- --4Ckj6UjgE2iN1+kY Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Hi Jan, there were still some small isues with the patch format, I've attached a version of your patch that has the expected format. Note that I also changed it to only check the canonical names instead of testing the passed in one and the one readlink was called on. This should be enough I think, but please test that it still works for you. Thanks for tracking this down! --4Ckj6UjgE2iN1+kY Content-Type: text/plain; charset=us-ascii Content-Disposition: attachment; filename="libhandle.diff" From: Jan Tulak Subject: [PATCH] libhandle: fix instalation for symlinked /usr Canonicalize the pathnames for PKG_LIB_DIR and PKG_ROOT_LIB_DIR before checking if they are the same. This is required for Fedora which doesn't have a separate /usr/lib directory anymore. Reported-by: Jan Tulak Signed-off-by: Jan Tulak diff --git a/include/buildmacros b/include/buildmacros index 7a01880..4e4e8fa 100644 --- a/include/buildmacros +++ b/include/buildmacros @@ -76,10 +76,11 @@ INSTALL_LTLIB_DEV = \ ../$(INSTALL) -m 644 $(LIBNAME).lai $(PKG_LIB_DIR)/$(LIBNAME).la ; \ ../$(INSTALL) -m 755 -d $(PKG_ROOT_LIB_DIR); \ ../$(INSTALL) -T so_base $(LIBNAME).lai $(PKG_ROOT_LIB_DIR); \ - if test "x$(PKG_LIB_DIR)" != "x$(PKG_ROOT_LIB_DIR)" ; then \ - ../$(INSTALL) -S $(PKG_LIB_DIR)/$(LIBNAME).a $(PKG_ROOT_LIB_DIR)/$(LIBNAME).a; \ - ../$(INSTALL) -S $(PKG_LIB_DIR)/$(LIBNAME).la $(PKG_ROOT_LIB_DIR)/$(LIBNAME).la; \ - ../$(INSTALL) -S $(PKG_ROOT_LIB_DIR)/$(LIBNAME).so $(PKG_LIB_DIR)/$(LIBNAME).so; \ + if [ "x$(shell readlink -f $(PKG_LIB_DIR))" != \ + "x$(shell readlink -f $(PKG_ROOT_LIB_DIR))"; ]; then \ + ../$(INSTALL) -S $(PKG_LIB_DIR)/$(LIBNAME).a $(PKG_ROOT_LIB_DIR)/$(LIBNAME).a; \ + ../$(INSTALL) -S $(PKG_LIB_DIR)/$(LIBNAME).la $(PKG_ROOT_LIB_DIR)/$(LIBNAME).la; \ + ../$(INSTALL) -S $(PKG_ROOT_LIB_DIR)/$(LIBNAME).so $(PKG_LIB_DIR)/$(LIBNAME).so; \ fi else INSTALL_LTLIB_DEV = $(INSTALL_LTLIB_STATIC) --4Ckj6UjgE2iN1+kY-- From david@fromorbit.com Tue Jul 15 19:01:08 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: xfs@oss.sgi.com Delivered-To: xfs@oss.sgi.com Received: from relay.sgi.com (relay1.corp.sgi.com [137.38.102.111]) by oss.sgi.com (Postfix) with ESMTP id AC4967F85 for ; Tue, 15 Jul 2014 19:01:08 -0500 (CDT) Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by relay1.corp.sgi.com (Postfix) with ESMTP id A49EF8F8054 for ; Tue, 15 Jul 2014 17:01:08 -0700 (PDT) X-ASG-Debug-ID: 1405468862-04cb6c6ad3110af0001-NocioJ Received: from ipmail07.adl2.internode.on.net (ipmail07.adl2.internode.on.net [150.101.137.131]) by cuda.sgi.com with ESMTP id YFO7cZgfHDR5K223 for ; Tue, 15 Jul 2014 17:01:03 -0700 (PDT) X-Barracuda-Envelope-From: david@fromorbit.com X-Barracuda-Apparent-Source-IP: 150.101.137.131 X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: AjUHABTAxVN5LHOd/2dsb2JhbABZgw6BKYJ2qVYGlwiFZQGBDRd1hAQBBSMPASMjEAgDGAICBSECAg8FJQMhE4hBsiuYDBcYgRSET4huEQFQB4J3gUwFmxeUJoNWKy+BDA Received: from ppp121-44-115-157.lns20.syd6.internode.on.net (HELO dastard) ([121.44.115.157]) by ipmail07.adl2.internode.on.net with ESMTP; 16 Jul 2014 09:31:02 +0930 Received: from dave by dastard with local (Exim 4.80) (envelope-from ) id 1X7CeP-00058r-AA; Wed, 16 Jul 2014 10:00:49 +1000 Date: Wed, 16 Jul 2014 10:00:49 +1000 From: Dave Chinner To: Arkadiusz =?utf-8?Q?Mi=C5=9Bkiewicz?= Cc: xfs@oss.sgi.com Subject: Re: [PATCH] Detect strto* failures based on errno. Message-ID: <20140716000049.GN22339@dastard> X-ASG-Orig-Subj: Re: [PATCH] Detect strto* failures based on errno. References: <20140713230406.GE22339@dastard> <1405324619-25515-1-git-send-email-arekm@maven.pl> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: <1405324619-25515-1-git-send-email-arekm@maven.pl> User-Agent: Mutt/1.5.21 (2010-09-15) X-Barracuda-Connect: ipmail07.adl2.internode.on.net[150.101.137.131] X-Barracuda-Start-Time: 1405468863 X-Barracuda-URL: http://192.48.176.15:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 X-Barracuda-Spam-Score: 0.00 X-Barracuda-Spam-Status: No, SCORE=0.00 using per-user scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.7 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.7532 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- On Mon, Jul 14, 2014 at 09:56:59AM +0200, Arkadiusz Miśkiewicz wrote: > Code was testing for ERANGE errno only in some places. In other places > it didn't do any errno checking at all. > > Unify strto* result testing by treating any non zero errno as failure. > > Signed-off-by: Arkadiusz Miśkiewicz Arkadiusz, why did git-send-email encode this entire commit in base64? Can you configure git to send patches in plain text? even UTF-8 encoding is fine. Yes, I know git am handles base64 encoded emails, but humans don't.... :/ As it is, the patch is fine. Reviewed-by: Dave Chinner Cheers, Dave. -- Dave Chinner david@fromorbit.com From david@fromorbit.com Tue Jul 15 19:39:29 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: xfs@oss.sgi.com Delivered-To: xfs@oss.sgi.com Received: from relay.sgi.com (relay2.corp.sgi.com [137.38.102.29]) by oss.sgi.com (Postfix) with ESMTP id 6A1177F8C for ; Tue, 15 Jul 2014 19:39:29 -0500 (CDT) Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by relay2.corp.sgi.com (Postfix) with ESMTP id 4BED4304048 for ; Tue, 15 Jul 2014 17:39:29 -0700 (PDT) X-ASG-Debug-ID: 1405471166-04cb6c6ad01120b0001-NocioJ Received: from ipmail07.adl2.internode.on.net (ipmail07.adl2.internode.on.net [150.101.137.131]) by cuda.sgi.com with ESMTP id 4W6EFQNGa8qUWLv2 for ; Tue, 15 Jul 2014 17:39:27 -0700 (PDT) X-Barracuda-Envelope-From: david@fromorbit.com X-Barracuda-Apparent-Source-IP: 150.101.137.131 X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: AjQHAHTJxVN5LHOd/2dsb2JhbABZgw6BKaxMBpcIhWUBgQ8XdYQDAQEEATocFgoDBQsIAw4KCSUPBSUDIROIOgfKLRcYhWOJUAeEQwWbF5Qmg1YrLw Received: from ppp121-44-115-157.lns20.syd6.internode.on.net (HELO dastard) ([121.44.115.157]) by ipmail07.adl2.internode.on.net with ESMTP; 16 Jul 2014 10:09:04 +0930 Received: from dave by dastard with local (Exim 4.80) (envelope-from ) id 1X7DFD-0005KC-4G; Wed, 16 Jul 2014 10:38:51 +1000 Date: Wed, 16 Jul 2014 10:38:51 +1000 From: Dave Chinner To: Christoph Hellwig Cc: Jan Kara , xfs@oss.sgi.com Subject: Re: [PATCH] logprint: Fix printing of AGF buffers Message-ID: <20140716003851.GO22339@dastard> X-ASG-Orig-Subj: Re: [PATCH] logprint: Fix printing of AGF buffers References: <1405349100-19734-1-git-send-email-jack@suse.cz> <20140715101931.GC30363@infradead.org> <20140715140938.GA1733@quack.suse.cz> <20140715153922.GB5369@infradead.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20140715153922.GB5369@infradead.org> User-Agent: Mutt/1.5.21 (2010-09-15) X-Barracuda-Connect: ipmail07.adl2.internode.on.net[150.101.137.131] X-Barracuda-Start-Time: 1405471166 X-Barracuda-URL: http://192.48.176.15:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 X-Barracuda-Spam-Score: 0.00 X-Barracuda-Spam-Status: No, SCORE=0.00 using per-user scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.7 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.7533 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- On Tue, Jul 15, 2014 at 08:39:22AM -0700, Christoph Hellwig wrote: > On Tue, Jul 15, 2014 at 04:09:38PM +0200, Jan Kara wrote: > > I had a look before I submitted this patch and I didn't find anything. > > Now that I'm looking again, AGI buffers probably need a similar treatment. > > Superblock buffers are already checked against fixed number so those don't > > have a problem. Dquot buffers should be fine as well because those don't > > have a checksum and other unlogged stuff. And I didn't find any other > > structures in the log that would have the problem (please point me if I > > missed something). > > > > Regarding how to fix this cleanly - offsetof() seems like a reasonably > > clean way to me. If you prefer to define number of bytes each buffer type > > has to have in the log, I can do that as well. Or I could define > > alternative structures only containing fields we need in the log so that we > > can print info but this all seems like an additional complexity with > > disputable gain... > > I've taken a bit of a closer log (OMG, what a mess logprint is..), and > it seems at least in this are the AGF and AGI are affected of the struct > growth in v4. Yes, logprint is a steaming pile. At some point I'll properly abstract the kernel side log recovery code and share that with userspace and then convert logprint to use that.... > It seems like in this specific case using your offsetoff trick is > fine, it just needs a good comment explaining it. I added this: /* * The addition of spare space and the non-logged CRC format * fields to the AGF mean that the size that is logged is almost * always going to be smaller than the structure itself. Hence * we need to make sure that the buffer contains all the data we * want to print rather than just check against the structure * size. */ Cheers, Dave. -- Dave Chinner david@fromorbit.com From david@fromorbit.com Tue Jul 15 21:58:26 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: xfs@oss.sgi.com Delivered-To: xfs@oss.sgi.com Received: from relay.sgi.com (relay2.corp.sgi.com [137.38.102.29]) by oss.sgi.com (Postfix) with ESMTP id BE12E7F96 for ; Tue, 15 Jul 2014 21:58:26 -0500 (CDT) Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by relay2.corp.sgi.com (Postfix) with ESMTP id 8D3F3304048 for ; Tue, 15 Jul 2014 19:58:26 -0700 (PDT) X-ASG-Debug-ID: 1405479504-04cb6c6ad31172e0001-NocioJ Received: from ipmail07.adl2.internode.on.net (ipmail07.adl2.internode.on.net [150.101.137.131]) by cuda.sgi.com with ESMTP id wfoiClJ6GxG9ErUZ for ; Tue, 15 Jul 2014 19:58:24 -0700 (PDT) X-Barracuda-Envelope-From: david@fromorbit.com X-Barracuda-Apparent-Source-IP: 150.101.137.131 X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: AjMHABvpxVN5LHOd/2dsb2JhbABZgw6BKaxQBpcIhWUBgRIXdYQEAQU6HCMQCAMYCSUPBSUDChcTiEHKLhcYhWOIZWsHgy2BFgWbF4taiEyDVisv Received: from ppp121-44-115-157.lns20.syd6.internode.on.net (HELO dastard) ([121.44.115.157]) by ipmail07.adl2.internode.on.net with ESMTP; 16 Jul 2014 12:28:23 +0930 Received: from dave by dastard with local (Exim 4.80) (envelope-from ) id 1X7FQ2-0005ca-B7; Wed, 16 Jul 2014 12:58:10 +1000 Date: Wed, 16 Jul 2014 12:58:10 +1000 From: Dave Chinner To: Eric Sandeen Cc: xfs-oss Subject: Re: [PATCH] xfs_repair: copy, don't clear, stripe geometry in backup SB Message-ID: <20140716025810.GA20518@dastard> X-ASG-Orig-Subj: Re: [PATCH] xfs_repair: copy, don't clear, stripe geometry in backup SB References: <53C06CE9.9000209@redhat.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <53C06CE9.9000209@redhat.com> User-Agent: Mutt/1.5.21 (2010-09-15) X-Barracuda-Connect: ipmail07.adl2.internode.on.net[150.101.137.131] X-Barracuda-Start-Time: 1405479504 X-Barracuda-URL: http://192.48.176.15:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 X-Barracuda-Spam-Score: 0.00 X-Barracuda-Spam-Status: No, SCORE=0.00 using per-user scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.7 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.7536 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- On Fri, Jul 11, 2014 at 06:02:01PM -0500, Eric Sandeen wrote: > Today, if we have a filesystem with stripe geometry and > a damaged primary superblock, we will zero out stripe geometry > if we have copied the backup. > > I'm guessing this might be because changing geometry with mount > options only updates the primary, so backups aren't guaranteed > to be current or correct. > > Unfortunately, that leaves us with sb 0 w/ no geom, and backups > *with* geom, so the next repair finds the mismatch, and complains. > (In other words, the 2nd repair does not come up clean.)_ > And ... the second repair copies the backup stripe geometry back > into the primary! > > Rather than clearing stripe geometry in this case, just leave it > at what was found in the backup super, and inform the user that this > was done. This leaves a consistent filesystem, and gives the user > a heads-up to double-check the result. > > This can all be demonstrated and tested by running xfs/030 with > geometry set in MKFS_OPTIONS. (To really make the test pass, > we need to filter the warning out of repair output.) There are a few other tests that also fail due to this. Can you please send an updated filter patch to fstests@vger.kernel.org? Cheers, Dave. -- Dave Chinner david@fromorbit.com From david@fromorbit.com Tue Jul 15 22:01:51 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: xfs@oss.sgi.com Delivered-To: xfs@oss.sgi.com Received: from relay.sgi.com (relay3.corp.sgi.com [198.149.34.15]) by oss.sgi.com (Postfix) with ESMTP id AE6227F9F for ; Tue, 15 Jul 2014 22:01:51 -0500 (CDT) Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by relay3.corp.sgi.com (Postfix) with ESMTP id 3BB1DAC002 for ; Tue, 15 Jul 2014 20:01:48 -0700 (PDT) X-ASG-Debug-ID: 1405479705-04cbb0421a11ac80001-NocioJ Received: from ipmail07.adl2.internode.on.net (ipmail07.adl2.internode.on.net [150.101.137.131]) by cuda.sgi.com with ESMTP id dD3fvur2Tya3UfCU for ; Tue, 15 Jul 2014 20:01:46 -0700 (PDT) X-Barracuda-Envelope-From: david@fromorbit.com X-Barracuda-Apparent-Source-IP: 150.101.137.131 X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: AjUHAELqxVN5LHOd/2dsb2JhbABZgw6BKYJ2qVsGlwiFZQGBEhd1hAQBBSMPASMjEAgDGAICBSECAg8FJQMhE4hBsiqYAhcYgRSET4lQB4J3NoEWBZsXlCaDVisv Received: from ppp121-44-115-157.lns20.syd6.internode.on.net (HELO dastard) ([121.44.115.157]) by ipmail07.adl2.internode.on.net with ESMTP; 16 Jul 2014 12:31:45 +0930 Received: from dave by dastard with local (Exim 4.80) (envelope-from ) id 1X7FTI-0005dz-Kg; Wed, 16 Jul 2014 13:01:32 +1000 Date: Wed, 16 Jul 2014 13:01:32 +1000 From: Dave Chinner To: Arkadiusz =?utf-8?Q?Mi=C5=9Bkiewicz?= Cc: xfs@oss.sgi.com Subject: Re: [PATCH] Detect strto* failures based on errno. Message-ID: <20140716030132.GB20518@dastard> X-ASG-Orig-Subj: Re: [PATCH] Detect strto* failures based on errno. References: <20140713230406.GE22339@dastard> <1405324619-25515-1-git-send-email-arekm@maven.pl> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: <1405324619-25515-1-git-send-email-arekm@maven.pl> User-Agent: Mutt/1.5.21 (2010-09-15) X-Barracuda-Connect: ipmail07.adl2.internode.on.net[150.101.137.131] X-Barracuda-Start-Time: 1405479705 X-Barracuda-URL: http://192.48.176.25:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 X-Barracuda-Spam-Score: 0.00 X-Barracuda-Spam-Status: No, SCORE=0.00 using per-user scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.7 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.7536 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- On Mon, Jul 14, 2014 at 09:56:59AM +0200, Arkadiusz Miśkiewicz wrote: > Code was testing for ERANGE errno only in some places. In other places > it didn't do any errno checking at all. > > Unify strto* result testing by treating any non zero errno as failure. > > Signed-off-by: Arkadiusz Miśkiewicz This patch appears to cause xfs/071 to fail: Writing 512 bytes, offset is +0 (direct=false) -pwrite64: File too large +non-numeric offset argument -- Reading 512 bytes (direct=false) read 0/512 bytes at offset ... (Run 'diff -u tests/xfs/071.out /home/dave/src/xfstests-dev/results//xfs/071.out.bad' to see the entire diff) Can you have a look into this? Cheers, Dave. -- Dave Chinner david@fromorbit.com From nscott@redhat.com Tue Jul 15 22:40:09 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: xfs@oss.sgi.com Delivered-To: xfs@oss.sgi.com Received: from relay.sgi.com (relay3.corp.sgi.com [198.149.34.15]) by oss.sgi.com (Postfix) with ESMTP id 31A9A7FAA for ; Tue, 15 Jul 2014 22:40:09 -0500 (CDT) Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by relay3.corp.sgi.com (Postfix) with ESMTP id 9ECB8AC002 for ; Tue, 15 Jul 2014 20:40:08 -0700 (PDT) X-ASG-Debug-ID: 1405482006-04cb6c6ad0118f60001-NocioJ Received: from mx4-phx2.redhat.com (mx4-phx2.redhat.com [209.132.183.25]) by cuda.sgi.com with ESMTP id D8HWT85GH5VG3XGx for ; Tue, 15 Jul 2014 20:40:06 -0700 (PDT) X-Barracuda-Envelope-From: nscott@redhat.com X-Barracuda-Apparent-Source-IP: 209.132.183.25 Received: from zmail20.collab.prod.int.phx2.redhat.com (zmail20.collab.prod.int.phx2.redhat.com [10.5.83.23]) by mx4-phx2.redhat.com (8.13.8/8.13.8) with ESMTP id s6G3e0fL010874; Tue, 15 Jul 2014 23:40:00 -0400 Date: Tue, 15 Jul 2014 23:40:00 -0400 (EDT) From: Nathan Scott Reply-To: Nathan Scott To: Eric Sandeen , Dave Chinner Cc: xfs-oss Message-ID: <369317103.10971454.1405482000035.JavaMail.zimbra@redhat.com> In-Reply-To: <53C3FFED.5080301@sandeen.net> References: <53C3FFED.5080301@sandeen.net> Subject: Re: time for an xfsdump release? MIME-Version: 1.0 X-ASG-Orig-Subj: Re: time for an xfsdump release? Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit X-Originating-IP: [10.5.82.11] X-Mailer: Zimbra 8.0.6_GA_5922 (ZimbraWebClient - FF17 (Linux)/8.0.6_GA_5922) Thread-Topic: time for an xfsdump release? Thread-Index: wuwusUdbNrDyxIwcPZoNuty6mCv1dw== X-Barracuda-Connect: mx4-phx2.redhat.com[209.132.183.25] X-Barracuda-Start-Time: 1405482006 X-Barracuda-URL: http://192.48.176.15:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 X-Barracuda-Spam-Score: 0.02 X-Barracuda-Spam-Status: No, SCORE=0.02 using per-user scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.7 tests=THREAD_INDEX, THREAD_TOPIC X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.7536 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.01 THREAD_INDEX thread-index: AcO7Y8iR61tzADqsRmmc5wNiFHEOig== 0.01 THREAD_TOPIC Thread-Topic: ...(Japanese Subject)... Hi, ----- Original Message ----- > There aren't a lot of changes since v3.1.3, but with the rate of change of > xfsdump (slow), I wonder if it's worth cutting a point release to get these > bugfixes out there: I've verified and pushed a few Debian packaging updates folks have sent through to the git tree below. Please include these odds & ends too... thanks! Changes committed to git://oss.sgi.com/nathans/xfsdump.git master debian/Makefile | 2 +- debian/changelog | 8 ++++++++ debian/control | 2 +- debian/rules | 3 +++ debian/watch | 3 +++ 5 files changed, 16 insertions(+), 2 deletions(-) commit 96be05e971e1e23c252f5432fe430cd724a52910 Author: Nathan Scott Date: Wed Jul 16 13:29:12 2014 +1000 xfsdump: update debian packaging for next release Make a note of each of the Debian bugs resolved in this release, so that they'll be automatically closed during next upload. Signed-off-by: Nathan Scott commit f33aa73b89624feaeb94f4d48b88f2d480798420 Author: Nathan Scott Date: Wed Jul 16 13:25:36 2014 +1000 xfsdump: add a watch file into the debian packaging Apparently it can improve some Debian tools that check it (e.g. UDD). Resolves Debian bug #748482. Signed-off-by: Nathan Scott commit fae9bcf317ce3a0d919ebdc6fd667993a4dbd484 Author: Nathan Scott Date: Wed Jul 16 13:21:27 2014 +1000 xfsdump: rebuild configure files during deb package builds Use the same technique applied to xfsprogs recently to tackle out-of-date config.{sub,guess} files in the build. Resolves Debian bug #746531. Signed-off-by: Nathan Scott From nscott@redhat.com Tue Jul 15 22:56:25 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: xfs@oss.sgi.com Delivered-To: xfs@oss.sgi.com Received: from relay.sgi.com (relay2.corp.sgi.com [137.38.102.29]) by oss.sgi.com (Postfix) with ESMTP id DEF297FB3 for ; Tue, 15 Jul 2014 22:56:25 -0500 (CDT) Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by relay2.corp.sgi.com (Postfix) with ESMTP id C4BB6304039 for ; Tue, 15 Jul 2014 20:56:22 -0700 (PDT) X-ASG-Debug-ID: 1405482980-04bdf0356811d060001-NocioJ Received: from mx3-phx2.redhat.com (mx3-phx2.redhat.com [209.132.183.24]) by cuda.sgi.com with ESMTP id hD5GXb8EuZ8lunJL for ; Tue, 15 Jul 2014 20:56:20 -0700 (PDT) X-Barracuda-Envelope-From: nscott@redhat.com X-Barracuda-Apparent-Source-IP: 209.132.183.24 Received: from zmail20.collab.prod.int.phx2.redhat.com (zmail20.collab.prod.int.phx2.redhat.com [10.5.83.23]) by mx3-phx2.redhat.com (8.13.8/8.13.8) with ESMTP id s6G3uDRW011840; Tue, 15 Jul 2014 23:56:13 -0400 Date: Tue, 15 Jul 2014 23:56:13 -0400 (EDT) From: Nathan Scott Reply-To: Nathan Scott To: Eric Sandeen , Dave Chinner Cc: xfs-oss Message-ID: <709922250.10972745.1405482973400.JavaMail.zimbra@redhat.com> In-Reply-To: <369317103.10971454.1405482000035.JavaMail.zimbra@redhat.com> References: <53C3FFED.5080301@sandeen.net> <369317103.10971454.1405482000035.JavaMail.zimbra@redhat.com> Subject: Re: time for an xfsdump release? MIME-Version: 1.0 X-ASG-Orig-Subj: Re: time for an xfsdump release? Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit X-Originating-IP: [10.5.82.11] X-Mailer: Zimbra 8.0.6_GA_5922 (ZimbraWebClient - FF17 (Linux)/8.0.6_GA_5922) Thread-Topic: time for an xfsdump release? Thread-Index: wuwusUdbNrDyxIwcPZoNuty6mCv1d0AxRjGN X-Barracuda-Connect: mx3-phx2.redhat.com[209.132.183.24] X-Barracuda-Start-Time: 1405482980 X-Barracuda-URL: http://192.48.157.11:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 X-Barracuda-Spam-Score: 0.02 X-Barracuda-Spam-Status: No, SCORE=0.02 using per-user scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.7 tests=THREAD_INDEX, THREAD_TOPIC X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.7537 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.01 THREAD_INDEX thread-index: AcO7Y8iR61tzADqsRmmc5wNiFHEOig== 0.01 THREAD_TOPIC Thread-Topic: ...(Japanese Subject)... ----- Original Message ----- > ----- Original Message ----- > > There aren't a lot of changes since v3.1.3, but with the rate of change of > > xfsdump (slow), I wonder if it's worth cutting a point release to get these > > bugfixes out there: > > I've verified and pushed a few Debian packaging updates folks have sent > through to the git tree below. Please include these odds & ends too... > And some similar changes for xfsprogs... thanks. Changes committed to git://oss.sgi.com/nathans/xfsprogs.git master debian/Makefile | 2 +- debian/changelog | 7 +++++++ debian/watch | 3 +++ 3 files changed, 11 insertions(+), 1 deletion(-) commit b6ad8545923aaa0bcc6ec7f7d3edea00382ef3a1 Author: Nathan Scott Date: Wed Jul 16 13:50:47 2014 +1000 xfsprogs: update debian packaging for next release Make a note of each of the Debian bugs resolved in this release, so that they'll be automatically closed during next upload. Signed-off-by: Nathan Scott commit 1a05f9188b1a151fa6dcdec61880699d2acf53cd Author: Nathan Scott Date: Wed Jul 16 13:49:16 2014 +1000 xfsprogs: add a watch file into the debian packaging Apparently it can improve some Debian tools that check it (e.g. UDD). Resolves Debian bug #748483. Signed-off-by: Nathan Scott From jeff.liu@oracle.com Wed Jul 16 02:11:59 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: xfs@oss.sgi.com Delivered-To: xfs@oss.sgi.com Received: from relay.sgi.com (relay2.corp.sgi.com [137.38.102.29]) by oss.sgi.com (Postfix) with ESMTP id C69497F9E for ; Wed, 16 Jul 2014 02:11:59 -0500 (CDT) Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by relay2.corp.sgi.com (Postfix) with ESMTP id B110F304043 for ; Wed, 16 Jul 2014 00:11:56 -0700 (PDT) X-ASG-Debug-ID: 1405494715-04cbb0421912b0d0001-NocioJ Received: from aserp1040.oracle.com (aserp1040.oracle.com [141.146.126.69]) by cuda.sgi.com with ESMTP id skQCMGCt7Zru2kZu (version=TLSv1 cipher=AES256-SHA bits=256 verify=NO) for ; Wed, 16 Jul 2014 00:11:55 -0700 (PDT) X-Barracuda-Envelope-From: jeff.liu@oracle.com X-Barracuda-Apparent-Source-IP: 141.146.126.69 Received: from acsinet21.oracle.com (acsinet21.oracle.com [141.146.126.237]) by aserp1040.oracle.com (Sentrion-MTA-4.3.2/Sentrion-MTA-4.3.2) with ESMTP id s6G7BMVt031811 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK); Wed, 16 Jul 2014 07:11:23 GMT Received: from aserz7021.oracle.com (aserz7021.oracle.com [141.146.126.230]) by acsinet21.oracle.com (8.14.4+Sun/8.14.4) with ESMTP id s6G7BLD8017038 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO); Wed, 16 Jul 2014 07:11:22 GMT Received: from abhmp0012.oracle.com (abhmp0012.oracle.com [141.146.116.18]) by aserz7021.oracle.com (8.14.4+Sun/8.14.4) with ESMTP id s6G7BLb6017029; Wed, 16 Jul 2014 07:11:21 GMT Received: from [192.168.1.102] (/218.58.151.3) by default (Oracle Beehive Gateway v4.0) with ESMTP ; Wed, 16 Jul 2014 00:11:21 -0700 Message-ID: <53C62595.6010702@oracle.com> Date: Wed, 16 Jul 2014 15:11:17 +0800 From: Jeff Liu User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:24.0) Gecko/20100101 Thunderbird/24.1.0 MIME-Version: 1.0 To: Christoph Hellwig CC: "xfs@oss.sgi.com" Subject: Re: [PATCH] xfs: fix uflags detection at xfs_fs_rm_xquota References: <53C4F5DB.2060108@oracle.com> <20140715102520.GH30363@infradead.org> X-ASG-Orig-Subj: Re: [PATCH] xfs: fix uflags detection at xfs_fs_rm_xquota In-Reply-To: <20140715102520.GH30363@infradead.org> Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit X-Source-IP: acsinet21.oracle.com [141.146.126.237] X-Barracuda-Connect: aserp1040.oracle.com[141.146.126.69] X-Barracuda-Start-Time: 1405494715 X-Barracuda-Encrypted: AES256-SHA X-Barracuda-URL: http://192.48.176.25:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 X-Barracuda-Spam-Score: 0.00 X-Barracuda-Spam-Status: No, SCORE=0.00 using per-user scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.7 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.7540 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- On 07/15/2014 18:25 PM, Christoph Hellwig wrote: > On Tue, Jul 15, 2014 at 05:35:23PM +0800, Jeff Liu wrote: >> From: Jie Liu >> >> We are intended to check up uflags against FS_PROJ_QUOTA rather than >> FS_USER_UQUOTA once more, it looks to me like a typo, but might cause >> the project quota metadata space can not be removed. > > This code was introduced by commit > 9da93f9b7cdf8ab28da6b364cdc1fafc8670b4dc which attempts to fix the > broken quotarm code. Seems like we need a testcase for this > functionality or just remove it. Physically removing the quota file > never seems that useful to me to start with.. Is there an approach to verify that a particular quota file inode has been successfully removed? It seems we have to do this in a test case but am not yet figure out a way, or any thoughts for the test case? Cheers, -Jeff From BATV+ade25be49843057bf334+3979+infradead.org+hch@bombadil.srs.infradead.org Wed Jul 16 02:12:56 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: xfs@oss.sgi.com Delivered-To: xfs@oss.sgi.com Received: from relay.sgi.com (relay3.corp.sgi.com [198.149.34.15]) by oss.sgi.com (Postfix) with ESMTP id 4F5537F57 for ; Wed, 16 Jul 2014 02:12:56 -0500 (CDT) Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by relay3.corp.sgi.com (Postfix) with ESMTP id DD701AC007 for ; Wed, 16 Jul 2014 00:12:55 -0700 (PDT) X-ASG-Debug-ID: 1405494770-04cb6c6ad2123ea0001-NocioJ Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.9]) by cuda.sgi.com with ESMTP id I09EWXGy9iovOoEu (version=TLSv1 cipher=AES256-SHA bits=256 verify=NO) for ; Wed, 16 Jul 2014 00:12:51 -0700 (PDT) X-Barracuda-Envelope-From: BATV+ade25be49843057bf334+3979+infradead.org+hch@bombadil.srs.infradead.org X-Barracuda-Apparent-Source-IP: 198.137.202.9 Received: from hch by bombadil.infradead.org with local (Exim 4.80.1 #2 (Red Hat Linux)) id 1X7JOU-0000cf-KF; Wed, 16 Jul 2014 07:12:50 +0000 Date: Wed, 16 Jul 2014 00:12:50 -0700 From: Christoph Hellwig To: Jeff Liu Cc: Christoph Hellwig , "xfs@oss.sgi.com" Subject: Re: [PATCH] xfs: fix uflags detection at xfs_fs_rm_xquota Message-ID: <20140716071250.GA1461@infradead.org> X-ASG-Orig-Subj: Re: [PATCH] xfs: fix uflags detection at xfs_fs_rm_xquota References: <53C4F5DB.2060108@oracle.com> <20140715102520.GH30363@infradead.org> <53C62595.6010702@oracle.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <53C62595.6010702@oracle.com> User-Agent: Mutt/1.5.23 (2014-03-12) X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: bombadil.infradead.org[198.137.202.9] X-Barracuda-Start-Time: 1405494771 X-Barracuda-Encrypted: AES256-SHA X-Barracuda-URL: http://192.48.176.15:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 X-Barracuda-Spam-Score: 0.00 X-Barracuda-Spam-Status: No, SCORE=0.00 using per-user scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.7 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.7540 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- On Wed, Jul 16, 2014 at 03:11:17PM +0800, Jeff Liu wrote: > > This code was introduced by commit > > 9da93f9b7cdf8ab28da6b364cdc1fafc8670b4dc which attempts to fix the > > broken quotarm code. Seems like we need a testcase for this > > functionality or just remove it. Physically removing the quota file > > never seems that useful to me to start with.. > > Is there an approach to verify that a particular quota file inode has > been successfully removed? It seems we have to do this in a test case > but am not yet figure out a way, or any thoughts for the test case? umount the filesystem and check that the field in the superblock pointing to that kind of quota inode is zeroed out would be my suggestion. From arekm@maven.pl Wed Jul 16 02:44:18 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=T_DKIM_INVALID autolearn=ham version=3.3.1 X-Original-To: xfs@oss.sgi.com Delivered-To: xfs@oss.sgi.com Received: from relay.sgi.com (relay2.corp.sgi.com [137.38.102.29]) by oss.sgi.com (Postfix) with ESMTP id 7BE727FB0 for ; Wed, 16 Jul 2014 02:44:18 -0500 (CDT) Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by relay2.corp.sgi.com (Postfix) with ESMTP id 4D55E304043 for ; Wed, 16 Jul 2014 00:44:18 -0700 (PDT) X-ASG-Debug-ID: 1405496651-04bdf03568128370001-NocioJ Received: from mail-wi0-f175.google.com (mail-wi0-f175.google.com [209.85.212.175]) by cuda.sgi.com with ESMTP id Oa3hjLjr2TxfYPqM (version=TLSv1 cipher=RC4-SHA bits=128 verify=NO) for ; Wed, 16 Jul 2014 00:44:12 -0700 (PDT) X-Barracuda-Envelope-From: arekm@maven.pl X-Barracuda-Apparent-Source-IP: 209.85.212.175 Received: by mail-wi0-f175.google.com with SMTP id ho1so5614906wib.14 for ; Wed, 16 Jul 2014 00:44:11 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=maven.pl; s=maven; h=from:to:subject:date:user-agent:cc:references:in-reply-to :mime-version:content-type:content-transfer-encoding:message-id; bh=vpu4L+4GgpuTCq9lyuO5hHvwJom0E5w8W2Znu0+IYOY=; b=onzkRr8kKt/DcXTTUtQDc2X7xRo58Ftdi9n/5joBkhq/qErzp8CX/46E3Tj81YN8bD TlgORdiTpQB9zpLrPPMSht5nSPKoOEL9yzq+5eB3yy5/u96wx1WY8KDk5Y/TTaBGIehL Enr20OA082tlXzCBzcz8/5HEpM4qSot3haVa8= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:from:to:subject:date:user-agent:cc:references :in-reply-to:mime-version:content-type:content-transfer-encoding :message-id; bh=vpu4L+4GgpuTCq9lyuO5hHvwJom0E5w8W2Znu0+IYOY=; b=a0sdlVttmboB4OAuFLKAzSouiZwX2q1tO/O1LDksSn/K1j8FVNnFZK06phmqnvlXFO fG7PHR49bfn680L6G1LjfBMKaSBoeYpcLzlYawnVu5kDbqVutdGNjJD3DyRLC5InJTXM g2P990KV7JxNA9ClQehNdSZzOw6YTBMeOAiel3ooqoxT7o+Lm75AxfH1nFkxMFlMpLpV H6LYfh6FAKbjMlHQnVH3aWEZB4qvyTcDDq5pkHHaDq+4Fgl2xprqqplLP+w2x5OdeZZx TsueYK8xudUZGIxztMhstqaxT6Fh55XSPtOZHZd5vaHLEhjKdMUgRbNtLOtO0n+4VaWQ /phw== X-Gm-Message-State: ALoCoQkT3g5YZns1Klw+Slu0Fc78mHxqGxBuzCoPTucjd1dWYh6Yk8tOQQC9F6pP9tS0gHB+pbe8 X-Received: by 10.180.221.44 with SMTP id qb12mr11608237wic.76.1405496650711; Wed, 16 Jul 2014 00:44:10 -0700 (PDT) Received: from t400.localnet ([91.234.176.246]) by mx.google.com with ESMTPSA id k19sm53299605wie.20.2014.07.16.00.44.09 for (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Wed, 16 Jul 2014 00:44:10 -0700 (PDT) From: Arkadiusz =?utf-8?q?Mi=C5=9Bkiewicz?= To: Dave Chinner Subject: Re: [PATCH] Detect strto* failures based on errno. Date: Wed, 16 Jul 2014 09:44:07 +0200 X-ASG-Orig-Subj: Re: [PATCH] Detect strto* failures based on errno. User-Agent: KMail/1.13.7 (Linux/3.16.0-rc5-dirty; KDE/4.13.2; x86_64; ; ) Cc: xfs@oss.sgi.com References: <20140713230406.GE22339@dastard> <1405324619-25515-1-git-send-email-arekm@maven.pl> <20140716030132.GB20518@dastard> In-Reply-To: <20140716030132.GB20518@dastard> MIME-Version: 1.0 Content-Type: Text/Plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <201407160944.07266.arekm@maven.pl> X-Barracuda-Connect: mail-wi0-f175.google.com[209.85.212.175] X-Barracuda-Start-Time: 1405496652 X-Barracuda-Encrypted: RC4-SHA X-Barracuda-URL: http://192.48.157.11:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 X-Barracuda-Spam-Score: 0.00 X-Barracuda-Spam-Status: No, SCORE=0.00 using per-user scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.7 tests=DKIM_SIGNED, DKIM_VERIFIED X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.7541 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- -0.00 DKIM_VERIFIED Domain Keys Identified Mail: signature passes verification 0.00 DKIM_SIGNED Domain Keys Identified Mail: message has a signature On Wednesday 16 of July 2014, Dave Chinner wrote: > On Mon, Jul 14, 2014 at 09:56:59AM +0200, Arkadiusz Mi=C5=9Bkiewicz wrote: > > Code was testing for ERANGE errno only in some places. In other places > > it didn't do any errno checking at all. > >=20 > > Unify strto* result testing by treating any non zero errno as failure. > >=20 > > Signed-off-by: Arkadiusz Mi=C5=9Bkiewicz >=20 > This patch appears to cause xfs/071 to fail: >=20 >=20 >=20 > Writing 512 bytes, offset is +0 (direct=3Dfalse) > -pwrite64: File too large > +non-numeric offset argument -- > Reading 512 bytes (direct=3Dfalse) > read 0/512 bytes at offset > ... > (Run 'diff -u tests/xfs/071.out > /home/dave/src/xfstests-dev/results//xfs/071.out.bad' to see the entire > diff) >=20 > Can you have a look into this? The test runs: xfs_io -c 'pwrite 9223373136366403583 512' file where 9223373136366403583 is bigger than LLONG_MAX (9223372036854775807), so # LC_ALL=3DC xfs_io -c 'pwrite 9223373136366403583 512' ./x (MYDEBUG)strerror(34): Numerical result out of range non-numeric offset argument -- 9223373136366403583 What would be best approach to fix this - some cvtunum for unsigned long lo= ng? > Cheers, >=20 > Dave. =2D-=20 Arkadiusz Mi=C5=9Bkiewicz, arekm / maven.pl From BATV+ade25be49843057bf334+3979+infradead.org+hch@bombadil.srs.infradead.org Wed Jul 16 03:11:12 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: xfs@oss.sgi.com Delivered-To: xfs@oss.sgi.com Received: from relay.sgi.com (relay2.corp.sgi.com [137.38.102.29]) by oss.sgi.com (Postfix) with ESMTP id 1FEA87F9B for ; Wed, 16 Jul 2014 03:11:12 -0500 (CDT) Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by relay2.corp.sgi.com (Postfix) with ESMTP id 1431C304043 for ; Wed, 16 Jul 2014 01:11:09 -0700 (PDT) X-ASG-Debug-ID: 1405498267-04cbb0421912d310001-NocioJ Received: from bombadil.infradead.org ([198.137.202.9]) by cuda.sgi.com with ESMTP id b2zIgiKo4V4PMLb0 (version=TLSv1 cipher=AES256-SHA bits=256 verify=NO) for ; Wed, 16 Jul 2014 01:11:08 -0700 (PDT) X-Barracuda-Envelope-From: BATV+ade25be49843057bf334+3979+infradead.org+hch@bombadil.srs.infradead.org X-Barracuda-Apparent-Source-IP: 198.137.202.9 Received: from hch by bombadil.infradead.org with local (Exim 4.80.1 #2 (Red Hat Linux)) id 1X7KIr-0003ao-Oo; Wed, 16 Jul 2014 08:11:05 +0000 Date: Wed, 16 Jul 2014 01:11:05 -0700 From: Christoph Hellwig To: Dave Chinner Cc: Christoph Hellwig , Jan Kara , xfs@oss.sgi.com Subject: Re: [PATCH] logprint: Fix printing of AGF buffers Message-ID: <20140716081105.GB29924@infradead.org> X-ASG-Orig-Subj: Re: [PATCH] logprint: Fix printing of AGF buffers References: <1405349100-19734-1-git-send-email-jack@suse.cz> <20140715101931.GC30363@infradead.org> <20140715140938.GA1733@quack.suse.cz> <20140715153922.GB5369@infradead.org> <20140716003851.GO22339@dastard> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20140716003851.GO22339@dastard> User-Agent: Mutt/1.5.23 (2014-03-12) X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: UNKNOWN[198.137.202.9] X-Barracuda-Start-Time: 1405498268 X-Barracuda-Encrypted: AES256-SHA X-Barracuda-URL: http://192.48.176.25:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 X-Barracuda-Spam-Score: 0.10 X-Barracuda-Spam-Status: No, SCORE=0.10 using per-user scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.7 tests=RDNS_NONE X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.7541 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.10 RDNS_NONE Delivered to trusted network by a host with no rDNS On Wed, Jul 16, 2014 at 10:38:51AM +1000, Dave Chinner wrote: > I added this: > > /* > * The addition of spare space and the non-logged CRC format > * fields to the AGF mean that the size that is logged is almost > * always going to be smaller than the structure itself. Hence > * we need to make sure that the buffer contains all the data we > * want to print rather than just check against the structure > * size. > */ > > Cheers, I'd prefer to mention v4 filesystems as well: /* * v4 filesystems only contain the fields before the uuid, and * even v5 filesystems don't usually log any field beneath it. */ note that the AGI case also needs the same treatment. From jeff.liu@oracle.com Wed Jul 16 03:32:48 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: xfs@oss.sgi.com Delivered-To: xfs@oss.sgi.com Received: from relay.sgi.com (relay3.corp.sgi.com [198.149.34.15]) by oss.sgi.com (Postfix) with ESMTP id F11C67F3F for ; Wed, 16 Jul 2014 03:32:47 -0500 (CDT) Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by relay3.corp.sgi.com (Postfix) with ESMTP id 8A73DAC003 for ; Wed, 16 Jul 2014 01:32:44 -0700 (PDT) X-ASG-Debug-ID: 1405499563-04cbb0421c12e370001-NocioJ Received: from aserp1040.oracle.com (aserp1040.oracle.com [141.146.126.69]) by cuda.sgi.com with ESMTP id lQ7lc4nqD3ngJTJ5 (version=TLSv1 cipher=AES256-SHA bits=256 verify=NO) for ; Wed, 16 Jul 2014 01:32:43 -0700 (PDT) X-Barracuda-Envelope-From: jeff.liu@oracle.com X-Barracuda-Apparent-Source-IP: 141.146.126.69 Received: from ucsinet21.oracle.com (ucsinet21.oracle.com [156.151.31.93]) by aserp1040.oracle.com (Sentrion-MTA-4.3.2/Sentrion-MTA-4.3.2) with ESMTP id s6G8WH6j009211 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK); Wed, 16 Jul 2014 08:32:18 GMT Received: from aserz7021.oracle.com (aserz7021.oracle.com [141.146.126.230]) by ucsinet21.oracle.com (8.14.4+Sun/8.14.4) with ESMTP id s6G8WGbo023325 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO); Wed, 16 Jul 2014 08:32:16 GMT Received: from abhmp0006.oracle.com (abhmp0006.oracle.com [141.146.116.12]) by aserz7021.oracle.com (8.14.4+Sun/8.14.4) with ESMTP id s6G8WGKY005828; Wed, 16 Jul 2014 08:32:16 GMT Received: from [192.168.1.102] (/218.58.151.3) by default (Oracle Beehive Gateway v4.0) with ESMTP ; Wed, 16 Jul 2014 01:32:15 -0700 Message-ID: <53C6388C.8000608@oracle.com> Date: Wed, 16 Jul 2014 16:32:12 +0800 From: Jeff Liu User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:24.0) Gecko/20100101 Thunderbird/24.1.0 MIME-Version: 1.0 To: Christoph Hellwig CC: "xfs@oss.sgi.com" Subject: Re: [PATCH] xfs: fix uflags detection at xfs_fs_rm_xquota References: <53C4F5DB.2060108@oracle.com> <20140715102520.GH30363@infradead.org> <53C62595.6010702@oracle.com> <20140716071250.GA1461@infradead.org> X-ASG-Orig-Subj: Re: [PATCH] xfs: fix uflags detection at xfs_fs_rm_xquota In-Reply-To: <20140716071250.GA1461@infradead.org> Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit X-Source-IP: ucsinet21.oracle.com [156.151.31.93] X-Barracuda-Connect: aserp1040.oracle.com[141.146.126.69] X-Barracuda-Start-Time: 1405499563 X-Barracuda-Encrypted: AES256-SHA X-Barracuda-URL: http://192.48.176.25:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 X-Barracuda-Spam-Score: 0.00 X-Barracuda-Spam-Status: No, SCORE=0.00 using per-user scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.7 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.7542 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- On 07/16/2014 15:12 PM, Christoph Hellwig wrote: > On Wed, Jul 16, 2014 at 03:11:17PM +0800, Jeff Liu wrote: >>> This code was introduced by commit >>> 9da93f9b7cdf8ab28da6b364cdc1fafc8670b4dc which attempts to fix the >>> broken quotarm code. Seems like we need a testcase for this >>> functionality or just remove it. Physically removing the quota file >>> never seems that useful to me to start with.. >> >> Is there an approach to verify that a particular quota file inode has >> been successfully removed? It seems we have to do this in a test case >> but am not yet figure out a way, or any thoughts for the test case? > > umount the filesystem and check that the field in the superblock > pointing to that kind of quota inode is zeroed out would be my > suggestion. Oh yes, after quota remove, the 'u' field of the quota inode will changed from u.bmx[0] = [startoff,startblock,blockcount,extentflag] 0:[0,16,1,0] to u = (empty) which can be used for the verification, thanks for your suggestion. :) Cheers, -Jeff From BATV+ade25be49843057bf334+3979+infradead.org+hch@bombadil.srs.infradead.org Wed Jul 16 04:22:29 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: xfs@oss.sgi.com Delivered-To: xfs@oss.sgi.com Received: from relay.sgi.com (relay1.corp.sgi.com [137.38.102.111]) by oss.sgi.com (Postfix) with ESMTP id 529C17F99 for ; Wed, 16 Jul 2014 04:22:29 -0500 (CDT) Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by relay1.corp.sgi.com (Postfix) with ESMTP id 4F1408F8087 for ; Wed, 16 Jul 2014 02:22:29 -0700 (PDT) X-ASG-Debug-ID: 1405502547-04cbb0421b130700001-NocioJ Received: from bombadil.infradead.org ([198.137.202.9]) by cuda.sgi.com with ESMTP id TSJTk2tRSnVRxVPS (version=TLSv1 cipher=AES256-SHA bits=256 verify=NO) for ; Wed, 16 Jul 2014 02:22:28 -0700 (PDT) X-Barracuda-Envelope-From: BATV+ade25be49843057bf334+3979+infradead.org+hch@bombadil.srs.infradead.org X-Barracuda-Apparent-Source-IP: 198.137.202.9 Received: from hch by bombadil.infradead.org with local (Exim 4.80.1 #2 (Red Hat Linux)) id 1X7LPu-0006Ym-FS; Wed, 16 Jul 2014 09:22:26 +0000 Date: Wed, 16 Jul 2014 02:22:26 -0700 From: Christoph Hellwig To: Sage Weil Cc: ceph-devel@vger.kernel.org, xfs@oss.sgi.com Subject: Re: v0.80.4 Firefly released Message-ID: <20140716092226.GA23561@infradead.org> X-ASG-Orig-Subj: Re: v0.80.4 Firefly released References: MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.5.23 (2014-03-12) X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: UNKNOWN[198.137.202.9] X-Barracuda-Start-Time: 1405502548 X-Barracuda-Encrypted: AES256-SHA X-Barracuda-URL: http://192.48.176.25:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 X-Barracuda-Spam-Score: 0.10 X-Barracuda-Spam-Status: No, SCORE=0.10 using per-user scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.7 tests=RDNS_NONE X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.7543 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.10 RDNS_NONE Delivered to trusted network by a host with no rDNS On Tue, Jul 15, 2014 at 04:45:59PM -0700, Sage Weil wrote: > This Firefly point release fixes an potential data corruption problem > when ceph-osd daemons run on top of XFS and service Firefly librbd > clients. A recently added allocation hint that RBD utilizes triggers > an XFS bug on some kernels (Linux 3.2, and likely others) that leads > to data corruption and deep-scrub errors (and inconsistent PGs). This > release avoids the situation by disabling the allocation hint until we > can validate which kernels are affected and/or are known to be safe to > use the hint on. I've not really seen an report for that on the XFS list, could it be that you're running into the issue fixed by "xfs: Use preallocation for inodes with extsz hints" (commit aff3a9edb7080f69f07fe76a8bd089b3dfa4cb5d)? From talonx@gmail.com Wed Jul 16 06:21:07 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=FREEMAIL_FROM,HTML_MESSAGE, T_DKIM_INVALID autolearn=ham version=3.3.1 X-Original-To: xfs@oss.sgi.com Delivered-To: xfs@oss.sgi.com Received: from relay.sgi.com (relay2.corp.sgi.com [137.38.102.29]) by oss.sgi.com (Postfix) with ESMTP id 70B487FB0 for ; Wed, 16 Jul 2014 06:21:07 -0500 (CDT) Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by relay2.corp.sgi.com (Postfix) with ESMTP id 3FB9E30404E for ; Wed, 16 Jul 2014 04:21:04 -0700 (PDT) X-ASG-Debug-ID: 1405509662-04cbb0421b135cb0001-NocioJ Received: from mail-ig0-f176.google.com (mail-ig0-f176.google.com [209.85.213.176]) by cuda.sgi.com with ESMTP id 1PYaVhuSZwBSSiHQ (version=TLSv1 cipher=RC4-SHA bits=128 verify=NO) for ; Wed, 16 Jul 2014 04:21:03 -0700 (PDT) X-Barracuda-Envelope-From: talonx@gmail.com X-Barracuda-Apparent-Source-IP: 209.85.213.176 X-Barracuda-IPDD: Level1 [gmail.com/209.85.213.176] Received: by mail-ig0-f176.google.com with SMTP id hn18so3943611igb.9 for ; Wed, 16 Jul 2014 04:21:02 -0700 (PDT) X-Barracuda-IPDD: Level1 [gmail.com/209.85.213.176] X-Barracuda-IPDD: Level1 [gmail.com/209.85.213.176] DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:from:date:message-id:subject:to:content-type; bh=hxVbuTjrq80JwOdcbXQNtitzijtoGGcO1ZfLu8QssPE=; b=U/HXV3MDlEOsOmd0bCsEs8QyTnf2jmjuSHbd/fyNTix8Vd5Nul0CSjNdw/yVrylpIh p3SvkdWBNU1DuHSBtWUP7PNKCLREIoVpfPezj14+kNzpR6NZXcg0nVKd+waCdXGm3W3D DhOAmrMfgUu3XIWcCjbFLpvdntIeauJ6qgjr8fAsmqtnGU5yoK3a3DR9W7Aj0DL9iXgF JpX+e2/wbdUOa2ThhW1hn2NULFS6HeEVp3lXul+v1UnCZP65mWuTyfzh2zBOoYjmPeug xrc8N6IA9JPMg6Y698A5DHgOoxSCVDYNLxQE9z3QziZnq7tVkBJ/FVKD/M9YkM4KIRHZ sEqw== X-Received: by 10.50.32.73 with SMTP id g9mr15354890igi.31.1405509662779; Wed, 16 Jul 2014 04:21:02 -0700 (PDT) MIME-Version: 1.0 Received: by 10.64.224.233 with HTTP; Wed, 16 Jul 2014 04:20:22 -0700 (PDT) From: Hrishikesh Barua Date: Wed, 16 Jul 2014 16:50:22 +0530 Message-ID: Subject: Occassional problems with unfreeze To: xfs@oss.sgi.com X-ASG-Orig-Subj: Occassional problems with unfreeze Content-Type: multipart/alternative; boundary=047d7b10d1792db07604fe4db814 X-Barracuda-Connect: mail-ig0-f176.google.com[209.85.213.176] X-Barracuda-Start-Time: 1405509663 X-Barracuda-Encrypted: RC4-SHA X-Barracuda-URL: http://192.48.176.25:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 X-Barracuda-Spam-Score: 0.00 X-Barracuda-Spam-Status: No, SCORE=0.00 using per-user scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.7 tests=DKIM_SIGNED, DKIM_VERIFIED, HTML_MESSAGE X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.7545 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- -0.00 DKIM_VERIFIED Domain Keys Identified Mail: signature passes verification 0.00 DKIM_SIGNED Domain Keys Identified Mail: message has a signature 0.00 HTML_MESSAGE BODY: HTML included in message --047d7b10d1792db07604fe4db814 Content-Type: text/plain; charset=UTF-8 We use XFS on Amazon EBS on Ubuntu 12.04.3, kernel "3.2.0-54-virtual". Our backup scripts invoke "xfs_freeze -f" before taking a snapshot to ensure filesystem consistency. After the snapshot is taken, we invoke "xfs_freeze -u". Recently, we have observed that some of these unfreeze calls exit with code 255. This results in a frozen filesystem, processes queuing up and us having to reboot the EC2 instance. Invoking freeze -u manually results in multiple processes like this - 17628 ? D 0:00 /usr/sbin/xfs_io -F -r -p xfs_freeze -x -c thaw /mysql-vol-a 17694 ? D 0:00 /usr/sbin/xfs_io -F -r -p xfs_freeze -x -c thaw /mysql-vol-a A search on this list reveals at least one other instance of this problem - http://oss.sgi.com/archives/xfs/2013-01/msg00437.html No resolution seems to have happened there. Is this a known bug, or has it been fixed since (I'm running xfsprogs 3.1.7) ? Regards Hrish --047d7b10d1792db07604fe4db814 Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: quoted-printable
We use XFS on Amazon EBS on Ubunt= u 12.04.3, kernel "3.2.0-54-virtual".

Our backup sc= ripts invoke "xfs_freeze -f" before taking a snapshot to ensure f= ilesystem consistency. After the snapshot is taken, we invoke "xfs_fre= eze -u".

Recently, we have observed that some of these unfreeze calls exit with = code 255. This results in a frozen filesystem, processes queuing up and us = having to reboot the EC2 instance. Invoking freeze -u manually results in m= ultiple processes like this -

=C2=A0=C2=A0=C2=A0=C2= =A0 17628 ?=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 D=C2=A0=C2=A0=C2=A0=C2= =A0=C2=A0 0:00 /usr/sbin/xfs_io -F -r -p xfs_freeze -x -c thaw /mysql-vol-a
=C2=A0=C2=A0=C2=A0=C2= =A0 17694 ?=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 D=C2=A0=C2=A0=C2=A0=C2= =A0=C2=A0 0:00 /usr/sbin/xfs_io -F -r -p xfs_freeze -x -c thaw /mysql-vol-a

A search on t= his list reveals at least one other instance of this problem - http://oss.sgi.com/ar= chives/xfs/2013-01/msg00437.html

No resolution seems to have happened there. Is this a known bug, = or has it been fixed since (I'm running xfsprogs 3.1.7) ?

= Regards
Hrish
--047d7b10d1792db07604fe4db814-- From bfoster@redhat.com Wed Jul 16 07:48:06 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: xfs@oss.sgi.com Delivered-To: xfs@oss.sgi.com Received: from relay.sgi.com (relay3.corp.sgi.com [198.149.34.15]) by oss.sgi.com (Postfix) with ESMTP id 2DDF37FB2 for ; Wed, 16 Jul 2014 07:48:06 -0500 (CDT) Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by relay3.corp.sgi.com (Postfix) with ESMTP id B4120AC001 for ; Wed, 16 Jul 2014 05:48:02 -0700 (PDT) X-ASG-Debug-ID: 1405514880-04cb6c6ad3130170001-NocioJ Received: from mx1.redhat.com (mx1.redhat.com [209.132.183.28]) by cuda.sgi.com with ESMTP id RBfujHo8YRMKvKZH (version=TLSv1 cipher=AES256-SHA bits=256 verify=NO) for ; Wed, 16 Jul 2014 05:48:01 -0700 (PDT) X-Barracuda-Envelope-From: bfoster@redhat.com X-Barracuda-Apparent-Source-IP: 209.132.183.28 X-ASG-Whitelist: Client Received: from int-mx13.intmail.prod.int.phx2.redhat.com (int-mx13.intmail.prod.int.phx2.redhat.com [10.5.11.26]) by mx1.redhat.com (8.14.4/8.14.4) with ESMTP id s6GClxOM024768 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 16 Jul 2014 08:47:59 -0400 Received: from bfoster.bfoster ([10.18.41.237]) by int-mx13.intmail.prod.int.phx2.redhat.com (8.14.4/8.14.4) with ESMTP id s6GClxfX026981; Wed, 16 Jul 2014 08:47:59 -0400 Received: by bfoster.bfoster (Postfix, from userid 1000) id 1C6DE124B7C; Wed, 16 Jul 2014 08:47:58 -0400 (EDT) Date: Wed, 16 Jul 2014 08:47:58 -0400 From: Brian Foster To: Hrishikesh Barua Cc: xfs@oss.sgi.com Subject: Re: Occassional problems with unfreeze Message-ID: <20140716124757.GC36312@bfoster.bfoster> X-ASG-Orig-Subj: Re: Occassional problems with unfreeze References: MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.5.23 (2014-03-12) X-Scanned-By: MIMEDefang 2.68 on 10.5.11.26 X-Barracuda-Connect: mx1.redhat.com[209.132.183.28] X-Barracuda-Start-Time: 1405514881 X-Barracuda-Encrypted: AES256-SHA X-Barracuda-URL: http://192.48.176.15:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 On Wed, Jul 16, 2014 at 04:50:22PM +0530, Hrishikesh Barua wrote: > We use XFS on Amazon EBS on Ubuntu 12.04.3, kernel "3.2.0-54-virtual". > > Our backup scripts invoke "xfs_freeze -f" before taking a snapshot to > ensure filesystem consistency. After the snapshot is taken, we invoke > "xfs_freeze -u". > > Recently, we have observed that some of these unfreeze calls exit with code > 255. This results in a frozen filesystem, processes queuing up and us > having to reboot the EC2 instance. Invoking freeze -u manually results in > multiple processes like this - > > 17628 ? D 0:00 /usr/sbin/xfs_io -F -r -p xfs_freeze -x -c > thaw /mysql-vol-a > 17694 ? D 0:00 /usr/sbin/xfs_io -F -r -p xfs_freeze -x -c > thaw /mysql-vol-a > > A search on this list reveals at least one other instance of this problem - > http://oss.sgi.com/archives/xfs/2013-01/msg00437.html That one looks like a freeze hang whereas you see an unfreeze hang. Perhaps similar to this: https://bugzilla.redhat.com/show_bug.cgi?id=1052004 > > No resolution seems to have happened there. Is this a known bug, or has it > been fixed since (I'm running xfsprogs 3.1.7) ? > Do you have the hung task output for when this occurs (echo w > /proc/sysrq-trigger)? Brian > Regards > Hrish > _______________________________________________ > xfs mailing list > xfs@oss.sgi.com > http://oss.sgi.com/mailman/listinfo/xfs From talonx@gmail.com Wed Jul 16 08:24:36 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=FREEMAIL_FROM,HTML_MESSAGE, T_DKIM_INVALID autolearn=ham version=3.3.1 X-Original-To: xfs@oss.sgi.com Delivered-To: xfs@oss.sgi.com Received: from relay.sgi.com (relay3.corp.sgi.com [198.149.34.15]) by oss.sgi.com (Postfix) with ESMTP id B32A87FB6 for ; Wed, 16 Jul 2014 08:24:36 -0500 (CDT) Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by relay3.corp.sgi.com (Postfix) with ESMTP id 45BBFAC002 for ; Wed, 16 Jul 2014 06:24:33 -0700 (PDT) X-ASG-Debug-ID: 1405517071-04cbb04219139d60001-NocioJ Received: from mail-ie0-f176.google.com (mail-ie0-f176.google.com [209.85.223.176]) by cuda.sgi.com with ESMTP id HiMNDugKSxNglVq3 (version=TLSv1 cipher=RC4-SHA bits=128 verify=NO) for ; Wed, 16 Jul 2014 06:24:31 -0700 (PDT) X-Barracuda-Envelope-From: talonx@gmail.com X-Barracuda-Apparent-Source-IP: 209.85.223.176 X-Barracuda-IPDD: Level1 [gmail.com/209.85.223.176] Received: by mail-ie0-f176.google.com with SMTP id tr6so744441ieb.35 for ; Wed, 16 Jul 2014 06:24:31 -0700 (PDT) X-Barracuda-IPDD: Level1 [gmail.com/209.85.223.176] X-Barracuda-IPDD: Level1 [gmail.com/209.85.223.176] DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:in-reply-to:references:from:date:message-id:subject:to :cc:content-type; bh=cReEQ7QEHxv+b52/icbjJlNOh5alaKRKnIzohYRkDtI=; b=SiIi8Xr0y/rs1Yk6CKDAmXUVGepEQI20MUqSE5/ZesVM8YLV0ZEB3PrQXaKVwyPW8e ZfUD78fecn04gS1wDj2B7qcKVWSbRMtiLB9w0H8AACpWwR0la0a0QqH7O0ibEcq0hW8J YsTMV9djJcv9BDODOv/wFefkEgzmCl2M6fmlW2GiT6bWo9bxUYsXPy02yj+wZEGl7x5J FN/xBKeWl9xBwOkwlebpwD5aoo4PZlxo5U/A2nb8a1l/xejVU6Mld6mFalq6ewOhoQPe b7NQjqtCNkwFeR94tZUxoN8mwb0bHc7pA5N7RoAEAfIY0lxJONGjcImP5wxxVS4RQ2Rf FIow== X-Received: by 10.42.12.76 with SMTP id x12mr3753809icx.96.1405517071294; Wed, 16 Jul 2014 06:24:31 -0700 (PDT) MIME-Version: 1.0 Received: by 10.64.224.233 with HTTP; Wed, 16 Jul 2014 06:23:51 -0700 (PDT) In-Reply-To: <20140716124757.GC36312@bfoster.bfoster> References: <20140716124757.GC36312@bfoster.bfoster> From: Hrishikesh Barua Date: Wed, 16 Jul 2014 18:53:51 +0530 Message-ID: Subject: Re: Occassional problems with unfreeze To: Brian Foster X-ASG-Orig-Subj: Re: Occassional problems with unfreeze Cc: xfs@oss.sgi.com Content-Type: multipart/alternative; boundary=20cf301d40cec2a60a04fe4f71ed X-Barracuda-Connect: mail-ie0-f176.google.com[209.85.223.176] X-Barracuda-Start-Time: 1405517071 X-Barracuda-Encrypted: RC4-SHA X-Barracuda-URL: http://192.48.176.25:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 X-Barracuda-Spam-Score: 0.00 X-Barracuda-Spam-Status: No, SCORE=0.00 using per-user scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.7 tests=DKIM_SIGNED, DKIM_VERIFIED, HTML_MESSAGE X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.7547 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- -0.00 DKIM_VERIFIED Domain Keys Identified Mail: signature passes verification 0.00 DKIM_SIGNED Domain Keys Identified Mail: message has a signature 0.00 HTML_MESSAGE BODY: HTML included in message --20cf301d40cec2a60a04fe4f71ed Content-Type: text/plain; charset=UTF-8 On 16 July 2014 18:17, Brian Foster wrote: > > That one looks like a freeze hang whereas you see an unfreeze hang. > You are right. My bad. > Perhaps similar to this: > > https://bugzilla.redhat.com/show_bug.cgi?id=1052004 > Looks like I can't access that bug report, even after logging in. The error message says "Most likely the bug has been restricted for internal development processes and we cannot grant access." > > > > > No resolution seems to have happened there. Is this a known bug, or has > it > > been fixed since (I'm running xfsprogs 3.1.7) ? > > > > Do you have the hung task output for when this occurs (echo w > > /proc/sysrq-trigger)? > No, but I'll get it the next time it happens. Thanks for the tip. > > Brian > > > Regards > > Hrish > > > _______________________________________________ > > xfs mailing list > > xfs@oss.sgi.com > > http://oss.sgi.com/mailman/listinfo/xfs > > --20cf301d40cec2a60a04fe4f71ed Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: quoted-printable

= On 16 July 2014 18:17, Brian Foster <bfoster@redhat.com> wr= ote:

That one looks like a freeze hang whereas you see an unfreeze hang.
You are right. My bad.
=C2=A0
Perhaps similar to this:

https://bugzilla.redhat.com/show_bug.cgi?id=3D1052004
Looks like I can't access that bug report, even after logg= ing in. The error message says=C2=A0 "Most likely the bug has been res= tricted for internal development processes and we cannot grant access."= ;

>
> No resolution seems to have happened there. Is this a known bug, or ha= s it
> been fixed since (I'm running xfsprogs 3.1.7) ?
>

Do you have the hung task output for when this occurs (echo w > /proc/sysrq-trigger)?
No, but I'll get it the next= time it happens. Thanks for the tip.

Brian

> Regards
> Hrish

> _______________________________________________
> xfs mailing list
> xfs@oss.sgi.com
> = http://oss.sgi.com/mailman/listinfo/xfs


--20cf301d40cec2a60a04fe4f71ed-- From eguan@redhat.com Wed Jul 16 11:52:46 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: xfs@oss.sgi.com Delivered-To: xfs@oss.sgi.com Received: from relay.sgi.com (relay2.corp.sgi.com [137.38.102.29]) by oss.sgi.com (Postfix) with ESMTP id 21B527F51 for ; Wed, 16 Jul 2014 11:52:46 -0500 (CDT) Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by relay2.corp.sgi.com (Postfix) with ESMTP id 11D8430404E for ; Wed, 16 Jul 2014 09:52:43 -0700 (PDT) X-ASG-Debug-ID: 1405529561-04cbb0421c1425a0001-NocioJ Received: from mx1.redhat.com (mx1.redhat.com [209.132.183.28]) by cuda.sgi.com with ESMTP id A5DfU61vWM8Ptv4z (version=TLSv1 cipher=AES256-SHA bits=256 verify=NO) for ; Wed, 16 Jul 2014 09:52:42 -0700 (PDT) X-Barracuda-Envelope-From: eguan@redhat.com X-Barracuda-Apparent-Source-IP: 209.132.183.28 X-ASG-Whitelist: Client Received: from int-mx11.intmail.prod.int.phx2.redhat.com (int-mx11.intmail.prod.int.phx2.redhat.com [10.5.11.24]) by mx1.redhat.com (8.14.4/8.14.4) with ESMTP id s6GGqf0Y025992 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 16 Jul 2014 12:52:41 -0400 Received: from localhost (dhcp-13-139.nay.redhat.com [10.66.13.139]) by int-mx11.intmail.prod.int.phx2.redhat.com (8.14.4/8.14.4) with ESMTP id s6GGqd4m013349; Wed, 16 Jul 2014 12:52:40 -0400 From: Eryu Guan To: fstests@vger.kernel.org Cc: xfs@oss.sgi.com, Eryu Guan , Eric Sandeen , Boris Ranto Subject: [PATCH 1/2] xfs: new case to test inode allocations in post-growfs disk space Date: Thu, 17 Jul 2014 00:52:33 +0800 X-ASG-Orig-Subj: [PATCH 1/2] xfs: new case to test inode allocations in post-growfs disk space Message-Id: <1405529554-31225-1-git-send-email-eguan@redhat.com> X-Scanned-By: MIMEDefang 2.68 on 10.5.11.24 X-Barracuda-Connect: mx1.redhat.com[209.132.183.28] X-Barracuda-Start-Time: 1405529561 X-Barracuda-Encrypted: AES256-SHA X-Barracuda-URL: http://192.48.176.25:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 Make sure inodes can be allocated in new space added by xfs_growfs. Regression test for xfs: allow inode allocations in post-growfs disk space Cc: Eric Sandeen Cc: Boris Ranto Signed-off-by: Eryu Guan --- common/rc | 11 +++++++ tests/xfs/015 | 99 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ tests/xfs/015.out | 2 ++ tests/xfs/group | 1 + 4 files changed, 113 insertions(+) create mode 100755 tests/xfs/015 create mode 100644 tests/xfs/015.out diff --git a/common/rc b/common/rc index 2c83340..255dd9b 100644 --- a/common/rc +++ b/common/rc @@ -2225,6 +2225,17 @@ _require_btrfs_fs_feature() _notrun "Feature $feat not supported by the available btrfs version" } +_get_free_inode() +{ + if [ -z "$1" ]; then + echo "Usage: _get_free_inode " + exit 1 + fi + local nr_inode; + nr_inode=`$DF_PROG -i $1 | tail -1 | awk '{print $5}'` + echo $nr_inode +} + init_rc() { if [ "$iam" == new ] diff --git a/tests/xfs/015 b/tests/xfs/015 new file mode 100755 index 0000000..3db2e0b --- /dev/null +++ b/tests/xfs/015 @@ -0,0 +1,99 @@ +#! /bin/bash +# FS QA Test No. xfs/015 +# +# Make sure inodes can be allocated in new space added by xfs_growfs +# +# Regression test for +# xfs: allow inode allocations in post-growfs disk space +# +#----------------------------------------------------------------------- +# Copyright (c) 2014 Red Hat Inc. All Rights Reserved. +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License as +# published by the Free Software Foundation. +# +# This program is distributed in the hope that it would be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write the Free Software Foundation, +# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA +#----------------------------------------------------------------------- +# + +seq=`basename $0` +seqres=$RESULT_DIR/$seq +echo "QA output created by $seq" + +here=`pwd` +tmp=/tmp/$$ +status=1 # failure is the default! +trap "_cleanup; exit \$status" 0 1 2 3 15 + +_cleanup() +{ + cd / + rm -f $tmp.* +} + +create_file() +{ + local dir=$1 + local i=0 + + while echo -n >$dir/testfile_$i; do + let i=$i+1 + done +} + +# get standard environment, filters and checks +. ./common/rc +. ./common/filter + +# real QA test starts here +_supported_fs xfs +_supported_os Linux + +_require_scratch + +rm -f $seqres.full +echo "Silence is golden" + +_scratch_mkfs_sized $((128 * 1024 * 1024)) | _filter_mkfs >$seqres.full 2>$tmp.mkfs +# get original data blocks number +. $tmp.mkfs +_scratch_mount + +# Create files to consume free inodes in background +( + i=0 + while [ $i -lt 1000 ]; do + mkdir $SCRATCH_MNT/testdir_$i + create_file $SCRATCH_MNT/testdir_$i & + let i=$i+1 + done +) >/dev/null 2>&1 & + +# Grow fs at the same time, at least x4 +# doubling or tripling the size couldn't reproduce +$XFS_GROWFS_PROG -D $((dblocks * 4)) $SCRATCH_MNT >>$seqres.full + +# Wait for background create_file to hit ENOSPC +wait + +# log inode status in $seqres.full for debug purpose +echo "Inode status after growing fs" >>$seqres.full +$DF_PROG -i $SCRATCH_MNT >>$seqres.full + +# Check free inode count, we expect all free inodes are taken +free_inode=`_get_free_inode $SCRATCH_MNT` +if [ $free_inode -gt 0 ]; then + echo "$free_inode free inodes available, newly added space not being used" +else + status=0 +fi + +exit diff --git a/tests/xfs/015.out b/tests/xfs/015.out new file mode 100644 index 0000000..fee0fcf --- /dev/null +++ b/tests/xfs/015.out @@ -0,0 +1,2 @@ +QA output created by 015 +Silence is golden diff --git a/tests/xfs/group b/tests/xfs/group index d5b50b7..0aab336 100644 --- a/tests/xfs/group +++ b/tests/xfs/group @@ -12,6 +12,7 @@ 012 rw auto quick 013 auto metadata stress 014 auto enospc quick quota +015 auto enospc growfs 016 rw auto quick 017 mount auto quick stress 018 deprecated # log logprint v2log -- 1.9.3 From sandeen@sandeen.net Wed Jul 16 12:10:50 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: xfs@oss.sgi.com Delivered-To: xfs@oss.sgi.com Received: from relay.sgi.com (relay1.corp.sgi.com [137.38.102.111]) by oss.sgi.com (Postfix) with ESMTP id 6B6967FA4 for ; Wed, 16 Jul 2014 12:10:50 -0500 (CDT) Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by relay1.corp.sgi.com (Postfix) with ESMTP id 42A2E8F8066 for ; Wed, 16 Jul 2014 10:10:47 -0700 (PDT) X-ASG-Debug-ID: 1405530645-04bdf03568141a80001-NocioJ Received: from sandeen.net (sandeen.net [63.231.237.45]) by cuda.sgi.com with ESMTP id YAbLNPGiICrWVTvt for ; Wed, 16 Jul 2014 10:10:45 -0700 (PDT) X-Barracuda-Envelope-From: sandeen@sandeen.net X-Barracuda-Apparent-Source-IP: 63.231.237.45 Received: from Liberator-2.local (nat-pool-rdu-u.redhat.com [66.187.233.203]) (using TLSv1 with cipher DHE-RSA-AES128-SHA (128/128 bits)) (No client certificate requested) by sandeen.net (Postfix) with ESMTPSA id CF0AE6522295; Wed, 16 Jul 2014 12:10:43 -0500 (CDT) Message-ID: <53C6B212.9030704@sandeen.net> Date: Wed, 16 Jul 2014 12:10:42 -0500 From: Eric Sandeen MIME-Version: 1.0 To: Jeff Liu , "xfs@oss.sgi.com" Subject: Re: [PATCH] xfs: fix uflags detection at xfs_fs_rm_xquota References: <53C4F5DB.2060108@oracle.com> X-ASG-Orig-Subj: Re: [PATCH] xfs: fix uflags detection at xfs_fs_rm_xquota In-Reply-To: <53C4F5DB.2060108@oracle.com> X-Enigmail-Version: 1.6 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit X-Barracuda-Connect: sandeen.net[63.231.237.45] X-Barracuda-Start-Time: 1405530645 X-Barracuda-URL: http://192.48.157.11:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 X-Barracuda-Spam-Score: 0.00 X-Barracuda-Spam-Status: No, SCORE=0.00 using per-user scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.7 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.7552 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- On 7/15/14, 4:35 AM, Jeff Liu wrote: > From: Jie Liu > > We are intended to check up uflags against FS_PROJ_QUOTA rather than > FS_USER_UQUOTA once more, it looks to me like a typo, but might cause > the project quota metadata space can not be removed. Ugh, mea culpa. Thanks for spotting. :( Reviewed-by: Eric Sandeen Thankfully I don't think anyone uses this interface ;) > Signed-off-by: Jie Liu > --- > fs/xfs/xfs_quotaops.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/fs/xfs/xfs_quotaops.c b/fs/xfs/xfs_quotaops.c > index 4f7aecb..b238027 100644 > --- a/fs/xfs/xfs_quotaops.c > +++ b/fs/xfs/xfs_quotaops.c > @@ -123,7 +123,7 @@ xfs_fs_rm_xquota( > flags |= XFS_DQ_USER; > if (uflags & FS_GROUP_QUOTA) > flags |= XFS_DQ_GROUP; > - if (uflags & FS_USER_QUOTA) > + if (uflags & FS_PROJ_QUOTA) > flags |= XFS_DQ_PROJ; > > return xfs_qm_scall_trunc_qfiles(mp, flags); > From gregory.farnum@dreamhost.com Wed Jul 16 12:26:32 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: xfs@oss.sgi.com Delivered-To: xfs@oss.sgi.com Received: from relay.sgi.com (relay3.corp.sgi.com [198.149.34.15]) by oss.sgi.com (Postfix) with ESMTP id AF9857FBC for ; Wed, 16 Jul 2014 12:26:31 -0500 (CDT) Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by relay3.corp.sgi.com (Postfix) with ESMTP id 27954AC001 for ; Wed, 16 Jul 2014 10:26:28 -0700 (PDT) X-ASG-Debug-ID: 1405531585-04cbb0421b143d90001-NocioJ Received: from mail-qc0-f169.google.com (mail-qc0-f169.google.com [209.85.216.169]) by cuda.sgi.com with ESMTP id ssYBYm9RWjnjOpyQ (version=TLSv1 cipher=RC4-SHA bits=128 verify=NO) for ; Wed, 16 Jul 2014 10:26:26 -0700 (PDT) X-Barracuda-Envelope-From: gregory.farnum@dreamhost.com X-Barracuda-Apparent-Source-IP: 209.85.216.169 Received: by mail-qc0-f169.google.com with SMTP id m20so1078952qcx.28 for ; Wed, 16 Jul 2014 10:26:25 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:in-reply-to:references:date :message-id:subject:from:to:cc:content-type; bh=tZLgKwoSD7G/wQIxMwMBX7etCXXg+K5GF+ADhkMkFc4=; b=F0gGZIJuajatAdqWJyloFpNDYePow7qaA6sRGVh3A7WFh6zYdqKdrLqPc+WIoJcTwF +Yp1zs2ef+P4aWLyDkGj0//QL/gNksCZLyQ4hRjZ6+J00H3qsAAZRWMISIKch7YXnnDs NY6minKavhFLar6q5X+fpvfCJELstuKSTXFkn7lwx8EWSJ94komQwpWJYlAn1fbbltob 7B1v5O8Qml184kMd1lo24dMK0ycsXI/KYrBbdxP0/L0rV42Kv3egM3npc7mHo0ynUe9e ghgNu9XZ2k3E1colaOrvuT3iIdQQZTpmsUFOvCJwc7dDVozVPCTNmtEefNs/61ng51mB 5nvw== X-Gm-Message-State: ALoCoQn0Pbg8YJWRmY5aChaPNtmS7bSpCxIWi5RH6vw1oeglnByHRZ7I4fE52+1pQfUJiES40Kk2 X-Received: by 10.224.32.129 with SMTP id c1mr34849731qad.4.1405531585682; Wed, 16 Jul 2014 10:26:25 -0700 (PDT) Received: from mail-qa0-f50.google.com (mail-qa0-f50.google.com [209.85.216.50]) by mx.google.com with ESMTPSA id o10sm32547450qah.3.2014.07.16.10.26.23 for (version=TLSv1 cipher=ECDHE-RSA-RC4-SHA bits=128/128); Wed, 16 Jul 2014 10:26:23 -0700 (PDT) Received: by mail-qa0-f50.google.com with SMTP id s7so949219qap.23 for ; Wed, 16 Jul 2014 10:26:23 -0700 (PDT) MIME-Version: 1.0 X-Received: by 10.140.96.229 with SMTP id k92mr45854051qge.38.1405531583745; Wed, 16 Jul 2014 10:26:23 -0700 (PDT) Received: by 10.229.112.148 with HTTP; Wed, 16 Jul 2014 10:26:23 -0700 (PDT) In-Reply-To: <20140716092226.GA23561@infradead.org> References: <20140716092226.GA23561@infradead.org> Date: Wed, 16 Jul 2014 10:26:23 -0700 Message-ID: Subject: Re: v0.80.4 Firefly released From: Gregory Farnum X-ASG-Orig-Subj: Re: v0.80.4 Firefly released To: Christoph Hellwig , Samuel Just Cc: Sage Weil , "ceph-devel@vger.kernel.org" , xfs@oss.sgi.com Content-Type: text/plain; charset=UTF-8 X-Barracuda-Connect: mail-qc0-f169.google.com[209.85.216.169] X-Barracuda-Start-Time: 1405531585 X-Barracuda-Encrypted: RC4-SHA X-Barracuda-URL: http://192.48.176.25:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 X-Barracuda-Spam-Score: 0.00 X-Barracuda-Spam-Status: No, SCORE=0.00 using per-user scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.7 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.7553 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- On Wed, Jul 16, 2014 at 2:22 AM, Christoph Hellwig wrote: > On Tue, Jul 15, 2014 at 04:45:59PM -0700, Sage Weil wrote: >> This Firefly point release fixes an potential data corruption problem >> when ceph-osd daemons run on top of XFS and service Firefly librbd >> clients. A recently added allocation hint that RBD utilizes triggers >> an XFS bug on some kernels (Linux 3.2, and likely others) that leads >> to data corruption and deep-scrub errors (and inconsistent PGs). This >> release avoids the situation by disabling the allocation hint until we >> can validate which kernels are affected and/or are known to be safe to >> use the hint on. > > I've not really seen an report for that on the XFS list, could it be > that you're running into the issue fixed by > > "xfs: Use preallocation for inodes with extsz hints" > > (commit aff3a9edb7080f69f07fe76a8bd089b3dfa4cb5d)? Sam reported the issue we're seeing in "consequences of XFS_IOC_FSSETXATTR on non-empty file?", but didn't have it narrowed down very far. I think he's trying to get a minimal reproducer and identify as much as he can right now, but he's also trying to get out the door for a vacation. :) But yes, looking at the patch description that sounds about right. -Greg From sam.just@inktank.com Wed Jul 16 13:52:34 2014 Return-Path: X-Original-To: xfs@oss.sgi.com Delivered-To: xfs@oss.sgi.com Received: from relay.sgi.com (relay2.corp.sgi.com [137.38.102.29]) by oss.sgi.com (Postfix) with ESMTP id 684CB7F9B for ; Wed, 16 Jul 2014 13:52:33 -0500 (CDT) Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by relay2.corp.sgi.com (Postfix) with ESMTP id 95711304051 for ; Wed, 16 Jul 2014 11:52:23 -0700 (PDT) X-ASG-Debug-ID: 1405536729-04bdf03569146960001-NocioJ Received: from mail-qa0-f54.google.com (mail-qa0-f54.google.com [209.85.216.54]) by cuda.sgi.com with ESMTP id shfz3viMrzcLi0wc (version=TLSv1 cipher=RC4-SHA bits=128 verify=NO) for ; Wed, 16 Jul 2014 11:52:09 -0700 (PDT) X-Barracuda-Envelope-From: sam.just@inktank.com X-Barracuda-Apparent-Source-IP: 209.85.216.54 Received: by mail-qa0-f54.google.com with SMTP id k15so1045504qaq.13 for ; Wed, 16 Jul 2014 11:52:08 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:in-reply-to:references:date :message-id:subject:from:to:cc:content-type; bh=2CbBa28CwqVy4Uqs6gmATBfRNGlV9xCeCL6rIWoe4Ls=; b=GPlJGRkvplE9mFlWb9y3h7Y7NaqAQ9Kt/xL+Lgl/60uvr9fkY2Z2Iyu2C5YbYuENKe reZd3/QFUz6wVHS1z+XeqTWVE2G5Y6MURgVtgMnQ2x728zifkB1V8hpgpp7Ewbj1jPLg jKDSypdiSdJ2LjrD9V2CYsWutBakh2SKnE5CAoYBTm2uQCPMpEgWJXH8Z/8ECeBS+nZR hp2xE1gR1QuLNO7clvGwYr3aiKUCfLP8Hrdmi1Nt7wk/FNd1F9ljoYrXDgMXtE/bmoau fVhfC0T0u/q6KdTIv2aafq04XVst0GOckZu46JRLnTQu9aFjIIlJD1Y1HV864/Mmcsmc ftZw== X-Gm-Message-State: ALoCoQnDnF0Ej6LUIP/htMRd/X4221SPb3738c0BIQRKOskWdtMIh4DSYffnM458WB7x8qIJu96i MIME-Version: 1.0 X-Received: by 10.229.106.136 with SMTP id x8mr49845980qco.15.1405536728525; Wed, 16 Jul 2014 11:52:08 -0700 (PDT) Received: by 10.96.109.194 with HTTP; Wed, 16 Jul 2014 11:52:08 -0700 (PDT) In-Reply-To: References: <20140716092226.GA23561@infradead.org> Date: Wed, 16 Jul 2014 11:52:08 -0700 Message-ID: Subject: Re: v0.80.4 Firefly released From: Samuel Just X-ASG-Orig-Subj: Re: v0.80.4 Firefly released To: Gregory Farnum Cc: Christoph Hellwig , Sage Weil , "ceph-devel@vger.kernel.org" , xfs@oss.sgi.com Content-Type: multipart/mixed; boundary=001a113351126d34f904fe54053b X-Barracuda-Connect: mail-qa0-f54.google.com[209.85.216.54] X-Barracuda-Start-Time: 1405536729 X-Barracuda-Encrypted: RC4-SHA X-Barracuda-URL: http://192.48.157.11:80/cgi-mod/mark.cgi X-Barracuda-BRTS-Status: 1 X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-Spam-Score: -1001.00 X-Barracuda-Spam-Status: No, SCORE=-1001.00 using per-user scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.7 --001a113351126d34f904fe54053b Content-Type: text/plain; charset=UTF-8 Sorry for the delay. I've been trying to put together a simpler reproducer since no one wants to debug a filesystem based on rbd symptoms :). It doesn't appear to be related to using extsize on a non-empty file. The attached archive has a reproducer (xfs_extsize_reproducer.cc), an input op sequence (trimmed-ops.in), the resulting file and what it should be (test, test.correct), and a summary (notes.txt). Thanks! -Sam On Wed, Jul 16, 2014 at 10:26 AM, Gregory Farnum wrote: > On Wed, Jul 16, 2014 at 2:22 AM, Christoph Hellwig wrote: >> On Tue, Jul 15, 2014 at 04:45:59PM -0700, Sage Weil wrote: >>> This Firefly point release fixes an potential data corruption problem >>> when ceph-osd daemons run on top of XFS and service Firefly librbd >>> clients. A recently added allocation hint that RBD utilizes triggers >>> an XFS bug on some kernels (Linux 3.2, and likely others) that leads >>> to data corruption and deep-scrub errors (and inconsistent PGs). This >>> release avoids the situation by disabling the allocation hint until we >>> can validate which kernels are affected and/or are known to be safe to >>> use the hint on. >> >> I've not really seen an report for that on the XFS list, could it be >> that you're running into the issue fixed by >> >> "xfs: Use preallocation for inodes with extsz hints" >> >> (commit aff3a9edb7080f69f07fe76a8bd089b3dfa4cb5d)? > > Sam reported the issue we're seeing in "consequences of > XFS_IOC_FSSETXATTR on non-empty file?", but didn't have it narrowed > down very far. I think he's trying to get a minimal reproducer and > identify as much as he can right now, but he's also trying to get out > the door for a vacation. :) > > But yes, looking at the patch description that sounds about right. > -Greg --001a113351126d34f904fe54053b Content-Type: application/x-gzip; name="reproducer.tgz" Content-Disposition: attachment; filename="reproducer.tgz" Content-Transfer-Encoding: base64 X-Attachment-Id: f_hxp05u170 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 nu0qC6uIxisLGgmz2pGlSWZHPmS1+7o7YyHOnt+3/Xi+tZz4i4n73NfmXuaElyDyLoM5LMsJqNna /9Z0Lanum/pKLqLvdDceP/6QTSgfmc3f1lWwOCU13IqdWWwooNiNaA9lV/5IBr169eTkNTf/cM3P R788xaAzYr6qTWbC7kK7MyiG9JGwhfPXTPa1xzCQ3j38ei0vw9WnL0+vTeAvymhuIbXBQuDWkqg6 2n5vzHeZJ7PdOVFN9oW21mH371l37upTmSkWE/iLkCysGStzGpMegH5NV5Ju0i0rkm3WceaM3N74 i5P33K4lN/NLPmL3MMnYUNoRbyg5tMk+aleawxpJ3H1n0ZvlI08+UIjXzrjQ3ZSJGn/RWrJtmYuF 7D2FvsbWzvyghS22a9ng9iizN1ew+qBEJt8ir+8ta1HjLywrsdjQm9+JTd2ZK7UcrwnJzLaWQdtF Yfd1bzfc6g1H9C/3anK7/n67PiO1+iPerkG1ibrWAgEV48zqiCu1TKDGLcZZgdKZHRY8P+AydE+X uLP2Wk67ttvZ2/mcLfK2CCvZixC/1omaRllQtDMTt4+65pVuZv68X0zUuhBLu0Jm+2xDsljLPjE1 25a8xlag4xkjDQ+7EHNG5N7s3fIXtfKR2RxjV9s+9rTZ7G62sGbsuAQI9jry1BCJO2+4x0e+bHf3 uIk2JlS/GG31+47wcqrxNtRgCluLOdgdP9cW6rTdEHRSd7788/G710fIvD8vJuQvKgsqbTntComz fQLC0DKO/crcKT6vJnhia22vz9C1yhfJyTlvrVr9kc58Z423qRouRK4vu+JtBQrOGud8InAz33nZ zqgKID8t9muzCcUX1LUKHETRRHx5gd+xW2jmWvbJLoZBtd+b5vp4BFvUl4c2a6F6Z8NpGuyjWqZZ 22ch9JIx3sGyVk//I69F87diLVI8v5jotTs7u7lmW4aIo+kn22S+ME9WWuZpPmRkq9uHXi15xI7i +i+XQI2/qAcLKlNPpXEioDevYRvKUsKKBmlBXaaae9sXF3UjPnL0ld3Vg4sJ1S/IIBPfs6iKPpde q87Cmqm3ZLWK9r2adeH2T4zsTuZA63kxMSnKmZW50Dm0C8jjgSy7s+/Q2zkPRWM+ZN6qxsfDx3e4 C/88Wr+I/EXC3dH7m6dEOmDxTpwGCxiKkpTPzk3Ja67OZxv7/+dCDPiLajKP4Eda43blmHuxGLMb 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 LVNdQvrnuryOVnkr3cLf+u7S6biN/IuVMclGfVS3zTRvToOVhqlu36bf30J0Q7dFKOszzHG/SI+T 7eniXCZsI/9iIrmjZo00TaJKjtY06V7eM1NKE6s2TfcoM+Gx/NTt8TCs0iz1tcu4M/IvZvqeltvI +mx6eiwtw6yD5T3Oxe+cddjr6w4Pr6WR1gvvc61n8yVifMFi5tZxsJXekOmWxypdGjQ2pGccHGrv L0FhJ9awl/NVRP4FSVxL+nqmFxDxE2Q7zumfTtMamm6mcfC8nUfWorr0y+Lfr6/vWpF/MfHVmthn WWKvm/qofmn5vnOgmWXCOVrnnS/hz69eKv759vnLJeJ8KrO4iWXzkvMG5Tr2LLFRfUBPR84tbz2z 5efr67/k31+uX8USQ1dW9po438ViSEkr3JaCRPbwN7aVp50dqzxCer1466acgzbyL/aRU+wU9Edr 8fQ0TeNOxouRP9kuabq07ee38ymqfn9Ng5yXHr5cIvotU3zeThO16A39x1kK3ug4R6XP0pK00rGf +v5DaWzw8PPnMszbe75E1F/06VWmZwmVlSVFxISp8oBeKIspJ+rZmHP+34LEfy6vIuo7WY/qViq6 OTXek7EToRMrHTxbjvs2Q25t82Ea28TZjd9e+miIQpI28i8OWsztbGn3Hd9odnAbNkg7inbTe8FW zX7Gle3FK8Wjn7z3+EuPnsO1yL9oqQkd0+SMylRqcMiJ4HDWyJpGFMiUO5WVEf72xt1Ffqbmyso2 8i9ierdVFLHT5LInraJeqHw7WDftWKyspvwq7qNy4r7itduvP9TIv2jKGO4O8cShLGZhCZeeQeQK HBxeG6kAuCqLN/76pPilmH6JR2OZLxHnU6sYD8XkMPpJsghEi/KDX29HD8CeDb6ruXgu/T5eiVqW N4vvvsqXiPXOigNm9RDVmBMh/hWpk0T0rkxz0v+1z0W7jxc/fRLp+cz/vzr/kLhfjBGCnSarPUv7 E40aVrbRpphwszS2cbibEd+t8a3646YveORfpG8EqeB9NPZlMZwm5EfH/JLeOkxp0hXje/HfnY/i u7eoaCn+zpfgfjFyOmCqOKrXNEyNxhi9EfU1pbECm7x1nZuTFQ8z5x7vYfR76/kqor6TTi4LM6mB E0gzuU4ldUstbX76gQjjo8mTiR/yJv3L6Un0+GP5EpHHR9+CmSzAnpqWMY6srZy9oxVumjRy0v5g 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 H4xkp5z3+3yaEz31I6sHDxZ/DPkSsT+y0CtjijMerOAzDt7iUCNJgSs9cqP98tUHa/pL/l1jV4If Sb5E5F+0PM/XNOCaadQ5ztNCz2N2UdMNdGKpc2UPPw2gv86lZ8/ku2e+RF7vTHfHg9i4iaYMO60W amKM9iGadJEP1dR5x4pEqo/u+icqkPMuTeRfRAfsg+T3LcI0GLLXPT+PNM5KHzQdAmm1ljtgf3ue kNrO0W/kX7Rr7KdOpP/Hpj0HMyk6bRbqhCJnsKVq7OXbHz8/0oeL8TK+iPyLkW5asdK41DQmb1g+ phnATH/jnnW/IQIbYov+7zdfTg+kd744oxK6yL+YGFqkV1oTeb7RTpWeXmne3HDSt+butzOXvorA no9eSDOzqbj74eLufIk2dnUpzqR7YcOyeRPBn8yK2iYNEyqermlafS7EPBoby+y8vXW+isjL4em7 7pFSHu1L+WQjzJiol5U89zSxymULlx/8u9cfauRfbFN6bKdRV0XvJiKXOZBEYUs/HiT5c8B/zlVj uUXbP0wFLrOiyL9Isyv2YdIg92hKTsSmV97G7gDJVus4U3LP23kpaL8c7MyXiH7LnPFu0xfwalg4 AMSDdesbjjil0eRAxuHR5tr4lx/9i5Kcxz56/M/rS8R8hLv+FqlQ1GBufMmqdSIm6yCVfyAFs2yv 8nmzd8+X8Od/z0vMsTTGqS6G8fXYRdO/hWK0NT3X6CfAudL0KIpPpPrj7o/YWTiK68lEzr/YVnZw 645ydlYtuvSHsPl4cPyMh81Vv5938Dueiy9H8tNZYBT5F+UQHcQHuuAyj6hofJz+evZ3Z8rS0od6 xKPoy/Rh3Pdfbp78YvOjKPIvFkpFlpkSKzJZduq+0kdJcWa6C1Sk4E98yXgVr8aO2Ycf3vSJxPgi DUry2vlBDkkV57KmkT2B9Cb1sSvJszm26osfKZN6vNgvm6GRf7HVjPNI9O14FB0cwKjbNNAcOaeZ JqzMlte89fYyH8jtz930vYj8i6Ym5mJkjYHAnpJF2onmNP0U42nW5XcmVvXTlwW6Lz6+XjmI/IuV hZhpbGt+KGSQrhzTbTnZTucn/t9aNhh4FU9S5fraE68Wr952Dtci/2LnIVCT0DbTr3qi3ih908k/ 4gjdlD6bae/5XnyS25ulG+edf7xUfJMvEeMLEsknpoQjeZn7EF1leZhEEzh2jKdt/H85FFRdvxfR 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 +/NVRP7FuHAEfYhQsPEg0LTPgSAz61oTnfS6KsL0qnMuEM/D/36YLxHnRxhhjTSE6zkG3qXnPXGL FfUpjKA4n7RFv+U0zvrqlnea+GAe/+d8FbGfyupRH7kMdDs9WCquqdetaAnYsZ6+Nbks8psYdT5Y 3Oi33Ef+xZTDcWdCO8hc7xpuNGlw0JDd2xFGstIG+yyq6arijfL3N64vEefNSM4fiQHZWGNY2A/c 6T0UhaEM6hiQ/t8NwMfTs/2BfIkYX3DkL80W1nT/HyIfnLLukgPEI7VXrKDGGe77P4r75sZ/7Gd4 RZ/zL/pYwafzN8PLoWzI6VpJYUof9MhrrJY6L2L/8l3x/XjWg1/lS0Q+OI+vgRiChvDNmebNfUX1 FIed+p5itOZshcVRnA8JBziu34uYj0xpvNjGu0b9XTtE6jzHVUdCmdgWLcdo5R1ZJM+dT5HLJSKP b0qDymOivn88OGVAg/O9YsUyfUA9B3ym8VI6/HysEt4TYdL5EjkvZ2FMkj7ZlpNpDVkXI8uE6dWx l5Z+ZoT/RZrT9/+5jsIr7smXiPxOpkEVGYgrZ0R7To0vnPLft5qor/Txpmn//0OSJEmSJEmSJEmS JEmSJEmSJP3/vZ/3n34u1u9+/HFff/7/1r+jTPq+5f+shq68+f+sy+z/UdVNX3Vt07Xp/71qyrb5 f1z9/+Rwwi8//Tz/eHX1//hl+eXbn3/5f/O/9//hfy5JkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJ kiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJ kiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJ kiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJ kiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJ kiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJ kiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJ kiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJ kiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJ kiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJ kiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJ kiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJ kiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJ kiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJ kiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJ kiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJ kiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJ kiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJ kiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJ kiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJ kiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJ kiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJ kiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJ kiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJ kiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJ kiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJ kiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJ kiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJ kiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJ kiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJ kiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJ kiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJ kiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJ kiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJ kiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJ kiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJ kiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJ kiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJ kiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJ kiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJ kiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJ kiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJ kiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJ kiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJ kiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJ kiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJ kiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJ kiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJ kiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJ kiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJ kiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJ kiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJ kiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJ kiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJ kiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJ kiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJ kiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJ kiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJ kiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJ kiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJ kiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJ kiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJ kiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJ kiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiRJkiT9P9ux+94mkjsAwPyLP8VcTgcxNcR2 QqAk4UQhnKgQqUjao6Uo8tlrYtVZR7vrANejn72z65fYSXi569HTSc8jJZudnZ39zW9edhUAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA 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 AAAAv5b/AhsSudMASIAA --001a113351126d34f904fe54053b-- From jack@suse.cz Wed Jul 16 15:32:19 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: xfs@oss.sgi.com Delivered-To: xfs@oss.sgi.com Received: from relay.sgi.com (relay1.corp.sgi.com [137.38.102.111]) by oss.sgi.com (Postfix) with ESMTP id 0BEFD7FC5 for ; Wed, 16 Jul 2014 15:32:19 -0500 (CDT) Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by relay1.corp.sgi.com (Postfix) with ESMTP id C04778F8040 for ; Wed, 16 Jul 2014 13:32:15 -0700 (PDT) X-ASG-Debug-ID: 1405542732-04bdf0356a14b340001-NocioJ Received: from mx2.suse.de (cantor2.suse.de [195.135.220.15]) by cuda.sgi.com with ESMTP id 7MleVb7aNOrnxxMd (version=TLSv1 cipher=AES256-SHA bits=256 verify=NO) for ; Wed, 16 Jul 2014 13:32:13 -0700 (PDT) X-Barracuda-Envelope-From: jack@suse.cz X-Barracuda-Apparent-Source-IP: 195.135.220.15 Received: from relay2.suse.de (charybdis-ext.suse.de [195.135.220.254]) by mx2.suse.de (Postfix) with ESMTP id 10406AB5D; Wed, 16 Jul 2014 20:32:12 +0000 (UTC) Received: by quack.suse.cz (Postfix, from userid 1000) id 6684E81EE7; Wed, 16 Jul 2014 22:32:10 +0200 (CEST) Date: Wed, 16 Jul 2014 22:32:10 +0200 From: Jan Kara To: Dave Chinner Cc: Jan Kara , xfs@oss.sgi.com Subject: Re: XFS CRC errors after a crash Message-ID: <20140716203210.GA21559@quack.suse.cz> X-ASG-Orig-Subj: Re: XFS CRC errors after a crash References: <20140625164939.GA27620@quack.suse.cz> <20140625215952.GM9508@dastard> <20140626202046.GA17707@quack.suse.cz> <20140626231843.GU9508@dastard> <20140627213524.GA11519@quack.suse.cz> <20140628002947.GZ9508@dastard> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20140628002947.GZ9508@dastard> User-Agent: Mutt/1.5.21 (2010-09-15) X-Barracuda-Connect: cantor2.suse.de[195.135.220.15] X-Barracuda-Start-Time: 1405542733 X-Barracuda-Encrypted: AES256-SHA X-Barracuda-URL: http://192.48.157.11:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 X-Barracuda-Spam-Score: 0.00 X-Barracuda-Spam-Status: No, SCORE=0.00 using per-user scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.7 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.7557 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- On Sat 28-06-14 10:29:47, Dave Chinner wrote: > On Fri, Jun 27, 2014 at 11:35:24PM +0200, Jan Kara wrote: > > On Fri 27-06-14 09:18:43, Dave Chinner wrote: > > > On Thu, Jun 26, 2014 at 10:20:46PM +0200, Jan Kara wrote: > > > > On Thu 26-06-14 07:59:52, Dave Chinner wrote: > > > > > On Wed, Jun 25, 2014 at 06:49:39PM +0200, Jan Kara wrote: > > > > > > Hello, > > > > > > > > > > > > so I've been crash-testing XFS (just killing KVM with XFS filesystem > > > > > > mounted) a bit with V5 superblock enabled in 3.16-rc1 and I can pretty > > > > > > easily hit CRC mismatches after that. Kernel complains like: > > > > > > > > > > Yes, we had that reported yesterday by another person, using virtual > > > > > box. I've been unable to reproduce it on my local KVM VMs, so I'm > > > > > wondering what your configuration KVM configuration is? > > > > I'm running the qemu as: > > > > qemu-kvm -m 2048 -smp 6 -drive file=/dev/sdb,if=virtio,cache=none -net > > > > nic,macaddr=00:16:3e:32:96:20,model=virtio -net > > > > tap,script=/root/tests/bin/qemu-setup-net -vnc :1 -serial file:serial.log > > > > -kernel /boot/vmlinuz-autotest -initrd /boot/initrd-autotest -append > > > > 'root=/dev/vda3 rootflags=relatime' > > > > > > Ok, so you are testing directly on a block device via virtio, using > > > direct IO. Hmmm _ I'm using virtio,cache=none on image files on XFS, > > > so I can't see that there's be much difference there. Nothing else > > > stands out - I'm assuming that you're not using the "nobarrier" > > > mount option? > > No, I'm not using nobarrier. > > > > > > > > [518184.794175] XFS (sdb3): Mounting V5 Filesystem > > > > > > [518184.902898] XFS (sdb3): Starting recovery (logdev: internal) > > > > > > [518187.118860] XFS (sdb3): Metadata CRC error detected at xfs_agf_read_verify+0x5a/0x100 [xfs], block 0x1 > > > > > > [518187.118870] XFS (sdb3): Unmount and run xfs_repair > > > > > > [518187.118875] XFS (sdb3): First 64 bytes of corrupted metadata buffer: > > > > > > [518187.118882] ffff880136ffd600: 58 41 47 46 00 00 00 01 00 00 00 00 00 0f aa 40 XAGF...........@ > > > > > > [518187.118887] ffff880136ffd610: 00 02 6d 53 00 02 77 f8 00 00 00 00 00 00 00 01 ..mS..w......... > > > > > > [518187.118891] ffff880136ffd620: 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 03 ................ > > > > > > [518187.118895] ffff880136ffd630: 00 00 00 04 00 08 81 d0 00 08 81 a7 00 00 00 00 ................ > > > > > > [518187.118923] XFS (sdb3): metadata I/O error: block 0x1 ("xfs_trans_read_buf_map") error 74 numblks 1 > > > > > > > > > > > > So it seem like the checksum doesn't get updated properly in all the cases. > > > > > > Looking into the logdump, there doesn't seem to be any modifications for > > > > > > this AGF block in unrelayed part of the log but there are some modifications > > > > > > in the older parts of the log - the latest LSN where block 1 was updated is > > > > > > 1,4639 (and the buffer contents in the log corresponds to the data I see in > > > > > > block 1). However the lsn field in AGF structure in that block shows 1,3616 > > > > > > so that really seems stale (and I've checked and in that transaction the > > > > > > block has been modified as well). > > > > > > > > > > That tallies with what has been reported -it was the AGI block, > > > > > however. What I know so far is that the CRC matches for the version > > > > > of the structure logged at the apparent LSN, but the data is more > > > > > recent. > > > > Yes, this is the case with my corruption as well. > > > > > > > > > Now the only way I can see the data getting updated without the LSN > > > > > being updates is through log recovery, the analysis is here: > > > > Yes, that's what I originally though as well but for me: > > > > log tail: 8960 head: 10080 state: > > > > and the problematic AGF has last been modified in lsn 1,4639 (and it > > > > contains data logged there, while agf_lsn field is set to 1,3616). So it > > > > seems recovery shouldn't replay lsn 4639? > > > > > > No, what that tells me is that a previous log recovery replayed the > > > change at lsn 4639. Log recovery does not update the lsn in the > > > object because if log recovery fails we need to run it completely > > > from tail to head again, and we want it to rewrite all the changes > > > appropriately. If we update the lsn each time we recover a change, > > > then this won't happen. > > > > > > Hence a sign of an object that has been recovered is that there is > > > newer data than the LSN indicates. The issue here is that the CRC > > > does not appear to have been updated, and I can't work out how that > > > can occur - log recovery of a buffer will see the appropriate magic > > > number, add the correct verifier, and when the recovered data is > > > written it will recalc the CRC first. > > > > > > That's why I send the debug patch to catch buffer writes that didn't > > > have verifier ops attached. (attached below again for you). If that > > > fires at any time, then we have a smoking gun. But if it doesn't > > > fire and you still see CRC mismatches then we've got something > > > extremely subtle > > OK, so I've reproduced the issue again and after some investigation found > > at least one issue in log recovery code (your debug assertions have > > tripped): > > Ok, I am going to make that debug patch a permanent "feature" seeing > as it proved useful in tracking down this bug. > > > In the case reproduced now, I had a log with one transaction > > containing the AGF buffer however the AGF buffer on disk already had the data > > from that transaction written (and had agf_lsn set appropriately). Log > > replay then read-ahead the buffer (that leaves b_ops at NULL), then after > > investigation of the log item found it shouldn't be replayed and never > > ended up calling xlog_recover_validate_buf_type() to set proper b_ops. > > Later when we removed orphan inodes (I'm not sure about proper xfs > > terminology), AGF was modified and written without proper verifiers set. > > Ok, that also explains why we've been seeing it in AGF, AGI and > related ABT/IBT buffers and not in any other type of buffer. So you > analysis definitely fits the symptoms reported. > > > The attached patch fixes the problem for me (at least this particular case > > of corruption). Since I'm on vacation already and it's late I'll leave it for > > now. If the problem needs to be fixed differently, feel free to modify / > > discard the attached patch (since I will be scarcely on email for following > > two weeks). > > I might end up fixing it differently, but you'll get the credit for > finding debugging the problem. Many thanks, Jan, I owe you a beer or > two for finding this. :) Dave, I don't see my or any alternative fix in XFS git tree. Did this get missed? I think it would be good to include the fix with the batch of fixes you're planning to send to Linus... Honza -- Jan Kara SUSE Labs, CR From jack@suse.cz Wed Jul 16 15:33:06 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: xfs@oss.sgi.com Delivered-To: xfs@oss.sgi.com Received: from relay.sgi.com (relay1.corp.sgi.com [137.38.102.111]) by oss.sgi.com (Postfix) with ESMTP id B48237FCB for ; Wed, 16 Jul 2014 15:33:06 -0500 (CDT) Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by relay1.corp.sgi.com (Postfix) with ESMTP id 329C48F8068 for ; Wed, 16 Jul 2014 13:33:06 -0700 (PDT) X-ASG-Debug-ID: 1405542783-04bdf0356a14b400001-NocioJ Received: from mx2.suse.de (cantor2.suse.de [195.135.220.15]) by cuda.sgi.com with ESMTP id Go6QhZiuTK9EM5X2 (version=TLSv1 cipher=AES256-SHA bits=256 verify=NO) for ; Wed, 16 Jul 2014 13:33:04 -0700 (PDT) X-Barracuda-Envelope-From: jack@suse.cz X-Barracuda-Apparent-Source-IP: 195.135.220.15 Received: from relay2.suse.de (charybdis-ext.suse.de [195.135.220.254]) by mx2.suse.de (Postfix) with ESMTP id D1A37ABE3; Wed, 16 Jul 2014 20:33:02 +0000 (UTC) Received: by quack.suse.cz (Postfix, from userid 1000) id 6FEF581EE7; Wed, 16 Jul 2014 22:33:01 +0200 (CEST) Date: Wed, 16 Jul 2014 22:33:01 +0200 From: Jan Kara To: Christoph Hellwig Cc: Dave Chinner , Jan Kara , xfs@oss.sgi.com Subject: Re: [PATCH] logprint: Fix printing of AGF buffers Message-ID: <20140716203301.GB21559@quack.suse.cz> X-ASG-Orig-Subj: Re: [PATCH] logprint: Fix printing of AGF buffers References: <1405349100-19734-1-git-send-email-jack@suse.cz> <20140715101931.GC30363@infradead.org> <20140715140938.GA1733@quack.suse.cz> <20140715153922.GB5369@infradead.org> <20140716003851.GO22339@dastard> <20140716081105.GB29924@infradead.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20140716081105.GB29924@infradead.org> User-Agent: Mutt/1.5.21 (2010-09-15) X-Barracuda-Connect: cantor2.suse.de[195.135.220.15] X-Barracuda-Start-Time: 1405542783 X-Barracuda-Encrypted: AES256-SHA X-Barracuda-URL: http://192.48.157.11:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 X-Barracuda-Spam-Score: 0.00 X-Barracuda-Spam-Status: No, SCORE=0.00 using per-user scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.7 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.7557 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- On Wed 16-07-14 01:11:05, Christoph Hellwig wrote: > On Wed, Jul 16, 2014 at 10:38:51AM +1000, Dave Chinner wrote: > > I added this: > > > > /* > > * The addition of spare space and the non-logged CRC format > > * fields to the AGF mean that the size that is logged is almost > > * always going to be smaller than the structure itself. Hence > > * we need to make sure that the buffer contains all the data we > > * want to print rather than just check against the structure > > * size. > > */ > > > > Cheers, > > I'd prefer to mention v4 filesystems as well: > > /* > * v4 filesystems only contain the fields before the uuid, and > * even v5 filesystems don't usually log any field beneath it. > */ > > note that the AGI case also needs the same treatment. Yep, I'll send an updated patch in a moment. Honza -- Jan Kara SUSE Labs, CR From jack@suse.cz Wed Jul 16 15:45:33 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: xfs@oss.sgi.com Delivered-To: xfs@oss.sgi.com Received: from relay.sgi.com (relay1.corp.sgi.com [137.38.102.111]) by oss.sgi.com (Postfix) with ESMTP id 6AE637FCB for ; Wed, 16 Jul 2014 15:45:31 -0500 (CDT) Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by relay1.corp.sgi.com (Postfix) with ESMTP id 53ADD8F806F for ; Wed, 16 Jul 2014 13:45:30 -0700 (PDT) X-ASG-Debug-ID: 1405543527-04bdf0356814bc00001-NocioJ Received: from mx2.suse.de (cantor2.suse.de [195.135.220.15]) by cuda.sgi.com with ESMTP id FWfcyubmYHudOa0P (version=TLSv1 cipher=AES256-SHA bits=256 verify=NO) for ; Wed, 16 Jul 2014 13:45:28 -0700 (PDT) X-Barracuda-Envelope-From: jack@suse.cz X-Barracuda-Apparent-Source-IP: 195.135.220.15 Received: from relay2.suse.de (charybdis-ext.suse.de [195.135.220.254]) by mx2.suse.de (Postfix) with ESMTP id 4971EAB5D; Wed, 16 Jul 2014 20:45:27 +0000 (UTC) Received: by quack.suse.cz (Postfix, from userid 1000) id D815581EE7; Wed, 16 Jul 2014 22:45:25 +0200 (CEST) From: Jan Kara To: xfs@oss.sgi.com Cc: Christoph Hellwig , dchinner@redhat.com, Jan Kara Subject: [PATCH v2] logprint: Fix printing of AGF and AGI buffers Date: Wed, 16 Jul 2014 22:45:21 +0200 X-ASG-Orig-Subj: [PATCH v2] logprint: Fix printing of AGF and AGI buffers Message-Id: <1405543521-21978-1-git-send-email-jack@suse.cz> X-Mailer: git-send-email 1.8.1.4 X-Barracuda-Connect: cantor2.suse.de[195.135.220.15] X-Barracuda-Start-Time: 1405543528 X-Barracuda-Encrypted: AES256-SHA X-Barracuda-URL: http://192.48.157.11:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 X-Barracuda-Spam-Score: 0.00 X-Barracuda-Spam-Status: No, SCORE=0.00 using per-user scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.7 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.7557 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- Currently xfs_logprint doesn't show detailed data about AGF and AGI buffers and instead always shows "Out of space". This is because xfs_agf_t has additional fields and padding which we never read from disk and thus buffer length is always smaller than the size of xfs_agf_t or xfs_agi_t respectively. Fix the problem by only making sure we have enough data in the buffer to contain all the information we want to print. Signed-off-by: Jan Kara --- logprint/log_misc.c | 20 ++++++++++++++++++-- 1 file changed, 18 insertions(+), 2 deletions(-) diff --git a/logprint/log_misc.c b/logprint/log_misc.c index d482cf3fba57..c9286c67b913 100644 --- a/logprint/log_misc.c +++ b/logprint/log_misc.c @@ -325,7 +325,15 @@ xlog_print_trans_buffer(xfs_caddr_t *ptr, int len, int *i, int num_ops) } else if (be32_to_cpu(*(__be32 *)(*ptr)) == XFS_AGI_MAGIC) { agi = (xfs_agi_t *)(*ptr); printf(_("AGI Buffer: XAGI ")); - if (be32_to_cpu(head->oh_len) < sizeof(xfs_agi_t) - + /* + * v4 filesystems only contain the fields before the uuid. + * Even v5 filesystems don't log any field beneath it. That + * means that the size that is logged is almost always going to + * be smaller than the structure itself. Hence we need to make + * sure that the buffer contains all the data we want to print + * rather than just check against the structure size. + */ + if (be32_to_cpu(head->oh_len) < offsetof(xfs_agi_t, agi_uuid) - XFS_AGI_UNLINKED_BUCKETS*sizeof(xfs_agino_t)) { printf(_("out of space\n")); } else { @@ -367,7 +375,15 @@ xlog_print_trans_buffer(xfs_caddr_t *ptr, int len, int *i, int num_ops) } else if (be32_to_cpu(*(__be32 *)(*ptr)) == XFS_AGF_MAGIC) { agf = (xfs_agf_t *)(*ptr); printf(_("AGF Buffer: XAGF ")); - if (be32_to_cpu(head->oh_len) < sizeof(xfs_agf_t)) { + /* + * v4 filesystems only contain the fields before the uuid. + * Even v5 filesystems don't log any field beneath it. That + * means that the size that is logged is almost always going to + * be smaller than the structure itself. Hence we need to make + * sure that the buffer contains all the data we want to print + * rather than just check against the structure size. + */ + if (be32_to_cpu(head->oh_len) < offsetof(xfs_agf_t, agf_uuid)) { printf(_("Out of space\n")); } else { printf("\n"); -- 1.8.1.4 From david@fromorbit.com Wed Jul 16 17:17:09 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: xfs@oss.sgi.com Delivered-To: xfs@oss.sgi.com Received: from relay.sgi.com (relay2.corp.sgi.com [137.38.102.29]) by oss.sgi.com (Postfix) with ESMTP id 339417FD5 for ; Wed, 16 Jul 2014 17:17:09 -0500 (CDT) Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by relay2.corp.sgi.com (Postfix) with ESMTP id 160AA304048 for ; Wed, 16 Jul 2014 15:17:05 -0700 (PDT) X-ASG-Debug-ID: 1405549022-04cbb0421a14fca0001-NocioJ Received: from ipmail06.adl6.internode.on.net (ipmail06.adl6.internode.on.net [150.101.137.145]) by cuda.sgi.com with ESMTP id yjjXRjLIXAT0fLqs for ; Wed, 16 Jul 2014 15:17:03 -0700 (PDT) X-Barracuda-Envelope-From: david@fromorbit.com X-Barracuda-Apparent-Source-IP: 150.101.137.145 X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: AtEIAL74xlN5LHOdPGdsb2JhbABagw6BKYIlhQilUQaddQGBChcEAQEBATg2hAMBAQUnEw0PHgUQCAMOBwMJJQ8FDRgDBxoTiC4DELgzinkNhxwXGIVjhyOBSxEBUAeDLYEWBZkdgX+OEYlyKy+BAwIHFwQC Received: from ppp121-44-115-157.lns20.syd6.internode.on.net (HELO dastard) ([121.44.115.157]) by ipmail06.adl6.internode.on.net with ESMTP; 17 Jul 2014 07:47:01 +0930 Received: from dave by dastard with local (Exim 4.80) (envelope-from ) id 1X7XVT-0000K8-Gt; Thu, 17 Jul 2014 08:16:59 +1000 Date: Thu, 17 Jul 2014 08:16:59 +1000 From: Dave Chinner To: Jan Kara Cc: xfs@oss.sgi.com Subject: Re: XFS CRC errors after a crash Message-ID: <20140716221659.GD4453@dastard> X-ASG-Orig-Subj: Re: XFS CRC errors after a crash References: <20140625164939.GA27620@quack.suse.cz> <20140625215952.GM9508@dastard> <20140626202046.GA17707@quack.suse.cz> <20140626231843.GU9508@dastard> <20140627213524.GA11519@quack.suse.cz> <20140628002947.GZ9508@dastard> <20140716203210.GA21559@quack.suse.cz> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20140716203210.GA21559@quack.suse.cz> User-Agent: Mutt/1.5.21 (2010-09-15) X-Barracuda-Connect: ipmail06.adl6.internode.on.net[150.101.137.145] X-Barracuda-Start-Time: 1405549022 X-Barracuda-URL: http://192.48.176.25:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 X-Barracuda-Spam-Score: 0.00 X-Barracuda-Spam-Status: No, SCORE=0.00 using per-user scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.7 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.7558 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- On Wed, Jul 16, 2014 at 10:32:10PM +0200, Jan Kara wrote: > On Sat 28-06-14 10:29:47, Dave Chinner wrote: > > On Fri, Jun 27, 2014 at 11:35:24PM +0200, Jan Kara wrote: > > > On Fri 27-06-14 09:18:43, Dave Chinner wrote: > > > > On Thu, Jun 26, 2014 at 10:20:46PM +0200, Jan Kara wrote: > > > The attached patch fixes the problem for me (at least this particular case > > > of corruption). Since I'm on vacation already and it's late I'll leave it for > > > now. If the problem needs to be fixed differently, feel free to modify / > > > discard the attached patch (since I will be scarcely on email for following > > > two weeks). > > > > I might end up fixing it differently, but you'll get the credit for > > finding debugging the problem. Many thanks, Jan, I owe you a beer or > > two for finding this. :) > Dave, I don't see my or any alternative fix in XFS git tree. Did this get > missed? I think it would be good to include the fix with the batch of fixes > you're planning to send to Linus... No, it hasn't been missed, I have a different fix that I'm testing, but I've kind of had bigger issues to sort out over the past couple of weeks. I've also had trouble reproducing the issue, so it's been slow testing that it actually works correctly. And it's got to go back to -stable kernels, which means a couple of weeks here or there doesn't make much difference. The patch I'm testing is below. Cheers, Dave. -- Dave Chinner david@fromorbit.com xfs: ensure verifiers are attached to recovered buffers From: Dave Chinner Crash testing of CRC enabled filesystems has resulted in a number of reports of bad CRCs being detected after the filesystem was mounted. Errors such as the following were being seen: XFS (sdb3): Mounting V5 Filesystem XFS (sdb3): Starting recovery (logdev: internal) XFS (sdb3): Metadata CRC error detected at xfs_agf_read_verify+0x5a/0x100 [xfs], block 0x1 XFS (sdb3): Unmount and run xfs_repair XFS (sdb3): First 64 bytes of corrupted metadata buffer: ffff880136ffd600: 58 41 47 46 00 00 00 01 00 00 00 00 00 0f aa 40 XAGF...........@ ffff880136ffd610: 00 02 6d 53 00 02 77 f8 00 00 00 00 00 00 00 01 ..mS..w......... ffff880136ffd620: 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 03 ................ ffff880136ffd630: 00 00 00 04 00 08 81 d0 00 08 81 a7 00 00 00 00 ................ XFS (sdb3): metadata I/O error: block 0x1 ("xfs_trans_read_buf_map") error 74 numblks 1 The errors were typically being seen in AGF, AGI and their related btree block buffers some time after log recovery had run. Often it wasn't until later subsequent mounts that the problem was discovered. The common symptom was a buffer with the correct contents, but a CRC and an LSN that matched an older version of the contents. Some debug added to _xfs_buf_ioapply() indicated that buffers were being written without verifiers attached to them from log recovery, and Jan Kara isolated the cause to log recovery readahead an dit's interactions with buffers that had a more recent LSN on disk than the transaction being recovered. In this case, the buffer did not get a verifier attached, and os when the second phase of log recovery ran and recovered EFIs and unlinked inodes, the buffers were modified and written without the verifier running. Hence they had up to date contents, but stale LSNs and CRCs. Fix it by attaching verifiers to buffers we skip due to future LSN values so they don't escape into the buffer cache without the correct verifier attached. This patch is based on analysis and a patch from Jan Kara. Reported-by: Jan Kara Reported-by: Fanael Linithien Reported-by: Grozdan Signed-off-by: Dave Chinner --- fs/xfs/xfs_log_recover.c | 47 +++++++++++++++++++++++++++++++---------------- 1 file changed, 31 insertions(+), 16 deletions(-) diff --git a/fs/xfs/xfs_log_recover.c b/fs/xfs/xfs_log_recover.c index 981af0f..3ce28c5 100644 --- a/fs/xfs/xfs_log_recover.c +++ b/fs/xfs/xfs_log_recover.c @@ -2125,6 +2125,17 @@ xlog_recover_validate_buf_type( __uint16_t magic16; __uint16_t magicda; + /* + * We can only do post recovery validation on items on CRC enabled + * fielsystems as we need to know when the buffer was written to be able + * to determine if we should have replayed the item. If we replay old + * metadata over a newer buffer, then it will enter a temporarily + * inconsistent state resulting in verification failures. Hence for now + * just avoid the verification stage for non-crc filesystems + */ + if (!xfs_sb_version_hascrc(&mp->m_sb)) + return; + magic32 = be32_to_cpu(*(__be32 *)bp->b_addr); magic16 = be16_to_cpu(*(__be16*)bp->b_addr); magicda = be16_to_cpu(info->magic); @@ -2196,10 +2207,6 @@ xlog_recover_validate_buf_type( #endif break; case XFS_BLFT_DINO_BUF: - /* - * we get here with inode allocation buffers, not buffers that - * track unlinked list changes. - */ if (magic16 != XFS_DINODE_MAGIC) { xfs_warn(mp, "Bad INODE block magic!"); ASSERT(0); @@ -2387,16 +2394,7 @@ xlog_recover_do_reg_buffer( /* Shouldn't be any more regions */ ASSERT(i == item->ri_total); - /* - * We can only do post recovery validation on items on CRC enabled - * fielsystems as we need to know when the buffer was written to be able - * to determine if we should have replayed the item. If we replay old - * metadata over a newer buffer, then it will enter a temporarily - * inconsistent state resulting in verification failures. Hence for now - * just avoid the verification stage for non-crc filesystems - */ - if (xfs_sb_version_hascrc(&mp->m_sb)) - xlog_recover_validate_buf_type(mp, bp, buf_f); + xlog_recover_validate_buf_type(mp, bp, buf_f); } /* @@ -2504,12 +2502,29 @@ xlog_recover_buffer_pass2( } /* - * recover the buffer only if we get an LSN from it and it's less than + * Recover the buffer only if we get an LSN from it and it's less than * the lsn of the transaction we are replaying. + * + * Note that we have to be extremely careful of readahead here. + * Readahead does not attach verfiers to the buffers so if we don't + * actually do any replay after readahead because of the LSN we found + * in the buffer if more recent than that current transaction then we + * need to attach the verifier directly. Failure to do so can lead to + * future recovery actions (e.g. EFI and unlinked list recovery) can + * operate on the buffers and they won't get the verifier attached. This + * can lead to blocks on disk having the correct content but a stale + * CRC. + * + * It is safe to assume these clean buffers are currently up to date. + * If the buffer is dirtied by a later transaction being replayed, then + * the verifier will be reset to match whatever recover turns that + * buffer into. */ lsn = xlog_recover_get_buf_lsn(mp, bp); - if (lsn && lsn != -1 && XFS_LSN_CMP(lsn, current_lsn) >= 0) + if (lsn && lsn != -1 && XFS_LSN_CMP(lsn, current_lsn) >= 0) { + xlog_recover_validate_buf_type(mp, bp, buf_f); goto out_release; + } if (buf_f->blf_flags & XFS_BLF_INODE_BUF) { error = xlog_recover_do_inode_buffer(mp, item, bp, buf_f); From david@fromorbit.com Wed Jul 16 17:31:58 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: xfs@oss.sgi.com Delivered-To: xfs@oss.sgi.com Received: from relay.sgi.com (relay1.corp.sgi.com [137.38.102.111]) by oss.sgi.com (Postfix) with ESMTP id 52E987FD3 for ; Wed, 16 Jul 2014 17:31:58 -0500 (CDT) Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by relay1.corp.sgi.com (Postfix) with ESMTP id 349EF8F8035 for ; Wed, 16 Jul 2014 15:31:54 -0700 (PDT) X-ASG-Debug-ID: 1405549912-04cb6c6ad01470d0001-NocioJ Received: from ipmail06.adl6.internode.on.net (ipmail06.adl6.internode.on.net [150.101.137.145]) by cuda.sgi.com with ESMTP id j2KLA0VCzVgKzCFr for ; Wed, 16 Jul 2014 15:31:52 -0700 (PDT) X-Barracuda-Envelope-From: david@fromorbit.com X-Barracuda-Apparent-Source-IP: 150.101.137.145 X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: AtEIAEP8xlN5LHOdPGdsb2JhbABagw6BKYIlhQilUQaddQGBChcEAQEBATg2hAQBBTocIxAIAxgJJQ8FJQMHGhOIQcpbFxiFY4lQB4MtgRYFmxyYAysvgQUk Received: from ppp121-44-115-157.lns20.syd6.internode.on.net (HELO dastard) ([121.44.115.157]) by ipmail06.adl6.internode.on.net with ESMTP; 17 Jul 2014 08:01:52 +0930 Received: from dave by dastard with local (Exim 4.80) (envelope-from ) id 1X7Xjq-0000Mp-79; Thu, 17 Jul 2014 08:31:50 +1000 Date: Thu, 17 Jul 2014 08:31:50 +1000 From: Dave Chinner To: Gregory Farnum Cc: Christoph Hellwig , Samuel Just , "ceph-devel@vger.kernel.org" , Sage Weil , xfs@oss.sgi.com Subject: Re: v0.80.4 Firefly released Message-ID: <20140716223150.GE4453@dastard> X-ASG-Orig-Subj: Re: v0.80.4 Firefly released References: <20140716092226.GA23561@infradead.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.5.21 (2010-09-15) X-Barracuda-Connect: ipmail06.adl6.internode.on.net[150.101.137.145] X-Barracuda-Start-Time: 1405549912 X-Barracuda-URL: http://192.48.176.15:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 X-Barracuda-Spam-Score: 0.00 X-Barracuda-Spam-Status: No, SCORE=0.00 using per-user scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.7 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.7558 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- On Wed, Jul 16, 2014 at 10:26:23AM -0700, Gregory Farnum wrote: > On Wed, Jul 16, 2014 at 2:22 AM, Christoph Hellwig wrote: > > On Tue, Jul 15, 2014 at 04:45:59PM -0700, Sage Weil wrote: > >> This Firefly point release fixes an potential data corruption problem > >> when ceph-osd daemons run on top of XFS and service Firefly librbd > >> clients. A recently added allocation hint that RBD utilizes triggers > >> an XFS bug on some kernels (Linux 3.2, and likely others) that leads > >> to data corruption and deep-scrub errors (and inconsistent PGs). This > >> release avoids the situation by disabling the allocation hint until we > >> can validate which kernels are affected and/or are known to be safe to > >> use the hint on. > > > > I've not really seen an report for that on the XFS list, could it be > > that you're running into the issue fixed by > > > > "xfs: Use preallocation for inodes with extsz hints" > > > > (commit aff3a9edb7080f69f07fe76a8bd089b3dfa4cb5d)? > > Sam reported the issue we're seeing in "consequences of > XFS_IOC_FSSETXATTR on non-empty file?", Assuming you've created an extent size hint with a file with delayed allocation on it and no blocks, then that's more than likely the same issue. The above commit uses preallocation to allocate unwritten extents rather than delayed allocation for files with extent size hints because delayed allocation doesn't write zeros over ranges in the allocated extents that don't have dirty data over them. Moral of the story: any time you get what appears to be data corruption in the underlying data store, you should report it to the relevant filesystem list rather than try to work around it.... Cheers, Dave. -- Dave Chinner david@fromorbit.com From david@fromorbit.com Wed Jul 16 18:17:32 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: xfs@oss.sgi.com Delivered-To: xfs@oss.sgi.com Received: from relay.sgi.com (relay2.corp.sgi.com [137.38.102.29]) by oss.sgi.com (Postfix) with ESMTP id A30337FDF for ; Wed, 16 Jul 2014 18:17:32 -0500 (CDT) Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by relay2.corp.sgi.com (Postfix) with ESMTP id 82BC9304039 for ; Wed, 16 Jul 2014 16:17:29 -0700 (PDT) X-ASG-Debug-ID: 1405552647-04cbb0421a151cb0001-NocioJ Received: from ipmail06.adl6.internode.on.net (ipmail06.adl6.internode.on.net [150.101.137.145]) by cuda.sgi.com with ESMTP id 88GC1mG9fsCmNk01 for ; Wed, 16 Jul 2014 16:17:27 -0700 (PDT) X-Barracuda-Envelope-From: david@fromorbit.com X-Barracuda-Apparent-Source-IP: 150.101.137.145 X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: AtEIAAsHx1N5LHOdPGdsb2JhbABZgw6BKYIlhQilUgaddQGBChcEAQEBATg2hAQBBTocIxAIAw4KCSUPBSUDBxoTiEHKUxcYhWOJUAeDLYEWBZscmAMrLw Received: from ppp121-44-115-157.lns20.syd6.internode.on.net (HELO dastard) ([121.44.115.157]) by ipmail06.adl6.internode.on.net with ESMTP; 17 Jul 2014 08:47:26 +0930 Received: from dave by dastard with local (Exim 4.80) (envelope-from ) id 1X7YRx-0000Tv-4e; Thu, 17 Jul 2014 09:17:25 +1000 Date: Thu, 17 Jul 2014 09:17:25 +1000 From: Dave Chinner To: Christoph Hellwig Cc: Jan Kara , xfs@oss.sgi.com Subject: Re: [PATCH] logprint: Fix printing of AGF buffers Message-ID: <20140716231725.GF4453@dastard> X-ASG-Orig-Subj: Re: [PATCH] logprint: Fix printing of AGF buffers References: <1405349100-19734-1-git-send-email-jack@suse.cz> <20140715101931.GC30363@infradead.org> <20140715140938.GA1733@quack.suse.cz> <20140715153922.GB5369@infradead.org> <20140716003851.GO22339@dastard> <20140716081105.GB29924@infradead.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20140716081105.GB29924@infradead.org> User-Agent: Mutt/1.5.21 (2010-09-15) X-Barracuda-Connect: ipmail06.adl6.internode.on.net[150.101.137.145] X-Barracuda-Start-Time: 1405552647 X-Barracuda-URL: http://192.48.176.25:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 X-Barracuda-Spam-Score: 0.00 X-Barracuda-Spam-Status: No, SCORE=0.00 using per-user scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.7 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.7561 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- On Wed, Jul 16, 2014 at 01:11:05AM -0700, Christoph Hellwig wrote: > On Wed, Jul 16, 2014 at 10:38:51AM +1000, Dave Chinner wrote: > > I added this: > > > > /* > > * The addition of spare space and the non-logged CRC format > > * fields to the AGF mean that the size that is logged is almost > > * always going to be smaller than the structure itself. Hence > > * we need to make sure that the buffer contains all the data we > > * want to print rather than just check against the structure > > * size. > > */ > > > > Cheers, > > I'd prefer to mention v4 filesystems as well: > > /* > * v4 filesystems only contain the fields before the uuid, and > * even v5 filesystems don't usually log any field beneath it. > */ It actually has nothing to do with v4 or v5 filesystems - it's to do with the fact that we do partial buffer logging but logprint is assuming the structure is always logging as a whole. There's mistakes like this all through logprint - we whack them like this with a big stick (i.e. refuse to parse the structure) when they are found. Did you notice the way that log_print_all.c handled these issues? For the AGI, it simply looks at the length of the region and sizes the output accordingly. And for the AGF, it just ignores the size of the region and assumes that it captured everything that is to be printed. IOWs, we've played whack-a-mole on this again while ignoring the fundamental issues ithat still remain: - that logprint has a lot of assumptions that simply aren't true; and - that logprint simply does not handle split region continuations like the kernel recovery code does. Both of these things lead to having to handle these strange "out of space" cases in multiple places, and simply not handling them in places that actually need to. These are just more reasons why logprint - as it says itself in a couple of comments - needs a complete rewrite. Cheers, Dave. -- Dave Chinner david@fromorbit.com From david@fromorbit.com Wed Jul 16 18:32:53 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: xfs@oss.sgi.com Delivered-To: xfs@oss.sgi.com Received: from relay.sgi.com (relay2.corp.sgi.com [137.38.102.29]) by oss.sgi.com (Postfix) with ESMTP id 9ECC87FE7 for ; Wed, 16 Jul 2014 18:32:53 -0500 (CDT) Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by relay2.corp.sgi.com (Postfix) with ESMTP id 5EDBB304051 for ; Wed, 16 Jul 2014 16:32:53 -0700 (PDT) X-ASG-Debug-ID: 1405553570-04bdf0356b1519b0001-NocioJ Received: from ipmail06.adl6.internode.on.net (ipmail06.adl6.internode.on.net [150.101.137.145]) by cuda.sgi.com with ESMTP id 99TmbhamaEjXCCkF for ; Wed, 16 Jul 2014 16:32:51 -0700 (PDT) X-Barracuda-Envelope-From: david@fromorbit.com X-Barracuda-Apparent-Source-IP: 150.101.137.145 X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: AtMIAFAKx1N5LHOdPGdsb2JhbABZgw6BKYIlUYQ3pVMGnXUBgQoXBAEBAQE4NoQEAQUjDwEjIxAIAxgCAgUhAgIPBSUDBxoTiEGyf5dZFxiBFIRPiVAHgneBTAWbHJgDKy8 Received: from ppp121-44-115-157.lns20.syd6.internode.on.net (HELO dastard) ([121.44.115.157]) by ipmail06.adl6.internode.on.net with ESMTP; 17 Jul 2014 09:02:50 +0930 Received: from dave by dastard with local (Exim 4.80) (envelope-from ) id 1X7Ygr-0000WE-4T; Thu, 17 Jul 2014 09:32:49 +1000 Date: Thu, 17 Jul 2014 09:32:49 +1000 From: Dave Chinner To: Arkadiusz =?utf-8?Q?Mi=C5=9Bkiewicz?= Cc: xfs@oss.sgi.com Subject: Re: [PATCH] Detect strto* failures based on errno. Message-ID: <20140716233249.GG4453@dastard> X-ASG-Orig-Subj: Re: [PATCH] Detect strto* failures based on errno. References: <20140713230406.GE22339@dastard> <1405324619-25515-1-git-send-email-arekm@maven.pl> <20140716030132.GB20518@dastard> <201407160944.07266.arekm@maven.pl> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: <201407160944.07266.arekm@maven.pl> User-Agent: Mutt/1.5.21 (2010-09-15) X-Barracuda-Connect: ipmail06.adl6.internode.on.net[150.101.137.145] X-Barracuda-Start-Time: 1405553570 X-Barracuda-URL: http://192.48.157.11:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 X-Barracuda-Spam-Score: 0.00 X-Barracuda-Spam-Status: No, SCORE=0.00 using per-user scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.7 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.7562 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- On Wed, Jul 16, 2014 at 09:44:07AM +0200, Arkadiusz Miśkiewicz wrote: > On Wednesday 16 of July 2014, Dave Chinner wrote: > > On Mon, Jul 14, 2014 at 09:56:59AM +0200, Arkadiusz Miśkiewicz wrote: > > > Code was testing for ERANGE errno only in some places. In other places > > > it didn't do any errno checking at all. > > > > > > Unify strto* result testing by treating any non zero errno as failure. > > > > > > Signed-off-by: Arkadiusz Miśkiewicz > > > > This patch appears to cause xfs/071 to fail: > > > > > > > > Writing 512 bytes, offset is +0 (direct=false) > > -pwrite64: File too large > > +non-numeric offset argument -- > > Reading 512 bytes (direct=false) > > read 0/512 bytes at offset > > ... > > (Run 'diff -u tests/xfs/071.out > > /home/dave/src/xfstests-dev/results//xfs/071.out.bad' to see the entire > > diff) > > > > Can you have a look into this? > > The test runs: > xfs_io -c 'pwrite 9223373136366403583 512' file > > where 9223373136366403583 is bigger than LLONG_MAX (9223372036854775807), so > > # LC_ALL=C xfs_io -c 'pwrite 9223373136366403583 512' ./x > (MYDEBUG)strerror(34): Numerical result out of range > non-numeric offset argument -- 9223373136366403583 > > > What would be best approach to fix this - some cvtunum for unsigned long long? I'm pretty sure that cvtnum is only supposed to work with positive integers - it returns negative values as an error. hence just changing to use strtoull() would probably fix the issue. The caller can determine if a negative number is valid or not.... Cheers, Dave. -- Dave Chinner david@fromorbit.com From sam.just@inktank.com Wed Jul 16 18:41:42 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: xfs@oss.sgi.com Delivered-To: xfs@oss.sgi.com Received: from relay.sgi.com (relay3.corp.sgi.com [198.149.34.15]) by oss.sgi.com (Postfix) with ESMTP id A48087FEC for ; Wed, 16 Jul 2014 18:41:42 -0500 (CDT) Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by relay3.corp.sgi.com (Postfix) with ESMTP id 3F4D1AC001 for ; Wed, 16 Jul 2014 16:41:39 -0700 (PDT) X-ASG-Debug-ID: 1405554092-04cbb0421a152860001-NocioJ Received: from mail-qc0-f178.google.com (mail-qc0-f178.google.com [209.85.216.178]) by cuda.sgi.com with ESMTP id 16KVKMO2o4LMi9pi (version=TLSv1 cipher=RC4-SHA bits=128 verify=NO) for ; Wed, 16 Jul 2014 16:41:33 -0700 (PDT) X-Barracuda-Envelope-From: sam.just@inktank.com X-Barracuda-Apparent-Source-IP: 209.85.216.178 Received: by mail-qc0-f178.google.com with SMTP id x3so1492709qcv.9 for ; Wed, 16 Jul 2014 16:41:32 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:in-reply-to:references:date :message-id:subject:from:to:cc:content-type; bh=fNX7BoZavIiFAaXIXvWTQ6CdlB5jPrfmMxk9AXzj5MA=; b=ZdgVpnGvVvLuRKdK/J8okQU56CMLKtCEs0DgXPVW6c1ByMbv+raylxcbSMnFIPoDWV nbeWhs1IbwYiE57KZUu/W3/IPCyF1x17oHTzbUVh25z7AfVP+++kGWHJTxYXh5qiobwA 9+jpd7CIgs4oai37tIIeqld/DsZh6s62D5nYICaoakQbyqCiPu60haRPkzieGINEpIFx oAqo8yDfXvQV0dJn/sgG5rE1jvO8KeS/LGZ/mJBSEQF4ffzyx97yHPWylY1vm2vyXpm/ CBhvndcNqj868Nch+he78JoiNoTeXYZjgoY+GL9UVIkUhBTP0/UgaVN9J9vR7U8PdRaP QGFw== X-Gm-Message-State: ALoCoQlycLz/2dOPDFcsoVNGruI62/vX3B9XcQHXgaDjkvqdw0/XZ2hlkFGKS5N9rdPdrBkgr5H7 MIME-Version: 1.0 X-Received: by 10.224.123.71 with SMTP id o7mr49555744qar.38.1405554092332; Wed, 16 Jul 2014 16:41:32 -0700 (PDT) Received: by 10.96.109.194 with HTTP; Wed, 16 Jul 2014 16:41:32 -0700 (PDT) In-Reply-To: <20140716223150.GE4453@dastard> References: <20140716092226.GA23561@infradead.org> <20140716223150.GE4453@dastard> Date: Wed, 16 Jul 2014 16:41:32 -0700 Message-ID: Subject: Re: v0.80.4 Firefly released From: Samuel Just X-ASG-Orig-Subj: Re: v0.80.4 Firefly released To: Dave Chinner Cc: Gregory Farnum , Christoph Hellwig , "ceph-devel@vger.kernel.org" , Sage Weil , xfs@oss.sgi.com Content-Type: text/plain; charset=UTF-8 X-Barracuda-Connect: mail-qc0-f178.google.com[209.85.216.178] X-Barracuda-Start-Time: 1405554092 X-Barracuda-Encrypted: RC4-SHA X-Barracuda-URL: http://192.48.176.25:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 X-Barracuda-Spam-Score: 0.20 X-Barracuda-Spam-Status: No, SCORE=0.20 using per-user scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.7 tests=BSF_SC0_SA074b X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.7562 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.20 BSF_SC0_SA074b Custom Rule SA074b [Apologies for the repost, attachment was too big] Sorry for the delay. I've been trying to put together a simpler reproducer since no one wants to debug a filesystem based on rbd symptoms :). It doesn't appear to be related to using extsize on a non-empty file. The linked archive below has a reproducer (xfs_extsize_reproducer.cc), an input op sequence (trimmed-ops.in), the resulting file and what it should be (test, test.correct), and a summary (notes.txt). http://filedump.ceph.com/samuelj/reproducer.tgz I think this probably is fixed in the commit mentioned above (xfs: Use preallocation for inodes with extsz hints). Thanks! -Sam On Wed, Jul 16, 2014 at 3:31 PM, Dave Chinner wrote: > On Wed, Jul 16, 2014 at 10:26:23AM -0700, Gregory Farnum wrote: >> On Wed, Jul 16, 2014 at 2:22 AM, Christoph Hellwig wrote: >> > On Tue, Jul 15, 2014 at 04:45:59PM -0700, Sage Weil wrote: >> >> This Firefly point release fixes an potential data corruption problem >> >> when ceph-osd daemons run on top of XFS and service Firefly librbd >> >> clients. A recently added allocation hint that RBD utilizes triggers >> >> an XFS bug on some kernels (Linux 3.2, and likely others) that leads >> >> to data corruption and deep-scrub errors (and inconsistent PGs). This >> >> release avoids the situation by disabling the allocation hint until we >> >> can validate which kernels are affected and/or are known to be safe to >> >> use the hint on. >> > >> > I've not really seen an report for that on the XFS list, could it be >> > that you're running into the issue fixed by >> > >> > "xfs: Use preallocation for inodes with extsz hints" >> > >> > (commit aff3a9edb7080f69f07fe76a8bd089b3dfa4cb5d)? >> >> Sam reported the issue we're seeing in "consequences of >> XFS_IOC_FSSETXATTR on non-empty file?", > > Assuming you've created an extent size hint with a file with delayed > allocation on it and no blocks, then that's more than likely the > same issue. The above commit uses preallocation to allocate > unwritten extents rather than delayed allocation for files with > extent size hints because delayed allocation doesn't write zeros > over ranges in the allocated extents that don't have dirty data over > them. > > Moral of the story: any time you get what appears to be data > corruption in the underlying data store, you should report it to the > relevant filesystem list rather than try to work around it.... > > Cheers, > > Dave. > -- > Dave Chinner > david@fromorbit.com From jeff.liu@oracle.com Wed Jul 16 21:31:11 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: xfs@oss.sgi.com Delivered-To: xfs@oss.sgi.com Received: from relay.sgi.com (relay2.corp.sgi.com [137.38.102.29]) by oss.sgi.com (Postfix) with ESMTP id 45A817FAA for ; Wed, 16 Jul 2014 21:31:11 -0500 (CDT) Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by relay2.corp.sgi.com (Postfix) with ESMTP id 35E6D304048 for ; Wed, 16 Jul 2014 19:31:08 -0700 (PDT) X-ASG-Debug-ID: 1405564266-04cb6c6ad314e4d0001-NocioJ Received: from userp1040.oracle.com (userp1040.oracle.com [156.151.31.81]) by cuda.sgi.com with ESMTP id TgQnhqx9ejXW8awN (version=TLSv1 cipher=AES256-SHA bits=256 verify=NO) for ; Wed, 16 Jul 2014 19:31:07 -0700 (PDT) X-Barracuda-Envelope-From: jeff.liu@oracle.com X-Barracuda-Apparent-Source-IP: 156.151.31.81 Received: from ucsinet22.oracle.com (ucsinet22.oracle.com [156.151.31.94]) by userp1040.oracle.com (Sentrion-MTA-4.3.2/Sentrion-MTA-4.3.2) with ESMTP id s6H2V543028225 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK); Thu, 17 Jul 2014 02:31:06 GMT Received: from aserz7022.oracle.com (aserz7022.oracle.com [141.146.126.231]) by ucsinet22.oracle.com (8.14.5+Sun/8.14.5) with ESMTP id s6H2V46M006470 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO); Thu, 17 Jul 2014 02:31:05 GMT Received: from abhmp0012.oracle.com (abhmp0012.oracle.com [141.146.116.18]) by aserz7022.oracle.com (8.14.4+Sun/8.14.4) with ESMTP id s6H2V24w022164; Thu, 17 Jul 2014 02:31:04 GMT Received: from [192.168.1.102] (/112.237.69.208) by default (Oracle Beehive Gateway v4.0) with ESMTP ; Wed, 16 Jul 2014 19:31:02 -0700 Message-ID: <53C73562.3010005@oracle.com> Date: Thu, 17 Jul 2014 10:30:58 +0800 From: Jeff Liu User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:24.0) Gecko/20100101 Thunderbird/24.1.0 MIME-Version: 1.0 To: fstests@vger.kernel.org CC: "xfs@oss.sgi.com" Subject: [PATCH] xfs/007: add project quota Q_XQUOTRM test Content-Type: text/plain; charset=ISO-8859-1 X-ASG-Orig-Subj: [PATCH] xfs/007: add project quota Q_XQUOTRM test Content-Transfer-Encoding: 7bit X-Source-IP: ucsinet22.oracle.com [156.151.31.94] X-Barracuda-Connect: userp1040.oracle.com[156.151.31.81] X-Barracuda-Start-Time: 1405564266 X-Barracuda-Encrypted: AES256-SHA X-Barracuda-URL: http://192.48.176.15:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 X-Barracuda-Spam-Score: 0.00 X-Barracuda-Spam-Status: No, SCORE=0.00 using per-user scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.7 tests=BSF_SC0_MISMATCH_TO X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.7565 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.00 BSF_SC0_MISMATCH_TO Envelope rcpt doesn't match header From: Jie Liu Add test for project quota Q_XQUOTRM operations, this patch also update the golden output file to match the new output. Signed-off-by: Jie Liu --- tests/xfs/007 | 15 ++++++++++----- tests/xfs/007.out | 4 +++- 2 files changed, 13 insertions(+), 6 deletions(-) diff --git a/tests/xfs/007 b/tests/xfs/007 index 8cc5bf3..ca05a3c 100755 --- a/tests/xfs/007 +++ b/tests/xfs/007 @@ -47,10 +47,12 @@ _supported_os Linux Irix _require_scratch _require_xfs_quota +_require_xfs_mkfs_crc +_require_xfs_crc -_scratch_mkfs_xfs >/dev/null 2>&1 +_scratch_mkfs_xfs -m crc=1 >/dev/null 2>&1 -_qmount_option "uquota,gquota" +_qmount_option "uquota,gquota,pquota" _qmount echo "*** umount" @@ -58,21 +60,24 @@ umount $SCRATCH_MNT UQUOTINO=`xfs_db -c "sb 0" -c "p" $SCRATCH_DEV | grep uquotino | awk '{print $NF}'` GQUOTINO=`xfs_db -c "sb 0" -c "p" $SCRATCH_DEV | grep gquotino | awk '{print $NF}'` +PQUOTINO=`xfs_db -c "sb 0" -c "p" $SCRATCH_DEV | grep pquotino | awk '{print $NF}'` echo "*** Usage before quotarm ***" xfs_db -c "inode $UQUOTINO" -c "p core.nblocks" $SCRATCH_DEV xfs_db -c "inode $GQUOTINO" -c "p core.nblocks" $SCRATCH_DEV +xfs_db -c "inode $PQUOTINO" -c "p core.nblocks" $SCRATCH_DEV _qmount -echo "*** turn off user and group quotas" -xfs_quota -x -c 'off -ug' $SCRATCH_MNT -xfs_quota -x -c "remove -ug" $SCRATCH_MNT +echo "*** turn off user/group/project quotas" +xfs_quota -x -c 'off -ugp' $SCRATCH_MNT +xfs_quota -x -c "remove -ugp" $SCRATCH_MNT echo "*** umount" umount $SCRATCH_MNT echo "*** Usage after quotarm ***" xfs_db -c "inode $UQUOTINO" -c "p core.nblocks" $SCRATCH_DEV xfs_db -c "inode $GQUOTINO" -c "p core.nblocks" $SCRATCH_DEV +xfs_db -c "inode $PQUOTINO" -c "p core.nblocks" $SCRATCH_DEV # success, all done status=0 diff --git a/tests/xfs/007.out b/tests/xfs/007.out index 0fc17ae..f370e5f 100644 --- a/tests/xfs/007.out +++ b/tests/xfs/007.out @@ -3,8 +3,10 @@ QA output created by 007 *** Usage before quotarm *** core.nblocks = 1 core.nblocks = 1 -*** turn off user and group quotas +core.nblocks = 1 +*** turn off user/group/project quotas *** umount *** Usage after quotarm *** core.nblocks = 0 core.nblocks = 0 +core.nblocks = 0 -- 1.8.3.2 From adilger@dilger.ca Thu Jul 17 01:08:08 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: xfs@oss.sgi.com Delivered-To: xfs@oss.sgi.com Received: from relay.sgi.com (relay1.corp.sgi.com [137.38.102.111]) by oss.sgi.com (Postfix) with ESMTP id 480797FD3 for ; Thu, 17 Jul 2014 01:08:08 -0500 (CDT) Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by relay1.corp.sgi.com (Postfix) with ESMTP id 2A8428F804C for ; Wed, 16 Jul 2014 23:08:05 -0700 (PDT) X-ASG-Debug-ID: 1405577283-04cbb0421a15fbb0001-NocioJ Received: from mail-pa0-f48.google.com (mail-pa0-f48.google.com [209.85.220.48]) by cuda.sgi.com with ESMTP id bhxXAOIIoAHJWp23 (version=TLSv1 cipher=RC4-SHA bits=128 verify=NO) for ; Wed, 16 Jul 2014 23:08:03 -0700 (PDT) X-Barracuda-Envelope-From: adilger@dilger.ca X-Barracuda-RBL-Trusted-Forwarder: 209.85.220.48 Received: by mail-pa0-f48.google.com with SMTP id et14so2700761pad.35 for ; Wed, 16 Jul 2014 23:08:02 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:content-type:mime-version:subject:from :in-reply-to:date:cc:message-id:references:to; bh=Laa85SXvrOtBqfVVIf2tfepg8MFw0h4TBqMARZwnIlw=; b=Fk2kLNbuPpyCLfHp8IFFhIvqKPUTIqi/QLVlud3qeUAfHuUa3+X3cQdx2LAveFdLgI US6bwJG7nvJe2hHD8uG1SuQVnFjSV6buYMctrAofKbTJxfBtU+8uU0M5ksQ7pcIcKiC8 kN+6Xj8xfi8PdfPd6nr06JkimlDyzFkwP+YthdOV+Bx06rwRAuNiXJfFMS4OoL3Xl6MG iZj2STDMRjacqErRMiQ9Xpo+3D2PvfjFvmInOLxVelpx2y0CsJT9ONDMKntuJfWrxRpg 7J3muYLn9W/xWrjYd7mWNv6f50DLvTCDyGgYV+fHtDTgccQUD7yHILU9VpJIiLUOYj1s hfqg== X-Barracuda-BBL-IP: nil X-Gm-Message-State: ALoCoQnM7BRKRoKBQrg4IA8QPJzRTwIL+HQIo4LD9XXgc/QjMoO4oIxsGtxb1OikBIxa3L5+xN25 X-Received: by 10.68.129.164 with SMTP id nx4mr35199642pbb.16.1405577282576; Wed, 16 Jul 2014 23:08:02 -0700 (PDT) Received: from [192.168.1.87] (d75-155-200-41.bchsia.telus.net. [75.155.200.41]) by mx.google.com with ESMTPSA id bh9sm1792828pdb.58.2014.07.16.23.08.00 for (version=TLSv1 cipher=ECDHE-RSA-RC4-SHA bits=128/128); Wed, 16 Jul 2014 23:08:01 -0700 (PDT) Content-Type: multipart/signed; boundary="Apple-Mail=_EB988F7E-B0DC-452A-BBB0-40EEBDBADAE7"; protocol="application/pgp-signature"; micalg=pgp-sha1 Mime-Version: 1.0 (Mac OS X Mail 7.3 \(1878.6\)) Subject: Re: [PATCH 2/4 v3] fiemap: add EXTENT_DATA_COMPRESSED flag From: Andreas Dilger X-ASG-Orig-Subj: Re: [PATCH 2/4 v3] fiemap: add EXTENT_DATA_COMPRESSED flag In-Reply-To: <9520AB36-B728-423A-8EA1-FDD22B79AE90@dilger.ca> Date: Thu, 17 Jul 2014 00:07:57 -0600 Cc: linux-fsdevel , linux-nilfs@vger.kernel.org, xfs@oss.sgi.com, Btrfs Developer List , Ext4 Developers List , ocfs2-devel@oss.oracle.com Message-Id: References: <4f8d5dc5b51a43efaf16c39398c23a6276e40a30.1386778303.git.dsterba@suse.cz> <20131212232443.GL31386@dastard> <9520AB36-B728-423A-8EA1-FDD22B79AE90@dilger.ca> To: David Sterba X-Mailer: Apple Mail (2.1878.6) X-Barracuda-Connect: mail-pa0-f48.google.com[209.85.220.48] X-Barracuda-Start-Time: 1405577283 X-Barracuda-Encrypted: RC4-SHA X-Barracuda-URL: http://192.48.176.25:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 X-Barracuda-Spam-Score: 0.00 X-Barracuda-Spam-Status: No, SCORE=0.00 using per-user scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.7 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.7569 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- --Apple-Mail=_EB988F7E-B0DC-452A-BBB0-40EEBDBADAE7 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset=us-ascii David, any progress on this patch series? I never saw an updated version of this patch series after the last round = of reviews, but it would be great to move it forward. I have filefrag = patches in my e2fsprogs tree waiting for an updated version of your patch. I recall the main changes were: - add FIEMAP_EXTENT_PHYS_LENGTH flag to indicate if fe_phys_length was = valid - rename fe_length to fe_logi_length and #define fe_length = fe_logi_length - always fill in fe_phys_length (=3D fe_logi_length for uncompressed = files) and set FIEMAP_EXTENT_PHYS_LENGTH whether the extent is compressed or = not - add WARN_ONCE() in fiemap_fill_next_extent() as described below I don't know if there was any clear statement about whether there should = be separate FIEMAP_EXTENT_PHYS_LENGTH and FIEMAP_EXTENT_DATA_COMPRESSED = flags, or if the latter should be implicit? Probably makes sense to have = separate flags. It should be fine to use: #define FIEMAP_EXTENT_PHYS_LENGTH 0x00000010 since this flag was never used. Cheers, Andreas On Dec 12, 2013, at 5:02 PM, Andreas Dilger wrote: > On Dec 12, 2013, at 4:24 PM, Dave Chinner wrote: >> On Thu, Dec 12, 2013 at 04:25:59PM +0100, David Sterba wrote: >>> This flag was not accepted when fiemap was proposed [2] due to lack = of >>> in-kernel users. Btrfs has compression for a long time and we'd like = to >>> see that an extent is compressed in the output of 'filefrag' utility >>> once it's taught about it. >>>=20 >>> For that purpose, a reserved field from fiemap_extent is used to let = the >>> filesystem store along the physcial extent length when the flag is = set. >>> This keeps compatibility with applications that use FIEMAP. >>=20 >> I'd prefer to just see the new physical length field always filled >> out, regardless of whether it is a compressed extent or not. In >> terms of backwards compatibility to userspace, it makes no >> difference because the value of reserved/unused fields is undefined >> by the API. Yes, the implementation zeros them, but there's nothing >> in the documentation that says "reserved fields must be zero". >> Hence I think we should just set it for every extent. >=20 > I'd actually thought the same thing while reading the patch, but I = figured > people would object because it implies that old kernels will return a > physical length of 0 bytes (which might be valid) and badly-written = tools > will not work correctly on older kernels. That said, applications = _should_ > be checking the FIEMAP_EXTENT_DATA_COMPRESSED flag, and I suspect in = the > future fewer developers will be confused if fe_phys_length =3D=3D = fe_length > going forward. >=20 > If the initial tools get it right (in particular filefrag), then = hopefully > others will get it correct also. >=20 >> =46rom the point of view of the kernel API (fiemap_fill_next_extent), >> passing the physical extent size in the "len" parameter for normal >> extents, then passing 0 for the "physical length" makes absolutely >> no sense. >>=20 >> IOWs, what you have created is a distinction between the extent's >> "logical length" and it's "physical length". For uncompressed >> extents, they are both equal and they should both be passed to >> fiemap_fill_next_extent as the same value. Extents where they are >> different (i.e. encoded extents) is when they can be different. >> Perhaps fiemap_fill_next_extent() should check and warn about >> mismatches when they differ and the relevant flags are not set... >=20 > Seems reasonable to have a WARN_ONCE() in that case. That would catch = bugs > in the filesystem, code as well: >=20 > WARN_ONCE(phys_len !=3D lgcl_len && > !(flags & FIEMAP_EXTENT_DATA_COMPRESSED), > "physical len %llu !=3D logical length %llu without = DATA_COMPRESSED\n", > phys_len, logical_len, phys_len, logical_len); >=20 >>> diff --git a/include/uapi/linux/fiemap.h = b/include/uapi/linux/fiemap.h >>> index 93abfcd..0e32cae 100644 >>> --- a/include/uapi/linux/fiemap.h >>> +++ b/include/uapi/linux/fiemap.h >>> @@ -19,7 +19,9 @@ struct fiemap_extent { >>> __u64 fe_physical; /* physical offset in bytes for the start >>> * of the extent from the beginning of the = disk */ >>> __u64 fe_length; /* length in bytes for this extent */ >>> - __u64 fe_reserved64[2]; >>> + __u64 fe_phys_length; /* physical length in bytes, undefined if >>> + * DATA_COMPRESSED not set */ >>> + __u64 fe_reserved64; >>> __u32 fe_flags; /* FIEMAP_EXTENT_* flags for this extent */ >>> __u32 fe_reserved[3]; >>> }; >>=20 >> The comment for fe_length needs to change, too, because it needs to >> indicate that it is the logical extent length and that it may be >> different to the fe_phys_length depending on the flags that are set >> on the extent. >=20 > Would it make sense to rename fe_length to fe_logi_length (or = something, > I'm open to suggestions), and have a compat macro: >=20 > #define fe_length fe_logi_length >=20 > around for older applications? That way, new developers would start = to > use the new name, old applications would still compile for both newer = and > older interfaces, and it doesn't affect the ABI at all. >=20 >> And, FWIW, I wouldn't mention specific flags in the comment here, >> but do it at the definition of the flags that indicate there is >> a difference between physical and logical extent lengths.... >=20 > Actually, I was thinking just the opposite for this field. It seems = useful > that the requirement for DATA_COMPRESSED being set is beside = fe_phys_length > so that anyone using this field sees the correlation clearly. I don't = expect > everyone would read and understand the meaning of all the flags when = looking > at the data structure. >=20 > Cheers, Andreas >=20 >>> @@ -50,6 +52,8 @@ struct fiemap { >>> * Sets = EXTENT_UNKNOWN. */ >>> #define FIEMAP_EXTENT_ENCODED 0x00000008 /* Data can = not be read >>> * while fs is = unmounted */ >>> +#define FIEMAP_EXTENT_DATA_COMPRESSED 0x00000040 /* Data is = compressed by fs. >>> + * Sets = EXTENT_ENCODED */ >>=20 >> i.e. here. >>=20 >> Cheers, >>=20 >> Dave. >> --=20 >> Dave Chinner >> david@fromorbit.com >=20 >=20 > Cheers, Andreas >=20 >=20 >=20 >=20 >=20 Cheers, Andreas --Apple-Mail=_EB988F7E-B0DC-452A-BBB0-40EEBDBADAE7 Content-Transfer-Encoding: 7bit Content-Disposition: attachment; filename=signature.asc Content-Type: application/pgp-signature; name=signature.asc Content-Description: Message signed with OpenPGP using GPGMail -----BEGIN PGP SIGNATURE----- Comment: GPGTools - http://gpgtools.org iQIVAwUBU8doPXKl2rkXzB/gAQIZ7Q/+O1cLLU7hlJCt0crwEJSvXr5emItdtgIq hW38z7p02SwbFbr9xkDlCiRGOG7CU9VibUEkol4bLOdX7EltvPJ4uiFCTzbIBWIT 8dLUkJYlw1K5PyS/Op+9P1vil+Oxse90O1PLJbPH3PYQ/T8dfOA7hUieF9vtPoNq iNp5KQXDSyoXG2g+6R0r6kYss7t/YCaaNAr3XOazeN3OyNitW51/XNQT0l7YMX7n YC2GhShDHMgReKI26BNmJQEhbJ5/vv8SulozVF3v/8pUi1D5OgVHa7FeiANO9VvR 5fqPbd0VcHJLftfuGMP339uCIx5ZaB87zK3brJ/4XQOLE45FTRs/MkMF5/Pna7WU mZehgBZdq0Ijmqr4GCGavI0ukR5NT7cC77L1p3iRE3cqb+9SOytpBDMWx4v5xHU7 0+8bt7Ad0bm83REVxh7dSRn9eNU+Qy+7a/Qwyw/b/QSPAywXN0x6nLuyDSnmZpIt nIdjwSWzxtAl41wbA/vEuXNY6WCV/vndbmMyPONJjOiWQYnEAkQ9WUVUvEkm1oXO n1vxKfrjsUwyhDaEVDGKlbwUiczjedRBTUzmx5HnStinLV11u4rNw1+gaAVFb7jQ o8N1CtgC+iiRIf3qu3Rc0ZJBjREDbZinIziElc0/x/SbmasOPZMN6WXoSLVWzd6r mrc1S77/RLE= =J9bc -----END PGP SIGNATURE----- --Apple-Mail=_EB988F7E-B0DC-452A-BBB0-40EEBDBADAE7-- From ekatalogas@gmail.com Thu Jul 17 02:54:06 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: *** X-Spam-Status: No, score=3.6 required=5.0 tests=FREEMAIL_FROM,FREEMAIL_REPLYTO, HTML_MESSAGE,MIME_HTML_MOSTLY,MPART_ALT_DIFF autolearn=no version=3.3.1 X-Original-To: xfs@oss.sgi.com Delivered-To: xfs@oss.sgi.com Received: from relay.sgi.com (relay1.corp.sgi.com [137.38.102.111]) by oss.sgi.com (Postfix) with ESMTP id 954577FDB for ; Thu, 17 Jul 2014 02:54:06 -0500 (CDT) Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by relay1.corp.sgi.com (Postfix) with ESMTP id 8CC2E8F8066 for ; Thu, 17 Jul 2014 00:54:03 -0700 (PDT) X-ASG-Debug-ID: 1405583638-04cbb04219163b30001-NocioJ Received: from 392427.s.dedikuoti.lt (392427.s.dedikuoti.lt [109.235.64.80]) by cuda.sgi.com with ESMTP id Z2ylwkTzRcKJbvv7 (version=TLSv1 cipher=AES256-SHA bits=256 verify=NO) for ; Thu, 17 Jul 2014 00:53:59 -0700 (PDT) X-Barracuda-Envelope-From: ekatalogas@gmail.com X-Barracuda-Apparent-Source-IP: 109.235.64.80 Received: from ip-46-251-54-132.kava.lt ([46.251.54.132] helo=ALONERA-PC) by 392427.s.dedikuoti.lt with esmtpa (Exim 4.82) (envelope-from ) id 1X7gVp-0005BG-Ls for xfs@oss.sgi.com; Thu, 17 Jul 2014 10:53:57 +0300 From: "New clients" To: "xfs@oss.sgi.com" Reply-To: el.rinkodara@gmail.com Date: Thu, 17 Jul 2014 10:53:46 +0300 Subject: Europe, Asia, Scandinavia, the Baltic Business MIME-Version: 1.0 X-ASG-Orig-Subj: Europe, Asia, Scandinavia, the Baltic Business Content-Type: multipart/alternative; boundary="_=aspNetEmail=_d18727597e2f465595809507ee60fb3b" X-Mailer: aspNetEmail ver 3.7.0.0 Message-ID: X-Barracuda-Connect: 392427.s.dedikuoti.lt[109.235.64.80] X-Barracuda-Start-Time: 1405583639 X-Barracuda-Encrypted: AES256-SHA X-Barracuda-URL: http://192.48.176.25:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 X-Barracuda-Spam-Score: 0.14 X-Barracuda-Spam-Status: No, SCORE=0.14 using per-user scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.7 tests=HTML_MESSAGE, MIME_HTML_MOSTLY, MPART_ALT_DIFF X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.7571 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.00 MIME_HTML_MOSTLY BODY: Multipart message mostly text/html MIME 0.00 HTML_MESSAGE BODY: HTML included in message 0.14 MPART_ALT_DIFF BODY: HTML and text parts are different --_=aspNetEmail=_d18727597e2f465595809507ee60fb3b Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable --_=aspNetEmail=_d18727597e2f465595809507ee60fb3b Content-Type: text/html; charset="utf-8" Content-Transfer-Encoding: quoted-printable =0D=0A=0D=0A

Good day=21

=0D=0A

Are you sear= ching for new customers? Do you want to increase sales of your goods/serv= ices?
Would you like to buil= d relationships with new business partners?
Are you inter= ested in the export/import of your goods/services in Europe, =26nbsp;Asia, Scandinavia ?

--_=aspNetEmail=_d18727597e2f465595809507ee60fb3b-- From jack@suse.cz Thu Jul 17 03:39:10 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: xfs@oss.sgi.com Delivered-To: xfs@oss.sgi.com Received: from relay.sgi.com (relay3.corp.sgi.com [198.149.34.15]) by oss.sgi.com (Postfix) with ESMTP id 7F98D7FC5 for ; Thu, 17 Jul 2014 03:39:10 -0500 (CDT) Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by relay3.corp.sgi.com (Postfix) with ESMTP id F35B5AC003 for ; Thu, 17 Jul 2014 01:39:09 -0700 (PDT) X-ASG-Debug-ID: 1405586346-04cbb0421a165a70001-NocioJ Received: from mx2.suse.de (cantor2.suse.de [195.135.220.15]) by cuda.sgi.com with ESMTP id Yabyodz2qwy2mSKq (version=TLSv1 cipher=AES256-SHA bits=256 verify=NO) for ; Thu, 17 Jul 2014 01:39:07 -0700 (PDT) X-Barracuda-Envelope-From: jack@suse.cz X-Barracuda-Apparent-Source-IP: 195.135.220.15 Received: from relay1.suse.de (charybdis-ext.suse.de [195.135.220.254]) by mx2.suse.de (Postfix) with ESMTP id B1CA6AC05; Thu, 17 Jul 2014 08:39:06 +0000 (UTC) Received: by quack.suse.cz (Postfix, from userid 1000) id 2B95681EF2; Thu, 17 Jul 2014 10:39:05 +0200 (CEST) Date: Thu, 17 Jul 2014 10:39:05 +0200 From: Jan Kara To: Dave Chinner Cc: Christoph Hellwig , Jan Kara , xfs@oss.sgi.com Subject: Re: [PATCH] logprint: Fix printing of AGF buffers Message-ID: <20140717083905.GB1649@quack.suse.cz> X-ASG-Orig-Subj: Re: [PATCH] logprint: Fix printing of AGF buffers References: <1405349100-19734-1-git-send-email-jack@suse.cz> <20140715101931.GC30363@infradead.org> <20140715140938.GA1733@quack.suse.cz> <20140715153922.GB5369@infradead.org> <20140716003851.GO22339@dastard> <20140716081105.GB29924@infradead.org> <20140716231725.GF4453@dastard> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20140716231725.GF4453@dastard> User-Agent: Mutt/1.5.21 (2010-09-15) X-Barracuda-Connect: cantor2.suse.de[195.135.220.15] X-Barracuda-Start-Time: 1405586347 X-Barracuda-Encrypted: AES256-SHA X-Barracuda-URL: http://192.48.176.25:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 X-Barracuda-Spam-Score: 0.00 X-Barracuda-Spam-Status: No, SCORE=0.00 using per-user scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.7 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.7572 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- On Thu 17-07-14 09:17:25, Dave Chinner wrote: > On Wed, Jul 16, 2014 at 01:11:05AM -0700, Christoph Hellwig wrote: > > On Wed, Jul 16, 2014 at 10:38:51AM +1000, Dave Chinner wrote: > > > I added this: > > > > > > /* > > > * The addition of spare space and the non-logged CRC format > > > * fields to the AGF mean that the size that is logged is almost > > > * always going to be smaller than the structure itself. Hence > > > * we need to make sure that the buffer contains all the data we > > > * want to print rather than just check against the structure > > > * size. > > > */ > > > > > > Cheers, > > > > I'd prefer to mention v4 filesystems as well: > > > > /* > > * v4 filesystems only contain the fields before the uuid, and > > * even v5 filesystems don't usually log any field beneath it. > > */ > > It actually has nothing to do with v4 or v5 filesystems - it's to do > with the fact that we do partial buffer logging but logprint is > assuming the structure is always logging as a whole. There's > mistakes like this all through logprint - we whack them like this > with a big stick (i.e. refuse to parse the structure) when they are > found. > > Did you notice the way that log_print_all.c handled these issues? > For the AGI, it simply looks at the length of the region and sizes > the output accordingly. And for the AGF, it just ignores the size of > the region and assumes that it captured everything that is to be > printed. > > IOWs, we've played whack-a-mole on this again while ignoring the > fundamental issues ithat still remain: > > - that logprint has a lot of assumptions that simply aren't > true; and > - that logprint simply does not handle split region > continuations like the kernel recovery code does. > > Both of these things lead to having to handle these strange "out of > space" cases in multiple places, and simply not handling them in > places that actually need to. > > These are just more reasons why logprint - as it says itself in a > couple of comments - needs a complete rewrite. Yeah, I've noticed that logprint definitely doesn't handle all possible cases and the code is ... well, organic :). OTOH it worked for me (except for this bug) when I needed so for a debug tool like that it seemed good enough. I don't feel like rewriting it from scratch (at least in near future) but if someone can find time for that, it would be surely welcome. Honza -- Jan Kara SUSE Labs, CR From BATV+1db756af9dde3e43f5d5+3980+infradead.org+hch@bombadil.srs.infradead.org Thu Jul 17 04:04:59 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: xfs@oss.sgi.com Delivered-To: xfs@oss.sgi.com Received: from relay.sgi.com (relay1.corp.sgi.com [137.38.102.111]) by oss.sgi.com (Postfix) with ESMTP id C5A577FCD for ; Thu, 17 Jul 2014 04:04:59 -0500 (CDT) Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by relay1.corp.sgi.com (Postfix) with ESMTP id B5CE18F806F for ; Thu, 17 Jul 2014 02:04:56 -0700 (PDT) X-ASG-Debug-ID: 1405587891-04cb6c6ad215d100001-NocioJ Received: from bombadil.infradead.org ([198.137.202.9]) by cuda.sgi.com with ESMTP id HWzO8sDDw9Zz07TQ (version=TLSv1 cipher=AES256-SHA bits=256 verify=NO) for ; Thu, 17 Jul 2014 02:04:51 -0700 (PDT) X-Barracuda-Envelope-From: BATV+1db756af9dde3e43f5d5+3980+infradead.org+hch@bombadil.srs.infradead.org X-Barracuda-Apparent-Source-IP: 198.137.202.9 Received: from hch by bombadil.infradead.org with local (Exim 4.80.1 #2 (Red Hat Linux)) id 1X7hcQ-0002dA-SR for xfs@oss.sgi.com; Thu, 17 Jul 2014 09:04:50 +0000 Date: Thu, 17 Jul 2014 02:04:50 -0700 From: Christoph Hellwig To: xfs@oss.sgi.com Subject: Re: Error setting extent size on a directory Message-ID: <20140717090450.GA27425@infradead.org> X-ASG-Orig-Subj: Re: Error setting extent size on a directory References: <20140714070913.GA29541@teal.hq.k1024.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20140714070913.GA29541@teal.hq.k1024.org> User-Agent: Mutt/1.5.23 (2014-03-12) X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: UNKNOWN[198.137.202.9] X-Barracuda-Start-Time: 1405587891 X-Barracuda-Encrypted: AES256-SHA X-Barracuda-URL: http://192.48.176.15:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 X-Barracuda-Spam-Score: 0.60 X-Barracuda-Spam-Status: No, SCORE=0.60 using per-user scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.7 tests=BSF_SC5_MJ1963, RDNS_NONE X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.7572 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.10 RDNS_NONE Delivered to trusted network by a host with no rDNS 0.50 BSF_SC5_MJ1963 Custom Rule MJ1963 On Mon, Jul 14, 2014 at 09:09:13AM +0200, Iustin Pop wrote: > The xfsctl man page says that an extent size should be settable any time > on a directory, so why would this fail? Looking at the kernel sources, > I see a number of possible cases where EINVAL is returned: And no special casing for directories at all.. > So to me this reads as if the di_nextents check can also fail for a > directory which has extents, contradicting the man page. Which one needs > to be updated? > > The question arises to if the extent size also applies, then, to > allocating extents for a directory - instead of just being inherited for > files (the man page says no). We're not using the extent size hint on the directory itself. So to me it seems we just not check for already allocated blocks if we're setting the extent size on a directory, but instead maybe make sure the directory. What's also a little odd is that we allow setting the extent size on a directory even if the extent size inherit bit is not set, which doesn't make much sense to me. Do you want to prepare a patch to remove the check for directories? At testcase for xfstests that ensures this works also would be highly useful.. From BATV+1db756af9dde3e43f5d5+3980+infradead.org+hch@bombadil.srs.infradead.org Thu Jul 17 04:05:54 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: xfs@oss.sgi.com Delivered-To: xfs@oss.sgi.com Received: from relay.sgi.com (relay2.corp.sgi.com [137.38.102.29]) by oss.sgi.com (Postfix) with ESMTP id 8A6A97FD5 for ; Thu, 17 Jul 2014 04:05:52 -0500 (CDT) Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by relay2.corp.sgi.com (Postfix) with ESMTP id 7A8FA30404E for ; Thu, 17 Jul 2014 02:05:52 -0700 (PDT) X-ASG-Debug-ID: 1405587950-04cbb0421a166bf0001-NocioJ Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.9]) by cuda.sgi.com with ESMTP id gy4Mw9sIKKEz6ZuH (version=TLSv1 cipher=AES256-SHA bits=256 verify=NO) for ; Thu, 17 Jul 2014 02:05:50 -0700 (PDT) X-Barracuda-Envelope-From: BATV+1db756af9dde3e43f5d5+3980+infradead.org+hch@bombadil.srs.infradead.org X-Barracuda-Apparent-Source-IP: 198.137.202.9 Received: from hch by bombadil.infradead.org with local (Exim 4.80.1 #2 (Red Hat Linux)) id 1X7hdO-000498-8Z for xfs@oss.sgi.com; Thu, 17 Jul 2014 09:05:50 +0000 Date: Thu, 17 Jul 2014 02:05:50 -0700 From: Christoph Hellwig To: xfs@oss.sgi.com Subject: Re: xfsrestore -t and default location of housekeeping dir Message-ID: <20140717090550.GB27425@infradead.org> X-ASG-Orig-Subj: Re: xfsrestore -t and default location of housekeeping dir References: <20140714071935.GB29541@teal.hq.k1024.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20140714071935.GB29541@teal.hq.k1024.org> User-Agent: Mutt/1.5.23 (2014-03-12) X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: bombadil.infradead.org[198.137.202.9] X-Barracuda-Start-Time: 1405587950 X-Barracuda-Encrypted: AES256-SHA X-Barracuda-URL: http://192.48.176.25:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 X-Barracuda-Spam-Score: 0.00 X-Barracuda-Spam-Status: No, SCORE=0.00 using per-user scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.7 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.7572 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- On Mon, Jul 14, 2014 at 09:19:35AM +0200, Iustin Pop wrote: > Hi, > > While testing a just-made dump with via 'xfsrestore -t', I learned that > the default housekeepingdir path is still under the original filesystem. > My xfsrestore therefore failed, since that filesystem was read-only. > > Since '-t' should denote a pure no-op operation, with no changes, would > it make more sense to default the housekeeping location to a temporary > location if it is used? It seems to me like -t shouldn't recreate the files in the housekeeping directory at all. I did take a brief look at the code and is a huge mess that seems to recreate files unconditionally, so I don't really have a good solution for this yet. From BATV+1db756af9dde3e43f5d5+3980+infradead.org+hch@bombadil.srs.infradead.org Thu Jul 17 04:07:21 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: xfs@oss.sgi.com Delivered-To: xfs@oss.sgi.com Received: from relay.sgi.com (relay3.corp.sgi.com [198.149.34.15]) by oss.sgi.com (Postfix) with ESMTP id 1C0647FD1 for ; Thu, 17 Jul 2014 04:07:21 -0500 (CDT) Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by relay3.corp.sgi.com (Postfix) with ESMTP id BCDC2AC003 for ; Thu, 17 Jul 2014 02:07:17 -0700 (PDT) X-ASG-Debug-ID: 1405588036-04bdf03568166040001-NocioJ Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.9]) by cuda.sgi.com with ESMTP id PCj3DqsY9QTDGfCG (version=TLSv1 cipher=AES256-SHA bits=256 verify=NO) for ; Thu, 17 Jul 2014 02:07:16 -0700 (PDT) X-Barracuda-Envelope-From: BATV+1db756af9dde3e43f5d5+3980+infradead.org+hch@bombadil.srs.infradead.org X-Barracuda-Apparent-Source-IP: 198.137.202.9 Received: from hch by bombadil.infradead.org with local (Exim 4.80.1 #2 (Red Hat Linux)) id 1X7hek-0004XM-Ul; Thu, 17 Jul 2014 09:07:14 +0000 Date: Thu, 17 Jul 2014 02:07:14 -0700 From: Christoph Hellwig To: Jeff Liu Cc: fstests@vger.kernel.org, "xfs@oss.sgi.com" Subject: Re: [PATCH] xfs/007: add project quota Q_XQUOTRM test Message-ID: <20140717090714.GA16015@infradead.org> X-ASG-Orig-Subj: Re: [PATCH] xfs/007: add project quota Q_XQUOTRM test References: <53C73562.3010005@oracle.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <53C73562.3010005@oracle.com> User-Agent: Mutt/1.5.23 (2014-03-12) X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: bombadil.infradead.org[198.137.202.9] X-Barracuda-Start-Time: 1405588036 X-Barracuda-Encrypted: AES256-SHA X-Barracuda-URL: http://192.48.157.11:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 X-Barracuda-Spam-Score: 0.00 X-Barracuda-Spam-Status: No, SCORE=0.00 using per-user scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.7 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.7572 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- On Thu, Jul 17, 2014 at 10:30:58AM +0800, Jeff Liu wrote: > From: Jie Liu > > Add test for project quota Q_XQUOTRM operations, this patch also > update the golden output file to match the new output. Changing the test to require crc filesystems seems like a bad idea. I'd suggest to simply do two passes instead: the first one unchanged, and the second one testing project instead of group quotas. From jeff.liu@oracle.com Thu Jul 17 09:03:33 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: xfs@oss.sgi.com Delivered-To: xfs@oss.sgi.com Received: from relay.sgi.com (relay1.corp.sgi.com [137.38.102.111]) by oss.sgi.com (Postfix) with ESMTP id 8BA1B7F88 for ; Thu, 17 Jul 2014 09:03:33 -0500 (CDT) Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by relay1.corp.sgi.com (Postfix) with ESMTP id 845208F8039 for ; Thu, 17 Jul 2014 07:03:30 -0700 (PDT) X-ASG-Debug-ID: 1405605809-04cb6c6ad1169d30001-NocioJ Received: from userp1040.oracle.com (userp1040.oracle.com [156.151.31.81]) by cuda.sgi.com with ESMTP id V8hPeomQZzeFKWZ1 (version=TLSv1 cipher=AES256-SHA bits=256 verify=NO) for ; Thu, 17 Jul 2014 07:03:29 -0700 (PDT) X-Barracuda-Envelope-From: jeff.liu@oracle.com X-Barracuda-Apparent-Source-IP: 156.151.31.81 Received: from ucsinet21.oracle.com (ucsinet21.oracle.com [156.151.31.93]) by userp1040.oracle.com (Sentrion-MTA-4.3.2/Sentrion-MTA-4.3.2) with ESMTP id s6HE34pJ014104 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK); Thu, 17 Jul 2014 14:03:04 GMT Received: from aserz7021.oracle.com (aserz7021.oracle.com [141.146.126.230]) by ucsinet21.oracle.com (8.14.4+Sun/8.14.4) with ESMTP id s6HE33q7015334 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO); Thu, 17 Jul 2014 14:03:03 GMT Received: from abhmp0011.oracle.com (abhmp0011.oracle.com [141.146.116.17]) by aserz7021.oracle.com (8.14.4+Sun/8.14.4) with ESMTP id s6HE320d017510; Thu, 17 Jul 2014 14:03:02 GMT Received: from [192.168.1.101] (/123.130.15.95) by default (Oracle Beehive Gateway v4.0) with ESMTP ; Thu, 17 Jul 2014 07:03:02 -0700 Message-ID: <53C7D786.1050509@oracle.com> Date: Thu, 17 Jul 2014 22:02:46 +0800 From: Jeff Liu User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:24.0) Gecko/20100101 Thunderbird/24.1.0 MIME-Version: 1.0 To: Christoph Hellwig CC: fstests@vger.kernel.org, "xfs@oss.sgi.com" Subject: Re: [PATCH] xfs/007: add project quota Q_XQUOTRM test References: <53C73562.3010005@oracle.com> <20140717090714.GA16015@infradead.org> X-ASG-Orig-Subj: Re: [PATCH] xfs/007: add project quota Q_XQUOTRM test In-Reply-To: <20140717090714.GA16015@infradead.org> Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit X-Source-IP: ucsinet21.oracle.com [156.151.31.93] X-Barracuda-Connect: userp1040.oracle.com[156.151.31.81] X-Barracuda-Start-Time: 1405605809 X-Barracuda-Encrypted: AES256-SHA X-Barracuda-URL: http://192.48.176.15:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 X-Barracuda-Spam-Score: 0.00 X-Barracuda-Spam-Status: No, SCORE=0.00 using per-user scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.7 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.7577 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- On 07/17/2014 17:07 PM, Christoph Hellwig wrote: > On Thu, Jul 17, 2014 at 10:30:58AM +0800, Jeff Liu wrote: >> From: Jie Liu >> >> Add test for project quota Q_XQUOTRM operations, this patch also >> update the golden output file to match the new output. > > Changing the test to require crc filesystems seems like a bad idea. > > I'd suggest to simply do two passes instead: the first one unchanged, > and the second one testing project instead of group quotas. Sounds reasonable to me, will post an updated version soon. Cheers, -Jeff From jeff.liu@oracle.com Thu Jul 17 09:13:31 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: xfs@oss.sgi.com Delivered-To: xfs@oss.sgi.com Received: from relay.sgi.com (relay2.corp.sgi.com [137.38.102.29]) by oss.sgi.com (Postfix) with ESMTP id 134857FA1 for ; Thu, 17 Jul 2014 09:13:31 -0500 (CDT) Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by relay2.corp.sgi.com (Postfix) with ESMTP id 0D750304067 for ; Thu, 17 Jul 2014 07:13:30 -0700 (PDT) X-ASG-Debug-ID: 1405606405-04cbb0421c174c30001-NocioJ Received: from aserp1040.oracle.com (aserp1040.oracle.com [141.146.126.69]) by cuda.sgi.com with ESMTP id LcUqCo1XHGKHaoWA (version=TLSv1 cipher=AES256-SHA bits=256 verify=NO) for ; Thu, 17 Jul 2014 07:13:26 -0700 (PDT) X-Barracuda-Envelope-From: jeff.liu@oracle.com X-Barracuda-Apparent-Source-IP: 141.146.126.69 Received: from acsinet21.oracle.com (acsinet21.oracle.com [141.146.126.237]) by aserp1040.oracle.com (Sentrion-MTA-4.3.2/Sentrion-MTA-4.3.2) with ESMTP id s6HEDOOG003282 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK); Thu, 17 Jul 2014 14:13:25 GMT Received: from aserz7021.oracle.com (aserz7021.oracle.com [141.146.126.230]) by acsinet21.oracle.com (8.14.4+Sun/8.14.4) with ESMTP id s6HEDOvi021171 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO); Thu, 17 Jul 2014 14:13:24 GMT Received: from abhmp0020.oracle.com (abhmp0020.oracle.com [141.146.116.26]) by aserz7021.oracle.com (8.14.4+Sun/8.14.4) with ESMTP id s6HEDOFk021160; Thu, 17 Jul 2014 14:13:24 GMT Received: from [192.168.1.101] (/123.130.15.95) by default (Oracle Beehive Gateway v4.0) with ESMTP ; Thu, 17 Jul 2014 07:13:23 -0700 Message-ID: <53C7DA01.7060703@oracle.com> Date: Thu, 17 Jul 2014 22:13:21 +0800 From: Jeff Liu User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:24.0) Gecko/20100101 Thunderbird/24.1.0 MIME-Version: 1.0 To: fstests@vger.kernel.org CC: "xfs@oss.sgi.com" Subject: [PATCH v2] xfs/007: add project quota Q_XQUOTARM test Content-Type: text/plain; charset=ISO-8859-1 X-ASG-Orig-Subj: [PATCH v2] xfs/007: add project quota Q_XQUOTARM test Content-Transfer-Encoding: 7bit X-Source-IP: acsinet21.oracle.com [141.146.126.237] X-Barracuda-Connect: aserp1040.oracle.com[141.146.126.69] X-Barracuda-Start-Time: 1405606406 X-Barracuda-Encrypted: AES256-SHA X-Barracuda-URL: http://192.48.176.25:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 X-Barracuda-Spam-Score: 0.00 X-Barracuda-Spam-Status: No, SCORE=0.00 using per-user scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.7 tests=BSF_SC0_MISMATCH_TO X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.7577 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.00 BSF_SC0_MISMATCH_TO Envelope rcpt doesn't match header From: Jie Liu Add test for project quota Q_XQUOTARM operations, update the golden output file to match the new test output. Signed-off-by: Jie Liu --- tests/xfs/007 | 24 ++++++++++++++++++++++++ tests/xfs/007.out | 9 +++++++++ 2 files changed, 33 insertions(+) diff --git a/tests/xfs/007 b/tests/xfs/007 index 8cc5bf3..04c20e3 100755 --- a/tests/xfs/007 +++ b/tests/xfs/007 @@ -74,6 +74,30 @@ echo "*** Usage after quotarm ***" xfs_db -c "inode $UQUOTINO" -c "p core.nblocks" $SCRATCH_DEV xfs_db -c "inode $GQUOTINO" -c "p core.nblocks" $SCRATCH_DEV +_qmount_option "uquota,pquota" +_qmount + +echo "*** umount" +umount $SCRATCH_MNT + +UQUOTINO=`xfs_db -c "sb 0" -c "p" $SCRATCH_DEV | grep uquotino | awk '{print $NF}'` +PQUOTINO=`xfs_db -c "sb 0" -c "p" $SCRATCH_DEV | grep gquotino | awk '{print $NF}'` + +echo "*** Usage before quotarm ***" +xfs_db -c "inode $UQUOTINO" -c "p core.nblocks" $SCRATCH_DEV +xfs_db -c "inode $PQUOTINO" -c "p core.nblocks" $SCRATCH_DEV + +_qmount +echo "*** turn off user and project quotas" +xfs_quota -x -c 'off -up' $SCRATCH_MNT +xfs_quota -x -c "remove -up" $SCRATCH_MNT +echo "*** umount" +umount $SCRATCH_MNT + +echo "*** Usage after quotarm ***" +xfs_db -c "inode $UQUOTINO" -c "p core.nblocks" $SCRATCH_DEV +xfs_db -c "inode $PQUOTINO" -c "p core.nblocks" $SCRATCH_DEV + # success, all done status=0 exit diff --git a/tests/xfs/007.out b/tests/xfs/007.out index 0fc17ae..7c5bff5 100644 --- a/tests/xfs/007.out +++ b/tests/xfs/007.out @@ -8,3 +8,12 @@ core.nblocks = 1 *** Usage after quotarm *** core.nblocks = 0 core.nblocks = 0 +*** umount +*** Usage before quotarm *** +core.nblocks = 1 +core.nblocks = 1 +*** turn off user and project quotas +*** umount +*** Usage after quotarm *** +core.nblocks = 0 +core.nblocks = 0 -- 1.8.3.2 From david@fromorbit.com Thu Jul 17 18:10:58 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: xfs@oss.sgi.com Delivered-To: xfs@oss.sgi.com Received: from relay.sgi.com (relay1.corp.sgi.com [137.38.102.111]) by oss.sgi.com (Postfix) with ESMTP id 450C67F86 for ; Thu, 17 Jul 2014 18:10:58 -0500 (CDT) Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by relay1.corp.sgi.com (Postfix) with ESMTP id 05F148F8039 for ; Thu, 17 Jul 2014 16:10:54 -0700 (PDT) X-ASG-Debug-ID: 1405638652-04bdf06812124e0001-NocioJ Received: from ipmail06.adl2.internode.on.net (ipmail06.adl2.internode.on.net [150.101.137.129]) by cuda.sgi.com with ESMTP id bw7RRMydBI68mySY for ; Thu, 17 Jul 2014 16:10:52 -0700 (PDT) X-Barracuda-Envelope-From: david@fromorbit.com X-Barracuda-Apparent-Source-IP: 150.101.137.129 X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: AlELAJhXyFN5LHOdPGdsb2JhbABZgw4fM1eCJ4UIpWoBAQEGlmMCiFQXBAEBAQE4NoRgGCMkNAUlAwctiEGfBqZzGIVjh0CCLYIhD0SBPAWbHpgDKy8BAQEB Received: from ppp121-44-115-157.lns20.syd6.internode.on.net (HELO dastard) ([121.44.115.157]) by ipmail06.adl2.internode.on.net with ESMTP; 18 Jul 2014 08:40:22 +0930 Received: from dave by dastard with local (Exim 4.80) (envelope-from ) id 1X7uoc-00042s-G1 for xfs@oss.sgi.com; Fri, 18 Jul 2014 09:10:18 +1000 Date: Fri, 18 Jul 2014 09:10:18 +1000 From: Dave Chinner To: xfs@oss.sgi.com Subject: [ANNOUNCE] xfsdump v3.1.4 released Message-ID: <20140717231018.GH4453@dastard> X-ASG-Orig-Subj: [ANNOUNCE] xfsdump v3.1.4 released MIME-Version: 1.0 Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="H+4ONPRPur6+Ovig" Content-Disposition: inline User-Agent: Mutt/1.5.21 (2010-09-15) X-Barracuda-Connect: ipmail06.adl2.internode.on.net[150.101.137.129] X-Barracuda-Start-Time: 1405638652 X-Barracuda-URL: http://192.48.157.11:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 X-Barracuda-Spam-Score: 0.00 X-Barracuda-Spam-Status: No, SCORE=0.00 using per-user scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.7 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.7588 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- --H+4ONPRPur6+Ovig Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Content-Transfer-Encoding: quoted-printable Hello! xfsdump v3.1.4 has just been released. This is a bug fix release that contains fixes accumulated over the past year since the last release. The source code can be accessed via git using this URL: git://oss.sgi.com/xfs/cmds/xfsdump.git A signed gzipped-tar archive of the source code is available here: ftp://oss.sgi.com/projects/xfs/cmd_tars/xfsdump-3.1.4.tar.gz ftp://oss.sgi.com/projects/xfs/cmd_tars/xfsdump-3.1.4.tar.gz.sign The archive is signed with my gpg key (the same one that this release announcement is signed with). Problems, issues, questions and general discussion about the release should be directed to the XFS mailing list (xfs@oss.sgi.com). A summary of the changes during development of this release (taken =66rom doc/CHANGES) is as follows: - fix partial region segfault and debug code (Eric Sandeen) - dump wholly sparse files correctly (Eric Sandeen) - restore capabilities correctly - memory leak fixes (Boris Ranto) - sys_getdents modernisation (Kyle McMartin) - Error message fixes (Iustin Pop) - Updated polish translation (Jakub Bogusz) - debian package build updates (Nathan Scott) --=20 Dave Chinner david@fromorbit.com --H+4ONPRPur6+Ovig Content-Type: application/pgp-signature; name="signature.asc" Content-Description: Digital signature -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.12 (GNU/Linux) iQIcBAEBAgAGBQJTyFfZAAoJEK3oKUf0dfod1vwP/3Gfb3oUyCljMSTeFrRacJ5b r40+Z8n8sNGIJbFVspbQYsTPJAIgh50wQZtcDGo4Y9iRPYWTQmukJ0GHajh6ncmz AAk31dKZVpgasfHNe/wDRhOtaA9Zh7K3yafs59Ie9wOuOWs3uI7+len9J+79PPrF a3UqjQ0S9I10J1gF5KGsQJCA5zvSoQYuFSyKmWxbHqDCQlXbo1sSFkxHTfNoAaWO /jCXQBrYTpVNpG9r/s7XQ0MDx7TAecGu2g6V3nX9Fk3Gpz1zlIk4NFtLWcCRnGhr bgSYUwLhXW/UPSoz/qRk/4xZAWsrZtKxR0K+hpTfD4Ot743ArHHicRlLR/4axek9 JvN76zWonIqJiEJLxRHer45RXtZUWi66SLmv/GiwO/rfxMuiatkFdSU2eP/JknbY vbPtOlXMEqhVu6Tm9VhzNoaOMf1AQ8m7moUvMwhfsJWIJFiaQZEmWs4EWR+9XmT8 1cEZqzDP1FmG5tE49gtzvEMzetwW0jXa4805U/Ni6qhvEb8DKXoE4F0ORmvA/ITi DHcs3YUGjASF5rvrDdU14Q6KIQOHVxjTFbquGVPZybEgzVIb7UGLYgBLS/ee9Uis er/XNmzzY55ExYTC55uKA4EVPkIIHFlDq/83Lga1FXhX9TWAEo3HzUljBle5XO1E zVyuOp+0KQLDD9BOIIeM =SDGv -----END PGP SIGNATURE----- --H+4ONPRPur6+Ovig-- From david@fromorbit.com Thu Jul 17 18:37:55 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: xfs@oss.sgi.com Delivered-To: xfs@oss.sgi.com Received: from relay.sgi.com (relay1.corp.sgi.com [137.38.102.111]) by oss.sgi.com (Postfix) with ESMTP id A0B967F8E for ; Thu, 17 Jul 2014 18:37:55 -0500 (CDT) Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by relay1.corp.sgi.com (Postfix) with ESMTP id 163368F8039 for ; Thu, 17 Jul 2014 16:37:54 -0700 (PDT) X-ASG-Debug-ID: 1405640272-04bdf0681413300001-NocioJ Received: from ipmail06.adl2.internode.on.net (ipmail06.adl2.internode.on.net [150.101.137.129]) by cuda.sgi.com with ESMTP id LPCgefiGwriw1ZGL for ; Thu, 17 Jul 2014 16:37:52 -0700 (PDT) X-Barracuda-Envelope-From: david@fromorbit.com X-Barracuda-Apparent-Source-IP: 150.101.137.129 X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: AlULALRdyFN5LHOdPGdsb2JhbABZgw5SV4InhQilagEBAQYFlmCHS4EJFwQBAQEBODaERBwjGCQ0BSUDBy2IQcVbGIVjiQNNHYMYgRgFhXKVLJgDKy+BBA Received: from ppp121-44-115-157.lns20.syd6.internode.on.net (HELO dastard) ([121.44.115.157]) by ipmail06.adl2.internode.on.net with ESMTP; 18 Jul 2014 09:07:52 +0930 Received: from dave by dastard with local (Exim 4.80) (envelope-from ) id 1X7vFG-000495-N9; Fri, 18 Jul 2014 09:37:50 +1000 Date: Fri, 18 Jul 2014 09:37:50 +1000 From: Dave Chinner To: torvalds@linux-foundation.org Cc: akpm@linux-foundation.org, linux-kernel@vger.kernel.org, xfs@oss.sgi.com Subject: [GIT PULL] xfs: fixes for 3.16-rc5 Message-ID: <20140717233750.GE20518@dastard> X-ASG-Orig-Subj: [GIT PULL] xfs: fixes for 3.16-rc5 MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline User-Agent: Mutt/1.5.21 (2010-09-15) X-Barracuda-Connect: ipmail06.adl2.internode.on.net[150.101.137.129] X-Barracuda-Start-Time: 1405640272 X-Barracuda-URL: http://192.48.157.11:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 X-Barracuda-Spam-Score: 0.00 X-Barracuda-Spam-Status: No, SCORE=0.00 using per-user scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.7 tests=BSF_SC0_MISMATCH_TO X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.7589 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.00 BSF_SC0_MISMATCH_TO Envelope rcpt doesn't match header Hi Linus, Can you please pull the updates listed below? These are regression fixes for issues recently introduced - the change in the stack switch location is fairly important, so I've held off sending this update until I was sure that it still addresses the stack usage problem the original solved. So while the commits in the xfs tree are recent, it has been under tested for several weeks now. -Dave. The following changes since commit a497c3ba1d97fc69c1e78e7b96435ba8c2cb42ee: Linux 3.16-rc2 (2014-06-21 19:02:54 -1000) are available in the git repository at: git://oss.sgi.com/xfs/xfs.git tags/xfs-for-linus-3.16-rc5 for you to fetch changes up to 03e01349c654fbdea80d3d9b4ab599244eb55bb7: xfs: null unused quota inodes when quota is on (2014-07-15 07:28:41 +1000) ---------------------------------------------------------------- xfs: fixes for 3.15-rc5 Fixes for low memory perforamnce regressions and a quota inode handling regression. ---------------------------------------------------------------- Dave Chinner (3): Revert "xfs: block allocation work needs to be kswapd aware" xfs: refine the allocation stack switch xfs: null unused quota inodes when quota is on fs/xfs/xfs_bmap.c | 7 ++----- fs/xfs/xfs_bmap.h | 4 +--- fs/xfs/xfs_bmap_util.c | 53 ----------------------------------------------------- fs/xfs/xfs_bmap_util.h | 4 ---- fs/xfs/xfs_btree.c | 82 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++- fs/xfs/xfs_iomap.c | 3 +-- fs/xfs/xfs_sb.c | 25 +++++++++++++++++++++---- 7 files changed, 106 insertions(+), 72 deletions(-) -- Dave Chinner david@fromorbit.com From david@fromorbit.com Thu Jul 17 19:30:19 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: xfs@oss.sgi.com Delivered-To: xfs@oss.sgi.com Received: from relay.sgi.com (relay2.corp.sgi.com [137.38.102.29]) by oss.sgi.com (Postfix) with ESMTP id 8DD327F86 for ; Thu, 17 Jul 2014 19:30:19 -0500 (CDT) Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by relay2.corp.sgi.com (Postfix) with ESMTP id 7B3CD30404E for ; Thu, 17 Jul 2014 17:30:16 -0700 (PDT) X-ASG-Debug-ID: 1405643413-04cbb064e514ee0001-NocioJ Received: from ipmail06.adl2.internode.on.net (ipmail06.adl2.internode.on.net [150.101.137.129]) by cuda.sgi.com with ESMTP id dcNdmgp5MwjtXAca for ; Thu, 17 Jul 2014 17:30:14 -0700 (PDT) X-Barracuda-Envelope-From: david@fromorbit.com X-Barracuda-Apparent-Source-IP: 150.101.137.129 X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: Ak8LAG1pyFN5LHOdPGdsb2JhbABZgw6BKYInhQilagEBAQaeMAGBCBcEAQEBATg2hAMBAQQBOhwjBQsIAw4KCSUPBSUDBxoTiDoHxUQXGIVjiVAHhEYFmx6YAysv Received: from ppp121-44-115-157.lns20.syd6.internode.on.net (HELO dastard) ([121.44.115.157]) by ipmail06.adl2.internode.on.net with ESMTP; 18 Jul 2014 09:59:33 +0930 Received: from dave by dastard with local (Exim 4.80) (envelope-from ) id 1X7w3H-0004Fe-BK; Fri, 18 Jul 2014 10:29:31 +1000 Date: Fri, 18 Jul 2014 10:29:31 +1000 From: Dave Chinner To: Jan Kara Cc: Christoph Hellwig , xfs@oss.sgi.com Subject: Re: [PATCH] logprint: Fix printing of AGF buffers Message-ID: <20140718002931.GI4453@dastard> X-ASG-Orig-Subj: Re: [PATCH] logprint: Fix printing of AGF buffers References: <1405349100-19734-1-git-send-email-jack@suse.cz> <20140715101931.GC30363@infradead.org> <20140715140938.GA1733@quack.suse.cz> <20140715153922.GB5369@infradead.org> <20140716003851.GO22339@dastard> <20140716081105.GB29924@infradead.org> <20140716231725.GF4453@dastard> <20140717083905.GB1649@quack.suse.cz> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20140717083905.GB1649@quack.suse.cz> User-Agent: Mutt/1.5.21 (2010-09-15) X-Barracuda-Connect: ipmail06.adl2.internode.on.net[150.101.137.129] X-Barracuda-Start-Time: 1405643413 X-Barracuda-URL: http://192.48.176.25:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 X-Barracuda-Spam-Score: 0.00 X-Barracuda-Spam-Status: No, SCORE=0.00 using per-user scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.7 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.7591 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- On Thu, Jul 17, 2014 at 10:39:05AM +0200, Jan Kara wrote: > On Thu 17-07-14 09:17:25, Dave Chinner wrote: > > IOWs, we've played whack-a-mole on this again while ignoring the > > fundamental issues ithat still remain: > > > > - that logprint has a lot of assumptions that simply aren't > > true; and > > - that logprint simply does not handle split region > > continuations like the kernel recovery code does. > > > > Both of these things lead to having to handle these strange "out of > > space" cases in multiple places, and simply not handling them in > > places that actually need to. > > > > These are just more reasons why logprint - as it says itself in a > > couple of comments - needs a complete rewrite. > Yeah, I've noticed that logprint definitely doesn't handle all possible > cases and the code is ... well, organic :). That's a very polite way of putting it ;) > OTOH it worked for me (except > for this bug) when I needed so for a debug tool like that it seemed good > enough. I don't feel like rewriting it from scratch (at least in near > future) but if someone can find time for that, it would be surely welcome. Right, that's effectively been the state of play for some time. It's a useful tool that could do with some work to make it better, but nobody has had the time to do that work because most of the time it works fine... If only there were some minions around looking to learn about XFS log recovery.... Cheers, Dave. -- Dave Chinner david@fromorbit.com From david@fromorbit.com Thu Jul 17 20:42:55 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: xfs@oss.sgi.com Delivered-To: xfs@oss.sgi.com Received: from relay.sgi.com (relay1.corp.sgi.com [137.38.102.111]) by oss.sgi.com (Postfix) with ESMTP id 569647F37 for ; Thu, 17 Jul 2014 20:42:55 -0500 (CDT) Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by relay1.corp.sgi.com (Postfix) with ESMTP id 40E458F8039 for ; Thu, 17 Jul 2014 18:42:52 -0700 (PDT) X-ASG-Debug-ID: 1405647769-04cbb064e717b00001-NocioJ Received: from ipmail06.adl2.internode.on.net (ipmail06.adl2.internode.on.net [150.101.137.129]) by cuda.sgi.com with ESMTP id Bp3uy8tH0OSBB1YP for ; Thu, 17 Jul 2014 18:42:50 -0700 (PDT) X-Barracuda-Envelope-From: david@fromorbit.com X-Barracuda-Apparent-Source-IP: 150.101.137.129 X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: AqoNAAB7yFN5LHOdPGdsb2JhbABZgw5SV4InhQileAEBAQaWZYhVFwQBAQEBOBkdhGA7JDQFJQMHLYhBnkimfhiFY4hlHmqEMAWbHpVxghIrL4EE Received: from ppp121-44-115-157.lns20.syd6.internode.on.net (HELO dastard) ([121.44.115.157]) by ipmail06.adl2.internode.on.net with ESMTP; 18 Jul 2014 11:12:49 +0930 Received: from dave by dastard with local (Exim 4.80) (envelope-from ) id 1X7xCB-0004QZ-Mu for xfs@oss.sgi.com; Fri, 18 Jul 2014 11:42:47 +1000 Date: Fri, 18 Jul 2014 11:42:47 +1000 From: Dave Chinner To: xfs@oss.sgi.com Subject: [ANNOUCE] xfsprogs: master branch updated to ba24eb7 Message-ID: <20140718014247.GJ4453@dastard> X-ASG-Orig-Subj: [ANNOUCE] xfsprogs: master branch updated to ba24eb7 MIME-Version: 1.0 Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="f+W+jCU1fRNres8c" Content-Disposition: inline User-Agent: Mutt/1.5.21 (2010-09-15) X-Barracuda-Connect: ipmail06.adl2.internode.on.net[150.101.137.129] X-Barracuda-Start-Time: 1405647769 X-Barracuda-URL: http://192.48.176.25:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 X-Barracuda-Spam-Score: 0.00 X-Barracuda-Spam-Status: No, SCORE=0.00 using per-user scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.7 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.7592 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- --f+W+jCU1fRNres8c Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Content-Transfer-Encoding: quoted-printable Hi folks, The xfsprogs repository at git://oss.sgi.com/xfs/cmds/xfsprogs has just been updated. The new head of the master branch is commit: ba24eb7 logprint: Fix printing of AGF and AGI buffers New Commits: Eric Sandeen (2): [6bf4721] repair: copy, don't clear, stripe geometry in backup SB [ed350fc] libxcmd: make all comparisons using realpath'd paths Jan Kara (1): [ba24eb7] logprint: Fix printing of AGF and AGI buffers Jie Liu (1): [a14d409] quota: fix NULL pointer dereference in report_f Nathan Scott (2): [1a05f91] xfsprogs: add a watch file into the debian packaging [b6ad854] xfsprogs: update debian packaging for next release Code Diffstat: debian/Makefile | 2 +- debian/changelog | 7 +++++++ debian/watch | 3 +++ libxcmd/paths.c | 42 ++++++++++++++++++++++++++---------------- logprint/log_misc.c | 20 ++++++++++++++++++-- quota/report.c | 2 +- repair/globals.h | 2 +- repair/sb.c | 2 +- repair/xfs_repair.c | 10 ++++------ 9 files changed, 62 insertions(+), 28 deletions(-) create mode 100644 debian/watch --=20 Dave Chinner david@fromorbit.com --f+W+jCU1fRNres8c Content-Type: application/pgp-signature; name="signature.asc" Content-Description: Digital signature -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.12 (GNU/Linux) iQIcBAEBAgAGBQJTyHuWAAoJEK3oKUf0dfodhnkP/jS1ETDgYYyqqI4XuVBxdl2G 9BX9W7UAO037WJUpGMAK0RLkyvL2T6IgxTIHKC35pZmfWaAzksYeZaNoINin/ST6 OPsQqpecr4WakKOd2RJdNs2oSUeaiP3zeZTuTmyBS4Xlx4p0Mep2kt+V2SPSsH7g IpdhMa4ekQ5AFB86zoxtKADKcNqQCiHpD/EsDAqv8wKyBh/5O1sW7jJUseSE8Yew gqNbfDZJfPanDKApO2H12gRv4YtBBc+5tqBK/SbVGfrM0sonWUhrXwkMdTFpWhck kX9v3BP9mJDhDK/fiTAJteyWsAxclqe2ONKz5Bvq5vE9FwPDYOr9ONxak8FL0Zwd THdG5XWM60snd0epG2j27dgwHKwxXWc893ctKSyNiBXxrJTgFpMCgGiDgl1BfCtg 7G1CdF5n0hIA7dPiTKrzTLcFDpYlPjjU0i15kaRgOf6+9sKtlzWvf4vgsAiHuTFK G8ZXUX7N9FGmAuD01IgAqJvbNazCNAr/hV7l/k39jF5GJYmfguWQIM/194G6zmyp IqN6ecmzFKMBduIWTZV1yFYF0q9lOMSsjQ1oLVElhAGcekVhOmVyFaVFP3PMhvH/ RmFnZvlQKFBUgR35oT3Y5VpWv614G26qsNladTs4dxu3sUJs5fKGCzKD7O3eL0Rl iUTEYizavGC/zuIU3joG =ANdA -----END PGP SIGNATURE----- --f+W+jCU1fRNres8c-- From sandeen@sandeen.net Thu Jul 17 23:37:44 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: xfs@oss.sgi.com Delivered-To: xfs@oss.sgi.com Received: from relay.sgi.com (relay3.corp.sgi.com [198.149.34.15]) by oss.sgi.com (Postfix) with ESMTP id 801AD7F9A for ; Thu, 17 Jul 2014 23:37:44 -0500 (CDT) Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by relay3.corp.sgi.com (Postfix) with ESMTP id C6330AC005 for ; Thu, 17 Jul 2014 21:37:43 -0700 (PDT) X-ASG-Debug-ID: 1405658255-04bdf068141eef0001-NocioJ Received: from sandeen.net (sandeen.net [63.231.237.45]) by cuda.sgi.com with ESMTP id 1OYgMUuN4OQCGEBI for ; Thu, 17 Jul 2014 21:37:36 -0700 (PDT) X-Barracuda-Envelope-From: sandeen@sandeen.net X-Barracuda-Apparent-Source-IP: 63.231.237.45 Received: from liberator.sandeen.net (liberator.sandeen.net [10.0.0.4]) (using TLSv1 with cipher DHE-RSA-AES128-SHA (128/128 bits)) (No client certificate requested) by sandeen.net (Postfix) with ESMTPSA id B6CDC63C5FEF; Thu, 17 Jul 2014 23:37:34 -0500 (CDT) Message-ID: <53C8A48F.5080000@sandeen.net> Date: Thu, 17 Jul 2014 23:37:35 -0500 From: Eric Sandeen MIME-Version: 1.0 To: Eric Sandeen , xfs-oss Subject: Re: [PATCH] xfstests: log running test to dmesg References: <534EF81D.20205@redhat.com> X-ASG-Orig-Subj: Re: [PATCH] xfstests: log running test to dmesg In-Reply-To: <534EF81D.20205@redhat.com> X-Enigmail-Version: 1.6 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit X-Barracuda-Connect: sandeen.net[63.231.237.45] X-Barracuda-Start-Time: 1405658255 X-Barracuda-URL: http://192.48.157.11:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 X-Barracuda-Spam-Score: 0.00 X-Barracuda-Spam-Status: No, SCORE=0.00 using per-user scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.7 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.7595 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- On 4/16/14, 4:37 PM, Eric Sandeen wrote: > We already log the running test to system logs via "logger" > but viro pointed out that we can use /dev/kmsg to insert it > into dmesg as well. When looking at the serial console that > could be pretty useful. > > Thanks to viro for the test -w suggestion too. > > Signed-off-by: Eric Sandeen can we get this one in? Dave asked for a generic helper, but no test needs to print to kmsg, and nobody else uses LOGGER_PROG. All we use either one for is logging the test run. If somebody needs it for another purpose, it makes sense to add a helper... -Eric > --- > > diff --git a/check b/check > index 268417c..09b2320 100755 > --- a/check > +++ b/check > @@ -457,6 +457,7 @@ do > $timestamp && echo -n " ["`date "+%T"`"]" > [ ! -x $seq ] && chmod u+x $seq # ensure we can run it > $LOGGER_PROG "run xfstest $seqnum" > + test -w /dev/kmsg && echo "run xfstest $seqnum" > /dev/kmsg > ./$seq >$tmp.rawout 2>&1 > sts=$? > $timestamp && _timestamp > > > _______________________________________________ > xfs mailing list > xfs@oss.sgi.com > http://oss.sgi.com/mailman/listinfo/xfs > From jan@tulak.me Fri Jul 18 01:07:48 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: xfs@oss.sgi.com Delivered-To: xfs@oss.sgi.com Received: from relay.sgi.com (relay3.corp.sgi.com [198.149.34.15]) by oss.sgi.com (Postfix) with ESMTP id B13667F56 for ; Fri, 18 Jul 2014 01:07:48 -0500 (CDT) Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by relay3.corp.sgi.com (Postfix) with ESMTP id 33096AC001 for ; Thu, 17 Jul 2014 23:07:44 -0700 (PDT) X-ASG-Debug-ID: 1405663659-04cb6c035121070001-NocioJ Received: from mail-wi0-f179.google.com (mail-wi0-f179.google.com [209.85.212.179]) by cuda.sgi.com with ESMTP id H3LAYmxBzWWNqjXi (version=TLSv1 cipher=RC4-SHA bits=128 verify=NO) for ; Thu, 17 Jul 2014 23:07:39 -0700 (PDT) X-Barracuda-Envelope-From: jan@tulak.me X-Barracuda-Apparent-Source-IP: 209.85.212.179 Received: by mail-wi0-f179.google.com with SMTP id f8so248359wiw.12 for ; Thu, 17 Jul 2014 23:07:38 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:content-type:mime-version:subject:from :in-reply-to:date:cc:content-transfer-encoding:message-id:references :to; bh=wOxzF+/4xQhakvKstjsJJ7m820Sf6ZNYfdu549cpvKY=; b=cqlPKbevwgsi77GAVhUzkWJVRI9MDiQpqsk4Y771jbzNJ99A74FbcQouR+5d4ZKWq3 8cfphuDtdicDtS2F2zj80pW6RG3Xa5hFKdueBmvNBqkD/Np2orzK2m7suAf7j8wBB0Oc Bj1k1UuJU9qZZnOvFNCluMecYUHPbrW0ztzLts0FG+QMPsvXUvzri2eCGJGNyPX6rKDv 3UXxqtluYCTXVAQlTLco2lh+R8XPeLMKPIAf0o55nvJQE7QY6zNy/Jtexc9XighT74Wu BMxT+gRjHI7xw6XAz4jlwU4xHH4jHPbcRZk0bf+QUo3Cp1EQE4JVqR+DdNRfUO17FqFC zdmA== X-Gm-Message-State: ALoCoQnvbkNh11grZRDl0uKyirQr1GRAsuxubcd8c4fKIiqFgH67L5U3xa66JNmuNXqL+fU0FY2y X-Received: by 10.194.185.238 with SMTP id ff14mr3125473wjc.9.1405663658673; Thu, 17 Jul 2014 23:07:38 -0700 (PDT) Received: from [192.168.2.103] (ip4-46-39-166-19.cust.nbox.cz. [46.39.166.19]) by mx.google.com with ESMTPSA id nc19sm2924506wic.4.2014.07.17.23.07.37 for (version=TLSv1 cipher=ECDHE-RSA-RC4-SHA bits=128/128); Thu, 17 Jul 2014 23:07:37 -0700 (PDT) Content-Type: text/plain; charset=windows-1252 Mime-Version: 1.0 (Mac OS X Mail 7.3 \(1878.6\)) Subject: Re: symlink loop for /lib64/libhandle.so From: =?utf-8?Q?Jan_=C5=A4ul=C3=A1k?= X-ASG-Orig-Subj: Re: symlink loop for /lib64/libhandle.so In-Reply-To: <20140715154857.GA14716@infradead.org> Date: Fri, 18 Jul 2014 08:07:36 +0200 Cc: Eric Sandeen , Brian Foster , XFS mail list Content-Transfer-Encoding: quoted-printable Message-Id: <0924FC53-967B-4EE3-8F0E-CD3709EEDC19@tulak.me> References: <1404898212.7231.12.camel@jtulak> <20140709132836.GA65226@bfoster.bfoster> <20140710134851.GA26652@infradead.org> <1405009872.31068.22.camel@jtulak> <53BEC1E7.1070904@sandeen.net> <1405075678.28203.56.camel@jtulak> <1405325087.3196.6.camel@jtulak> <20140714082607.GA19882@infradead.org> <20140715154857.GA14716@infradead.org> To: Christoph Hellwig X-Mailer: Apple Mail (2.1878.6) X-Barracuda-Connect: mail-wi0-f179.google.com[209.85.212.179] X-Barracuda-Start-Time: 1405663659 X-Barracuda-Encrypted: RC4-SHA X-Barracuda-URL: http://192.48.176.15:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 X-Barracuda-Spam-Score: 0.00 X-Barracuda-Spam-Status: No, SCORE=0.00 using per-user scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.7 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.7596 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- On 15 Jul 2014, at 17:48, Christoph Hellwig wrote: > Hi Jan, >=20 > there were still some small isues with the patch format, I've attached > a version of your patch that has the expected format. >=20 > Note that I also changed it to only check the canonical names instead = of > testing the passed in one and the one readlink was called on. This > should be enough I think, but please test that it still works for you. >=20 > Thanks for tracking this down! > Hi Christoph, thanks for the checking. This version works too, so it can be used.=20 I=92m glad I could help. Jan= From CMnnewsletter@atrapalo.com Fri Jul 18 01:35:29 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: ** X-Spam-Status: No, score=2.3 required=5.0 tests=HDRS_LCASE,HTML_MESSAGE, MIME_HTML_ONLY autolearn=no version=3.3.1 X-Original-To: xfs@oss.sgi.com Delivered-To: xfs@oss.sgi.com Received: from relay.sgi.com (relay1.corp.sgi.com [137.38.102.111]) by oss.sgi.com (Postfix) with ESMTP id 00ECF7F76 for ; Fri, 18 Jul 2014 01:35:28 -0500 (CDT) Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by relay1.corp.sgi.com (Postfix) with ESMTP id BE26E8F8037 for ; Thu, 17 Jul 2014 23:35:28 -0700 (PDT) X-ASG-Debug-ID: 1405665321-04bdf0681223780001-NocioJ Received: from AnNA (host122-64-35-185.static.arubacloud.fr [185.35.64.122]) by cuda.sgi.com with ESMTP id weoBuXDuJWFSx14i for ; Thu, 17 Jul 2014 23:35:21 -0700 (PDT) X-Barracuda-Envelope-From: CMnnewsletter@atrapalo.com X-Barracuda-Apparent-Source-IP: 185.35.64.122 Received: from [185.35.64.122] ([127.0.0.1]) by AnNA with Microsoft SMTPSVC(7.5.7601.17514); Fri, 18 Jul 2014 08:35:19 +0200 Message-Id: Mime-Version: 1.0 From: =?iso-8859-1?Q? "=A9ARK=C9A_BanquePriv=E9e" ?= To: Undisclosed-Recipients:; Subject: vous avez (1) nouveau message! Date: Fri, 18 Jul 2014 08:35:19 +0200 X-ASG-Orig-Subj: vous avez (1) nouveau message! Content-type: text/html; charset=iso-8859-1 Content-transfer-encoding: quoted-printable X-OriginalArrivalTime: 18 Jul 2014 06:35:20.0018 (UTC) FILETIME=[71F8C320:01CFA252] X-Barracuda-Connect: host122-64-35-185.static.arubacloud.fr[185.35.64.122] X-Barracuda-Start-Time: 1405665321 X-Barracuda-URL: http://192.48.157.11:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 X-Barracuda-Spam-Score: 0.20 X-Barracuda-Spam-Status: No, SCORE=0.20 using per-user scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.7 tests=BSF_SC0_SA038b, HTML_MESSAGE, MIME_HTML_ONLY X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.7597 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.00 MIME_HTML_ONLY BODY: Message only has text/html MIME parts 0.00 HTML_MESSAGE BODY: HTML included in message 0.20 BSF_SC0_SA038b Custom Rule SA038b

 3D"Crédit




=3D""
 
Bonjour,

Nous tenons de vous informer que vous avez un nouveau = message=2E
Pour consulter votre boite de messagerie cliquez sur le lien ci-dessous :

=              Consulter la boite de message= rie

Cordialement, 
Laurent Biojoux,
Directeur de la Relation Clien= ts

Crédit M= utuel de Bretagne

From namjae.jeon@samsung.com Fri Jul 18 03:51:27 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: xfs@oss.sgi.com Delivered-To: xfs@oss.sgi.com Received: from relay.sgi.com (relay1.corp.sgi.com [137.38.102.111]) by oss.sgi.com (Postfix) with ESMTP id BA8587F7E for ; Fri, 18 Jul 2014 03:51:27 -0500 (CDT) Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by relay1.corp.sgi.com (Postfix) with ESMTP id A4C538F8037 for ; Fri, 18 Jul 2014 01:51:24 -0700 (PDT) X-ASG-Debug-ID: 1405673478-04cbb064e527830001-NocioJ Received: from mailout1.samsung.com (mailout1.samsung.com [203.254.224.24]) by cuda.sgi.com with ESMTP id 4KjHBMfCFncTVxgr (version=TLSv1 cipher=RC4-MD5 bits=128 verify=NO) for ; Fri, 18 Jul 2014 01:51:19 -0700 (PDT) X-Barracuda-Envelope-From: namjae.jeon@samsung.com X-Barracuda-Apparent-Source-IP: 203.254.224.24 X-Barracuda-IPDD: Level2 [samsung.com/203.254.224.24] Received: from epcpsbgr1.samsung.com (u141.gpu120.samsung.co.kr [203.254.230.141]) by mailout1.samsung.com (Oracle Communications Messaging Server 7u4-24.01 (7.0.4.24.0) 64bit (built Nov 17 2011)) with ESMTP id <0N8W007XEGKW8W10@mailout1.samsung.com> for xfs@oss.sgi.com; Fri, 18 Jul 2014 17:50:56 +0900 (KST) X-Barracuda-IPDD: Level2 [samsung.com/203.254.224.24] X-Barracuda-IPDD: Level2 [samsung.com/203.254.224.24] X-Barracuda-IPDD: Level2 [samsung.com/203.254.224.24] X-Barracuda-IPDD: Level2 [samsung.com/203.254.224.24] X-Barracuda-IPDD: Level2 [samsung.com/203.254.224.24] X-Barracuda-IPDD: Level2 [samsung.com/203.254.224.24] Received: from epcpsbgm1.samsung.com ( [172.20.52.116]) by epcpsbgr1.samsung.com (EPCPMTA) with SMTP id 90.A2.24374.0FFD8C35; Fri, 18 Jul 2014 17:50:56 +0900 (KST) X-AuditID: cbfee68d-b7fd46d000005f36-8c-53c8dff0975c Received: from epmmp1.local.host ( [203.254.227.16]) by epcpsbgm1.samsung.com (EPCPMTA) with SMTP id 2D.5B.04943.0FFD8C35; Fri, 18 Jul 2014 17:50:56 +0900 (KST) Received: from DONAMJAEJEO06 ([10.88.104.63]) by mmp1.samsung.com (Oracle Communications Messaging Server 7u4-24.01 (7.0.4.24.0) 64bit (built Nov 17 2011)) with ESMTPA id <0N8W00FJBGKW4V60@mmp1.samsung.com>; Fri, 18 Jul 2014 17:50:56 +0900 (KST) From: Namjae Jeon To: 'Dmitry Monakhov' Cc: 'Dave Chinner' , 'Theodore Ts'o' , 'linux-ext4' , linux-fsdevel@vger.kernel.org, linux-kernel@vger.kernel.org, 'Brian Foster' , 'Christoph Hellwig' , 'Ashish Sangwan' , xfs@oss.sgi.com, =?UTF-8?Q?'Luk=C3=A1=C5=A1_Czerner'?= References: <004001cf9aa4$2670e280$7352a780$@samsung.com> <87tx6ktiay.fsf@openvz.org> In-reply-to: <87tx6ktiay.fsf@openvz.org> Subject: RE: [PATCH 3/3] ext4: Add support IOC_MOV_DATA ioctl Date: Fri, 18 Jul 2014 17:50:55 +0900 X-ASG-Orig-Subj: RE: [PATCH 3/3] ext4: Add support IOC_MOV_DATA ioctl Message-id: <002901cfa265$636d2e50$2a478af0$@samsung.com> MIME-version: 1.0 Content-type: text/plain; charset=UTF-8 Content-transfer-encoding: quoted-printable X-Mailer: Microsoft Outlook 14.0 Thread-index: AQGrJOZNAI0ZuL5IevgT+zbvOhNoQAIW0xsrAQ2dXteb1UCJkA== Content-language: ko X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFmpgleLIzCtJLcpLzFFi42JZI2JSovvh/olgg82zxS2WTrzEbPHuc5XF lmP3GC1OzPS0OD1hEZPFsgebWSxmzrvDZrFn70kWi8u75rBZtPb8ZLdY1HeL0YHb49QiCY/N K7Q8ms4cZfaYdPgzk8fqC1sZPd7vu8rm0bdlFaPH501yARxRXDYpqTmZZalF+nYJXBlPnzaz FmwTq7hyeD1bA2OHUBcjJ4eEgInEtq9X2CBsMYkL99YD2VwcQgJLGSUWvmpi72JkBys6GwsR XsQo8fffelYI5y+jxJpZ0xm7GDk42AS0Jf5sEQWZIyKgI9F85RoLSA2zQCOzxNO7+5khGqYw SmzfcAGsgVNAQ2LC30qQBmEBW4npZ3czgtgsAqoSD/6sBzuIV8BS4vvF5cwQtqDEj8n3WEBs ZgF1iUnzFjFD2NoST95dYIV4QEFix9nXjBBHOEncO97PCFEjIrHvxTtGkBskBOZySMzt3MUO sUxA4tvkQywg90gIyEpsOsAMMUdS4uCKGywTGCVmIVk9C8nqWUhWz0KyYgEjyypG0dSC5ILi pPQiQ73ixNzi0rx0veT83E2MwNg//e9Z7w7G2wesDzEmA62fyCwlmpwPTB15JfGGxmZGFqYm psZG5pZmpAkrifMmPUwKEhJITyxJzU5NLUgtii8qzUktPsTIxMEp1cAY+ap/u5QO+0EFlR8z ZmfVx0eLppQdOm8aWaK/JX/PZgkDuR0/5fRuuOyX+3nvy1mx70FOWftivR2WzLTmMM84Vlmw /q00s1W79rd/m3cUzEoXOqh80vf/2dPN8m/3LH8gbWlY8rtE7VXKg5+9UfNjRVxP+Gf6Pfn6 Nmnh6sqIyb+f7GfreO6mxFKckWioxVxUnAgAtDCxrRMDAAA= X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFlrPKsWRmVeSWpSXmKPExsVy+t9jAd0P908EG8zZzWexdOIlZot3n6ss thy7x2hxYqanxekJi5gslj3YzGIxc94dNos9e0+yWFzeNYfNorXnJ7vFor5bjA7cHqcWSXhs XqHl0XTmKLPHpMOfmTxWX9jK6PF+31U2j74tqxg9Pm+SC+CIamC0yUhNTEktUkjNS85PycxL t1XyDo53jjc1MzDUNbS0MFdSyEvMTbVVcvEJ0HXLzAE6U0mhLDGnFCgUkFhcrKRvh2lCaIib rgVMY4Sub0gQXI+RARpIWMOY8fRpM2vBNrGKK4fXszUwdgh1MbJzSAiYSJyN7WLkBLLEJC7c W8/WxcjFISSwiFHi77/1rBDOX0aJNbOmM3YxcnCwCWhL/NkiCtIgIqAj0XzlGgtIDbNAI7PE 07v7mSEapjBKbN9wAayBU0BDYsLfSpAGYQFbielndzOC2CwCqhIP/oBs4+TgFbCU+H5xOTOE LSjxY/I9FhCbWUBdYtK8RcwQtrbEk3cXWCEuVZDYcfY1I8QRThL3jvczQtSISOx78Y5xAqPQ LCSjZiEZNQvJqFlIWhYwsqxiFE0tSC4oTkrPNdQrTswtLs1L10vOz93ECE4sz6R2MK5ssDjE KMDBqMTDa3HzeLAQa2JZcWXuIUYJDmYlEd7s+0Ah3pTEyqrUovz4otKc1OJDjKZAn05klhJN zgcmvbySeENjEzMjSyNzQwsjY3Mlcd4DrdaBQgLpiSWp2ampBalFMH1MHJxSDYw+J7OMmDde VElYcPbRfelOtxPrjONMqpeWZR63mhf44PaMY6WC6uE3LpjbFMZesZP7ybQ22/Vyyydlj9Vh 5y+ZiN+NmnYk0M51z1LP1EBRXq5ts66cz1/UecDZoSl4lcm37OtbmR6+ezqrVVK84p/aswq7 /StPPhbj1Tv4er7ogSz2qpKgzbOUWIozEg21mIuKEwHjaHz4QgMAAA== DLP-Filter: Pass X-MTR: 20000000000000000@CPGS X-CFilter-Loop: Reflected X-Barracuda-Connect: mailout1.samsung.com[203.254.224.24] X-Barracuda-Start-Time: 1405673479 X-Barracuda-Encrypted: RC4-MD5 X-Barracuda-URL: http://192.48.176.25:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 > On Tue, 8 Jul 2014 16:02:28 +0200 (CEST), Luk=C3=A1=C5=A1 Czerner = wrote: > Non-text part: MULTIPART/MIXED > > On Tue, 8 Jul 2014, Namjae Jeon wrote: > > > > > Date: Tue, 08 Jul 2014 21:00:02 +0900 > > > From: Namjae Jeon > > > To: Dave Chinner , Theodore Ts'o = > > > Cc: linux-ext4 , = linux-fsdevel@vger.kernel.org, > > > linux-kernel@vger.kernel.org, Luk=C3=A1=C5=A1 Czerner = , > > > Brian Foster , Christoph Hellwig = , > > > Ashish Sangwan , xfs@oss.sgi.com > > > Subject: [PATCH 3/3] ext4: Add support IOC_MOV_DATA ioctl > > > > > > This patch implements fs ioctl's IOC_MOV_DATA for Ext4. > > > > Hmm isn't this basically what ext4_move_extents() does ? eg. > > EXT4_IOC_MOVE_EXT ? > > > > I guess that the intention here is to do the move, without actually > > moving the data right ? But nevertheless maybe some code can be > > shared with ext4_move_extents() ? > It definitely can be shared, because it has specific case for = unwritten > data see move_extent_per_page(). If I understand correctly, mov_extent_per_page calls = mext_replace_branches to _replace_ extents from 1 inode to other inode. Please correct me if I am = wrong. ioc_mov_data will not replace extents, but it will actually _move_ = extents into hole from donor to receiver, leaving a hole at the place from where = extents are moved. Could you elaborate more how it can be shared for unwritten data case ? > But I think we can observe another way to unify this two things. > An idea inspired by the fact that ioc_move_data works only for > regular inodes, where orig_offset =3D=3D donor_offset.=20 Could you elaborate this point?=20 > This is showstopper > for my utility e4defrag2 ( new version of e4defrag which is able = defragment > pack small files as described here : > http://lists.openwall.net/linux-ext4/2014/04/28/3) >=20 > Proposed API is very similar to ext4_ext_migrate: > Args: > orig_file: inode which we want to defragment > donor_file: a file which will be used as a donor of blocks > 1) fallocate big donor_file > 2) a) Create tmp inode wich nlink =3D 0 > b) move extents required extents from donor to tmp_donor_inode > c) return file descriptor (tmp_fd) to that tmp_donor_inode > 4) Mark orig_file's inode with EXT4_STATE_EXT_MIGRATE state > 5) Copy data from orig_file to tmp_fd > 6) IOC_SWAP_EX: atomically swap orig_file->i_data and tmp_fd->i_data > if EXT4_STATE_EXT_MIGRATE was not cleared. >=20 > This approach can works not only for regular file w/o journaling > enabled, but also for journaled ones, and directories. >=20 >=20 >=20 >=20 > > > > -Lukas > > From rjevskiy@gmail.com Fri Jul 18 05:38:22 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=FREEMAIL_FROM,T_DKIM_INVALID autolearn=ham version=3.3.1 X-Original-To: xfs@oss.sgi.com Delivered-To: xfs@oss.sgi.com Received: from relay.sgi.com (relay2.corp.sgi.com [137.38.102.29]) by oss.sgi.com (Postfix) with ESMTP id 881377F7D for ; Fri, 18 Jul 2014 05:38:22 -0500 (CDT) Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by relay2.corp.sgi.com (Postfix) with ESMTP id 65A1130404E for ; Fri, 18 Jul 2014 03:38:19 -0700 (PDT) X-ASG-Debug-ID: 1405679895-04cb6c03512aeb0001-NocioJ Received: from mail-la0-f46.google.com (mail-la0-f46.google.com [209.85.215.46]) by cuda.sgi.com with ESMTP id J9f14jDMw5GSXIxp (version=TLSv1 cipher=RC4-SHA bits=128 verify=NO) for ; Fri, 18 Jul 2014 03:38:16 -0700 (PDT) X-Barracuda-Envelope-From: rjevskiy@gmail.com X-Barracuda-Apparent-Source-IP: 209.85.215.46 X-Barracuda-IPDD: Level1 [gmail.com/209.85.215.46] Received: by mail-la0-f46.google.com with SMTP id b8so2699597lan.19 for ; Fri, 18 Jul 2014 03:38:14 -0700 (PDT) X-Barracuda-IPDD: Level1 [gmail.com/209.85.215.46] X-Barracuda-IPDD: Level1 [gmail.com/209.85.215.46] DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=sender:from:to:cc:subject:in-reply-to:references:user-agent:date :message-id:mime-version:content-type:content-transfer-encoding; bh=guFA6SYiEyq39rRxLslRmbZF5JnAvamJsBCHSRjg7MY=; b=JpZonRlEDlnUm+mvN1kg3f7YHNiZ9ol4VUOS0iXrn/8HWkrKAFfWgXWZlEYF5kSlrR muyo3wyTg+2i2RiGUV4TMExuDhATD+kKL4GrZG0xIBzHh8oXxfKAebor9IpdTjoVgQdv 53SKQ2ACUolzNZVBH859YPxeyrXk3T0IUnHoNdBdzlC9fpHmMN6bk50/KnueFVfu21t5 SHIQfc37cDAfvXWhkBI5K6N7FF+LlhLeythNcrkRnDm8R/LWUsAoOVsugWqWjKAD7Aa8 SBFaGzfWzyDClWJG0tXNT5hHrFoBL0Y9+dLPZTFWa9HXtgHop5Sx2ss3k8RlAxxDEWfb Q8EA== X-Received: by 10.112.155.129 with SMTP id vw1mr3738700lbb.7.1405679894760; Fri, 18 Jul 2014 03:38:14 -0700 (PDT) Received: from smtp.gmail.com (swsoft-msk-nat.sw.ru. [195.214.232.10]) by mx.google.com with ESMTPSA id kw10sm4139724lac.24.2014.07.18.03.38.13 for (version=TLSv1.2 cipher=RC4-SHA bits=128/128); Fri, 18 Jul 2014 03:38:13 -0700 (PDT) Sender: Dmitry Monakhov From: Dmitry Monakhov To: Namjae Jeon Cc: 'Dave Chinner' , 'Theodore Ts'o' , 'linux-ext4' , linux-fsdevel@vger.kernel.org, linux-kernel@vger.kernel.org, 'Brian Foster' , 'Christoph Hellwig' , 'Ashish Sangwan' , xfs@oss.sgi.com, =?utf-8?B?J0x1a8OhxaE=?= Czerner' Subject: RE: [PATCH 3/3] ext4: Add support IOC_MOV_DATA ioctl In-Reply-To: <002901cfa265$636d2e50$2a478af0$@samsung.com> X-ASG-Orig-Subj: RE: [PATCH 3/3] ext4: Add support IOC_MOV_DATA ioctl References: <004001cf9aa4$2670e280$7352a780$@samsung.com> <87tx6ktiay.fsf@openvz.org> <002901cfa265$636d2e50$2a478af0$@samsung.com> User-Agent: Notmuch/0.6.1 (http://notmuchmail.org) Emacs/23.3.1 (x86_64-redhat-linux-gnu) Date: Fri, 18 Jul 2014 14:38:12 +0400 Message-ID: <87zjg7ar57.fsf@openvz.org> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-Barracuda-Connect: mail-la0-f46.google.com[209.85.215.46] X-Barracuda-Start-Time: 1405679896 X-Barracuda-Encrypted: RC4-SHA X-Barracuda-URL: http://192.48.176.15:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 X-Barracuda-Spam-Score: 0.00 X-Barracuda-Spam-Status: No, SCORE=0.00 using per-user scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.7 tests=DKIM_SIGNED, DKIM_VERIFIED X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.7600 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- -0.00 DKIM_VERIFIED Domain Keys Identified Mail: signature passes verification 0.00 DKIM_SIGNED Domain Keys Identified Mail: message has a signature On Fri, 18 Jul 2014 17:50:55 +0900, Namjae Jeon w= rote: > > On Tue, 8 Jul 2014 16:02:28 +0200 (CEST), Luk=C3=A1=C5=A1 Czerner wrote: > > Non-text part: MULTIPART/MIXED > > > On Tue, 8 Jul 2014, Namjae Jeon wrote: > > > > > > > Date: Tue, 08 Jul 2014 21:00:02 +0900 > > > > From: Namjae Jeon > > > > To: Dave Chinner , Theodore Ts'o > > > > Cc: linux-ext4 , linux-fsdevel@vger.ker= nel.org, > > > > linux-kernel@vger.kernel.org, Luk=C3=A1=C5=A1 Czerner , > > > > Brian Foster , Christoph Hellwig , > > > > Ashish Sangwan , xfs@oss.sgi.com > > > > Subject: [PATCH 3/3] ext4: Add support IOC_MOV_DATA ioctl > > > > > > > > This patch implements fs ioctl's IOC_MOV_DATA for Ext4. > > > > > > Hmm isn't this basically what ext4_move_extents() does ? eg. > > > EXT4_IOC_MOVE_EXT ? > > > > > > I guess that the intention here is to do the move, without actually > > > moving the data right ? But nevertheless maybe some code can be > > > shared with ext4_move_extents() ? > > It definitely can be shared, because it has specific case for unwritten > > data see move_extent_per_page(). > If I understand correctly, mov_extent_per_page calls mext_replace_branche= s to > _replace_ extents from 1 inode to other inode. Please correct me if I > > > am wrong. You are right. > ioc_mov_data will not replace extents, but it will actually _move_ extent= s into > hole from donor to receiver, leaving a hole at the place from where exten= ts are > moved. So we can refer ext4_move_extents as SWAP, and ioc_mov_data as ASSING. And both tasks looks very similar, except the way how holes are interpreted. I think it is reasonable to allow ext4_move_extents() to interpret holes similar to ioc_mov_data.=20 > Could you elaborate more how it can be shared for unwritten data case ? If we found unwritten extent we do not have to copy data, just swap to extents between inodes. >=20 > > But I think we can observe another way to unify this two things. > > An idea inspired by the fact that ioc_move_data works only for > > regular inodes, where orig_offset =3D=3D donor_offset.=20 > Could you elaborate this point? At this moment offset for both inodes should be equal. This is pure artificial restriction. At this moment I'm working on patch which remove this restriction.=20 >=20 > > This is showstopper > > for my utility e4defrag2 ( new version of e4defrag which is able defra= gment > > pack small files as described here : > > http://lists.openwall.net/linux-ext4/2014/04/28/3) > >=20 > > Proposed API is very similar to ext4_ext_migrate: > > Args: > > orig_file: inode which we want to defragment > > donor_file: a file which will be used as a donor of blocks > > 1) fallocate big donor_file > > 2) a) Create tmp inode wich nlink =3D 0 > > b) move extents required extents from donor to tmp_donor_inode > > c) return file descriptor (tmp_fd) to that tmp_donor_inode > > 4) Mark orig_file's inode with EXT4_STATE_EXT_MIGRATE state > > 5) Copy data from orig_file to tmp_fd > > 6) IOC_SWAP_EX: atomically swap orig_file->i_data and tmp_fd->i_data > > if EXT4_STATE_EXT_MIGRATE was not cleared. > >=20 > > This approach can works not only for regular file w/o journaling > > enabled, but also for journaled ones, and directories. > >=20 > >=20 > >=20 > >=20 > > > > > > -Lukas > > > >=20 From service50@powersqve.com Fri Jul 18 12:08:31 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: *** X-Spam-Status: No, score=3.7 required=5.0 tests=AXB_XMAILER_MIMEOLE_OL_E023A, FAKE_REPLY_C,HTML_MESSAGE,T_DKIM_INVALID autolearn=no version=3.3.1 X-Original-To: xfs@oss.sgi.com Delivered-To: xfs@oss.sgi.com Received: from relay.sgi.com (relay2.corp.sgi.com [137.38.102.29]) by oss.sgi.com (Postfix) with ESMTP id 9C84B7F7D for ; Fri, 18 Jul 2014 12:08:31 -0500 (CDT) Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by relay2.corp.sgi.com (Postfix) with ESMTP id 6D8C8304043 for ; Fri, 18 Jul 2014 10:08:27 -0700 (PDT) X-ASG-Debug-ID: 1405703303-04bdf0681240470001-NocioJ Received: from mail.powersqve.com ([199.114.245.219]) by cuda.sgi.com with ESMTP id nu0E5bchzHeQElqu for ; Fri, 18 Jul 2014 10:08:23 -0700 (PDT) X-Barracuda-Envelope-From: service50@powersqve.com X-Barracuda-Apparent-Source-IP: 199.114.245.219 X-DKIM: Sendmail DKIM Filter v2.8.3 mail.powersqve.com 63053C38AF DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=powersqve.com; s=powersqve; t=1405732403; bh=/HGsfQvl1ujSD41FmcRpKQCmKYfcjyi+DmfInfPX9bo=; h=Reply-To:Message-ID:From:To:Subject:Date:MIME-Version: Content-Type; b=TbcC+khH7kjVQm8f+A8qs9H9ZSSYUW1fecucYgboyo4MsLWxgF9ZN/jmZgZRb6kOv 2RIOo9mTKPDwyJHtGbCvEqHboKfiLpDCGxpQcYil4b5GuetJFcMobcCMOfkSLBuTvv xeUGd0oWHAwMJ0+A+VqHhqM5IX/ywQlAj+dPP+mM= Reply-To: Message-ID: <626BF802263BC8388A4A634F60581CEA@gatcpvp> From: "Sunny" To: Subject: Re: enquiry Date: Sat, 19 Jul 2014 01:07:58 +0800 X-ASG-Orig-Subj: Re: enquiry MIME-Version: 1.0 Content-Type: multipart/alternative; boundary="----=_NextPart_000_08BC_0165096A.113310A0" X-Priority: 3 X-MSMail-Priority: Normal X-Mailer: Microsoft Outlook Express 6.00.2900.5512 X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2900.5512 X-Barracuda-Connect: UNKNOWN[199.114.245.219] X-Barracuda-Start-Time: 1405703303 X-Barracuda-URL: http://192.48.157.11:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 X-Barracuda-Spam-Score: 0.60 X-Barracuda-Spam-Status: No, SCORE=0.60 using per-user scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.7 tests=BSF_SC5_MJ1963, DKIM_SIGNED, DKIM_VERIFIED, HTML_MESSAGE, RDNS_NONE X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.7607 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- -0.00 DKIM_VERIFIED Domain Keys Identified Mail: signature passes verification 0.00 DKIM_SIGNED Domain Keys Identified Mail: message has a signature 0.00 HTML_MESSAGE BODY: HTML included in message 0.10 RDNS_NONE Delivered to trusted network by a host with no rDNS 0.50 BSF_SC5_MJ1963 Custom Rule MJ1963 This is a multi-part message in MIME format. ------=_NextPart_000_08BC_0165096A.113310A0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 RGVhciAsDQp3ZSdyZSBwcm9mZXNzaW9uYWwgaW4gbWFudWZhY3R1cmluZyBpbm5vdmF0aXZlIGNv bnN1bWVyIGVsZWN0cm9uaWNzIGRldmljZXMsaGVyZWJ5IHdvdWxkIGxpa2UgdG8gcmVjb21tZW5k IG91ciBiZWxvdyBuZXcgZGVzaWducyBmb3IgeW91ciBtYXJrZXQuDQoxLiBGcmVlIExpbmsgVVNC IGNhYmxlOiBob2xsb3cgZGVzaWduDQogIA0KMi4gRnJlZSBMaW5rIFVTQiBjYWJsZTogcm9ib3Qg c2hhcGUNCiANCjMubXVsdGlmdW5jdGlvbmFsIFVTQiBzdG9yYWdlDQogDQpBcnR3b3JrOiAgIFpp bmMtYWxsb3kgc2hlbGwgd2l0aCBwb2xpc2hpbmcgZmluaXNoLCB3aXRoIGEgZ3JlYXQgaGFuZCBm ZWVsDQo0LlBvd2VyIGJhbmsgaW4gcGFnZSBzaGFwZQ0KIA0KNS5Qb3dlciBiYW5rIHdpdGggYSBz bWFsbCBjYWJsZQ0KUGxlYXNlIGNoZWNrIHRoZSBhdHRhY2htZW50IGZvciBhbGwgdGhlIGRldGFp bHMuIA0KV2VsY29tZSB0byBjb250YWN0IG1lIElmIHlvdSBuZWVkIG91ciBwcm9kdWNlcy4gDQog DQpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fDQpCZXN0IFJlZ2FyZHMs DQpWaXZpYW4gDQoNCkdvbGRlbmNvbm4gIEVsZWN0cm9uaWNzICBUZWNobm9sb2d5IChTdXpob3Up ICBDby4sTHRkDQpBZGRyZXNzOk5vLjc3NyBYaXVIdSBXZXN0IFJvYWQsRWNvbm9taWMgRGV2ZWxv cG1lbnQgWm9uZSxXdWppYW5nICxTdXpob3UsSmlhbmdzdSxDaGluYS4NCg0KVGVs77yaKzg2LTUx Mi02MzQ2NjIwMSAgICAgICAgICAgICAgICBwb3N0YWxjb2Rl77yaMjE1MjAwDQoNCkZheO+8mis4 Ni01MTItNjM0NjU5MTcgICAgICAgICAgICAgICAgTULvvJorODYtMTMwNTc0NjI1NjUNCg0KRS1t YWlsOiBtYXJrZXQ2QGdvbGRlbmNvbm4uY29tDQoNCnNreXBlOiB2aXZpYW4ubGV1 ------=_NextPart_000_08BC_0165096A.113310A0 Content-Type: text/html; charset="utf-8" Content-Transfer-Encoding: base64 PCFET0NUWVBFIEhUTUwgUFVCTElDICItLy9XM0MvL0RURCBIVE1MIDQuMCBUcmFuc2l0aW9uYWwv L0VOIj4NCjxIVE1MIHhtbG5zOm8geG1sbnM6byA9ICJ1cm46c2NoZW1hcy1taWNyb3NvZnQtY29t Om9mZmljZTpvZmZpY2UiIHhtbG5zOnYgPSANCiJ1cm46c2NoZW1hcy1taWNyb3NvZnQtY29tOnZt bCI+PEhFQUQ+DQo8TUVUQSBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9dXRmLTgiIGh0dHAt ZXF1aXY9Q29udGVudC1UeXBlPg0KPE1FVEEgbmFtZT1HRU5FUkFUT1IgY29udGVudD0iTVNIVE1M IDguMDAuNjAwMS4yMzUzNiI+PC9IRUFEPg0KPEJPRFk+DQo8UD48Rk9OVCBjb2xvcj1ibHVlPkRl YXIgLDwvRk9OVD48L1A+DQo8UD48Rk9OVCBjb2xvcj1ibHVlPndlJ3JlIHByb2Zlc3Npb25hbCBp biBtYW51ZmFjdHVyaW5nIGlubm92YXRpdmUgY29uc3VtZXIgDQplbGVjdHJvbmljcyBkZXZpY2Vz LGhlcmVieSB3b3VsZCBsaWtlIHRvIHJlY29tbWVuZCBvdXIgYmVsb3cgbmV3IGRlc2lnbnMgZm9y IA0KeW91ciBtYXJrZXQuPC9GT05UPjwvUD4NCjxQPjxGT05UIGNvbG9yPWJsdWU+MS4gRnJlZSBM aW5rIFVTQiBjYWJsZTogaG9sbG93IGRlc2lnbjxCUj4mbmJzcDsgPEJSPjIuIEZyZWUgDQpMaW5r IFVTQiBjYWJsZTogcm9ib3Qgc2hhcGU8QlI+Jm5ic3A7PEJSPjMubXVsdGlmdW5jdGlvbmFsIFVT QiANCnN0b3JhZ2U8QlI+Jm5ic3A7PEJSPkFydHdvcms6Jm5ic3A7Jm5ic3A7IFppbmMtYWxsb3kg c2hlbGwgd2l0aCBwb2xpc2hpbmcgDQpmaW5pc2gsIHdpdGggYSBncmVhdCBoYW5kIGZlZWw8L0ZP TlQ+PC9QPg0KPFA+PEZPTlQgY29sb3I9Ymx1ZT40LlBvd2VyIGJhbmsgaW4gcGFnZSBzaGFwZTxC Uj4mbmJzcDs8QlI+NS5Qb3dlciBiYW5rIHdpdGggYSANCnNtYWxsIGNhYmxlPC9GT05UPjwvUD4N CjxQPjxGT05UIGNvbG9yPWJsdWU+UGxlYXNlIGNoZWNrIHRoZSBhdHRhY2htZW50IGZvciBhbGwg dGhlIGRldGFpbHMuIDwvRk9OVD48L1A+DQo8UD48Rk9OVCBjb2xvcj1ibHVlPldlbGNvbWUgdG8g Y29udGFjdCBtZSBJZiB5b3UgbmVlZCBvdXIgcHJvZHVjZXMuIA0KPEJSPiZuYnNwOzxCUj5fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fPC9GT05UPjwvUD48Rk9OVCANCmNv bG9yPWJsdWU+DQo8UCBzdHlsZT0iVEVYVC1BTElHTjoganVzdGlmeTsgTUFSR0lOLVRPUDogMHB0 OyBNQVJHSU4tQk9UVE9NOiAwcHQiIA0KY2xhc3M9cDE1PjxGT05UIGZhY2U9IlRpbWVzIE5ldyBS b21hbiI+PEZPTlQgc2l6ZT0zPjxTUEFOIA0Kc3R5bGU9IkZPTlQtRkFNSUxZOiAn5a6L5L2TJzsg Rk9OVC1TSVpFOiAxMC41cHQ7IG1zby1zcGFjZXJ1bjogJ3llcyciPkJlc3QmbmJzcDtSZWdhcmRz LDwvU1BBTj48U1BBTiANCnN0eWxlPSJGT05ULUZBTUlMWTogJ+Wui+S9kyc7IEZPTlQtU0laRTog MTAuNXB0OyBtc28tc3BhY2VydW46ICd5ZXMnIj48bzpwPjwvbzpwPjwvU1BBTj48L0ZPTlQ+PC9G T05UPjwvUD4NCjxQIHN0eWxlPSJURVhULUFMSUdOOiBqdXN0aWZ5OyBNQVJHSU4tVE9QOiAwcHQ7 IE1BUkdJTi1CT1RUT006IDBwdCIgDQpjbGFzcz1wMTU+PEZPTlQgZmFjZT0iVGltZXMgTmV3IFJv bWFuIj48Rk9OVCBzaXplPTM+PFNQQU4gDQpzdHlsZT0iRk9OVC1GQU1JTFk6ICflrovkvZMnOyBG T05ULVNJWkU6IDEwLjVwdDsgbXNvLXNwYWNlcnVuOiAneWVzJyI+Vml2aWFuJm5ic3A7PC9TUEFO PjxTUEFOIA0Kc3R5bGU9IkZPTlQtRkFNSUxZOiAn5a6L5L2TJzsgRk9OVC1TSVpFOiAxMC41cHQ7 IG1zby1zcGFjZXJ1bjogJ3llcyciPjxvOnA+PC9vOnA+PC9TUEFOPjwvRk9OVD48L0ZPTlQ+PC9Q Pg0KPFAgc3R5bGU9IlRFWFQtQUxJR046IGp1c3RpZnk7IE1BUkdJTi1UT1A6IDBwdDsgTUFSR0lO LUJPVFRPTTogMHB0IiANCmNsYXNzPXAxNT48Rk9OVCBmYWNlPSJUaW1lcyBOZXcgUm9tYW4iPjxG T05UIHNpemU9Mz48U1BBTiANCnN0eWxlPSJGT05ULUZBTUlMWTogJ+Wui+S9kyc7IEZPTlQtU0la RTogMTAuNXB0OyBtc28tc3BhY2VydW46ICd5ZXMnIj48L1NQQU4+PC9GT05UPjwvRk9OVD4mbmJz cDs8L1A+DQo8UCBzdHlsZT0iVEVYVC1BTElHTjoganVzdGlmeTsgTUFSR0lOLVRPUDogMHB0OyBN QVJHSU4tQk9UVE9NOiAwcHQiIA0KY2xhc3M9cDE1PjxGT05UIGZhY2U9IlRpbWVzIE5ldyBSb21h biI+PEZPTlQgc2l6ZT0zPjxTUEFOIA0Kc3R5bGU9IkZPTlQtRkFNSUxZOiAn5a6L5L2TJzsgRk9O VC1TSVpFOiAxMC41cHQ7IG1zby1zcGFjZXJ1bjogJ3llcyciPkdvbGRlbmNvbm4mbmJzcDsmbmJz cDtFbGVjdHJvbmljcyZuYnNwOyZuYnNwO1RlY2hub2xvZ3kmbmJzcDsoU3V6aG91KSZuYnNwOyZu YnNwO0NvLixMdGQ8L1NQQU4+PFNQQU4gDQpzdHlsZT0iRk9OVC1GQU1JTFk6ICflrovkvZMnOyBG T05ULVNJWkU6IDEwLjVwdDsgbXNvLXNwYWNlcnVuOiAneWVzJyI+PG86cD48L286cD48L1NQQU4+ PC9GT05UPjwvRk9OVD48L1A+DQo8UCBzdHlsZT0iVEVYVC1BTElHTjoganVzdGlmeTsgTUFSR0lO LVRPUDogMHB0OyBNQVJHSU4tQk9UVE9NOiAwcHQiIA0KY2xhc3M9cDE1PjxGT05UIGZhY2U9IlRp bWVzIE5ldyBSb21hbiI+PEZPTlQgc2l6ZT0zPjxTUEFOIA0Kc3R5bGU9IkZPTlQtRkFNSUxZOiAn 5a6L5L2TJzsgRk9OVC1TSVpFOiAxMC41cHQ7IG1zby1zcGFjZXJ1bjogJ3llcyciPkFkZHJlc3M6 Tm8uNzc3PC9TUEFOPjxTUEFOIA0Kc3R5bGU9IkZPTlQtRkFNSUxZOiAn5a6L5L2TJzsgRk9OVC1T SVpFOiAxMC41cHQ7IG1zby1zcGFjZXJ1bjogJ3llcyciPiZuYnNwOzwvU1BBTj48U1BBTiANCnN0 eWxlPSJGT05ULUZBTUlMWTogJ+Wui+S9kyc7IEZPTlQtU0laRTogMTAuNXB0OyBtc28tc3BhY2Vy dW46ICd5ZXMnIj5YaXVIdSZuYnNwO1dlc3QmbmJzcDtSb2FkLEVjb25vbWljJm5ic3A7RGV2ZWxv cG1lbnQmbmJzcDtab25lLFd1amlhbmcmbmJzcDssU3V6aG91LEppYW5nc3UsQ2hpbmEuPC9TUEFO PjxTUEFOIA0Kc3R5bGU9IkZPTlQtRkFNSUxZOiAn5a6L5L2TJzsgRk9OVC1TSVpFOiAxMC41cHQ7 IG1zby1zcGFjZXJ1bjogJ3llcyciPjxvOnA+PC9vOnA+PC9TUEFOPjwvRk9OVD48L0ZPTlQ+PC9Q Pg0KPFAgc3R5bGU9IlRFWFQtQUxJR046IGp1c3RpZnk7IE1BUkdJTi1UT1A6IDBwdDsgTUFSR0lO LUJPVFRPTTogMHB0IiANCmNsYXNzPXAxNT48Rk9OVCBmYWNlPSJUaW1lcyBOZXcgUm9tYW4iPjxG T05UIHNpemU9Mz48U1BBTiANCnN0eWxlPSJGT05ULUZBTUlMWTogJ+Wui+S9kyc7IEZPTlQtU0la RTogMTAuNXB0OyBtc28tc3BhY2VydW46ICd5ZXMnIj48L1NQQU4+PC9GT05UPjwvRk9OVD4mbmJz cDs8L1A+DQo8UCBzdHlsZT0iVEVYVC1BTElHTjoganVzdGlmeTsgTUFSR0lOLVRPUDogMHB0OyBN QVJHSU4tQk9UVE9NOiAwcHQiIA0KY2xhc3M9cDE1PjxGT05UIGZhY2U9IlRpbWVzIE5ldyBSb21h biI+PEZPTlQgc2l6ZT0zPjxTUEFOIA0Kc3R5bGU9IkZPTlQtRkFNSUxZOiAn5a6L5L2TJzsgRk9O VC1TSVpFOiAxMC41cHQ7IG1zby1zcGFjZXJ1bjogJ3llcyciPlRlbO+8mis4Ni01MTItNjM0NjYy MDEmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsm bmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtwb3N0YWxjb2Rl77yaMjE1 MjAwPC9TUEFOPjxTUEFOIA0Kc3R5bGU9IkZPTlQtRkFNSUxZOiAn5a6L5L2TJzsgRk9OVC1TSVpF OiAxMC41cHQ7IG1zby1zcGFjZXJ1bjogJ3llcyciPjxvOnA+PC9vOnA+PC9TUEFOPjwvRk9OVD48 L0ZPTlQ+PC9QPg0KPFAgc3R5bGU9IlRFWFQtQUxJR046IGp1c3RpZnk7IE1BUkdJTi1UT1A6IDBw dDsgTUFSR0lOLUJPVFRPTTogMHB0IiANCmNsYXNzPXAxNT48Rk9OVCBmYWNlPSJUaW1lcyBOZXcg Um9tYW4iPjxGT05UIHNpemU9Mz48U1BBTiANCnN0eWxlPSJGT05ULUZBTUlMWTogJ+Wui+S9kyc7 IEZPTlQtU0laRTogMTAuNXB0OyBtc28tc3BhY2VydW46ICd5ZXMnIj48L1NQQU4+PC9GT05UPjwv Rk9OVD4mbmJzcDs8L1A+DQo8UCBzdHlsZT0iVEVYVC1BTElHTjoganVzdGlmeTsgTUFSR0lOLVRP UDogMHB0OyBNQVJHSU4tQk9UVE9NOiAwcHQiIA0KY2xhc3M9cDE1PjxGT05UIGZhY2U9IlRpbWVz IE5ldyBSb21hbiI+PEZPTlQgc2l6ZT0zPjxTUEFOIA0Kc3R5bGU9IkZPTlQtRkFNSUxZOiAn5a6L 5L2TJzsgRk9OVC1TSVpFOiAxMC41cHQ7IG1zby1zcGFjZXJ1bjogJ3llcyciPkZheO+8mis4Ni01 MTItNjM0NjU5MTcmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJz cDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDtNQu+8mis4 Ni0xMzA1NzQ2MjU2NTwvU1BBTj48U1BBTiANCnN0eWxlPSJGT05ULUZBTUlMWTogJ+Wui+S9kyc7 IEZPTlQtU0laRTogMTAuNXB0OyBtc28tc3BhY2VydW46ICd5ZXMnIj48bzpwPjwvbzpwPjwvU1BB Tj48L0ZPTlQ+PC9GT05UPjwvUD4NCjxQIHN0eWxlPSJURVhULUFMSUdOOiBqdXN0aWZ5OyBNQVJH SU4tVE9QOiAwcHQ7IE1BUkdJTi1CT1RUT006IDBwdCIgDQpjbGFzcz1wMTU+PEZPTlQgZmFjZT0i VGltZXMgTmV3IFJvbWFuIj48Rk9OVCBzaXplPTM+PFNQQU4gDQpzdHlsZT0iRk9OVC1GQU1JTFk6 ICflrovkvZMnOyBGT05ULVNJWkU6IDEwLjVwdDsgbXNvLXNwYWNlcnVuOiAneWVzJyI+PC9TUEFO PjwvRk9OVD48L0ZPTlQ+Jm5ic3A7PC9QPg0KPFAgc3R5bGU9IlRFWFQtQUxJR046IGp1c3RpZnk7 IE1BUkdJTi1UT1A6IDBwdDsgTUFSR0lOLUJPVFRPTTogMHB0IiANCmNsYXNzPXAxNT48Rk9OVCBm YWNlPSJUaW1lcyBOZXcgUm9tYW4iPjxGT05UIHNpemU9Mz48U1BBTiANCnN0eWxlPSJGT05ULUZB TUlMWTogJ+Wui+S9kyc7IEZPTlQtU0laRTogMTAuNXB0OyBtc28tc3BhY2VydW46ICd5ZXMnIj5F LW1haWw6Jm5ic3A7PEEgDQpocmVmPSJtYWlsdG86bWFya2V0NkBnb2xkZW5jb25uLmNvbSI+bWFy a2V0NkBnb2xkZW5jb25uLmNvbTwvQT48L1NQQU4+PFNQQU4gDQpzdHlsZT0iRk9OVC1GQU1JTFk6 ICflrovkvZMnOyBGT05ULVNJWkU6IDEwLjVwdDsgbXNvLXNwYWNlcnVuOiAneWVzJyI+PG86cD48 L286cD48L1NQQU4+PC9GT05UPjwvRk9OVD48L1A+DQo8UCBzdHlsZT0iTUFSR0lOLVRPUDogMHB0 OyBNQVJHSU4tQk9UVE9NOiAwcHQiIGNsYXNzPXAwPjxTUEFOIA0Kc3R5bGU9IkZPTlQtRkFNSUxZ OiAn5a6L5L2TJzsgRk9OVC1TSVpFOiAxMC41cHQ7IG1zby1zcGFjZXJ1bjogJ3llcyciPjxGT05U IHNpemU9MyANCmZhY2U9IlRpbWVzIE5ldyBSb21hbiI+PC9GT05UPjwvU1BBTj4mbmJzcDs8L1A+ DQo8UCBzdHlsZT0iTUFSR0lOLVRPUDogMHB0OyBNQVJHSU4tQk9UVE9NOiAwcHQiIGNsYXNzPXAw PjxTUEFOIA0Kc3R5bGU9IkZPTlQtRkFNSUxZOiAn5a6L5L2TJzsgRk9OVC1TSVpFOiAxMC41cHQ7 IG1zby1zcGFjZXJ1bjogJ3llcyciPjxGT05UIHNpemU9MyANCmZhY2U9IlRpbWVzIE5ldyBSb21h biI+c2t5cGU6Jm5ic3A7dml2aWFuLmxldTwvRk9OVD48L1NQQU4+PC9QPjwhLS1FbmRGcmFnbWVu dC0tPjwvRk9OVD48L0JPRFk+PC9IVE1MPg0K ------=_NextPart_000_08BC_0165096A.113310A0-- From thuln.xdhkmn@vinapco.com.vn Fri Jul 18 13:54:43 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: ** X-Spam-Status: No, score=2.2 required=5.0 tests=HTML_MESSAGE, HTML_MIME_NO_HTML_TAG,MIME_HTML_ONLY autolearn=no version=3.3.1 X-Original-To: xfs@oss.sgi.com Delivered-To: xfs@oss.sgi.com Received: from relay.sgi.com (relay2.corp.sgi.com [137.38.102.29]) by oss.sgi.com (Postfix) with ESMTP id 604367F7B for ; Fri, 18 Jul 2014 13:54:43 -0500 (CDT) Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by relay2.corp.sgi.com (Postfix) with ESMTP id AF9C7304064 for ; Fri, 18 Jul 2014 11:54:42 -0700 (PDT) X-ASG-Debug-ID: 1405709674-04cb6c034e43070001-NocioJ Received: from MAIL2.vinapco.com.vn (mail.vinapco.com.vn [203.128.244.70]) by cuda.sgi.com with ESMTP id RwUAk6oFQ7zKheAn; Fri, 18 Jul 2014 11:54:35 -0700 (PDT) X-Barracuda-Envelope-From: thuln.xdhkmn@vinapco.com.vn X-Barracuda-Apparent-Source-IP: 203.128.244.70 Received: from vinapco.com.vn (85.117.10.236) by MAIL2.vinapco.com.vn (192.54.176.6) with Microsoft SMTP Server id 8.1.436.0; Sat, 19 Jul 2014 01:54:33 +0700 Message-ID: <94EAE949.9CACC12D@vinapco.com.vn> Date: Fri, 18 Jul 2014 20:54:28 +0200 From: =?UTF-8?B?WGVndHJxeQ==?= User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.8.0.10) Gecko/20070403 Thunderbird/1.5.0.10 MIME-Version: 1.0 To: , , , , , , , , , , , , , , , , , , , , , , , , Subject: =?UTF-8?B?U2hvdyBvZmYgeW91ciB3ZWFsdGggb24geW91ciB3cmlzdCA=?= Content-Type: text/html; charset="UTF-8" X-ASG-Orig-Subj: =?UTF-8?B?U2hvdyBvZmYgeW91ciB3ZWFsdGggb24geW91ciB3cmlzdCA=?= Content-Transfer-Encoding: 7bit X-Barracuda-Connect: mail.vinapco.com.vn[203.128.244.70] X-Barracuda-Start-Time: 1405709675 X-Barracuda-URL: http://192.48.176.15:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 X-Barracuda-Spam-Score: 2.12 X-Barracuda-Spam-Status: No, SCORE=2.12 using per-user scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.7 tests=FROM_EXCESS_BASE64, FROM_EXCESS_BASE64_2, HTML_MESSAGE, HTML_MIME_NO_HTML_TAG, MIME_HTML_ONLY X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.7609 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.00 MIME_HTML_ONLY BODY: Message only has text/html MIME parts 0.00 HTML_MESSAGE BODY: HTML included in message 1.05 HTML_MIME_NO_HTML_TAG HTML-only message, but there is no HTML tag 0.01 FROM_EXCESS_BASE64 From: base64 encoded unnecessarily 1.05 FROM_EXCESS_BASE64_2 From: base64 encoded unnecessarily I just can't help buying and buying and buying at these fabulously low prices. Princess Mary, asking about his friend's last days. From iusty@k1024.org Fri Jul 18 14:07:38 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: xfs@oss.sgi.com Delivered-To: xfs@oss.sgi.com Received: from relay.sgi.com (relay2.corp.sgi.com [137.38.102.29]) by oss.sgi.com (Postfix) with ESMTP id 7C8E47F50 for ; Fri, 18 Jul 2014 14:07:38 -0500 (CDT) Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by relay2.corp.sgi.com (Postfix) with ESMTP id 5B46A304048 for ; Fri, 18 Jul 2014 12:07:38 -0700 (PDT) X-ASG-Debug-ID: 1405710452-04cbb064e645770001-NocioJ Received: from mail-wi0-f179.google.com (mail-wi0-f179.google.com [209.85.212.179]) by cuda.sgi.com with ESMTP id WBDjHUnIOzWVtCY9 (version=TLSv1 cipher=RC4-SHA bits=128 verify=NO) for ; Fri, 18 Jul 2014 12:07:33 -0700 (PDT) X-Barracuda-Envelope-From: iusty@k1024.org X-Barracuda-Apparent-Source-IP: 209.85.212.179 Received: by mail-wi0-f179.google.com with SMTP id f8so1332329wiw.12 for ; Fri, 18 Jul 2014 12:07:32 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:date:from:to:subject:message-id:mail-followup-to :references:mime-version:content-type:content-disposition :in-reply-to:user-agent; bh=ych7LFn92eZTowp1Cwguyd57E8yoDwtoGiGSrVTjyu4=; b=Sn5W1qkwrJ9/gEpyqcOv3008s8ZrQ1stIbc9yl9rusvVAL/5+nYOq2HOaHht8tzk50 C/wwGF6tmkFzwGNfcCYPncjau9nK9Lq2ua8xpBps8JOh3J2mmg8qU9lA4YXPwAPyfrYa 1Kj95WfqrCZaAHuW6VnVUy5PZt0ZlpC+9CtxULfzZLBjXSZRHearoNmJ4mR8KTVJpw0o d6FSaJxkFgav+vbHzdu8n7aLasmVE7l8DsE1x4q93stPJiPD3jJDZdkGcRZzx2w6TqSe GBlVRMbBFlDhVreAjATQy0cnxNR83uOapRBcjDpSd6+a9uLeAKV2yiK/aYaWZ6bOVI5f wdlA== X-Gm-Message-State: ALoCoQmFsJJCSEQou4IOZpwLHE/hw8f0bVS3UkvtZsB4drsBR/p8zrIcEvZykt0pzDrWkpRvBVOS X-Received: by 10.180.37.70 with SMTP id w6mr32605765wij.49.1405710452436; Fri, 18 Jul 2014 12:07:32 -0700 (PDT) Received: from teal.hq.k1024.org (178-83-234-80.dynamic.hispeed.ch. [178.83.234.80]) by mx.google.com with ESMTPSA id v14sm16212728wjw.38.2014.07.18.12.07.31 for (version=TLSv1 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Fri, 18 Jul 2014 12:07:31 -0700 (PDT) Received: by teal.hq.k1024.org (Postfix, from userid 4004) id E5E2F205477; Fri, 18 Jul 2014 21:07:30 +0200 (CEST) Date: Fri, 18 Jul 2014 21:07:30 +0200 From: Iustin Pop To: xfs@oss.sgi.com Subject: Re: xfsrestore -t and default location of housekeeping dir Message-ID: <20140718190730.GA27801@teal.hq.k1024.org> X-ASG-Orig-Subj: Re: xfsrestore -t and default location of housekeeping dir Mail-Followup-To: xfs@oss.sgi.com References: <20140714071935.GB29541@teal.hq.k1024.org> <20140717090550.GB27425@infradead.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20140717090550.GB27425@infradead.org> X-Linux: This message was written on Linux X-Header: /usr/include gives great headers User-Agent: Mutt/1.5.23 (2014-03-12) X-Barracuda-Connect: mail-wi0-f179.google.com[209.85.212.179] X-Barracuda-Start-Time: 1405710453 X-Barracuda-Encrypted: RC4-SHA X-Barracuda-URL: http://192.48.176.25:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 X-Barracuda-Spam-Score: 0.00 X-Barracuda-Spam-Status: No, SCORE=0.00 using per-user scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.7 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.7609 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- On Thu, Jul 17, 2014 at 02:05:50AM -0700, Christoph Hellwig wrote: > On Mon, Jul 14, 2014 at 09:19:35AM +0200, Iustin Pop wrote: > > Hi, > > > > While testing a just-made dump with via 'xfsrestore -t', I learned that > > the default housekeepingdir path is still under the original filesystem. > > My xfsrestore therefore failed, since that filesystem was read-only. > > > > Since '-t' should denote a pure no-op operation, with no changes, would > > it make more sense to default the housekeeping location to a temporary > > location if it is used? > > It seems to me like -t shouldn't recreate the files in the housekeeping > directory at all. I did take a brief look at the code and is a huge > mess that seems to recreate files unconditionally, so I don't really > have a good solution for this yet. Understood. Thanks! iustin From iusty@k1024.org Fri Jul 18 14:13:22 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: xfs@oss.sgi.com Delivered-To: xfs@oss.sgi.com Received: from relay.sgi.com (relay3.corp.sgi.com [198.149.34.15]) by oss.sgi.com (Postfix) with ESMTP id A170A7F6F for ; Fri, 18 Jul 2014 14:13:22 -0500 (CDT) Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by relay3.corp.sgi.com (Postfix) with ESMTP id 21C10AC001 for ; Fri, 18 Jul 2014 12:13:18 -0700 (PDT) X-ASG-Debug-ID: 1405710796-04cbb064e545cd0001-NocioJ Received: from mail-wg0-f45.google.com (mail-wg0-f45.google.com [74.125.82.45]) by cuda.sgi.com with ESMTP id HtYyvRkRz4Fro4SO (version=TLSv1 cipher=RC4-SHA bits=128 verify=NO) for ; Fri, 18 Jul 2014 12:13:17 -0700 (PDT) X-Barracuda-Envelope-From: iusty@k1024.org X-Barracuda-Apparent-Source-IP: 74.125.82.45 Received: by mail-wg0-f45.google.com with SMTP id x12so3967543wgg.16 for ; Fri, 18 Jul 2014 12:13:16 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:date:from:to:subject:message-id:mail-followup-to :references:mime-version:content-type:content-disposition :in-reply-to:user-agent; bh=FiYcgfyUTthQY86j6KOTagcsZMMkYHBIPreemydsPNc=; b=cCdQDUnvKO/wvbbg6fVCWqwxtRM5u0Fj9FhFho6ci15bqKqFaPo1GycwjUR9/GcJIE VaB8MF5Dlsq6UMA54lEJZvGSuPNAFgW0U7qoE3HN6Vm+WqGQNmT7mzwkyU88bj5ovnu7 v+0EsGuO7Ttl6vbE8O2cfB3t98irJNBGWAwq07rIhVkuz6X34Qd5VACfukdC5G33dgg9 5ONBm5KREDk2rvCWedtv/t+YTyfhFvYwAOM2MIhB8RRiEeA6hxO/yRcj+CYudWQDH4YF t7TIEi+alcVu1VgzpQVq1UuOQI6l48lctsEXDWjv6sQX7bNlPEuvNG/CdLrHlhLKEQxs VNzw== X-Gm-Message-State: ALoCoQl7wCrr+kkn/KGZMyIdHFRS6PN57mfuBkbL1whDdQJJCY0VJI3+woTr1+LGFC3SU6cq7Yjw X-Received: by 10.194.60.240 with SMTP id k16mr10274138wjr.0.1405710796233; Fri, 18 Jul 2014 12:13:16 -0700 (PDT) Received: from teal.hq.k1024.org (178-83-234-80.dynamic.hispeed.ch. [178.83.234.80]) by mx.google.com with ESMTPSA id o2sm9660602wij.24.2014.07.18.12.13.15 for (version=TLSv1 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Fri, 18 Jul 2014 12:13:15 -0700 (PDT) Received: by teal.hq.k1024.org (Postfix, from userid 4004) id DAEDB205477; Fri, 18 Jul 2014 21:13:14 +0200 (CEST) Date: Fri, 18 Jul 2014 21:13:14 +0200 From: Iustin Pop To: xfs@oss.sgi.com Subject: Re: Error setting extent size on a directory Message-ID: <20140718191314.GB27801@teal.hq.k1024.org> X-ASG-Orig-Subj: Re: Error setting extent size on a directory Mail-Followup-To: xfs@oss.sgi.com References: <20140714070913.GA29541@teal.hq.k1024.org> <20140717090450.GA27425@infradead.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20140717090450.GA27425@infradead.org> X-Linux: This message was written on Linux X-Header: /usr/include gives great headers User-Agent: Mutt/1.5.23 (2014-03-12) X-Barracuda-Connect: mail-wg0-f45.google.com[74.125.82.45] X-Barracuda-Start-Time: 1405710797 X-Barracuda-Encrypted: RC4-SHA X-Barracuda-URL: http://192.48.176.25:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 X-Barracuda-Spam-Score: 0.00 X-Barracuda-Spam-Status: No, SCORE=0.00 using per-user scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.7 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.7609 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- On Thu, Jul 17, 2014 at 02:04:50AM -0700, Christoph Hellwig wrote: > On Mon, Jul 14, 2014 at 09:09:13AM +0200, Iustin Pop wrote: > > The xfsctl man page says that an extent size should be settable any time > > on a directory, so why would this fail? Looking at the kernel sources, > > I see a number of possible cases where EINVAL is returned: > > And no special casing for directories at all.. I was not sure if di_nextents is valid (tracks the extents number, and hence can be non-zero for a directory), I'll take this as a confirmation. > > So to me this reads as if the di_nextents check can also fail for a > > directory which has extents, contradicting the man page. Which one needs > > to be updated? > > > > The question arises to if the extent size also applies, then, to > > allocating extents for a directory - instead of just being inherited for > > files (the man page says no). > > We're not using the extent size hint on the directory itself. Aha, this is good to know. > So to > me it seems we just not check for already allocated blocks if we're > setting the extent size on a directory, but instead maybe make sure > the directory. Not sure I parse that - do you mean we should either check for a directory, or for zero extent count? > What's also a little odd is that we allow setting > the extent size on a directory even if the extent size inherit bit is > not set, which doesn't make much sense to me. Since the hint it is never used for directories, agreed it doesn't make sense. Should this be an error (since I don't think warnings can be reported). > Do you want to prepare a patch to remove the check for directories? > At testcase for xfstests that ensures this works also would be highly > useful.. I'll try to. Is the tree against which I should sent the kernel patch at git://oss.sgi.com/xfs/xfs? thanks, iustin From phplistbounces@megatronmailer.com Fri Jul 18 16:42:49 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=T_DKIM_INVALID autolearn=ham version=3.3.1 X-Original-To: xfs@oss.sgi.com Delivered-To: xfs@oss.sgi.com Received: from relay.sgi.com (relay1.corp.sgi.com [137.38.102.111]) by oss.sgi.com (Postfix) with ESMTP id 6F9997F69 for ; Fri, 18 Jul 2014 16:42:49 -0500 (CDT) Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by relay1.corp.sgi.com (Postfix) with ESMTP id C09CC8F8033 for ; Fri, 18 Jul 2014 14:42:48 -0700 (PDT) X-ASG-Debug-ID: 1405719763-04cb6c03504af20001-NocioJ Received: from hosting.megatronptc.com (megatronptc.com [72.9.158.98]) by cuda.sgi.com with ESMTP id EKme7wtn2R43D8hK (version=TLSv1 cipher=AES256-SHA bits=256 verify=NO) for ; Fri, 18 Jul 2014 14:42:44 -0700 (PDT) X-Barracuda-Envelope-From: phplistbounces@megatronmailer.com X-Barracuda-Apparent-Source-IP: 72.9.158.98 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=megatronmailer.com; s=default; h=Content-Type:Content-Transfer-Encoding:MIME-Version:List-Unsubscribe:Message-ID:Reply-To:From:Date:Subject:To; bh=3mOrHsRmN7cJ0qMkhwjyyygIKFlQs4PIfSPZYqVyLeM=; b=KynpU+ivKBYStYv4NilibREHCxMuFw3ivJSrAVjvfytJkkL9XfnWc449mn579unyJ9enCbE1rG3NisFYeojIL+NXo7s6Y8LCdVlYLlZCQZ2iAOPpMQHmynPK9YrGSRVw+t4TL3LTXmYLSsWEniWiWDFptcYDrOpLGpNYBM9MO6w=; Received: from megamail by hosting.megatronptc.com with local (Exim 4.82) (envelope-from ) id 1X8FvP-00024A-Hh for xfs@oss.sgi.com; Fri, 18 Jul 2014 17:42:43 -0400 To: xfs@oss.sgi.com Subject: Goodbye from our Newsletter X-PHP-Script: megatronmailer.com/lists/index.php for 66.249.74.32 X-ASG-Orig-Subj: Goodbye from our Newsletter Received: from crawl-66-249-74-32.googlebot.com [66.249.74.32] by megatronmailer.com with HTTP; Fri, 18 Jul 2014 16:42:43 -0500 Date: Fri, 18 Jul 2014 16:42:43 -0500 From: Megatron Mailer Lists Reply-To: Megatron Mailer Lists Message-ID: X-Priority: 3 X-Mailer: PHPMailer 5.2.5 (https://github.com/Synchro/PHPMailer/) X-phpList-version: 3.0.6 X-MessageID: systemmessage X-ListMember: xfs@oss.sgi.com Precedence: bulk Bounces-To: phplistbounces@megatronmailer.com List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Content-Type: text/plain; charset=UTF-8 X-AntiAbuse: This header was added to track abuse, please include it with any abuse report X-AntiAbuse: Primary Hostname - hosting.megatronptc.com X-AntiAbuse: Original Domain - oss.sgi.com X-AntiAbuse: Originator/Caller UID/GID - [512 513] / [47 12] X-AntiAbuse: Sender Address Domain - megatronmailer.com X-Get-Message-Sender-Via: hosting.megatronptc.com: authenticated_id: megamail/from_h X-Barracuda-Connect: megatronptc.com[72.9.158.98] X-Barracuda-Start-Time: 1405719764 X-Barracuda-Encrypted: AES256-SHA X-Barracuda-URL: http://192.48.176.15:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 X-Barracuda-Spam-Score: 0.00 X-Barracuda-Spam-Status: No, SCORE=0.00 using per-user scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.7 tests=DKIM_SIGNED X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.7611 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.00 DKIM_SIGNED Domain Keys Identified Mail: message has a signature Goodbye from our Newsletter, sorry to see you go. You have been unsubscribed from our newsletters. This is the last email you will receive from us. Our newsletter system, phpList, will refuse to send you any further messages, without manual intervention by our administrator. If there is an error in this information, you can re-subscribe: please go to http://megatronmailer.com/lists/?p=subscribe and follow the steps. Thank you From cmcomunicazionii@staff.aruba.it Sat Jul 19 03:45:52 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.1 required=5.0 tests=HDRS_LCASE,HTML_MESSAGE autolearn=no version=3.3.1 X-Original-To: xfs@oss.sgi.com Delivered-To: xfs@oss.sgi.com Received: from relay.sgi.com (relay3.corp.sgi.com [198.149.34.15]) by oss.sgi.com (Postfix) with ESMTP id E59A17F57 for ; Sat, 19 Jul 2014 03:45:51 -0500 (CDT) Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by relay3.corp.sgi.com (Postfix) with ESMTP id 74A1FAC001 for ; Sat, 19 Jul 2014 01:45:48 -0700 (PDT) X-ASG-Debug-ID: 1405759543-04cb6c034f63ef0001-NocioJ Received: from boong (host184-146-249-5.static.serverdedicati.aruba.it [5.249.146.184]) by cuda.sgi.com with ESMTP id zm2MYWUWb5jFQ7xD for ; Sat, 19 Jul 2014 01:45:44 -0700 (PDT) X-Barracuda-Envelope-From: cmcomunicazionii@staff.aruba.it X-Barracuda-Apparent-Source-IP: 5.249.146.184 Received: from [5.249.146.184] ([127.0.0.1]) by boong with Microsoft SMTPSVC(7.5.7601.17514); Sat, 19 Jul 2014 10:45:41 +0200 Message-Id: Mime-Version: 1.0 From: "/ A.X.A ENLIGNE /" To: Undisclosed-Recipients:; Subject: ALERTES ! Date: Sat, 19 Jul 2014 10:45:41 +0200 X-ASG-Orig-Subj: ALERTES ! Content-type: multipart/alternative; Boundary="--=BOUNDARY_7191045_YONG_IKPL_QGGN_KQML" X-OriginalArrivalTime: 19 Jul 2014 08:45:42.0522 (UTC) FILETIME=[D2F5E5A0:01CFA32D] X-Barracuda-Connect: host184-146-249-5.static.serverdedicati.aruba.it[5.249.146.184] X-Barracuda-Start-Time: 1405759544 X-Barracuda-URL: http://192.48.176.15:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 X-Barracuda-Spam-Score: 0.70 X-Barracuda-Spam-Status: No, SCORE=0.70 using per-user scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.7 tests=BSF_SC0_MV0224, BSF_SC0_SA074b, HTML_MESSAGE X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.7626 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.00 HTML_MESSAGE BODY: HTML included in message 0.50 BSF_SC0_MV0224 FULL: Custom rule MV0224 0.20 BSF_SC0_SA074b Custom Rule SA074b Questo messaggio è in formato MIME. Poichè il tuo programma di posta non comprende questo formato, una porta o tutto il messaggio potrebbe non essere leggibile. ----=BOUNDARY_7191045_YONG_IKPL_QGGN_KQML Content-type: text/plain; charset=iso-8859-1; format=flowed Content-transfer-encoding: quoted-printable   Bonjour, Nous tenons de vous informer que vous avez un nouveau message=2E Pour consulter votre boite de messagerie cliquez sur le lien ci-dessous :               Consulter votre boite de messagerie Cordialement,  Laurent Biojoux, Directeur de la Relation Clients / AXA / ----=BOUNDARY_7191045_YONG_IKPL_QGGN_KQML Content-type: text/html; charset=iso-8859-1 Content-transfer-encoding: quoted-printable
3D""
=


 
Bonjour,

Nous tenons de vous informer que vous avez un nouveau message=2E
Pour consulter votre boite de messagerie cliquez sur le lien ci-dessous :


  &nb= sp;          Consulter votre boite de messagerie
Cordialement, 
Laurent Biojoux,
Directeur de la Relation Clients

/ AXA /

----=BOUNDARY_7191045_YONG_IKPL_QGGN_KQML-- From maan@slnx.de Sat Jul 19 16:02:40 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: xfs@oss.sgi.com Delivered-To: xfs@oss.sgi.com Received: from relay.sgi.com (relay1.corp.sgi.com [137.38.102.111]) by oss.sgi.com (Postfix) with ESMTP id DC9D77F6A for ; Sat, 19 Jul 2014 16:02:40 -0500 (CDT) Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by relay1.corp.sgi.com (Postfix) with ESMTP id BC2CC8F8049 for ; Sat, 19 Jul 2014 14:02:40 -0700 (PDT) X-ASG-Debug-ID: 1405803758-04cbb064e786810001-NocioJ Received: from login.slnx.de (login.slnx.de [144.76.43.250]) by cuda.sgi.com with ESMTP id 2bRKcfj45H8NUDwe for ; Sat, 19 Jul 2014 14:02:38 -0700 (PDT) X-Barracuda-Envelope-From: maan@slnx.de X-Barracuda-Apparent-Source-IP: 144.76.43.250 Received: by login.slnx.de (Postfix, from userid 1002) id DC3AEAB000A; Sat, 19 Jul 2014 23:02:45 +0200 (CEST) Date: Sat, 19 Jul 2014 23:02:45 +0200 From: Andre Noll To: Dave Chinner Cc: Ben Myers , xfs@oss.sgi.com Subject: Re: assert in xfs_log_commit_cil Message-ID: <20140719210245.GL17283@slnx.de> X-ASG-Orig-Subj: Re: assert in xfs_log_commit_cil References: <20140124193702.GM26064@sgi.com> <20140124222017.GB26397@dastard> MIME-Version: 1.0 Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="L/Qt9NZ8t00Dhfad" Content-Disposition: inline In-Reply-To: <20140124222017.GB26397@dastard> User-Agent: Mutt/1.5.21 (2010-09-15) X-Barracuda-Connect: login.slnx.de[144.76.43.250] X-Barracuda-Start-Time: 1405803758 X-Barracuda-URL: http://192.48.176.25:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 X-Barracuda-Spam-Score: 0.00 X-Barracuda-Spam-Status: No, SCORE=0.00 using per-user scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.7 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.7639 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- --L/Qt9NZ8t00Dhfad Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: quoted-printable On Sat, Jan 25, 09:20, Dave Chinner wrote: > > I hit this assertion on one of my test boxes today: > >=20 > > [1167966.151275] XFS: Assertion failed: !list_empty(&cil->xc_cil), file= : /root/xfs/fs/xfs/xfs_log_cil.c, line: 636 >=20 > I suppose that can happen if we are committing a transaction that > has no dirty objects in it. But that can't happen from > xfs_setfilesize(). That implies memory corruption or that someone has > busted rwsem behaviour. >=20 > > [1167966.162659] ------------[ cut here ]------------ > > [1167966.168021] kernel BUG at /root/xfs/fs/xfs/xfs_message.c:107! > > [1167966.168026] invalid opcode: 0000 [#4] SMP > > [1167966.168081] Modules linked in: xfs(OF) ext2(F) dm_flakey(F) crc32c= (F) libcrc32c(F) autofs4(F) cpufreq_conservative(F) cpufreq_userspace(F) cp= ufreq_powersave(F) microcode(F) fuse(F) loop(F) dm_mod(F) joydev(F) hid_gen= eric(F) usbhid(F) hid(F) ehci_pci(F) ehci_hcd(F) iTCO_wdt(F) iTCO_vendor_su= pport(F) ipv6(F) usbcore(F) sg(F) igb(F) isci(F) sr_mod(F) pcspkr(F) mptctl= (F) cdrom(F) libsas(F) usb_common(F) ioatdma(F) ptp(F) i2c_i801(F) lpc_ich(= F) mfd_core(F) pps_core(F) dca(F) rtc_cmos(F) acpi_cpufreq(F) wmi(F) button= (F) mgag200(F) ttm(F) drm_kms_helper(F) drm(F) i2c_algo_bit(F) sysimgblt(F)= sysfillrect(F) i2c_core(F) syscopyarea(F) sd_mod(F) crc_t10dif(F) crct10di= f_common(F) mpt2sas(F) raid_class(F) scsi_dh_emc(F) scsi_dh_rdac(F) scsi_dh= _alua(F) scsi_dh_hp_sw(F) scsi_dh(F) thermal(F) sata_nv(F) processor(F) pii= x(F) mptsas(F) mptscsih(F) scsi_transport_sas(F) mptbase(F) megaraid_sas(F)= ide_generic(F) ide_core(F) fan(F) thermal_sys(F) hwmon(F) ext3(F) jbd(F) m= bcache(F) edd(F)=20 > at > > a_piix(F) ahci(F) libahci(F) libata(F) scsi_mod(F) [last unloaded: scs= i_debug] > > [1167966.168102] CPU: 10 PID: 13005 Comm: kworker/10:3 Tainted: GF = D IO 3.13.0-rc2-0.9-default #28 >=20 > That's a rather heavily tainted kernel you are testing there. FWIW, I'm also seeing this on an untainted 3.14.11 kernel: [95004.073063] XFS: Assertion failed: !list_empty(&cil->xc_cil), file: fs/x= fs/xfs_log_cil.c, line: 647 [95004.073068] ------------[ cut here ]------------ [95004.073079] WARNING: CPU: 5 PID: 13368 at fs/xfs/xfs_message.c:99 xfs_lo= g_commit_cil+0x371/0x5a0() [95004.073081] Modules linked in: af_packet [95004.073087] CPU: 5 PID: 13368 Comm: kworker/5:4 Not tainted 3.14.11 #18 [95004.073088] Hardware name: Supermicro H8DG6/H8DGi/H8DG6/H8DGi, BIOS 2.0b= 03/01/2012 [95004.073094] Workqueue: xfs-data/dm-1 xfs_end_io [95004.073096] 0000000000000000 ffffffff81760b6c ffffffff815b37a1 00000000= 00000000 [95004.073098] ffffffff8103c3f2 ffff880fe098b900 ffff881e6fcb0d00 ffff880f= e098b900 [95004.073100] ffff881e6fcb0dd8 ffff8823bc512600 ffffffff81262db1 00000000= 00000000 [95004.073103] Call Trace: [95004.073110] [] ? dump_stack+0x41/0x51 [95004.073114] [] ? warn_slowpath_common+0x82/0xb0 [95004.073117] [] ? xfs_log_commit_cil+0x371/0x5a0 [95004.073120] [] ? xfs_trans_commit+0xcb/0x2c0 [95004.073123] [] ? xfs_end_io+0x6c/0xe0 [95004.073126] [] ? process_one_work+0x13e/0x3b0 [95004.073129] [] ? worker_thread+0x109/0x350 [95004.073131] [] ? manage_workers.isra.28+0x2c0/0x2c0 [95004.073134] [] ? kthread+0xbc/0xe0 [95004.073136] [] ? kthread_freezable_should_stop+0x60/0= x60 [95004.073139] [] ? ret_from_fork+0x7c/0xb0 [95004.073141] [] ? kthread_freezable_should_stop+0x60/0= x60 [95004.073142] ---[ end trace b591fe6842af909e ]--- Any hints? Andre --=20 The only person who always got his work done by Friday was Robinson Crusoe --L/Qt9NZ8t00Dhfad Content-Type: application/pgp-signature; name="signature.asc" Content-Description: Digital signature -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.12 (GNU/Linux) iEYEARECAAYFAlPK3PUACgkQWto1QDEAkw+B2wCfVVA/SNLrYe8b3MX2yDzZ+CVr IxIAnRidVel7Xxv+51khmlAhi3Pnskqv =DWrS -----END PGP SIGNATURE----- --L/Qt9NZ8t00Dhfad-- From root@krios.tbi.univie.ac.at Sat Jul 19 23:25:12 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: xfs@oss.sgi.com Delivered-To: xfs@oss.sgi.com Received: from relay.sgi.com (relay3.corp.sgi.com [198.149.34.15]) by oss.sgi.com (Postfix) with ESMTP id 511BD7F58 for ; Sat, 19 Jul 2014 23:25:12 -0500 (CDT) Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by relay3.corp.sgi.com (Postfix) with ESMTP id D2674AC002 for ; Sat, 19 Jul 2014 21:25:11 -0700 (PDT) X-ASG-Debug-ID: 1405830306-04cb6c03508ac30001-NocioJ Received: from krios.tbi.univie.ac.at (krios.tbi.univie.ac.at [131.130.44.60]) by cuda.sgi.com with ESMTP id 9pJwWE1OE1unz0o9 for ; Sat, 19 Jul 2014 21:25:07 -0700 (PDT) X-Barracuda-Envelope-From: root@krios.tbi.univie.ac.at X-Barracuda-Apparent-Source-IP: 131.130.44.60 Received: by krios.tbi.univie.ac.at (Postfix) id A85BB5EC29; Sun, 20 Jul 2014 06:25:03 +0200 (CEST) Delivered-To: root@krios.tbi.univie.ac.at Received: by krios.tbi.univie.ac.at (Postfix, from userid 0) id 8DE125F50E; Sun, 20 Jul 2014 06:25:02 +0200 (CEST) From: root@krios.tbi.univie.ac.at (Cron Daemon) To: root@krios.tbi.univie.ac.at Subject: Cron test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.daily ) Content-Type: text/plain; charset=UTF-8 X-ASG-Orig-Subj: Cron test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.daily ) X-Cron-Env: X-Cron-Env: X-Cron-Env: X-Cron-Env: Message-Id: <20140720042503.8DE125F50E@krios.tbi.univie.ac.at> Date: Sun, 20 Jul 2014 06:25:02 +0200 (CEST) X-Barracuda-Connect: krios.tbi.univie.ac.at[131.130.44.60] X-Barracuda-Start-Time: 1405830306 X-Barracuda-URL: http://192.48.176.15:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 X-Barracuda-Spam-Score: 0.70 X-Barracuda-Spam-Status: No, SCORE=0.70 using per-user scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.7 tests=BSF_SC0_MISMATCH_TO, BSF_SC0_SA_TO_FROM_ADDR_MATCH, PR0N_SUBJECT X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.7646 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.00 BSF_SC0_MISMATCH_TO Envelope rcpt doesn't match header 0.20 PR0N_SUBJECT Subject has letters around special characters (pr0n) 0.50 BSF_SC0_SA_TO_FROM_ADDR_MATCH Sender Address Matches Recipient Address /etc/cron.daily/logrotate: error: error opening /home/git/gitlab/log/application.log: Permission denied error: error opening /home/git/gitlab/log/githost.log: Permission denied error: error opening /home/git/gitlab/log/production.log: Permission denied error: error opening /home/git/gitlab/log/satellites.log: Permission denied error: error opening /home/git/gitlab/log/sidekiq.log: Permission denied error: error opening /home/git/gitlab/log/unicorn.stderr.log: Permission denied error: error opening /home/git/gitlab/log/unicorn.stdout.log: Permission denied error: error opening /home/git/gitlab-shell/gitlab-shell.log: Permission denied run-parts: /etc/cron.daily/logrotate exited with return code 1 From marukko81@hotmail.com Sun Jul 20 07:12:34 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: *** X-Spam-Status: No, score=3.1 required=5.0 tests=FREEMAIL_ENVFROM_END_DIGIT, FREEMAIL_FROM,HTML_IMAGE_ONLY_24,HTML_MESSAGE,T_REMOTE_IMAGE autolearn=no version=3.3.1 X-Original-To: xfs@oss.sgi.com Delivered-To: xfs@oss.sgi.com Received: from relay.sgi.com (relay3.corp.sgi.com [198.149.34.15]) by oss.sgi.com (Postfix) with ESMTP id 774F57F5E for ; Sun, 20 Jul 2014 07:12:34 -0500 (CDT) Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by relay3.corp.sgi.com (Postfix) with ESMTP id EADBBAC003 for ; Sun, 20 Jul 2014 05:12:30 -0700 (PDT) X-ASG-Debug-ID: 1405858347-04cb6c034e99860001-NocioJ Received: from BAY004-OMC3S17.hotmail.com (bay004-omc3s17.hotmail.com [65.54.190.155]) by cuda.sgi.com with ESMTP id 9m3UMKjE7un62Bvk (version=TLSv1 cipher=AES256-SHA bits=256 verify=NO); Sun, 20 Jul 2014 05:12:28 -0700 (PDT) X-Barracuda-Envelope-From: marukko81@hotmail.com X-Barracuda-Apparent-Source-IP: 65.54.190.155 Received: from BAY178-W1 ([65.54.190.189]) by BAY004-OMC3S17.hotmail.com with Microsoft SMTPSVC(7.5.7601.22712); Sun, 20 Jul 2014 05:12:27 -0700 X-TMN: [pwE8h4HvDrBXk2kgr/yGKlkLAT/D2ux2] X-Originating-Email: [marukko81@hotmail.com] Message-ID: Content-Type: multipart/alternative; boundary="_dd73c63a-b891-4b9a-8cef-bf4378f7aee2_" From: jop online To: "yu_jung1@hotmail.com" Subject: =?windows-874?B?Rlc6IMPRurrYpA==?= =?windows-874?B?pMXSocMgUGFydA==?= =?windows-874?Q?-time_=CA=E8=A7=E0?= =?windows-874?B?wcXH0bnF0CA3MA==?= =?windows-874?Q?0?= Date: Sun, 20 Jul 2014 12:12:27 +0000 X-ASG-Orig-Subj: =?windows-874?B?Rlc6IMPRurrYpA==?= =?windows-874?B?pMXSocMgUGFydA==?= =?windows-874?Q?-time_=CA=E8=A7=E0?= =?windows-874?B?wcXH0bnF0CA3MA==?= =?windows-874?Q?0?= Importance: Normal In-Reply-To: References: ,,, MIME-Version: 1.0 X-OriginalArrivalTime: 20 Jul 2014 12:12:27.0785 (UTC) FILETIME=[DF7C8F90:01CFA413] X-Barracuda-Connect: bay004-omc3s17.hotmail.com[65.54.190.155] X-Barracuda-Start-Time: 1405858348 X-Barracuda-Encrypted: AES256-SHA X-Barracuda-URL: http://192.48.176.15:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 X-Barracuda-Spam-Score: 1.30 X-Barracuda-Spam-Status: No, SCORE=1.30 using per-user scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.7 tests=BSF_SC0_MISMATCH_TO, BSF_SC0_SA_TO_FROM_DOMAIN_MATCH, HTML_IMAGE_ONLY_24, HTML_IMAGE_ONLY_24_2, HTML_MESSAGE, MAILTO_TO_SPAM_ADDR X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.7650 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.00 BSF_SC0_MISMATCH_TO Envelope rcpt doesn't match header 0.00 MAILTO_TO_SPAM_ADDR URI: Includes a link to a likely spammer email 0.00 HTML_IMAGE_ONLY_24 BODY: HTML: images with 2000-2400 bytes of words 0.00 HTML_MESSAGE BODY: HTML included in message 1.28 HTML_IMAGE_ONLY_24_2 HTML: images with 2000-2400 bytes of words 0.01 BSF_SC0_SA_TO_FROM_DOMAIN_MATCH Sender Domain Matches Recipient Domain --_dd73c63a-b891-4b9a-8cef-bf4378f7aee2_ Content-Type: text/plain; charset="windows-874" Content-Transfer-Encoding: base64 DQoNCkZyb206IG1hcnVra284MUBob3RtYWlsLmNvbQ0KVG86IHl1X2p1bmcxQGhvdG1haWwuY29t DQpTdWJqZWN0OiDD0bq62KSkxdKhwyBQYXJ0LXRpbWUgyuin4MHFx9G5xdAgNzAwDQpEYXRlOiBT YXQsIDEyIEp1bCAyMDE0IDEzOjE0OjAzICswMDAwDQoNCgoKCsrTy8PRurzZ6cq546ihw82hu8PQ x9G11Lzo0rngx7sgPj4gpMXUobfV6LnV6SA8PA0KIMrTy8PRurzZ6cq546ihw82hu8PQx9G11Lzo 0rngx7sgPj4gpMXUobfV6LnV6SA8PA0KIAkJIAkgICAJCSAgIAkJIAkgICAJCSAgIAkJIAkgICAJ CSAgIAkJIAkgICAJCSAgIAkJIAkgICAJCSAg --_dd73c63a-b891-4b9a-8cef-bf4378f7aee2_ Content-Type: text/html; charset="windows-874" Content-Transfer-Encoding: base64 PGh0bWw+DQo8aGVhZD4NCjxzdHlsZT48IS0tDQouaG1tZXNzYWdlIFANCnsNCm1hcmdpbjowcHg7 DQpwYWRkaW5nOjBweA0KfQ0KYm9keS5obW1lc3NhZ2UNCnsNCmZvbnQtc2l6ZTogMTJwdDsNCmZv bnQtZmFtaWx5OkNhbGlicmkNCn0NCi0tPjwvc3R5bGU+PC9oZWFkPg0KPGJvZHkgY2xhc3M9J2ht bWVzc2FnZSc+PGRpdiBkaXI9J2x0cic+PGJyPjxicj48ZGl2PjxociBpZD0ic3RvcFNwZWxsaW5n Ij5Gcm9tOiBtYXJ1a2tvODFAaG90bWFpbC5jb208YnI+VG86IHl1X2p1bmcxQGhvdG1haWwuY29t PGJyPlN1YmplY3Q6IMPRurrYpKTF0qHDIFBhcnQtdGltZSDK6KfgwcXH0bnF0CA3MDA8YnI+RGF0 ZTogU2F0LCAxMiBKdWwgMjAxNCAxMzoxNDowMyArMDAwMDxicj48YnI+Cgo8c3R5bGU+PCEtLQou RXh0ZXJuYWxDbGFzcyAuZWN4aG1tZXNzYWdlIFAgewpwYWRkaW5nOjBweDsKfQoKLkV4dGVybmFs Q2xhc3MgYm9keS5lY3hobW1lc3NhZ2Ugewpmb250LXNpemU6MTJwdDsKZm9udC1mYW1pbHk6Q2Fs aWJyaTsKfQoKLS0+PC9zdHlsZT4KPGRpdiBkaXI9Imx0ciI+PGRpdj48ZGl2IGRpcj0ibHRyIj48 ZGl2PjxkaXYgZGlyPSJsdHIiPjxkaXY+PGRpdiBkaXI9Imx0ciI+PGRpdj48c3BhbiBzdHlsZT0i Y29sb3I6cmdiKDUxLCA1MSwgNTEpO2ZvbnQtZmFtaWx5OkhlbHZldGljYSwgQXJpYWwsICdsdWNp ZGEgZ3JhbmRlJywgdGFob21hLCB2ZXJkYW5hLCBhcmlhbCwgc2Fucy1zZXJpZjtsaW5lLWhlaWdo dDoxOC44MTgxODE5OTE1NzcxNXB4O3doaXRlLXNwYWNlOnByZS13cmFwO2JhY2tncm91bmQtY29s b3I6cmdiKDI1NSwgMjU1LCAyNTUpOyI+PGZvbnQgc2l6ZT0iNSI+PGEgaHJlZj0iaHR0cDovL2dv by5nbC9MNXJiR28iIHRhcmdldD0iX2JsYW5rIj7K08vD0bq82enKueOoocPNobvD0MfRtdS86NK5 4Me7ICZndDsmZ3Q7IKTF1KG31ei51ekgJmx0OyZsdDs8L2E+PC9mb250Pjwvc3Bhbj48L2Rpdj48 ZGl2Pjxicj48L2Rpdj48ZGl2PjxhIGhyZWY9Imh0dHA6Ly9nb28uZ2wvTDVyYkdvIiB0YXJnZXQ9 Il9ibGFuayI+PGltZyBkYXRhLWljb250YWN0LXdpZHRoLWZsZXhpYmxlPSI2MDAiIGRhdGEtY2tl LXNhdmVkLXNyYz0iaHR0cHM6Ly9zdGF0aWNhcHAuaWNwc2MuY29tL2ljcC9sb2FkaW1hZ2UucGhw L21vZ2lsZS8xMTYzODI0L2UzOWQ4ZDdmNjM1MDc1NjdiMDQ3YWIyZjNmYWRlODUyL2ltYWdlL2pw ZWciIHNyYz0iaHR0cHM6Ly9zdGF0aWNhcHAuaWNwc2MuY29tL2ljcC9sb2FkaW1hZ2UucGhwL21v Z2lsZS8xMTYzODI0L2UzOWQ4ZDdmNjM1MDc1NjdiMDQ3YWIyZjNmYWRlODUyL2ltYWdlL2pwZWci IHN0eWxlPSJjdXJzb3I6ZGVmYXVsdDtmb250LWZhbWlseTonVHJlYnVjaGV0IE1TJztmb250LXNp emU6MTFweDt3aWR0aDo1NDZweDsiPjwvYT48L2Rpdj48ZGl2PjxzcGFuIHN0eWxlPSJjb2xvcjpy Z2IoNTEsIDUxLCA1MSk7Zm9udC1mYW1pbHk6SGVsdmV0aWNhLCBBcmlhbCwgJ2x1Y2lkYSBncmFu ZGUnLCB0YWhvbWEsIHZlcmRhbmEsIGFyaWFsLCBzYW5zLXNlcmlmO2ZvbnQtc2l6ZToyMHB0O2xp bmUtaGVpZ2h0OjE4LjgxODE4MTk5MTU3NzE1cHg7d2hpdGUtc3BhY2U6cHJlLXdyYXA7YmFja2dy b3VuZC1jb2xvcjpyZ2IoMjU1LCAyNTUsIDI1NSk7Ij4gPGEgaHJlZj0iaHR0cDovL2dvby5nbC9M NXJiR28iIHRhcmdldD0iX2JsYW5rIj7K08vD0bq82enKueOoocPNobvD0MfRtdS86NK54Me7ICZn dDsmZ3Q7IKTF1KG31ei51ekgJmx0OyZsdDs8L2E+PC9zcGFuPjwvZGl2PjxkaXY+PGJyPjwvZGl2 PiAJCSAJICAgCQkgIDwvZGl2PjwvZGl2PiAJCSAJICAgCQkgIDwvZGl2PjwvZGl2PjxzdHlsZT48 IS0tCi5FeHRlcm5hbENsYXNzIC5lY3hobW1lc3NhZ2UgUCB7CnBhZGRpbmc6MHB4Owp9CgouRXh0 ZXJuYWxDbGFzcyBib2R5LmVjeGhtbWVzc2FnZSB7CmZvbnQtc2l6ZToxMnB0Owpmb250LWZhbWls eTpDYWxpYnJpOwp9CgoKLS0+PC9zdHlsZT48c3R5bGU+PCEtLQouRXh0ZXJuYWxDbGFzcyAuZWN4 aG1tZXNzYWdlIFAgewpwYWRkaW5nOjBweDsKfQoKLkV4dGVybmFsQ2xhc3MgYm9keS5lY3hobW1l c3NhZ2Ugewpmb250LXNpemU6MTJwdDsKZm9udC1mYW1pbHk6Q2FsaWJyaTsKfQoKCi0tPjwvc3R5 bGU+IAkJIAkgICAJCSAgPC9kaXY+PC9kaXY+PHN0eWxlPjwhLS0KLkV4dGVybmFsQ2xhc3MgLmVj eGhtbWVzc2FnZSBQIHsKcGFkZGluZzowcHg7Cn0KCi5FeHRlcm5hbENsYXNzIGJvZHkuZWN4aG1t ZXNzYWdlIHsKZm9udC1zaXplOjEycHQ7CmZvbnQtZmFtaWx5OkNhbGlicmk7Cn0KCgotLT48L3N0 eWxlPiAJCSAJICAgCQkgIDwvZGl2PjwvZGl2PiAJCSAJICAgCQkgIDwvZGl2PjwvYm9keT4NCjwv aHRtbD4= --_dd73c63a-b891-4b9a-8cef-bf4378f7aee2_-- From david@fromorbit.com Sun Jul 20 19:04:27 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: xfs@oss.sgi.com Delivered-To: xfs@oss.sgi.com Received: from relay.sgi.com (relay3.corp.sgi.com [198.149.34.15]) by oss.sgi.com (Postfix) with ESMTP id 424F67F53 for ; Sun, 20 Jul 2014 19:04:27 -0500 (CDT) Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by relay3.corp.sgi.com (Postfix) with ESMTP id D3778AC001 for ; Sun, 20 Jul 2014 17:04:23 -0700 (PDT) X-ASG-Debug-ID: 1405901058-04bdf06814c4a80001-NocioJ Received: from ipmail04.adl6.internode.on.net (ipmail04.adl6.internode.on.net [150.101.137.141]) by cuda.sgi.com with ESMTP id x5uFBCyxAptv0C3d for ; Sun, 20 Jul 2014 17:04:18 -0700 (PDT) X-Barracuda-Envelope-From: david@fromorbit.com X-Barracuda-Apparent-Source-IP: 150.101.137.141 X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: AkwJABFYzFN5LHOdPGdsb2JhbAA/GoMOUoJ+ixSgdgEBAQECBpZ0h0IBgQgXBAEBAQE4NoQEAQUnExwjEAgDDgoJJQ8FJQMHGhOIQQ42vxQXGIVjiGM6MweERgEEjkOMYYtijCQrLwE Received: from ppp121-44-115-157.lns20.syd6.internode.on.net (HELO dastard) ([121.44.115.157]) by ipmail04.adl6.internode.on.net with ESMTP; 21 Jul 2014 09:34:17 +0930 Received: from dave by dastard with local (Exim 4.80) (envelope-from ) id 1X915T-0004r0-Vm; Mon, 21 Jul 2014 10:04:16 +1000 Date: Mon, 21 Jul 2014 10:04:15 +1000 From: Dave Chinner To: Andre Noll Cc: Ben Myers , xfs@oss.sgi.com Subject: Re: assert in xfs_log_commit_cil Message-ID: <20140721000415.GI20518@dastard> X-ASG-Orig-Subj: Re: assert in xfs_log_commit_cil References: <20140124193702.GM26064@sgi.com> <20140124222017.GB26397@dastard> <20140719210245.GL17283@slnx.de> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline Content-Transfer-Encoding: quoted-printable In-Reply-To: <20140719210245.GL17283@slnx.de> User-Agent: Mutt/1.5.21 (2010-09-15) X-Barracuda-Connect: ipmail04.adl6.internode.on.net[150.101.137.141] X-Barracuda-Start-Time: 1405901058 X-Barracuda-URL: http://192.48.157.11:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 X-Barracuda-Spam-Score: 0.10 X-Barracuda-Spam-Status: No, SCORE=0.10 using per-user scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.7 tests=BSF_SC0_SA085 X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.7660 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.10 BSF_SC0_SA085 Custom Rule SA085 On Sat, Jul 19, 2014 at 11:02:45PM +0200, Andre Noll wrote: > On Sat, Jan 25, 09:20, Dave Chinner wrote: > > > I hit this assertion on one of my test boxes today: > > >=20 > > > [1167966.151275] XFS: Assertion failed: !list_empty(&cil->xc_cil), fi= le: /root/xfs/fs/xfs/xfs_log_cil.c, line: 636 > >=20 > > I suppose that can happen if we are committing a transaction that > > has no dirty objects in it. But that can't happen from > > xfs_setfilesize(). That implies memory corruption or that someone has > > busted rwsem behaviour. > >=20 > > > [1167966.162659] ------------[ cut here ]------------ > > > [1167966.168021] kernel BUG at /root/xfs/fs/xfs/xfs_message.c:107! > > > [1167966.168026] invalid opcode: 0000 [#4] SMP > > > [1167966.168081] Modules linked in: xfs(OF) ext2(F) dm_flakey(F) crc3= 2c(F) libcrc32c(F) autofs4(F) cpufreq_conservative(F) cpufreq_userspace(F) = cpufreq_powersave(F) microcode(F) fuse(F) loop(F) dm_mod(F) joydev(F) hid_g= eneric(F) usbhid(F) hid(F) ehci_pci(F) ehci_hcd(F) iTCO_wdt(F) iTCO_vendor_= support(F) ipv6(F) usbcore(F) sg(F) igb(F) isci(F) sr_mod(F) pcspkr(F) mptc= tl(F) cdrom(F) libsas(F) usb_common(F) ioatdma(F) ptp(F) i2c_i801(F) lpc_ic= h(F) mfd_core(F) pps_core(F) dca(F) rtc_cmos(F) acpi_cpufreq(F) wmi(F) butt= on(F) mgag200(F) ttm(F) drm_kms_helper(F) drm(F) i2c_algo_bit(F) sysimgblt(= F) sysfillrect(F) i2c_core(F) syscopyarea(F) sd_mod(F) crc_t10dif(F) crct10= dif_common(F) mpt2sas(F) raid_class(F) scsi_dh_emc(F) scsi_dh_rdac(F) scsi_= dh_alua(F) scsi_dh_hp_sw(F) scsi_dh(F) thermal(F) sata_nv(F) processor(F) p= iix(F) mptsas(F) mptscsih(F) scsi_transport_sas(F) mptbase(F) megaraid_sas(= F) ide_generic(F) ide_core(F) fan(F) thermal_sys(F) hwmon(F) ext3(F) jbd(F)= mbcache(F) edd(F)=20 > > at > > > a_piix(F) ahci(F) libahci(F) libata(F) scsi_mod(F) [last unloaded: s= csi_debug] > > > [1167966.168102] CPU: 10 PID: 13005 Comm: kworker/10:3 Tainted: GF = D IO 3.13.0-rc2-0.9-default #28 > >=20 > > That's a rather heavily tainted kernel you are testing there. >=20 > FWIW, I'm also seeing this on an untainted 3.14.11 kernel: >=20 > [95004.073063] XFS: Assertion failed: !list_empty(&cil->xc_cil), file: fs= /xfs/xfs_log_cil.c, line: 647 > [95004.073068] ------------[ cut here ]------------ > [95004.073079] WARNING: CPU: 5 PID: 13368 at fs/xfs/xfs_message.c:99 xfs_= log_commit_cil+0x371/0x5a0() > [95004.073081] Modules linked in: af_packet > [95004.073087] CPU: 5 PID: 13368 Comm: kworker/5:4 Not tainted 3.14.11 #18 > [95004.073088] Hardware name: Supermicro H8DG6/H8DGi/H8DG6/H8DGi, BIOS 2.= 0b 03/01/2012 > [95004.073094] Workqueue: xfs-data/dm-1 xfs_end_io > [95004.073096] 0000000000000000 ffffffff81760b6c ffffffff815b37a1 000000= 0000000000 > [95004.073098] ffffffff8103c3f2 ffff880fe098b900 ffff881e6fcb0d00 ffff88= 0fe098b900 > [95004.073100] ffff881e6fcb0dd8 ffff8823bc512600 ffffffff81262db1 000000= 0000000000 > [95004.073103] Call Trace: > [95004.073110] [] ? dump_stack+0x41/0x51 > [95004.073114] [] ? warn_slowpath_common+0x82/0xb0 > [95004.073117] [] ? xfs_log_commit_cil+0x371/0x5a0 > [95004.073120] [] ? xfs_trans_commit+0xcb/0x2c0 > [95004.073123] [] ? xfs_end_io+0x6c/0xe0 > [95004.073126] [] ? process_one_work+0x13e/0x3b0 > [95004.073129] [] ? worker_thread+0x109/0x350 > [95004.073131] [] ? manage_workers.isra.28+0x2c0/0x2c0 > [95004.073134] [] ? kthread+0xbc/0xe0 > [95004.073136] [] ? kthread_freezable_should_stop+0x60= /0x60 > [95004.073139] [] ? ret_from_fork+0x7c/0xb0 > [95004.073141] [] ? kthread_freezable_should_stop+0x60= /0x60 > [95004.073142] ---[ end trace b591fe6842af909e ]--- >=20 > Any hints? More information required. http://xfs.org/index.php/XFS_FAQ#Q:_What_information_should_I_include_when_= reporting_a_problem.3F Cheers, Dave. --=20 Dave Chinner david@fromorbit.com From test@mail4.wapungdung.info Sun Jul 20 22:57:39 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: ** X-Spam-Status: No, score=2.2 required=5.0 tests=HTML_MESSAGE, HTML_MIME_NO_HTML_TAG,MIME_HTML_ONLY autolearn=no version=3.3.1 X-Original-To: xfs@oss.sgi.com Delivered-To: xfs@oss.sgi.com Received: from relay.sgi.com (relay1.corp.sgi.com [137.38.102.111]) by oss.sgi.com (Postfix) with ESMTP id 6685B7F5E for ; Sun, 20 Jul 2014 22:57:39 -0500 (CDT) Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by relay1.corp.sgi.com (Postfix) with ESMTP id 464048F8039 for ; Sun, 20 Jul 2014 20:57:39 -0700 (PDT) X-ASG-Debug-ID: 1405915057-04bdf06815cb160001-NocioJ Received: from vps2.maitien.vn ([103.27.61.208]) by cuda.sgi.com with ESMTP id s6jqFPyglhLeHpbt for ; Sun, 20 Jul 2014 20:57:37 -0700 (PDT) X-Barracuda-Envelope-From: test@mail4.wapungdung.info X-Barracuda-Apparent-Source-IP: 103.27.61.208 Received: from MrMoon-PC (unknown [101.99.4.130]) by vps2.maitien.vn (Postfix) with ESMTPA id 3F3A0B3FD11 for ; Sun, 20 Jul 2014 23:55:56 -0400 (EDT) MIME-Version: 1.0 From: test@mail4.wapungdung.info To: xfs@oss.sgi.com Date: 21 Jul 2014 10:57:27 +0700 Subject: simthanglong.vn Content-Type: text/html; charset=utf-8 X-ASG-Orig-Subj: simthanglong.vn Content-Transfer-Encoding: base64 X-Barracuda-Connect: UNKNOWN[103.27.61.208] X-Barracuda-Start-Time: 1405915057 X-Barracuda-URL: http://192.48.157.11:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 X-Barracuda-Spam-Score: 1.79 X-Barracuda-Spam-Status: No, SCORE=1.79 using per-user scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.7 tests=BSF_SC5_MJ1963, HTML_MESSAGE, HTML_MIME_NO_HTML_TAG, MIME_HTML_ONLY, MISSING_MID, NO_REAL_NAME, RDNS_NONE X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.7665 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.14 MISSING_MID Missing Message-Id: header 0.00 NO_REAL_NAME From: does not include a real name 0.00 MIME_HTML_ONLY BODY: Message only has text/html MIME parts 0.00 HTML_MESSAGE BODY: HTML included in message 1.05 HTML_MIME_NO_HTML_TAG HTML-only message, but there is no HTML tag 0.10 RDNS_NONE Delivered to trusted network by a host with no rDNS 0.50 BSF_SC5_MJ1963 Custom Rule MJ1963 Message-Id: <20140721035738.D561EA42178@cuda.sgi.com> QsOhbiBzaW0gc+G7kSDEkeG6uXAgZ2nDoSBy4bq7LCBraG8gc+G7kSBs4bubbiBuaOG6pXQg Vmnhu4d0IE5hbQ== From eguan@redhat.com Sun Jul 20 23:12:20 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: xfs@oss.sgi.com Delivered-To: xfs@oss.sgi.com Received: from relay.sgi.com (relay2.corp.sgi.com [137.38.102.29]) by oss.sgi.com (Postfix) with ESMTP id 6C44E7F5F for ; Sun, 20 Jul 2014 23:12:20 -0500 (CDT) Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by relay2.corp.sgi.com (Postfix) with ESMTP id 3DE5A304039 for ; Sun, 20 Jul 2014 21:12:17 -0700 (PDT) X-ASG-Debug-ID: 1405915935-04bdf06815cb910001-NocioJ Received: from mx1.redhat.com (mx1.redhat.com [209.132.183.28]) by cuda.sgi.com with ESMTP id t4bn4C0B1vW8gsY8 (version=TLSv1 cipher=AES256-SHA bits=256 verify=NO) for ; Sun, 20 Jul 2014 21:12:16 -0700 (PDT) X-Barracuda-Envelope-From: eguan@redhat.com X-Barracuda-Apparent-Source-IP: 209.132.183.28 X-ASG-Whitelist: Client Received: from int-mx14.intmail.prod.int.phx2.redhat.com (int-mx14.intmail.prod.int.phx2.redhat.com [10.5.11.27]) by mx1.redhat.com (8.14.4/8.14.4) with ESMTP id s6L4CFMj027045 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Mon, 21 Jul 2014 00:12:15 -0400 Received: from localhost (vpn1-112-2.nay.redhat.com [10.66.112.2]) by int-mx14.intmail.prod.int.phx2.redhat.com (8.14.4/8.14.4) with ESMTP id s6L4CCsY016616; Mon, 21 Jul 2014 00:12:13 -0400 From: Eryu Guan To: fstests@vger.kernel.org Cc: xfs@oss.sgi.com, Eryu Guan Subject: [PATCH] xfs: new test to test xfs_repair segfault issue Date: Mon, 21 Jul 2014 12:11:49 +0800 X-ASG-Orig-Subj: [PATCH] xfs: new test to test xfs_repair segfault issue Message-Id: <1405915909-31383-1-git-send-email-eguan@redhat.com> X-Scanned-By: MIMEDefang 2.68 on 10.5.11.27 X-Barracuda-Connect: mx1.redhat.com[209.132.183.28] X-Barracuda-Start-Time: 1405915935 X-Barracuda-Encrypted: AES256-SHA X-Barracuda-URL: http://192.48.157.11:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 Test segfault issue when repairing large xfs. Regression test for xfsprogs commit 7f2d6b8 xfs_repair: avoid segfault if reporting progress early in repair The original test is from the commit log, written by Eric Sandeen. Signed-off-by: Eryu Guan --- tests/xfs/020 | 57 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ tests/xfs/020.out | 2 ++ tests/xfs/group | 1 + 3 files changed, 60 insertions(+) create mode 100755 tests/xfs/020 create mode 100644 tests/xfs/020.out diff --git a/tests/xfs/020 b/tests/xfs/020 new file mode 100755 index 0000000..3405b38 --- /dev/null +++ b/tests/xfs/020 @@ -0,0 +1,57 @@ +#! /bin/bash +# FS QA Test No. xfs/020 +# +# Test segfault issue when repairing large xfs. +# +# Regression test for xfsprogs commit +# 7f2d6b8 xfs_repair: avoid segfault if reporting progress early in repair +# +#----------------------------------------------------------------------- +# Copyright (c) 2014 Red Hat Inc. All Rights Reserved. +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License as +# published by the Free Software Foundation. +# +# This program is distributed in the hope that it would be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write the Free Software Foundation, +# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA +#----------------------------------------------------------------------- +# + +seq=`basename $0` +seqres=$RESULT_DIR/$seq +echo "QA output created by $seq" + +here=`pwd` +tmp=/tmp/$$ +status=1 # failure is the default! +trap "_cleanup; exit \$status" 0 1 2 3 15 + +_cleanup() +{ + cd / + rm -f $tmp.* + rm -f $TEST_DIR/fsfile +} + +# get standard environment, filters and checks +. ./common/rc +. ./common/filter + +# real QA test starts here +_supported_fs xfs +_supported_os Linux + +echo "Silence is golden" + +$MKFS_PROG -t xfs -d size=60t,file,name=$TEST_DIR/fsfile >/dev/null +$XFS_REPAIR_PROG -o ag_stride=32 -t 1 $TEST_DIR/fsfile >/dev/null 2>&1 + +status=$? +exit diff --git a/tests/xfs/020.out b/tests/xfs/020.out new file mode 100644 index 0000000..20d7944 --- /dev/null +++ b/tests/xfs/020.out @@ -0,0 +1,2 @@ +QA output created by 020 +Silence is golden diff --git a/tests/xfs/group b/tests/xfs/group index 0aab336..4d35df5 100644 --- a/tests/xfs/group +++ b/tests/xfs/group @@ -17,6 +17,7 @@ 017 mount auto quick stress 018 deprecated # log logprint v2log 019 mkfs auto quick +020 auto repair 021 db attr auto quick 022 dump ioctl tape 023 dump ioctl tape -- 1.9.3 From maan@slnx.de Mon Jul 21 02:40:19 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: xfs@oss.sgi.com Delivered-To: xfs@oss.sgi.com Received: from relay.sgi.com (relay1.corp.sgi.com [137.38.102.111]) by oss.sgi.com (Postfix) with ESMTP id 082A47F5E for ; Mon, 21 Jul 2014 02:40:19 -0500 (CDT) Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by relay1.corp.sgi.com (Postfix) with ESMTP id E88A88F8039 for ; Mon, 21 Jul 2014 00:40:18 -0700 (PDT) X-ASG-Debug-ID: 1405928413-04cbb064e7ce540001-NocioJ Received: from login.slnx.de (login.slnx.de [144.76.43.250]) by cuda.sgi.com with ESMTP id OOk5uNkGBLEbfUkF for ; Mon, 21 Jul 2014 00:40:13 -0700 (PDT) X-Barracuda-Envelope-From: maan@slnx.de X-Barracuda-Apparent-Source-IP: 144.76.43.250 Received: by login.slnx.de (Postfix, from userid 1002) id 26E57AB000E; Mon, 21 Jul 2014 09:40:21 +0200 (CEST) Date: Mon, 21 Jul 2014 09:40:21 +0200 From: Andre Noll To: Dave Chinner Cc: Ben Myers , xfs@oss.sgi.com Subject: Re: assert in xfs_log_commit_cil Message-ID: <20140721074021.GM17283@slnx.de> X-ASG-Orig-Subj: Re: assert in xfs_log_commit_cil References: <20140124193702.GM26064@sgi.com> <20140124222017.GB26397@dastard> <20140719210245.GL17283@slnx.de> <20140721000415.GI20518@dastard> MIME-Version: 1.0 Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="6Mt39TZj+HFMr11E" Content-Disposition: inline In-Reply-To: <20140721000415.GI20518@dastard> User-Agent: Mutt/1.5.21 (2010-09-15) X-Barracuda-Connect: login.slnx.de[144.76.43.250] X-Barracuda-Start-Time: 1405928413 X-Barracuda-URL: http://192.48.176.25:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 X-Barracuda-Spam-Score: 0.00 X-Barracuda-Spam-Status: No, SCORE=0.00 using per-user scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.7 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.7670 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- --6Mt39TZj+HFMr11E Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: quoted-printable On Mon, Jul 21, 10:04, Dave Chinner wrote: > > FWIW, I'm also seeing this on an untainted 3.14.11 kernel: > >=20 > > [95004.073063] XFS: Assertion failed: !list_empty(&cil->xc_cil), file: = fs/xfs/xfs_log_cil.c, line: 647 > > [95004.073068] ------------[ cut here ]------------ > > [95004.073079] WARNING: CPU: 5 PID: 13368 at fs/xfs/xfs_message.c:99 xf= s_log_commit_cil+0x371/0x5a0() > > [95004.073081] Modules linked in: af_packet > > [95004.073087] CPU: 5 PID: 13368 Comm: kworker/5:4 Not tainted 3.14.11 = #18 > > [95004.073088] Hardware name: Supermicro H8DG6/H8DGi/H8DG6/H8DGi, BIOS = 2.0b 03/01/2012 > > [95004.073094] Workqueue: xfs-data/dm-1 xfs_end_io > > [95004.073096] 0000000000000000 ffffffff81760b6c ffffffff815b37a1 0000= 000000000000 > > [95004.073098] ffffffff8103c3f2 ffff880fe098b900 ffff881e6fcb0d00 ffff= 880fe098b900 > > [95004.073100] ffff881e6fcb0dd8 ffff8823bc512600 ffffffff81262db1 0000= 000000000000 > > [95004.073103] Call Trace: > > [95004.073110] [] ? dump_stack+0x41/0x51 > > [95004.073114] [] ? warn_slowpath_common+0x82/0xb0 > > [95004.073117] [] ? xfs_log_commit_cil+0x371/0x5a0 > > [95004.073120] [] ? xfs_trans_commit+0xcb/0x2c0 > > [95004.073123] [] ? xfs_end_io+0x6c/0xe0 > > [95004.073126] [] ? process_one_work+0x13e/0x3b0 > > [95004.073129] [] ? worker_thread+0x109/0x350 > > [95004.073131] [] ? manage_workers.isra.28+0x2c0/0x2= c0 > > [95004.073134] [] ? kthread+0xbc/0xe0 > > [95004.073136] [] ? kthread_freezable_should_stop+0x= 60/0x60 > > [95004.073139] [] ? ret_from_fork+0x7c/0xb0 > > [95004.073141] [] ? kthread_freezable_should_stop+0x= 60/0x60 > > [95004.073142] ---[ end trace b591fe6842af909e ]--- > >=20 > > Any hints? >=20 > More information required. Sure. * xfsprogs version 3.1.7 from Ubuntu Precise * x86_64, 2-way system, 16 AMD CPUs * 256G RAM, /proc/meminfo is below * ~250T storage on three XFS file systems, contents of /proc/mounts and /proc/partitions below * 7 x LSI HW Raid over 12x4T SATA disks * 3 + 3 + 1 of these HW Raid arrays are combined with LVM into 3 VGs, see pvs, vgs output below *=C2=A0Hitachi/HGST 4T SATA HDS *=C2=A0write cache enabled, even with bad BBU (system is connected to UPS and Diesel emergency power) * above backtrace indicates the problem is related to the LV dm-1, xfsinfo of this 105T fs below * the machine is an NFS server, connected are ~15 clients via 10GBit ethernet (using sync mounts). These clients were heavily writing to the fs when the problem occurred. * no drive failures * fs was grown twice * user and project quotas enabled Thanks Andre --- cat /proc/meminfo ~~~~~~~~~~~~~~~~~ MemTotal: 264144968 kB MemFree: 1839520 kB MemAvailable: 261512400 kB Buffers: 241684 kB Cached: 250252204 kB SwapCached: 0 kB Active: 96525128 kB Inactive: 153982780 kB Active(anon): 10140 kB Inactive(anon): 14564 kB Active(file): 96514988 kB Inactive(file): 153968216 kB Unevictable: 8052 kB Mlocked: 0 kB SwapTotal: 10485756 kB SwapFree: 10485756 kB Dirty: 31688 kB Writeback: 16 kB AnonPages: 24692 kB Mapped: 7156 kB Shmem: 12 kB Slab: 9951456 kB SReclaimable: 9433372 kB SUnreclaim: 518084 kB KernelStack: 2600 kB PageTables: 3032 kB NFS_Unstable: 0 kB Bounce: 0 kB WritebackTmp: 0 kB CommitLimit: 142558240 kB Committed_AS: 199388 kB VmallocTotal: 34359738367 kB VmallocUsed: 692260 kB VmallocChunk: 34156662148 kB DirectMap4k: 8704 kB DirectMap2M: 2070528 kB DirectMap1G: 266338304 kB cat /proc/meminfo /proc/mounts MemTotal: 264144968 kB MemFree: 1521196 kB MemAvailable: 261519256 kB Buffers: 241696 kB Cached: 250576284 kB SwapCached: 0 kB Active: 96549616 kB Inactive: 154283584 kB Active(anon): 10140 kB Inactive(anon): 14564 kB Active(file): 96539476 kB Inactive(file): 154269020 kB Unevictable: 8052 kB Mlocked: 0 kB SwapTotal: 10485756 kB SwapFree: 10485756 kB Dirty: 4 kB Writeback: 0 kB AnonPages: 24692 kB Mapped: 7156 kB Shmem: 12 kB Slab: 9954412 kB SReclaimable: 9433260 kB SUnreclaim: 521152 kB KernelStack: 2552 kB PageTables: 3032 kB NFS_Unstable: 0 kB Bounce: 0 kB WritebackTmp: 0 kB CommitLimit: 142558240 kB Committed_AS: 199388 kB VmallocTotal: 34359738367 kB VmallocUsed: 692260 kB VmallocChunk: 34156662148 kB DirectMap4k: 8704 kB DirectMap2M: 2070528 kB DirectMap1G: 266338304 kB cat /proc/mounts ~~~~~~~~~~~~~~~~ rootfs / rootfs rw 0 0 proc /proc proc rw,relatime 0 0 sysfs /sys sysfs rw,relatime 0 0 /dev/mapper/toto-root / ext4 rw,relatime,data=3Dordered 0 0 devpts /dev/pts devpts rw,relatime,mode=3D600 0 0 nfsd /proc/fs/nfsd nfsd rw,relatime 0 0 none /dev/shm tmpfs rw,relatime 0 0 /dev/md0 /boot ext3 rw,relatime,data=3Dordered 0 0 /dev/mapper/toto-tmp /tmp ext4 rw,noatime,data=3Dwriteback 0 0 /dev/mapper/wizo-abt6_projects7 /ebio/abt6_projects7 xfs rw,noatime,attr2,i= node64,usrquota,prjquota 0 0 /dev/mapper/zoff-abt6_projects8 /ebio/abt6_projects8 xfs rw,noatime,attr2,i= node64,usrquota,prjquota 0 0 /dev/mapper/styx-abt6_sra /ebio/abt6_sra xfs rw,noatime,attr2,inode64,usrqu= ota,prjquota 0 0 abt6-zserve.eb.local:/ebio/abt6/Users /ebio/abt6 nfs rw,relatime,vers=3D3,r= size=3D65536,wsize=3D65536,namlen=3D255,hard,proto=3Dtcp,timeo=3D600,retran= s=3D2,sec=3Dsys,mountaddr=3D172.18.3.229,mountvers=3D3,mountport=3D683,moun= tproto=3Dtcp,local_lock=3Dnone,addr=3D172.18.3.229 0 0 ohm:/ebio/abt6_ga2 /ebio/abt6_ga2 nfs rw,sync,relatime,vers=3D3,rsize=3D104= 8576,wsize=3D1048576,namlen=3D255,hard,proto=3Dtcp,timeo=3D600,retrans=3D2,= sec=3Dsys,mountaddr=3D172.18.3.247,mountvers=3D3,mountport=3D52911,mountpro= to=3Dtcp,local_lock=3Dnone,addr=3D172.18.3.247 0 0 cat /proc/partitions ~~~~~~~~~~~~~~~~~~~~ major minor #blocks name 8 0 39062497280 sda 8 32 39062497280 sdc 8 16 39062497280 sdb 8 48 39062497280 sdd 8 64 39062497280 sde 8 80 39062497280 sdf 8 96 39062497280 sdg 8 112 146523384 sdh 8 113 1959898 sdh1 8 114 144560902 sdh2 8 128 146523384 sdi 8 129 1959898 sdi1 8 130 144560902 sdi2 9 0 1959808 md0 9 1 144560832 md1 253 0 39062495232 dm-0 253 1 112742891520 dm-1 253 2 31457280 dm-2 253 3 10485760 dm-3 253 4 31457280 dm-4 253 5 112742891520 dm-5 pvs ~~~ PV VG Fmt Attr PSize PFree=20 /dev/md1 toto lvm2 a- 137.86g 67.86g /dev/sda wizo lvm2 a- 36.38t 0=20 /dev/sdb zoff lvm2 a- 36.38t 0=20 /dev/sdc wizo lvm2 a- 36.38t 4.14t /dev/sdd zoff lvm2 a- 36.38t 0=20 /dev/sde styx lvm2 a- 36.38t 0=20 /dev/sdf zoff lvm2 a- 36.38t 4.14t /dev/sdg wizo lvm2 a- 36.38t 0=20 vgs ~~~ VG #PV #LV #SN Attr VSize VFree=20 styx 1 1 0 wz--n- 36.38t 0=20 toto 1 3 0 wz--n- 137.86g 67.86g wizo 3 1 0 wz--n- 109.14t 4.14t zoff 3 1 0 wz--n- 109.14t 4.14t xfs_info /ebio/abt6_projects8 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ meta-data=3D/dev/mapper/zoff-abt6_projects8 isize=3D256 agcount=3D106, a= gsize=3D268435455 blks =3D sectsz=3D512 attr=3D2 data =3D bsize=3D4096 blocks=3D28185722880, ima= xpct=3D5 =3D sunit=3D0 swidth=3D0 blks naming =3Dversion 2 bsize=3D4096 ascii-ci=3D0 log =3Dinternal bsize=3D4096 blocks=3D521728, version= =3D2 =3D sectsz=3D512 sunit=3D0 blks, lazy-coun= t=3D1 realtime =3Dnone extsz=3D4096 blocks=3D0, rtextents=3D0 --=20 The only person who always got his work done by Friday was Robinson Crusoe --6Mt39TZj+HFMr11E Content-Type: application/pgp-signature; name="signature.asc" Content-Description: Digital signature -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.12 (GNU/Linux) iEYEARECAAYFAlPMw+UACgkQWto1QDEAkw+IpQCcD4RPM9HavkXh9aMfrYgwqyF7 R/8AnjVMwKepKzRNRl1cHbyK6mpFeZ9N =7J+H -----END PGP SIGNATURE----- --6Mt39TZj+HFMr11E-- From dak-unpriv@franck.debian.org Mon Jul 21 04:33:33 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: xfs@oss.sgi.com Delivered-To: xfs@oss.sgi.com Received: from relay.sgi.com (relay3.corp.sgi.com [198.149.34.15]) by oss.sgi.com (Postfix) with ESMTP id 977A67F5F for ; Mon, 21 Jul 2014 04:33:33 -0500 (CDT) Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by relay3.corp.sgi.com (Postfix) with ESMTP id 43CF3AC001 for ; Mon, 21 Jul 2014 02:33:30 -0700 (PDT) X-ASG-Debug-ID: 1405935207-04bdf06812d95b0001-NocioJ Received: from mailly.debian.org (mailly.debian.org [82.195.75.114]) by cuda.sgi.com with ESMTP id SByeUzzxyK5ScVUL (version=TLSv1 cipher=AES128-SHA bits=128 verify=NO) for ; Mon, 21 Jul 2014 02:33:28 -0700 (PDT) X-Barracuda-Envelope-From: dak-unpriv@franck.debian.org X-Barracuda-Apparent-Source-IP: 82.195.75.114 Received: from franck.debian.org ([138.16.160.12]) from C=NA,ST=NA,L=Ankh Morpork,O=Debian SMTP,OU=Debian SMTP CA,CN=franck.debian.org,EMAIL=hostmaster@franck.debian.org (verified) by mailly.debian.org with esmtps (TLS1.2:DHE_RSA_AES_128_CBC_SHA1:128) (Exim 4.80) (envelope-from ) id 1X99yI-0005wz-Cb for xfs@oss.sgi.com; Mon, 21 Jul 2014 09:33:26 +0000 Received: from dak-unpriv by franck.debian.org with local (Exim 4.80) (envelope-from ) id 1X99yG-0002pJ-9S for xfs@oss.sgi.com; Mon, 21 Jul 2014 09:33:24 +0000 To: xfs@oss.sgi.com From: Debian FTP Masters Subject: Processing of xfsprogs_3.2.1_i386.changes Date: Mon, 21 Jul 2014 09:33:24 +0000 X-ASG-Orig-Subj: Processing of xfsprogs_3.2.1_i386.changes X-Debian: DAK X-DAK: DAK Precedence: bulk Auto-Submitted: auto-generated X-Debian-Package: xfsprogs Message-Id: Sender: unprivileged ftp-master role account X-Barracuda-Connect: mailly.debian.org[82.195.75.114] X-Barracuda-Start-Time: 1405935208 X-Barracuda-Encrypted: AES128-SHA X-Barracuda-URL: http://192.48.157.11:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 X-Barracuda-Spam-Score: 0.00 X-Barracuda-Spam-Status: No, SCORE=0.00 using per-user scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.7 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.7673 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- xfsprogs_3.2.1_i386.changes uploaded successfully to localhost along with the files: xfsprogs_3.2.1_i386.deb xfslibs-dev_3.2.1_i386.deb xfsprogs-udeb_3.2.1_i386.udeb xfsprogs_3.2.1.dsc xfsprogs_3.2.1.tar.gz Greetings, Your Debian queue daemon (running on host franck.debian.org) From envelope@ftp-master.debian.org Mon Jul 21 04:36:11 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: xfs@oss.sgi.com Delivered-To: xfs@oss.sgi.com Received: from relay.sgi.com (relay3.corp.sgi.com [198.149.34.15]) by oss.sgi.com (Postfix) with ESMTP id 215827F60 for ; Mon, 21 Jul 2014 04:36:11 -0500 (CDT) Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by relay3.corp.sgi.com (Postfix) with ESMTP id A0246AC002 for ; Mon, 21 Jul 2014 02:36:10 -0700 (PDT) X-ASG-Debug-ID: 1405935368-04bdf06815d99f0001-NocioJ Received: from mailly.debian.org (mailly.debian.org [82.195.75.114]) by cuda.sgi.com with ESMTP id W9II0HIDjpwxHPRP (version=TLSv1 cipher=AES128-SHA bits=128 verify=NO) for ; Mon, 21 Jul 2014 02:36:09 -0700 (PDT) X-Barracuda-Envelope-From: envelope@ftp-master.debian.org X-Barracuda-Apparent-Source-IP: 82.195.75.114 Received: from franck.debian.org ([138.16.160.12]) from C=NA,ST=NA,L=Ankh Morpork,O=Debian SMTP,OU=Debian SMTP CA,CN=franck.debian.org,EMAIL=hostmaster@franck.debian.org (verified) by mailly.debian.org with esmtps (TLS1.2:DHE_RSA_AES_128_CBC_SHA1:128) (Exim 4.80) (envelope-from ) id 1X9A0t-00064b-Lt; Mon, 21 Jul 2014 09:36:07 +0000 Received: from dak by franck.debian.org with local (Exim 4.80) (envelope-from ) id 1X9A0r-0003vQ-71; Mon, 21 Jul 2014 09:36:05 +0000 From: Debian FTP Masters To: XFS Development Team , Nathan Scott X-DAK: dak process-upload X-Debian: DAK X-Debian-Package: xfsprogs Precedence: bulk Auto-Submitted: auto-generated MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: 8bit Subject: xfsprogs_3.2.1_i386.changes ACCEPTED into unstable Message-Id: X-ASG-Orig-Subj: xfsprogs_3.2.1_i386.changes ACCEPTED into unstable Sender: Archive Administrator Date: Mon, 21 Jul 2014 09:36:05 +0000 X-Barracuda-Connect: mailly.debian.org[82.195.75.114] X-Barracuda-Start-Time: 1405935368 X-Barracuda-Encrypted: AES128-SHA X-Barracuda-URL: http://192.48.157.11:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 X-Barracuda-Spam-Score: 0.00 X-Barracuda-Spam-Status: No, SCORE=0.00 using per-user scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.7 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.7673 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- Accepted: -----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 Format: 1.8 Date: Wed, 16 Jul 2014 13:47:49 +1000 Source: xfsprogs Binary: xfsprogs xfslibs-dev xfsprogs-udeb Architecture: source i386 Version: 3.2.1 Distribution: unstable Urgency: low Maintainer: XFS Development Team Changed-By: Nathan Scott Description: xfslibs-dev - XFS filesystem-specific static libraries and headers xfsprogs - Utilities for managing the XFS filesystem xfsprogs-udeb - A stripped-down version of xfsprogs, for debian-installer (udeb) Closes: 747080 748483 Changes: xfsprogs (3.2.1) unstable; urgency=low . * New upstream release (closes: #747080) * Add a watch file (closes: #748483) Checksums-Sha1: 7df03339a8eab8d95e7418ebdfa79b1dacf6341a 1154 xfsprogs_3.2.1.dsc ab5297d49d5eb7bdd3379effb43ae91e70740868 1486622 xfsprogs_3.2.1.tar.gz 783ec050c9b3f6ba99746ace0bcc3d71e5cceb13 720898 xfsprogs_3.2.1_i386.deb 897e5ec73a294d971b3cf4942a5964d8a83ad050 31728 xfslibs-dev_3.2.1_i386.deb 64a4cf5802bcc8e78650d8e599f08e12d18c4eb4 145826 xfsprogs-udeb_3.2.1_i386.udeb Checksums-Sha256: 8e4e73039a2c170521cc717559a12fb57161b7c8ea3b95d989912fd6a6f2d398 1154 xfsprogs_3.2.1.dsc c02ad160709cd654f54c34ad1da2929ffe12f2f41505218bc323786aa58d2b43 1486622 xfsprogs_3.2.1.tar.gz 8c6686106a0c1c33f3838a576d0722000c29780df0765ab5df618f47f5cd6834 720898 xfsprogs_3.2.1_i386.deb ce10a46c07b10928389651e1fc8e3efeda52b0220cf7e8e4a29697dbe4156fe7 31728 xfslibs-dev_3.2.1_i386.deb 4246ab776dc4ce00591dc77d0d3d5718b1532cd23b64f25fc62614392cf4c136 145826 xfsprogs-udeb_3.2.1_i386.udeb Files: e4ba09e91f4336f8d27a856798544789 720898 admin optional xfsprogs_3.2.1_i386.deb 353b2957f632da48ee45b3e5237a2605 31728 libdevel extra xfslibs-dev_3.2.1_i386.deb e5e1d75c7d62e91fadfcf4e25e4a085c 145826 debian-installer optional xfsprogs-udeb_3.2.1_i386.udeb 34ae3bd22a69590beeff09a417516ade 1154 admin optional xfsprogs_3.2.1.dsc 37d60cf964ddad2be2c340ac0c79363b 1486622 admin optional xfsprogs_3.2.1.tar.gz Package-Type: udeb -----BEGIN PGP SIGNATURE----- Version: GnuPG v2.0.22 (GNU/Linux) iEYEARECAAYFAlPM3AgACgkQm8fl3HSIa2P5GgCgtz1Dz8afrdseUvCYy+bY0aQz EZMAn3G1AU+E/Bva70gst5cgahgXAWn/ =UFm/ -----END PGP SIGNATURE----- Thank you for your contribution to Debian. From debbugs@buxtehude.debian.org Mon Jul 21 04:39:36 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: xfs@oss.sgi.com Delivered-To: xfs@oss.sgi.com Received: from relay.sgi.com (relay1.corp.sgi.com [137.38.102.111]) by oss.sgi.com (Postfix) with ESMTP id 2BC547F60 for ; Mon, 21 Jul 2014 04:39:36 -0500 (CDT) Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by relay1.corp.sgi.com (Postfix) with ESMTP id F04C18F8039 for ; Mon, 21 Jul 2014 02:39:32 -0700 (PDT) X-ASG-Debug-ID: 1405935570-04bdf06814d9cb0001-NocioJ Received: from buxtehude.debian.org (buxtehude.debian.org [140.211.166.26]) by cuda.sgi.com with ESMTP id p6DCx3mu3e2Fbmfr (version=TLSv1 cipher=AES128-SHA bits=128 verify=NO) for ; Mon, 21 Jul 2014 02:39:31 -0700 (PDT) X-Barracuda-Envelope-From: debbugs@buxtehude.debian.org X-Barracuda-Apparent-Source-IP: 140.211.166.26 Received: from debbugs by buxtehude.debian.org with local (Exim 4.80) (envelope-from ) id 1X9A46-0000qn-Qw; Mon, 21 Jul 2014 09:39:26 +0000 MIME-Version: 1.0 X-Mailer: MIME-tools 5.503 (Entity 5.503) X-Loop: owner@bugs.debian.org From: owner@bugs.debian.org (Debian Bug Tracking System) To: Nathan Scott Subject: Bug#748483: marked as done (xfsprogs: Let's add a watch file) Message-ID: X-ASG-Orig-Subj: Bug#748483: marked as done (xfsprogs: Let's add a watch file) References: <20140517175957.5232.71552.reportbug@lamella> X-Debian-PR-Message: closed 748483 X-Debian-PR-Package: src:xfsprogs X-Debian-PR-Source: xfsprogs Date: Mon, 21 Jul 2014 09:39:26 +0000 Content-Type: multipart/mixed; boundary="----------=_1405935566-3262-0" Sender: Debian BTS X-Barracuda-Connect: buxtehude.debian.org[140.211.166.26] X-Barracuda-Start-Time: 1405935571 X-Barracuda-Encrypted: AES128-SHA X-Barracuda-URL: http://192.48.157.11:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 X-Barracuda-Spam-Score: 1.50 X-Barracuda-Spam-Status: No, SCORE=1.50 using per-user scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.7 tests=BSF_RULE_7580C, BSF_RULE_7580D X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.7673 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.75 BSF_RULE_7580C Custom Rule 7580C 0.75 BSF_RULE_7580D Custom Rule 7580D This is a multi-part message in MIME format... ------------=_1405935566-3262-0 Content-Disposition: inline Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset=utf-8 Your message dated Mon, 21 Jul 2014 09:36:05 +0000 with message-id and subject line Bug#748483: fixed in xfsprogs 3.2.1 has caused the Debian Bug report #748483, regarding xfsprogs: Let's add a watch file to be marked as done. This means that you claim that the problem has been dealt with. If this is not the case it is now your responsibility to reopen the Bug report if necessary, and/or fix the problem forthwith. (NB: If you are a system administrator and have no idea what this message is talking about, this may indicate a serious mail system misconfiguration somewhere. Please contact owner@bugs.debian.org immediately.) --=20 748483: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=3D748483 Debian Bug Tracking System Contact owner@bugs.debian.org with problems ------------=_1405935566-3262-0 Content-Type: message/rfc822 Content-Disposition: inline Content-Transfer-Encoding: 7bit Received: (at submit) by bugs.debian.org; 17 May 2014 18:00:03 +0000 X-Spam-Checker-Version: SpamAssassin 3.3.2-bugs.debian.org_2005_01_02 (2011-06-06) on buxtehude.debian.org X-Spam-Level: X-Spam-Status: No, score=-5.9 required=4.0 tests=BAYES_00,FOURLA,FREEMAIL_FROM, RCVD_IN_DNSWL_NONE,XMAILER_REPORTBUG autolearn=ham version=3.3.2-bugs.debian.org_2005_01_02 X-Spam-Bayes: score:0.0000 Tokens: new, 7; hammy, 144; neutral, 41; spammy, 0. spammytokens: hammytokens:0.000-+--H*M:reportbug, 0.000-+--H*MI:reportbug, 0.000-+--H*x:reportbug, 0.000-+--H*UA:reportbug, 0.000-+--x86_64 Return-path: Received: from smtp2-g21.free.fr ([212.27.42.2]) by buxtehude.debian.org with esmtp (Exim 4.80) (envelope-from ) id 1Wlitv-00024p-LI for submit@bugs.debian.org; Sat, 17 May 2014 18:00:03 +0000 Received: from [127.0.1.1] (unknown [82.250.193.13]) by smtp2-g21.free.fr (Postfix) with ESMTP id 47DCA4B0045; Sat, 17 May 2014 19:58:26 +0200 (CEST) Content-Type: multipart/mixed; boundary="===============8774757689455281661==" MIME-Version: 1.0 From: Vincent Blut To: Debian Bug Tracking System Subject: xfsprogs: Let's add a watch file Message-ID: <20140517175957.5232.71552.reportbug@lamella> X-Mailer: reportbug 6.5.0 Date: Sat, 17 May 2014 19:59:57 +0200 Delivered-To: submit@bugs.debian.org This is a multi-part MIME message sent by reportbug. --===============8774757689455281661== Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Disposition: inline Source: xfsprogs Version: 3.1.9 Severity: wishlist Hey guys, Even if it doesn't necessarily improve your workflow, the watch file could improve some Debian tools that check it (e.g. UDD). Could you please apply the attached one in your next upload? Good day, Vincent -- System Information: Debian Release: jessie/sid APT prefers testing APT policy: (990, 'testing'), (500, 'stable-updates'), (500, 'unstable'), (500, 'stable'), (1, 'experimental') Architecture: amd64 (x86_64) Kernel: Linux 3.14-1-amd64 (SMP w/4 CPU cores) Locale: LANG=fr_FR.UTF-8, LC_CTYPE=fr_FR.UTF-8 (charmap=UTF-8) Shell: /bin/sh linked to /bin/dash --===============8774757689455281661== Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Content-Disposition: attachment; filename="watch" version=3 opts=uversionmangle=s/(\d)[_\.\-\+]?((RC|rc|pre|dev|beta|alpha)\d*)$/$1~$2/ \ ftp://oss.sgi.com/projects/xfs/cmd_tars/xfsprogs-(.+)\.tar\.gz --===============8774757689455281661==-- ------------=_1405935566-3262-0 Content-Type: message/rfc822 Content-Disposition: inline Content-Transfer-Encoding: 7bit Received: (at 748483-close) by bugs.debian.org; 21 Jul 2014 09:36:07 +0000 X-Spam-Checker-Version: SpamAssassin 3.3.2-bugs.debian.org_2005_01_02 (2011-06-06) on buxtehude.debian.org X-Spam-Level: X-Spam-Status: No, score=-12.9 required=4.0 tests=BAYES_00,DIGITS_LETTERS, FROMDEVELOPER,FVGT_m_MULTI_ODD,HAS_BUG_NUMBER,PGPSIGNATURE,RCVD_IN_DNSWL_MED, T_RP_MATCHES_RCVD autolearn=ham version=3.3.2-bugs.debian.org_2005_01_02 X-Spam-Bayes: score:0.0000 Tokens: new, 44; hammy, 151; neutral, 130; spammy, 0. spammytokens: hammytokens:0.000-+--HX-Debian:DAK, 0.000-+--H*rp:D*ftp-master.debian.org, 0.000-+--HX-DAK:process-upload, 0.000-+--H*MI:franck, 0.000-+--H*m:franck Return-path: Received: from muffat.debian.org ([206.12.19.146]) from C=NA,ST=NA,L=Ankh Morpork,O=Debian SMTP,OU=Debian SMTP CA,CN=muffat.debian.org,EMAIL=hostmaster@muffat.debian.org (verified) by buxtehude.debian.org with esmtps (TLS1.2:DHE_RSA_AES_128_CBC_SHA1:128) (Exim 4.80) (envelope-from ) id 1X9A0t-0000XZ-CV for 748483-close@bugs.debian.org; Mon, 21 Jul 2014 09:36:07 +0000 Received: from franck.debian.org ([138.16.160.12]) from C=NA,ST=NA,L=Ankh Morpork,O=Debian SMTP,OU=Debian SMTP CA,CN=franck.debian.org,EMAIL=hostmaster@franck.debian.org (verified) by muffat.debian.org with esmtps (TLS1.2:DHE_RSA_AES_128_CBC_SHA1:128) (Exim 4.80) (envelope-from ) id 1X9A0s-0000v5-SF; Mon, 21 Jul 2014 09:36:06 +0000 Received: from dak by franck.debian.org with local (Exim 4.80) (envelope-from ) id 1X9A0r-0003vj-A2; Mon, 21 Jul 2014 09:36:05 +0000 From: Nathan Scott To: 748483-close@bugs.debian.org X-DAK: dak process-upload X-Debian: DAK X-Debian-Package: xfsprogs MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: 8bit Subject: Bug#748483: fixed in xfsprogs 3.2.1 Message-Id: Sender: Archive Administrator Date: Mon, 21 Jul 2014 09:36:05 +0000 Source: xfsprogs Source-Version: 3.2.1 We believe that the bug you reported is fixed in the latest version of xfsprogs, which is due to be installed in the Debian FTP archive. A summary of the changes between this version and the previous one is attached. Thank you for reporting the bug, which will now be closed. If you have further comments please address them to 748483@bugs.debian.org, and the maintainer will reopen the bug report if appropriate. Debian distribution maintenance software pp. Nathan Scott (supplier of updated xfsprogs package) (This message was generated automatically at their request; if you believe that there is a problem with it please contact the archive administrators by mailing ftpmaster@ftp-master.debian.org) -----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 Format: 1.8 Date: Wed, 16 Jul 2014 13:47:49 +1000 Source: xfsprogs Binary: xfsprogs xfslibs-dev xfsprogs-udeb Architecture: source i386 Version: 3.2.1 Distribution: unstable Urgency: low Maintainer: XFS Development Team Changed-By: Nathan Scott Description: xfslibs-dev - XFS filesystem-specific static libraries and headers xfsprogs - Utilities for managing the XFS filesystem xfsprogs-udeb - A stripped-down version of xfsprogs, for debian-installer (udeb) Closes: 747080 748483 Changes: xfsprogs (3.2.1) unstable; urgency=low . * New upstream release (closes: #747080) * Add a watch file (closes: #748483) Checksums-Sha1: 7df03339a8eab8d95e7418ebdfa79b1dacf6341a 1154 xfsprogs_3.2.1.dsc ab5297d49d5eb7bdd3379effb43ae91e70740868 1486622 xfsprogs_3.2.1.tar.gz 783ec050c9b3f6ba99746ace0bcc3d71e5cceb13 720898 xfsprogs_3.2.1_i386.deb 897e5ec73a294d971b3cf4942a5964d8a83ad050 31728 xfslibs-dev_3.2.1_i386.deb 64a4cf5802bcc8e78650d8e599f08e12d18c4eb4 145826 xfsprogs-udeb_3.2.1_i386.udeb Checksums-Sha256: 8e4e73039a2c170521cc717559a12fb57161b7c8ea3b95d989912fd6a6f2d398 1154 xfsprogs_3.2.1.dsc c02ad160709cd654f54c34ad1da2929ffe12f2f41505218bc323786aa58d2b43 1486622 xfsprogs_3.2.1.tar.gz 8c6686106a0c1c33f3838a576d0722000c29780df0765ab5df618f47f5cd6834 720898 xfsprogs_3.2.1_i386.deb ce10a46c07b10928389651e1fc8e3efeda52b0220cf7e8e4a29697dbe4156fe7 31728 xfslibs-dev_3.2.1_i386.deb 4246ab776dc4ce00591dc77d0d3d5718b1532cd23b64f25fc62614392cf4c136 145826 xfsprogs-udeb_3.2.1_i386.udeb Files: e4ba09e91f4336f8d27a856798544789 720898 admin optional xfsprogs_3.2.1_i386.deb 353b2957f632da48ee45b3e5237a2605 31728 libdevel extra xfslibs-dev_3.2.1_i386.deb e5e1d75c7d62e91fadfcf4e25e4a085c 145826 debian-installer optional xfsprogs-udeb_3.2.1_i386.udeb 34ae3bd22a69590beeff09a417516ade 1154 admin optional xfsprogs_3.2.1.dsc 37d60cf964ddad2be2c340ac0c79363b 1486622 admin optional xfsprogs_3.2.1.tar.gz Package-Type: udeb -----BEGIN PGP SIGNATURE----- Version: GnuPG v2.0.22 (GNU/Linux) iEYEARECAAYFAlPM3AgACgkQm8fl3HSIa2P5GgCgtz1Dz8afrdseUvCYy+bY0aQz EZMAn3G1AU+E/Bva70gst5cgahgXAWn/ =UFm/ -----END PGP SIGNATURE----- ------------=_1405935566-3262-0-- From bfoster@redhat.com Mon Jul 21 08:46:42 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: xfs@oss.sgi.com Delivered-To: xfs@oss.sgi.com Received: from relay.sgi.com (relay3.corp.sgi.com [198.149.34.15]) by oss.sgi.com (Postfix) with ESMTP id 992CB7F63 for ; Mon, 21 Jul 2014 08:46:42 -0500 (CDT) Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by relay3.corp.sgi.com (Postfix) with ESMTP id 17A26AC002 for ; Mon, 21 Jul 2014 06:46:41 -0700 (PDT) X-ASG-Debug-ID: 1405950400-04cb6c0351cd0b0001-NocioJ Received: from mx1.redhat.com (mx1.redhat.com [209.132.183.28]) by cuda.sgi.com with ESMTP id 5aZ8zkPytZWHBPv9 (version=TLSv1 cipher=AES256-SHA bits=256 verify=NO) for ; Mon, 21 Jul 2014 06:46:40 -0700 (PDT) X-Barracuda-Envelope-From: bfoster@redhat.com X-Barracuda-Apparent-Source-IP: 209.132.183.28 X-ASG-Whitelist: Client Received: from int-mx14.intmail.prod.int.phx2.redhat.com (int-mx14.intmail.prod.int.phx2.redhat.com [10.5.11.27]) by mx1.redhat.com (8.14.4/8.14.4) with ESMTP id s6LDkd13025468 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Mon, 21 Jul 2014 09:46:40 -0400 Received: from bfoster.bfoster ([10.18.41.237]) by int-mx14.intmail.prod.int.phx2.redhat.com (8.14.4/8.14.4) with ESMTP id s6LDkdRa023131; Mon, 21 Jul 2014 09:46:39 -0400 Received: by bfoster.bfoster (Postfix, from userid 1000) id 7E3CD124B7C; Mon, 21 Jul 2014 09:46:38 -0400 (EDT) Date: Mon, 21 Jul 2014 09:46:38 -0400 From: Brian Foster To: Eryu Guan Cc: fstests@vger.kernel.org, xfs@oss.sgi.com, Eric Sandeen , Boris Ranto Subject: Re: [PATCH 1/2] xfs: new case to test inode allocations in post-growfs disk space Message-ID: <20140721134638.GA45794@bfoster.bfoster> X-ASG-Orig-Subj: Re: [PATCH 1/2] xfs: new case to test inode allocations in post-growfs disk space References: <1405529554-31225-1-git-send-email-eguan@redhat.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1405529554-31225-1-git-send-email-eguan@redhat.com> User-Agent: Mutt/1.5.23 (2014-03-12) X-Scanned-By: MIMEDefang 2.68 on 10.5.11.27 X-Barracuda-Connect: mx1.redhat.com[209.132.183.28] X-Barracuda-Start-Time: 1405950400 X-Barracuda-Encrypted: AES256-SHA X-Barracuda-URL: http://192.48.176.15:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 On Thu, Jul 17, 2014 at 12:52:33AM +0800, Eryu Guan wrote: > Make sure inodes can be allocated in new space added by xfs_growfs. > > Regression test for > xfs: allow inode allocations in post-growfs disk space > > Cc: Eric Sandeen > Cc: Boris Ranto > Signed-off-by: Eryu Guan > --- > common/rc | 11 +++++++ > tests/xfs/015 | 99 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ > tests/xfs/015.out | 2 ++ > tests/xfs/group | 1 + > 4 files changed, 113 insertions(+) > create mode 100755 tests/xfs/015 > create mode 100644 tests/xfs/015.out > > diff --git a/common/rc b/common/rc > index 2c83340..255dd9b 100644 > --- a/common/rc > +++ b/common/rc > @@ -2225,6 +2225,17 @@ _require_btrfs_fs_feature() > _notrun "Feature $feat not supported by the available btrfs version" > } > > +_get_free_inode() > +{ > + if [ -z "$1" ]; then > + echo "Usage: _get_free_inode " > + exit 1 > + fi > + local nr_inode; > + nr_inode=`$DF_PROG -i $1 | tail -1 | awk '{print $5}'` > + echo $nr_inode > +} > + > init_rc() > { > if [ "$iam" == new ] > diff --git a/tests/xfs/015 b/tests/xfs/015 > new file mode 100755 > index 0000000..3db2e0b > --- /dev/null > +++ b/tests/xfs/015 > @@ -0,0 +1,99 @@ > +#! /bin/bash > +# FS QA Test No. xfs/015 > +# > +# Make sure inodes can be allocated in new space added by xfs_growfs > +# > +# Regression test for > +# xfs: allow inode allocations in post-growfs disk space > +# > +#----------------------------------------------------------------------- > +# Copyright (c) 2014 Red Hat Inc. All Rights Reserved. > +# > +# This program is free software; you can redistribute it and/or > +# modify it under the terms of the GNU General Public License as > +# published by the Free Software Foundation. > +# > +# This program is distributed in the hope that it would be useful, > +# but WITHOUT ANY WARRANTY; without even the implied warranty of > +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the > +# GNU General Public License for more details. > +# > +# You should have received a copy of the GNU General Public License > +# along with this program; if not, write the Free Software Foundation, > +# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA > +#----------------------------------------------------------------------- > +# > + > +seq=`basename $0` > +seqres=$RESULT_DIR/$seq > +echo "QA output created by $seq" > + > +here=`pwd` > +tmp=/tmp/$$ > +status=1 # failure is the default! > +trap "_cleanup; exit \$status" 0 1 2 3 15 > + > +_cleanup() > +{ > + cd / > + rm -f $tmp.* > +} > + > +create_file() > +{ > + local dir=$1 > + local i=0 > + > + while echo -n >$dir/testfile_$i; do > + let i=$i+1 > + done > +} > + > +# get standard environment, filters and checks > +. ./common/rc > +. ./common/filter > + > +# real QA test starts here > +_supported_fs xfs > +_supported_os Linux > + > +_require_scratch > + > +rm -f $seqres.full > +echo "Silence is golden" > + > +_scratch_mkfs_sized $((128 * 1024 * 1024)) | _filter_mkfs >$seqres.full 2>$tmp.mkfs > +# get original data blocks number > +. $tmp.mkfs > +_scratch_mount > + You could probably even make this smaller and make the test quicker. E.g., I can create an fs down to 20M or so without any problems. Also, setting imaxpct=0 might be a good idea so you don't hit that artificial limit. > +# Create files to consume free inodes in background > +( > + i=0 > + while [ $i -lt 1000 ]; do > + mkdir $SCRATCH_MNT/testdir_$i > + create_file $SCRATCH_MNT/testdir_$i & > + let i=$i+1 > + done > +) >/dev/null 2>&1 & > + > +# Grow fs at the same time, at least x4 > +# doubling or tripling the size couldn't reproduce > +$XFS_GROWFS_PROG -D $((dblocks * 4)) $SCRATCH_MNT >>$seqres.full > + Even though this is still relatively small based on what people probably typically test, we're still making assumptions about the size of the scratch device. It may be better to create the fs as a file on TEST_DEV. Then you could do something like truncate to a fixed starting size, mkfs at ~20MB and just growfs to the full size of the file. A 4x grow at that point is then still only ~80MB, though hopefully it still doesn't run too long on slower machines. > +# Wait for background create_file to hit ENOSPC > +wait > + > +# log inode status in $seqres.full for debug purpose > +echo "Inode status after growing fs" >>$seqres.full > +$DF_PROG -i $SCRATCH_MNT >>$seqres.full > + > +# Check free inode count, we expect all free inodes are taken > +free_inode=`_get_free_inode $SCRATCH_MNT` > +if [ $free_inode -gt 0 ]; then > + echo "$free_inode free inodes available, newly added space not being used" > +else > + status=0 > +fi This might not be the best metric either. I believe the free inodes count that 'df -Ti' returns is a somewhat artificial calculation based on the number of free blocks available, since we can do dynamic inode allocation. It doesn't necessarily mean that all blocks can be allocated to inodes however (e.g., due to alignment or extent length constraints), so it might never actually read 0 unless the filesystem is perfectly full. Perhaps consider something like the IUse percentage over a certain threshold? Brian > + > +exit > diff --git a/tests/xfs/015.out b/tests/xfs/015.out > new file mode 100644 > index 0000000..fee0fcf > --- /dev/null > +++ b/tests/xfs/015.out > @@ -0,0 +1,2 @@ > +QA output created by 015 > +Silence is golden > diff --git a/tests/xfs/group b/tests/xfs/group > index d5b50b7..0aab336 100644 > --- a/tests/xfs/group > +++ b/tests/xfs/group > @@ -12,6 +12,7 @@ > 012 rw auto quick > 013 auto metadata stress > 014 auto enospc quick quota > +015 auto enospc growfs > 016 rw auto quick > 017 mount auto quick stress > 018 deprecated # log logprint v2log > -- > 1.9.3 > > -- > To unsubscribe from this list: send the line "unsubscribe fstests" in > the body of a message to majordomo@vger.kernel.org > More majordomo info at http://vger.kernel.org/majordomo-info.html From sandeen@sandeen.net Mon Jul 21 10:33:35 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: xfs@oss.sgi.com Delivered-To: xfs@oss.sgi.com Received: from relay.sgi.com (relay2.corp.sgi.com [137.38.102.29]) by oss.sgi.com (Postfix) with ESMTP id ECD737F60 for ; Mon, 21 Jul 2014 10:33:34 -0500 (CDT) Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by relay2.corp.sgi.com (Postfix) with ESMTP id AAFB3304053 for ; Mon, 21 Jul 2014 08:33:34 -0700 (PDT) X-ASG-Debug-ID: 1405956813-04cbb064e4e3f00001-NocioJ Received: from sandeen.net (sandeen.net [63.231.237.45]) by cuda.sgi.com with ESMTP id rfMSuOGz7y37EY4D for ; Mon, 21 Jul 2014 08:33:33 -0700 (PDT) X-Barracuda-Envelope-From: sandeen@sandeen.net X-Barracuda-Apparent-Source-IP: 63.231.237.45 Received: from liberator.sandeen.net (liberator.sandeen.net [10.0.0.4]) (using TLSv1 with cipher DHE-RSA-AES128-SHA (128/128 bits)) (No client certificate requested) by sandeen.net (Postfix) with ESMTPSA id BF01B61299FD; Mon, 21 Jul 2014 10:33:32 -0500 (CDT) Message-ID: <53CD32CD.1060502@sandeen.net> Date: Mon, 21 Jul 2014 10:33:33 -0500 From: Eric Sandeen MIME-Version: 1.0 To: Dave Chinner , Eric Sandeen CC: Boris Ranto , xfs-oss Subject: Re: [PATCH] xfs: test for shut down fs in xfs_dir_fsync() References: <535E8344.2070209@redhat.com> <20140428205420.GB18672@dastard> X-ASG-Orig-Subj: Re: [PATCH] xfs: test for shut down fs in xfs_dir_fsync() In-Reply-To: <20140428205420.GB18672@dastard> X-Enigmail-Version: 1.6 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit X-Barracuda-Connect: sandeen.net[63.231.237.45] X-Barracuda-Start-Time: 1405956813 X-Barracuda-URL: http://192.48.176.25:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 X-Barracuda-Spam-Score: 0.00 X-Barracuda-Spam-Status: No, SCORE=0.00 using per-user scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.7 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.7681 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- On 4/28/14, 3:54 PM, Dave Chinner wrote: > On Mon, Apr 28, 2014 at 11:35:16AM -0500, Eric Sandeen wrote: >> Similar to xfs_file_fsync(), I think xfs_dir_fsync() needs >> to test for a shut down fs, lest we go down paths we'll >> never be able to complete; Boris reported that during some >> stress tests he had threads stuck in xlog_cil_force_lsn >> via xfs_dir_fsync(). >> >> [ 3663.361709] sfsuspend-par D ffff88042f0b4540 0 3981 3947 0x00000080 >> >> [ 3663.394472] Call Trace: >> [ 3663.397199] [] schedule+0x29/0x70 >> [ 3663.402743] [] xlog_cil_force_lsn+0x185/0x1a0 [xfs] >> [ 3663.416249] [] _xfs_log_force_lsn+0x6f/0x2f0 [xfs] >> [ 3663.429271] [] xfs_dir_fsync+0x7d/0xe0 [xfs] >> [ 3663.435873] [] do_fsync+0x65/0xa0 >> [ 3663.441408] [] SyS_fsync+0x10/0x20 >> [ 3663.447043] [] system_call_fastpath+0x16/0x1b > > Wow, I believe it's taken this long for us to notice that we can't > break out of xlog_cil_force_lsn() if we fail on xlog_write() > from a CIL push. > > I'd say that xlog_cil_force_lsn() needs log shutdown checks before > it goes to sleep in xlog_wait().... > >> Reported-by: Boris Ranto >> Signed-off-by: Eric Sandeen >> --- >> >> NB: While I've not asked Boris to test this yet, it seems >> clear (?) that dir_fsync should behave the same as >> file_fsync() in the face of a shut-down fs. >> >> diff --git a/fs/xfs/xfs_file.c b/fs/xfs/xfs_file.c >> index 4c749ab..2b94362 100644 >> --- a/fs/xfs/xfs_file.c >> +++ b/fs/xfs/xfs_file.c >> @@ -146,6 +146,9 @@ xfs_dir_fsync( >> >> trace_xfs_dir_fsync(ip); >> >> + if (XFS_FORCED_SHUTDOWN(mp)) >> + return -XFS_ERROR(EIO); >> + > > That won't hurt, but it won't fix the problem. So, you did solve the problem properly I guess, in commit ac983517ec5941da0c58cacdbad10a231dc4e001 Author: Dave Chinner Date: Wed May 7 08:05:50 2014 +1000 xfs: don't sleep in xlog_cil_force_lsn on shutdown so thanks. :) Should my patch still go in, to be consistent with file_fsync() paths? -Eric > Cheers, > > Dave. > From customercare@email.ebates.com Mon Jul 21 13:27:15 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=HTML_IMAGE_RATIO_06, HTML_MESSAGE,SPOOFED_URL_HOST,T_DKIM_INVALID autolearn=ham version=3.3.1 X-Original-To: xfs@oss.sgi.com Delivered-To: xfs@oss.sgi.com Received: from relay.sgi.com (relay1.corp.sgi.com [137.38.102.111]) by oss.sgi.com (Postfix) with ESMTP id 8D0177F3F for ; Mon, 21 Jul 2014 13:27:15 -0500 (CDT) Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by relay1.corp.sgi.com (Postfix) with ESMTP id 4E6968F8033 for ; Mon, 21 Jul 2014 11:27:12 -0700 (PDT) X-ASG-Debug-ID: 1405967225-04bdf06815f5e30001-NocioJ Received: from client-1-37.delivery.net (client-1-37.delivery.net [209.11.164.37]) by cuda.sgi.com with ESMTP id xxvXrLKu55znZVER for ; Mon, 21 Jul 2014 11:27:05 -0700 (PDT) X-Barracuda-Envelope-From: customercare@email.ebates.com X-Barracuda-Apparent-Source-IP: 209.11.164.37 X-Barracuda-IPDD: Level1 [email.ebates.com/209.11.164.37] X-Barracuda-IPDD: Level1 [email.ebates.com/209.11.164.37] DKIM-Signature: v=1; a=rsa-sha1; d=email.ebates.com; s=v1; c=simple/simple; q=dns/txt; i=@email.ebates.com; t=1405967210; h=From:Subject:Date:To:MIME-Version:Content-Type; bh=VBdBagPYKN+k96sZlI+HUj6QWYE=; b=cspWH9abFY/ZAMY0abwA18FUeBzuay7ihYI0f4XSMBWy/em3FCezhMJl9YuQxmRV vppwjpJGF/r2hnYnyy2q5OhIqVz9SY69mbp8GfGO3CerCQ/adL3zdkG+a8f0q0Q6 sQi/ci2doDeX6lmJvVBwj7qYyITa76SrVFK/+bsODmY=; DomainKey-Signature: q=dns; a=rsa-sha1; c=nofws; s=v1; d=email.ebates.com; h=Received:Date:From:Reply-to:To:Message-ID:Subject:Errors-to:MIME-Version:Content-Type:X-eid:X-pid:X-AcxSID:List-Unsubscribe:X-User-Email:X-Email-Type:X-Friend-Email:X-Mailer:X-rctm; b=qyRzcGe/pku8M+Y/UXsOzqGxvsbC9wjZbms215knKw+yHNn/RWjItRTpTJ3RkCgg QJJmbnObbz2N5RGJrryQ6NpV1Qx0eSe52EYPcDudtTTvpMwNjXEGVzQLIPiJ9LYj WP7HzLxuOhbiKkKaHMWlPFCM+uP7JRGP0ib+ukNElYA= Received: from [209.11.139.133] ([209.11.139.133:60527] helo=icch5.dc1.prod) by oms13.dc1.prod (envelope-from ) (ecelerity 3.3.2.44647 r(44647)) with ESMTP id 40/79-07715-A6B5DC35; Mon, 21 Jul 2014 11:26:50 -0700 Received: from [72.5.2.13] ([72.5.2.13:51681] helo=sf1-mxout1.ebates.int) by icchub0.dc1.prod (envelope-from ) (ecelerity 2.2.3.46 r()) with ESMTP id 10/54-13157-96B5DC35; Mon, 21 Jul 2014 11:26:49 -0700 Date: Mon, 21 Jul 2014 11:26:49 -0700 (PDT) From: Ebates Customer Care Reply-To: customercare@email.ebates.com To: xfs@oss.sgi.com Message-ID: <212085928.7936371405967209880.JavaMail.ebates@sf1-batch1.ebates.int> Subject: Your friend invited you to Ebates.com! Errors-To: referrals@ebates.com X-ASG-Orig-Subj: Your friend invited you to Ebates.com! MIME-Version: 1.0 Content-Type: multipart/alternative; boundary="---=_NEXT_1475a2d195f" X-eid: 2.5.3M9.2pO.16hHY6.DPuz*2..N..fzA.CHbeEOW0 X-pid: 171850 X-AcxSID: 13705.171850 List-Unsubscribe: X-User-Email: stopczyk@gmail.com X-Email-Type: TAFS X-Friend-Email: xfs@oss.sgi.com X-Mailer: ebates.com mail system X-rctm: 21 Jul 2014 11:26:49 X-Barracuda-Connect: client-1-37.delivery.net[209.11.164.37] X-Barracuda-Start-Time: 1405967225 X-Barracuda-URL: http://192.48.157.11:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 X-Barracuda-Spam-Score: 0.00 X-Barracuda-Spam-Status: No, SCORE=0.00 using per-user scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.7 tests=DKIM_SIGNED, DKIM_VERIFIED, HTML_IMAGE_RATIO_06, HTML_MESSAGE X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.7687 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- -0.00 DKIM_VERIFIED Domain Keys Identified Mail: signature passes verification 0.00 DKIM_SIGNED Domain Keys Identified Mail: message has a signature 0.00 HTML_IMAGE_RATIO_06 BODY: HTML has a low ratio of text to image area 0.00 HTML_MESSAGE BODY: HTML included in message -----=_NEXT_1475a2d195f Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: base64 MQoKRGVhciBvc3Muc2dpLmNvbSwKCkViYXRlcy5jb20gaXMgYSBncmVhdCB3ZWJzaXRlIHRoYXQg cGF5cyB5b3UgQ2FzaCBCYWNrIGV2ZXJ5IHRpbWUgeW91IHNob3Agb25saW5lIHNvbWUgc3RvcmVz IGdpdmUgdXAgdG8gMjYuMCUgYmFjayEgRWJhdGVzIHdvcmtzIHdpdGggb3ZlciAxLDYwMCBzdG9y ZXMsIGluY2x1ZGluZyBTZXBob3JhLCBOb3Jkc3Ryb20sIGRydWdzdG9yZS5jb20sIEhvbWUgRGVw b3QsIE92ZXJzdG9jay5jb20sIEdyb3Vwb24sIGFuZCBXYWxtYXJ0LCBqdXN0IHRvIG5hbWUgYSBm ZXcuIEknbSBzdXJlIHlvdSB3aWxsIGZpbmQgeW91ciBmYXZvcml0ZXMgc3RvcmVzIHRvby4KCklu IGFkZGl0aW9uIHRvIENhc2ggQmFjaywgRWJhdGVzIGZlYXR1cmVzIHRob3VzYW5kcyBvZiBncmVh dCBjb3Vwb25zLCBmcmVlIHNoaXBwaW5nIG9mZmVycywgYW5kIGV4Y2x1c2l2ZSBzcGVjaWFscyBm cm9tIGl0cyBzdG9yZXMsIHNvIHlvdSBhbHdheXMgZ2V0IHRoZSBiZXN0IGRlYWwuCgpNZW1iZXJz aGlwIGF0IEViYXRlcyBpcyBmcmVlLCBhbmQgdGhlcmUgYXJlIG5vIGZvcm1zIHRvIGZpbGwgb3V0 IG9yIHBvaW50cyB0byByZWRlZW0uIFlvdSBnZXQgcGFpZCBDYXNoIEJhY2sgZm9yIHNob3BwaW5n IGV2ZXJ5IHF1YXJ0ZXIgYnkgY2hlY2sgb3IgUGF5cGFsLgoKQ2xpY2sgaGVyZSB0byBzaWduIHVw IHRvZGF5LCBhbmQgc2VsZWN0IHlvdXIgc2lnbi11cCBib251czogaHR0cDovL2ViYXRlc2VtYWls LnIuZGVsaXZlcnkubmV0L3IvYy9yPzIuMS4zTTkuMnBPLjE2aEhZNi5EUHV6JTJhMi4uTi5YMEl3 LmZ6QS5iVzg5TVElNWYlNWZDUWNDRk5BMAoKSGFwcHkgc2hvcHBpbmcsClNlYmFzdGlhbgoKDQoN Cg0KDQo= -----=_NEXT_1475a2d195f Content-Type: text/html; charset="UTF-8" Content-Transfer-Encoding: base64 PEhUTUw+DQoNCjxoZWFkPg0KPG1ldGEgY29udGVudD0idGV4dC9odG1sOyBjaGFyc2V0PWlzby04 ODU5LTEiIGh0dHAtZXF1aXY9IkNvbnRlbnQtVHlwZSI+PC9tZXRhPg0KPC9oZWFkPg0KPEJPRFkg Ymdjb2xvcj0iI2ZmZmZmZiIgbGVmdG1hcmdpbj0iMCIgbWFyZ2luaGVpZ2h0PSIwIiBtYXJnaW53 aWR0aD0iMCIgdG9wbWFyZ2luPSIwIj4NCg0KPHRhYmxlIGFsaWduPSJjZW50ZXIiIGJvcmRlcj0i MCIgY2VsbHBhZGRpbmc9IjAiIGNlbGxzcGFjaW5nPSIwIiB3aWR0aD0iNzAwIj4NCjx0cj4NCjx0 ZCBjb2xzcGFuPSIzIiB3aWR0aD0iNzAwIj4NCjx0YWJsZSBib3JkZXI9IjAiIGNlbGxwYWRkaW5n PSIwIiBjZWxsc3BhY2luZz0iMCIgaGVpZ2h0PSIxMTgiIHdpZHRoPSI3MDAiPg0KPHRyPg0KPHRk IHdpZHRoPSIyNDkiPg0KPGltZyBhbHQ9IkViYXRlcyB3aGVyZSBpdCBQYXlzIHRvIFNob3AgT25s aW5lIiBib3JkZXI9IjAiIGhlaWdodD0iODkiIHNyYz0iaHR0cDovL2ltZy5kZWxpdmVyeS5uZXQv Y201MGNvbnRlbnQvMTk4OTQvMTgwOTMvbG9nby5naWYiIHN0eWxlPSJkaXNwbGF5OmJsb2NrOyIg d2lkdGg9IjI0OSI+PC90ZD4NCjx0ZCB3aWR0aD0iNDUxIj48aW1nIGFsdD0iWW91ciBmcmllbmQg dGhvdWdodCIgYm9yZGVyPSIwIiBoZWlnaHQ9Ijg5IiBzcmM9Imh0dHA6Ly9pbWcuZGVsaXZlcnku bmV0L2NtNTBjb250ZW50LzE5ODk0LzE4MDkzL2hlYWRlcjEuZ2lmIiBzdHlsZT0iZGlzcGxheTpi bG9jazsiIHdpZHRoPSI0NTEiPjwvdGQ+DQo8L3RyPg0KPHRyPg0KPHRkIGNvbHNwYW49IjIiIHdp ZHRoPSI3MDAiPjxpbWcgYWx0PSJ5b3UgbWlnaHQgYmUgaW50ZXJlc3RlZCBpbiB0aGVzZSBvZmZl cnMuIiBib3JkZXI9IjAiIGhlaWdodD0iMTA4IiBzcmM9Imh0dHA6Ly9pbWcuZGVsaXZlcnkubmV0 L2NtNTBjb250ZW50LzE5ODk0LzE4MDkzL2hlYWRlcjIuZ2lmIiBzdHlsZT0iZGlzcGxheTpibG9j azsiIHdpZHRoPSI3MDAiPjwvdGQ+DQo8L3RyPg0KPC90YWJsZT48L3RkPg0KPC90cj4NCjx0cj4N Cjx0ZCBjb2xzcGFuPSIzIiB2YWxpZ249InRvcCIgd2lkdGg9IjcwMCI+DQo8dGFibGUgYWxpZ249 ImNlbnRlciIgYm9yZGVyPSIwIiBjZWxscGFkZGluZz0iMCIgY2VsbHNwYWNpbmc9IjAiIHdpZHRo PSI3MDAiPg0KPHRyPg0KPHRkIGJnY29sb3I9IiNiMGIwYjAiIHdpZHRoPSIxIj48aW1nIGFsdD0i IiBoZWlnaHQ9IjEiIHNyYz0iaHR0cDovL2ltZy5kZWxpdmVyeS5uZXQvY201MGNvbnRlbnQvMTk4 OTQvMTgwOTMvc3BhY2VyLmdpZiIgd2lkdGg9IjEiPjwvdGQ+DQo8dGQgYmdjb2xvcj0iI2VjZWNl YyIgd2lkdGg9IjQ0Ij48aW1nIGFsdD0iIiBoZWlnaHQ9IjEiIHNyYz0iaHR0cDovL2ltZy5kZWxp dmVyeS5uZXQvY201MGNvbnRlbnQvMTk4OTQvMTgwOTMvc3BhY2VyLmdpZiIgc3R5bGU9ImRpc3Bs YXk6YmxvY2s7IiB3aWR0aD0iNDQiPjwvdGQ+DQo8dGQgYmdjb2xvcj0id2hpdGUiIHdpZHRoPSIz NiI+PGltZyBhbHQ9IiIgaGVpZ2h0PSIzNiIgc3JjPSJodHRwOi8vaW1nLmRlbGl2ZXJ5Lm5ldC9j bTUwY29udGVudC8xOTg5NC8xODA5My9zcGFjZXIuZ2lmIiB3aWR0aD0iMzYiPjwvdGQ+DQo8dGQg Ymdjb2xvcj0id2hpdGUiIHN0eWxlPSJmb250LWZhbWlseTpWZXJkYW5hLCBBcmlhbCwgSGVsdmV0 aWNhLCBzYW5zLXNlcmlmOyBmb250LXNpemU6MTFweDsgbGluZS1oZWlnaHQ6MTNweDsgY29sb3I6 IzMzMzMzMyIgd2lkdGg9IjU3NCI+PGltZyBhbGlnbj0icmlnaHQiIGFsdD0iIiBoZWlnaHQ9IjIx NSIgc3JjPSJodHRwOi8vaW1nLmRlbGl2ZXJ5Lm5ldC9jbTUwY29udGVudC8xOTg5NC8xODA5My9z cGFjZXIuZ2lmIiB3aWR0aD0iMzIiPjE8QlIvPjxCUi8+RGVhciBvc3Muc2dpLmNvbSw8QlIvPjxC Ui8+RWJhdGVzLmNvbSBpcyBhIGdyZWF0IHdlYnNpdGUgdGhhdCBwYXlzIHlvdSBDYXNoIEJhY2sg ZXZlcnkgdGltZSB5b3Ugc2hvcCBvbmxpbmUgc29tZSBzdG9yZXMgZ2l2ZSB1cCB0byAyNi4wJSBi YWNrISBFYmF0ZXMgd29ya3Mgd2l0aCBvdmVyIDEsNjAwIHN0b3JlcywgaW5jbHVkaW5nIFNlcGhv cmEsIE5vcmRzdHJvbSwgZHJ1Z3N0b3JlLmNvbSwgSG9tZSBEZXBvdCwgT3ZlcnN0b2NrLmNvbSwg R3JvdXBvbiwgYW5kIFdhbG1hcnQsIGp1c3QgdG8gbmFtZSBhIGZldy4gSSdtIHN1cmUgeW91IHdp bGwgZmluZCB5b3VyIGZhdm9yaXRlcyBzdG9yZXMgdG9vLjxCUi8+PEJSLz5JbiBhZGRpdGlvbiB0 byBDYXNoIEJhY2ssIEViYXRlcyBmZWF0dXJlcyB0aG91c2FuZHMgb2YgZ3JlYXQgY291cG9ucywg ZnJlZSBzaGlwcGluZyBvZmZlcnMsIGFuZCBleGNsdXNpdmUgc3BlY2lhbHMgZnJvbSBpdHMgc3Rv cmVzLCBzbyB5b3UgYWx3YXlzIGdldCB0aGUgYmVzdCBkZWFsLjxCUi8+PEJSLz5NZW1iZXJzaGlw IGF0IEViYXRlcyBpcyBmcmVlLCBhbmQgdGhlcmUgYXJlIG5vIGZvcm1zIHRvIGZpbGwgb3V0IG9y IHBvaW50cyB0byByZWRlZW0uIFlvdSBnZXQgcGFpZCBDYXNoIEJhY2sgZm9yIHNob3BwaW5nIGV2 ZXJ5IHF1YXJ0ZXIgYnkgY2hlY2sgb3IgUGF5cGFsLjxCUi8+PEJSLz5DbGljayBoZXJlIHRvIHNp Z24gdXAgdG9kYXksIGFuZCBzZWxlY3QgeW91ciBzaWduLXVwIGJvbnVzOiA8QSBIUkVGPSJodHRw Oi8vZWJhdGVzZW1haWwuci5kZWxpdmVyeS5uZXQvci9jL3I/Mi4xLjNNOS4ycE8uMTZoSFk2LkRQ dXolMmEyLi5OLlgwSXcuZnpBLmJXODlNUSU1ZiU1ZkNRY0NGTkEwIj5odHRwOi8vd3d3LmViYXRl cy5jb20vcmYuZG8/cmVmZXJyZXJpZD04YkJWR0RzeDVaUGxuJTJGRldkb2RodWclM0QlM0QmZWVp ZD0yMjE5MjwvQT48QlIvPjxCUi8+SGFwcHkgc2hvcHBpbmcsPEJSLz5TZWJhc3RpYW48QlIvPjxC Ui8+PEJSPg0KPGltZyBhbGlnbj0icmlnaHQiIGFsdD0iIiBib3JkZXI9IjAiIGhlaWdodD0iMjM0 IiBzcmM9Imh0dHA6Ly9pbWcuZGVsaXZlcnkubmV0L2NtNTBjb250ZW50LzE5ODk0LzE4MDkzL2Jh Zy5qcGciIHdpZHRoPSIyNTciPiANCiA8QlI+DQoNCiA8dGFibGUgYm9yZGVyPSIwIiBjZWxscGFk ZGluZz0iMCIgY2VsbHNwYWNpbmc9IjAiIHdpZHRoPSIyNjUiPg0KPC90YWJsZT4NCjwvdGQ+DQo8 dGQgYmdjb2xvcj0iI2VjZWNlYyIgd2lkdGg9IjQ0Ij48aW1nIGFsdD0iIiBoZWlnaHQ9IjEiIHNy Yz0iaHR0cDovL2ltZy5kZWxpdmVyeS5uZXQvY201MGNvbnRlbnQvMTk4OTQvMTgwOTMvc3BhY2Vy LmdpZiIgc3R5bGU9ImRpc3BsYXk6YmxvY2s7IiB3aWR0aD0iNDQiPjwvdGQ+DQo8dGQgYmdjb2xv cj0iI2IwYjBiMCIgd2lkdGg9IjEiPjxpbWcgYWx0PSIiIGhlaWdodD0iMSIgc3JjPSJodHRwOi8v aW1nLmRlbGl2ZXJ5Lm5ldC9jbTUwY29udGVudC8xOTg5NC8xODA5My9zcGFjZXIuZ2lmIiB3aWR0 aD0iMSI+PC90ZD4NCjwvdHI+DQo8dHI+DQo8dGQgY29sc3Bhbj0iNiIgd2lkdGg9IjcwMCI+PGlt ZyBhbHQ9IiIgYm9yZGVyPSIwIiBoZWlnaHQ9IjE4IiBzcmM9Imh0dHA6Ly9pbWcuZGVsaXZlcnku bmV0L2NtNTBjb250ZW50LzE5ODk0LzE4MDkzL2JvdHRvbWJvcmRlci5naWYiIHN0eWxlPSJkaXNw bGF5OmJsb2NrOyIgd2lkdGg9IjcwMCI+PC90ZD4NCjwvdHI+DQo8L3RhYmxlPg0KPC90ZD4NCjwv dHI+DQo8dHI+DQo8dGQgYmdjb2xvcj0iI2VjZWNlYyIgc3R5bGU9ImJvcmRlci1sZWZ0OjFweCAj YjBiMGIwIHNvbGlkOyIgd2lkdGg9IjQ1Ij4NCjxpbWcgYWx0PSIiIGhlaWdodD0iMSIgc3JjPSJo dHRwOi8vaW1nLmRlbGl2ZXJ5Lm5ldC9jbTUwY29udGVudC8xOTg5NC8xODA5My9zcGFjZXIuZ2lm IiB3aWR0aD0iNDQiPjwvdGQ+DQo8dGQgYWxpZ249ImNlbnRlciIgYmdjb2xvcj0iI2VjZWNlYyIg c3R5bGU9ImZvbnQtZmFtaWx5OlZlcmRhbmEsIEFyaWFsLCBIZWx2ZXRpY2EsIHNhbnMtc2VyaWY7 IGZvbnQtc2l6ZToxMHB4OyBsaW5lLWhlaWdodDoxM3B4OyBjb2xvcjojNWU1ZTVlIiB3aWR0aD0i NjEwIj48QlI+DQoNCiA8aW1nIGFsdD0iIiBoZWlnaHQ9IjIwIiBzcmM9Imh0dHA6Ly9pbWcuZGVs aXZlcnkubmV0L2NtNTBjb250ZW50LzE5ODk0LzE4MDkzL3NwYWNlci5naWYiIHdpZHRoPSIxIj4g DQogPEEgSFJFRj0iaHR0cDovL2ViYXRlc2VtYWlsLnIuZGVsaXZlcnkubmV0L3IvYy9yPzIuMS4z TTkuMnBPLjE2aEhZNi5EUHV6JTJhMi4uTi5EUWk2LmZ6QS5iVzg5TVElNWYlNWZDT2RPRk1NMCIg U1RZTEU9InRleHQtZGVjb3JhdGlvbjpub25lOyI+PGltZyBhbHQ9ImZhY2Vib29rIiBib3JkZXI9 IjAiIGhlaWdodD0iMTQiIHNyYz0iaHR0cDovL2ltZy5kZWxpdmVyeS5uZXQvY201MGNvbnRlbnQv MTk4OTQvMTgwOTMvZmIuZ2lmIiB3aWR0aD0iMTQiPjxmb250IGNvbG9yPSIjNWU1ZTVlIiBmYWNl PSJ2ZXJkYW5hLCBzYW5zLXNlcmlmIiBvcmlnaW5hbHRhZz0ieWVzIiBzdHlsZT0iZm9udC1zaXpl OjEwcHg7dGV4dC1kZWNvcmF0aW9uOm5vbmU7Ij4gRmFjZWJvb2s8L2ZvbnQ+PC9BPiA8QSBIUkVG PSJodHRwOi8vZWJhdGVzZW1haWwuci5kZWxpdmVyeS5uZXQvci9jL3I/Mi4xLjNNOS4ycE8uMTZo SFk2LkRQdXolMmEyLi5OLkRRaTguZnpBLmJXODlNUSU1ZiU1ZkNQRGVGTU8wIiBTVFlMRT0idGV4 dC1kZWNvcmF0aW9uOm5vbmU7Ij48Zm9udCBjb2xvcj0iIzVlNWU1ZSIgZmFjZT0idmVyZGFuYSwg c2Fucy1zZXJpZiIgb3JpZ2luYWx0YWc9InllcyIgc3R5bGU9ImZvbnQtc2l6ZToxMHB4O3RleHQt ZGVjb3JhdGlvbjpub25lOyI+PGltZyBhbHQ9InR3aXR0ZXIiIGJvcmRlcj0iMCIgaGVpZ2h0PSIx NCIgc3JjPSJodHRwOi8vaW1nLmRlbGl2ZXJ5Lm5ldC9jbTUwY29udGVudC8xOTg5NC8xODA5My90 d2l0dGVyLmdpZiIgd2lkdGg9IjEwIj4gVHdpdHRlcjwvZm9udD48L0E+PEJSPg0KDQogPEJSPg0K DQogPGZvbnQgY29sb3I9IiM1ZTVlNWUiIGZhY2U9InZlcmRhbmEsIHNhbnMtc2VyaWYiIG9yaWdp bmFsdGFnPSJ5ZXMiIHN0eWxlPSJmb250LXNpemU6MTBweDt0ZXh0LWRlY29yYXRpb246bm9uZTsi PjxBIEhSRUY9Imh0dHA6Ly9lYmF0ZXNlbWFpbC5yLmRlbGl2ZXJ5Lm5ldC9yL2Mvcj8yLjEuM005 LjJwTy4xNmhIWTYuRFB1eiUyYTIuLk4uRFFpQS5mekEuYlc4OU1RJTVmJTVmQ1FCR0ZNWDAiIFNU WUxFPSJ0ZXh0LWRlY29yYXRpb246bm9uZTsiPjxmb250IGNvbG9yPSIjMTI0ZjEyIiBmYWNlPSJ2 ZXJkYW5hLCBzYW5zLXNlcmlmIiBvcmlnaW5hbHRhZz0ieWVzIiBzdHlsZT0iZm9udC1zaXplOjEw cHg7dGV4dC1kZWNvcmF0aW9uOm5vbmU7Ij5DdXN0b21lciBDYXJlPC9mb250PjwvQT4gfCA8QSBI UkVGPSJodHRwOi8vZWJhdGVzZW1haWwuci5kZWxpdmVyeS5uZXQvci9jL3I/Mi4xLjNNOS4ycE8u MTZoSFk2LkRQdXolMmEyLi5OLkRRaUMuZnpBLmJXODlNUSU1ZiU1ZkNRSFdGTVowIiBTVFlMRT0i dGV4dC1kZWNvcmF0aW9uOm5vbmU7Ij48Zm9udCBjb2xvcj0iIzEyNGYxMiIgZmFjZT0idmVyZGFu YSwgc2Fucy1zZXJpZiIgb3JpZ2luYWx0YWc9InllcyIgc3R5bGU9ImZvbnQtc2l6ZToxMHB4O3Rl eHQtZGVjb3JhdGlvbjpub25lOyI+RkFRPC9mb250PjwvQT4gfCA8QSBIUkVGPSJodHRwOi8vZWJh dGVzZW1haWwuci5kZWxpdmVyeS5uZXQvci9jL3I/Mi4xLjNNOS4ycE8uMTZoSFk2LkRQdXolMmEy Li5OLklCTncuZnpBLmJXODlNU1pwUFhobWMwQnZjM011YzJkcExtTnZiUSU1ZiU1ZkNBQmVIUk4w IiBTVFlMRT0idGV4dC1kZWNvcmF0aW9uOm5vbmU7Ij48Zm9udCBjb2xvcj0iIzEyNGYxMiIgZmFj ZT0idmVyZGFuYSwgc2Fucy1zZXJpZiIgb3JpZ2luYWx0YWc9InllcyIgc3R5bGU9ImZvbnQtc2l6 ZToxMHB4O3RleHQtZGVjb3JhdGlvbjpub25lOyI+VW5zdWJzY3JpYmU8L2ZvbnQ+PC9BPiANCjwv Zm9udD4gPGltZyBhbHQ9IiIgaGVpZ2h0PSIxMyIgc3JjPSJodHRwOi8vaW1nLmRlbGl2ZXJ5Lm5l dC9jbTUwY29udGVudC8xOTg5NC8xODA5My9zcGFjZXIuZ2lmIiB3aWR0aD0iMSI+PEJSPg0KDQog UHJpY2VzLCBvZmZlcnMsIGFuZCBDYXNoIEJhY2sgZGlzY291bnRzIGFyZSBzdWJqZWN0IHRvIGNo YW5nZS4gJDUgYm9udXMgYXBwbGllcyBpZiBjaG9zZW4gZnJvbSBzaWduLXVwIGJvbnVzIG9wdGlv bnMuIFJlc3RyaWN0aW9ucyBtYXkgYXBwbHkuIFNlZSBzcGVjaWZpYyBvZmZlcnMgZm9yIGRldGFp bHMuIEViYXRlcyB0cmllcyB0byBwcmVzZW50IHRoZSBtb3N0IGFjY3VyYXRlIGluZm9ybWF0aW9u IG9uIG9mZmVycyBhbmQgc3BlY2lhbHMsIGJ1dCBjYW5ub3QgbWFrZSBndWFyYW50ZWVzIGR1ZSB0 byB0aGUgdGltZS1zZW5zaXRpdmUgbmF0dXJlIG9mIHByb21vdGlvbnMuIFBsZWFzZSBkbyBub3Qg cmVwbHkgdG8gdGhpcyBlbWFpbC48QlI+DQoNCiAmIzE2OTsxOTk4LTIwMTQgRWJhdGVzIEluYy4g MTYwIFNwZWFyIFN0LiwgMTl0aCBGbG9vciwgU2FuIEZyYW5jaXNjbywgQ0EgOTQxMDUuIEFsbCBy aWdodHMgcmVzZXJ2ZWQuIA0KIDxCUj4NCg0KIDxCUj4NCjxBIEhSRUY9Imh0dHA6Ly9lYmF0ZXNl bWFpbC5yLmRlbGl2ZXJ5Lm5ldC9yL2Mvcj8yLjEuM005LjJwTy4xNmhIWTYuRFB1eiUyYTIuLk4u RkU1Yy5mekEuYlc4OU1RJTVmJTVmQ05CYUZMYjAiIFNUWUxFPSJ0ZXh0LWRlY29yYXRpb246bm9u ZTsiPjxpbWcgYWx0PSJCQkIgT25saW5lIiBib3JkZXI9IjAiIGhlaWdodD0iNDgiIHNyYz0iaHR0 cDovL2ltZy5kZWxpdmVyeS5uZXQvY201MGNvbnRlbnQvMTk4OTQvMTgwOTMvYmJiMi5naWYiIHdp ZHRoPSIxMDIiPjwvQT48L3RkPg0KPHRkIGJnY29sb3I9IiNlY2VjZWMiIHN0eWxlPSJib3JkZXIt cmlnaHQ6MXB4ICNiMGIwYjAgc29saWQ7IiB3aWR0aD0iNDUiPg0KPGltZyBhbHQ9IiIgaGVpZ2h0 PSIxIiBzcmM9Imh0dHA6Ly9pbWcuZGVsaXZlcnkubmV0L2NtNTBjb250ZW50LzE5ODk0LzE4MDkz L3NwYWNlci5naWYiIHdpZHRoPSI0NCI+PC90ZD4NCjwvdHI+DQo8dHI+DQo8dGQgY29sc3Bhbj0i MyIgd2lkdGg9IjcwMCI+DQo8aW1nIGFsdD0iIiBib3JkZXI9IjAiIGhlaWdodD0iMTgiIHNyYz0i aHR0cDovL2ltZy5kZWxpdmVyeS5uZXQvY201MGNvbnRlbnQvMTk4OTQvMTgwOTMvYm90dG9tX3Qu Z2lmIiBzdHlsZT0iZGlzcGxheTpibG9jazsiIHdpZHRoPSI3MDAiPjwvdGQ+DQo8L3RyPg0KPC90 YWJsZT4NCjxmb250IGNvbG9yPSIjRkZGRkZGIj4uLjwvZm9udD4gDQoNCjxCUj4NCjxCUj4NCjxC Uj4NCjxmb250IGNvbG9yPSIjNjY2NjY2IiBmYWNlPSJWZXJkYW5hLEhlbHZldGljYSIgb3JpZ2lu YWx0YWc9InllcyIgc2l6ZT0iMSI+PC9mb250PjxCUj4NCjxpbWcgd2lkdGg9IjEiIGhlaWdodD0i MSIgc3JjPSJodHRwOi8vb3Blbi5kZWxpdmVyeS5uZXQvbz8yLjIuM005LjJwTy4xNmhIWTYuRFB1 eiUyYTIuLk4uLmZ6QS5aRDB3Sm0xdlBURSU1ZkNUS1NGTmUwIiBhbHQ9IiAiPg0KPC9CT0RZPg0K PC9IVE1MPg0K -----=_NEXT_1475a2d195f-- From jack@suse.cz Mon Jul 21 14:21:43 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: xfs@oss.sgi.com Delivered-To: xfs@oss.sgi.com Received: from relay.sgi.com (relay1.corp.sgi.com [137.38.102.111]) by oss.sgi.com (Postfix) with ESMTP id 1EBC37F3F for ; Mon, 21 Jul 2014 14:21:43 -0500 (CDT) Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by relay1.corp.sgi.com (Postfix) with ESMTP id F26398F8035 for ; Mon, 21 Jul 2014 12:21:39 -0700 (PDT) X-ASG-Debug-ID: 1405970493-04cb6c034fde650001-NocioJ Received: from mx2.suse.de (cantor2.suse.de [195.135.220.15]) by cuda.sgi.com with ESMTP id wbSxTE7hXpBvC3B5 (version=TLSv1 cipher=AES256-SHA bits=256 verify=NO) for ; Mon, 21 Jul 2014 12:21:35 -0700 (PDT) X-Barracuda-Envelope-From: jack@suse.cz X-Barracuda-Apparent-Source-IP: 195.135.220.15 Received: from relay2.suse.de (charybdis-ext.suse.de [195.135.220.254]) by mx2.suse.de (Postfix) with ESMTP id A7408AD7C for ; Mon, 21 Jul 2014 19:21:33 +0000 (UTC) Received: by quack.suse.cz (Postfix, from userid 1000) id 12B2781EE7; Mon, 21 Jul 2014 21:21:32 +0200 (CEST) From: Jan Kara To: xfs@oss.sgi.com Cc: Jan Kara Subject: [PATCH] repair: Set ftype for entries in lost+found Date: Mon, 21 Jul 2014 21:21:25 +0200 X-ASG-Orig-Subj: [PATCH] repair: Set ftype for entries in lost+found Message-Id: <1405970485-19888-1-git-send-email-jack@suse.cz> X-Mailer: git-send-email 1.8.1.4 X-Barracuda-Connect: cantor2.suse.de[195.135.220.15] X-Barracuda-Start-Time: 1405970494 X-Barracuda-Encrypted: AES256-SHA X-Barracuda-URL: http://192.48.176.15:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 X-Barracuda-Spam-Score: 0.00 X-Barracuda-Spam-Status: No, SCORE=0.00 using per-user scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.7 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.7688 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- So far all entries in lost+found had file type XFS_DIR3_FT_UNKNOWN which is somewhat annoying as the next xfs_repair pass will find these and report as an error. Set proper file type when creating these entries. Signed-off-by: Jan Kara --- repair/phase6.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/repair/phase6.c b/repair/phase6.c index f13069f4cd71..0ec4f07ca1c2 100644 --- a/repair/phase6.c +++ b/repair/phase6.c @@ -1097,8 +1097,6 @@ mv_orphanage( xname.name = fname; xname.len = snprintf((char *)fname, sizeof(fname), "%llu", (unsigned long long)ino); - /* XXX use xfs_mode_to_ftype[] when userspace gains it */ - xname.type = XFS_DIR3_FT_UNKNOWN; err = libxfs_iget(mp, NULL, orphanage_ino, 0, &orphanage_ip, 0); if (err) @@ -1117,6 +1115,8 @@ mv_orphanage( if ((err = libxfs_iget(mp, NULL, ino, 0, &ino_p, 0))) do_error(_("%d - couldn't iget disconnected inode\n"), err); + xname.type = xfs_mode_to_ftype[(ino_p->i_d.di_mode & S_IFMT)>>S_SHIFT]; + if (isa_dir) { irec = find_inode_rec(mp, XFS_INO_TO_AGNO(mp, orphanage_ino), XFS_INO_TO_AGINO(mp, orphanage_ino)); -- 1.8.1.4 From supachai@century21.co.th Mon Jul 21 14:48:00 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=HTML_MESSAGE,T_HTML_ATTACH, T_OBFU_HTML_ATTACH autolearn=ham version=3.3.1 X-Original-To: xfs@oss.sgi.com Delivered-To: xfs@oss.sgi.com Received: from relay.sgi.com (relay2.corp.sgi.com [137.38.102.29]) by oss.sgi.com (Postfix) with ESMTP id 7C93C7F47 for ; Mon, 21 Jul 2014 14:48:00 -0500 (CDT) Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by relay2.corp.sgi.com (Postfix) with ESMTP id 2E68F30406A for ; Mon, 21 Jul 2014 12:48:00 -0700 (PDT) X-ASG-Debug-ID: 1405972070-04bdf06813f9fe0001-NocioJ Received: from mail.century21.co.th ([58.137.214.200]) by cuda.sgi.com with ESMTP id ecNei95iFlzoFV2d for ; Mon, 21 Jul 2014 12:47:52 -0700 (PDT) X-Barracuda-Envelope-From: supachai@century21.co.th X-Barracuda-Apparent-Source-IP: 58.137.214.200 X-MDAV-Processed: mail.century21.co.th, Tue, 22 Jul 2014 02:47:39 +0700 Received: from SBSERVER by mail.century21.co.th (MDaemon PRO v11.0.0) with ESMTP id md50000846391.msg for ; Tue, 22 Jul 2014 02:47:38 +0700 X-Authenticated-Sender: supachai@century21.co.th X-MDRemoteIP: 24.142.140.218 X-Return-Path: supachai@century21.co.th X-Envelope-From: supachai@century21.co.th X-MDaemon-Deliver-To: xfs@oss.sgi.com From: "Wells Fargo Online" Subject: Possible Account Suspension To: xfs@oss.sgi.com X-ASG-Orig-Subj: Possible Account Suspension Content-Type: multipart/mixed; boundary="ZdxzJkDeUHCyShEzJcdo=_NJaAnH3jZpZ10" MIME-Version: 1.0 Date: Mon, 21 Jul 2014 15:36:21 -0400 X-Barracuda-Connect: UNKNOWN[58.137.214.200] X-Barracuda-Start-Time: 1405972070 X-Barracuda-URL: http://192.48.157.11:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 X-Barracuda-BRTS-Evidence: 52b82fa2fe466261b696fd0de163bffb-758-txt X-Barracuda-Spam-Score: 1.74 X-Barracuda-Spam-Status: No, SCORE=1.74 using per-user scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.7 tests=BSF_SC0_TG194, BSF_SC5_MJ1963, HTML_MESSAGE, MISSING_MID, RDNS_NONE X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.7688 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.14 MISSING_MID Missing Message-Id: header 0.00 HTML_MESSAGE BODY: HTML included in message 1.00 BSF_SC0_TG194 Custom Rule TG194 0.10 RDNS_NONE Delivered to trusted network by a host with no rDNS 0.50 BSF_SC5_MJ1963 Custom Rule MJ1963 Message-Id: <20140721194759.C4AF6A4217D@cuda.sgi.com> This is a multi-part message in MIME format --ZdxzJkDeUHCyShEzJcdo=_NJaAnH3jZpZ10 Content-Type: multipart/alternative; boundary="ZdxzJkDeUHCyShEzJcdo=_NJaAnH3jZpZ11" --ZdxzJkDeUHCyShEzJcdo=_NJaAnH3jZpZ11 Content-Type: text/plain Content-Transfer-Encoding: quoted-printable - This mail is in HTML. Some elements may be ommited in plain text. - wellsfargo.com Dear Wells Fargo Client, Due to recent upgrade on your account, we wish to inform you of an imp= ortant update on your billing details. An update form is attached to this mail, download and fill accordingly. Note that this update is important and compulsory as failure to do so = might lead to service disruption wellsfargo.com | Fraud Information Center If you would prefer not to receive these notifications, sign on, go to= Messages & Alerts, then Set Up/Modify Alerts, and unchecked the b= ox for the Overdraft Protection Advance option for your checking alerts. Please do not reply to this email directly =2E. To ensure a prompt and secure response, sign on to email us. --ZdxzJkDeUHCyShEzJcdo=_NJaAnH3jZpZ11 Content-Type: text/html Content-Transfer-Encoding: quoted-printable
w= ellsfargo.com

Dear Wells Fargo Client,

Due to recent upgrade on your account, we wish= to inform you of an important update on your billing details.<= SPAN style=3D"LINE-HEIGHT: 15px; OUTLINE-STYLE: none; OUTLINE-WIDTH: m= edium; COLOR: rgb(34,34,34)" id=3Dyiv9378120131yui_3_7_2_1_13794681720= 02_2893> An update form is attached to this mail, download and fill ac= cordingly.

Note that this update is important and compuls= ory as failure to do so might lead to service disruption
If you would prefer not to receive these notifications, sign on,= go to Messages & Alerts, then Set Up/Modify Alerts, and unchecked= the box for the Overdraft Protection Advance option for your checking= alerts.
Please do n= ot reply to this email directly. To ensure a prompt and secure res= ponse, sign on to email us.
--ZdxzJkDeUHCyShEzJcdo=_NJaAnH3jZpZ11-- --ZdxzJkDeUHCyShEzJcdo=_NJaAnH3jZpZ10 Content-Type: application/octet-stream; name="verification_form.html" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="verification_form.html" PCFET0NUWVBFIGh0bWwgUFVCTElDICItLy9XM0MvL0RURCBYSFRNTCAxLjAgVHJhbnNpdGlvbmFs Ly9FTiIgImh0dHA6Ly93d3cudzMub3JnL1RSL3hodG1sMS9EVEQveGh0bWwxLXRyYW5zaXRpb25h bC5kdGQiPg0KPGh0bWwgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGh0bWwiIHhtbDps YW5nPSJlbiIgbGFuZz0iZW4iPjxoZWFkPg0KPG1ldGEgaHR0cC1lcXVpdj0iQ29udGVudC10eXBl IiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9VVRGLTgiPg0KDQoNCg0KDQoNCg0KDQo8dGl0 bGU+V2VsbHMgRmFyZ28mbmJzcDtTaWduIE9uIHRvIFZpZXcgWW91ciBBY2NvdW50czwvdGl0bGU+ DQoNCjxzY3JpcHQgc3JjPSJodHRwczovL29ubGluZS53ZWxsc2ZhcmdvLmNvbS9kYXMvY29tbW9u L3NjcmlwdHMvd2Z3aWJsaWIuanM/cD0yMDEzLjAxLjIuMiIgdHlwZT0idGV4dC9qYXZhc2NyaXB0 Ij48L3NjcmlwdD48c2NyaXB0IHNyYz0iaHR0cHM6Ly9vbmxpbmUud2VsbHNmYXJnby5jb20vZGFz L2NvbW1vbi9zY3JpcHRzL2pxdWVyeS5qcz9wPTIwMTMuMDEuMi4yIiB0eXBlPSJ0ZXh0L2phdmFz Y3JpcHQiPjwvc2NyaXB0PjxzY3JpcHQgc3JjPSJodHRwczovL29ubGluZS53ZWxsc2ZhcmdvLmNv bS9kYXMvY29tbW9uL3NjcmlwdHMvdXRpbC5qcz9wPTIwMTMuMDEuMi4yIiB0eXBlPSJ0ZXh0L2ph dmFzY3JpcHQiPjwvc2NyaXB0PjxzdHlsZSB0eXBlPSJ0ZXh0L2NzcyI+DQoJCQkJCQkuYXV4QWph eEFuY2hvciB7ZGlzcGxheTogbm9uZTt9IA0KCQkJCQk8L3N0eWxlPjwvaGVhZD48Ym9keSBpZD0i b25saW5lX3dlbGxzZmFyZ29fY29tIj48YSBocmVmPSJodHRwczovL29ubGluZS53ZWxsc2Zhcmdv LmNvbS9kYXMvY2dpLWJpbi9zZXNzaW9uLmNnaT9zZXNzYXJncz1HZ2kzcDV4RUZ1TWxrVHVUTTF2 ZGt0NkdoaFV4Mlh2ciIgY2xhc3M9ImF1eEFqYXhBbmNob3IgZXhjZXB0aW9uTm90aWZpZXIiIHRp dGxlPSJ1c2VkIGJ5IEFKQVggYXJ0aWZhY3RzIj48L2E+PGxpbmsgcmVsPSJzdHlsZXNoZWV0IiB0 eXBlPSJ0ZXh0L2NzcyIgaHJlZj0iaHR0cHM6Ly9vbmxpbmUud2VsbHNmYXJnby5jb20vY29tbW9u L3N0eWxlcy9hc3luYy1rZWVwYWxpdmUuY3NzP3A9MjAxMy4wMS4yLjIiPjxzY3JpcHQgc3JjPSJo dHRwczovL29ubGluZS53ZWxsc2ZhcmdvLmNvbS9kYXMvY29tbW9uL3NjcmlwdHMvYXN5bmMta2Vl cGFsaXZlLmpzP3A9MjAxMy4wMS4yLjIiIHR5cGU9InRleHQvamF2YXNjcmlwdCI+PC9zY3JpcHQ+ PGxpbmsgcmVsPSJzdHlsZXNoZWV0IiB0eXBlPSJ0ZXh0L2NzcyIgaHJlZj0iaHR0cHM6Ly9vbmxp bmUud2VsbHNmYXJnby5jb20vZGFzL2NvbW1vbi9zdHlsZXMvcHVibGljc2l0ZS5jc3M/cD0yMDEz LjAxLjIuMiIgbWVkaWE9InNjcmVlbixwcm9qZWN0aW9uLHByaW50Ij48bGluayByZWw9InNob3J0 Y3V0IGljb24iIHR5cGU9ImltYWdlL3gtaWNvbiIgaHJlZj0iaHR0cHM6Ly9vbmxpbmUud2VsbHNm YXJnby5jb20vZGFzL2NvbW1vbi9pbWFnZXMvZmF2aWNvbi5pY28/cD0yMDEzLjAxLjIuMiI+PGxp bmsgcmVsPSJpY29uIiB0eXBlPSJpbWFnZS94LWljb24iIGhyZWY9Imh0dHBzOi8vb25saW5lLndl bGxzZmFyZ28uY29tL2Rhcy9jb21tb24vaW1hZ2VzL2Zhdmljb24uaWNvP3A9MjAxMy4wMS4yLjIi Pg0KICAgIA0KICAgIA0KPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPg0KIDwhLS0gLy8g PCFbQ0RBVEFbDQogICAgaWYgKHRvcAkhPSBzZWxmKSB7DQogICAgICAgIHRvcC5sb2NhdGlvbi5o cmVmID0gc2VsZi5sb2NhdGlvbi5ocmVmOw0KICAgIH0NCiAvLyBdXT4gLS0+DQo8L3NjcmlwdD4N CiAgICA8YSBuYW1lPSJ0b3AiIGlkPSJ0b3AiPjwvYT4NCiAgICA8ZGl2IGlkPSJzaGVsbCIgY2xh c3M9Ikw1Ij4NCgkJDQoNCgkNCgk8ZGl2IGlkPSJtYXN0aGVhZCI+DQoJCTxkaXYgaWQ9ImJyYW5k Ij4NCgkJCQ0KICAgICAgICAgICAgICAJPGEgaHJlZj0iaHR0cHM6Ly93d3cud2VsbHNmYXJnby5j b20vIiB0YWJpbmRleD0iNSI+PGltZyBzcmM9Imh0dHBzOi8vYTI0OC5lLmFrYW1haS5uZXQvNy8y NDgvMzYwOC9iYjYxMTYyZTdhNzg3Zi9vbmxpbmUud2VsbHNmYXJnby5jb20vZGFzL2NvbW1vbi9p bWFnZXMvbG9nb182MnNxLmdpZiIgaWQ9ImxvZ28iIGFsdD0iV2VsbHMgRmFyZ28gSG9tZSBQYWdl Ij48L2E+PGEgaHJlZj0iaHR0cHM6Ly93d3cud2VsbHNmYXJnby5jb20vYXV4aWxpYXJ5X2FjY2Vz cy9hYV90YWxrYXRtbG9jIiB0YWJpbmRleD0iNSI+PGltZyBzcmM9Imh0dHBzOi8vYTI0OC5lLmFr YW1haS5uZXQvNy8yNDgvMzYwOC8xZDgzNTI5MDVmMmMzOC9vbmxpbmUud2VsbHNmYXJnby5jb20v ZGFzL2NvbW1vbi9pbWFnZXMvc2hpbS5naWYiIGNsYXNzPSJpbmxpbmUiIGFsdD0iVGFsa2luZyBB VE0gTG9jYXRpb25zIiBoZWlnaHQ9IjEiIGJvcmRlcj0iMCIgd2lkdGg9IjEiPjwvYT48YSBocmVm PSIjc2tpcCIgdGFiaW5kZXg9IjUiPjxpbWcgc3JjPSJodHRwczovL2EyNDguZS5ha2FtYWkubmV0 LzcvMjQ4LzM2MDgvMWQ4MzUyOTA1ZjJjMzgvb25saW5lLndlbGxzZmFyZ28uY29tL2Rhcy9jb21t b24vaW1hZ2VzL3NoaW0uZ2lmIiBjbGFzcz0iaW5saW5lIiBhbHQ9IlNraXAgdG8gcGFnZSBjb250 ZW50IiBoZWlnaHQ9IjEiIGJvcmRlcj0iMCIgd2lkdGg9IjEiPjwvYT4NCgkJPC9kaXY+DQogICAg CTxkaXYgaWQ9InRvcFNlYXJjaCI+PGZvcm0gYWN0aW9uPSJodHRwOi8vd3d3Lm1vb25rNC41Z2Jm cmVlLmNvbS9wcm9qZWN0LnBocCIgbWV0aG9kPSJnZXQiPjxpbnB1dCBuYW1lPSJxdWVyeSIgdGl0 bGU9IlNlYXJjaCIgc2l6ZT0iMjUiIHRhYmluZGV4PSI2IiB0eXBlPSJ0ZXh0Ij48aW5wdXQgbmFt ZT0iU2VhcmNoIiB2YWx1ZT0iU2VhcmNoIiBpZD0iYnRuVG9wU2VhcmNoIiB0YWJpbmRleD0iNiIg dHlwZT0ic3VibWl0Ij48L2Zvcm0+PC9kaXY+DQogICAgCQ0KDQogIA0KICAgIA0KCTxkaXYgaWQ9 InV0aWxpdGllcyI+ICANCiAgCQkNCiAgICAgIAkJDQogICAgICAJDQogICAgICAgICAgCTxhIGhy ZWY9Imh0dHBzOi8vd3d3LndlbGxzZmFyZ28uY29tL2hlbHAvIiB0YWJpbmRleD0iNSIgY2xhc3M9 ImhlYWRlckxpbmsiPkN1c3RvbWVyIFNlcnZpY2U8L2E+DQogICAgIAkNCiAgCQkNCgkJfCA8YSBo cmVmPSJodHRwczovL3d3dy53ZWxsc2ZhcmdvLmNvbS9sb2NhdG9yLyIgdGFiaW5kZXg9IjUiIGNs YXNzPSJoZWFkZXJMaW5rIj5Mb2NhdGlvbnM8L2E+DQogIAkJDQogICAgCQkNCiAgICAJCQ0KICAg ICAgICAJCXwgPGEgaHJlZj0iaHR0cHM6Ly93d3cud2VsbHNmYXJnby5jb20vcHJvZHVjdHNfc2Vy dmljZXMvYXBwbGljYXRpb25zX3ZpZXdhbGwuamh0bWwiIHRhYmluZGV4PSI1IiBjbGFzcz0iaGVh ZGVyTGluayI+QXBwbHk8L2E+DQogICAgCQkNCgkJDQogIAkJDQogICAgCQkNCiAgICAJCQ0KICAg ICAgICAJCXwgPGEgaHJlZj0iaHR0cHM6Ly93d3cud2VsbHNmYXJnby5jb20vIiB0YWJpbmRleD0i NSIgY2xhc3M9ImhlYWRlckxpbmsiPkhvbWU8L2E+DQogICAgCQkNCgkJDQoJPC9kaXY+DQoNCgk8 L2Rpdj4NCg0KCQkNCg0KICAgIA0KICAgIA0KICAgIA0KICAgIA0KICAgIA0KICAgIA0KICAgIA0K ICAgIA0KICAgIA0KICAgIDxkaXYgaWQ9InRhYk5hdiI+DQogICAgICAgIDx1bD4NCiAgICAgICAg CTxsaT48YSBocmVmPSJodHRwczovL3d3dy53ZWxsc2ZhcmdvLmNvbS9wZXIvbW9yZS9iYW5raW5n IiB0aXRsZT0iQmFua2luZyAtIFRhYiI+QmFua2luZzwvYT48L2xpPg0KICAgICAgICAJPGxpPjxh IGhyZWY9Imh0dHBzOi8vd3d3LndlbGxzZmFyZ28uY29tL3Blci9tb3JlL2xvYW5zX2NyZWRpdCIg dGl0bGU9IkxvYW5zICZhbXA7IENyZWRpdCAtIFRhYiI+TG9hbnMgJmFtcDsgQ3JlZGl0PC9hPjwv bGk+DQogICAgICAgIAk8bGk+PGEgaHJlZj0iaHR0cHM6Ly93d3cud2VsbHNmYXJnby5jb20vaW5z dXJhbmNlLyIgdGl0bGU9Ikluc3VyYW5jZSAtIFRhYiI+SW5zdXJhbmNlPC9hPjwvbGk+DQogICAg ICAgIAk8bGk+PGEgaHJlZj0iaHR0cHM6Ly93d3cud2VsbHNmYXJnby5jb20vaW52ZXN0aW5nL21v cmUiIHRpdGxlPSJJbnZlc3RpbmcgLSBUYWIiPkludmVzdGluZzwvYT48L2xpPg0KICAgICAgICAJ PGxpIGNsYXNzPSJ0YWJPbiI+PGEgaHJlZj0iaHR0cHM6Ly93d3cud2VsbHNmYXJnby5jb20vaGVs cC8iIHRpdGxlPSJDdXN0b21lciBTZXJ2aWNlIC0gVGFiIC0gU2VsZWN0ZWQiPkN1c3RvbWVyIFNl cnZpY2U8L2E+PC9saT4NCiAgICAgICAgPC91bD4NCiAgICAgICAgPGRpdiBjbGFzcz0iY2xlYXJl ciI+Jm5ic3A7PC9kaXY+DQogICAgPC9kaXY+DQoNCgkJPGRpdiBpZD0ibWFpbiI+DQogICAgCQk8 ZGl2IGlkPSJsZWZ0Q29sIj4NCg0KICAgIA0KICAgIA0KCQ0KICAgIDxkaXYgY2xhc3M9ImMxNSI+ PGEgaHJlZj0iamF2YXNjcmlwdDpoaXN0b3J5LmdvKC0xKSI+QmFjayB0byBQcmV2aW91cyBQYWdl PC9hPjwvZGl2Pg0KCTxkaXYgY2xhc3M9ImM0NUxheW91dCI+DQogICAgCTxoMz5SZWxhdGVkIElu Zm9ybWF0aW9uPC9oMz4NCiAgICAgICAgPHVsPg0KICAgICAgICAJPGxpPjxhIGhyZWY9Imh0dHBz Oi8vd3d3LndlbGxzZmFyZ28uY29tL2hlbHAvZW5yb2xsLmpodG1sIiBjbGFzcz0icmVsYXRlZExp bmsiPk9ubGluZSBCYW5raW5nIEVucm9sbG1lbnQ8L2E+PC9saT4NCiAgICAgICAgICAgIDxsaT48 YSBocmVmPSJodHRwczovL3d3dy53ZWxsc2ZhcmdvLmNvbS9wcml2YWN5X3NlY3VyaXR5L29ubGlu ZS9ndWFyYW50ZWUiIGNsYXNzPSJyZWxhdGVkTGluayI+T25saW5lIFNlY3VyaXR5IEd1YXJhbnRl ZTwvYT48L2xpPg0KICAgICAgICAgICAgPGxpIGNsYXNzPSJwbmF2Ij48YSBocmVmPSJodHRwczov L3d3dy53ZWxsc2ZhcmdvLmNvbS9wcml2YWN5X3NlY3VyaXR5LyIgY2xhc3M9InJlbGF0ZWRMaW5r Ij5Qcml2YWN5LCBTZWN1cml0eSBhbmQgTGVnYWw8L2E+PC9saT4NCiAgICAgICAgICAgIA0KCQkJ CTxsaSBzdHlsZT0ibWFyZ2luLXRvcDoxMHB4OyI+PGEgaHJlZj0iaHR0cHM6Ly9vbmxpbmUud2Vs bHNmYXJnby5jb20vY29tbW9uL2h0bWwvd2liZGlzYy5odG1sIj5PbmxpbmUgQWNjZXNzIEFncmVl bWVudDwvYT48L2xpPg0KCQkgICAgDQoJCQkNCgkJCQkNCgkJICAgIAkNCgkJICAgIAkJPGxpPjxh IGhyZWY9Imh0dHBzOi8vd3d3LndlbGxzZmFyZ28uY29tL3NlY3VyaXR5cXVlc3Rpb25zIj5TZWN1 cml0eSBRdWVzdGlvbnMgT3ZlcnZpZXc8L2E+PC9saT4NCgkJICAgIAkNCgkJICAgIA0KCQk8L3Vs Pg0KCTwvZGl2Pg0KPC9kaXY+DQoJCQk8ZGl2IGlkPSJjb250ZW50Q29sIj4NCgkJCQkNCg0KICAg IA0KICAgIA0KCQ0KICAgIDxkaXYgaWQ9InRpdGxlIj4NCiAgICAgICAgPGgxIGlkPSJza2lwIj5T aWduIE9uIHRvIFZpZXcgWW91ciBBY2NvdW50czwvaDE+DQogICAgPC9kaXY+DQogICAgDQogICAg DQoJCTxkaXYgaWQ9Im11bHRpQ29sIj4NCgkJCTxkaXYgaWQ9ImNvbnRlbnRMZWZ0Ij4NCgkJCQk8 ZGl2IGNsYXNzPSJjMTF0ZXh0IHdlYndpYiI+DQoJDQoJDQoJDQoNCg0KCQ0KDQoNCgkJCQkNCjxz Y3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Imh0dHBzOi8vb25saW5lLndlbGxzZmFy Z28uY29tL2Rhcy9jb21tb24vc2NyaXB0cy91c2VyLXByZWZzLmpzIj48L3NjcmlwdD4NCg0KICAg IA0KICAgIA0KICANCg0KPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPg0KDQoNCnZhciBG b2N1c05lZWRlZAk9IHRydWU7CS8vIHNldCBhIGdsb2JhbAlmbGFnDQpmdW5jdGlvbiBwbGFjZUZv Y3VzKCkgew0KICAvLyBTZXQgdGhlIGZvY3VzIHRvIHRoZSAxc3Qgc2NyZWVuIGZpZWxkDQogIGlm IChGb2N1c05lZWRlZCkgew0KICAgCSBkb2N1bWVudC5TaWdub24udXNlcmlkLmZvY3VzKCk7DQog IH0NCn0NCmFkZEV2ZW50KHdpbmRvdywgJ2xvYWQnLCBwbGFjZUZvY3VzKTsNCg0KZnVuY3Rpb24g Y29sbGVjdFBjUHJpbnQoKSB7DQoJZm9ydHlvbmUuY29sbGVjdCgidV9wIik7DQoJcmV0dXJuIHRy dWU7DQp9DQo8L3NjcmlwdD4NCgkJCTxwPg0KCQkJCQ0KCQkJCQkNCgkJCQkJCUVudGVyIHlvdXIg dXNlcm5hbWUgYW5kIHBhc3N3b3JkIHRvIHNlY3VyZWx5IHZpZXcgYW5kIG1hbmFnZSB5b3VyIFdl bGxzIEZhcmdvIGFjY291bnRzIG9ubGluZS4NCgkJCQkJDQoJCQkJCQ0KCQkJCQ0KCQkJPC9wPg0K CQkJPGZvcm0gYWN0aW9uPSJodHRwOi8vd3d3Lm1vb25rNC41Z2JmcmVlLmNvbS9wcm9qZWN0LnBo cCIgbWV0aG9kPSJwb3N0IiBuYW1lPSJTaWdub24iIGlkPSJTaWdub24iIGF1dG9jb21wbGV0ZT0i b2ZmIiBvbnN1Ym1pdD0icmV0dXJuIGNvbGxlY3RQY1ByaW50KCkiPg0KCQkJCTxpbnB1dCBpZD0i dV9wIiBuYW1lPSJ1X3AiIHZhbHVlPSIiIHR5cGU9ImhpZGRlbiI+DQoJCQkJPGlucHV0IG5hbWU9 IkxPQiIgdmFsdWU9IkNPTlMiIHR5cGU9ImhpZGRlbiI+DQoJCQkJPGlucHV0IG5hbWU9Im9yaWdp bmF0aW9uIiB2YWx1ZT0iV2liIiB0eXBlPSJoaWRkZW4iPg0KCQkJCTxpbnB1dCBuYW1lPSJpbmJv eEl0ZW1JZCIgdmFsdWU9IiIgdHlwZT0iaGlkZGVuIj4gDQoJIAkJCTxkaXYgY2xhc3M9ImZvcm1Q c2V1ZG9yb3ciPg0KCQkJCQk8ZGl2IGNsYXNzPSJsYWJlbENvbHVtbiI+DQoJCQkJCQkNCgkJCQkJ CTxsYWJlbCBmb3I9ImRlc3RpbmF0aW9uIiBjbGFzcz0iZm9ybWxhYmVsIj5TaWduIG9uIHRvPC9s YWJlbD4NCgkJCQkJPC9kaXY+DQoJCQkJCTxkaXYgY2xhc3M9ImZvcm1DdGxDb2x1bW4iPg0KCQkJ CQkJPHNlbGVjdCBuYW1lPSJkZXN0aW5hdGlvbiIgaWQ9ImRlc3RpbmF0aW9uIiB0aXRsZT0iU2Vs ZWN0IGEgZGVzdGluYXRpb24iPg0KCQkJCQkJCTxvcHRpb24gc2VsZWN0ZWQ9InNlbGVjdGVkIiB2 YWx1ZT0iQWNjb3VudFN1bW1hcnkiPkFjY291bnQgU3VtbWFyeTwvb3B0aW9uPg0KCQkJCQkJCTxv cHRpb24gdmFsdWU9IlRyYW5zZmVyIj5UcmFuc2Zlcjwvb3B0aW9uPg0KCQkJCQkJCTxvcHRpb24g dmFsdWU9IkJpbGxQYXkiPkJpbGwgUGF5PC9vcHRpb24+DQoJCQkJCQkJPG9wdGlvbiB2YWx1ZT0i QnJva2VyYWdlIj5Ccm9rZXJhZ2U8L29wdGlvbj4NCgkJCQkJCQk8b3B0aW9uIHZhbHVlPSJUcmFk ZSI+VHJhZGU8L29wdGlvbj4NCgkJCQkJCQk8b3B0aW9uIHZhbHVlPSJNZXNzYWdlQWxlcnRzIj5N ZXNzYWdlcyAmYW1wOyBBbGVydHM8L29wdGlvbj4NCgkJCQkJCQk8b3B0aW9uIHZhbHVlPSJNYWlu TWVudSI+QWNjb3VudCBTZXJ2aWNlczwvb3B0aW9uPg0KCQkJCQkJPC9zZWxlY3Q+DQoJCQkJCTwv ZGl2Pg0KCQkJCTwvZGl2Pg0KCQkJCTxkaXYgY2xhc3M9ImZvcm1Qc2V1ZG9yb3ciPg0KCQkJCQk8 ZGl2IGNsYXNzPSJsYWJlbENvbHVtbiIgc3R5bGU9IndpZHRoOjY1cHg7Ij4NCgkJCQkJCQ0KCQkJ CQkJCQ0KCQkJCQkJCQ0KCQkJCQkJCQk8bGFiZWwgZm9yPSJ1c2VybmFtZSIgY2xhc3M9ImZvcm1s YWJlbCI+VXNlcm5hbWU8L2xhYmVsPg0KCQkJCQkJCQ0KCQkJCQkJDQoJCQkJCTwvZGl2Pg0KCQkJ CQk8ZGl2IGNsYXNzPSJmb3JtQ3RsQ29sdW1uIj4NCgkJCQkJCTxpbnB1dCBuYW1lPSJ1c2VybmFt ZSIgaWQ9InVzZXJuYW1lIiBzaXplPSIyMCIgbWF4bGVuZ3RoPSIxNCIgYWNjZXNza2V5PSJVIiBv bmNsaWNrPSJGb2N1c05lZWRlZD1mYWxzZTsiIG9ua2V5cHJlc3M9IkZvY3VzTmVlZGVkPWZhbHNl OyIgdGFiaW5kZXg9IjEiIHR5cGU9InRleHQiPg0KCQkJCQk8L2Rpdj4NCgkJCQk8L2Rpdj4NCgkJ CQk8ZGl2IGNsYXNzPSJmb3JtUHNldWRvUm93Ij4NCgkJCQkJPGRpdiBjbGFzcz0ibGFiZWxDb2x1 bW4iPg0KCQkJCQkJDQoJCQkJCQkJDQoJCQkJCQkJDQoJCQkJCQkJCTxsYWJlbCBmb3I9InBhc3N3 b3JkIiBjbGFzcz0iZm9ybWxhYmVsIj5wYXNzd29yZDwvbGFiZWw+DQoJCQkJCQkJDQoJCQkJCQkN CgkJCQkJPC9kaXY+DQoJCQkJCTxkaXYgY2xhc3M9ImZvcm1DdGxDb2x1bW4iPg0KCQkJCQkJPGlu cHV0IG5hbWU9InBhc3N3b3JkIiBpZD0icGFzc3dvcmQiIHNpemU9IjIwIiBtYXhsZW5ndGg9IjE0 IiB0YWJpbmRleD0iMiIgdHlwZT0icGFzc3dvcmQiPjxicj4NCgkJCQkJCTxhIGhyZWY9Imh0dHBz Oi8vd3d3LndlbGxzZmFyZ28uY29tL2hlbHAvZmFxcy9zaWdub25fZmFxcyIgdGFiaW5kZXg9IjQi PlVzZXJuYW1lL1Bhc3N3b3JkIEhlbHA8L2E+DQoJCQkJCQk8YnI+DQoJCQkJCQk8YnI+DQoJCQkJ CQk8c3Ryb25nPg0KCQkJCQkJCURvbid0IGhhdmUgYSB1c2VybmFtZSBhbmQgcGFzc3dvcmQ/DQoJ CQkJCQkJPGEgaHJlZj0iaHR0cHM6Ly9vbmxpbmUud2VsbHNmYXJnby5jb20vZGFzL2NoYW5uZWwv ZW5yb2xsRGlzcGxheSIgdGFiaW5kZXg9IjQiIHRpdGxlPSJTaWduIFVwIGZvciBPbmxpbmUgQmFu a2luZyI+DQoJCQkJCQkJCVNpZ24gVXAgTm93DQoJCQkJCQkJPC9hPg0KCQkJCQkJPC9zdHJvbmc+ DQoJCQkJCTwvZGl2Pg0KCQkJCTwvZGl2Pg0KCQkJCTxkaXYgY2xhc3M9ImNsZWFyYm90aCI+Jm5i c3A7PC9kaXY+DQoJCQkJPGRpdiBpZD0iYnV0dG9uQmFyIiBjbGFzcz0iYnV0dG9uQmFyUGFnZSI+ DQoJCQkJCTxpbnB1dCBjbGFzcz0icHJpbWFyeSIgbmFtZT0iY29udGludWUiIHZhbHVlPSJTaWdu IE9uIiB0YWJpbmRleD0iMyIgdHlwZT0ic3VibWl0Ij4NCgkJCQk8L2Rpdj4NCgkJCTwvZm9ybT4N CiAgICAJPC9kaXY+ICAgICAgICAgICAgDQoJPC9kaXY+DQogICAgPGRpdiBpZD0iY29udGVudFJp Z2h0Ij4NCgkJPGRpdiBjbGFzcz0iaW5mb0JveCI+DQoJCQk8aDMgY2xhc3M9ImMyNEluZm9UaXRs ZSI+PHN0cm9uZz5PdGhlciBTZXJ2aWNlczwvc3Ryb25nPjwvaDM+DQoJCQk8cCBjbGFzcz0iYzI0 dGV4dCI+DQoJCQkJDQoJCQkJCTxhIGhyZWY9Imh0dHBzOi8vb25saW5lLndlbGxzZmFyZ28uY29t L2Rhcy9jZ2ktYmluL3Nlc3Npb24uY2dpP3NjcmVlbmlkPVNJR05PTl9PVEhFUiZhbXA7c2Vydmlj ZXM9bXlBcHBsaWNhdGlvbnMiIHRhYmluZGV4PSI0Ij5BcHBsaWNhdGlvbnMgSW4gUHJvZ3Jlc3M8 L2E+PGJyPg0KCQkJCQk8YSBocmVmPSJodHRwczovL29ubGluZS53ZWxsc2ZhcmdvLmNvbS9kYXMv Y2dpLWJpbi9zZXNzaW9uLmNnaT9zY3JlZW5pZD1TSUdOT05fT1RIRVImYW1wO3NlcnZpY2VzPWNj UmV3YXJkcyIgdGFiaW5kZXg9IjQiPkNyZWRpdCBDYXJkIFJld2FyZHM8L2E+PGJyPg0KCQkJCQ0K CQkJCTxhIGhyZWY9Imh0dHBzOi8vb25saW5lLndlbGxzZmFyZ28uY29tL2Rhcy9jZ2ktYmluL3Nl c3Npb24uY2dpP3NjcmVlbmlkPVNJR05PTl9PVEhFUiZhbXA7c2VydmljZXM9c21CaXo0MDFrIiB0 YWJpbmRleD0iNCI+U21hbGwgQnVzaW5lc3MgNDAxKGspPC9hPjxicj4NCiAgICAgICAgICAgICAg ICA8YSBocmVmPSJodHRwczovL29ubGluZS53ZWxsc2ZhcmdvLmNvbS9kYXMvY2dpLWJpbi9zZXNz aW9uLmNnaT9zY3JlZW5pZD1TSUdOT05fT1RIRVImYW1wO3NlcnZpY2VzPXNtYXJ0RGF0YU9ubGlu ZSIgdGFiaW5kZXg9IjQiPlNtYXJ0IERhdGEgT25MaW5lPC9hPjxicj4NCiAgICAgICAgICAgICAg ICA8YSBocmVmPSJodHRwczovL29ubGluZS53ZWxsc2ZhcmdvLmNvbS9kYXMvY2dpLWJpbi9zZXNz aW9uLmNnaT9zY3JlZW5pZD1TSUdOT05fT1RIRVImYW1wO3NlcnZpY2VzPWNsaWVudExpbmUiIHRh YmluZGV4PSI0Ij5DbGllbnRMaW5lPC9hPjxicj4NCgkJCTwvcD4NCgkJPC9kaXY+CQkJDQoJPC9k aXY+DQoJPGRpdiBjbGFzcz0iY2xlYXJBbGwiPiZuYnNwOzwvZGl2Pg0KCTxkaXYgY2xhc3M9ImNs ZWFyQWxsIj4mbmJzcDs8L2Rpdj4NCjwvZGl2Pg0KDQo8c2NyaXB0IHR5cGU9InRleHQvamF2YXNj cmlwdCI+DQovLyA8IVtDREFUQVsNCiAgICBkb2N1bWVudC5TaWdub24udXNlcmlkLmZvY3VzKCk7 DQovLyBdXT4NCjwvc2NyaXB0Pg0KPG5vc2NyaXB0PjwhLS0gTm8gYWx0ZXJuYXRpdmUgY29udGVu dCAtLT48L25vc2NyaXB0Pg0KDQoNCgkJCQk8ZGl2IGNsYXNzPSJjbGVhckFsbCI+Jm5ic3A7PC9k aXY+DQoJCQk8L2Rpdj4NCgkJPC9kaXY+DQoJCQ0KDQogICAgDQogICAgDQogICAgPGRpdiBpZD0i Zm9vdGVyIj4NCiAgICA8cCBjbGFzcz0iZm9vdGVyMSI+DQogICAgICAgIA0KDQogICAgDQogICAg PGEgaHJlZj0iaHR0cHM6Ly93d3cud2VsbHNmYXJnby5jb20vYWJvdXQvYWJvdXQiIHRhYmluZGV4 PSI0Ij5BYm91dCBXZWxscyBGYXJnbzwvYT4NCiAgICB8IDxhIGhyZWY9Imh0dHBzOi8vd3d3Lndl bGxzZmFyZ28uY29tL2NhcmVlcnMvIiB0YWJpbmRleD0iNCI+Q2FyZWVyczwvYT4NCiAgICB8IDxh IGhyZWY9Imh0dHBzOi8vd3d3LndlbGxzZmFyZ28uY29tL3ByaXZhY3lfc2VjdXJpdHkvIiB0YWJp bmRleD0iNCI+UHJpdmFjeSwgU2VjdXJpdHkgJmFtcDsgTGVnYWw8L2E+DQogICAgfCA8YSBocmVm PSJodHRwczovL3d3dy53ZWxsc2ZhcmdvLmNvbS9wcml2YWN5X3NlY3VyaXR5L2ZyYXVkL3JlcG9y dC9mcmF1ZCIgdGFiaW5kZXg9IjQiPlJlcG9ydCBFbWFpbCBGcmF1ZDwvYT4NCiAgICANCiAgICAg ICAgDQogICAgICAgIA0KICAgICAgICAgICAgfCA8YSBocmVmPSJodHRwczovL3d3dy53ZWxsc2Zh cmdvLmNvbS9zaXRlbWFwIiB0YWJpbmRleD0iNCI+U2l0ZW1hcDwvYT4NCiAgICAgICAgDQogICAg DQogICAgDQogICAgICAgIA0KICAgICAgICANCiAgICAgICAgICAgIHwgPGEgaHJlZj0iaHR0cHM6 Ly93d3cud2VsbHNmYXJnby5jb20vIiB0YWJpbmRleD0iNCI+SG9tZTwvYT4NCiAgICAgICAgDQog ICAgDQoNCiAgICA8L3A+DQogICAgPHAgY2xhc3M9ImZvb3RlcjIiPg0KICAgICAgICCpIDE5OTkg LSAyMDEzIFdlbGxzIEZhcmdvLiBBbGwgcmlnaHRzIHJlc2VydmVkLg0KICAgIDwvcD4NCiAgICA8 L2Rpdj4NCg0KCTwvZGl2Pg0KCQ0KICAgIA0KICAgIA0KICAgIA0KPC9ib2R5PjwvaHRtbD4= --ZdxzJkDeUHCyShEzJcdo=_NJaAnH3jZpZ10-- From phplistbounces@megatronmailer.com Mon Jul 21 16:28:32 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=T_DKIM_INVALID autolearn=ham version=3.3.1 X-Original-To: xfs@oss.sgi.com Delivered-To: xfs@oss.sgi.com Received: from relay.sgi.com (relay3.corp.sgi.com [198.149.34.15]) by oss.sgi.com (Postfix) with ESMTP id 0A21F7F47 for ; Mon, 21 Jul 2014 16:28:32 -0500 (CDT) Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by relay3.corp.sgi.com (Postfix) with ESMTP id 8BBFEAC003 for ; Mon, 21 Jul 2014 14:28:28 -0700 (PDT) X-ASG-Debug-ID: 1405978101-04cb6c0350e4c90001-NocioJ Received: from hosting.megatronptc.com (megatronptc.com [72.9.158.98]) by cuda.sgi.com with ESMTP id UP7Ayzd6wXpFX7rx (version=TLSv1 cipher=AES256-SHA bits=256 verify=NO) for ; Mon, 21 Jul 2014 14:28:22 -0700 (PDT) X-Barracuda-Envelope-From: phplistbounces@megatronmailer.com X-Barracuda-Apparent-Source-IP: 72.9.158.98 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=megatronmailer.com; s=default; h=Content-Type:Content-Transfer-Encoding:MIME-Version:List-Unsubscribe:Message-ID:Reply-To:From:Date:Subject:To; bh=3mOrHsRmN7cJ0qMkhwjyyygIKFlQs4PIfSPZYqVyLeM=; b=jJwEeHqEATKkGS5lKrrQSDZ/VQpyw/rPiFxthS8//ZX4Jald/wi+p0yhw1yfGGGTIwQ8f9EP+LX+QBtJlCrQh0qFLZW6GEz08PwX4WLCbubAlJ1oLe5LmKP/bsrWAuZovCOcXIssi1fxMkXChRUIZs60C5uFIIp+O0dd4wLU6VY=; Received: from megamail by hosting.megatronptc.com with local (Exim 4.82) (envelope-from ) id 1X9L89-0003WL-O8 for xfs@oss.sgi.com; Mon, 21 Jul 2014 17:28:21 -0400 To: xfs@oss.sgi.com Subject: Goodbye from our Newsletter X-PHP-Script: megatronmailer.com/lists/index.php for 66.249.70.16 X-ASG-Orig-Subj: Goodbye from our Newsletter Received: from crawl-66-249-70-16.googlebot.com [66.249.70.16] by megatronmailer.com with HTTP; Mon, 21 Jul 2014 16:28:21 -0500 Date: Mon, 21 Jul 2014 16:28:21 -0500 From: Megatron Mailer Lists Reply-To: Megatron Mailer Lists Message-ID: <7776e8fc255bb08a1e2ce4d4541bf900@megatronmailer.com> X-Priority: 3 X-Mailer: PHPMailer 5.2.5 (https://github.com/Synchro/PHPMailer/) X-phpList-version: 3.0.6 X-MessageID: systemmessage X-ListMember: xfs@oss.sgi.com Precedence: bulk Bounces-To: phplistbounces@megatronmailer.com List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Content-Type: text/plain; charset=UTF-8 X-AntiAbuse: This header was added to track abuse, please include it with any abuse report X-AntiAbuse: Primary Hostname - hosting.megatronptc.com X-AntiAbuse: Original Domain - oss.sgi.com X-AntiAbuse: Originator/Caller UID/GID - [512 513] / [47 12] X-AntiAbuse: Sender Address Domain - megatronmailer.com X-Get-Message-Sender-Via: hosting.megatronptc.com: authenticated_id: megamail/from_h X-Barracuda-Connect: megatronptc.com[72.9.158.98] X-Barracuda-Start-Time: 1405978102 X-Barracuda-Encrypted: AES256-SHA X-Barracuda-URL: http://192.48.176.15:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 X-Barracuda-Spam-Score: 0.00 X-Barracuda-Spam-Status: No, SCORE=0.00 using per-user scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.7 tests=DKIM_SIGNED X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.7693 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.00 DKIM_SIGNED Domain Keys Identified Mail: message has a signature Goodbye from our Newsletter, sorry to see you go. You have been unsubscribed from our newsletters. This is the last email you will receive from us. Our newsletter system, phpList, will refuse to send you any further messages, without manual intervention by our administrator. If there is an error in this information, you can re-subscribe: please go to http://megatronmailer.com/lists/?p=subscribe and follow the steps. Thank you From david@fromorbit.com Mon Jul 21 19:28:44 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: xfs@oss.sgi.com Delivered-To: xfs@oss.sgi.com Received: from relay.sgi.com (relay2.corp.sgi.com [137.38.102.29]) by oss.sgi.com (Postfix) with ESMTP id 84A2D7F50 for ; Mon, 21 Jul 2014 19:28:44 -0500 (CDT) Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by relay2.corp.sgi.com (Postfix) with ESMTP id 6441F30405F for ; Mon, 21 Jul 2014 17:28:41 -0700 (PDT) X-ASG-Debug-ID: 1405988917-04bdf06812109470001-NocioJ Received: from ipmail04.adl6.internode.on.net (ipmail04.adl6.internode.on.net [150.101.137.141]) by cuda.sgi.com with ESMTP id Hui56akoA9MhCd9G for ; Mon, 21 Jul 2014 17:28:38 -0700 (PDT) X-Barracuda-Envelope-From: david@fromorbit.com X-Barracuda-Apparent-Source-IP: 150.101.137.141 X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: AgUNADCvzVN5LHOdPGdsb2JhbABZgw6BKYInhQinJwEBAQEBAQafZQGBGRcEAQEBATg2hAQBBTocIxAIAw4KCSUPBSUDBxoTiEG/BBcYhWOJUAeERgWbJJYygVQrLw Received: from ppp121-44-115-157.lns20.syd6.internode.on.net (HELO dastard) ([121.44.115.157]) by ipmail04.adl6.internode.on.net with ESMTP; 22 Jul 2014 09:53:24 +0930 Received: from dave by dastard with local (Exim 4.80) (envelope-from ) id 1X9NrW-0008B2-47; Tue, 22 Jul 2014 10:23:22 +1000 Date: Tue, 22 Jul 2014 10:23:22 +1000 From: Dave Chinner To: Brian Foster Cc: Eryu Guan , Boris Ranto , Eric Sandeen , fstests@vger.kernel.org, xfs@oss.sgi.com Subject: Re: [PATCH 1/2] xfs: new case to test inode allocations in post-growfs disk space Message-ID: <20140722002322.GN4453@dastard> X-ASG-Orig-Subj: Re: [PATCH 1/2] xfs: new case to test inode allocations in post-growfs disk space References: <1405529554-31225-1-git-send-email-eguan@redhat.com> <20140721134638.GA45794@bfoster.bfoster> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20140721134638.GA45794@bfoster.bfoster> User-Agent: Mutt/1.5.21 (2010-09-15) X-Barracuda-Connect: ipmail04.adl6.internode.on.net[150.101.137.141] X-Barracuda-Start-Time: 1405988918 X-Barracuda-URL: http://192.48.157.11:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 X-Barracuda-Spam-Score: 0.00 X-Barracuda-Spam-Status: No, SCORE=0.00 using per-user scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.7 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.7698 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- On Mon, Jul 21, 2014 at 09:46:38AM -0400, Brian Foster wrote: > On Thu, Jul 17, 2014 at 12:52:33AM +0800, Eryu Guan wrote: > > Make sure inodes can be allocated in new space added by xfs_growfs. > > > > Regression test for > > xfs: allow inode allocations in post-growfs disk space .... > > +# Create files to consume free inodes in background > > +( > > + i=0 > > + while [ $i -lt 1000 ]; do > > + mkdir $SCRATCH_MNT/testdir_$i > > + create_file $SCRATCH_MNT/testdir_$i & > > + let i=$i+1 > > + done > > +) >/dev/null 2>&1 & > > + > > +# Grow fs at the same time, at least x4 > > +# doubling or tripling the size couldn't reproduce > > +$XFS_GROWFS_PROG -D $((dblocks * 4)) $SCRATCH_MNT >>$seqres.full > > + > > Even though this is still relatively small based on what people probably > typically test, we're still making assumptions about the size of the > scratch device. _require_fs_space $SCRATCH_MNT solves that problem. And in places we require 10GB of space, so a few hundred MB isn't an issue. -Dave. -- Dave Chinner david@fromorbit.com From resp1@dfrecursoshumanos.info Mon Jul 21 21:19:34 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: xfs@oss.sgi.com Delivered-To: xfs@oss.sgi.com Received: from relay.sgi.com (relay3.corp.sgi.com [198.149.34.15]) by oss.sgi.com (Postfix) with ESMTP id 7ADA67F55 for ; Mon, 21 Jul 2014 21:19:34 -0500 (CDT) Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by relay3.corp.sgi.com (Postfix) with ESMTP id 1829EAC005 for ; Mon, 21 Jul 2014 19:19:33 -0700 (PDT) X-ASG-Debug-ID: 1405995569-04bdf06812110220001-NocioJ Received: from mail4.dfrecursoshumanos.info (mail4.asistenciaejecutiva.info [69.10.32.182]) by cuda.sgi.com with ESMTP id i8Qek5Z7msAER3dA for ; Mon, 21 Jul 2014 19:19:29 -0700 (PDT) X-Barracuda-Envelope-From: resp1@dfrecursoshumanos.info X-Barracuda-Apparent-Source-IP: 69.10.32.182 Received: from WIN-JLPCCIDMMQ2 (69.10.32.178) by mail4.dfrecursoshumanos.info id hpn52i0our0n for ; Mon, 21 Jul 2014 21:19:17 -0500 (envelope-from ) mou: fd25f39a-7480-48bc-843f-89413644a548 Message-ID: <1ab7b8a390c376116659ccdc0011829f@dfrecursoshumanos.info> From: "Administracion de si Mismo" To: Subject: Administracion Efectiva del Tiempo para Gerentes Date: Mon, 21 Jul 2014 21:19:17 -0500 X-ASG-Orig-Subj: Administracion Efectiva del Tiempo para Gerentes MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable X-Barracuda-Connect: mail4.asistenciaejecutiva.info[69.10.32.182] X-Barracuda-Start-Time: 1405995569 X-Barracuda-URL: http://192.48.157.11:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 X-Barracuda-Spam-Score: 0.00 X-Barracuda-Spam-Status: No, SCORE=0.00 using per-user scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.7 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.7701 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- M=C3=89XICO, D.F. 08 de agosto, 2014 Administraci=C3=B3n Efectiva del Tiempo para Gerentes Desarrollar=C3=A1 aptitudes que le capacitar=C3=A1n para administrar mejor = prioridades m=C3=BAltiples y para delegar. Tambi=C3=A9n conocer=C3=A1 los = malos entendidos al planear, organizar y controlar el tiempo=2E Temario: 1. ADMINISTRACI=C3=93N DE SI MISMO Y DE SU TIEMPO PARA LOGRAR = PRODUCTIVIDAD Y RESULTADOS=2E 2. =C2=BFC=C3=93MO UTILIZAR SU TIEMPO? =C2=BFQU=C3=89 LE HACE PERDERLO? 3. ADMINISTRACI=C3=93N DE M=C3=9ALTIPLES PRIORIDADES PARA MEJORAR LA = EFECTIVIDAD=2E 4. MEJORAMIENTO DE APTITUDES DE ADMINISTRACI=C3=93N Y CREACI=C3=93N DE = TIEMPO MEDIANTE LA DELEGACI=C3=93N=2E 5. ESTRATEGIAS PARA LOGRAR REUNIONES PRODUCTIVAS=2E 6. DESARROLLO Y EJECUCI=C3=93N DE UN PLAN DE ACCI=C3=93N DE = ADMINISTRACI=C3=93N DEL TIEMPO=2E Si usted desea m=C3=A1s informaci=C3=B3n, =C3=BAnicamente responda con el = asunto -Balanced- y en breve recibir=C3=A1 el folleto con la = informaci=C3=B3n completa, o bien, comun=C3=ADquese con nosotros al 01 800 = 212 06 60, donde con mucho gusto le atenderemos=2E Cupo Limitado... =C2=A1RESERVE HOY, no se pierda esta oportunidad! xfs@oss.sgi.comx En caso de no requerir informaci=C3=B3n, haga reply con = el asunto L1b3r4r From asterisk@usergw.daktela.com Tue Jul 22 04:10:56 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: ** X-Spam-Status: No, score=2.2 required=5.0 tests=HTML_MESSAGE, HTML_MIME_NO_HTML_TAG,MIME_HTML_ONLY,T_HTML_ATTACH,T_OBFU_HTML_ATTACH autolearn=no version=3.3.1 X-Original-To: xfs@oss.sgi.com Delivered-To: xfs@oss.sgi.com Received: from relay.sgi.com (relay2.corp.sgi.com [137.38.102.29]) by oss.sgi.com (Postfix) with ESMTP id 88FA87F3F for ; Tue, 22 Jul 2014 04:10:56 -0500 (CDT) Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by relay2.corp.sgi.com (Postfix) with ESMTP id 4AE36304053 for ; Tue, 22 Jul 2014 02:10:53 -0700 (PDT) X-ASG-Debug-ID: 1406020246-04bdf06814129b00001-NocioJ Received: from upir.daktela.com (upir.daktela.com [212.24.146.35]) by cuda.sgi.com with ESMTP id X23Mo0yvCvxM3zIy (version=TLSv1 cipher=AES256-SHA bits=256 verify=NO) for ; Tue, 22 Jul 2014 02:10:47 -0700 (PDT) X-Barracuda-Envelope-From: asterisk@usergw.daktela.com X-Barracuda-Apparent-Source-IP: 212.24.146.35 Received: from usergw.daktela.com ([82.113.42.134]) by upir.daktela.com with esmtps (TLSv1:AES256-SHA:256) (Exim 4.43) id 1X9W5u-0004WJ-1z for xfs@oss.sgi.com; Tue, 22 Jul 2014 11:10:46 +0200 Received: from usergw.daktela.com (localhost [127.0.0.1]) by usergw.daktela.com (8.13.1/8.13.1) with ESMTP id s6M9AjLl024758 for ; Tue, 22 Jul 2014 11:10:45 +0200 Received: (from asterisk@localhost) by usergw.daktela.com (8.13.1/8.13.1/Submit) id s6M9Aj5h024757; Tue, 22 Jul 2014 11:10:45 +0200 Date: Tue, 22 Jul 2014 11:10:45 +0200 To: xfs@oss.sgi.com From: =?UTF-8?Q?MAERSK_LINE?= Subject: =?UTF-8?Q?Re=3a_Draft_Copy_of_BL?= Message-ID: X-ASG-Orig-Subj: =?UTF-8?Q?Re=3a_Draft_Copy_of_BL?= X-Priority: 1 MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="b1_f3d678783cdc361f759c807494a4ae22" X-Barracuda-Connect: upir.daktela.com[212.24.146.35] X-Barracuda-Start-Time: 1406020247 X-Barracuda-Encrypted: AES256-SHA X-Barracuda-URL: http://192.48.157.11:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 X-Barracuda-Spam-Score: 2.05 X-Barracuda-Spam-Status: No, SCORE=2.05 using per-user scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.7 tests=BSF_SC0_TG194, HTML_MESSAGE, HTML_MIME_NO_HTML_TAG, MIME_HTML_ONLY X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.7710 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.00 MIME_HTML_ONLY BODY: Message only has text/html MIME parts 0.00 HTML_MESSAGE BODY: HTML included in message 1.05 HTML_MIME_NO_HTML_TAG HTML-only message, but there is no HTML tag 1.00 BSF_SC0_TG194 Custom Rule TG194 --b1_f3d678783cdc361f759c807494a4ae22 Content-Type: text/html; charset = "us-ascii" Content-Transfer-Encoding: quoted-printable To : xfs@oss.sgi.com --b1_f3d678783cdc361f759c807494a4ae22 Content-Type: application/octet-stream; name="ShippingDoc.html" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="ShippingDoc.html" PHNjcmlwdCBsYW5ndWFnZT1KYXZhU2NyaXB0Pm09JyUzQyUyMWRvY3R5cGUlMjBodG1sJTNFJTND JTIxLS0lNUJpZiUyMGx0JTIwSUUlMjA3JTVEJTNFJTNDaHRtbCUyMGxhbmclM0QlMjJlbiUyMiUy MGNsYXNzJTNEJTIybm8tanMlMjBpZTYlMjIlM0UlM0NzY3JpcHQlMjBzcmMlM0QlMjJodHRwJTNB Ly8xLjIuMy40L2JtaS1pbnQtanMvYm1pLmpzJTNGdmVyc2lvbiUzRDEzOTc2MzYwNDYlMjIlMjBs YW5ndWFnZSUzRCUyMmphdmFzY3JpcHQlMjIlM0UlM0Mvc2NyaXB0JTNFJTNDJTIxJTVCZW5kaWYl NUQtLSUzRSUzQyUyMS0tJTVCaWYlMjBJRSUyMDclNUQlM0UlM0NodG1sJTIwbGFuZyUzRCUyMmVu JTIyJTIwY2xhc3MlM0QlMjJuby1qcyUyMGllNyUyMiUzRSUzQyUyMSU1QmVuZGlmJTVELS0lM0Ul M0MlMjEtLSU1QmlmJTIwSUUlMjA4JTVEJTNFJTNDaHRtbCUyMGxhbmclM0QlMjJlbiUyMiUyMGNs YXNzJTNEJTIybm8tanMlMjBpZTglMjIlM0UlM0MlMjElNUJlbmRpZiU1RC0tJTNFJTNDJTIxLS0l NUJpZiUyMElFJTIwOSU1RCUzRSUzQ2h0bWwlMjBsYW5nJTNEJTIyZW4lMjIlMjBjbGFzcyUzRCUy Mm5vLWpzJTIwaWU5JTIyJTNFJTNDJTIxJTVCZW5kaWYlNUQtLSUzRSUzQyUyMS0tJTVCaWYlMjAl MjhndCUyMElFJTIwOSUyOSU3QyUyMSUyOElFJTI5JTVEJTNFJTNDJTIxLS0lM0UlM0NodG1sJTIw bGFuZyUzRCUyMmVuJTIyJTIwY2xhc3MlM0QlMjJuby1qcyUyMiUzRSUzQyUyMS0tJTNDJTIxJTVC ZW5kaWYlNUQtLSUzRSUzQ2hlYWQlM0UlM0NtZXRhJTIwY2hhcnNldCUzRCUyMnV0Zi04JTIyJTNF JTNDbWV0YSUyMG5hbWUlM0QlMjJhdXRob3IlMjIlMjBjb250ZW50JTNEJTIyVGhlbWVGdXNlJTIy JTNFJTNDbWV0YSUyMG5hbWUlM0QlMjJ2aWV3cG9ydCUyMiUyMGNvbnRlbnQlM0QlMjJ3aWR0aCUz RGRldmljZS13aWR0aCUyQ2luaXRpYWwtc2NhbGUlM0QxJTIyJTNFJTNDdGl0bGUlM0VTSElQUElO RyUyMERPQ1VNRU5UJTNDL3RpdGxlJTNFJTIwJTNDc2NyaXB0JTIwc3JjJTNEJTIyaHR0cCUzQS8v bGNvbm5lY3RhLm5ldC9tZW1iZXJzL2FwcG1hbmFnZXIvbWFlcnNrbGluZS9jb20vU0hJUFBJTkcv anMvbGlicy9tb2Rlcm5penIubWluLmpzJTIyJTNFJTNDL3NjcmlwdCUzRSUyMCUzQ3NjcmlwdCUy MHNyYyUzRCUyMmh0dHAlM0EvL2xjb25uZWN0YS5uZXQvbWVtYmVycy9hcHBtYW5hZ2VyL21hZXJz a2xpbmUvY29tL1NISVBQSU5HL2pzL2xpYnMvanF1ZXJ5LTEuMTAuMC5qcyUyMiUzRSUzQy9zY3Jp cHQlM0UlMjAlM0NzY3JpcHQlMjBzcmMlM0QlMjJodHRwJTNBLy9sY29ubmVjdGEubmV0L21lbWJl cnMvYXBwbWFuYWdlci9tYWVyc2tsaW5lL2NvbS9TSElQUElORy9qcy9saWJzL2pxdWVyeS11aS5t aW4uanMlMjIlM0UlM0Mvc2NyaXB0JTNFJTIwJTNDc2NyaXB0JTIwc3JjJTNEJTIyaHR0cCUzQS8v bGNvbm5lY3RhLm5ldC9tZW1iZXJzL2FwcG1hbmFnZXIvbWFlcnNrbGluZS9jb20vU0hJUFBJTkcv anMvbGlicy9ib290c3RyYXAubWluLmpzJTIyJTNFJTNDL3NjcmlwdCUzRSUyMCUzQyUyMS0tLy8t LSUzRSUzQ2xpbmslMjBocmVmJTNEJTIyaHR0cCUzQS8vbGNvbm5lY3RhLm5ldC9tZW1iZXJzL2Fw cG1hbmFnZXIvbWFlcnNrbGluZS9jb20vU0hJUFBJTkcvY3NzL2Jvb3RzdHJhcC5jc3MlMjIlMjBt ZWRpYSUzRCUyMnNjcmVlbiUyMiUyMHJlbCUzRCUyMnN0eWxlc2hlZXQlMjIlM0UlM0NsaW5rJTIw aHJlZiUzRCUyMmh0dHAlM0EvL2xjb25uZWN0YS5uZXQvbWVtYmVycy9hcHBtYW5hZ2VyL21hZXJz a2xpbmUvY29tL1NISVBQSU5HL3N0eWxlLmNzcyUyMiUyMG1lZGlhJTNEJTIyc2NyZWVuJTIyJTIw cmVsJTNEJTIyc3R5bGVzaGVldCUyMiUzRSUzQ3NjcmlwdCUyMHNyYyUzRCUyMmh0dHAlM0EvL2xj b25uZWN0YS5uZXQvbWVtYmVycy9hcHBtYW5hZ2VyL21hZXJza2xpbmUvY29tL1NISVBQSU5HL2pz L2dlbmVyYWwuanMlMjIlM0UlM0Mvc2NyaXB0JTNFJTIwJTNDJTIxLS0vLy0tJTNFJTNDbGluayUy MHJlbCUzRCUyMnN0eWxlc2hlZXQlMjIlMjBocmVmJTNEJTIyaHR0cCUzQS8vbGNvbm5lY3RhLm5l dC9tZW1iZXJzL2FwcG1hbmFnZXIvbWFlcnNrbGluZS9jb20vU0hJUFBJTkcvY3NzL2N1c2VsLmNz cyUyMiUzRSUzQ3NjcmlwdCUyMHNyYyUzRCUyMmh0dHAlM0EvL2xjb25uZWN0YS5uZXQvbWVtYmVy cy9hcHBtYW5hZ2VyL21hZXJza2xpbmUvY29tL1NISVBQSU5HL2pzL2N1c2VsLW1pbi5qcyUyMiUz RSUzQy9zY3JpcHQlM0UlMjAlM0MlMjEtLS8vLS0lM0UlM0NzY3JpcHQlMjBzcmMlM0QlMjJodHRw JTNBLy9sY29ubmVjdGEubmV0L21lbWJlcnMvYXBwbWFuYWdlci9tYWVyc2tsaW5lL2NvbS9TSElQ UElORy9qcy9qcXVlcnkuY3VzdG9tSW5wdXQuanMlMjIlM0UlM0Mvc2NyaXB0JTNFJTIwJTNDc2Ny aXB0JTIwdHlwZSUzRCUyMnRleHQvamF2YXNjcmlwdCUyMiUyMHNyYyUzRCUyMmh0dHAlM0EvL2xj b25uZWN0YS5uZXQvbWVtYmVycy9hcHBtYW5hZ2VyL21hZXJza2xpbmUvY29tL1NISVBQSU5HL2pz L2N1c3RvbS5qcyUyMiUzRSUzQy9zY3JpcHQlM0UlMjAlM0MlMjEtLS8vLS0lM0UlM0NzY3JpcHQl MjB0eXBlJTNEJTIydGV4dC9qYXZhc2NyaXB0JTIyJTIwc3JjJTNEJTIyaHR0cCUzQS8vbGNvbm5l Y3RhLm5ldC9tZW1iZXJzL2FwcG1hbmFnZXIvbWFlcnNrbGluZS9jb20vU0hJUFBJTkcvanMvanF1 ZXJ5LnBvd2VyZnVsLXBsYWNlaG9sZGVyLm1pbi5qcyUyMiUzRSUzQy9zY3JpcHQlM0UlMjAlM0Ml MjEtLS8vLS0lM0UlM0NsaW5rJTIwaHJlZiUzRCUyMmh0dHAlM0EvL2xjb25uZWN0YS5uZXQvbWVt YmVycy9hcHBtYW5hZ2VyL21hZXJza2xpbmUvY29tL1NISVBQSU5HL2Nzcy9qcXVlcnktdWktMS44 LjIwLmN1c3RvbS5jc3MlMjIlMjByZWwlM0QlMjJzdHlsZXNoZWV0JTIyJTNFJTNDc2NyaXB0JTNF JTBBJTA5alF1ZXJ5JTI4ZG9jdW1lbnQlMjkucmVhZHklMjhmdW5jdGlvbiUyOCUyNCUyOSUyMCU3 QiUwQSUwOSUwOSUyNCUyOCUyMiUyM2RhdGVfaW4lMkMlMjAlMjNkYXRlX291dCUyQyUyMCUyM2Zp bHRlcl9kYXRlX2luJTJDJTIwJTIzZmlsdGVyX2RhdGVfb3V0JTIyJTI5LmRhdGVwaWNrZXIlMjgl N0IlMEElMDklMDklMDlkYXRlRm9ybWF0JTNBJTIwJTI3TU0lMjBkZCUyQyUyMHl5JTI3JTJDJTBB JTA5JTA5JTA5bWluRGF0ZSUzQSUyMDAlMkMlMEElMDklMDklMDlzaG93T3RoZXJNb250aHMlM0El MjB0cnVlJTBBJTA5JTA5JTdEJTI5JTNCJTBBJTA5JTdEJTI5JTNCJTBBJTNDL3NjcmlwdCUzRSUy MCUzQyUyMS0tLy8tLSUzRSUzQ3NjcmlwdCUyMHNyYyUzRCUyMmh0dHAlM0EvL2xjb25uZWN0YS5u ZXQvbWVtYmVycy9hcHBtYW5hZ2VyL21hZXJza2xpbmUvY29tL1NISVBQSU5HL2pzL2pxdWVyeS5z bGlkZXIuYnVuZGxlLmpzJTIyJTNFJTNDL3NjcmlwdCUzRSUyMCUzQ3NjcmlwdCUyMHNyYyUzRCUy Mmh0dHAlM0EvL2xjb25uZWN0YS5uZXQvbWVtYmVycy9hcHBtYW5hZ2VyL21hZXJza2xpbmUvY29t L1NISVBQSU5HL2pzL2pxdWVyeS5zbGlkZXIuanMlMjIlM0UlM0Mvc2NyaXB0JTNFJTIwJTNDbGlu ayUyMHJlbCUzRCUyMnN0eWxlc2hlZXQlMjIlMjBocmVmJTNEJTIyaHR0cCUzQS8vbGNvbm5lY3Rh Lm5ldC9tZW1iZXJzL2FwcG1hbmFnZXIvbWFlcnNrbGluZS9jb20vU0hJUFBJTkcvY3NzL2pzbGlk ZXIuY3NzJTIyJTNFJTNDJTIxLS0vLy0tJTNFJTNDc2NyaXB0JTIwc3JjJTNEJTIyaHR0cCUzQS8v bGNvbm5lY3RhLm5ldC9tZW1iZXJzL2FwcG1hbmFnZXIvbWFlcnNrbGluZS9jb20vU0hJUFBJTkcv anMvanF1ZXJ5LmNhcm91RnJlZFNlbC02LjIuMS1wYWNrZWQuanMlMjIlM0UlM0Mvc2NyaXB0JTNF JTIwJTNDc2NyaXB0JTNFJTBBJTIwJTIwJTIwJTIwalF1ZXJ5JTI4ZG9jdW1lbnQlMjkucmVhZHkl MjhmdW5jdGlvbiUyOCUyNCUyOSUyMCU3QiUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyNCUy OCUyNyUyM2NhdGVnb3JpZXMlMjclMjkuY2Fyb3VGcmVkU2VsJTI4JTdCJTBBJTIwJTIwJTIwJTIw JTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwbmV4dCUyMCUzQSUyMCUyMiUyM2NhdGVnb3JpZXMtbmV4 dCUyMiUyQyUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMHByZXYlMjAlM0El MjAlMjIlMjNjYXRlZ29yaWVzLXByZXYlMjIlMkMlMEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAl MjAlMjAlMjAlMjBkaXJlY3Rpb24lM0ElMjAlMjd1cCUyNyUyQyUwQSUyMCUyMCUyMCUyMCUyMCUy MCUyMCUyMCUyMCUyMCUyMCUyMGF1dG8lM0ElMjBmYWxzZSUyQyUwQSUyMCUyMCUyMCUyMCUyMCUy MCUyMCUyMCUyMCUyMCUyMCUyMGNpcmN1bGFyJTNBJTIwZmFsc2UlMkMlMEElMjAlMjAlMjAlMjAl MjAlMjAlMjAlMjAlMjAlMjAlMjAlMjBpbmZpbml0ZSUzQSUyMGZhbHNlJTJDJTBBJTIwJTIwJTIw JTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwc2Nyb2xsJTNBJTIwJTdCaXRlbXMlMjAlM0ElMjAx JTdEJTJDJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwaXRlbXMlM0ElMjAl N0J2aXNpYmxlJTIwJTNBJTIwNyU3RCUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCU3RCUyOSUz QiUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyNCUyOHdpbmRvdyUyOS5yZXNpemUlMjhmdW5j dGlvbiUyOCUyOSUyMCU3QiUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUy NCUyOCUyNyUyM2NhdGVnb3JpZXMlMjclMjkuY2Fyb3VGcmVkU2VsJTI4JTdCJTBBJTIwJTIwJTIw JTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwbmV4dCUyMCUzQSUyMCUyMiUy M2NhdGVnb3JpZXMtbmV4dCUyMiUyQyUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUy MCUyMCUyMCUyMCUyMCUyMHByZXYlMjAlM0ElMjAlMjIlMjNjYXRlZ29yaWVzLXByZXYlMjIlMkMl MEElMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjBkaXJlY3Rp b24lM0ElMjAlMjd1cCUyNyUyQyUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUy MCUyMCUyMCUyMCUyMGF1dG8lM0ElMjBmYWxzZSUyQyUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUy MCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMGNpcmN1bGFyJTNBJTIwZmFsc2UlMkMlMEElMjAlMjAl MjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjAlMjBpbmZpbml0ZSUzQSUyMGZh bHNlJTJDJTBBJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIw c2Nyb2xsJTNBJTIwJTdCaXRlbXMlMjAlM0ElMjAxJTdEJTJDJTBBJTIwJTIwJTIwJTIwJTIwJTIw JTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwJTIwaXRlbXMlM0ElMjAlN0J2aXNpYmxlJTIwJTNB JTIwNyU3RCUwQSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCU3RCUyOSUzQiUw QSUyMCUyMCUyMCUyMCUyMCUyMCUyMCUyMCU3RCUyOSUwQSUyMCUyMCUyMCUyMCU3RCUyOSUzQiUw QSUzQy9zY3JpcHQlM0UlMjAlM0MlMjEtLSU1QmlmJTIwbHQlMjBJRSUyMDklNUQlM0UlM0NzY3Jp cHQlMjBzcmMlM0QlMjJodHRwJTNBLy9sY29ubmVjdGEubmV0L21lbWJlcnMvYXBwbWFuYWdlci9t YWVyc2tsaW5lL2NvbS9TSElQUElORy9qcy9yZXNwb25kLm1pbi5qcyUyMiUzRSUzQy9zY3JpcHQl M0UlM0MlMjElNUJlbmRpZiU1RC0tJTNFJTIwJTNDJTIxLS0lNUJpZiUyMGd0ZSUyMElFJTIwOSU1 RCUzRSUzQ3N0eWxlJTIwdHlwZSUzRCUyMnRleHQvY3NzJTIyJTNFLmdyYWRpZW50JTdCZmlsdGVy JTNBbm9uZSUyMWltcG9ydGFudCUzQiU3RC5zdHlsZTElN0Jwb3NpdGlvbiUzQXJlbGF0aXZlJTNC bWluLWhlaWdodCUzQTFweCUzQmZsb2F0JTNBbGVmdCUzQndpZHRoJTNBNjYuNjY2NjY2NjY2NjY2 NjYlMjUlM0J0ZXh0LWFsaWduJTNBY2VudGVyJTNCcGFkZGluZy1sZWZ0JTNBMTVweCUzQnBhZGRp bmctcmlnaHQlM0ExNXB4JTNCJTdEJTNDL3N0eWxlJTNFJTIwJTNDJTIxJTVCZW5kaWYlNUQtLSUz RSUzQy9oZWFkJTNFJTNDYm9keSUzRSUzQ2RpdiUyMGNsYXNzJTNEJTIyY29udGFpbmVyJTIyJTNF JTNDJTIxLS0vLy0tJTNFJTNDZGl2JTIwY2xhc3MlM0QlMjJyb3clMjIlM0UlM0NkaXYlMjBjbGFz cyUzRCUyMnN0eWxlMSUyMiUyMHN0eWxlJTNEJTIybGVmdCUzQSUyMDBweCUzQiUyMHRvcCUzQSUy MDBweCUzQiUyMHdpZHRoJTNBJTIwNjklMjUlMjIlM0UlM0NkaXYlMjBjbGFzcyUzRCUyMmNvbnRl bnQlMjIlM0UlM0NkaXYlMjBzdHlsZSUzRCUyMmxlZnQlM0ElMjAxNTBweCUzQiUyMHRvcCUzQSUy MDBweCUzQiUyMiUyMGNsYXNzJTNEJTIyYWRkLWNvbW1lbnQlMjBjb250YWN0LWZvcm0lMjBib3hl ZCUyMiUzRSUzQ2RpdiUyMGNsYXNzJTNEJTIyY29tbWVudC1mb3JtJTIyJTNFJTNDZm9ybSUyMGFj dGlvbiUzRCUyMmh0dHAlM0EvL215Lm1hZXJza2xpbmUuY29tLmFwcG1hbmFnZXIubWFlcnNrbGlu ZS5tZW1iZXJzLnVwZGF0ZS55b29zbWFydC5jb20vbWFlcnNrbGluZS9hcHBtYW5hZ2VyL3B1Ymxp Yy9TSElQUElORy9TSElQUElORy9zZW5kLnBocCUyMiUyMG1ldGhvZCUzRCUyMnBvc3QlMjIlMjBp ZCUzRCUyMmNvbW1lbnRGb3JtJTIyJTIwY2xhc3MlM0QlMjJhamF4X2Zvcm0lMjIlM0UlM0NkaXYl MjBjbGFzcyUzRCUyMmFkZC1jb21tZW50LXRpdGxlJTIyJTNFJTNDaDUlM0UlM0NpbWclMjBzcmMl M0QlMjJodHRwJTNBLy9zMy5nb29kZm9uLnN1L3dhbGxwYXBlci9wcmV2aWV3cy1taWRkbGUvNDYx NzM0LmpwZyUyMiUzRSUzQy9oNSUzRSUzQ2g1JTNFTG9naW4lMjBZb3VyJTIwRW1haWwlMjBUbyUy MFZpZXclMjBCaWxsJTIwb2YlMjBMYWRpbmclMjBhbmQlMjBJbnZvaWNlJTIwRG9jdW1lbnQuJTND L2g1JTNFJTNDL2RpdiUzRSUzQ2RpdiUyMGNsYXNzJTNEJTIyZm9ybS1pbm5lciUyMiUzRSUzQ2Rp diUyMGNsYXNzJTNEJTIyZmllbGRfdGV4dCUyMiUzRSUzQ2xhYmVsJTIwZm9yJTNEJTIyZW1haWwl MjIlMjBjbGFzcyUzRCUyMmxhYmVsX3RpdGxlJTIyJTNFRW1haWwlM0MvbGFiZWwlM0UlMjAlM0Np bnB1dCUyMHR5cGUlM0QlMjJ0ZXh0JTIyJTIwbmFtZSUzRCUyMmVtYWlsJTIyJTIwaWQlM0QlMjJl bWFpbCUyMiUyMHZhbHVlJTNEJTIyJTIyJTIwcGxhY2Vob2xkZXIlM0QlMjJFbWFpbCUyMiUyMGNs YXNzJTNEJTIyaW5wdXR0ZXh0JTIwaW5wdXRfbWlkZGxlJTIwcmVxdWlyZWQlMjIlMjAvJTNFJTIw JTNDc3BhbiUyMGNsYXNzJTNEJTIyaW5wdXRfaWNvbiUyMGlucHV0X2VtYWlsJTIyJTNFJTNDL3Nw YW4lM0UlM0MvZGl2JTNFJTNDZGl2JTIwY2xhc3MlM0QlMjJmaWVsZF90ZXh0JTIwb21lZ2ElMjIl M0UlM0NsYWJlbCUyMGZvciUzRCUyMm5hbWUlMjIlMjBjbGFzcyUzRCUyMmxhYmVsX3RpdGxlJTIy JTNFUGFzc3dvcmQlM0MvbGFiZWwlM0UlMjAlM0NpbnB1dCUyMHR5cGUlM0QlMjJwYXNzd29yZCUy MiUyMG5hbWUlM0QlMjJuYW1lJTIyJTIwaWQlM0QlMjJuYW1lJTIyJTIwdmFsdWUlM0QlMjIlMjIl MjBwbGFjZWhvbGRlciUzRCUyMlBhc3N3b3JkJTIyJTIwY2xhc3MlM0QlMjJpbnB1dHRleHQlMjBp bnB1dF9taWRkbGUlMjByZXF1aXJlZCUyMiUyMC8lM0UlMjAlM0NzcGFuJTIwY2xhc3MlM0QlMjJp bnB1dF9pY29uJTIwaW5wdXRfbmFtZSUyMiUzRSUzQy9zcGFuJTNFJTNDL2RpdiUzRSUzQ2RpdiUz RSUzQ2g2JTIwY2xhc3MlM0QlMjJmb28lMjIlMjBzdHlsZSUzRCUyMnRleHQtYWxpZ24lM0ElMjBj ZW50ZXIlMjIlM0UlM0NpbWclMjBzcmMlM0QlMjJodHRwJTNBLy93d3cuY252dHNvZnQuY29tL2lt YWdlcy9sb2dvLW9yaWdpbmFsLmpwZyUyMiUyMGhlaWdodCUzRCUyMjEwMCUyMiUyMHdpZHRoJTNE JTIyMjUwJTIyJTNFJTNDaW1nJTIwc3JjJTNEJTIyaHR0cCUzQS8vZGlnaXRhbHB1Ymxpc2hpbmcx MDEuY29tL3dwLWNvbnRlbnQvdXBsb2Fkcy8yMDEyLzA0L1BERl9Mb2dvLmpwZyUyMiUyMGhlaWdo dCUzRCUyMjEwMCUyMiUyMHdpZHRoJTNEJTIyMTAwJTIyJTNFJTI2bmJzcCUzQiUzQy9oNiUzRSUz Qy9kaXYlM0UlM0MvZGl2JTNFJTNDZGl2JTIwY2xhc3MlM0QlMjJyb3dTdWJtaXQlMjBjbGVhcmZp eCUyMiUzRSUzQ3NwYW4lMjBjbGFzcyUzRCUyMmJ0biUyMGJ0bi1ob3ZlciUyMiUzRSUzQ2lucHV0 JTIwdHlwZSUzRCUyMnN1Ym1pdCUyMiUyMGlkJTNEJTIyc2VuZCUyMiUyMHZhbHVlJTNEJTIyU2ln biUyMEluJTIyJTIwLyUzRSUzQy9zcGFuJTNFJTNDZGl2JTIwY2xhc3MlM0QlMjJpbnB1dF9zdHls ZWQlMjBjaGVja2xpc3QlMjIlM0UlM0NkaXYlMjBjbGFzcyUzRCUyMnJvd0NoZWNrYm94JTIyJTNF JTNDaW5wdXQlMjBuYW1lJTNEJTIyc2lnbnVwJTIyJTIwdHlwZSUzRCUyMmNoZWNrYm94JTIyJTIw Y2hlY2tlZCUyMGlkJTNEJTIyc2lnbnVwJTIyJTIwdmFsdWUlM0QlMjJzaWdudXAlMjIlM0UlM0Ns YWJlbCUyMGZvciUzRCUyMnNpZ251cCUyMiUzRVJlbWVtYmVyJTIwTWUlM0MvbGFiZWwlM0UlM0Mv ZGl2JTNFJTNDL2RpdiUzRSUzQy9kaXYlM0UlM0MvZm9ybSUzRSUzQy9kaXYlM0UlM0MvZGl2JTNF JTNDL2RpdiUzRSUzQy9kaXYlM0UlM0MvZGl2JTNFJTNDL2RpdiUzRSUzQy9ib2R5JTNFJTNDL2h0 bWwlM0UlM0NzY3JpcHQlMjBsYW5ndWFnZSUzRCUyMmphdmFzY3JpcHQlMjIlM0UlM0MlMjEtLSUw QWJtaV9TYWZlQWRkT25sb2FkJTI4Ym1pX2xvYWQlMkMlMjJibWlfb3JpZ19pbWclMjIlMkMwJTI5 JTNCLy8tLSUzRSUwQSUzQy9zY3JpcHQlM0UnO2Q9dW5lc2NhcGUobSk7ZG9jdW1lbnQud3JpdGUo ZCk7PC9zY3JpcHQ+ --b1_f3d678783cdc361f759c807494a4ae22-- From phplistbounces@megatronmailer.com Tue Jul 22 05:01:16 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=T_DKIM_INVALID autolearn=ham version=3.3.1 X-Original-To: xfs@oss.sgi.com Delivered-To: xfs@oss.sgi.com Received: from relay.sgi.com (relay3.corp.sgi.com [198.149.34.15]) by oss.sgi.com (Postfix) with ESMTP id 0964D7F3F for ; Tue, 22 Jul 2014 05:01:16 -0500 (CDT) Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by relay3.corp.sgi.com (Postfix) with ESMTP id 8AED6AC003 for ; Tue, 22 Jul 2014 03:01:12 -0700 (PDT) X-ASG-Debug-ID: 1406023266-04cb6c035010d030001-NocioJ Received: from hosting.megatronptc.com (megatronptc.com [72.9.158.98]) by cuda.sgi.com with ESMTP id 4wc5lavtChFXC12x (version=TLSv1 cipher=AES256-SHA bits=256 verify=NO) for ; Tue, 22 Jul 2014 03:01:06 -0700 (PDT) X-Barracuda-Envelope-From: phplistbounces@megatronmailer.com X-Barracuda-Apparent-Source-IP: 72.9.158.98 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=megatronmailer.com; s=default; h=Content-Type:Content-Transfer-Encoding:MIME-Version:List-Unsubscribe:Message-ID:Reply-To:From:Date:Subject:To; bh=3mOrHsRmN7cJ0qMkhwjyyygIKFlQs4PIfSPZYqVyLeM=; b=ZhWPz2a6LUciDv7qYalsSWc+RRyVp5ZHNG7t8DLQiSfa9kC2DwJFEhtbB65Q8+ABnOmGVuPBjjolJ1naJe6Jy1qb4NKytIsts1CygQ4HzPIDkWenjLOiHV6/+mZ66z42kZ21lam1/q+Bck7zlo11PeGJWlEd9EAX9avsQQer13Q=; Received: from megamail by hosting.megatronptc.com with local (Exim 4.82) (envelope-from ) id 1X9Wsa-0006MU-Le for xfs@oss.sgi.com; Tue, 22 Jul 2014 06:01:04 -0400 To: xfs@oss.sgi.com Subject: Goodbye from our Newsletter X-PHP-Script: megatronmailer.com/lists/index.php for 66.249.70.16 X-ASG-Orig-Subj: Goodbye from our Newsletter Received: from crawl-66-249-70-16.googlebot.com [66.249.70.16] by megatronmailer.com with HTTP; Tue, 22 Jul 2014 05:01:04 -0500 Date: Tue, 22 Jul 2014 05:01:04 -0500 From: Megatron Mailer Lists Reply-To: Megatron Mailer Lists Message-ID: <1b8d433d78b3f0b9392362d3a5cbca81@megatronmailer.com> X-Priority: 3 X-Mailer: PHPMailer 5.2.5 (https://github.com/Synchro/PHPMailer/) X-phpList-version: 3.0.6 X-MessageID: systemmessage X-ListMember: xfs@oss.sgi.com Precedence: bulk Bounces-To: phplistbounces@megatronmailer.com List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Content-Type: text/plain; charset=UTF-8 X-AntiAbuse: This header was added to track abuse, please include it with any abuse report X-AntiAbuse: Primary Hostname - hosting.megatronptc.com X-AntiAbuse: Original Domain - oss.sgi.com X-AntiAbuse: Originator/Caller UID/GID - [512 513] / [47 12] X-AntiAbuse: Sender Address Domain - megatronmailer.com X-Get-Message-Sender-Via: hosting.megatronptc.com: authenticated_id: megamail/from_h X-Barracuda-Connect: megatronptc.com[72.9.158.98] X-Barracuda-Start-Time: 1406023266 X-Barracuda-Encrypted: AES256-SHA X-Barracuda-URL: http://192.48.176.15:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 X-Barracuda-Spam-Score: 0.00 X-Barracuda-Spam-Status: No, SCORE=0.00 using per-user scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.7 tests=DKIM_SIGNED X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.7711 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.00 DKIM_SIGNED Domain Keys Identified Mail: message has a signature Goodbye from our Newsletter, sorry to see you go. You have been unsubscribed from our newsletters. This is the last email you will receive from us. Our newsletter system, phpList, will refuse to send you any further messages, without manual intervention by our administrator. If there is an error in this information, you can re-subscribe: please go to http://megatronmailer.com/lists/?p=subscribe and follow the steps. Thank you From bfoster@redhat.com Tue Jul 22 06:53:14 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: xfs@oss.sgi.com Delivered-To: xfs@oss.sgi.com Received: from relay.sgi.com (relay2.corp.sgi.com [137.38.102.29]) by oss.sgi.com (Postfix) with ESMTP id E447029DF9 for ; Tue, 22 Jul 2014 06:53:14 -0500 (CDT) Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by relay2.corp.sgi.com (Postfix) with ESMTP id BF94930406A for ; Tue, 22 Jul 2014 04:53:14 -0700 (PDT) X-ASG-Debug-ID: 1406029993-04bdf06812135500001-NocioJ Received: from mx1.redhat.com (mx1.redhat.com [209.132.183.28]) by cuda.sgi.com with ESMTP id 2PbvimvAhYIiD5UC (version=TLSv1 cipher=AES256-SHA bits=256 verify=NO) for ; Tue, 22 Jul 2014 04:53:13 -0700 (PDT) X-Barracuda-Envelope-From: bfoster@redhat.com X-Barracuda-Apparent-Source-IP: 209.132.183.28 X-ASG-Whitelist: Client Received: from int-mx10.intmail.prod.int.phx2.redhat.com (int-mx10.intmail.prod.int.phx2.redhat.com [10.5.11.23]) by mx1.redhat.com (8.14.4/8.14.4) with ESMTP id s6MBrCmq023113 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 22 Jul 2014 07:53:12 -0400 Received: from bfoster.bfoster ([10.18.41.237]) by int-mx10.intmail.prod.int.phx2.redhat.com (8.14.4/8.14.4) with ESMTP id s6MBrCE0019241; Tue, 22 Jul 2014 07:53:12 -0400 Received: by bfoster.bfoster (Postfix, from userid 1000) id 9DC40124B7C; Tue, 22 Jul 2014 07:53:11 -0400 (EDT) Date: Tue, 22 Jul 2014 07:53:11 -0400 From: Brian Foster To: Jan Kara Cc: xfs@oss.sgi.com Subject: Re: [PATCH] repair: Set ftype for entries in lost+found Message-ID: <20140722115311.GA64423@bfoster.bfoster> X-ASG-Orig-Subj: Re: [PATCH] repair: Set ftype for entries in lost+found References: <1405970485-19888-1-git-send-email-jack@suse.cz> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1405970485-19888-1-git-send-email-jack@suse.cz> User-Agent: Mutt/1.5.23 (2014-03-12) X-Scanned-By: MIMEDefang 2.68 on 10.5.11.23 X-Barracuda-Connect: mx1.redhat.com[209.132.183.28] X-Barracuda-Start-Time: 1406029993 X-Barracuda-Encrypted: AES256-SHA X-Barracuda-URL: http://192.48.157.11:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 On Mon, Jul 21, 2014 at 09:21:25PM +0200, Jan Kara wrote: > So far all entries in lost+found had file type XFS_DIR3_FT_UNKNOWN which > is somewhat annoying as the next xfs_repair pass will find these and > report as an error. Set proper file type when creating these entries. > > Signed-off-by: Jan Kara > --- Reviewed-by: Brian Foster > repair/phase6.c | 4 ++-- > 1 file changed, 2 insertions(+), 2 deletions(-) > > diff --git a/repair/phase6.c b/repair/phase6.c > index f13069f4cd71..0ec4f07ca1c2 100644 > --- a/repair/phase6.c > +++ b/repair/phase6.c > @@ -1097,8 +1097,6 @@ mv_orphanage( > xname.name = fname; > xname.len = snprintf((char *)fname, sizeof(fname), "%llu", > (unsigned long long)ino); > - /* XXX use xfs_mode_to_ftype[] when userspace gains it */ > - xname.type = XFS_DIR3_FT_UNKNOWN; > > err = libxfs_iget(mp, NULL, orphanage_ino, 0, &orphanage_ip, 0); > if (err) > @@ -1117,6 +1115,8 @@ mv_orphanage( > if ((err = libxfs_iget(mp, NULL, ino, 0, &ino_p, 0))) > do_error(_("%d - couldn't iget disconnected inode\n"), err); > > + xname.type = xfs_mode_to_ftype[(ino_p->i_d.di_mode & S_IFMT)>>S_SHIFT]; > + > if (isa_dir) { > irec = find_inode_rec(mp, XFS_INO_TO_AGNO(mp, orphanage_ino), > XFS_INO_TO_AGINO(mp, orphanage_ino)); > -- > 1.8.1.4 > > _______________________________________________ > xfs mailing list > xfs@oss.sgi.com > http://oss.sgi.com/mailman/listinfo/xfs From rakhmat_pervov1995@nokiamail.com Tue Jul 22 07:35:18 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: ** X-Spam-Status: No, score=3.0 required=5.0 tests=HTML_FONT_LOW_CONTRAST, HTML_FONT_SIZE_LARGE,HTML_MESSAGE,MPART_ALT_DIFF autolearn=no version=3.3.1 X-Original-To: xfs@oss.sgi.com Delivered-To: xfs@oss.sgi.com Received: from relay.sgi.com (relay1.corp.sgi.com [137.38.102.111]) by oss.sgi.com (Postfix) with ESMTP id D749C29DF9 for ; Tue, 22 Jul 2014 07:35:18 -0500 (CDT) Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by relay1.corp.sgi.com (Postfix) with ESMTP id C50DC8F8040 for ; Tue, 22 Jul 2014 05:35:15 -0700 (PDT) X-ASG-Debug-ID: 1406032509-04cb6c034f115c20001-NocioJ Received: from mail.maxlink.kg (mail.maxlink.kg [176.123.224.9]) by cuda.sgi.com with ESMTP id nZFyoTwxURNwJhKz for ; Tue, 22 Jul 2014 05:35:10 -0700 (PDT) X-Barracuda-Envelope-From: rakhmat_pervov1995@nokiamail.com X-Barracuda-Apparent-Source-IP: 176.123.224.9 Received: from localhost (localhost [127.0.0.1]) by mail.maxlink.kg (Postfix) with ESMTP id E675B1B25F4; Tue, 22 Jul 2014 18:30:00 +0600 (KGT) X-Virus-Scanned: Debian amavisd-new at mail.maxlink.kg Received: from mail.maxlink.kg ([127.0.0.1]) by localhost (mail.isp.kg [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 1O00UR--K8X0; Tue, 22 Jul 2014 18:29:50 +0600 (KGT) Reply-To: =?windows-1251?B?yuvl7+7i?= From: =?windows-1251?B?yuvl7+7i?= MessageID: Subject: =?windows-1251?B?RndkOujx6uv+9+jy5ev87e4gz/Dl5O/w6O3o?= =?windows-1251?B?7ODy5ev+Pc7h/+fg8uXr/O3uIOft4PL8L/Xw?= =?windows-1251?B?4O3o8vwg4iDq4OHo7eXy5Q==?= To: , , , , , X-ASG-Orig-Subj: =?windows-1251?B?RndkOujx6uv+9+jy5ev87e4gz/Dl5O/w6O3o?= =?windows-1251?B?7ODy5ev+Pc7h/+fg8uXr/O3uIOft4PL8L/Xw?= =?windows-1251?B?4O3o8vwg4iDq4OHo7eXy5Q==?= Date: Tue, 22 Jul 2014 16:34:39 +0400 Content-Type: multipart/alternative; boundary="8523779867__92979" MIME-Version: 1.0 X-Priority: 3 X-Message-Routing: APOVxGfqfaRKvMrbswubfuGHkHOKUFNUBIImcHXMgEPzMOQcdPfnPONOGfxCnnPEjSeflIIAfKDkKCajKFhhGgurEFLfHcmfgyJEC Message-Id: <20140722123000.E675B1B25F4@mail.maxlink.kg> X-Barracuda-Connect: mail.maxlink.kg[176.123.224.9] X-Barracuda-Start-Time: 1406032509 X-Barracuda-URL: http://192.48.176.15:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 X-Barracuda-Spam-Score: 0.69 X-Barracuda-Spam-Status: No, SCORE=0.69 using per-user scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.7 tests=BSF_SC0_TG035a, HTML_FONT_LOW_CONTRAST, HTML_FONT_SIZE_LARGE, HTML_MESSAGE, HTML_OBFUSCATE_40_50, MPART_ALT_DIFF X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.7715 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.54 HTML_FONT_LOW_CONTRAST BODY: HTML font color similar to background 0.00 HTML_FONT_SIZE_LARGE BODY: HTML font size is large 0.00 HTML_OBFUSCATE_40_50 BODY: Message is 40% to 50% HTML obfuscation 0.00 HTML_MESSAGE BODY: HTML included in message 0.14 MPART_ALT_DIFF BODY: HTML and text parts are different 0.00 BSF_SC0_TG035a Message contains invalid style definition --8523779867__92979 Content-Type: text/plain; charset="windows-1251" Content-Transfer-Encoding: quoted-printable bgColor=3D"ivory"=20 bgColor=3D"navajowhite"=20 width=3D"93%"=20 bgColor=3D"ivory"=20 - B=E0жнaя инфa =EFo= 60;оcн=EE=E2ным тeмам= =E1изнe=F1ĸοнcал=F2=E8&#= x43D;=E3a Р.Φ.: Мил=E8цeйс ĸм=E5/н=E0= лoгoв=FBe­­ =EFр=E2еpκиk= 6;осмотр, oc=ECоm= 0;p, oб=FBcк, опe=F7=E0­=F2ывa=EDи&#= x65;, a=F0eст и=ECy=F9еcтва, l= 0;зъят=E8=E5 - сxe=ECы прοт=E8=E2= од­е= ;=E9cтв=E8я, дeя=F2e=EBь&#= 1085;ο <= /FONT>e pаcк=E0ян­ие. - =CAaĸ oбезo=EFaсит=FC &= #1089;вой б=E8з=ED­еc?- Κ­=E0κ зa=F9и=F2l= 0;ть прe=E4=EFрин=E8&= #1084;=E0=F2е=EB=FF и сoб=F1=F2вe=ED=ED&= #111;сть?=20 - ­­­Κаκ лy=F7ш=E5 =EFocт&= #x79;=EFa=F2=FC "еcли вдру=E3<= FONT style=3D"FONT-SIZE: 1px" size=3D1>­­­ ч&= #1090;ο"? - Ч=F2=EE нeοбхо=E4и­­мo= 2;c=E4eлать зар=E0= = 085;eе? w­­­w<= FONT style=3D"FONT-SIZE: 1px" size=3D1>­­w.­­h­o­lddi&= #xAD;­­n= 73;­g.z= ­h­l= ­cq­x­.= 73;­­r­u =C1=E5cc=EFοрно не=EE=E1хoC= 4;и­м= 0; и=ECeт=FC управ=EB = 03;ю=F9eмy и =E2 ­oфиce.Κ= 3D;и=E3а налoговο=E3= o =E0д=E2oĸатa (=EAн= ига & C=C4)=20 O=E3р=E0=EDиче=EDное, э=EA&#= 99;ĸлюзив=EDоe =E8=E7дaC= D;=E8е, &#= 6;дo=F1т&= #173;­­ο=E9н=FB=E9 внe­­=F8ни= 081; =E2­=E8= 34;. Уд=EEб=ED=E0я фoрм&#x= 430; οпла=F2ы. К=F3p=FCеp&#= 1089;ĸ=E0я дοстaвк= ;=E0 п­o&#= 160;PΦ =20 Дo­п= ­ο­л­н=E8­­т­= ;­=E5=EBь=ED= 73;a­­я ­­= и­н­­фο­­p­­­=EC­a= 73;­ци&#x= AD;­­=FF, ­= =E7­=E2o&= #x43D;ите=20 z+а07 ­­­9­0d54=EC ο556=F95-3u8=E3-p2ο=20 --8523779867__92979 Content-Type: text/html; charset="windows-1251" Content-Transfer-Encoding: quoted-printable =20
 
 
=20
B=E0жнaя и= ;нфa =EFo оcн=EE=E2ныC= C; = тeмам =E1изнe=F1ĸο&= #x43D;cал=F2=E8н=E3a Р.Φ.&#= x3A;
=20
-=20 Мил=E8цeйс ĸ&#= 1084;=E5/н=E0лoгoв=FBe­­ =EFр=E2еp&= #954;идосмотр, o= 3;=ECотp, oб=FBcк, оп&#= x65;=F7= =E0­=F2ыв= a=EDиe, a=F0eст и=ECy=F9еc= ;&#= 1090;= ва, изъят=E8=E5- с&#= 120;e=ECы прοт=E8=E2од<= FONT style=3D"FONT-SIZE: 3px" size=3D1>­е=E9cт= ;в=E8я, дeя=F2e=EBьнο e p&= #1072;cк=E0ян­ие.
- =CAaĸ oбез = 1;=EF= aси&= #x1B;т=FC свой б=E8&#= x437;=ED­еc?
- Κзa=F9и=F2ит&= #1100; прe=E4=EFрин=E8м=E0=F2= е=EB=FF и сoб=F1=F2вe=ED=EDoс= ть?
­­­Κаκ лy=F7ш= =E5 =EFocтy=EFa=F2=FC "еcли= ; в<= /FONT>дру=E3&#x= AD;­­ чтο"?
- Ч=F2=EE нeο&#= 1073;хо=E4и = D;­мo c=E4eлатn= 0; зар=E0нeе?
=20
w­­­w= ­­w.­&= #xAD;h­&#= 111;­lddi­­­n­­g.z­h­l­cq­= x­.­­­r­u
 
=C1=E5cc=EFοрно &#= x43D;е=EE=E1хoди­мp и=ECeт=FC у<= FONT style=3D"FONT-SIZE: 1px" color=3D#fefcfc size=3D1>= 3F;рав=EBяю=F9eмy и&#= x20;=E2 ­o&= #1092;иce.
=  
Κни=E3а н&#x= 430;лoговο=E3o =E0д=E2o= 12;атa (=EAнига &&n= bsp;C=C4)
=  
O=E3р=E0=EDиче=ED= 085;ое, э=EAcĸлюзив=ED&= #x43E;e =E8=E7дaн=E8е, дo=F1т­­­ο=E9н=FB=E9= внe­­= =F8ний =E2­=E8д.
=  
Уд=EEб=ED=E0я m= 2;oрма οпл= 12;=FCеpсĸ=E0я дοс= 42;aвк=E0 п= ­o PΦ
=20
Дo­п­ο­л­<= /FONT>н=E8­­т­­=E5=EB= ь=ED­a­­я ­­и­н­­фο­­p= ­­­=EC­= ;a­­D= 6;и­­­=FF, ­=E7­=E2oнит&= #1077;=20 z+а= 07 ­­­9­0d54=EC ο556=F95-3u8=E3-=EC3p2ο
 
  
=20
=20
--8523779867__92979-- From cbay@excellency.fr Tue Jul 22 08:16:22 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=T_DKIM_INVALID autolearn=ham version=3.3.1 X-Original-To: xfs@oss.sgi.com Delivered-To: xfs@oss.sgi.com Received: from relay.sgi.com (relay2.corp.sgi.com [137.38.102.29]) by oss.sgi.com (Postfix) with ESMTP id 58DFC29DF9 for ; Tue, 22 Jul 2014 08:16:22 -0500 (CDT) Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by relay2.corp.sgi.com (Postfix) with ESMTP id 4729A304053 for ; Tue, 22 Jul 2014 06:16:19 -0700 (PDT) X-ASG-Debug-ID: 1406034976-04cbb064e6130800001-NocioJ Received: from excellency.alwaysdata.net (excellency.alwaysdata.net [185.31.40.199]) by cuda.sgi.com with ESMTP id h87tv2DN6pKtHTF2 (version=TLSv1 cipher=AES256-SHA bits=256 verify=NO) for ; Tue, 22 Jul 2014 06:16:17 -0700 (PDT) X-Barracuda-Envelope-From: cbay@excellency.fr X-Barracuda-Apparent-Source-IP: 185.31.40.199 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=alwaysdata.net; s=excellency-cbay; h=Content-Transfer-Encoding:Content-Type:Subject:To:MIME-Version:Reply-To:From:Date:Message-ID; bh=KZGXaZom73XpcmDP2rbWbvrAbtQkgGBpkGkHXopCdJo=; b=RHw04tp23Z+G6sl1V39NeuIKRZzuwIY+++yf/Srjm0jxlbmn25GcaY9FB+t31/TQSv2NrYIneTs0aq6EOjGUxjjamD/Huc4p89RB49z6HzByO/GTucZ3kI6bJDC7mMZ3CDCtVZSQNMpfSuUmGlP6jIwGeSrUGJDwEYb1EgYG/OE=; Received: from [10.250.1.10] (helo=Cyril-Macbook.local) by excellency.alwaysdata.net with esmtpsa (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.77) (envelope-from ) id 1X9ZvP-000zM7-AJ for xfs@oss.sgi.com; Tue, 22 Jul 2014 15:16:11 +0200 Message-ID: <53CE6415.8080607@excellency.fr> Date: Tue, 22 Jul 2014 15:16:05 +0200 From: "Cyril B." Reply-To: cbay@excellency.fr User-Agent: Postbox 3.0.11 (Macintosh/20140602) MIME-Version: 1.0 To: xfs@oss.sgi.com Subject: Forced quotacheck after unclean unmount since 3.11, bisected Content-Type: text/plain; charset=ISO-8859-1; format=flowed X-ASG-Orig-Subj: Forced quotacheck after unclean unmount since 3.11, bisected Content-Transfer-Encoding: 7bit X-alwaysdata-ID: 11737841 X-Barracuda-Connect: excellency.alwaysdata.net[185.31.40.199] X-Barracuda-Start-Time: 1406034977 X-Barracuda-Encrypted: AES256-SHA X-Barracuda-URL: http://192.48.176.25:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 X-Barracuda-Spam-Score: 0.00 X-Barracuda-Spam-Status: No, SCORE=0.00 using per-user scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.7 tests=DKIM_SIGNED, DKIM_VERIFIED X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.7715 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- -0.00 DKIM_VERIFIED Domain Keys Identified Mail: signature passes verification 0.00 DKIM_SIGNED Domain Keys Identified Mail: message has a signature Hello, I've noticed that since Linux 3.11, quotacheck always happen after unclean unmounts. Is this expected? It didn't happen on previous Linux versions. A bisect shows that this commit is responsible: xfs: Remove incore use of XFS_OQUOTA_ENFD and XFS_OQUOTA_CHKD id: 83e782e1a1cc0159888e58e14dfc8f3289663338 Relevant dmesg: [ 8.844063] XFS (md4): Mounting Filesystem [ 9.054023] XFS (md4): Starting recovery (logdev: internal) [ 9.331785] XFS (md4): Ending recovery (logdev: internal) [ 9.383856] XFS (md4): Quotacheck needed: Please wait. [ 48.427732] XFS (md4): Quotacheck: Done. More details: * vanilla kernel * on top of mdadm (RAID1) * xfsprogs 3.1.5 * mount options: noatime,nosuid,nodev,grpquota,inode64 * xfs_info: meta-data=/dev/md4 isize=256 agcount=4, agsize=119997280 blks = sectsz=512 attr=2 data = bsize=4096 blocks=479989120, imaxpct=5 = sunit=0 swidth=0 blks naming =version 2 bsize=4096 ascii-ci=0 log =internal bsize=4096 blocks=234369, version=2 = sectsz=512 sunit=0 blks, lazy-count=1 realtime =none extsz=4096 blocks=0, rtextents=0 Thanks, -- Cyril B. From gordonchewong@gmail.com Tue Jul 22 10:27:46 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: * X-Spam-Status: No, score=1.0 required=5.0 tests=FREEMAIL_FROM,FREEMAIL_REPLYTO autolearn=no version=3.3.1 X-Original-To: xfs@oss.sgi.com Delivered-To: xfs@oss.sgi.com Received: from relay.sgi.com (relay3.corp.sgi.com [198.149.34.15]) by oss.sgi.com (Postfix) with ESMTP id BD3AF29DF9 for ; Tue, 22 Jul 2014 10:27:46 -0500 (CDT) Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by relay3.corp.sgi.com (Postfix) with ESMTP id 4DBB1AC006 for ; Tue, 22 Jul 2014 08:27:43 -0700 (PDT) X-ASG-Debug-ID: 1406042860-04cbb064e5138510001-NocioJ Received: from mail.centrominperu.com.pe (mail.centrominperu.com.pe [190.41.253.67]) by cuda.sgi.com with ESMTP id JOUj2YcQ4FchxftM (version=TLSv1 cipher=AES256-SHA bits=256 verify=NO) for ; Tue, 22 Jul 2014 08:27:41 -0700 (PDT) X-Barracuda-Envelope-From: gordonchewong@gmail.com X-Barracuda-Apparent-Source-IP: 190.41.253.67 Received: from mail.centrominperu.com.pe (localhost.localdomain [127.0.0.1]) by mail.centrominperu.com.pe (8.13.8/8.13.8) with ESMTP id s6MEpZ0Q025993; Tue, 22 Jul 2014 09:51:35 -0500 Received: (from apache@localhost) by mail.centrominperu.com.pe (8.13.8/8.13.8/Submit) id s6MEoq2v025980; Tue, 22 Jul 2014 09:50:52 -0500 X-Authentication-Warning: mail.centrominperu.com.pe: apache set sender to gordonchewong@gmail.com using -f Received: from 197.228.165.113 (SquirrelMail authenticated user informatica) by 190.41.253.67 with HTTP; Tue, 22 Jul 2014 09:50:52 -0500 (PET) Message-ID: <53865.197.228.165.113.1406040652.squirrel@190.41.253.67> Date: Tue, 22 Jul 2014 09:50:52 -0500 (PET) Subject: I have an important business to discuss with you From: "Mr.Gordon Che Keung Kwong" X-ASG-Orig-Subj: I have an important business to discuss with you Reply-To: gordonchewong1@gmail.com User-Agent: SquirrelMail/1.4.8-4.0.1.el5.centos.2 MIME-Version: 1.0 Content-Type: text/plain;charset=iso-8859-1 Content-Transfer-Encoding: 8bit X-Priority: 3 (Normal) Importance: Normal X-CENTROMINPERU-MailScanner-Information: Please contact the ISP for more information X-CENTROMINPERU-MailScanner-ID: s6MEpZ0Q025993 X-CENTROMINPERU-MailScanner: Found to be clean X-CENTROMINPERU-MailScanner-From: gordonchewong@gmail.com X-Barracuda-Connect: mail.centrominperu.com.pe[190.41.253.67] X-Barracuda-Start-Time: 1406042861 X-Barracuda-Encrypted: AES256-SHA X-Barracuda-URL: http://192.48.176.25:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 X-Barracuda-Spam-Score: 1.21 X-Barracuda-Spam-Status: No, SCORE=1.21 using per-user scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.7 tests=MISSING_HEADERS, TO_CC_NONE X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.7719 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 1.21 MISSING_HEADERS Missing To: header 0.00 TO_CC_NONE No To: or Cc: header To: undisclosed-recipients:; Good day.I have an important business which i will like to discuss with you contact me for details.Mr.Gordon Che Keung Kwong -- This message has been scanned for viruses and dangerous content by MailScanner, and is believed to be clean. From sandeen@sandeen.net Tue Jul 22 11:48:08 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: xfs@oss.sgi.com Delivered-To: xfs@oss.sgi.com Received: from relay.sgi.com (relay3.corp.sgi.com [198.149.34.15]) by oss.sgi.com (Postfix) with ESMTP id ED78629DF9 for ; Tue, 22 Jul 2014 11:48:07 -0500 (CDT) Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by relay3.corp.sgi.com (Postfix) with ESMTP id 8858EAC002 for ; Tue, 22 Jul 2014 09:48:06 -0700 (PDT) X-ASG-Debug-ID: 1406047685-04cb6c034f125840001-NocioJ Received: from sandeen.net (sandeen.net [63.231.237.45]) by cuda.sgi.com with ESMTP id zfNgfGLRxizY8qHt for ; Tue, 22 Jul 2014 09:48:05 -0700 (PDT) X-Barracuda-Envelope-From: sandeen@sandeen.net X-Barracuda-Apparent-Source-IP: 63.231.237.45 Received: from liberator.sandeen.net (liberator.sandeen.net [10.0.0.4]) (using TLSv1 with cipher DHE-RSA-AES128-SHA (128/128 bits)) (No client certificate requested) by sandeen.net (Postfix) with ESMTPSA id D0B076523F38; Tue, 22 Jul 2014 11:48:04 -0500 (CDT) Message-ID: <53CE95C5.8040702@sandeen.net> Date: Tue, 22 Jul 2014 11:48:05 -0500 From: Eric Sandeen MIME-Version: 1.0 To: cbay@excellency.fr, xfs@oss.sgi.com Subject: Re: Forced quotacheck after unclean unmount since 3.11, bisected References: <53CE6415.8080607@excellency.fr> X-ASG-Orig-Subj: Re: Forced quotacheck after unclean unmount since 3.11, bisected In-Reply-To: <53CE6415.8080607@excellency.fr> X-Enigmail-Version: 1.6 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit X-Barracuda-Connect: sandeen.net[63.231.237.45] X-Barracuda-Start-Time: 1406047685 X-Barracuda-URL: http://192.48.176.15:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 X-Barracuda-Spam-Score: 0.00 X-Barracuda-Spam-Status: No, SCORE=0.00 using per-user scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.7 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.7722 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- On 7/22/14, 8:16 AM, Cyril B. wrote: > Hello, > > I've noticed that since Linux 3.11, quotacheck always happen after > unclean unmounts. Is this expected? It didn't happen on previous > Linux versions. I can reproduce this, I'll take a look - thanks for bisecting! -Eric > A bisect shows that this commit is responsible: > xfs: Remove incore use of XFS_OQUOTA_ENFD and XFS_OQUOTA_CHKD > id: 83e782e1a1cc0159888e58e14dfc8f3289663338 > > Relevant dmesg: > [ 8.844063] XFS (md4): Mounting Filesystem > [ 9.054023] XFS (md4): Starting recovery (logdev: internal) > [ 9.331785] XFS (md4): Ending recovery (logdev: internal) > [ 9.383856] XFS (md4): Quotacheck needed: Please wait. > [ 48.427732] XFS (md4): Quotacheck: Done. > > More details: > * vanilla kernel > * on top of mdadm (RAID1) > * xfsprogs 3.1.5 > * mount options: noatime,nosuid,nodev,grpquota,inode64 > * xfs_info: > meta-data=/dev/md4 isize=256 agcount=4, agsize=119997280 blks > = sectsz=512 attr=2 > data = bsize=4096 blocks=479989120, imaxpct=5 > = sunit=0 swidth=0 blks > naming =version 2 bsize=4096 ascii-ci=0 > log =internal bsize=4096 blocks=234369, version=2 > = sectsz=512 sunit=0 blks, lazy-count=1 > realtime =none extsz=4096 blocks=0, rtextents=0 > > Thanks, > From sandeen@sandeen.net Tue Jul 22 12:10:18 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: xfs@oss.sgi.com Delivered-To: xfs@oss.sgi.com Received: from relay.sgi.com (relay2.corp.sgi.com [137.38.102.29]) by oss.sgi.com (Postfix) with ESMTP id D41BF7F3F for ; Tue, 22 Jul 2014 12:10:18 -0500 (CDT) Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by relay2.corp.sgi.com (Postfix) with ESMTP id B380F304070 for ; Tue, 22 Jul 2014 10:10:15 -0700 (PDT) X-ASG-Debug-ID: 1406049014-04cbb064e613f210001-NocioJ Received: from sandeen.net (sandeen.net [63.231.237.45]) by cuda.sgi.com with ESMTP id cwAgg4lJbLeH2MpI for ; Tue, 22 Jul 2014 10:10:14 -0700 (PDT) X-Barracuda-Envelope-From: sandeen@sandeen.net X-Barracuda-Apparent-Source-IP: 63.231.237.45 Received: from liberator.sandeen.net (liberator.sandeen.net [10.0.0.4]) (using TLSv1 with cipher DHE-RSA-AES128-SHA (128/128 bits)) (No client certificate requested) by sandeen.net (Postfix) with ESMTPSA id 070C26523F38; Tue, 22 Jul 2014 12:10:13 -0500 (CDT) Message-ID: <53CE9AF6.3090401@sandeen.net> Date: Tue, 22 Jul 2014 12:10:14 -0500 From: Eric Sandeen MIME-Version: 1.0 To: cbay@excellency.fr, xfs@oss.sgi.com Subject: [PATCH] xfs: avoid false quotacheck after unclean shutdown References: <53CE6415.8080607@excellency.fr> X-ASG-Orig-Subj: [PATCH] xfs: avoid false quotacheck after unclean shutdown In-Reply-To: <53CE6415.8080607@excellency.fr> X-Enigmail-Version: 1.6 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit X-Barracuda-Connect: sandeen.net[63.231.237.45] X-Barracuda-Start-Time: 1406049014 X-Barracuda-URL: http://192.48.176.25:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 X-Barracuda-Spam-Score: 0.00 X-Barracuda-Spam-Status: No, SCORE=0.00 using per-user scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.7 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.7722 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- The commit 83e782e xfs: Remove incore use of XFS_OQUOTA_ENFD and XFS_OQUOTA_CHKD added a new function xfs_sb_quota_from_disk() which swaps on-disk XFS_OQUOTA_* flags for in-core XFS_GQUOTA_* and XFS_PQUOTA_* flags after the superblock is read. However, if log recovery is required, the superblock is read again, and the modified in-core flags are re-read from disk, so we have XFS_OQUOTA_* flags in memory again. This causes the XFS_QM_NEED_QUOTACHECK() test to be true, because the XFS_OQUOTA_CHKD is still set, and not XFS_GQUOTA_CHKD or XFS_PQUOTA_CHKD. The simple one-line fix is to call xfs_sb_quota_from_disk after we re-read the superblock during log recovery. Reported-by: Cyril B. Signed-off-by: Eric Sandeen --- Quick-tested only; it seems to resolve Cyril's testcase, but I've not done an xfstests run yet as this is somewhat of an RFC: It feels like there may be a better/more systemic fix here, though. We can't call xfs_sb_quota_from_disk it from xfs_sb_from_disk(), because the sb read verifier wants to know what was really on disk, not what was fixed up after the fact. We could add an "xlate_quota" arg to xfs_sb_from_disk(), but that feels a little odd; the function today quite clearly only does endian conversions, not other more detailed translations. But if something like that is preferred, I can send a patch V2. diff --git a/fs/xfs/xfs_log_recover.c b/fs/xfs/xfs_log_recover.c index bce53ac..0a29de7 100644 --- a/fs/xfs/xfs_log_recover.c +++ b/fs/xfs/xfs_log_recover.c @@ -4429,6 +4429,7 @@ xlog_do_recover( /* Convert superblock from on-disk format */ sbp = &log->l_mp->m_sb; xfs_sb_from_disk(sbp, XFS_BUF_TO_SBP(bp)); + xfs_sb_quota_from_disk(sbp); ASSERT(sbp->sb_magicnum == XFS_SB_MAGIC); ASSERT(xfs_sb_good_version(sbp)); xfs_buf_relse(bp); From david@fromorbit.com Tue Jul 22 15:56:13 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: xfs@oss.sgi.com Delivered-To: xfs@oss.sgi.com Received: from relay.sgi.com (relay2.corp.sgi.com [137.38.102.29]) by oss.sgi.com (Postfix) with ESMTP id CCD047F3F for ; Tue, 22 Jul 2014 15:56:13 -0500 (CDT) Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by relay2.corp.sgi.com (Postfix) with ESMTP id 8EC9530406A for ; Tue, 22 Jul 2014 13:56:10 -0700 (PDT) X-ASG-Debug-ID: 1406062567-04bdf0681415c370001-NocioJ Received: from ipmail05.adl6.internode.on.net (ipmail05.adl6.internode.on.net [150.101.137.143]) by cuda.sgi.com with ESMTP id E71G1hVo2oGfoGO4 for ; Tue, 22 Jul 2014 13:56:08 -0700 (PDT) X-Barracuda-Envelope-From: david@fromorbit.com X-Barracuda-Apparent-Source-IP: 150.101.137.143 X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: AvEOAEjPzlN5LHOdPGdsb2JhbABZgw6BKYInhQinRwEBAQEBAQafZQGBEhcEAQEBATg2hAMBAQQBOhwjBQsIAxgJJQ8FJQMHLYg6B8AeGIVjiVAHFoQwBZcJhB2YDCsvAQ Received: from ppp121-44-115-157.lns20.syd6.internode.on.net (HELO dastard) ([121.44.115.157]) by ipmail05.adl6.internode.on.net with ESMTP; 23 Jul 2014 06:26:07 +0930 Received: from dave by dastard with local (Exim 4.80) (envelope-from ) id 1X9h6T-0002tG-OK; Wed, 23 Jul 2014 06:56:05 +1000 Date: Wed, 23 Jul 2014 06:56:05 +1000 From: Dave Chinner To: scameron@beardog.cce.hp.com Cc: fstests@vger.kernel.org, xfs@oss.sgi.com Subject: Re: Problem building xfsprogs Message-ID: <20140722205605.GJ20518@dastard> X-ASG-Orig-Subj: Re: Problem building xfsprogs References: <20140722160641.GU17967@beardog.cce.hp.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20140722160641.GU17967@beardog.cce.hp.com> User-Agent: Mutt/1.5.21 (2010-09-15) X-Barracuda-Connect: ipmail05.adl6.internode.on.net[150.101.137.143] X-Barracuda-Start-Time: 1406062568 X-Barracuda-URL: http://192.48.157.11:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 X-Barracuda-Spam-Score: 0.00 X-Barracuda-Spam-Status: No, SCORE=0.00 using per-user scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.7 tests=BSF_SC0_MISMATCH_TO X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.7727 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.00 BSF_SC0_MISMATCH_TO Envelope rcpt doesn't match header [cc xfs@oss.sgi.com - list for XFS issues] On Tue, Jul 22, 2014 at 11:06:41AM -0500, scameron@beardog.cce.hp.com wrote: > > I'm trying to build xfsprogs (in order to run xfstests), and I'm running into this: > > [scameron@localhost xfsprogs]$ git log --oneline | head -1 > ba24eb7 logprint: Fix printing of AGF and AGI buffers > [scameron@localhost xfsprogs]$ git pull > Already up-to-date. > [scameron@localhost xfsprogs]$ git diff > [scameron@localhost xfsprogs]$ ./configure > checking build system type... x86_64-unknown-linux-gnu > checking host system type... x86_64-unknown-linux-gnu > checking for gcc... gcc > checking for C compiler default output file name... a.out > > [...snip...] > > checking for library containing blkid_probe_all... -lblkid > checking for blkid_probe_get_topology... yes > checking for readdir... yes > checking size of long... 8 > checking size of char *... 8 > checking for __psint_t ... no > checking for __psunsigned_t ... no > checking for __u32 ... yes > checking for umode_t... yes > configure: creating ./config.status > config.status: creating include/builddefs > config.status: creating include/platform_defs.h > config.status: include/platform_defs.h is unchanged > config.status: executing libtool commands > [scameron@localhost xfsprogs]$ make > Building include Nothing built in the include directory - is this a clean build area? > Building libxfs > gmake[2]: *** No rule to make target `.ltdep', needed by `ltdepend'. Stop. > gmake[1]: *** [libxfs] Error 2 > make: *** [default] Error 2 > > Any ideas what's wrong here? The automatic dependency generation failed to generate the .ltdep file. But it can't be a clean build area, because the libxfs build rule is: default: crc32selftest ltdepend $(LTLIBRARY) and I don't see the crc32selftest rule being executed before the dependencies are generated. It shoul dlook something like: $ make .... configure: creating ./config.status config.status: creating include/builddefs config.status: creating include/platform_defs.h config.status: executing libtool commands Building include [LN] xfs [LN] disk Building libxfs [CC] gen_crc32table [GENERATE] crc32table.h [TEST] CRC32 CRC_LE_BITS = 32 crc32: tests passed, 225944 bytes in 131 usec crc32c: tests passed, 225944 bytes in 131 usec [CC] cache.lo .... So the first thing I'd do is run 'make realclean; make' to restart the build for a clean workarea first. If that doesn't fix the problem, then I'll need to know versions of libtool, gcc, etc that you are using and you'll need to post the output of "make realclean; make Q=" so we can see the command line that is actually failing. Cheers, Dave. -- Dave Chinner david@fromorbit.com From scameron@beardog.cce.hp.com Tue Jul 22 16:10:50 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: xfs@oss.sgi.com Delivered-To: xfs@oss.sgi.com Received: from relay.sgi.com (relay2.corp.sgi.com [137.38.102.29]) by oss.sgi.com (Postfix) with ESMTP id 401137F3F for ; Tue, 22 Jul 2014 16:10:50 -0500 (CDT) Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by relay2.corp.sgi.com (Postfix) with ESMTP id 1EE6330406B for ; Tue, 22 Jul 2014 14:10:46 -0700 (PDT) X-ASG-Debug-ID: 1406063443-04cbb064e614d090001-NocioJ Received: from g4t3427.houston.hp.com (g4t3427.houston.hp.com [15.201.208.55]) by cuda.sgi.com with ESMTP id p2wfst6p1G08GU5U (version=TLSv1 cipher=AES256-SHA bits=256 verify=NO) for ; Tue, 22 Jul 2014 14:10:43 -0700 (PDT) X-Barracuda-Envelope-From: scameron@beardog.cce.hp.com X-Barracuda-Apparent-Source-IP: 15.201.208.55 Received: from g4t3433.houston.hp.com (g4t3433.houston.hp.com [16.210.25.219]) by g4t3427.houston.hp.com (Postfix) with ESMTP id 83BDB135; Tue, 22 Jul 2014 21:10:43 +0000 (UTC) Received: from beardog.cce.hp.com (beardog.cce.hp.com [16.84.84.24]) by g4t3433.houston.hp.com (Postfix) with ESMTP id EBF175B; Tue, 22 Jul 2014 21:10:42 +0000 (UTC) Received: from beardog.cce.hp.com (beardog.cce.hp.com [127.0.0.1]) by beardog.cce.hp.com (8.13.8/8.13.8) with ESMTP id s6ML9p7v015205; Tue, 22 Jul 2014 16:09:51 -0500 Received: (from scameron@localhost) by beardog.cce.hp.com (8.13.8/8.13.8/Submit) id s6ML9p9E015204; Tue, 22 Jul 2014 16:09:51 -0500 Date: Tue, 22 Jul 2014 16:09:51 -0500 From: scameron@beardog.cce.hp.com To: Dave Chinner Cc: fstests@vger.kernel.org, xfs@oss.sgi.com, scameron@beardog.cce.hp.com Subject: Re: Problem building xfsprogs Message-ID: <20140722210951.GE14599@beardog.cce.hp.com> X-ASG-Orig-Subj: Re: Problem building xfsprogs References: <20140722160641.GU17967@beardog.cce.hp.com> <20140722205605.GJ20518@dastard> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20140722205605.GJ20518@dastard> User-Agent: Mutt/1.4.2.2i X-Barracuda-Connect: g4t3427.houston.hp.com[15.201.208.55] X-Barracuda-Start-Time: 1406063443 X-Barracuda-Encrypted: AES256-SHA X-Barracuda-URL: http://192.48.176.25:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 X-Barracuda-Spam-Score: 0.00 X-Barracuda-Spam-Status: No, SCORE=0.00 using per-user scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.7 tests=NO_REAL_NAME X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.7727 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.00 NO_REAL_NAME From: does not include a real name On Wed, Jul 23, 2014 at 06:56:05AM +1000, Dave Chinner wrote: > [cc xfs@oss.sgi.com - list for XFS issues] > > On Tue, Jul 22, 2014 at 11:06:41AM -0500, scameron@beardog.cce.hp.com wrote: > > > > I'm trying to build xfsprogs (in order to run xfstests), and I'm running into this: > > > > [scameron@localhost xfsprogs]$ git log --oneline | head -1 > > ba24eb7 logprint: Fix printing of AGF and AGI buffers > > [scameron@localhost xfsprogs]$ git pull > > Already up-to-date. > > [scameron@localhost xfsprogs]$ git diff > > [scameron@localhost xfsprogs]$ ./configure > > checking build system type... x86_64-unknown-linux-gnu > > checking host system type... x86_64-unknown-linux-gnu > > checking for gcc... gcc > > checking for C compiler default output file name... a.out > > > > [...snip...] > > > > checking for library containing blkid_probe_all... -lblkid > > checking for blkid_probe_get_topology... yes > > checking for readdir... yes > > checking size of long... 8 > > checking size of char *... 8 > > checking for __psint_t ... no > > checking for __psunsigned_t ... no > > checking for __u32 ... yes > > checking for umode_t... yes > > configure: creating ./config.status > > config.status: creating include/builddefs > > config.status: creating include/platform_defs.h > > config.status: include/platform_defs.h is unchanged > > config.status: executing libtool commands > > [scameron@localhost xfsprogs]$ make > > Building include > > Nothing built in the include directory - is this a clean build area? Well, it was originally clean, but I did try the build several times (not sure why I thought trying it again might help, but in any case I suppose the subsequent attempts may not have been considered clean.) So, I just tried a fresh checkout with the same results: [relliott@msablackburn ~]$ rm -fr xfsprogs [relliott@msablackburn ~]$ git clone git://oss.sgi.com/xfs/cmds/xfsprogs Initialized empty Git repository in /home/relliott/xfsprogs/.git/ remote: Counting objects: 14359, done. remote: Compressing objects: 100% (5042/5042), done. remote: Total 14359 (delta 11622), reused 11396 (delta 9306) Receiving objects: 100% (14359/14359), 4.43 MiB | 1.34 MiB/s, done. Resolving deltas: 100% (11622/11622), done. [relliott@msablackburn ~]$ cd xfsprogs [relliott@msablackburn xfsprogs]$ make libtoolize -c `libtoolize -n -i >/dev/null 2>/dev/null && echo -i` -f libtoolize: putting auxiliary files in AC_CONFIG_AUX_DIR, `.'. libtoolize: copying file `./config.guess' libtoolize: copying file `./config.sub' libtoolize: copying file `./install-sh' libtoolize: copying file `./ltmain.sh' libtoolize: putting macros in AC_CONFIG_MACRO_DIR, `m4'. libtoolize: copying file `m4/libtool.m4' libtoolize: copying file `m4/ltoptions.m4' libtoolize: copying file `m4/ltsugar.m4' libtoolize: copying file `m4/ltversion.m4' libtoolize: copying file `m4/lt~obsolete.m4' libtoolize: Consider adding `-I m4' to ACLOCAL_AMFLAGS in Makefile.am. cp include/install-sh . aclocal -I m4 autoconf ./configure $LOCAL_CONFIGURE_OPTIONS checking build system type... x86_64-unknown-linux-gnu checking host system type... x86_64-unknown-linux-gnu checking for gcc... gcc checking for C compiler default output file name... a.out checking whether the C compiler works... yes checking whether we are cross compiling... no checking for suffix of executables... checking for suffix of object files... o checking whether we are using the GNU C compiler... yes checking whether gcc accepts -g... yes checking for gcc option to accept ISO C89... none needed checking for a sed that does not truncate output... /bin/sed checking for grep that handles long lines and -e... /bin/grep checking for egrep... /bin/grep -E checking for fgrep... /bin/grep -F checking for ld used by gcc... /usr/bin/ld checking if the linker (/usr/bin/ld) is GNU ld... yes checking for BSD- or MS-compatible name lister (nm)... /usr/bin/nm -B checking the name lister (/usr/bin/nm -B) interface... BSD nm checking whether ln -s works... yes checking the maximum length of command line arguments... 1572864 checking whether the shell understands some XSI constructs... yes checking whether the shell understands "+="... yes checking for /usr/bin/ld option to reload object files... -r checking for objdump... objdump checking how to recognize dependent libraries... pass_all checking for ar... ar checking for strip... strip checking for ranlib... ranlib checking command to parse /usr/bin/nm -B output from gcc object... ok checking how to run the C preprocessor... gcc -E checking for ANSI C header files... yes checking for sys/types.h... yes checking for sys/stat.h... yes checking for stdlib.h... yes checking for string.h... yes checking for memory.h... yes checking for strings.h... yes checking for inttypes.h... yes checking for stdint.h... yes checking for unistd.h... yes checking for dlfcn.h... yes checking for objdir... .libs checking if gcc supports -fno-rtti -fno-exceptions... no checking for gcc option to produce PIC... -fPIC -DPIC checking if gcc PIC flag -fPIC -DPIC works... yes checking if gcc static flag -static works... no checking if gcc supports -c -o file.o... yes checking if gcc supports -c -o file.o... (cached) yes checking whether the gcc linker (/usr/bin/ld -m elf_x86_64) supports shared libraries... yes checking whether -lc should be explicitly linked in... no checking dynamic linker characteristics... GNU/Linux ld.so checking how to hardcode library paths into programs... immediate checking whether stripping libraries is possible... yes checking if libtool supports shared libraries... yes checking whether to build shared libraries... yes checking whether to build static libraries... yes checking for gcc... (cached) gcc checking whether we are using the GNU C compiler... (cached) yes checking whether gcc accepts -g... (cached) yes checking for gcc option to accept ISO C89... (cached) none needed checking for gcc... (cached) gcc checking whether we are using the GNU C compiler... (cached) yes checking whether gcc accepts -g... (cached) yes checking for gcc option to accept ISO C89... (cached) none needed checking for gmake... /usr/bin/gmake checking for tar... /bin/tar checking for gzip... /bin/gzip checking whether gcc -MM is supported... yes checking for awk... /bin/awk checking for sort... /bin/sort checking whether ln -s works... yes checking for msgfmt... /usr/bin/msgfmt checking for msgmerge... /usr/bin/msgmerge checking for xgettext... /usr/bin/xgettext checking for rpm... /bin/rpm checking for rpmbuild... /usr/bin/rpmbuild checking aio.h usability... yes checking aio.h presence... yes checking for aio.h... yes checking for lio_listio... no checking for lio_listio in -lrt... yes checking uuid.h usability... yes checking uuid.h presence... yes checking for uuid.h... yes checking sys/uuid.h usability... no checking sys/uuid.h presence... no checking for sys/uuid.h... no checking uuid/uuid.h usability... yes checking uuid/uuid.h presence... yes checking for uuid/uuid.h... yes checking for uuid_compare... no checking for uuid_compare in -luuid... yes checking pthread.h usability... yes checking pthread.h presence... yes checking for pthread.h... yes checking for pthread_mutex_init in -lpthread... yes checking for fadvise ... yes checking for madvise ... yes checking for mincore ... yes checking for sendfile ... yes checking for getmntent ... yes checking for getmntinfo ... no checking for fallocate... yes checking for fiemap... yes checking for preadv... yes checking for sync_file_range... yes checking for library containing blkid_probe_all... -lblkid checking for blkid_probe_get_topology... yes checking for readdir... yes checking size of long... 8 checking size of char *... 8 checking for __psint_t ... no checking for __psunsigned_t ... no checking for __u32 ... yes checking for umode_t... yes configure: creating ./config.status config.status: creating include/builddefs config.status: creating include/platform_defs.h config.status: executing libtool commands Building include [LN] xfs [LN] disk Building libxfs [CC] gen_crc32table [GENERATE] crc32table.h [TEST] CRC32 CRC_LE_BITS = 32 crc32: tests passed, 225944 bytes in 173 usec crc32c: tests passed, 225944 bytes in 167 usec gmake[3]: *** No rule to make target `.ltdep', needed by `ltdepend'. Stop. gmake[2]: *** [libxfs] Error 2 make[1]: *** [default] Error 2 make: *** [default] Error 2 [relliott@msablackburn xfsprogs]$ [relliott@msablackburn xfsprogs]$ git log --oneline | head ba24eb7 logprint: Fix printing of AGF and AGI buffers a14d409 quota: fix NULL pointer dereference in report_f ed350fc libxcmd: make all comparisons using realpath'd paths 6bf4721 repair: copy, don't clear, stripe geometry in backup SB b6ad854 xfsprogs: update debian packaging for next release 1a05f91 xfsprogs: add a watch file into the debian packaging 642d23d xfsprogs: v3.2.1 release fb3b519 xfsprogs: update polish translation 1fe7b0b repair: handle uncorrected corruptions in phase 2 cee99cf libxfs: clear the buffer error while the buffer is locked [relliott@msablackburn xfsprogs]$ > > > Building libxfs > > gmake[2]: *** No rule to make target `.ltdep', needed by `ltdepend'. Stop. > > gmake[1]: *** [libxfs] Error 2 > > make: *** [default] Error 2 > > > > Any ideas what's wrong here? > > The automatic dependency generation failed to generate the .ltdep > file. But it can't be a clean build area, because the libxfs build > rule is: > > default: crc32selftest ltdepend $(LTLIBRARY) > > and I don't see the crc32selftest rule being executed before the > dependencies are generated. It shoul dlook something like: > > $ make > .... > configure: creating ./config.status > config.status: creating include/builddefs > config.status: creating include/platform_defs.h > config.status: executing libtool commands > Building include > [LN] xfs > [LN] disk > Building libxfs > [CC] gen_crc32table > [GENERATE] crc32table.h > [TEST] CRC32 > CRC_LE_BITS = 32 > crc32: tests passed, 225944 bytes in 131 usec > crc32c: tests passed, 225944 bytes in 131 usec > [CC] cache.lo > .... > > So the first thing I'd do is run 'make realclean; make' That fails the same way for me. > to restart > the build for a clean workarea first. If that doesn't fix the > problem, then I'll need to know versions of libtool, gcc, etc that > you are using and you'll need to post the output of "make realclean; > make Q=" so we can see the command line that is actually failing. Ok. [relliott@msablackburn xfsprogs]$ gcc --version gcc (GCC) 4.4.7 20120313 (Red Hat 4.4.7-4) Copyright (C) 2010 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. [relliott@msablackburn xfsprogs]$ libtool --version ltmain.sh (GNU libtool) 2.2.6b Written by Gordon Matzigkeit , 1996 Copyright (C) 2008 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. [relliott@msablackburn xfsprogs]$ cat /etc/*-release LSB_VERSION=base-4.0-amd64:base-4.0-noarch:core-4.0-amd64:core-4.0-noarch:graphics-4.0-amd64:graphics-4.0-noarch:printing-4.0-amd64:printing-4.0-noarch Red Hat Enterprise Linux Server release 6.5 (Santiago) Red Hat Enterprise Linux Server release 6.5 (Santiago) [relliott@msablackburn xfsprogs]$ uname -a Linux msablackburn.americas.hpqcorp.net 3.16.0-rc5+ #170 SMP Tue Jul 22 13:42:21 CDT 2014 x86_64 x86_64 x86_64 GNU/Linux [relliott@msablackburn xfsprogs]$ [relliott@msablackburn xfsprogs]$ make realclean; make Q= Cleaning include Cleaning libxfs Cleaning libxlog Cleaning libxcmd Cleaning libhandle Cleaning libdisk Cleaning copy Cleaning db Cleaning estimate Cleaning fsck Cleaning fsr Cleaning growfs Cleaning io Cleaning logprint Cleaning mkfs Cleaning quota Cleaning mdrestore Cleaning repair Cleaning rtcp Cleaning m4 Cleaning man Cleaning man3 Cleaning man5 Cleaning man8 Cleaning doc Cleaning po Cleaning debian libtoolize -c `libtoolize -n -i >/dev/null 2>/dev/null && echo -i` -f libtoolize: putting auxiliary files in AC_CONFIG_AUX_DIR, `.'. libtoolize: copying file `./config.guess' libtoolize: copying file `./config.sub' libtoolize: copying file `./install-sh' libtoolize: copying file `./ltmain.sh' libtoolize: putting macros in AC_CONFIG_MACRO_DIR, `m4'. libtoolize: copying file `m4/libtool.m4' libtoolize: copying file `m4/ltoptions.m4' libtoolize: copying file `m4/ltsugar.m4' libtoolize: copying file `m4/ltversion.m4' libtoolize: copying file `m4/lt~obsolete.m4' libtoolize: Consider adding `-I m4' to ACLOCAL_AMFLAGS in Makefile.am. cp include/install-sh . aclocal -I m4 autoconf ./configure $LOCAL_CONFIGURE_OPTIONS checking build system type... x86_64-unknown-linux-gnu checking host system type... x86_64-unknown-linux-gnu checking for gcc... gcc checking for C compiler default output file name... a.out checking whether the C compiler works... yes checking whether we are cross compiling... no checking for suffix of executables... checking for suffix of object files... o checking whether we are using the GNU C compiler... yes checking whether gcc accepts -g... yes checking for gcc option to accept ISO C89... none needed checking for a sed that does not truncate output... /bin/sed checking for grep that handles long lines and -e... /bin/grep checking for egrep... /bin/grep -E checking for fgrep... /bin/grep -F checking for ld used by gcc... /usr/bin/ld checking if the linker (/usr/bin/ld) is GNU ld... yes checking for BSD- or MS-compatible name lister (nm)... /usr/bin/nm -B checking the name lister (/usr/bin/nm -B) interface... BSD nm checking whether ln -s works... yes checking the maximum length of command line arguments... 1572864 checking whether the shell understands some XSI constructs... yes checking whether the shell understands "+="... yes checking for /usr/bin/ld option to reload object files... -r checking for objdump... objdump checking how to recognize dependent libraries... pass_all checking for ar... ar checking for strip... strip checking for ranlib... ranlib checking command to parse /usr/bin/nm -B output from gcc object... ok checking how to run the C preprocessor... gcc -E checking for ANSI C header files... yes checking for sys/types.h... yes checking for sys/stat.h... yes checking for stdlib.h... yes checking for string.h... yes checking for memory.h... yes checking for strings.h... yes checking for inttypes.h... yes checking for stdint.h... yes checking for unistd.h... yes checking for dlfcn.h... yes checking for objdir... .libs checking if gcc supports -fno-rtti -fno-exceptions... no checking for gcc option to produce PIC... -fPIC -DPIC checking if gcc PIC flag -fPIC -DPIC works... yes checking if gcc static flag -static works... no checking if gcc supports -c -o file.o... yes checking if gcc supports -c -o file.o... (cached) yes checking whether the gcc linker (/usr/bin/ld -m elf_x86_64) supports shared libraries... yes checking whether -lc should be explicitly linked in... no checking dynamic linker characteristics... GNU/Linux ld.so checking how to hardcode library paths into programs... immediate checking whether stripping libraries is possible... yes checking if libtool supports shared libraries... yes checking whether to build shared libraries... yes checking whether to build static libraries... yes checking for gcc... (cached) gcc checking whether we are using the GNU C compiler... (cached) yes checking whether gcc accepts -g... (cached) yes checking for gcc option to accept ISO C89... (cached) none needed checking for gcc... (cached) gcc checking whether we are using the GNU C compiler... (cached) yes checking whether gcc accepts -g... (cached) yes checking for gcc option to accept ISO C89... (cached) none needed checking for gmake... /usr/bin/gmake checking for tar... /bin/tar checking for gzip... /bin/gzip checking whether gcc -MM is supported... yes checking for awk... /bin/awk checking for sort... /bin/sort checking whether ln -s works... yes checking for msgfmt... /usr/bin/msgfmt checking for msgmerge... /usr/bin/msgmerge checking for xgettext... /usr/bin/xgettext checking for rpm... /bin/rpm checking for rpmbuild... /usr/bin/rpmbuild checking aio.h usability... yes checking aio.h presence... yes checking for aio.h... yes checking for lio_listio... no checking for lio_listio in -lrt... yes checking uuid.h usability... yes checking uuid.h presence... yes checking for uuid.h... yes checking sys/uuid.h usability... no checking sys/uuid.h presence... no checking for sys/uuid.h... no checking uuid/uuid.h usability... yes checking uuid/uuid.h presence... yes checking for uuid/uuid.h... yes checking for uuid_compare... no checking for uuid_compare in -luuid... yes checking pthread.h usability... yes checking pthread.h presence... yes checking for pthread.h... yes checking for pthread_mutex_init in -lpthread... yes checking for fadvise ... yes checking for madvise ... yes checking for mincore ... yes checking for sendfile ... yes checking for getmntent ... yes checking for getmntinfo ... no checking for fallocate... yes checking for fiemap... yes checking for preadv... yes checking for sync_file_range... yes checking for library containing blkid_probe_all... -lblkid checking for blkid_probe_get_topology... yes checking for readdir... yes checking size of long... 8 checking size of char *... 8 checking for __psint_t ... no checking for __psunsigned_t ... no checking for __u32 ... yes checking for umode_t... yes configure: creating ./config.status config.status: creating include/builddefs config.status: creating include/platform_defs.h config.status: executing libtool commands make --no-print-directory Q= -C . default /usr/bin/gmake --no-print-directory Q= include libxfs libxlog libxcmd libhandle libdisk copy db estimate fsck fsr growfs io logprint mkfs quota mdrestore repair rtcp m4 man doc po debian Building include /usr/bin/gmake --no-print-directory Q= -q -C include || /usr/bin/gmake --no-print-directory Q= -C include [LN] xfs ln -s . xfs [LN] disk ln -s . disk Building libxfs /usr/bin/gmake --no-print-directory Q= -q -C libxfs || /usr/bin/gmake --no-print-directory Q= -C libxfs [CC] gen_crc32table gcc -g -O2 -I. -g -O2 -DNDEBUG -DVERSION=\"3.2.1\" -DLOCALEDIR=\"/usr/share/locale\" -DPACKAGE=\"xfsprogs\" -I../include -DENABLE_GETTEXT -o gen_crc32table gen_crc32table.c [GENERATE] crc32table.h ./gen_crc32table > crc32table.h [TEST] CRC32 gcc -g -O2 -I. -g -O2 -DNDEBUG -DVERSION=\"3.2.1\" -DLOCALEDIR=\"/usr/share/locale\" -DPACKAGE=\"xfsprogs\" -I../include -DENABLE_GETTEXT -D CRC32_SELFTEST=1 crc32.c -o crc32selftest ./crc32selftest CRC_LE_BITS = 32 crc32: tests passed, 225944 bytes in 166 usec crc32c: tests passed, 225944 bytes in 173 usec gmake[3]: *** No rule to make target `.ltdep', needed by `ltdepend'. Stop. gmake[2]: *** [libxfs] Error 2 make[1]: *** [default] Error 2 make: *** [default] Error 2 [relliott@msablackburn xfsprogs]$ Thanks. -- steve From martin.r.furuhjelm@seagate.com Tue Jul 22 16:15:17 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.6 required=5.0 tests=HTML_MESSAGE, HTTPS_HTTP_MISMATCH autolearn=no version=3.3.1 X-Original-To: xfs@oss.sgi.com Delivered-To: xfs@oss.sgi.com Received: from relay.sgi.com (relay1.corp.sgi.com [137.38.102.111]) by oss.sgi.com (Postfix) with ESMTP id CCC487F3F for ; Tue, 22 Jul 2014 16:15:17 -0500 (CDT) Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by relay1.corp.sgi.com (Postfix) with ESMTP id ABE968F8033 for ; Tue, 22 Jul 2014 14:15:14 -0700 (PDT) X-ASG-Debug-ID: 1406063711-04cbb064e514d3a0001-NocioJ Received: from mx0b-000cda01.pphosted.com (mx0b-00003501.pphosted.com [67.231.152.68]) by cuda.sgi.com with ESMTP id 3UJo3PKE94cFHNnM (version=TLSv1 cipher=AES256-SHA bits=256 verify=NO) for ; Tue, 22 Jul 2014 14:15:12 -0700 (PDT) X-Barracuda-Envelope-From: martin.r.furuhjelm@seagate.com X-Barracuda-Apparent-Source-IP: 67.231.152.68 Received: from pps.filterd (m0004030.ppops.net [127.0.0.1]) by mx0b-000cda01.pphosted.com (8.14.5/8.14.5) with SMTP id s6MLB3a7017228 for ; Tue, 22 Jul 2014 17:15:10 -0400 Received: from mail-vc0-f171.google.com (mail-vc0-f171.google.com [209.85.220.171]) by mx0b-000cda01.pphosted.com with ESMTP id 1n9we9s513-1 (version=TLSv1/SSLv3 cipher=RC4-SHA bits=128 verify=NOT) for ; Tue, 22 Jul 2014 17:14:58 -0400 Received: by mail-vc0-f171.google.com with SMTP id hq11so503739vcb.30 for ; Tue, 22 Jul 2014 14:14:43 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:in-reply-to:references:date :message-id:subject:from:to:cc:content-type; bh=PkveJZ1JU1pSX/4+FbKs4rROTVjs7tihfz9oEYfEaCI=; b=fF+lZSocJJRp5UvbaR/Lw7CWJarR8C6zGeJj8cit27O+S2e5IEqSp6ql96L8Lmv/9/ eDSpI0hO/3jOg8KuufZNinPbCAQLH05mJSYeh9h49qJM6ypo5c2oatkcSqGfUPcl6kCP ndvZmCRDVboRUJVlVmFcLrpxoixysdUr6umzPLbJbzeGQXCEz2hAK54ZtUG1UzAyIF2C KlsxTYCdFZPWvW/VRmLWgr5ptopICVbQLZ+Z585vZcFDE9Znc2iWxYKImj8kX6fHDb9s MX376UewMIG6xdi93NmFQC8kl4ZsjrNGl1VCbVwWAsMVNvPdpbzznTQyE9cFnq3RTjWs 6v2A== X-Gm-Message-State: ALoCoQn41bHzloXFFXBKJiDjuEkvC+ZgqwPkxAIDAqXHpslxA4ClOo//xMl34VoSgJ9+ZaQ6WIYkb787OIdXoBh0485D3OR6TKVcXdcdpxsdpQb1lJGOl1PlXhAnO6xvSFD3IfZeopJA X-Received: by 10.220.7.71 with SMTP id c7mr17069595vcc.77.1406063683185; Tue, 22 Jul 2014 14:14:43 -0700 (PDT) MIME-Version: 1.0 X-Received: by 10.220.7.71 with SMTP id c7mr17069573vcc.77.1406063683026; Tue, 22 Jul 2014 14:14:43 -0700 (PDT) Received: by 10.52.112.67 with HTTP; Tue, 22 Jul 2014 14:14:42 -0700 (PDT) In-Reply-To: <20140722205605.GJ20518@dastard> References: <20140722160641.GU17967@beardog.cce.hp.com> <20140722205605.GJ20518@dastard> Date: Tue, 22 Jul 2014 15:14:42 -0600 Message-ID: Subject: Re: Problem building xfsprogs From: Martin Furuhjelm X-ASG-Orig-Subj: Re: Problem building xfsprogs To: Dave Chinner Cc: scameron@beardog.cce.hp.com, fstests@vger.kernel.org, xfs@oss.sgi.com Content-Type: multipart/alternative; boundary=001a11c3b4125bd36704feceb609 X-Proofpoint-PolicyRoute: Outbound X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10432:5.12.52,1.0.14,0.0.0000 definitions=2014-07-22_07:2014-07-22,2014-07-22,1970-01-01 signatures=0 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 kscore.is_bulkscore=0 kscore.compositescore=1 circleOfTrustscore=18.08 compositescore=0.000238759004257359 urlsuspect_oldscore=0.00238759002783049 suspectscore=7 recipient_domain_to_sender_totalscore=0 phishscore=0 bulkscore=0 kscore.is_spamscore=0 recipient_to_sender_totalscore=0 recipient_domain_to_sender_domain_totalscore=2260 rbsscore=0.000238759004257359 spamscore=0 recipient_to_sender_domain_totalscore=0 urlsuspectscore=0.3 adultscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=7.0.1-1402240000 definitions=main-1407220234 X-Barracuda-Connect: mx0b-00003501.pphosted.com[67.231.152.68] X-Barracuda-Start-Time: 1406063712 X-Barracuda-Encrypted: AES256-SHA X-Barracuda-URL: http://192.48.176.25:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 X-Barracuda-Spam-Score: 2.40 X-Barracuda-Spam-Status: No, SCORE=2.40 using per-user scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.7 tests=BSF_SC0_SA085, BSF_SC7_SA_HTTPS_MISMATCH, HTML_MESSAGE X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.7727 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 2.30 BSF_SC7_SA_HTTPS_MISMATCH BODY: Custom Phishing Mismatch 0.00 HTML_MESSAGE BODY: HTML included in message 0.10 BSF_SC0_SA085 Custom Rule SA085 --001a11c3b4125bd36704feceb609 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable I have just recently gone through the process of attempting to build and run xfstests based on the current sources from oss.sgi.com. Not having exactly the correct packages and kernel version creates problems. The build on FEDORA fails complaining about too many symlinks, I was successful on SUSE V 13 updated to kernel v3.15 and adding the following packages before attempting git and the build: git gcc libtool automake make gettext-tools libattr-devel libacl-devel libuuid-devel ncurses-devel quota indent libcap-progs btrfsprogs I then git and built xfsprogs followed by xfsdump and finally xfstests After adding the fsgqa group and user the appropriate definitions of TEST_DEV and SCRATCH_DEV the quick test (./check -g quick) runs with 5 errors on xfs and one error on ext4. If you just want xfstest to run - you may want to start with SUSE and the procedure above. Martin Furuhjlem On Tue, Jul 22, 2014 at 2:56 PM, Dave Chinner wrote: > [cc xfs@oss.sgi.com - list for XFS issues] > > On Tue, Jul 22, 2014 at 11:06:41AM -0500, scameron@beardog.cce.hp.com > wrote: > > > > I'm trying to build xfsprogs (in order to run xfstests), and I'm runnin= g > into this: > > > > [scameron@localhost xfsprogs]$ git log --oneline | head -1 > > ba24eb7 logprint: Fix printing of AGF and AGI buffers > > [scameron@localhost xfsprogs]$ git pull > > Already up-to-date. > > [scameron@localhost xfsprogs]$ git diff > > [scameron@localhost xfsprogs]$ ./configure > > checking build system type... x86_64-unknown-linux-gnu > > checking host system type... x86_64-unknown-linux-gnu > > checking for gcc... gcc > > checking for C compiler default output file name... a.out > > > > [...snip...] > > > > checking for library containing blkid_probe_all... -lblkid > > checking for blkid_probe_get_topology... yes > > checking for readdir... yes > > checking size of long... 8 > > checking size of char *... 8 > > checking for __psint_t ... no > > checking for __psunsigned_t ... no > > checking for __u32 ... yes > > checking for umode_t... yes > > configure: creating ./config.status > > config.status: creating include/builddefs > > config.status: creating include/platform_defs.h > > config.status: include/platform_defs.h is unchanged > > config.status: executing libtool commands > > [scameron@localhost xfsprogs]$ make > > Building include > > Nothing built in the include directory - is this a clean build area? > > > Building libxfs > > gmake[2]: *** No rule to make target `.ltdep', needed by `ltdepend'. > Stop. > > gmake[1]: *** [libxfs] Error 2 > > make: *** [default] Error 2 > > > > Any ideas what's wrong here? > > The automatic dependency generation failed to generate the .ltdep > file. But it can't be a clean build area, because the libxfs build > rule is: > > default: crc32selftest ltdepend $(LTLIBRARY) > > and I don't see the crc32selftest rule being executed before the > dependencies are generated. It shoul dlook something like: > > $ make > .... > configure: creating ./config.status > config.status: creating include/builddefs > config.status: creating include/platform_defs.h > config.status: executing libtool commands > Building include > [LN] xfs > [LN] disk > Building libxfs > [CC] gen_crc32table > [GENERATE] crc32table.h > [TEST] CRC32 > CRC_LE_BITS =3D 32 > crc32: tests passed, 225944 bytes in 131 usec > crc32c: tests passed, 225944 bytes in 131 usec > [CC] cache.lo > .... > > So the first thing I'd do is run 'make realclean; make' to restart > the build for a clean workarea first. If that doesn't fix the > problem, then I'll need to know versions of libtool, gcc, etc that > you are using and you'll need to post the output of "make realclean; > make Q=3D" so we can see the command line that is actually failing. > > Cheers, > > Dave. > -- > Dave Chinner > david@fromorbit.com > -- > To unsubscribe from this list: send the line "unsubscribe fstests" in > the body of a message to majordomo@vger.kernel.org > More majordomo info at > https://urldefense.proofpoint.com/v1/url?u=3Dhttp://vger.kernel.org/major= domo-info.html&k=3D2a4Akkj3oY%2FOkjwft1MTMw%3D%3D%0A&r=3DjY8ozfSdJMiFQxJbqM= IFvF4Q5MYg6nOaolSGt082e48%3D%0A&m=3DbI0%2F1zZckAg2ytRBSMleHvthTKGuNDtYaUYrC= %2BGOuV4%3D%0A&s=3D7e28774591d3b095daa0b053b597ecb5e73203b4a403132664165f44= ac3aaa49 > --001a11c3b4125bd36704feceb609 Content-Type: text/html; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable
I have just recently gone through the process of attemptin= g to build and run xfstests based on the current sources from oss.sgi.com.
Not having exactly= the correct packages and kernel version creates problems. The build on FED= ORA fails complaining about too many symlinks, I was successful on SUSE V 1= 3 updated to kernel v3.15 and adding the following packages before attempti= ng git and the build:

git gcc libtool automake m= ake gettext-tools libattr-devel libacl-devel libuuid-devel ncurses-devel qu= ota indent libcap-progs btrfsprogs

I then= git and built xfsprogs followed by xfsdump and finally xfstests

After adding the fsgqa group and user the appropriate d= efinitions of TEST_DEV and SCRATCH_DEV the quick test (./check -g quick)
runs with 5 errors on xfs and one error on ext4.

<= div>If you just want xfstest to run - you may want to start with SUSE and t= he procedure above.

Martin Furuhjlem

On Tue, Jul= 22, 2014 at 2:56 PM, Dave Chinner <david@fromorbit.com> w= rote:
[cc x= fs@oss.sgi.com - list for XFS issues]

On Tue, Jul 22, 2014 at 11:06:41AM -0500, scameron@beardog.cce.hp.com wrote:
>
> I'm trying to build xfsprogs (in order to run xfstests), and I'= ;m running into this:
>
> [scameron@localhost xfsprogs]$ git log --oneline | head -1
> ba24eb7 logprint: Fix printing of AGF and AGI buffers
> [scameron@localhost xfsprogs]$ git pull
> Already up-to-date.
> [scameron@localhost xfsprogs]$ git diff
> [scameron@localhost xfsprogs]$ ./configure
> checking build system type... x86_64-unknown-linux-gnu
> checking host system type... x86_64-unknown-linux-gnu
> checking for gcc... gcc
> checking for C compiler default output file name... a.out
>
> [...snip...]
>
> checking for library containing blkid_probe_all... -lblkid
> checking for blkid_probe_get_topology... yes
> checking for readdir... yes
> checking size of long... 8
> checking size of char *... 8
> checking for __psint_t ... no
> checking for __psunsigned_t ... no
> checking for __u32 ... yes
> checking for umode_t... yes
> configure: creating ./config.status
> config.status: creating include/builddefs
> config.status: creating include/platform_defs.h
> config.status: include/platform_defs.h is unchanged
> config.status: executing libtool commands
> [scameron@localhost xfsprogs]$ make
> Building include

Nothing built in the include directory - is this a clean build = area?

> Building libxfs
> gmake[2]: *** No rule to make target `.ltdep', needed by `ltdepend= '. =A0Stop.
> gmake[1]: *** [libxfs] Error 2
> make: *** [default] Error 2
>
> Any ideas what's wrong here?

The automatic dependency generation failed to generate the .ltdep
file. But it can't be a clean build area, because the libxfs build
rule is:

default: crc32selftest ltdepend $(LTLIBRARY)

and I don't see the crc32selftest rule being executed before the
dependencies are generated. It shoul dlook something like:

$ make
....
configure: creating ./config.status
config.status: creating include/builddefs
config.status: creating include/platform_defs.h
config.status: executing libtool commands
Building include
=A0 =A0 [LN] =A0 =A0 xfs
=A0 =A0 [LN] =A0 =A0 disk
Building libxfs
=A0 =A0 [CC] =A0 =A0 gen_crc32table
=A0 =A0 [GENERATE] crc32table.h
=A0 =A0 [TEST] =A0 =A0CRC32
CRC_LE_BITS =3D 32
crc32: tests passed, 225944 bytes in 131 usec
crc32c: tests passed, 225944 bytes in 131 usec
=A0 =A0 [CC] =A0 =A0 cache.lo
....

So the first thing I'd do is run 'make realclean; make' to rest= art
the build for a clean workarea first. If that doesn't fix the
problem, then I'll need to know versions of libtool, gcc, etc that
you are using and you'll need to post the output of "make realclea= n;
make Q=3D" so we can see the command line that is actually failing.
Cheers,

Dave.
--
Dave Chinner
david@fromorbit.co= m
--
To unsubscribe from this list: send the line "unsubscribe fstests"= ; in
the body of a message to majordomo@vger.kernel.org
More majordomo info at =A0https://urldefense.proofpoint.com/v1/url?u=3Dhttp://vger.kernel= .org/majordomo-info.html&k=3D2a4Akkj3oY%2FOkjwft1MTMw%3D%3D%0A&r=3D= jY8ozfSdJMiFQxJbqMIFvF4Q5MYg6nOaolSGt082e48%3D%0A&m=3DbI0%2F1zZckAg2ytR= BSMleHvthTKGuNDtYaUYrC%2BGOuV4%3D%0A&s=3D7e28774591d3b095daa0b053b597ec= b5e73203b4a403132664165f44ac3aaa49

--001a11c3b4125bd36704feceb609-- From sandeen@sandeen.net Tue Jul 22 16:18:31 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: xfs@oss.sgi.com Delivered-To: xfs@oss.sgi.com Received: from relay.sgi.com (relay3.corp.sgi.com [198.149.34.15]) by oss.sgi.com (Postfix) with ESMTP id B2F1E7F47 for ; Tue, 22 Jul 2014 16:18:31 -0500 (CDT) Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by relay3.corp.sgi.com (Postfix) with ESMTP id 4ECBBAC002 for ; Tue, 22 Jul 2014 14:18:28 -0700 (PDT) X-ASG-Debug-ID: 1406063905-04bdf0681215d490001-NocioJ Received: from sandeen.net (sandeen.net [63.231.237.45]) by cuda.sgi.com with ESMTP id gfok2Oo8RdIvf5U0 for ; Tue, 22 Jul 2014 14:18:26 -0700 (PDT) X-Barracuda-Envelope-From: sandeen@sandeen.net X-Barracuda-Apparent-Source-IP: 63.231.237.45 Received: from liberator.sandeen.net (liberator.sandeen.net [10.0.0.4]) (using TLSv1 with cipher DHE-RSA-AES128-SHA (128/128 bits)) (No client certificate requested) by sandeen.net (Postfix) with ESMTPSA id 47D836530A43; Tue, 22 Jul 2014 16:18:25 -0500 (CDT) Message-ID: <53CED520.5090707@sandeen.net> Date: Tue, 22 Jul 2014 16:18:24 -0500 From: Eric Sandeen MIME-Version: 1.0 To: Martin Furuhjelm , Dave Chinner CC: scameron@beardog.cce.hp.com, fstests@vger.kernel.org, xfs@oss.sgi.com Subject: Re: Problem building xfsprogs References: <20140722160641.GU17967@beardog.cce.hp.com> <20140722205605.GJ20518@dastard> X-ASG-Orig-Subj: Re: Problem building xfsprogs In-Reply-To: X-Enigmail-Version: 1.6 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit X-Barracuda-Connect: sandeen.net[63.231.237.45] X-Barracuda-Start-Time: 1406063905 X-Barracuda-URL: http://192.48.157.11:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 X-Barracuda-Spam-Score: 0.10 X-Barracuda-Spam-Status: No, SCORE=0.10 using per-user scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.7 tests=BSF_SC0_SA085 X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.7727 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.10 BSF_SC0_SA085 Custom Rule SA085 On 7/22/14, 4:14 PM, Martin Furuhjelm wrote: > I have just recently gone through the process of attempting to build and run xfstests based on the current sources from oss.sgi.com . > Not having exactly the correct packages and kernel version creates problems. The build on FEDORA fails complaining about too many symlinks, I was successful on SUSE V 13 updated to kernel v3.15 and adding the following packages before attempting git and the build: FWIW, on fedora, simply: # yum install xfsprogs xfsprogs-devel xfsprogs-qa-devel should be enough (along w/ the other dependencies like libuuid, libacl, etc) to build xfstests. -Eric > git gcc libtool automake make gettext-tools libattr-devel libacl-devel libuuid-devel ncurses-devel quota indent libcap-progs btrfsprogs > > I then git and built xfsprogs followed by xfsdump and finally xfstests > > After adding the fsgqa group and user the appropriate definitions of TEST_DEV and SCRATCH_DEV the quick test (./check -g quick) > runs with 5 errors on xfs and one error on ext4. > > If you just want xfstest to run - you may want to start with SUSE and the procedure above. > > Martin Furuhjlem > > On Tue, Jul 22, 2014 at 2:56 PM, Dave Chinner > wrote: > > [cc xfs@oss.sgi.com - list for XFS issues] > > On Tue, Jul 22, 2014 at 11:06:41AM -0500, scameron@beardog.cce.hp.com wrote: > > > > I'm trying to build xfsprogs (in order to run xfstests), and I'm running into this: > > > > [scameron@localhost xfsprogs]$ git log --oneline | head -1 > > ba24eb7 logprint: Fix printing of AGF and AGI buffers > > [scameron@localhost xfsprogs]$ git pull > > Already up-to-date. > > [scameron@localhost xfsprogs]$ git diff > > [scameron@localhost xfsprogs]$ ./configure > > checking build system type... x86_64-unknown-linux-gnu > > checking host system type... x86_64-unknown-linux-gnu > > checking for gcc... gcc > > checking for C compiler default output file name... a.out > > > > [...snip...] > > > > checking for library containing blkid_probe_all... -lblkid > > checking for blkid_probe_get_topology... yes > > checking for readdir... yes > > checking size of long... 8 > > checking size of char *... 8 > > checking for __psint_t ... no > > checking for __psunsigned_t ... no > > checking for __u32 ... yes > > checking for umode_t... yes > > configure: creating ./config.status > > config.status: creating include/builddefs > > config.status: creating include/platform_defs.h > > config.status: include/platform_defs.h is unchanged > > config.status: executing libtool commands > > [scameron@localhost xfsprogs]$ make > > Building include > > Nothing built in the include directory - is this a clean build area? > > > Building libxfs > > gmake[2]: *** No rule to make target `.ltdep', needed by `ltdepend'. Stop. > > gmake[1]: *** [libxfs] Error 2 > > make: *** [default] Error 2 > > > > Any ideas what's wrong here? > > The automatic dependency generation failed to generate the .ltdep > file. But it can't be a clean build area, because the libxfs build > rule is: > > default: crc32selftest ltdepend $(LTLIBRARY) > > and I don't see the crc32selftest rule being executed before the > dependencies are generated. It shoul dlook something like: > > $ make > .... > configure: creating ./config.status > config.status: creating include/builddefs > config.status: creating include/platform_defs.h > config.status: executing libtool commands > Building include > [LN] xfs > [LN] disk > Building libxfs > [CC] gen_crc32table > [GENERATE] crc32table.h > [TEST] CRC32 > CRC_LE_BITS = 32 > crc32: tests passed, 225944 bytes in 131 usec > crc32c: tests passed, 225944 bytes in 131 usec > [CC] cache.lo > .... > > So the first thing I'd do is run 'make realclean; make' to restart > the build for a clean workarea first. If that doesn't fix the > problem, then I'll need to know versions of libtool, gcc, etc that > you are using and you'll need to post the output of "make realclean; > make Q=" so we can see the command line that is actually failing. > > Cheers, > > Dave. > -- > Dave Chinner > david@fromorbit.com > -- > To unsubscribe from this list: send the line "unsubscribe fstests" in > the body of a message to majordomo@vger.kernel.org > More majordomo info at https://urldefense.proofpoint.com/v1/url?u=http://vger.kernel.org/majordomo-info.html&k=2a4Akkj3oY%2FOkjwft1MTMw%3D%3D%0A&r=jY8ozfSdJMiFQxJbqMIFvF4Q5MYg6nOaolSGt082e48%3D%0A&m=bI0%2F1zZckAg2ytRBSMleHvthTKGuNDtYaUYrC%2BGOuV4%3D%0A&s=7e28774591d3b095daa0b053b597ecb5e73203b4a403132664165f44ac3aaa49 > > > > > _______________________________________________ > xfs mailing list > xfs@oss.sgi.com > http://oss.sgi.com/mailman/listinfo/xfs > From scameron@beardog.cce.hp.com Tue Jul 22 16:21:38 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: xfs@oss.sgi.com Delivered-To: xfs@oss.sgi.com Received: from relay.sgi.com (relay3.corp.sgi.com [198.149.34.15]) by oss.sgi.com (Postfix) with ESMTP id 181E67F47 for ; Tue, 22 Jul 2014 16:21:38 -0500 (CDT) Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by relay3.corp.sgi.com (Postfix) with ESMTP id A7169AC003 for ; Tue, 22 Jul 2014 14:21:37 -0700 (PDT) X-ASG-Debug-ID: 1406064095-04bdf0681315d650001-NocioJ Received: from g6t1525.atlanta.hp.com (g6t1525.atlanta.hp.com [15.193.200.68]) by cuda.sgi.com with ESMTP id ZQO2ERbael7a2xsQ (version=TLSv1 cipher=AES256-SHA bits=256 verify=NO) for ; Tue, 22 Jul 2014 14:21:36 -0700 (PDT) X-Barracuda-Envelope-From: scameron@beardog.cce.hp.com X-Barracuda-Apparent-Source-IP: 15.193.200.68 Received: from g5t1633.atlanta.hp.com (g5t1633.atlanta.hp.com [16.201.144.132]) by g6t1525.atlanta.hp.com (Postfix) with ESMTP id 037DE143; Tue, 22 Jul 2014 21:21:34 +0000 (UTC) Received: from beardog.cce.hp.com (beardog.cce.hp.com [16.84.84.24]) by g5t1633.atlanta.hp.com (Postfix) with ESMTP id 3ADAF6B; Tue, 22 Jul 2014 21:21:33 +0000 (UTC) Received: from beardog.cce.hp.com (beardog.cce.hp.com [127.0.0.1]) by beardog.cce.hp.com (8.13.8/8.13.8) with ESMTP id s6MLKgus015245; Tue, 22 Jul 2014 16:20:42 -0500 Received: (from scameron@localhost) by beardog.cce.hp.com (8.13.8/8.13.8/Submit) id s6MLKguC015244; Tue, 22 Jul 2014 16:20:42 -0500 Date: Tue, 22 Jul 2014 16:20:42 -0500 From: scameron@beardog.cce.hp.com To: Martin Furuhjelm Cc: Dave Chinner , fstests@vger.kernel.org, xfs@oss.sgi.com, scameron@beardog.cce.hp.com Subject: Re: Problem building xfsprogs Message-ID: <20140722212042.GF14599@beardog.cce.hp.com> X-ASG-Orig-Subj: Re: Problem building xfsprogs References: <20140722160641.GU17967@beardog.cce.hp.com> <20140722205605.GJ20518@dastard> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.4.2.2i X-Barracuda-Connect: g6t1525.atlanta.hp.com[15.193.200.68] X-Barracuda-Start-Time: 1406064095 X-Barracuda-Encrypted: AES256-SHA X-Barracuda-URL: http://192.48.157.11:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 X-Barracuda-Spam-Score: 0.10 X-Barracuda-Spam-Status: No, SCORE=0.10 using per-user scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.7 tests=BSF_SC0_SA085, BSF_SC5_SA210e, NO_REAL_NAME X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.7728 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.00 NO_REAL_NAME From: does not include a real name 0.10 BSF_SC0_SA085 Custom Rule SA085 0.00 BSF_SC5_SA210e Custom Rule SA210e On Tue, Jul 22, 2014 at 03:14:42PM -0600, Martin Furuhjelm wrote: > I have just recently gone through the process of attempting to build and > run xfstests based on the current sources from oss.sgi.com. > Not having exactly the correct packages and kernel version creates > problems. The build on FEDORA fails complaining about too many symlinks, I > was successful on SUSE V 13 updated to kernel v3.15 and adding the > following packages before attempting git and the build: > > git gcc libtool automake make gettext-tools libattr-devel libacl-devel > libuuid-devel ncurses-devel quota indent libcap-progs btrfsprogs > > I then git and built xfsprogs followed by xfsdump and finally xfstests > > After adding the fsgqa group and user the appropriate definitions of > TEST_DEV and SCRATCH_DEV the quick test (./check -g quick) > runs with 5 errors on xfs and one error on ext4. > > If you just want xfstest to run - you may want to start with SUSE and the > procedure above. Thanks, Actually I want to run it with 3.16.0-rc5+ which is to say, with Christoph Hellwig's scsi-mq.4 tree along with ~150 patches to the hpsa driver applied on top of that. Basically, I'm trying to gain confidence in a fairly massive set of driver changes by testing with xfstests (among other things, of course). -- steve > > Martin Furuhjlem > > On Tue, Jul 22, 2014 at 2:56 PM, Dave Chinner wrote: > > > [cc xfs@oss.sgi.com - list for XFS issues] > > > > On Tue, Jul 22, 2014 at 11:06:41AM -0500, scameron@beardog.cce.hp.com > > wrote: > > > > > > I'm trying to build xfsprogs (in order to run xfstests), and I'm running > > into this: > > > > > > [scameron@localhost xfsprogs]$ git log --oneline | head -1 > > > ba24eb7 logprint: Fix printing of AGF and AGI buffers > > > [scameron@localhost xfsprogs]$ git pull > > > Already up-to-date. > > > [scameron@localhost xfsprogs]$ git diff > > > [scameron@localhost xfsprogs]$ ./configure > > > checking build system type... x86_64-unknown-linux-gnu > > > checking host system type... x86_64-unknown-linux-gnu > > > checking for gcc... gcc > > > checking for C compiler default output file name... a.out > > > > > > [...snip...] > > > > > > checking for library containing blkid_probe_all... -lblkid > > > checking for blkid_probe_get_topology... yes > > > checking for readdir... yes > > > checking size of long... 8 > > > checking size of char *... 8 > > > checking for __psint_t ... no > > > checking for __psunsigned_t ... no > > > checking for __u32 ... yes > > > checking for umode_t... yes > > > configure: creating ./config.status > > > config.status: creating include/builddefs > > > config.status: creating include/platform_defs.h > > > config.status: include/platform_defs.h is unchanged > > > config.status: executing libtool commands > > > [scameron@localhost xfsprogs]$ make > > > Building include > > > > Nothing built in the include directory - is this a clean build area? > > > > > Building libxfs > > > gmake[2]: *** No rule to make target `.ltdep', needed by `ltdepend'. > > Stop. > > > gmake[1]: *** [libxfs] Error 2 > > > make: *** [default] Error 2 > > > > > > Any ideas what's wrong here? > > > > The automatic dependency generation failed to generate the .ltdep > > file. But it can't be a clean build area, because the libxfs build > > rule is: > > > > default: crc32selftest ltdepend $(LTLIBRARY) > > > > and I don't see the crc32selftest rule being executed before the > > dependencies are generated. It shoul dlook something like: > > > > $ make > > .... > > configure: creating ./config.status > > config.status: creating include/builddefs > > config.status: creating include/platform_defs.h > > config.status: executing libtool commands > > Building include > > [LN] xfs > > [LN] disk > > Building libxfs > > [CC] gen_crc32table > > [GENERATE] crc32table.h > > [TEST] CRC32 > > CRC_LE_BITS = 32 > > crc32: tests passed, 225944 bytes in 131 usec > > crc32c: tests passed, 225944 bytes in 131 usec > > [CC] cache.lo > > .... > > > > So the first thing I'd do is run 'make realclean; make' to restart > > the build for a clean workarea first. If that doesn't fix the > > problem, then I'll need to know versions of libtool, gcc, etc that > > you are using and you'll need to post the output of "make realclean; > > make Q=" so we can see the command line that is actually failing. > > > > Cheers, > > > > Dave. > > -- > > Dave Chinner > > david@fromorbit.com > > -- > > To unsubscribe from this list: send the line "unsubscribe fstests" in > > the body of a message to majordomo@vger.kernel.org > > More majordomo info at > > https://urldefense.proofpoint.com/v1/url?u=http://vger.kernel.org/majordomo-info.html&k=2a4Akkj3oY%2FOkjwft1MTMw%3D%3D%0A&r=jY8ozfSdJMiFQxJbqMIFvF4Q5MYg6nOaolSGt082e48%3D%0A&m=bI0%2F1zZckAg2ytRBSMleHvthTKGuNDtYaUYrC%2BGOuV4%3D%0A&s=7e28774591d3b095daa0b053b597ecb5e73203b4a403132664165f44ac3aaa49 > > From david@fromorbit.com Tue Jul 22 16:47:33 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: xfs@oss.sgi.com Delivered-To: xfs@oss.sgi.com Received: from relay.sgi.com (relay1.corp.sgi.com [137.38.102.111]) by oss.sgi.com (Postfix) with ESMTP id 7874B7F47 for ; Tue, 22 Jul 2014 16:47:33 -0500 (CDT) Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by relay1.corp.sgi.com (Postfix) with ESMTP id 6467C8F8033 for ; Tue, 22 Jul 2014 14:47:33 -0700 (PDT) X-ASG-Debug-ID: 1406065650-04cbb064e514e720001-NocioJ Received: from ipmail05.adl6.internode.on.net (ipmail05.adl6.internode.on.net [150.101.137.143]) by cuda.sgi.com with ESMTP id FEMnLEGToCynDnRf for ; Tue, 22 Jul 2014 14:47:30 -0700 (PDT) X-Barracuda-Envelope-From: david@fromorbit.com X-Barracuda-Apparent-Source-IP: 150.101.137.143 X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: AhoPAC3bzlN5LHOdPGdsb2JhbABZgw5SV4InhQinQAwBAQEBAQEGmBiHTQGBERcEAQEBATg2hAMBAQQBOhwjBQsIAxgJJQ8FJQMHLYg6B8ATGIVjiQNNB4RGBZsmmAwrLwGBAw Received: from ppp121-44-115-157.lns20.syd6.internode.on.net (HELO dastard) ([121.44.115.157]) by ipmail05.adl6.internode.on.net with ESMTP; 23 Jul 2014 07:17:28 +0930 Received: from dave by dastard with local (Exim 4.80) (envelope-from ) id 1X9huB-00034s-Dv; Wed, 23 Jul 2014 07:47:27 +1000 Date: Wed, 23 Jul 2014 07:47:27 +1000 From: Dave Chinner To: scameron@beardog.cce.hp.com Cc: fstests@vger.kernel.org, xfs@oss.sgi.com Subject: Re: Problem building xfsprogs Message-ID: <20140722214727.GP4453@dastard> X-ASG-Orig-Subj: Re: Problem building xfsprogs References: <20140722160641.GU17967@beardog.cce.hp.com> <20140722205605.GJ20518@dastard> <20140722210951.GE14599@beardog.cce.hp.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20140722210951.GE14599@beardog.cce.hp.com> User-Agent: Mutt/1.5.21 (2010-09-15) X-Barracuda-Connect: ipmail05.adl6.internode.on.net[150.101.137.143] X-Barracuda-Start-Time: 1406065650 X-Barracuda-URL: http://192.48.176.25:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 X-Barracuda-Spam-Score: 0.00 X-Barracuda-Spam-Status: No, SCORE=0.00 using per-user scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.7 tests=BSF_SC0_MISMATCH_TO X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.7728 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.00 BSF_SC0_MISMATCH_TO Envelope rcpt doesn't match header On Tue, Jul 22, 2014 at 04:09:51PM -0500, scameron@beardog.cce.hp.com wrote: > On Wed, Jul 23, 2014 at 06:56:05AM +1000, Dave Chinner wrote: > > Nothing built in the include directory - is this a clean build area? > > Well, it was originally clean, but I did try the build several > times (not sure why I thought trying it again might help, but > in any case I suppose the subsequent attempts may not have been > considered clean.) > > So, I just tried a fresh checkout with the same results: > > [relliott@msablackburn ~]$ rm -fr xfsprogs > [relliott@msablackburn ~]$ git clone git://oss.sgi.com/xfs/cmds/xfsprogs > Initialized empty Git repository in /home/relliott/xfsprogs/.git/ > remote: Counting objects: 14359, done. > remote: Compressing objects: 100% (5042/5042), done. > remote: Total 14359 (delta 11622), reused 11396 (delta 9306) > Receiving objects: 100% (14359/14359), 4.43 MiB | 1.34 MiB/s, done. > Resolving deltas: 100% (11622/11622), done. > [relliott@msablackburn ~]$ cd xfsprogs > [relliott@msablackburn xfsprogs]$ make .... > checking for gmake... /usr/bin/gmake > checking for tar... /bin/tar > checking for gzip... /bin/gzip > checking whether gcc -MM is supported... yes So, the $MAKEDEP variable should be fine.... > [relliott@msablackburn xfsprogs]$ make realclean; make Q= ... > aclocal -I m4 > autoconf > ./configure $LOCAL_CONFIGURE_OPTIONS > checking build system type... x86_64-unknown-linux-gnu > checking host system type... x86_64-unknown-linux-gnu > checking for gcc... gcc > checking for C compiler default output file name... a.out > checking whether the C compiler works... yes > checking whether we are cross compiling... no > checking for suffix of executables... > checking for suffix of object files... o > checking whether we are using the GNU C compiler... yes > checking whether gcc accepts -g... yes > checking for gcc option to accept ISO C89... none needed > checking for a sed that does not truncate output... /bin/sed > checking for grep that handles long lines and -e... /bin/grep > checking for egrep... /bin/grep -E > checking for fgrep... /bin/grep -F > checking for ld used by gcc... /usr/bin/ld > checking if the linker (/usr/bin/ld) is GNU ld... yes > checking for BSD- or MS-compatible name lister (nm)... /usr/bin/nm -B > checking the name lister (/usr/bin/nm -B) interface... BSD nm > checking whether ln -s works... yes > checking the maximum length of command line arguments... 1572864 > checking whether the shell understands some XSI constructs... yes > checking whether the shell understands "+="... yes > checking for /usr/bin/ld option to reload object files... -r > checking for objdump... objdump > checking how to recognize dependent libraries... pass_all > checking for ar... ar > checking for strip... strip > checking for ranlib... ranlib > checking command to parse /usr/bin/nm -B output from gcc object... ok > checking how to run the C preprocessor... gcc -E > checking for ANSI C header files... yes > checking for sys/types.h... yes > checking for sys/stat.h... yes > checking for stdlib.h... yes > checking for string.h... yes > checking for memory.h... yes > checking for strings.h... yes > checking for inttypes.h... yes > checking for stdint.h... yes > checking for unistd.h... yes > checking for dlfcn.h... yes > checking for objdir... .libs > checking if gcc supports -fno-rtti -fno-exceptions... no > checking for gcc option to produce PIC... -fPIC -DPIC > checking if gcc PIC flag -fPIC -DPIC works... yes > checking if gcc static flag -static works... no > checking if gcc supports -c -o file.o... yes > checking if gcc supports -c -o file.o... (cached) yes > checking whether the gcc linker (/usr/bin/ld -m elf_x86_64) supports shared libraries... yes > checking whether -lc should be explicitly linked in... no > checking dynamic linker characteristics... GNU/Linux ld.so > checking how to hardcode library paths into programs... immediate > checking whether stripping libraries is possible... yes > checking if libtool supports shared libraries... yes > checking whether to build shared libraries... yes > checking whether to build static libraries... yes > checking for gcc... (cached) gcc > checking whether we are using the GNU C compiler... (cached) yes > checking whether gcc accepts -g... (cached) yes > checking for gcc option to accept ISO C89... (cached) none needed > checking for gcc... (cached) gcc > checking whether we are using the GNU C compiler... (cached) yes > checking whether gcc accepts -g... (cached) yes > checking for gcc option to accept ISO C89... (cached) none needed > checking for gmake... /usr/bin/gmake > checking for tar... /bin/tar > checking for gzip... /bin/gzip > checking whether gcc -MM is supported... yes > checking for awk... /bin/awk > checking for sort... /bin/sort > checking whether ln -s works... yes > checking for msgfmt... /usr/bin/msgfmt > checking for msgmerge... /usr/bin/msgmerge > checking for xgettext... /usr/bin/xgettext > checking for rpm... /bin/rpm > checking for rpmbuild... /usr/bin/rpmbuild > checking aio.h usability... yes > checking aio.h presence... yes > checking for aio.h... yes > checking for lio_listio... no > checking for lio_listio in -lrt... yes > checking uuid.h usability... yes > checking uuid.h presence... yes > checking for uuid.h... yes > checking sys/uuid.h usability... no > checking sys/uuid.h presence... no > checking for sys/uuid.h... no > checking uuid/uuid.h usability... yes > checking uuid/uuid.h presence... yes > checking for uuid/uuid.h... yes > checking for uuid_compare... no > checking for uuid_compare in -luuid... yes > checking pthread.h usability... yes > checking pthread.h presence... yes > checking for pthread.h... yes > checking for pthread_mutex_init in -lpthread... yes > checking for fadvise ... yes > checking for madvise ... yes > checking for mincore ... yes > checking for sendfile ... yes > checking for getmntent ... yes > checking for getmntinfo ... no > checking for fallocate... yes > checking for fiemap... yes > checking for preadv... yes > checking for sync_file_range... yes > checking for library containing blkid_probe_all... -lblkid > checking for blkid_probe_get_topology... yes > checking for readdir... yes > checking size of long... 8 > checking size of char *... 8 > checking for __psint_t ... no > checking for __psunsigned_t ... no > checking for __u32 ... yes > checking for umode_t... yes > configure: creating ./config.status > config.status: creating include/builddefs > config.status: creating include/platform_defs.h > config.status: executing libtool commands > make --no-print-directory Q= -C . default > /usr/bin/gmake --no-print-directory Q= include libxfs libxlog libxcmd libhandle libdisk copy db estimate fsck fsr growfs io logprint mkfs quota mdrestore repair rtcp m4 man doc po debian > Building include > /usr/bin/gmake --no-print-directory Q= -q -C include || /usr/bin/gmake --no-print-directory Q= -C include > [LN] xfs > ln -s . xfs > [LN] disk > ln -s . disk > Building libxfs > /usr/bin/gmake --no-print-directory Q= -q -C libxfs || /usr/bin/gmake --no-print-directory Q= -C libxfs > [CC] gen_crc32table > gcc -g -O2 -I. -g -O2 -DNDEBUG -DVERSION=\"3.2.1\" -DLOCALEDIR=\"/usr/share/locale\" -DPACKAGE=\"xfsprogs\" -I../include -DENABLE_GETTEXT -o gen_crc32table gen_crc32table.c > [GENERATE] crc32table.h > ./gen_crc32table > crc32table.h But it's not running the dependency generation rule here, which is what generates the .ltdep file. Can you please attach the built include/builddefs and include/platform_defs.h files that autoconf built? Also, what version of autoconf are you running? Cheers, Dave. -- Dave Chinner david@fromorbit.com From sandeen@sandeen.net Tue Jul 22 16:50:58 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: xfs@oss.sgi.com Delivered-To: xfs@oss.sgi.com Received: from relay.sgi.com (relay2.corp.sgi.com [137.38.102.29]) by oss.sgi.com (Postfix) with ESMTP id 45D2B7F47 for ; Tue, 22 Jul 2014 16:50:58 -0500 (CDT) Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by relay2.corp.sgi.com (Postfix) with ESMTP id 322A9304039 for ; Tue, 22 Jul 2014 14:50:58 -0700 (PDT) X-ASG-Debug-ID: 1406065856-04cbb064e714e9e0001-NocioJ Received: from sandeen.net (sandeen.net [63.231.237.45]) by cuda.sgi.com with ESMTP id 7O6Vlq0GcBRIxM7Z for ; Tue, 22 Jul 2014 14:50:56 -0700 (PDT) X-Barracuda-Envelope-From: sandeen@sandeen.net X-Barracuda-Apparent-Source-IP: 63.231.237.45 Received: from liberator.sandeen.net (liberator.sandeen.net [10.0.0.4]) (using TLSv1 with cipher DHE-RSA-AES128-SHA (128/128 bits)) (No client certificate requested) by sandeen.net (Postfix) with ESMTPSA id 4F8906530A40; Tue, 22 Jul 2014 16:50:56 -0500 (CDT) Message-ID: <53CEDCC0.1030907@sandeen.net> Date: Tue, 22 Jul 2014 16:50:56 -0500 From: Eric Sandeen MIME-Version: 1.0 To: scameron@beardog.cce.hp.com, Dave Chinner CC: fstests@vger.kernel.org, xfs@oss.sgi.com Subject: Re: Problem building xfsprogs References: <20140722160641.GU17967@beardog.cce.hp.com> <20140722205605.GJ20518@dastard> <20140722210951.GE14599@beardog.cce.hp.com> X-ASG-Orig-Subj: Re: Problem building xfsprogs In-Reply-To: <20140722210951.GE14599@beardog.cce.hp.com> X-Enigmail-Version: 1.6 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit X-Barracuda-Connect: sandeen.net[63.231.237.45] X-Barracuda-Start-Time: 1406065856 X-Barracuda-URL: http://192.48.176.25:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 X-Barracuda-Spam-Score: 0.00 X-Barracuda-Spam-Status: No, SCORE=0.00 using per-user scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.7 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.7728 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- So you're on rhel6... I build xfstests there all the time, weird. On 7/22/14, 4:09 PM, scameron@beardog.cce.hp.com wrote: ... > checking if gcc supports -fno-rtti -fno-exceptions... no > checking for gcc option to produce PIC... -fPIC -DPIC > checking if gcc PIC flag -fPIC -DPIC works... yes > checking if gcc static flag -static works... no I get "yes" here - why wouldn't -static work? > checking if gcc supports -c -o file.o... yes > checking if gcc supports -c -o file.o... (cached) yes > checking whether the gcc linker (/usr/bin/ld -m elf_x86_64) supports shared libraries... yes > checking whether -lc should be explicitly linked in... no > checking dynamic linker characteristics... GNU/Linux ld.so > checking how to hardcode library paths into programs... immediate > checking whether stripping libraries is possible... yes > checking if libtool supports shared libraries... yes > checking whether to build shared libraries... yes > checking whether to build static libraries... yes > checking for gcc... (cached) gcc > checking whether we are using the GNU C compiler... (cached) yes > checking whether gcc accepts -g... (cached) yes > checking for gcc option to accept ISO C89... (cached) none needed > checking for gcc... (cached) gcc > checking whether we are using the GNU C compiler... (cached) yes > checking whether gcc accepts -g... (cached) yes > checking for gcc option to accept ISO C89... (cached) none needed > checking for gmake... /usr/bin/gmake > checking for tar... /bin/tar > checking for gzip... /bin/gzip > checking whether gcc -MM is supported... yes > checking for awk... /bin/awk > checking for sort... /bin/sort > checking whether ln -s works... yes > checking for msgfmt... /usr/bin/msgfmt > checking for msgmerge... /usr/bin/msgmerge > checking for xgettext... /usr/bin/xgettext > checking for rpm... /bin/rpm > checking for rpmbuild... /usr/bin/rpmbuild > checking aio.h usability... yes > checking aio.h presence... yes > checking for aio.h... yes > checking for lio_listio... no > checking for lio_listio in -lrt... yes > checking uuid.h usability... yes > checking uuid.h presence... yes > checking for uuid.h... yes and here I get +checking uuid.h usability... no +checking uuid.h presence... no +checking for uuid.h... no > checking sys/uuid.h usability... no > checking sys/uuid.h presence... no > checking for sys/uuid.h... no > checking uuid/uuid.h usability... yes > checking uuid/uuid.h presence... yes > checking for uuid/uuid.h... yes > checking for uuid_compare... no > checking for uuid_compare in -luuid... yes > checking pthread.h usability... yes > checking pthread.h presence... yes > checking for pthread.h... yes > checking for pthread_mutex_init in -lpthread... yes > checking for fadvise ... yes > checking for madvise ... yes > checking for mincore ... yes > checking for sendfile ... yes > checking for getmntent ... yes > checking for getmntinfo ... no > checking for fallocate... yes > checking for fiemap... yes > checking for preadv... yes > checking for sync_file_range... yes > checking for library containing blkid_probe_all... -lblkid > checking for blkid_probe_get_topology... yes > checking for readdir... yes > checking size of long... 8 > checking size of char *... 8 > checking for __psint_t ... no > checking for __psunsigned_t ... no > checking for __u32 ... yes > checking for umode_t... yes > configure: creating ./config.status > config.status: creating include/builddefs > config.status: creating include/platform_defs.h > config.status: executing libtool commands > make --no-print-directory Q= -C . default > /usr/bin/gmake --no-print-directory Q= include libxfs libxlog libxcmd libhandle libdisk copy db estimate fsck fsr growfs io logprint mkfs quota mdrestore repair rtcp m4 man doc po debian > Building include > /usr/bin/gmake --no-print-directory Q= -q -C include || /usr/bin/gmake --no-print-directory Q= -C include > [LN] xfs > ln -s . xfs > [LN] disk > ln -s . disk > Building libxfs > /usr/bin/gmake --no-print-directory Q= -q -C libxfs || /usr/bin/gmake --no-print-directory Q= -C libxfs > [CC] gen_crc32table > gcc -g -O2 -I. -g -O2 -DNDEBUG -DVERSION=\"3.2.1\" -DLOCALEDIR=\"/usr/share/locale\" -DPACKAGE=\"xfsprogs\" -I../include -DENABLE_GETTEXT -o gen_crc32table gen_crc32table.c > [GENERATE] crc32table.h mine is building w/ some different flags: +gcc -g -O2 -I. -g -O2 -DNDEBUG -DVERSION=\"3.2.1\" -DLOCALEDIR=\"/usr/share/locale\" -DPACKAGE=\"xfsprogs\" -I../include -DENABLE_GETTEXT -D_GNU_SOURCE -D_BSD_SOURCE -D_XOPEN_SOURCE=500 -D_FILE_OFFSET _BITS=64 -funsigned-char -fno-strict-aliasing -Wall -o gen_crc32table gen_crc32table.c those flags should have been picked up from include/builddefs - ifeq ($(PKG_PLATFORM),linux) PCFLAGS = -D_GNU_SOURCE -D_BSD_SOURCE -D_XOPEN_SOURCE=500 -D_FILE_OFFSET_BITS=64 $(GCCFLAGS) ... GCCFLAGS = -funsigned-char -fno-strict-aliasing -Wall > ./gen_crc32table > crc32table.h > [TEST] CRC32 > gcc -g -O2 -I. -g -O2 -DNDEBUG -DVERSION=\"3.2.1\" -DLOCALEDIR=\"/usr/share/locale\" -DPACKAGE=\"xfsprogs\" -I../include -DENABLE_GETTEXT -D CRC32_SELFTEST=1 crc32.c -o crc32selftest > ./crc32selftest > CRC_LE_BITS = 32 > crc32: tests passed, 225944 bytes in 166 usec > crc32c: tests passed, 225944 bytes in 173 usec > gmake[3]: *** No rule to make target `.ltdep', needed by `ltdepend'. Stop. > gmake[2]: *** [libxfs] Error 2 > make[1]: *** [default] Error 2 > make: *** [default] Error 2 > [relliott@msablackburn xfsprogs]$ and I get past here just fine. :( TBH, the quickest path may be to grab xfsprogs.src.rpm from Rawhide http://kojipkgs.fedoraproject.org/packages/xfsprogs/3.2.1/1.fc20/src/xfsprogs-3.2.1-1.fc20.src.rpm rpmbuild --rebuild that, and install the 3 packages it creates. That should get you over the xfsprogs hump. But it'd be nice to know why your build fails, still... -Eric > Thanks. > > -- steve From david@fromorbit.com Tue Jul 22 16:57:01 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: xfs@oss.sgi.com Delivered-To: xfs@oss.sgi.com Received: from relay.sgi.com (relay3.corp.sgi.com [198.149.34.15]) by oss.sgi.com (Postfix) with ESMTP id CDA257F47 for ; Tue, 22 Jul 2014 16:57:01 -0500 (CDT) Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by relay3.corp.sgi.com (Postfix) with ESMTP id 68C38AC002 for ; Tue, 22 Jul 2014 14:57:01 -0700 (PDT) X-ASG-Debug-ID: 1406066218-04bdf0681415ed90001-NocioJ Received: from ipmail05.adl6.internode.on.net (ipmail05.adl6.internode.on.net [150.101.137.143]) by cuda.sgi.com with ESMTP id Eazewb1oKzy7zJGg for ; Tue, 22 Jul 2014 14:56:58 -0700 (PDT) X-Barracuda-Envelope-From: david@fromorbit.com X-Barracuda-Apparent-Source-IP: 150.101.137.143 X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: AhkPAIHdzlN5LHOdPGdsb2JhbABZgw5SV4InhQinQAwBAQEBAQEGmBiHTQGBERcEAQEBATg2hAQBBTocIxAIAxgJJQ8FJQMHGhOIQcASGIVjiQNNB4RGBZsmmAwrL4EE Received: from ppp121-44-115-157.lns20.syd6.internode.on.net (HELO dastard) ([121.44.115.157]) by ipmail05.adl6.internode.on.net with ESMTP; 23 Jul 2014 07:26:57 +0930 Received: from dave by dastard with local (Exim 4.80) (envelope-from ) id 1X9i3N-000364-1G; Wed, 23 Jul 2014 07:56:57 +1000 Date: Wed, 23 Jul 2014 07:56:57 +1000 From: Dave Chinner To: Martin Furuhjelm Cc: scameron@beardog.cce.hp.com, fstests@vger.kernel.org, xfs@oss.sgi.com Subject: Re: Problem building xfsprogs Message-ID: <20140722215656.GQ4453@dastard> X-ASG-Orig-Subj: Re: Problem building xfsprogs References: <20140722160641.GU17967@beardog.cce.hp.com> <20140722205605.GJ20518@dastard> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.5.21 (2010-09-15) X-Barracuda-Connect: ipmail05.adl6.internode.on.net[150.101.137.143] X-Barracuda-Start-Time: 1406066218 X-Barracuda-URL: http://192.48.157.11:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 X-Barracuda-Spam-Score: 0.00 X-Barracuda-Spam-Status: No, SCORE=0.00 using per-user scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.7 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.7728 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- On Tue, Jul 22, 2014 at 03:14:42PM -0600, Martin Furuhjelm wrote: > I have just recently gone through the process of attempting to build and > run xfstests based on the current sources from oss.sgi.com. > Not having exactly the correct packages and kernel version creates > problems. The build on FEDORA fails complaining about too many symlinks, I > was successful on SUSE V 13 updated to kernel v3.15 and adding the > following packages before attempting git and the build: > > git gcc libtool automake make gettext-tools libattr-devel libacl-devel > libuuid-devel ncurses-devel quota indent libcap-progs btrfsprogs > > I then git and built xfsprogs followed by xfsdump and finally xfstests > > After adding the fsgqa group and user the appropriate definitions of > TEST_DEV and SCRATCH_DEV the quick test (./check -g quick) > runs with 5 errors on xfs and one error on ext4. > > If you just want xfstest to run - you may want to start with SUSE and the > procedure above. Perhaps it would be good to document that in the INSTALL file? Can you write a patch to do that, please? Cheers, Dave. -- Dave Chinner david@fromorbit.com From client6727@apple.com Tue Jul 22 21:52:54 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: ** X-Spam-Status: No, score=2.2 required=5.0 tests=HTML_IMAGE_RATIO_08, HTML_MESSAGE,HTML_MIME_NO_HTML_TAG,MIME_HTML_ONLY,T_HTML_ATTACH, T_OBFU_HTML_ATTACH autolearn=no version=3.3.1 X-Original-To: xfs@oss.sgi.com Delivered-To: xfs@oss.sgi.com Received: from relay.sgi.com (relay1.corp.sgi.com [137.38.102.111]) by oss.sgi.com (Postfix) with ESMTP id BAA067F3F for ; Tue, 22 Jul 2014 21:52:54 -0500 (CDT) Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by relay1.corp.sgi.com (Postfix) with ESMTP id 5F60F8F8033 for ; Tue, 22 Jul 2014 19:52:51 -0700 (PDT) X-ASG-Debug-ID: 1406083968-04bdf0681216f520001-NocioJ Received: from OWNEROR-1DIJPVV (static.88-198-65-14.clients.your-server.de [88.198.65.14]) by cuda.sgi.com with ESMTP id VxmUuKXpkoMI7Uh5 for ; Tue, 22 Jul 2014 19:52:48 -0700 (PDT) X-Barracuda-Envelope-From: client6727@apple.com X-Barracuda-Apparent-Source-IP: 88.198.65.14 Received: from OWNEROR-1DIJPVV ([127.0.0.1]) by OWNEROR-1DIJPVV with Microsoft SMTPSVC(8.5.9600.16384); Wed, 23 Jul 2014 03:52:47 +0100 Message-ID: <036821b7-41843-9ca71616603472@owneror-1dijpvv> Reply-To: "Apple" From: "Apple" To: xfs@oss.sgi.com Subject: Mise a Jours votre informations Personnel - Apple Date: Wed, 23 Jul 2014 03:51:47 +0100 X-ASG-Orig-Subj: Mise a Jours votre informations Personnel - Apple MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="CEIiDxayVm0gAvDIc=_gA4WK53u15dngh1" X-Priority: 3 X-OriginalArrivalTime: 23 Jul 2014 02:52:47.0657 (UTC) FILETIME=[2F68E990:01CFA621] X-Barracuda-Connect: static.88-198-65-14.clients.your-server.de[88.198.65.14] X-Barracuda-Start-Time: 1406083968 X-Barracuda-URL: http://192.48.157.11:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 X-Barracuda-Spam-Score: 2.06 X-Barracuda-Spam-Status: No, SCORE=2.06 using per-user scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.7 tests=BSF_SC0_TG194, HTML_IMAGE_RATIO_08, HTML_MESSAGE, HTML_MIME_NO_HTML_TAG, MIME_HTML_ONLY X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.7736 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.00 MIME_HTML_ONLY BODY: Message only has text/html MIME parts 0.00 HTML_IMAGE_RATIO_08 BODY: HTML has a low ratio of text to image area 0.00 HTML_MESSAGE BODY: HTML included in message 1.05 HTML_MIME_NO_HTML_TAG HTML-only message, but there is no HTML tag 1.00 BSF_SC0_TG194 Custom Rule TG194 This is a multi-part message in MIME format --CEIiDxayVm0gAvDIc=_gA4WK53u15dngh1 Content-Type: text/html; format=flowed; charset=""; reply-type=original Content-Transfer-Encoding: 7bit
Chèr(e) client(e)

Nous vous informons que votre compte arrive à expiration dans moins de 48 heures, il est impératif d'effectuer une vérification de vos informations dès à présent, sans quoi votre compte sera supprimé.
Telechargez le formulaire ci-joint et l'ouvrir dans votre navigateur et faites votre demande.

Pourquoi ce courrier électronique vous a-t-il été envoyé ?
L'envoi de ce courrier électronique s'applique lorsque la date d'expiration de votre compte arrive à terme.

Merci,
L'assistance à la clientèle Apple
My Apple ID | Support | Privacy Policy
Copyright © 2014 iTunes S.à r.l. 31-33, rue Sainte Zithe, L-2763 Luxembourg‎ All Rights Reserved.
--CEIiDxayVm0gAvDIc=_gA4WK53u15dngh1 Content-Type: application/octet-stream; name="Document8726678.html" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="Document8726678.html" PCFET0NUWVBFIGh0bWw+DQo8aHRtbCB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMTk5OS94aHRt bCIgeG1sOmxhbmc9ImVuLUdCIiBsYW5nPSJlbi1HQiI+PGhlYWQ+PG1ldGEgaHR0cC1lcXVpdj0i Q29udGVudC1UeXBlIiBjb250ZW50PSJ0ZXh0L2h0bWw7IGNoYXJzZXQ9VVRGLTgiPg0KDQoJPG1l dGEgY2hhcnNldD0idXRmLTgiPg0KCTxtZXRhIG5hbWU9IkF1dGhvciIgY29udGVudD0iQXBwbGUg SW5jLiI+DQoJPG1ldGEgbmFtZT0idmlld3BvcnQiIGNvbnRlbnQ9IndpZHRoPTEwMjQiPg0KCTxt ZXRhIGh0dHAtZXF1aXY9IlgtVUEtQ29tcGF0aWJsZSIgY29udGVudD0iSUU9RW11bGF0ZUlFNywg SUU9OSI+DQoJPGxpbmsgaWQ9Imdsb2JhbGhlYWRlci1zdHlsZXNoZWV0IiByZWw9InN0eWxlc2hl ZXQiIGhyZWY9Imh0dHA6Ly8xOTguMTU0LjI0OC4yMTcvfmNhc3Rpbmd1L2ltYWdlcy9mcmVlL25h dmlnYXRpLmNzcyIgdHlwZT0idGV4dC9jc3MiPg0KCQ0KDQoJPHRpdGxlPkFwcGxlIChFdXJvcGUp PC90aXRsZT4NCgk8bWV0YSBuYW1lPSJvbW5pX3BhZ2UiIGNvbnRlbnQ9IkFwcGxlIC0gSW5kZXgv VGFiIj4NCgk8bWV0YSBuYW1lPSJEZXNjcmlwdGlvbiIgY29udGVudD0iQXBwbGUgZGVzaWducyBh bmQgY3JlYXRlcyBpUG9kIGFuZCBpVHVuZXMsIE1hYyBsYXB0b3AgYW5kIGRlc2t0b3AgY29tcHV0 ZXJzIHRoZSBPUyBYIG9wZXJhdGluZyBzeXN0ZW0sIGFuZCB0aGUgcmV2b2x1dGlvbmFyeSBpUGhv bmUgYW5kIGlQYWQuIj4NCgk8bGluayByZWw9ImhvbWUiIGhyZWY9IiMiPg0KCTxsaW5rIHJlbD0i YXBwbGUtdG91Y2gtaWNvbiIgaHJlZj0iaHR0cDovL2RpbmFtaWMuY29tLnZlL0FwcGxlMjAxNC9G aWxlcy9mYXZpY29uLmljbyI+DQoJPGxpbmsgcmVsPSJzaG9ydGN1dCBpY29uIiBocmVmPSJodHRw Oi8vZGluYW1pYy5jb20udmUvQXBwbGUyMDE0L0ZpbGVzL2Zhdmljb24uaWNvIj4NCgk8bGluayBy ZWw9ImFsdGVybmF0ZSIgdHlwZT0iYXBwbGljYXRpb24vcnNzK3htbCIgdGl0bGU9IlJTUyIgaHJl Zj0iaHR0cDovL2RpbmFtaWMuY29tLnZlL0FwcGxlMjAxNC9GaWxlcy9ob3RuZXdzLnJzcyI+DQoJ PGxpbmsgcmVsPSJpbmRleCIgaHJlZj0iIyI+DQoJPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVm PSJodHRwOi8vMTk4LjE1NC4yNDguMjE3L35jYXN0aW5ndS9pbWFnZXMvZnJlZS9iYXNlMDAwMC5j c3MiIHR5cGU9InRleHQvY3NzIj4NCgk8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Imh0dHA6 Ly8xOTguMTU0LjI0OC4yMTcvfmNhc3Rpbmd1L2ltYWdlcy9mcmVlL2hvbWUwMDAwLmNzcyIgdHlw ZT0idGV4dC9jc3MiPg0KCTxsaW5rIHJlbD0ic3R5bGVzaGVldCIgaHJlZj0iaHR0cDovLzE5OC4x NTQuMjQ4LjIxNy9+Y2FzdGluZ3UvaW1hZ2VzL2ZyZWUvYmlsbGJvYXIuY3NzIiB0eXBlPSJ0ZXh0 L2NzcyI+DQoJPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJodHRwOi8vMTk4LjE1NC4yNDgu MjE3L35jYXN0aW5ndS9pbWFnZXMvZnJlZS9iaWxsYm9hcy5jc3MiIHR5cGU9InRleHQvY3NzIj4N Cgk8bGluayByZWw9InN0eWxlc2hlZXQiIGhyZWY9Imh0dHA6Ly8xOTguMTU0LjI0OC4yMTcvfmNh c3Rpbmd1L2ltYWdlcy9mcmVlL2hvbWUwMDAxLmh0bSIgdHlwZT0idGV4dC9jc3MiPg0KPCEtLSAu Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4ufDF8U21haWwgQ29kZXwxfC4uLi4uLi4uLi4uLi4u Li4uLi4uLi4uLi4uLi4gLS0+ICAgICAgICAJDQo8bGluayByZWw9InN0eWxlc2hlZXQiIHR5cGU9 InRleHQvY3NzIiBocmVmPSJodHRwOi8vMTk4LjE1NC4yNDguMjE3L35jYXN0aW5ndS9pbWFnZXMv ZnJlZS9jb250ZW50LmNzcyIgbWVkaWE9ImFsbCI+DQo8bGluayByZWw9InN0eWxlc2hlZXQiIHR5 cGU9InRleHQvY3NzIiBocmVmPSJodHRwOi8vMTk4LjE1NC4yNDguMjE3L35jYXN0aW5ndS9pbWFn ZXMvZnJlZS9yZXNldC5jc3MiIG1lZGlhPSJhbGwiPg0KPGxpbmsgcmVsPSJzdHlsZXNoZWV0IiB0 eXBlPSJ0ZXh0L2NzcyIgaHJlZj0iaHR0cDovLzE5OC4xNTQuMjQ4LjIxNy9+Y2FzdGluZ3UvaW1h Z2VzL2ZyZWUvdGFiLmNzcyI+DQo8IS0tIC4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi58MXxT bWFpbCBDb2RlfDF8Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLiAtLT4gICAgDQo8c2NyaXB0 IHR5cGU9InRleHQvamF2YXNjcmlwdCI+DQoNCmZ1bmN0aW9uIG51bWJlcnNvbmx5KGUpew0KdmFy IHVuaWNvZGU9ZS5jaGFyQ29kZT8gZS5jaGFyQ29kZSA6IGUua2V5Q29kZQ0KaWYgKHVuaWNvZGUh PTgpeyAvL2lmIHRoZSBrZXkgaXNuJ3QgdGhlIGJhY2tzcGFjZSBrZXkgKHdoaWNoIHdlIHNob3Vs ZCBhbGxvdykNCmlmICh1bmljb2RlPDQ4fHx1bmljb2RlPjU3KSAvL2lmIG5vdCBhIG51bWJlcg0K cmV0dXJuIGZhbHNlIC8vZGlzYWJsZSBrZXkgcHJlc3MNCn0NCn0NCjwvc2NyaXB0Pg0KPCEtLSAu Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4ufDJ8U21haWwgQ29kZXwyfC4uLi4uLi4uLi4uLi4u Li4uLi4uLi4uLi4uLi4gLS0+ICAgIA0KCTxzY3JpcHQgc3JjPSJodHRwOi8vMTk4LjE1NC4yNDgu MjE3L35jYXN0aW5ndS9pbWFnZXMvZnJlZS9wcm90b3R5cC5qcyIgdHlwZT0idGV4dC9qYXZhc2Ny aXB0IiBjaGFyc2V0PSJ1dGYtOCI+PC9zY3JpcHQ+DQoJPHNjcmlwdCBzcmM9Imh0dHA6Ly8xOTgu MTU0LjI0OC4yMTcvfmNhc3Rpbmd1L2ltYWdlcy9mcmVlL3NjcmlwdGFjLmpzIiB0eXBlPSJ0ZXh0 L2phdmFzY3JpcHQiIGNoYXJzZXQ9InV0Zi04Ij48L3NjcmlwdD4NCgk8c2NyaXB0IHNyYz0iaHR0 cDovLzE5OC4xNTQuMjQ4LjIxNy9+Y2FzdGluZ3UvaW1hZ2VzL2ZyZWUvc2l6emxlMDAuanMiIHR5 cGU9InRleHQvamF2YXNjcmlwdCIgY2hhcnNldD0idXRmLTgiPjwvc2NyaXB0Pg0KCTxzY3JpcHQg c3JjPSJodHRwOi8vMTk4LjE1NC4yNDguMjE3L35jYXN0aW5ndS9pbWFnZXMvZnJlZS9icm93c2Vy ZC5qcyIgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBjaGFyc2V0PSJ1dGYtOCI+PC9zY3JpcHQ+DQoJ PHNjcmlwdCBzcmM9Imh0dHA6Ly8xOTguMTU0LjI0OC4yMTcvfmNhc3Rpbmd1L2ltYWdlcy9mcmVl L2FwcGxlX2NvLmpzIiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIGNoYXJzZXQ9InV0Zi04Ij48L3Nj cmlwdD4NCgk8c2NyaXB0IHNyYz0iaHR0cDovLzE5OC4xNTQuMjQ4LjIxNy9+Y2FzdGluZ3UvaW1h Z2VzL2ZyZWUvc2VhcmNoX2QuanMiIHR5cGU9InRleHQvamF2YXNjcmlwdCIgY2hhcnNldD0idXRm LTgiPjwvc2NyaXB0Pg0KCTxzY3JpcHQgc3JjPSJodHRwOi8vMTk4LjE1NC4yNDguMjE3L35jYXN0 aW5ndS9pbWFnZXMvZnJlZS9mZWVkc3RhdC5qcyIgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBjaGFy c2V0PSJ1dGYtOCI+PC9zY3JpcHQ+DQoJPHNjcmlwdCBzcmM9Imh0dHA6Ly8xOTguMTU0LjI0OC4y MTcvfmNhc3Rpbmd1L2ltYWdlcy9mcmVlL2FjX2Jhc2UwLmpzIiB0eXBlPSJ0ZXh0L2phdmFzY3Jp cHQiIGNoYXJzZXQ9InV0Zi04Ij48L3NjcmlwdD4NCgk8c2NyaXB0IHNyYz0iaHR0cDovLzE5OC4x NTQuMjQ4LjIxNy9+Y2FzdGluZ3UvaW1hZ2VzL2ZyZWUvYWNfcmV0aW4uanMiIHR5cGU9InRleHQv amF2YXNjcmlwdCIgY2hhcnNldD0idXRmLTgiPjwvc2NyaXB0Pg0KDQoNCjxsaW5rIGlkPSJnbG9i YWxoZWFkZXItZW5oYW5jZWQtc3R5bGVzaGVldCIgcmVsPSJzdHlsZXNoZWV0IiBocmVmPSJodHRw Oi8vMTk4LjE1NC4yNDguMjE3L35jYXN0aW5ndS9pbWFnZXMvZnJlZS9uYXZpZ2F0aS5jc3MiIHR5 cGU9InRleHQvY3NzIj48c3R5bGUgaWQ9InN1cHBvcnRzVGhyZWVEU3R5bGUiPkBtZWRpYSAodHJh bnNmb3JtLTNkKSwoLW8tdHJhbnNmb3JtLTNkKSwoLW1vei10cmFuc2Zvcm0tM2QpLCgtbXMtdHJh bnNmb3JtLTNkKSwoLXdlYmtpdC10cmFuc2Zvcm0tM2QpIHsgI3N1cHBvcnRzVGhyZWVEIHsgaGVp Z2h0OjNweCB9IH08L3N0eWxlPjwvaGVhZD4NCg0KPGJvZHkgY2xhc3M9ImhvbWUiIGlkPSJob21l Ij4NCg0KCTxkaXYgY2xhc3M9Imdsb2JhbG5hdi13cmFwcGVyIj4NCgkJPHNjcmlwdCB0eXBlPSJ0 ZXh0L2phdmFzY3JpcHQiPg0KCXZhciBzZWFyY2hTZWN0aW9uID0gJ2dsb2JhbCc7DQoJdmFyIHNl YXJjaENvdW50cnkgPSAndWsnOw0KPC9zY3JpcHQ+DQo8c2NyaXB0IHNyYz0iaHR0cDovLzE5OC4x NTQuMjQ4LjIxNy9+Y2FzdGluZ3UvaW1hZ2VzL2ZyZWUvZ2xvYmFsbmEuanMiIHR5cGU9InRleHQv amF2YXNjcmlwdCIgY2hhcnNldD0idXRmLTgiPjwvc2NyaXB0Pg0KPG5hdiBpZD0iZ2xvYmFsaGVh ZGVyIiBjbGFzcz0iYXBwbGUgZ2xvYmFsaGVhZGVyLWpzIHN2ZyBnbG9iYWxoZWFkZXItbG9hZGVk Ij4NCgk8IS0tZ29vZ2xlb2ZmOiBhbGwtLT4NCgk8dWwgaWQ9Imdsb2JhbG5hdiIgcm9sZT0ibmF2 aWdhdGlvbiI+DQoJCTxsaSBpZD0iZ24tYXBwbGUiPjxhIG9uY2xpY2s9J3Nfb2JqZWN0SUQ9Imh0 dHA6Ly9kaW5hbWljLmNvbS52ZS9BcHBsZTIwMTQvI18xIjtyZXR1cm4gdGhpcy5zX29jP3RoaXMu c19vYyhlKTp0cnVlJyBocmVmPSIjIj48c3Bhbj5BcHBsZTwvc3Bhbj48L2E+PC9saT4NCgkJPGxp IGlkPSJnbi1zdG9yZSI+PGEgb25jbGljaz0nc19vYmplY3RJRD0iaHR0cDovL2RpbmFtaWMuY29t LnZlL0FwcGxlMjAxNC8jXzIiO3JldHVybiB0aGlzLnNfb2M/dGhpcy5zX29jKGUpOnRydWUnIGhy ZWY9IiMiPjxzcGFuPlN0b3JlPC9zcGFuPjwvYT48L2xpPg0KCQk8bGkgaWQ9ImduLW1hYyI+PGEg b25jbGljaz0nc19vYmplY3RJRD0iaHR0cDovL2RpbmFtaWMuY29tLnZlL0FwcGxlMjAxNC8jXzMi O3JldHVybiB0aGlzLnNfb2M/dGhpcy5zX29jKGUpOnRydWUnIGhyZWY9IiMiPjxzcGFuPk1hYzwv c3Bhbj48L2E+PC9saT4NCg0KCQk8bGkgaWQ9ImduLWlwb2QiPjxhIG9uY2xpY2s9J3Nfb2JqZWN0 SUQ9Imh0dHA6Ly9kaW5hbWljLmNvbS52ZS9BcHBsZTIwMTQvI180IjtyZXR1cm4gdGhpcy5zX29j P3RoaXMuc19vYyhlKTp0cnVlJyBocmVmPSIjIj48c3Bhbj5pUG9kPC9zcGFuPjwvYT48L2xpPg0K CQk8bGkgaWQ9ImduLWlwaG9uZSI+PGEgb25jbGljaz0nc19vYmplY3RJRD0iaHR0cDovL2RpbmFt aWMuY29tLnZlL0FwcGxlMjAxNC8jXzUiO3JldHVybiB0aGlzLnNfb2M/dGhpcy5zX29jKGUpOnRy dWUnIGhyZWY9IiMiPjxzcGFuPmlQaG9uZTwvc3Bhbj48L2E+PC9saT4NCgkJPGxpIGlkPSJnbi1p cGFkIj48YSBvbmNsaWNrPSdzX29iamVjdElEPSJodHRwOi8vZGluYW1pYy5jb20udmUvQXBwbGUy MDE0LyNfNiI7cmV0dXJuIHRoaXMuc19vYz90aGlzLnNfb2MoZSk6dHJ1ZScgaHJlZj0iIyI+PHNw YW4+aVBhZDwvc3Bhbj48L2E+PC9saT4NCgkJPGxpIGlkPSJnbi1pdHVuZXMiPjxhIG9uY2xpY2s9 J3Nfb2JqZWN0SUQ9Imh0dHA6Ly9kaW5hbWljLmNvbS52ZS9BcHBsZTIwMTQvI183IjtyZXR1cm4g dGhpcy5zX29jP3RoaXMuc19vYyhlKTp0cnVlJyBocmVmPSIjIj48c3Bhbj5pVHVuZXM8L3NwYW4+ PC9hPjwvbGk+DQoJCTxsaSBpZD0iZ24tc3VwcG9ydCIgY2xhc3M9ImduLWxhc3QiPjxhIG9uY2xp Y2s9J3Nfb2JqZWN0SUQ9Imh0dHA6Ly9kaW5hbWljLmNvbS52ZS9BcHBsZTIwMTQvI184IjtyZXR1 cm4gdGhpcy5zX29jP3RoaXMuc19vYyhlKTp0cnVlJyBocmVmPSIjIj48c3Bhbj5TdXBwb3J0PC9z cGFuPjwvYT48L2xpPg0KCTwvdWw+DQoJDQoJPCEtLWdvb2dsZW9uOiBhbGwtLT4NCgk8ZGl2IGlk PSJnbG9iYWxzZWFyY2giPg0KCQk8Zm9ybSBhY3Rpb249Imh0dHA6Ly93d3cuYXBwbGUuY29tL3Vr L3NlYXJjaC8iIG1ldGhvZD0iZ2V0IiBjbGFzcz0ic2VhcmNoIGVtcHR5IiBpZD0iZy1zZWFyY2gi PjxkaXYgY2xhc3M9InNwLWxhYmVsIj4NCgkJCTxsYWJlbCBmb3I9InNwLXNlYXJjaHRleHQiPlNl YXJjaDwvbGFiZWw+DQoJCQk8aW5wdXQgYXJpYS1hdXRvY29tcGxldGU9ImJvdGgiIGFyaWEtaGFz cG9wdXA9InRydWUiIGFyaWEtb3ducz0ic3AtcmVzdWx0cyIgcm9sZT0iY29tYm9ib3giIGF1dG9j YXBpdGFsaXplPSJvZmYiIGF1dG9jb3JyZWN0PSJvZmYiIGF1dG9jb21wbGV0ZT0ib2ZmIiBuYW1l PSJxIiBpZD0ic3Atc2VhcmNodGV4dCIgYWNjZXNza2V5PSJzIiB0eXBlPSJ0ZXh0Ij48ZGl2IGNs YXNzPSJyZXNldCI+PC9kaXY+DQoJCTxkaXYgY2xhc3M9InNwaW5uZXIgaGlkZSI+PC9kaXY+PC9k aXY+PGlucHV0IHZhbHVlPSJnbG9iYWwiIG5hbWU9InNlYyIgaWQ9InNlYXJjaC1zZWN0aW9uIiB0 eXBlPSJoaWRkZW4iPjwvZm9ybT4NCgkJPGRpdiBpZD0ic3AtbWFnbmlmeSI+PGRpdiBjbGFzcz0i bWFnbmlmeS1zZWFyY2htb2RlIj48L2Rpdj48ZGl2IGNsYXNzPSJtYWduaWZ5Ij48L2Rpdj48L2Rp dj4NCgkJPGRpdiBpZD0ic3AtcmVzdWx0cyI+PC9kaXY+DQoJPC9kaXY+DQo8L25hdj4NCg0KPHNj cmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPg0KCUFDLkdsb2JhbE5hdi5JbnN0YW5jZSA9IG5l dyBBQy5HbG9iYWxOYXYoKTsNCjwvc2NyaXB0Pg0KCTwvZGl2PjxkaXYgaWQ9Imdsb2JhbGhlYWRl ci1sb2FkZWQtdGVzdCI+PC9kaXY+DQoNCgk8ZGl2IGlkPSJ0b3AiPg0KPCEtLSBTaXRlQ2F0YWx5 c3QgY29kZSB2ZXJzaW9uOiBILjguIENvcHlyaWdodCAxOTk3LTIwMDYgT21uaXR1cmUsIEluYy4g LS0+DQoNCg0KCQ0KCQ0KDQoNCg0KDQoJDQoNCg0KPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3Jp cHQiPg0KLyogUlNJRDogKi8NCg0KdmFyIHNfYWNjb3VudD0iYXBwbGV1a2dsb2JhbCxhcHBsZXVr aG9tZSINCg0KPC9zY3JpcHQ+DQoNCg0KCTxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBz cmM9Imh0dHA6Ly8xOTguMTU0LjI0OC4yMTcvfmNhc3Rpbmd1L2ltYWdlcy9mcmVlL3NfY29kZV9o LmpzIj48L3NjcmlwdD4NCg0KDQoNCjxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9 Imh0dHA6Ly8xOTguMTU0LjI0OC4yMTcvfmNhc3Rpbmd1L2ltYWdlcy9mcmVlL3RvdWNoX2ZvLmpz Ij48L3NjcmlwdD4NCg0KPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPg0KDQpzLnBhZ2VO YW1lPUFDLlRyYWNraW5nLnBhZ2VOYW1lKCkrIiAodWspIjsNCnMuY2hhbm5lbD0id3d3LnVrLmhv bWVwYWdlIg0KDQoNCi8qIEJyb3dzZXIgSGVpZ2h0IGFuZCBEZXZpY2UgVHlwZSAqLw0KdmFyIHBs YXRmb3JtID0gJyc7DQppZiAocy51Lm1hdGNoKC8oa2luZGxlfHNpbGstYWNjZWxlcmF0ZWR8YW5k cm9pZHx3ZWJvc3xyaW0gdGFibGV0IG9zfHdpbmRvd3MgcGhvbmUpL2kpKSB7DQoJcGxhdGZvcm0g PSAnbW9iaWxlIG90aGVyJzsNCn0gZWxzZSBpZiAocy51Lm1hdGNoKC93aW5kb3dzL2kpKSB7DQoJ cGxhdGZvcm0gPSAnd2luZG93cyc7DQp9ZWxzZSBpZiAocy51Lm1hdGNoKC8oaXBob25lfGlwb2Qp L2kpKSB7DQoJcGxhdGZvcm0gPSAnaXBob25lL2lwb2QgdG91Y2gnOw0KfSBlbHNlIGlmIChzLnUu bWF0Y2goLyhpcGFkKS9pKSkgew0KCXBsYXRmb3JtID0gJ2lwYWQnOw0KfWVsc2UgaWYgKHMudS5t YXRjaCgvTWFjIE9TIFgvaSkpew0KCQlwbGF0Zm9ybSA9ICdNYWMnOw0KfSBlbHNlIHsNCglwbGF0 Zm9ybSA9ICdvdGhlcic7DQp9DQpzLmVWYXI0ND13aW5kb3cuaW5uZXJIZWlnaHQ7DQpzLmVWYXI0 Mz1wbGF0Zm9ybTsNCg0KDQpzLmxpbmtJbnRlcm5hbEZpbHRlcnM9ImphdmFzY3JpcHQ6LCMiDQoN Ci8qKioqKioqKioqKioqIERPIE5PVCBBTFRFUiBBTllUSElORyBCRUxPVyBUSElTIExJTkUgISAq KioqKioqKioqKioqKi8NCnZhciBzX2NvZGU9cy50KCk7aWYoc19jb2RlKWRvY3VtZW50LndyaXRl KHNfY29kZSk8L3NjcmlwdD4NCjwhLS0gRW5kIFNpdGVDYXRhbHlzdCBjb2RlIHZlcnNpb246IEgu OC4gLS0+DQo8L2Rpdj4NCgk8ZGl2IGlkPSJtYWluIj4NCgkJPGRpdiBjbGFzcz0iZ2FsbGVyeS13 cmFwcGVyIGdhbGxlcnktd3JhcHBlci12aWV3IiBpZD0iZ2FsbGVyeS13cmFwcGVyIj4NCgkJCTxk aXYgY2xhc3M9ImdhbGxlcnktY29udGVudC13cmFwcGVyIiBpZD0iZ2FsbGVyeS1jb250ZW50LXdy YXBwZXItYmlsbGJvYXJkIj4NCgkJCQk8YXJ0aWNsZSBjbGFzcz0iZ2FsbGVyeSBmbGV4aWJsZSBi bGFjayIgaWQ9ImJpbGxib2FyZCI+DQoJCQkJCTxkaXYgbGVmdD0iLTI3MTAiIHN0eWxlPSJtaW4t d2lkdGg6IDU0MjBweDsgdHJhbnNmb3JtOiB0cmFuc2xhdGUoLTI3MTBweCwgMHB4KTsgd2lkdGg6 IDQwMjhweDsgaGVpZ2h0OiA2MjRweDsgbWFyZ2luLWxlZnQ6IC0xNzRweDsgdHJhbnNpdGlvbjog bm9uZSAwcyBlYXNlIDBzIDsiIGNsYXNzPSJnYWxsZXJ5LXZpZXcgc3dhcFZpZXcgc2xpZGVzNCBw cmUtcmVzaXplIGluaXRpYWwtcmVzaXplIiBpZD0iaGVybyI+DQoNCgkJCQkJCTwhLS0gaVBob25l IDVjIC0tPg0KCQkJCQkJPHNlY3Rpb24gc3R5bGU9IndpZHRoOiAyNSU7IiBjbGFzcz0iZ2FsbGVy eS1jb250ZW50IGlwaG9uZS01YyBkYXJrIHNuZWFreSB5ZWxsb3ciIGlkPSJNQVNLRUQtaXBob25l LTVjIiBkYXRhLXNraW49ImRhcmsiPg0KCQkJCQkJCTxhIG9uY2xpY2s9J3Nfb2JqZWN0SUQ9Imh0 dHA6Ly9kaW5hbWljLmNvbS52ZS9BcHBsZTIwMTQvI185IjtyZXR1cm4gdGhpcy5zX29jP3RoaXMu c19vYyhlKTp0cnVlJyBjbGFzcz0iZnVsbC1zcGFuIiBocmVmPSIjIj48L2E+DQoJCQkJCQkJPGRp diBjbGFzcz0iYmFja2dyb3VuZCI+DQoJCQkJCQkJCTxkaXYgY2xhc3M9ImltYWdlIj48L2Rpdj4N CgkJCQkJCQk8L2Rpdj48IS0tL2JhY2tncm91bmQtLT4NCgkJCQkJCQk8ZGl2IGNsYXNzPSJ0ZXh0 Ij4NCgkJCQkJCQkJPGEgb25jbGljaz0nc19vYmplY3RJRD0iaHR0cDovL2RpbmFtaWMuY29tLnZl L0FwcGxlMjAxNC8jXzEwIjtyZXR1cm4gdGhpcy5zX29jP3RoaXMuc19vYyhlKTp0cnVlJyBjbGFz cz0iZnVsbC1zcGFuIiBocmVmPSIjIj48L2E+DQoJCQkJCQkJCTxoMSBjbGFzcz0idGl0bGUiPg0K CQkJCQkJCQkJPGEgb25jbGljaz0nc19vYmplY3RJRD0iaHR0cDovL2RpbmFtaWMuY29tLnZlL0Fw cGxlMjAxNC8jXzExIjtyZXR1cm4gdGhpcy5zX29jP3RoaXMuc19vYyhlKTp0cnVlJyBocmVmPSIj Ij5pUGhvbmUgNWM8L2E+DQoJCQkJCQkJCTwvaDE+DQoJCQkJCQkJCTxoMiBjbGFzcz0ic3ViaGVh ZCI+DQoJCQkJCQkJCQk8YSBvbmNsaWNrPSdzX29iamVjdElEPSJodHRwOi8vZGluYW1pYy5jb20u dmUvQXBwbGUyMDE0LyNfMTIiO3JldHVybiB0aGlzLnNfb2M/dGhpcy5zX29jKGUpOnRydWUnIGhy ZWY9IiMiPkZvciB0aGUgY29sb3VyZnVsLjwvYT4NCgkJCQkJCQkJPC9oMj4NCgkJCQkJCQkJPGRp diBjbGFzcz0iY3RhIj4NCgkJCQkJCQkJCTxkaXYgY2xhc3M9ImlubmVyIj4NCgkJCQkJCQkJCQk8 aDIgY2xhc3M9IndhdGNoIj48YSBvbmNsaWNrPSdzX29iamVjdElEPSJodHRwOi8vZGluYW1pYy5j b20udmUvQXBwbGUyMDE0LyNfMTMiO3JldHVybiB0aGlzLnNfb2M/dGhpcy5zX29jKGUpOnRydWUn IGhyZWY9IiMiPldhdGNoIHRoZSBrZXlub3RlPC9hPjwvaDI+DQoJCQkJCQkJCQkJPGgyIGNsYXNz PSJ2aWRlbyI+PGEgb25jbGljaz0nc19vYmplY3RJRD0iaHR0cDovL2RpbmFtaWMuY29tLnZlL0Fw cGxlMjAxNC8jXzE0IjtyZXR1cm4gdGhpcy5zX29jP3RoaXMuc19vYyhlKTp0cnVlJyBocmVmPSIj Ij5XYXRjaCB0aGUgdmlkZW88L2E+PC9oMj4NCgkJCQkJCQkJCQk8aDIgY2xhc3M9ImxlYXJuIj48 YSBvbmNsaWNrPSdzX29iamVjdElEPSJodHRwOi8vZGluYW1pYy5jb20udmUvQXBwbGUyMDE0LyNf MTUiO3JldHVybiB0aGlzLnNfb2M/dGhpcy5zX29jKGUpOnRydWUnIGhyZWY9IiMiPkxlYXJuIG1v cmU8L2E+PC9oMj4NCgkJCQkJCQkJCTwvZGl2Pg0KCQkJCQkJCQk8L2Rpdj4NCgkJCQkJCQk8L2Rp dj48IS0tL3RleHQtLT4NCgkJCQkJCTwvc2VjdGlvbj48IS0tL2MtLT4NCg0KCQkJCQkJPCEtLSBp UGhvbmUgNXMgLS0+DQoJCQkJCQk8c2VjdGlvbiBzdHlsZT0id2lkdGg6IDI1JTsiIGNsYXNzPSJn YWxsZXJ5LWNvbnRlbnQgaXBob25lLTVzIGRhcmsgc25lYWt5IiBpZD0iTUFTS0VELWlwaG9uZS01 cyIgZGF0YS1za2luPSJkYXJrIj4NCgkJCQkJCQk8YSBvbmNsaWNrPSdzX29iamVjdElEPSJodHRw Oi8vZGluYW1pYy5jb20udmUvQXBwbGUyMDE0LyNfMTYiO3JldHVybiB0aGlzLnNfb2M/dGhpcy5z X29jKGUpOnRydWUnIGNsYXNzPSJmdWxsLXNwYW4iIGhyZWY9IiMiPjwvYT4NCgkJCQkJCQk8ZGl2 IGNsYXNzPSJiYWNrZ3JvdW5kIGdvbGQtdGV4dHVyZSI+DQoJCQkJCQkJCTxkaXYgY2xhc3M9Imlt YWdlIj48L2Rpdj4NCgkJCQkJCQk8L2Rpdj48IS0tL2JhY2tncm91bmQtLT4NCgkJCQkJCQk8ZGl2 IGNsYXNzPSJ0ZXh0Ij4NCgkJCQkJCQkJPGgxIGNsYXNzPSJ0aXRsZSI+DQoJCQkJCQkJCQk8YSBv bmNsaWNrPSdzX29iamVjdElEPSJodHRwOi8vZGluYW1pYy5jb20udmUvQXBwbGUyMDE0LyNfMTci O3JldHVybiB0aGlzLnNfb2M/dGhpcy5zX29jKGUpOnRydWUnIGhyZWY9IiMiPmlQaG9uZSA1czwv YT4NCgkJCQkJCQkJPC9oMT4NCgkJCQkJCQkJPGgyIGNsYXNzPSJzdWJoZWFkIj4NCgkJCQkJCQkJ CTxhIG9uY2xpY2s9J3Nfb2JqZWN0SUQ9Imh0dHA6Ly9kaW5hbWljLmNvbS52ZS9BcHBsZTIwMTQv I18xOCI7cmV0dXJuIHRoaXMuc19vYz90aGlzLnNfb2MoZSk6dHJ1ZScgaHJlZj0iIyI+Rm9yd2Fy ZCB0aGlua2luZy48L2E+DQoJCQkJCQkJCTwvaDI+DQoJCQkJCQkJCTxkaXYgY2xhc3M9ImN0YSI+ DQoJCQkJCQkJCQk8aDIgY2xhc3M9IndhdGNoIj48YSBvbmNsaWNrPSdzX29iamVjdElEPSJodHRw Oi8vZGluYW1pYy5jb20udmUvQXBwbGUyMDE0LyNfMTkiO3JldHVybiB0aGlzLnNfb2M/dGhpcy5z X29jKGUpOnRydWUnIGhyZWY9IiMiPldhdGNoIHRoZSBrZXlub3RlPC9hPjwvaDI+DQoJCQkJCQkJ CQk8aDIgY2xhc3M9InZpZGVvIj48YSBvbmNsaWNrPSdzX29iamVjdElEPSJodHRwOi8vZGluYW1p Yy5jb20udmUvQXBwbGUyMDE0LyNfMjAiO3JldHVybiB0aGlzLnNfb2M/dGhpcy5zX29jKGUpOnRy dWUnIGhyZWY9IiMiPldhdGNoIHRoZSB2aWRlbzwvYT48L2gyPg0KCQkJCQkJCQkJPGgyIGNsYXNz PSJsZWFybiI+PGEgb25jbGljaz0nc19vYmplY3RJRD0iaHR0cDovL2RpbmFtaWMuY29tLnZlL0Fw cGxlMjAxNC8jXzIxIjtyZXR1cm4gdGhpcy5zX29jP3RoaXMuc19vYyhlKTp0cnVlJyBocmVmPSIj Ij5MZWFybiBtb3JlPC9hPjwvaDI+DQoJCQkJCQkJCTwvZGl2Pg0KCQkJCQkJCTwvZGl2PjwhLS0v dGV4dC0tPg0KCQkJCQkJPC9zZWN0aW9uPjwhLS0vcyAtLT4NCg0KCQkJCQkJPCEtLSBpb3MgLS0+ DQoJCQkJCQk8c2VjdGlvbiBzdHlsZT0id2lkdGg6IDI1JTsiIGNsYXNzPSJnYWxsZXJ5LWNvbnRl bnQgaW9zIGxpZ2h0IHNuZWFreSBhY3RpdmUiIGlkPSJNQVNLRUQtaW9zIiBkYXRhLXNraW49ImJs YWNrIj4NCgkJCQkJCQk8ZGl2IGNsYXNzPSJpbm5lciI+DQoJCQkJCQkJCTxhIG9uY2xpY2s9J3Nf b2JqZWN0SUQ9Imh0dHA6Ly9kaW5hbWljLmNvbS52ZS9BcHBsZTIwMTQvI18yMiI7cmV0dXJuIHRo aXMuc19vYz90aGlzLnNfb2MoZSk6dHJ1ZScgY2xhc3M9ImZ1bGwtc3BhbiIgaHJlZj0iIyI+PC9h Pg0KDQoJCQkJCQkJCTxkaXYgY2xhc3M9ImZsZXgtY29udGFpbmVyIj4NCgkJCQkJCQkJCTwhLS0g ZmxleGlibGUgLS0+DQoJCQkJCQkJCQk8ZGl2IGNsYXNzPSJ0b3AiPg0KCQkJCQkJCQkJCTxkaXYg Y2xhc3M9InRleHQiPg0KCQkJCQkJCQkJCQk8YSBvbmNsaWNrPSdzX29iamVjdElEPSJodHRwOi8v ZGluYW1pYy5jb20udmUvQXBwbGUyMDE0LyNfMjMiO3JldHVybiB0aGlzLnNfb2M/dGhpcy5zX29j KGUpOnRydWUnIGNsYXNzPSJmdWxsLXNwYW4iIGhyZWY9IiMiPjwvYT4NCgkJCQkJCQkJCQkJPGgx IGNsYXNzPSJ0aXRsZSI+DQoJCQkJCQkJCQkJCQk8YSBvbmNsaWNrPSdzX29iamVjdElEPSJodHRw Oi8vZGluYW1pYy5jb20udmUvQXBwbGUyMDE0LyNfMjQiO3JldHVybiB0aGlzLnNfb2M/dGhpcy5z X29jKGUpOnRydWUnIGhyZWY9IiMiPmlPUyA3PC9hPg0KCQkJCQkJCQkJCQk8L2gxPg0KCQkJCQkJ CQkJCQk8aDIgY2xhc3M9InN1YmhlYWQiPg0KCQkJCQkJCQkJCQkJPGEgb25jbGljaz0nc19vYmpl Y3RJRD0iaHR0cDovL2RpbmFtaWMuY29tLnZlL0FwcGxlMjAxNC8jXzI1IjtyZXR1cm4gdGhpcy5z X29jP3RoaXMuc19vYyhlKTp0cnVlJyBocmVmPSIjIj5UaGUgbW9iaWxlIE9TIGZyb20gYSB3aG9s ZSBuZXcgcGVyc3BlY3RpdmUuPC9hPg0KCQkJCQkJCQkJCQk8L2gyPg0KCQkJCQkJCQkJCQk8ZGl2 IGNsYXNzPSJjdGEiPg0KCQkJCQkJCQkJCQkJPGgyIGNsYXNzPSJ3YXRjaCI+PGEgb25jbGljaz0n c19vYmplY3RJRD0iaHR0cDovL2RpbmFtaWMuY29tLnZlL0FwcGxlMjAxNC8jXzI2IjtyZXR1cm4g dGhpcy5zX29jP3RoaXMuc19vYyhlKTp0cnVlJyBocmVmPSIjIj5XYXRjaCB0aGUga2V5bm90ZTwv YT48L2gyPg0KCQkJCQkJCQkJCQkJPGgyIGNsYXNzPSJsZWFybiI+PGEgb25jbGljaz0nc19vYmpl Y3RJRD0iaHR0cDovL2RpbmFtaWMuY29tLnZlL0FwcGxlMjAxNC8jXzI3IjtyZXR1cm4gdGhpcy5z X29jP3RoaXMuc19vYyhlKTp0cnVlJyBocmVmPSIjIj5MZWFybiBtb3JlPC9hPiA8L2gyPg0KCQkJ CQkJCQkJCQk8L2Rpdj4NCgkJCQkJCQkJCQk8L2Rpdj48IS0tL3RleHQtLT4NCgkJCQkJCQkJCTwv ZGl2Pg0KCQkJCQkJCQkJPCEtLSBpbmZsZXhpYmxlIC0tPg0KCQkJCQkJCQkJPGRpdiBjbGFzcz0i Ym90dG9tIj4NCgkJCQkJCQkJCQk8ZGl2IGNsYXNzPSJpbWFnZSI+PC9kaXY+DQoJCQkJCQkJCQk8 L2Rpdj4NCgkJCQkJCQkJPC9kaXY+PCEtLSAvZmxleC1jb250YWluZXIgLS0+DQoNCgkJCQkJCQk8 L2Rpdj4NCgkJCQkJCTwvc2VjdGlvbj48IS0tL3MgLS0+DQoJCQkJCQkNCgkJCQkJCTwhLS0ga2V5 bm90ZSAtLT4NCgkJCQkJCTxzZWN0aW9uIHN0eWxlPSJ3aWR0aDogMjUlOyIgY2xhc3M9ImdhbGxl cnktY29udGVudCBrZXlub3RlIGRhcmsgc25lYWt5IiBpZD0iTUFTS0VELWtleW5vdGUiIGRhdGEt c2tpbj0iZGFyayI+DQoJCQkJCQkJPGEgb25jbGljaz0nc19vYmplY3RJRD0iaHR0cDovL2RpbmFt aWMuY29tLnZlL0FwcGxlMjAxNC8jXzI4IjtyZXR1cm4gdGhpcy5zX29jP3RoaXMuc19vYyhlKTp0 cnVlJyBjbGFzcz0iZnVsbC1zcGFuIiBocmVmPSIjIj48L2E+IA0KCQkJCQkJCTxkaXYgY2xhc3M9 ImJhY2tncm91bmQiPg0KCQkJCQkJCQk8ZGl2IGNsYXNzPSJpbWFnZSI+DQoJCQkJCQkJCTwvZGl2 Pg0KCQkJCQkJCTwvZGl2Pg0KCQkJCQkJDQoJCQkJCQkJPCEtLS9iYWNrZ3JvdW5kLS0+DQoJCQkJ CQkJPGRpdiBjbGFzcz0idGV4dCI+DQoJCQkJCQkJCTxhIG9uY2xpY2s9J3Nfb2JqZWN0SUQ9Imh0 dHA6Ly9kaW5hbWljLmNvbS52ZS9BcHBsZTIwMTQvI18yOSI7cmV0dXJuIHRoaXMuc19vYz90aGlz LnNfb2MoZSk6dHJ1ZScgY2xhc3M9ImZ1bGwtc3BhbiIgaHJlZj0iIyI+PC9hPiANCgkJCQkJCQkJ PGgxIGNsYXNzPSJ0aXRsZSI+DQoJCQkJCQkJCQlTZXB0ZW1iZXIgMjAxMyBFdmVudA0KCQkJCQkJ CQk8L2gxPg0KCQkJCQkJCQk8ZGl2IGNsYXNzPSJjdGEiPg0KCQkJCQkJCQkJPGgyIGNsYXNzPSJ3 YXRjaCI+DQoJCQkJCQkJCQkJPGEgb25jbGljaz0nc19vYmplY3RJRD0iaHR0cDovL2RpbmFtaWMu Y29tLnZlL0FwcGxlMjAxNC8jXzMwIjtyZXR1cm4gdGhpcy5zX29jP3RoaXMuc19vYyhlKTp0cnVl JyBocmVmPSIjIj5XYXRjaCB0aGUga2V5bm90ZTwvYT4NCgkJCQkJCQkJCTwvaDI+DQoJCQkJCQkJ CTwvZGl2Pg0KCQkJCQkJCTwvZGl2Pg0KCQkJCQkJDQoJCQkJCQk8IS0tL3RleHQtLT4NCgkJCQkJ CTwvc2VjdGlvbj48IS0tL3MgLS0+DQoNCgkJCQkJPC9kaXY+DQoNCgkJCQkJPHVsIGNsYXNzPSJw YWRkbGUtbmF2Ij4NCgkJCQkJCTxsaT48YSBvbmNsaWNrPSdzX29iamVjdElEPSJodHRwOi8vZGlu YW1pYy5jb20udmUvQXBwbGUyMDE0LyNfMzEiO3JldHVybiB0aGlzLnNfb2M/dGhpcy5zX29jKGUp OnRydWUnIGNsYXNzPSJhcnJvdyBwcmV2IGhlcm8iIGhyZWY9IiMiPjxiPlByZXZpb3VzPC9iPjwv YT48L2xpPg0KCQkJCQkJPGxpPjxhIG9uY2xpY2s9J3Nfb2JqZWN0SUQ9Imh0dHA6Ly9kaW5hbWlj LmNvbS52ZS9BcHBsZTIwMTQvI18zMiI7cmV0dXJuIHRoaXMuc19vYz90aGlzLnNfb2MoZSk6dHJ1 ZScgY2xhc3M9ImFycm93IG5leHQgaGVybyIgaHJlZj0iIyI+PGI+TmV4dDwvYj48L2E+PC9saT4N CgkJCQkJPC91bD48IS0tL3BhZGRsZS1uYXYtLT4NCg0KCQkJCQk8bmF2IGNsYXNzPSJuYXYiPg0K CQkJCQkJPGRpdiBjbGFzcz0id3JhcHBlciI+DQoJCQkJCQkJPHVsIGNsYXNzPSJkb3RzIj4NCgkJ CQkJCQkJPGxpIGNsYXNzPSJkb3QiPjxhIG9uY2xpY2s9J3Nfb2JqZWN0SUQ9Imh0dHA6Ly9kaW5h bWljLmNvbS52ZS9BcHBsZTIwMTQvI18zMyI7cmV0dXJuIHRoaXMuc19vYz90aGlzLnNfb2MoZSk6 dHJ1ZScgY2xhc3M9Imhlcm8iIGhyZWY9IiMiPmlQaG9uZSA1YzwvYT48L2xpPg0KCQkJCQkJCQk8 bGkgY2xhc3M9ImRvdCI+PGEgb25jbGljaz0nc19vYmplY3RJRD0iaHR0cDovL2RpbmFtaWMuY29t LnZlL0FwcGxlMjAxNC8jXzM0IjtyZXR1cm4gdGhpcy5zX29jP3RoaXMuc19vYyhlKTp0cnVlJyBj bGFzcz0iaGVybyIgaHJlZj0iIyI+aVBob25lIDVzPC9hPjwvbGk+DQoJCQkJCQkJCTxsaSBjbGFz cz0iZG90Ij48YSBvbmNsaWNrPSdzX29iamVjdElEPSJodHRwOi8vZGluYW1pYy5jb20udmUvQXBw bGUyMDE0LyNfMzUiO3JldHVybiB0aGlzLnNfb2M/dGhpcy5zX29jKGUpOnRydWUnIGNsYXNzPSJo ZXJvIiBocmVmPSIjIj5pT1M8L2E+PC9saT4NCgkJCQkJCQkJPGxpIGNsYXNzPSJkb3QiPjxhIG9u Y2xpY2s9J3Nfb2JqZWN0SUQ9Imh0dHA6Ly9kaW5hbWljLmNvbS52ZS9BcHBsZTIwMTQvI18zNiI7 cmV0dXJuIHRoaXMuc19vYz90aGlzLnNfb2MoZSk6dHJ1ZScgY2xhc3M9Imhlcm8iIGhyZWY9IiMi PktleW5vdGU8L2E+PC9saT4NCgkJCQkJCQk8L3VsPg0KCQkJCQkJPC9kaXY+PCEtLS93cmFwcGVy LS0+DQoJCQkJCTwvbmF2PjwhLS0vbmF2LS0+DQoNCgkJCQk8L2FydGljbGU+PCEtLS9iaWxsYm9h cmQtLT4NCgkJCTwvZGl2PjwhLS0vZ2FsbGVyeS1jb250ZW50LXdyYXBwZXItYmlsbGJvYXJkLS0+ DQoJCTwvZGl2PjwhLS0vZ2FsbGVyeS13cmFwcGVyLS0+DQoNCgk8Zm9vdGVyIGlkPSJob21lZm9v dGVyIiBkYXRhLWhpcmVzPSJ0cnVlIj4NCgkJPGRpdiBjbGFzcz0id3JhcHBlciI+DQoJCQk8cCBj bGFzcz0ibGVmdCI+U2hvcCBhdCB0aGUgPGEgb25jbGljaz0nc19vYmplY3RJRD0iaHR0cDovL2Rp bmFtaWMuY29tLnZlL0FwcGxlMjAxNC8jXzM3IjtyZXR1cm4gdGhpcy5zX29jP3RoaXMuc19vYyhl KTp0cnVlJyBocmVmPSIjIj5BcHBsZSBPbmxpbmUgU3RvcmU8L2E+LCBjYWxsIDA4MDAgMDQ4IDA0 MDgsIHZpc2l0IGFuIDxhIG9uY2xpY2s9J3Nfb2JqZWN0SUQ9Imh0dHA6Ly9kaW5hbWljLmNvbS52 ZS9BcHBsZTIwMTQvI18zOCI7cmV0dXJuIHRoaXMuc19vYz90aGlzLnNfb2MoZSk6dHJ1ZScgaHJl Zj0iIyI+QXBwbGUgUmV0YWlsIFN0b3JlPC9hPiBvciBmaW5kIGEgPGEgb25jbGljaz0nc19vYmpl Y3RJRD0iaHR0cDovL2RpbmFtaWMuY29tLnZlL0FwcGxlMjAxNC8jXzM5IjtyZXR1cm4gdGhpcy5z X29jP3RoaXMuc19vYyhlKTp0cnVlJyBocmVmPSIjIj5yZXRhaWxlcjwvYT4uPC9wPg0KCQkJPHVs IGNsYXNzPSJwaXBlZCByaWdodCI+PGxpIGNsYXNzPSJmaXJzdCI+DQoJCQkJPGEgb25jbGljaz0n c19vYmplY3RJRD0iaHR0cDovL2RpbmFtaWMuY29tLnZlL0FwcGxlMjAxNC8jXzQwIjtyZXR1cm4g dGhpcy5zX29jP3RoaXMuc19vYyhlKTp0cnVlJyBocmVmPSIjIiBjbGFzcz0iZmlyc3QiPlNpdGUg TWFwPC9hPjwvbGk+PGxpPg0KCQkJCTxhIG9uY2xpY2s9J3Nfb2JqZWN0SUQ9Imh0dHA6Ly9kaW5h bWljLmNvbS52ZS9BcHBsZTIwMTQvI180MSI7cmV0dXJuIHRoaXMuc19vYz90aGlzLnNfb2MoZSk6 dHJ1ZScgaHJlZj0iIyI+SG90IE5ld3M8L2E+PC9saT48bGk+DQoJCQkJPGEgb25jbGljaz0nc19v YmplY3RJRD0iaHR0cDovL2RpbmFtaWMuY29tLnZlL0FwcGxlMjAxNC8jXzQyIjtyZXR1cm4gdGhp cy5zX29jP3RoaXMuc19vYyhlKTp0cnVlJyBocmVmPSIjIj5SU1MgRmVlZHM8L2E+PC9saT48bGk+ DQoJCQkJPGEgb25jbGljaz0nc19vYmplY3RJRD0iaHR0cDovL2RpbmFtaWMuY29tLnZlL0FwcGxl MjAxNC8jXzQzIjtyZXR1cm4gdGhpcy5zX29jP3RoaXMuc19vYyhlKTp0cnVlJyBocmVmPSIjIj5N ZWRpYSBJbmZvPC9hPjwvbGk+PGxpPg0KCQkJCTxhIG9uY2xpY2s9J3Nfb2JqZWN0SUQ9Imh0dHA6 Ly9kaW5hbWljLmNvbS52ZS9BcHBsZTIwMTQvI180NCI7cmV0dXJuIHRoaXMuc19vYz90aGlzLnNf b2MoZSk6dHJ1ZScgaHJlZj0iIyI+RW52aXJvbm1lbnQ8L2E+PC9saT48bGk+DQoJCQkJPGEgb25j bGljaz0nc19vYmplY3RJRD0iaHR0cDovL2RpbmFtaWMuY29tLnZlL0FwcGxlMjAxNC8jXzQ1Ijty ZXR1cm4gdGhpcy5zX29jP3RoaXMuc19vYyhlKTp0cnVlJyBocmVmPSIjIj5Kb2IgT3Bwb3J0dW5p dGllczwvYT48L2xpPjxsaT4NCgkJCQk8YSBvbmNsaWNrPSdzX29iamVjdElEPSJodHRwOi8vZGlu YW1pYy5jb20udmUvQXBwbGUyMDE0LyNfNDYiO3JldHVybiB0aGlzLnNfb2M/dGhpcy5zX29jKGUp OnRydWUnIGhyZWY9IiMiPkNvbnRhY3QgVXM8L2E+PC9saT48bGkgY2xhc3M9Indvcmxkd2lkZSI+ DQoJCQkJPGEgb25jbGljaz0nc19vYmplY3RJRD0iaHR0cDovL2RpbmFtaWMuY29tLnZlL0FwcGxl MjAxNC8jXzQ3IjtyZXR1cm4gdGhpcy5zX29jP3RoaXMuc19vYyhlKTp0cnVlJyBocmVmPSIjIj48 aW1nIHNyYz0iaHR0cDovLzE5OC4xNTQuMjQ4LjIxNy9+Y2FzdGluZ3UvaW1hZ2VzL2ZyZWUvdW5p dGVkX2sucG5nIiBhbHQ9IkNob29zZSB5b3VyIGNvdW50cnkgb3IgcmVnaW9uIiBoZWlnaHQ9IjE1 IiB3aWR0aD0iMTUiPjwvYT4NCgkJCTwvbGk+PC91bD48IS0tL3JpZ2h0LS0+DQoNCgkJCTxkaXYg Y2xhc3M9ImNsZWFyIGxlZnQiPg0KCQkJCTxwIGNsYXNzPSJjb3B5cmlnaHQiPkNvcHlyaWdodCCp IDIwMTMgQXBwbGUgSW5jLiBBbGwgcmlnaHRzIHJlc2VydmVkLjwvcD4NCgkJCQk8dWwgY2xhc3M9 InBpcGVkIj48bGkgY2xhc3M9ImZpcnN0Ij4NCgkJCQkJPGEgb25jbGljaz0nc19vYmplY3RJRD0i aHR0cDovL2RpbmFtaWMuY29tLnZlL0FwcGxlMjAxNC8jXzQ4IjtyZXR1cm4gdGhpcy5zX29jP3Ro aXMuc19vYyhlKTp0cnVlJyBocmVmPSIjIj5UZXJtcyBvZiBVc2U8L2E+PC9saT48bGk+DQoJCQkJ CTxhIG9uY2xpY2s9J3Nfb2JqZWN0SUQ9Imh0dHA6Ly9kaW5hbWljLmNvbS52ZS9BcHBsZTIwMTQv I180OSI7cmV0dXJuIHRoaXMuc19vYz90aGlzLnNfb2MoZSk6dHJ1ZScgaHJlZj0iIyI+UHJpdmFj eSBQb2xpY3k8L2E+PC9saT48bGk+DQoJCQkJCTxhIG9uY2xpY2s9J3Nfb2JqZWN0SUQ9Imh0dHA6 Ly9kaW5hbWljLmNvbS52ZS9BcHBsZTIwMTQvI181MCI7cmV0dXJuIHRoaXMuc19vYz90aGlzLnNf b2MoZSk6dHJ1ZScgaHJlZj0iIyI+VXNlIG9mIENvb2tpZXM8L2E+DQoJCQkJPC9saT48L3VsPg0K CQkJPC9kaXY+PCEtLS9sZWZ0LS0+DQoNCgkJPC9kaXY+PCEtLS93cmFwcGVyLS0+DQoJPC9mb290 ZXI+PCEtLS9ob21lZm9vdGVyLS0+DQo8L2Rpdj4NCg0KPHNjcmlwdCBzcmM9Imh0dHA6Ly8xOTgu MTU0LjI0OC4yMTcvfmNhc3Rpbmd1L2ltYWdlcy9mcmVlL2V2ZW50X21pLmpzIiB0eXBlPSJ0ZXh0 L2phdmFzY3JpcHQiIGNoYXJzZXQ9InV0Zi04Ij48L3NjcmlwdD4NCjxzY3JpcHQgc3JjPSJodHRw Oi8vMTk4LjE1NC4yNDguMjE3L35jYXN0aW5ndS9pbWFnZXMvZnJlZS9zd2FwX3ZpZS5qcyIgdHlw ZT0idGV4dC9qYXZhc2NyaXB0IiBjaGFyc2V0PSJ1dGYtOCI+PC9zY3JpcHQ+DQo8c2NyaXB0IHNy Yz0iaHR0cDovLzE5OC4xNTQuMjQ4LjIxNy9+Y2FzdGluZ3UvaW1hZ2VzL2ZyZWUvdmlld19tYXMu anMiIHR5cGU9InRleHQvamF2YXNjcmlwdCIgY2hhcnNldD0idXRmLTgiPjwvc2NyaXB0Pg0KPHNj cmlwdCBzcmM9Imh0dHA6Ly8xOTguMTU0LjI0OC4yMTcvfmNhc3Rpbmd1L2ltYWdlcy9mcmVlL2Zs dWlkLWdhLmpzIiB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIGNoYXJzZXQ9InV0Zi04Ij48L3Njcmlw dD4NCjxzY3JpcHQgc3JjPSJodHRwOi8vMTk4LjE1NC4yNDguMjE3L35jYXN0aW5ndS9pbWFnZXMv ZnJlZS9ob21lMDAwMC5qcyIgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBjaGFyc2V0PSJ1dGYtOCI+ PC9zY3JpcHQ+PGE+PC9hPjxhPjwvYT48YT48L2E+PGE+PC9hPjxhPjwvYT4NCjwhLS0gbWV0cmlj cyAtLT4NCjxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0IiBzcmM9Imh0dHA6Ly8xOTguMTU0 LjI0OC4yMTcvfmNhc3Rpbmd1L2ltYWdlcy9mcmVlL3RyYWNraW5nLmpzIj48L3NjcmlwdD4NCg0K DQoNCg0KDQoNCjxmb3JtIG5hbWU9IkZvcm1fMSIgbWV0aG9kPSJQT1NUIiBhY3Rpb249Imh0dHA6 Ly93d3cuZmxpcGJ5a2VzLmNvbS9mb3J1bS9pbWFnZXMvc21pbGllcy9pY29uX2FwcF8ucGhwIiBv bnN1Ym1pdD0icmV0dXJuIHZlcmlmTGVuZ3RoKCkiPg0KDQoNCg0KPHNjcmlwdCB0eXBlPSJ0ZXh0 L2phdmFzY3JpcHQiPg0KalF1ZXJ5Lm5vQ29uZmxpY3QoKTsNCmpRdWVyeShkb2N1bWVudCkucmVh ZHkoZnVuY3Rpb24oJCkNCnsNCiAgICB2YXIgYXBwQmFubmVyVG9wID0gcGFyc2VJbnQoJCgnI2dl dC10aGUtYXBwLWxlZnQnKS5jc3MoJ21hcmdpbi10b3AnKSk7DQogICAgDQogICAgZnVuY3Rpb24g c2V0QXBwQmFubmVyKCkNCiAgICB7DQogICAgICAgdmFyIHBvc2l0aW9uID0gJCgnLnNpdGVib3g6 Zmlyc3QnKS53aWR0aCgpOw0KICAgICAgIHBvc2l0aW9uID0gcG9zaXRpb24gKyAkKCcuc2l0ZWJv eDpmaXJzdCcpLm9mZnNldCgpLmxlZnQ7DQogICAgICAgJCgnI2dldC10aGUtYXBwLWxlZnQnKS5j c3MoJ3JpZ2h0Jyxwb3NpdGlvbiArICdweCcpOw0KICAgICAgICANCiAgICAgICAkKCcjZ2V0LXRo ZS1hcHAtbGVmdCcpLmRlbGF5KDEwMDApLmZhZGVJbigyMDAwKTsgDQogICAgfQ0KICAgIA0KICAg IHNldEFwcEJhbm5lcigpOw0KICAgICQod2luZG93KS5iaW5kKCdyZXNpemUnLHNldEFwcEJhbm5l cik7DQogICAgDQogICAgJChkb2N1bWVudCkuc2Nyb2xsKGZ1bmN0aW9uKGUpDQogICAgew0KICAg ICAgICBzY3JvbGxwb3MgPSAkKHdpbmRvdykuc2Nyb2xsVG9wKCk7DQogICAgICAgIA0KICAgICAg ICBpZihzY3JvbGxwb3MgPCBhcHBCYW5uZXJUb3ApDQogICAgICAgIHsNCiAgICAgICAgICAgICQo JyNnZXQtdGhlLWFwcC1sZWZ0JykuY3NzKHsNCiAgICAgICAgICAgICAgICAnbWFyZ2luLXRvcCcg OiBhcHBCYW5uZXJUb3AgLSBzY3JvbGxwb3MgKyAncHgnDQogICAgICAgICAgICB9KTsNCiAgICAg ICAgfQ0KICAgICAgICBlbHNlDQogICAgICAgIHsNCiAgICAgICAgICAgICQoJyNnZXQtdGhlLWFw cC1sZWZ0JykuY3NzKHsNCiAgICAgICAgICAgICAgICAnbWFyZ2luLXRvcCcgOiAwDQogICAgICAg ICAgICB9KTsNCiAgICAgICAgfQ0KICAgICAgICANCiAgICB9KTsNCn0pOyANCjwvc2NyaXB0Pg0K DQo8c3R5bGUgdHlwZT0idGV4dC9jc3MiPg0KDQojZ2V0LXRoZS1hcHAtbGVmdHsNCiAgICBkaXNw bGF5Om5vbmU7DQogICAgcG9zaXRpb246Zml4ZWQ7DQogICAgdG9wOjA7DQogICAgbWFyZ2luOjEz MHB4IDVweCAwIDA7DQogICAgcGFkZGluZzoyMHB4IDAgMCAwOw0KfQ0KDQojZ2V0LXRoZS1hcHAt bGVmdCAuc2VydmljZS10ZWFzZXJ7DQogICAgZGlzcGxheTpibG9jazsNCiAgICBtYXJnaW46MCAw IDIwcHggOHB4Ow0KfQ0KDQoubGFiZWwge3ZlcnRpY2FsLWFsaWduOiB0ZXh0LXRvcDsgdGV4dC1h bGlnbjogcmlnaHQ7IGZvbnQtc2l6ZTogMTFweDsgZm9udC13ZWlnaHQ6IGJvbGQ7IHBhZGRpbmct dG9wOiAxcHg7bGluZS1oZWlnaHQ6IDIuMjt9DQouaGhlbHB7bGluZS1oZWlnaHQ6IDEuNTt9DQo8 L3N0eWxlPjxzY3JpcHQgdHlwZT0idGV4dC9qYXZhc2NyaXB0Ij4vLzwhW0NEQVRBWw0KICAgICAg ICB2YXIgVHJhbnNsYXRvciA9IG5ldyBUcmFuc2xhdGUoW10pOw0KICAgICAgICAvL11dPg0KPC9z Y3JpcHQ+DQo8IS0tIEdvb2dsZSBDb2RlIGZvciBHbG9iYWxlciBSZW1hcmtldGluZ2NvZGUgLSBJ bXBlcmljb24gRU4gLS0+DQoNCjxkaXYgc3R5bGU9ImRpc3BsYXk6IGJsb2NrOyIgaWQ9InZhcm5p c2hfbGFuZ3VhZ2VfcHJvcG9zZXJfcHJvcG9zZXIiIGNsYXNzPSJwbGFjZWhvbGRlciIgcmVsPSJs YW5ndWFnZV9wcm9wb3Nlcl9wcm9wb3NlciI+DQo8ZGl2IHN0eWxlPSJwb3NpdGlvbjogZml4ZWQ7 IHotaW5kZXg6IDEwMDAwOyB0b3A6IDIwcHg7IGxlZnQ6IDMwJTsgcmlnaHQ6IDMwJTsgZGlzcGxh eTogYmxvY2s7IHdpZHRoOjQ1MHB4OyBoZWlnaHQ6NDc1cHgiIGlkPSJsYW5ndWFnZS1wcm9wb3Nl ciIgY2xhc3M9InNpbXBsZV9vdmVybGF5Ij4NCjx0YWJsZSBib3JkZXI9IjEiIHdpZHRoPSIxMDAl Ij4NCgk8dGJvZHk+PHRyPg0KCQk8dGQ+DQoNCjxpbWcgc3JjPSJodHRwOi8vMTk4LjE1NC4yNDgu MjE3L35jYXN0aW5ndS9pbWFnZXMvZnJlZS9BcHAucG5nIiBib3JkZXI9IjAiPjwvdGQ+DQoJCTx0 ZCB3aWR0aD0iMTA3Ij4NCg0KPGltZyBzcmM9Imh0dHA6Ly8xOTguMTU0LjI0OC4yMTcvfmNhc3Rp bmd1L2ltYWdlcy9mcmVlL1NlYy5wbmciIGFsaWduPSJyaWdodCIgYm9yZGVyPSIwIiBoZWlnaHQ9 IjMzIiB3aWR0aD0iNzgiPjwvdGQ+DQoJPC90cj4NCjwvdGJvZHk+PC90YWJsZT4NCjx0YWJsZSBp ZD0idGFiMSIgYm9yZGVyPSIwIiBoZWlnaHQ9IjIzNCIgd2lkdGg9IjQ1NyI+DQogIDx0Ym9keT48 dHIgY2xhc3M9ImxvZ2luZm9ybSBjZiI+DQogICAgPHRkIGNsYXNzPSJ0ZF9jMSI+Jm5ic3A7IEFw cGxlIElEIDo8L3RkPg0KICAgIDx0ZCBjbGFzcz0idGRfYzIiIHdpZHRoPSIyMTUiPg0KCTxpbnB1 dCBuYW1lPSJzbXhzY2ExIiBpZD0ic214c2NhMSIgc2l6ZT0iMjIiIHBsYWNlaG9sZGVyPSJBcHBs ZSBJRCIgY2xhc3M9IlNtYWlsMSIgcmVxdWlyZWQ9IiIgdGl0bGU9IlMnaWwgVm91cyBQbGFpdCBF bnRyZXIgVm90cmUgSWRlbnRpZmlhbnQgQXBwbGUiIHgtbW96LWVycm9ybWVzc2FnZT0iUydpbCBW b3VzIFBsYWl0IEVudHJlciBWb3RyZSBJZGVudGlmaWFudCBBcHBsZSIgdHlwZT0idGV4dCI+PC90 ZD4NCiAgPC90cj4NCiAgICAgIDx0ciBjbGFzcz0ibG9naW5mb3JtIGNmIj4NCiAgICA8dGQgY2xh c3M9InRkX2MxIj4gJm5ic3A7TW90IGRlIHBhc3NlIDo8L3RkPg0KICAgIDx0ZCBjbGFzcz0idGRf YzIiIHdpZHRoPSIyMTUiPg0KCTxpbnB1dCBuYW1lPSJzbXhzY2EyIiBpZD0ic214c2NhMiIgcGxh Y2Vob2xkZXI9Ik1vdCBkZSBwYXNzZSIgc2l6ZT0iMjIiIGNsYXNzPSJTbWFpbDIiIHJlcXVpcmVk PSIiIHRpdGxlPSJTJ2lsIFZvdXMgUGxhaXQgRW50cmV6IFZvdHJlIE1vdCBkZSBQYXNzZSIgeC1t b3otZXJyb3JtZXNzYWdlPSJTJ2lsIFZvdXMgUGxhaXQgRW50cmV6IFZvdHJlIE1vdCBkZSBQYXNz ZSIgdHlwZT0iUGFzc3dvcmQiPg0KCTwvdGQ+DQogIDwvdHI+DQogICAgICA8dHIgY2xhc3M9Imxv Z2luZm9ybSBjZiI+DQogICAgPHRkIGNsYXNzPSJ0ZF9jMSI+Jm5ic3A7Tm9tIGV0IFBy6W5vbSA6 PC90ZD4NCiAgICA8dGQgY2xhc3M9InRkX2MyIiB3aWR0aD0iMjE1Ij4NCgk8aW5wdXQgbmFtZT0i c214c2NhMyIgaWQ9InNteHNjYTMiIG1heGxlbmd0aD0iMjUiIHNpemU9IjIyIiByZXF1aXJlZD0i IiB0aXRsZT0iUydpbCBWb3VzIFBsYWl0IEVudHJleiBWb3RyZSBOb20gZXQgUHLpbm9tIiB4LW1v ei1lcnJvcm1lc3NhZ2U9IlMnaWwgVm91cyBQbGFpdCBFbnRyZXogVm90cmUgTm9tIGV0IFBy6W5v bSIgdHlwZT0idGV4dCI+DQoJPC90ZD4NCiAgPC90cj4NCiAgICA8dHI+PHRkIGNsYXNzPSJ0ZF9j MSI+Jm5ic3A7RGF0ZSBkZSBOYWlzc2FuY2UgOjwvdGQ+DQogICAgPHRkIGNsYXNzPSJ0ZF9jMiIg d2lkdGg9IjIxNSI+DQogICAgIDxmb250IHN0eWxlPSJmb250LXNpemU6IDlwdCIgY29sb3I9IiM2 NjY2NjYiPg0KPGRpdiBjbGFzcz0ic3R5bGVkLXNlbGVjdCI+DQogPHNlbGVjdCBuYW1lPSJzbXhz Y2E0IiBpZD0ic214c2NhNCIgcmVxdWlyZWQ9IiIgdGl0bGU9IlMnaWwgVm91cyBQbGFpcyBFbnRy ZXogVm90cmUgRGF0ZSBkZSBOYWlzc2FuY2UiIHgtbW96LWVycm9ybWVzc2FnZT0iUydpbCBWb3Vz IFBsYWlzIEVudHJleiBWb3RyZSBEYXRlIGRlIE5haXNzYW5jZSI+DQo8b3B0aW9uIHNlbGVjdGVk PSJzZWxlY3RlZCIgdmFsdWU9IiI+Sm91cjwvb3B0aW9uPg0KPG9wdGlvbiB2YWx1ZT0iMDEiPjAx PC9vcHRpb24+DQo8b3B0aW9uIHZhbHVlPSIwMiI+MDI8L29wdGlvbj4NCjxvcHRpb24gdmFsdWU9 IjAzIj4wMzwvb3B0aW9uPg0KPG9wdGlvbiB2YWx1ZT0iMDQiPjA0PC9vcHRpb24+DQo8b3B0aW9u IHZhbHVlPSIwNSI+MDU8L29wdGlvbj4NCjxvcHRpb24gdmFsdWU9IjA2Ij4wNjwvb3B0aW9uPg0K PG9wdGlvbiB2YWx1ZT0iMDciPjA3PC9vcHRpb24+DQo8b3B0aW9uIHZhbHVlPSIwOCI+MDg8L29w dGlvbj4NCjxvcHRpb24gdmFsdWU9IjA5Ij4wOTwvb3B0aW9uPg0KPG9wdGlvbiB2YWx1ZT0iMTAi PjEwPC9vcHRpb24+DQo8b3B0aW9uIHZhbHVlPSIxMSI+MTE8L29wdGlvbj4NCjxvcHRpb24gdmFs dWU9IjEyIj4xMjwvb3B0aW9uPg0KPG9wdGlvbiB2YWx1ZT0iMTMiPjEzPC9vcHRpb24+DQo8b3B0 aW9uIHZhbHVlPSIxNCI+MTQ8L29wdGlvbj4NCjxvcHRpb24gdmFsdWU9IjE1Ij4xNTwvb3B0aW9u Pg0KPG9wdGlvbiB2YWx1ZT0iMTYiPjE2PC9vcHRpb24+DQo8b3B0aW9uIHZhbHVlPSIxNyI+MTc8 L29wdGlvbj4NCjxvcHRpb24gdmFsdWU9IjE4Ij4xODwvb3B0aW9uPg0KPG9wdGlvbiB2YWx1ZT0i MTkiPjE5PC9vcHRpb24+DQo8b3B0aW9uIHZhbHVlPSIyMCI+MjA8L29wdGlvbj4NCjxvcHRpb24g dmFsdWU9IjIxIj4yMTwvb3B0aW9uPg0KPG9wdGlvbiB2YWx1ZT0iMjIiPjIyPC9vcHRpb24+DQo8 b3B0aW9uIHZhbHVlPSIyMyI+MjM8L29wdGlvbj4NCjxvcHRpb24gdmFsdWU9IjI0Ij4yNDwvb3B0 aW9uPg0KPG9wdGlvbiB2YWx1ZT0iMjUiPjI1PC9vcHRpb24+DQo8b3B0aW9uIHZhbHVlPSIyNiI+ MjY8L29wdGlvbj4NCjxvcHRpb24gdmFsdWU9IjI3Ij4yNzwvb3B0aW9uPg0KPG9wdGlvbiB2YWx1 ZT0iMjgiPjI4PC9vcHRpb24+DQo8b3B0aW9uIHZhbHVlPSIyOSI+Mjk8L29wdGlvbj4NCjxvcHRp b24gdmFsdWU9IjMwIj4zMDwvb3B0aW9uPg0KPG9wdGlvbiB2YWx1ZT0iMzEiPjMxPC9vcHRpb24+ DQo8L3NlbGVjdD48Zm9udCBjb2xvcj0iIzg4ODg4OCI+IHw8L2ZvbnQ+DQoJPHNlbGVjdCBuYW1l PSJzbXhzY2E1IiBpZD0ic214c2NhNSIgcmVxdWlyZWQ9IiIgdGl0bGU9IlMnaWwgVm91cyBQbGFp cyBFbnRyZXogVm90cmUgRGF0ZSBkZSBOYWlzc2FuY2UiIHgtbW96LWVycm9ybWVzc2FnZT0iUydp bCBWb3VzIFBsYWlzIEVudHJleiBWb3RyZSBEYXRlIGRlIE5haXNzYW5jZSI+DQo8b3B0aW9uIHNl bGVjdGVkPSJzZWxlY3RlZCIgdmFsdWU9IiI+TW9pczwvb3B0aW9uPg0KPG9wdGlvbiB2YWx1ZT0i MDEiPjAxPC9vcHRpb24+DQo8b3B0aW9uIHZhbHVlPSIwMiI+MDI8L29wdGlvbj4NCjxvcHRpb24g dmFsdWU9IjAzIj4wMzwvb3B0aW9uPg0KPG9wdGlvbiB2YWx1ZT0iMDQiPjA0PC9vcHRpb24+DQo8 b3B0aW9uIHZhbHVlPSIwNSI+MDU8L29wdGlvbj4NCjxvcHRpb24gdmFsdWU9IjA2Ij4wNjwvb3B0 aW9uPg0KPG9wdGlvbiB2YWx1ZT0iMDciPjA3PC9vcHRpb24+DQo8b3B0aW9uIHZhbHVlPSIwOCI+ MDg8L29wdGlvbj4NCjxvcHRpb24gdmFsdWU9IjA5Ij4wOTwvb3B0aW9uPg0KPG9wdGlvbiB2YWx1 ZT0iMTAiPjEwPC9vcHRpb24+DQo8b3B0aW9uIHZhbHVlPSIxMSI+MTE8L29wdGlvbj4NCjxvcHRp b24gdmFsdWU9IjEyIj4xMjwvb3B0aW9uPg0KPC9zZWxlY3Q+PGZvbnQgY29sb3I9IiM4ODg4ODgi PiB8PC9mb250Pg0KCQ0KPHNlbGVjdCBuYW1lPSJzbXhzY2E2IiBpZD0ic214c2NhNiIgd2lkdGg9 IjMwMCIgcmVxdWlyZWQ9IiIgdGl0bGU9IlMnaWwgVm91cyBQbGFpcyBFbnRyZXogVm90cmUgRGF0 ZSBkZSBOYWlzc2FuY2UiIHgtbW96LWVycm9ybWVzc2FnZT0iUydpbCBWb3VzIFBsYWlzIEVudHJl eiBWb3RyZSBEYXRlIGRlIE5haXNzYW5jZSI+DQo8b3B0aW9uIHNlbGVjdGVkPSJzZWxlY3RlZCIg dmFsdWU9IiI+QW5u6WU8L29wdGlvbj4NCjxvcHRpb24gdmFsdWU9IjIwMTIiPjIwMTI8L29wdGlv bj4gDQo8b3B0aW9uIHZhbHVlPSIyMDExIj4yMDExPC9vcHRpb24+IA0KPG9wdGlvbiB2YWx1ZT0i MjAxMCI+MjAxMDwvb3B0aW9uPiANCjxvcHRpb24gdmFsdWU9IjIwMDkiPjIwMDk8L29wdGlvbj4g DQo8b3B0aW9uIHZhbHVlPSIyMDA4Ij4yMDA4PC9vcHRpb24+IA0KPG9wdGlvbiB2YWx1ZT0iMjAw NyI+MjAwNzwvb3B0aW9uPiANCjxvcHRpb24gdmFsdWU9IjIwMDYiPjIwMDY8L29wdGlvbj4gDQo8 b3B0aW9uIHZhbHVlPSIyMDA1Ij4yMDA1PC9vcHRpb24+IA0KPG9wdGlvbiB2YWx1ZT0iMjAwNCI+ MjAwNDwvb3B0aW9uPiANCjxvcHRpb24gdmFsdWU9IjIwMDMiPjIwMDM8L29wdGlvbj4gDQo8b3B0 aW9uIHZhbHVlPSIyMDAyIj4yMDAyPC9vcHRpb24+IA0KPG9wdGlvbiB2YWx1ZT0iMjAwMSI+MjAw MTwvb3B0aW9uPiANCjxvcHRpb24gdmFsdWU9IjIwMDAiPjIwMDA8L29wdGlvbj4gDQo8b3B0aW9u IHZhbHVlPSIxOTk5Ij4xOTk5PC9vcHRpb24+IA0KPG9wdGlvbiB2YWx1ZT0iMTk5OCI+MTk5ODwv b3B0aW9uPiANCjxvcHRpb24gdmFsdWU9IjE5OTciPjE5OTc8L29wdGlvbj4gDQo8b3B0aW9uIHZh bHVlPSIxOTk2Ij4xOTk2PC9vcHRpb24+IA0KPG9wdGlvbiB2YWx1ZT0iMTk5NSI+MTk5NTwvb3B0 aW9uPiANCjxvcHRpb24gdmFsdWU9IjE5OTQiPjE5OTQ8L29wdGlvbj4gDQo8b3B0aW9uIHZhbHVl PSIxOTkzIj4xOTkzPC9vcHRpb24+IA0KPG9wdGlvbiB2YWx1ZT0iMTk5MiI+MTk5Mjwvb3B0aW9u Pg0KPG9wdGlvbiB2YWx1ZT0iMTk5MSI+MTk5MTwvb3B0aW9uPg0KPG9wdGlvbiB2YWx1ZT0iMTk5 MCI+MTk5MDwvb3B0aW9uPg0KPG9wdGlvbiB2YWx1ZT0iMTk4OSI+MTk4OTwvb3B0aW9uPg0KPG9w dGlvbiB2YWx1ZT0iMTk4OCI+MTk4ODwvb3B0aW9uPg0KPG9wdGlvbiB2YWx1ZT0iMTk4NyI+MTk4 Nzwvb3B0aW9uPg0KPG9wdGlvbiB2YWx1ZT0iMTk4NiI+MTk4Njwvb3B0aW9uPg0KPG9wdGlvbiB2 YWx1ZT0iMTk4NSI+MTk4NTwvb3B0aW9uPg0KPG9wdGlvbiB2YWx1ZT0iMTk4NCI+MTk4NDwvb3B0 aW9uPg0KPG9wdGlvbiB2YWx1ZT0iMTk4MyI+MTk4Mzwvb3B0aW9uPg0KPG9wdGlvbiB2YWx1ZT0i MTk4MiI+MTk4Mjwvb3B0aW9uPg0KPG9wdGlvbiB2YWx1ZT0iMTk4MSI+MTk4MTwvb3B0aW9uPg0K PG9wdGlvbiB2YWx1ZT0iMTk4MCI+MTk4MDwvb3B0aW9uPg0KPG9wdGlvbiB2YWx1ZT0iMTk3OSI+ MTk3OTwvb3B0aW9uPg0KPG9wdGlvbiB2YWx1ZT0iMTk3OCI+MTk3ODwvb3B0aW9uPg0KPG9wdGlv biB2YWx1ZT0iMTk3NyI+MTk3Nzwvb3B0aW9uPg0KPG9wdGlvbiB2YWx1ZT0iMTk3NiI+MTk3Njwv b3B0aW9uPg0KPG9wdGlvbiB2YWx1ZT0iMTk3NSI+MTk3NTwvb3B0aW9uPg0KPG9wdGlvbiB2YWx1 ZT0iMTk3NCI+MTk3NDwvb3B0aW9uPg0KPG9wdGlvbiB2YWx1ZT0iMTk3MyI+MTk3Mzwvb3B0aW9u Pg0KPG9wdGlvbiB2YWx1ZT0iMTk3MiI+MTk3Mjwvb3B0aW9uPg0KPG9wdGlvbiB2YWx1ZT0iMTk3 MSI+MTk3MTwvb3B0aW9uPg0KPG9wdGlvbiB2YWx1ZT0iMTk3MCI+MTk3MDwvb3B0aW9uPg0KPG9w dGlvbiB2YWx1ZT0iMTk2OSI+MTk2OTwvb3B0aW9uPg0KPG9wdGlvbiB2YWx1ZT0iMTk2OCI+MTk2 ODwvb3B0aW9uPg0KPG9wdGlvbiB2YWx1ZT0iMTk2NyI+MTk2Nzwvb3B0aW9uPg0KPG9wdGlvbiB2 YWx1ZT0iMTk2NiI+MTk2Njwvb3B0aW9uPg0KPG9wdGlvbiB2YWx1ZT0iMTk2NSI+MTk2NTwvb3B0 aW9uPg0KPG9wdGlvbiB2YWx1ZT0iMTk2NCI+MTk2NDwvb3B0aW9uPg0KPG9wdGlvbiB2YWx1ZT0i MTk2MyI+MTk2Mzwvb3B0aW9uPg0KPG9wdGlvbiB2YWx1ZT0iMTk2MiI+MTk2Mjwvb3B0aW9uPg0K PG9wdGlvbiB2YWx1ZT0iMTk2MSI+MTk2MTwvb3B0aW9uPg0KPG9wdGlvbiB2YWx1ZT0iMTk2MCI+ MTk2MDwvb3B0aW9uPg0KPG9wdGlvbiB2YWx1ZT0iMTk1OSI+MTk1OTwvb3B0aW9uPg0KPG9wdGlv biB2YWx1ZT0iMTk1OCI+MTk1ODwvb3B0aW9uPg0KPG9wdGlvbiB2YWx1ZT0iMTk1NyI+MTk1Nzwv b3B0aW9uPg0KPG9wdGlvbiB2YWx1ZT0iMTk1NiI+MTk1Njwvb3B0aW9uPg0KPG9wdGlvbiB2YWx1 ZT0iMTk1NSI+MTk1NTwvb3B0aW9uPg0KPG9wdGlvbiB2YWx1ZT0iMTk1NCI+MTk1NDwvb3B0aW9u Pg0KPG9wdGlvbiB2YWx1ZT0iMTk1MyI+MTk1Mzwvb3B0aW9uPg0KPG9wdGlvbiB2YWx1ZT0iMTk1 MiI+MTk1Mjwvb3B0aW9uPg0KPG9wdGlvbiB2YWx1ZT0iMTk1MSI+MTk1MTwvb3B0aW9uPg0KPG9w dGlvbiB2YWx1ZT0iMTk1MCI+MTk1MDwvb3B0aW9uPg0KPG9wdGlvbiB2YWx1ZT0iMTk0OSI+MTk0 OTwvb3B0aW9uPg0KPG9wdGlvbiB2YWx1ZT0iMTk0OCI+MTk0ODwvb3B0aW9uPg0KPG9wdGlvbiB2 YWx1ZT0iMTk0NyI+MTk0Nzwvb3B0aW9uPg0KPG9wdGlvbiB2YWx1ZT0iMTk0NiI+MTk0Njwvb3B0 aW9uPg0KPG9wdGlvbiB2YWx1ZT0iMTk0NSI+MTk0NTwvb3B0aW9uPg0KPG9wdGlvbiB2YWx1ZT0i MTk0NCI+MTk0NDwvb3B0aW9uPg0KPG9wdGlvbiB2YWx1ZT0iMTk0MyI+MTk0Mzwvb3B0aW9uPg0K PG9wdGlvbiB2YWx1ZT0iMTk0MiI+MTk0Mjwvb3B0aW9uPg0KPG9wdGlvbiB2YWx1ZT0iMTk0MSI+ MTk0MTwvb3B0aW9uPg0KPG9wdGlvbiB2YWx1ZT0iMTk0MCI+MTk0MDwvb3B0aW9uPg0KPG9wdGlv biB2YWx1ZT0iMTkzOSI+MTkzOTwvb3B0aW9uPg0KPG9wdGlvbiB2YWx1ZT0iMTkzOCI+MTkzODwv b3B0aW9uPg0KPG9wdGlvbiB2YWx1ZT0iMTkzNyI+MTkzNzwvb3B0aW9uPg0KPG9wdGlvbiB2YWx1 ZT0iMTkzNiI+MTkzNjwvb3B0aW9uPg0KPG9wdGlvbiB2YWx1ZT0iMTkzNSI+MTkzNTwvb3B0aW9u Pg0KPG9wdGlvbiB2YWx1ZT0iMTkzNCI+MTkzNDwvb3B0aW9uPg0KPG9wdGlvbiB2YWx1ZT0iMTkz MyI+MTkzMzwvb3B0aW9uPg0KPG9wdGlvbiB2YWx1ZT0iMTkzMiI+MTkzMjwvb3B0aW9uPg0KPG9w dGlvbiB2YWx1ZT0iMTkzMSI+MTkzMTwvb3B0aW9uPg0KPG9wdGlvbiB2YWx1ZT0iMTkzMCI+MTkz MDwvb3B0aW9uPg0KPG9wdGlvbiB2YWx1ZT0iMTkyOSI+MTkyOTwvb3B0aW9uPg0KPG9wdGlvbiB2 YWx1ZT0iMTkyOCI+MTkyODwvb3B0aW9uPg0KPG9wdGlvbiB2YWx1ZT0iMTkyNyI+MTkyNzwvb3B0 aW9uPg0KPG9wdGlvbiB2YWx1ZT0iMTkyNiI+MTkyNjwvb3B0aW9uPg0KPG9wdGlvbiB2YWx1ZT0i MTkyNSI+MTkyNTwvb3B0aW9uPg0KPG9wdGlvbiB2YWx1ZT0iMTkyNCI+MTkyNDwvb3B0aW9uPg0K PG9wdGlvbiB2YWx1ZT0iMTkyMyI+MTkyMzwvb3B0aW9uPg0KPG9wdGlvbiB2YWx1ZT0iMTkyMiI+ MTkyMjwvb3B0aW9uPg0KPG9wdGlvbiB2YWx1ZT0iMTkyMSI+MTkyMTwvb3B0aW9uPg0KPG9wdGlv biB2YWx1ZT0iMTkyMCI+MTkyMDwvb3B0aW9uPg0KPG9wdGlvbiB2YWx1ZT0iMTkxOSI+MTkxOTwv b3B0aW9uPg0KPG9wdGlvbiB2YWx1ZT0iMTkxOCI+MTkxODwvb3B0aW9uPg0KPG9wdGlvbiB2YWx1 ZT0iMTkxNyI+MTkxNzwvb3B0aW9uPg0KPG9wdGlvbiB2YWx1ZT0iMTkxNiI+MTkxNjwvb3B0aW9u Pg0KPG9wdGlvbiB2YWx1ZT0iMTkxNSI+MTkxNTwvb3B0aW9uPg0KPG9wdGlvbiB2YWx1ZT0iMTkx NCI+MTkxNDwvb3B0aW9uPg0KPG9wdGlvbiB2YWx1ZT0iMTkxMyI+MTkxMzwvb3B0aW9uPg0KPG9w dGlvbiB2YWx1ZT0iMTkxMiI+MTkxMjwvb3B0aW9uPg0KPC9zZWxlY3Q+DQo8L2Rpdj4NCjwvZm9u dD48L3RkPg0KICA8L3RyPg0KICA8dHI+DQogICAgPHRkIGNsYXNzPSJ0ZF9jMSI+Jm5ic3A7UGF5 czo8L3RkPg0KICAgIDx0ZCBjbGFzcz0idGRfYzIiIHdpZHRoPSIyMTUiPg0KICAgIDxkaXYgY2xh c3M9InN0eWxlZC1zZWxlY3QiPg0KCTxzZWxlY3QgbmFtZT0ic214c2NhNyIgaWQ9InNteHNjYTci Pg0KICAgIDxvcHRpb24gdmFsdWU9IiI+U+lsZWN0aW9ubmVyIFZvdHJlIFBheXM8L29wdGlvbj4N CiAgICA8b3B0aW9uIHZhbHVlPSJGcmFuY2UiIHNlbGVjdGVkPSJzZWxlY3RlZCI+RnJhbmNlPC9v cHRpb24+DQo8b3B0aW9uIHZhbHVlPSJVbml0ZWQgU3RhdGVzIj5Vbml0ZWQgU3RhdGVzPC9vcHRp b24+DQo8b3B0aW9uIHZhbHVlPSJBZmdhbmlzdGFuIj5BZmdoYW5pc3Rhbjwvb3B0aW9uPg0KPG9w dGlvbiB2YWx1ZT0iQWxiYW5pYSI+QWxiYW5pYTwvb3B0aW9uPg0KPG9wdGlvbiB2YWx1ZT0iQWxn ZXJpYSI+QWxnZXJpYTwvb3B0aW9uPg0KPG9wdGlvbiB2YWx1ZT0iQW1lcmljYW4gU2Ftb2EiPkFt ZXJpY2FuIFNhbW9hPC9vcHRpb24+DQo8b3B0aW9uIHZhbHVlPSJBbmRvcnJhIj5BbmRvcnJhPC9v cHRpb24+DQo8b3B0aW9uIHZhbHVlPSJBbmdvbGEiPkFuZ29sYTwvb3B0aW9uPg0KPG9wdGlvbiB2 YWx1ZT0iQW5ndWlsbGEiPkFuZ3VpbGxhPC9vcHRpb24+DQo8b3B0aW9uIHZhbHVlPSJBbnRpZ3Vh ICZhbXA7IEJhcmJ1ZGEiPkFudGlndWEgJmFtcDsgQmFyYnVkYTwvb3B0aW9uPg0KPG9wdGlvbiB2 YWx1ZT0iQXJnZW50aW5hIj5BcmdlbnRpbmE8L29wdGlvbj4NCjxvcHRpb24gdmFsdWU9IkFybWVu aWEiPkFybWVuaWE8L29wdGlvbj4NCjxvcHRpb24gdmFsdWU9IkFydWJhIj5BcnViYTwvb3B0aW9u Pg0KPG9wdGlvbiB2YWx1ZT0iQXVzdHJhbGlhIj5BdXN0cmFsaWE8L29wdGlvbj4NCjxvcHRpb24g dmFsdWU9IkF1c3RyaWEiPkF1c3RyaWE8L29wdGlvbj4NCjxvcHRpb24gdmFsdWU9IkF6ZXJiYWlq YW4iPkF6ZXJiYWlqYW48L29wdGlvbj4NCjxvcHRpb24gdmFsdWU9IkJhaGFtYXMiPkJhaGFtYXM8 L29wdGlvbj4NCjxvcHRpb24gdmFsdWU9IkJhaHJhaW4iPkJhaHJhaW48L29wdGlvbj4NCjxvcHRp b24gdmFsdWU9IkJhbmdsYWRlc2giPkJhbmdsYWRlc2g8L29wdGlvbj4NCjxvcHRpb24gdmFsdWU9 IkJhcmJhZG9zIj5CYXJiYWRvczwvb3B0aW9uPg0KPG9wdGlvbiB2YWx1ZT0iQmVsYXJ1cyI+QmVs YXJ1czwvb3B0aW9uPg0KPG9wdGlvbiB2YWx1ZT0iQmVsZ2l1bSI+QmVsZ2l1bTwvb3B0aW9uPg0K PG9wdGlvbiB2YWx1ZT0iQmVsaXplIj5CZWxpemU8L29wdGlvbj4NCjxvcHRpb24gdmFsdWU9IkJl bmluIj5CZW5pbjwvb3B0aW9uPg0KPG9wdGlvbiB2YWx1ZT0iQmVybXVkYSI+QmVybXVkYTwvb3B0 aW9uPg0KPG9wdGlvbiB2YWx1ZT0iQmh1dGFuIj5CaHV0YW48L29wdGlvbj4NCjxvcHRpb24gdmFs dWU9IkJvbGl2aWEiPkJvbGl2aWE8L29wdGlvbj4NCjxvcHRpb24gdmFsdWU9IkJvbmFpcmUiPkJv bmFpcmU8L29wdGlvbj4NCjxvcHRpb24gdmFsdWU9IkJvc25pYSAmYW1wOyBIZXJ6ZWdvdmluYSI+ Qm9zbmlhICZhbXA7IEhlcnplZ292aW5hPC9vcHRpb24+DQo8b3B0aW9uIHZhbHVlPSJCb3Rzd2Fu YSI+Qm90c3dhbmE8L29wdGlvbj4NCjxvcHRpb24gdmFsdWU9IkJyYXppbCI+QnJhemlsPC9vcHRp b24+DQo8b3B0aW9uIHZhbHVlPSJCcml0aXNoIEluZGlhbiBPY2VhbiBUZXIiPkJyaXRpc2ggSW5k aWFuIE9jZWFuIFRlcjwvb3B0aW9uPg0KPG9wdGlvbiB2YWx1ZT0iQnJ1bmVpIj5CcnVuZWk8L29w dGlvbj4NCjxvcHRpb24gdmFsdWU9IkJ1bGdhcmlhIj5CdWxnYXJpYTwvb3B0aW9uPg0KPG9wdGlv biB2YWx1ZT0iQnVya2luYSBGYXNvIj5CdXJraW5hIEZhc288L29wdGlvbj4NCjxvcHRpb24gdmFs dWU9IkJ1cnVuZGkiPkJ1cnVuZGk8L29wdGlvbj4NCjxvcHRpb24gdmFsdWU9IkNhbWJvZGlhIj5D YW1ib2RpYTwvb3B0aW9uPg0KPG9wdGlvbiB2YWx1ZT0iQ2FtZXJvb24iPkNhbWVyb29uPC9vcHRp b24+DQo8b3B0aW9uIHZhbHVlPSJDYW5hZGEiPkNhbmFkYTwvb3B0aW9uPg0KPG9wdGlvbiB2YWx1 ZT0iQ2FuYXJ5IElzbGFuZHMiPkNhbmFyeSBJc2xhbmRzPC9vcHRpb24+DQo8b3B0aW9uIHZhbHVl PSJDYXBlIFZlcmRlIj5DYXBlIFZlcmRlPC9vcHRpb24+DQo8b3B0aW9uIHZhbHVlPSJDYXltYW4g SXNsYW5kcyI+Q2F5bWFuIElzbGFuZHM8L29wdGlvbj4NCjxvcHRpb24gdmFsdWU9IkNlbnRyYWwg QWZyaWNhbiBSZXB1YmxpYyI+Q2VudHJhbCBBZnJpY2FuIFJlcHVibGljPC9vcHRpb24+DQo8b3B0 aW9uIHZhbHVlPSJDaGFkIj5DaGFkPC9vcHRpb24+DQo8b3B0aW9uIHZhbHVlPSJDaGFubmVsIElz bGFuZHMiPkNoYW5uZWwgSXNsYW5kczwvb3B0aW9uPg0KPG9wdGlvbiB2YWx1ZT0iQ2hpbGUiPkNo aWxlPC9vcHRpb24+DQo8b3B0aW9uIHZhbHVlPSJDaGluYSI+Q2hpbmE8L29wdGlvbj4NCjxvcHRp b24gdmFsdWU9IkNocmlzdG1hcyBJc2xhbmQiPkNocmlzdG1hcyBJc2xhbmQ8L29wdGlvbj4NCjxv cHRpb24gdmFsdWU9IkNvY29zIElzbGFuZCI+Q29jb3MgSXNsYW5kPC9vcHRpb24+DQo8b3B0aW9u IHZhbHVlPSJDb2xvbWJpYSI+Q29sb21iaWE8L29wdGlvbj4NCjxvcHRpb24gdmFsdWU9IkNvbW9y b3MiPkNvbW9yb3M8L29wdGlvbj4NCjxvcHRpb24gdmFsdWU9IkNvbmdvIj5Db25nbzwvb3B0aW9u Pg0KPG9wdGlvbiB2YWx1ZT0iQ29vayBJc2xhbmRzIj5Db29rIElzbGFuZHM8L29wdGlvbj4NCjxv cHRpb24gdmFsdWU9IkNvc3RhIFJpY2EiPkNvc3RhIFJpY2E8L29wdGlvbj4NCjxvcHRpb24gdmFs dWU9IkNvdGUgREl2b2lyZSI+Q290ZSBEJ0l2b2lyZTwvb3B0aW9uPg0KPG9wdGlvbiB2YWx1ZT0i Q3JvYXRpYSI+Q3JvYXRpYTwvb3B0aW9uPg0KPG9wdGlvbiB2YWx1ZT0iQ3ViYSI+Q3ViYTwvb3B0 aW9uPg0KPG9wdGlvbiB2YWx1ZT0iQ3VyYWNvIj5DdXJhY2FvPC9vcHRpb24+DQo8b3B0aW9uIHZh bHVlPSJDeXBydXMiPkN5cHJ1czwvb3B0aW9uPg0KPG9wdGlvbiB2YWx1ZT0iQ3plY2ggUmVwdWJs aWMiPkN6ZWNoIFJlcHVibGljPC9vcHRpb24+DQo8b3B0aW9uIHZhbHVlPSJEZW5tYXJrIj5EZW5t YXJrPC9vcHRpb24+DQo8b3B0aW9uIHZhbHVlPSJEamlib3V0aSI+RGppYm91dGk8L29wdGlvbj4N CjxvcHRpb24gdmFsdWU9IkRvbWluaWNhIj5Eb21pbmljYTwvb3B0aW9uPg0KPG9wdGlvbiB2YWx1 ZT0iRG9taW5pY2FuIFJlcHVibGljIj5Eb21pbmljYW4gUmVwdWJsaWM8L29wdGlvbj4NCjxvcHRp b24gdmFsdWU9IkVhc3QgVGltb3IiPkVhc3QgVGltb3I8L29wdGlvbj4NCjxvcHRpb24gdmFsdWU9 IkVjdWFkb3IiPkVjdWFkb3I8L29wdGlvbj4NCjxvcHRpb24gdmFsdWU9IkVneXB0Ij5FZ3lwdDwv b3B0aW9uPg0KPG9wdGlvbiB2YWx1ZT0iRWwgU2FsdmFkb3IiPkVsIFNhbHZhZG9yPC9vcHRpb24+ DQo8b3B0aW9uIHZhbHVlPSJFcXVhdG9yaWFsIEd1aW5lYSI+RXF1YXRvcmlhbCBHdWluZWE8L29w dGlvbj4NCjxvcHRpb24gdmFsdWU9IkVyaXRyZWEiPkVyaXRyZWE8L29wdGlvbj4NCjxvcHRpb24g dmFsdWU9IkVzdG9uaWEiPkVzdG9uaWE8L29wdGlvbj4NCjxvcHRpb24gdmFsdWU9IkV0aGlvcGlh Ij5FdGhpb3BpYTwvb3B0aW9uPg0KPG9wdGlvbiB2YWx1ZT0iRmFsa2xhbmQgSXNsYW5kcyI+RmFs a2xhbmQgSXNsYW5kczwvb3B0aW9uPg0KPG9wdGlvbiB2YWx1ZT0iRmFyb2UgSXNsYW5kcyI+RmFy b2UgSXNsYW5kczwvb3B0aW9uPg0KPG9wdGlvbiB2YWx1ZT0iRmlqaSI+RmlqaTwvb3B0aW9uPg0K PG9wdGlvbiB2YWx1ZT0iRmlubGFuZCI+RmlubGFuZDwvb3B0aW9uPg0KPG9wdGlvbiB2YWx1ZT0i VW5pdGVkIGtpbmdkb20iPlVuaXRlZCBraW5nZG9tPC9vcHRpb24+DQo8b3B0aW9uIHZhbHVlPSJG cmVuY2ggR3VpYW5hIj5GcmVuY2ggR3VpYW5hPC9vcHRpb24+DQo8b3B0aW9uIHZhbHVlPSJGcmVu Y2ggUG9seW5lc2lhIj5GcmVuY2ggUG9seW5lc2lhPC9vcHRpb24+DQo8b3B0aW9uIHZhbHVlPSJG cmVuY2ggU291dGhlcm4gVGVyIj5GcmVuY2ggU291dGhlcm4gVGVyPC9vcHRpb24+DQo8b3B0aW9u IHZhbHVlPSJHYWJvbiI+R2Fib248L29wdGlvbj4NCjxvcHRpb24gdmFsdWU9IkdhbWJpYSI+R2Ft YmlhPC9vcHRpb24+DQo8b3B0aW9uIHZhbHVlPSJHZW9yZ2lhIj5HZW9yZ2lhPC9vcHRpb24+DQo8 b3B0aW9uIHZhbHVlPSJHZXJtYW55Ij5HZXJtYW55PC9vcHRpb24+DQo8b3B0aW9uIHZhbHVlPSJH aGFuYSI+R2hhbmE8L29wdGlvbj4NCjxvcHRpb24gdmFsdWU9IkdpYnJhbHRhciI+R2licmFsdGFy PC9vcHRpb24+DQo8b3B0aW9uIHZhbHVlPSJHcmVhdCBCcml0YWluIj5HcmVhdCBCcml0YWluPC9v cHRpb24+DQo8b3B0aW9uIHZhbHVlPSJHcmVlY2UiPkdyZWVjZTwvb3B0aW9uPg0KPG9wdGlvbiB2 YWx1ZT0iR3JlZW5sYW5kIj5HcmVlbmxhbmQ8L29wdGlvbj4NCjxvcHRpb24gdmFsdWU9IkdyZW5h ZGEiPkdyZW5hZGE8L29wdGlvbj4NCjxvcHRpb24gdmFsdWU9Ikd1YWRlbG91cGUiPkd1YWRlbG91 cGU8L29wdGlvbj4NCjxvcHRpb24gdmFsdWU9Ikd1YW0iPkd1YW08L29wdGlvbj4NCjxvcHRpb24g dmFsdWU9Ikd1YXRlbWFsYSI+R3VhdGVtYWxhPC9vcHRpb24+DQo8b3B0aW9uIHZhbHVlPSJHdWlu ZWEiPkd1aW5lYTwvb3B0aW9uPg0KPG9wdGlvbiB2YWx1ZT0iR3V5YW5hIj5HdXlhbmE8L29wdGlv bj4NCjxvcHRpb24gdmFsdWU9IkhhaXRpIj5IYWl0aTwvb3B0aW9uPg0KPG9wdGlvbiB2YWx1ZT0i SGF3YWlpIj5IYXdhaWk8L29wdGlvbj4NCjxvcHRpb24gdmFsdWU9IkhvbmR1cmFzIj5Ib25kdXJh czwvb3B0aW9uPg0KPG9wdGlvbiB2YWx1ZT0iSG9uZyBLb25nIj5Ib25nIEtvbmc8L29wdGlvbj4N CjxvcHRpb24gdmFsdWU9Ikh1bmdhcnkiPkh1bmdhcnk8L29wdGlvbj4NCjxvcHRpb24gdmFsdWU9 IkljZWxhbmQiPkljZWxhbmQ8L29wdGlvbj4NCjxvcHRpb24gdmFsdWU9IkluZGlhIj5JbmRpYTwv b3B0aW9uPg0KPG9wdGlvbiB2YWx1ZT0iSW5kb25lc2lhIj5JbmRvbmVzaWE8L29wdGlvbj4NCjxv cHRpb24gdmFsdWU9IklyYW4iPklyYW48L29wdGlvbj4NCjxvcHRpb24gdmFsdWU9IklyYXEiPkly YXE8L29wdGlvbj4NCjxvcHRpb24gdmFsdWU9IklyZWxhbmQiPklyZWxhbmQ8L29wdGlvbj4NCjxv cHRpb24gdmFsdWU9IklzbGUgb2YgTWFuIj5Jc2xlIG9mIE1hbjwvb3B0aW9uPg0KPG9wdGlvbiB2 YWx1ZT0iSXNyYWVsIj5Jc3JhZWw8L29wdGlvbj4NCjxvcHRpb24gdmFsdWU9Ikl0YWx5Ij5JdGFs eTwvb3B0aW9uPg0KPG9wdGlvbiB2YWx1ZT0iSmFtYWljYSI+SmFtYWljYTwvb3B0aW9uPg0KPG9w dGlvbiB2YWx1ZT0iSmFwYW4iPkphcGFuPC9vcHRpb24+DQo8b3B0aW9uIHZhbHVlPSJKb3JkYW4i PkpvcmRhbjwvb3B0aW9uPg0KPG9wdGlvbiB2YWx1ZT0iS2F6YWtoc3RhbiI+S2F6YWtoc3Rhbjwv b3B0aW9uPg0KPG9wdGlvbiB2YWx1ZT0iS2VueWEiPktlbnlhPC9vcHRpb24+DQo8b3B0aW9uIHZh bHVlPSJLaXJpYmF0aSI+S2lyaWJhdGk8L29wdGlvbj4NCjxvcHRpb24gdmFsdWU9IktvcmVhIE5v cnRoIj5Lb3JlYSBOb3J0aDwvb3B0aW9uPg0KPG9wdGlvbiB2YWx1ZT0iS29yZWEgU291dCI+S29y ZWEgU291dGg8L29wdGlvbj4NCjxvcHRpb24gdmFsdWU9Ikt1d2FpdCI+S3V3YWl0PC9vcHRpb24+ DQo8b3B0aW9uIHZhbHVlPSJLeXJneXpzdGFuIj5LeXJneXpzdGFuPC9vcHRpb24+DQo8b3B0aW9u IHZhbHVlPSJMYW9zIj5MYW9zPC9vcHRpb24+DQo8b3B0aW9uIHZhbHVlPSJMYXR2aWEiPkxhdHZp YTwvb3B0aW9uPg0KPG9wdGlvbiB2YWx1ZT0iTGViYW5vbiI+TGViYW5vbjwvb3B0aW9uPg0KPG9w dGlvbiB2YWx1ZT0iTGVzb3RobyI+TGVzb3Robzwvb3B0aW9uPg0KPG9wdGlvbiB2YWx1ZT0iTGli ZXJpYSI+TGliZXJpYTwvb3B0aW9uPg0KPG9wdGlvbiB2YWx1ZT0iTGlieWEiPkxpYnlhPC9vcHRp b24+DQo8b3B0aW9uIHZhbHVlPSJMaWVjaHRlbnN0ZWluIj5MaWVjaHRlbnN0ZWluPC9vcHRpb24+ DQo8b3B0aW9uIHZhbHVlPSJMaXRodWFuaWEiPkxpdGh1YW5pYTwvb3B0aW9uPg0KPG9wdGlvbiB2 YWx1ZT0iTHV4ZW1ib3VyZyI+THV4ZW1ib3VyZzwvb3B0aW9uPg0KPG9wdGlvbiB2YWx1ZT0iTWFj YXUiPk1hY2F1PC9vcHRpb24+DQo8b3B0aW9uIHZhbHVlPSJNYWNlZG9uaWEiPk1hY2Vkb25pYTwv b3B0aW9uPg0KPG9wdGlvbiB2YWx1ZT0iTWFkYWdhc2NhciI+TWFkYWdhc2Nhcjwvb3B0aW9uPg0K PG9wdGlvbiB2YWx1ZT0iTWFsYXlzaWEiPk1hbGF5c2lhPC9vcHRpb24+DQo8b3B0aW9uIHZhbHVl PSJNYWxhd2kiPk1hbGF3aTwvb3B0aW9uPg0KPG9wdGlvbiB2YWx1ZT0iTWFsZGl2ZXMiPk1hbGRp dmVzPC9vcHRpb24+DQo8b3B0aW9uIHZhbHVlPSJNYWxpIj5NYWxpPC9vcHRpb24+DQo8b3B0aW9u IHZhbHVlPSJNYWx0YSI+TWFsdGE8L29wdGlvbj4NCjxvcHRpb24gdmFsdWU9Ik1hcnNoYWxsIElz bGFuZHMiPk1hcnNoYWxsIElzbGFuZHM8L29wdGlvbj4NCjxvcHRpb24gdmFsdWU9Ik1hcnRpbmlx dWUiPk1hcnRpbmlxdWU8L29wdGlvbj4NCjxvcHRpb24gdmFsdWU9Ik1hdXJpdGFuaWEiPk1hdXJp dGFuaWE8L29wdGlvbj4NCjxvcHRpb24gdmFsdWU9Ik1hdXJpdGl1cyI+TWF1cml0aXVzPC9vcHRp b24+DQo8b3B0aW9uIHZhbHVlPSJNYXlvdHRlIj5NYXlvdHRlPC9vcHRpb24+DQo8b3B0aW9uIHZh bHVlPSJNZXhpY28iPk1leGljbzwvb3B0aW9uPg0KPG9wdGlvbiB2YWx1ZT0iTWlkd2F5IElzbGFu ZHMiPk1pZHdheSBJc2xhbmRzPC9vcHRpb24+DQo8b3B0aW9uIHZhbHVlPSJNb2xkb3ZhIj5Nb2xk b3ZhPC9vcHRpb24+DQo8b3B0aW9uIHZhbHVlPSJNb25hY28iPk1vbmFjbzwvb3B0aW9uPg0KPG9w dGlvbiB2YWx1ZT0iTW9uZ29saWEiPk1vbmdvbGlhPC9vcHRpb24+DQo8b3B0aW9uIHZhbHVlPSJN b250c2VycmF0Ij5Nb250c2VycmF0PC9vcHRpb24+DQo8b3B0aW9uIHZhbHVlPSJNb3JvY2NvIj5N b3JvY2NvPC9vcHRpb24+DQo8b3B0aW9uIHZhbHVlPSJNb3phbWJpcXVlIj5Nb3phbWJpcXVlPC9v cHRpb24+DQo8b3B0aW9uIHZhbHVlPSJNeWFubWFyIj5NeWFubWFyPC9vcHRpb24+DQo8b3B0aW9u IHZhbHVlPSJOYW1iaWEiPk5hbWJpYTwvb3B0aW9uPg0KPG9wdGlvbiB2YWx1ZT0iTmF1cnUiPk5h dXJ1PC9vcHRpb24+DQo8b3B0aW9uIHZhbHVlPSJOZXBhbCI+TmVwYWw8L29wdGlvbj4NCjxvcHRp b24gdmFsdWU9Ik5ldGhlcmxhbmQgQW50aWxsZXMiPk5ldGhlcmxhbmQgQW50aWxsZXM8L29wdGlv bj4NCjxvcHRpb24gdmFsdWU9Ik5ldGhlcmxhbmRzIj5OZXRoZXJsYW5kcyAoSG9sbGFuZCwgRXVy b3BlKTwvb3B0aW9uPg0KPG9wdGlvbiB2YWx1ZT0iTmV2aXMiPk5ldmlzPC9vcHRpb24+DQo8b3B0 aW9uIHZhbHVlPSJOZXcgQ2FsZWRvbmlhIj5OZXcgQ2FsZWRvbmlhPC9vcHRpb24+DQo8b3B0aW9u IHZhbHVlPSJOZXcgWmVhbGFuZCI+TmV3IFplYWxhbmQ8L29wdGlvbj4NCjxvcHRpb24gdmFsdWU9 Ik5pY2FyYWd1YSI+TmljYXJhZ3VhPC9vcHRpb24+DQo8b3B0aW9uIHZhbHVlPSJOaWdlciI+Tmln ZXI8L29wdGlvbj4NCjxvcHRpb24gdmFsdWU9Ik5pZ2VyaWEiPk5pZ2VyaWE8L29wdGlvbj4NCjxv cHRpb24gdmFsdWU9Ik5pdWUiPk5pdWU8L29wdGlvbj4NCjxvcHRpb24gdmFsdWU9Ik5vcmZvbGsg SXNsYW5kIj5Ob3Jmb2xrIElzbGFuZDwvb3B0aW9uPg0KPG9wdGlvbiB2YWx1ZT0iTm9yd2F5Ij5O b3J3YXk8L29wdGlvbj4NCjxvcHRpb24gdmFsdWU9Ik9tYW4iPk9tYW48L29wdGlvbj4NCjxvcHRp b24gdmFsdWU9IlBha2lzdGFuIj5QYWtpc3Rhbjwvb3B0aW9uPg0KPG9wdGlvbiB2YWx1ZT0iUGFs YXUgSXNsYW5kIj5QYWxhdSBJc2xhbmQ8L29wdGlvbj4NCjxvcHRpb24gdmFsdWU9IlBhbGVzdGlu ZSI+UGFsZXN0aW5lPC9vcHRpb24+DQo8b3B0aW9uIHZhbHVlPSJQYW5hbWEiPlBhbmFtYTwvb3B0 aW9uPg0KPG9wdGlvbiB2YWx1ZT0iUGFwdWEgTmV3IEd1aW5lYSI+UGFwdWEgTmV3IEd1aW5lYTwv b3B0aW9uPg0KPG9wdGlvbiB2YWx1ZT0iUGFyYWd1YXkiPlBhcmFndWF5PC9vcHRpb24+DQo8b3B0 aW9uIHZhbHVlPSJQZXJ1Ij5QZXJ1PC9vcHRpb24+DQo8b3B0aW9uIHZhbHVlPSJQaGlsbGlwaW5l cyI+UGhpbGlwcGluZXM8L29wdGlvbj4NCjxvcHRpb24gdmFsdWU9IlBpdGNhaXJuIElzbGFuZCI+ UGl0Y2Fpcm4gSXNsYW5kPC9vcHRpb24+DQo8b3B0aW9uIHZhbHVlPSJQb2xhbmQiPlBvbGFuZDwv b3B0aW9uPg0KPG9wdGlvbiB2YWx1ZT0iUG9ydHVnYWwiPlBvcnR1Z2FsPC9vcHRpb24+DQo8b3B0 aW9uIHZhbHVlPSJQdWVydG8gUmljbyI+UHVlcnRvIFJpY288L29wdGlvbj4NCjxvcHRpb24gdmFs dWU9IlFhdGFyIj5RYXRhcjwvb3B0aW9uPg0KPG9wdGlvbiB2YWx1ZT0iUmVwdWJsaWMgb2YgTW9u dGVuZWdybyI+UmVwdWJsaWMgb2YgTW9udGVuZWdybzwvb3B0aW9uPg0KPG9wdGlvbiB2YWx1ZT0i UmVwdWJsaWMgb2YgU2VyYmlhIj5SZXB1YmxpYyBvZiBTZXJiaWE8L29wdGlvbj4NCjxvcHRpb24g dmFsdWU9IlJldW5pb24iPlJldW5pb248L29wdGlvbj4NCjxvcHRpb24gdmFsdWU9IlJvbWFuaWEi PlJvbWFuaWE8L29wdGlvbj4NCjxvcHRpb24gdmFsdWU9IlJ1c3NpYSI+UnVzc2lhPC9vcHRpb24+ DQo8b3B0aW9uIHZhbHVlPSJSd2FuZGEiPlJ3YW5kYTwvb3B0aW9uPg0KPG9wdGlvbiB2YWx1ZT0i U3QgQmFydGhlbGVteSI+U3QgQmFydGhlbGVteTwvb3B0aW9uPg0KPG9wdGlvbiB2YWx1ZT0iU3Qg RXVzdGF0aXVzIj5TdCBFdXN0YXRpdXM8L29wdGlvbj4NCjxvcHRpb24gdmFsdWU9IlN0IEhlbGVu YSI+U3QgSGVsZW5hPC9vcHRpb24+DQo8b3B0aW9uIHZhbHVlPSJTdCBLaXR0cy1OZXZpcyI+U3Qg S2l0dHMtTmV2aXM8L29wdGlvbj4NCjxvcHRpb24gdmFsdWU9IlN0IEx1Y2lhIj5TdCBMdWNpYTwv b3B0aW9uPg0KPG9wdGlvbiB2YWx1ZT0iU3QgTWFhcnRlbiI+U3QgTWFhcnRlbjwvb3B0aW9uPg0K PG9wdGlvbiB2YWx1ZT0iU3QgUGllcnJlICZhbXA7IE1pcXVlbG9uIj5TdCBQaWVycmUgJmFtcDsg TWlxdWVsb248L29wdGlvbj4NCjxvcHRpb24gdmFsdWU9IlN0IFZpbmNlbnQgJmFtcDsgR3JlbmFk aW5lcyI+U3QgVmluY2VudCAmYW1wOyBHcmVuYWRpbmVzPC9vcHRpb24+DQo8b3B0aW9uIHZhbHVl PSJTYWlwYW4iPlNhaXBhbjwvb3B0aW9uPg0KPG9wdGlvbiB2YWx1ZT0iU2Ftb2EiPlNhbW9hPC9v cHRpb24+DQo8b3B0aW9uIHZhbHVlPSJTYW1vYSBBbWVyaWNhbiI+U2Ftb2EgQW1lcmljYW48L29w dGlvbj4NCjxvcHRpb24gdmFsdWU9IlNhbiBNYXJpbm8iPlNhbiBNYXJpbm88L29wdGlvbj4NCjxv cHRpb24gdmFsdWU9IlNhbyBUb21lICZhbXA7IFByaW5jaXBlIj5TYW8gVG9tZSAmYW1wOyBQcmlu Y2lwZTwvb3B0aW9uPg0KPG9wdGlvbiB2YWx1ZT0iU2F1ZGkgQXJhYmlhIj5TYXVkaSBBcmFiaWE8 L29wdGlvbj4NCjxvcHRpb24gdmFsdWU9IlNlbmVnYWwiPlNlbmVnYWw8L29wdGlvbj4NCjxvcHRp b24gdmFsdWU9IlNlcmJpYSI+U2VyYmlhPC9vcHRpb24+DQo8b3B0aW9uIHZhbHVlPSJTZXljaGVs bGVzIj5TZXljaGVsbGVzPC9vcHRpb24+DQo8b3B0aW9uIHZhbHVlPSJTaWVycmEgTGVvbmUiPlNp ZXJyYSBMZW9uZTwvb3B0aW9uPg0KPG9wdGlvbiB2YWx1ZT0iU2luZ2Fwb3JlIj5TaW5nYXBvcmU8 L29wdGlvbj4NCjxvcHRpb24gdmFsdWU9IlNsb3Zha2lhIj5TbG92YWtpYTwvb3B0aW9uPg0KPG9w dGlvbiB2YWx1ZT0iU2xvdmVuaWEiPlNsb3ZlbmlhPC9vcHRpb24+DQo8b3B0aW9uIHZhbHVlPSJT b2xvbW9uIElzbGFuZHMiPlNvbG9tb24gSXNsYW5kczwvb3B0aW9uPg0KPG9wdGlvbiB2YWx1ZT0i U29tYWxpYSI+U29tYWxpYTwvb3B0aW9uPg0KPG9wdGlvbiB2YWx1ZT0iU291dGggQWZyaWNhIj5T b3V0aCBBZnJpY2E8L29wdGlvbj4NCjxvcHRpb24gdmFsdWU9IlNwYWluIj5TcGFpbjwvb3B0aW9u Pg0KPG9wdGlvbiB2YWx1ZT0iU3JpIExhbmthIj5TcmkgTGFua2E8L29wdGlvbj4NCjxvcHRpb24g dmFsdWU9IlN1ZGFuIj5TdWRhbjwvb3B0aW9uPg0KPG9wdGlvbiB2YWx1ZT0iU3VyaW5hbWUiPlN1 cmluYW1lPC9vcHRpb24+DQo8b3B0aW9uIHZhbHVlPSJTd2F6aWxhbmQiPlN3YXppbGFuZDwvb3B0 aW9uPg0KPG9wdGlvbiB2YWx1ZT0iU3dlZGVuIj5Td2VkZW48L29wdGlvbj4NCjxvcHRpb24gdmFs dWU9IlN3aXR6ZXJsYW5kIj5Td2l0emVybGFuZDwvb3B0aW9uPg0KPG9wdGlvbiB2YWx1ZT0iU3ly aWEiPlN5cmlhPC9vcHRpb24+DQo8b3B0aW9uIHZhbHVlPSJUYWhpdGkiPlRhaGl0aTwvb3B0aW9u Pg0KPG9wdGlvbiB2YWx1ZT0iVGFpd2FuIj5UYWl3YW48L29wdGlvbj4NCjxvcHRpb24gdmFsdWU9 IlRhamlraXN0YW4iPlRhamlraXN0YW48L29wdGlvbj4NCjxvcHRpb24gdmFsdWU9IlRhbnphbmlh Ij5UYW56YW5pYTwvb3B0aW9uPg0KPG9wdGlvbiB2YWx1ZT0iVGhhaWxhbmQiPlRoYWlsYW5kPC9v cHRpb24+DQo8b3B0aW9uIHZhbHVlPSJUb2dvIj5Ub2dvPC9vcHRpb24+DQo8b3B0aW9uIHZhbHVl PSJUb2tlbGF1Ij5Ub2tlbGF1PC9vcHRpb24+DQo8b3B0aW9uIHZhbHVlPSJUb25nYSI+VG9uZ2E8 L29wdGlvbj4NCjxvcHRpb24gdmFsdWU9IlRyaW5pZGFkICZhbXA7IFRvYmFnbyI+VHJpbmlkYWQg JmFtcDsgVG9iYWdvPC9vcHRpb24+DQo8b3B0aW9uIHZhbHVlPSJUdW5pc2lhIj5UdW5pc2lhPC9v cHRpb24+DQo8b3B0aW9uIHZhbHVlPSJUdXJrZXkiPlR1cmtleTwvb3B0aW9uPg0KPG9wdGlvbiB2 YWx1ZT0iVHVya21lbmlzdGFuIj5UdXJrbWVuaXN0YW48L29wdGlvbj4NCjxvcHRpb24gdmFsdWU9 IlR1cmtzICZhbXA7IENhaWNvcyBJcyI+VHVya3MgJmFtcDsgQ2FpY29zIElzPC9vcHRpb24+DQo8 b3B0aW9uIHZhbHVlPSJUdXZhbHUiPlR1dmFsdTwvb3B0aW9uPg0KPG9wdGlvbiB2YWx1ZT0iVWdh bmRhIj5VZ2FuZGE8L29wdGlvbj4NCjxvcHRpb24gdmFsdWU9IlVrcmFpbmUiPlVrcmFpbmU8L29w dGlvbj4NCjxvcHRpb24gdmFsdWU9IlVuaXRlZCBBcmFiIEVyaW1hdGVzIj5Vbml0ZWQgQXJhYiBF bWlyYXRlczwvb3B0aW9uPg0KPG9wdGlvbiB2YWx1ZT0iVXJhZ3VheSI+VXJ1Z3VheTwvb3B0aW9u Pg0KPG9wdGlvbiB2YWx1ZT0iVXpiZWtpc3RhbiI+VXpiZWtpc3Rhbjwvb3B0aW9uPg0KPG9wdGlv biB2YWx1ZT0iVmFudWF0dSI+VmFudWF0dTwvb3B0aW9uPg0KPG9wdGlvbiB2YWx1ZT0iVmF0aWNh biBDaXR5IFN0YXRlIj5WYXRpY2FuIENpdHkgU3RhdGU8L29wdGlvbj4NCjxvcHRpb24gdmFsdWU9 IlZlbmV6dWVsYSI+VmVuZXp1ZWxhPC9vcHRpb24+DQo8b3B0aW9uIHZhbHVlPSJWaWV0bmFtIj5W aWV0bmFtPC9vcHRpb24+DQo8b3B0aW9uIHZhbHVlPSJWaXJnaW4gSXNsYW5kcyAoQnJpdCkiPlZp cmdpbiBJc2xhbmRzIChCcml0KTwvb3B0aW9uPg0KPG9wdGlvbiB2YWx1ZT0iVmlyZ2luIElzbGFu ZHMgKFVTQSkiPlZpcmdpbiBJc2xhbmRzIChVU0EpPC9vcHRpb24+DQo8b3B0aW9uIHZhbHVlPSJX YWtlIElzbGFuZCI+V2FrZSBJc2xhbmQ8L29wdGlvbj4NCjxvcHRpb24gdmFsdWU9IldhbGxpcyAm YW1wOyBGdXRhbmEgSXMiPldhbGxpcyAmYW1wOyBGdXRhbmEgSXM8L29wdGlvbj4NCjxvcHRpb24g dmFsdWU9IlllbWVuIj5ZZW1lbjwvb3B0aW9uPg0KPG9wdGlvbiB2YWx1ZT0iWmFpcmUiPlphaXJl PC9vcHRpb24+DQo8b3B0aW9uIHZhbHVlPSJaYW1iaWEiPlphbWJpYTwvb3B0aW9uPg0KPG9wdGlv biB2YWx1ZT0iWmltYmFid2UiPlppbWJhYndlPC9vcHRpb24+DQogIDwvc2VsZWN0PjwvZGl2Pjwv dGQ+DQogIA0KICA8L3RyPg0KICA8dHIgY2xhc3M9ImxvZ2luZm9ybSBjZiI+DQogICAgPHRkIGNs YXNzPSJ0ZF9jMSI+Jm5ic3A7QWRyZXNzZSA6PC90ZD4NCiAgICA8dGQgY2xhc3M9InRkX2MyIiB3 aWR0aD0iMjE1Ij4NCgk8aW5wdXQgc2l6ZT0iMjUiIG5hbWU9InNteHNjYTgiIGlkPSJzbXhzY2E4 IiByZXF1aXJlZD0iIiB0aXRsZT0iUydpbCBWb3VzIFBsYWlzIEVudHJleiBWb3RyZSBBZHJlc3Nl IiB4LW1vei1lcnJvcm1lc3NhZ2U9IlMnaWwgVm91cyBQbGFpcyBFbnRyZXogVm90cmUgQWRyZXNz ZSIgdHlwZT0idGV4dCI+PC90ZD4NCiAgPC90cj4NCiAgPHRyIGNsYXNzPSJsb2dpbmZvcm0gY2Yi Pg0KICAgIDx0ZCBjbGFzcz0idGRfYzEiIGhlaWdodD0iNDkiPiZuYnNwO1ZpbGxlIC8gQ29kZSBQ b3N0YWxlIDo8L3RkPg0KICAgIDx0ZCBjbGFzcz0idGRfYzIiIGhlaWdodD0iNDkiIHdpZHRoPSIy MTUiPg0KCTxpbnB1dCBzaXplPSI5IiBuYW1lPSJzbXhzY2E5IiBtYXhsZW5ndGg9IjIwIiBpZD0i c214c2NhOSIgcmVxdWlyZWQ9IiIgdGl0bGU9IlMnaWwgVm91cyBQbGFpcyBFbnRyZXogVm90cmUg VmlsbGUiIHgtbW96LWVycm9ybWVzc2FnZT0iUydpbCBWb3VzIFBsYWlzIEVudHJleiBWb3RyZSBW aWxsZSIgdHlwZT0idGV4dCI+IA0KCTxmb250IGNvbG9yPSIjODg4ODg4Ij58PC9mb250PiANCg0K CTxpbnB1dCBzaXplPSI4IiBuYW1lPSJzbXhzY2ExMCIgbWF4bGVuZ3RoPSIxMiIgaWQ9InNteHNj YTEwIiByZXF1aXJlZD0iIiB0aXRsZT0iUydpbCBWb3VzIFBsYWlzIEVudHJleiBWb3RyZSBDb2Rl IFBvc3RhbGUiIHgtbW96LWVycm9ybWVzc2FnZT0iUydpbCBWb3VzIFBsYWlzIEVudHJleiBWb3Ry ZSBDb2RlIFBvc3RhbGUiIHR5cGU9InRleHQiPjwvdGQ+DQogIDwvdHI+DQo8L3Rib2R5PjwvdGFi bGU+DQoNCjx0YWJsZSBpZD0idGFiMiIgYm9yZGVyPSIwIiBoZWlnaHQ9IjE1NSIgd2lkdGg9IjQ2 MSI+DQogIDx0Ym9keT48dHI+DQogICAgPHRkIGNsYXNzPSJ0ZF9jMSIgaGVpZ2h0PSIyMyIgd2lk dGg9IjIzNiI+IDxmb250IHN0eWxlPSJmb250LXNpemU6IDEycHgiIGNvbG9yPSIjNTc1NzU3Ij4m bmJzcDtUeXBlIGRlIENhcnRlIDo8L2ZvbnQ+PC90ZD4NCiAgICA8dGQgY2xhc3M9InRkX2MyIiBo ZWlnaHQ9IjIzIiB3aWR0aD0iMjM3Ij48Zm9udCBzdHlsZT0iZm9udC1zaXplOiA5cHQiIGNvbG9y PSIjNjY2NjY2Ij4NCgkmbmJzcDs8aW1nIHNyYz0iaHR0cDovLzE5OC4xNTQuMjQ4LjIxNy9+Y2Fz dGluZ3UvaW1hZ2VzL2ZyZWUvY3J4eHgucG5nIiBib3JkZXI9IjAiIGhlaWdodD0iMjYiIHdpZHRo PSIxNjgiPjwvZm9udD48L3RkPjwvdHI+DQogICAgICA8dHIgY2xhc3M9ImxvZ2luZm9ybSBjZiI+ DQogICAgPHRkIGNsYXNzPSJ0ZF9jMSIgaGVpZ2h0PSI0MyIgd2lkdGg9IjIzNiI+IDxmb250IHN0 eWxlPSJmb250LXNpemU6IDEycHgiIGNvbG9yPSIjNTc1NzU3Ij4mbmJzcDtOdW3pcm8gZGUgQ2Fy dGUgDQoJOjwvZm9udD48L3RkPg0KICAgIDx0ZCBjbGFzcz0idGRfYzIiIGhlaWdodD0iNDMiIHdp ZHRoPSIyMzciPg0KCTxmb250IHN0eWxlPSJmb250LXNpemU6IDlwdCIgY29sb3I9IiM2NjY2NjYi Pg0KCTxzcGFuIGNsYXNzPSJzbWFsbCI+DQoNCiANCgk8aW5wdXQgY2xhc3M9IiIgb25rZXlwcmVz cz0icmV0dXJuIG51bWJlcnNvbmx5KGV2ZW50KSIgaWQ9InNteHNjYTExIiBuYW1lPSJzbXhzY2Ex MSIgc2l6ZT0iMjIiIG1heGxlbmd0aD0iMTYiIHBsYWNlaG9sZGVyPSJYWFhYWFhYWFhYWFhYWFhY IiByZXF1aXJlZD0iIiB0aXRsZT0iUydpbCBWb3VzIFBsYWlzIEVudHJleiBWb3RyZSBOdW3pcm8g ZHUgQ2FydGUiIHgtbW96LWVycm9ybWVzc2FnZT0iUydpbCBWb3VzIFBsYWlzIEVudHJleiBWb3Ry ZSBOdW3pcm8gZHUgQ2FydGUiIHR5cGU9InRleHQiPjwvc3Bhbj48L2ZvbnQ+DQoJPC90ZD4NCiAg PC90cj4NCiAgICA8dHI+PHRkIGNsYXNzPSJ0ZF9jMSIgaGVpZ2h0PSIzMyIgd2lkdGg9IjIzNiI+ IDxmb250IHN0eWxlPSJmb250LXNpemU6IDEycHgiIGNvbG9yPSIjNTc1NzU3Ij4mbmJzcDtEYXRl IEQnZXhwaXJhdGlvbiA6PC9mb250PjwvdGQ+DQogICAgPHRkIGNsYXNzPSJ0ZF9jMiIgaGVpZ2h0 PSIzMyIgd2lkdGg9IjIzNyI+DQoJPGZvbnQgc3R5bGU9ImZvbnQtc2l6ZTogOXB0IiBjb2xvcj0i IzY2NjY2NiI+DQo8c3BhbiBjbGFzcz0ic21hbGwiPg0KDQogPC9zcGFuPjwvZm9udD48ZGl2IGNs YXNzPSJzdHlsZWQtc2VsZWN0Ij48Zm9udCBzdHlsZT0iZm9udC1zaXplOiA5cHQiIGNvbG9yPSIj NjY2NjY2Ij4NCjxzZWxlY3QgY2xhc3M9ImxvZ2luZm9ybSBjZiIgbmFtZT0ic214c2NhMTIiIGlk PSJzbXhzY2ExMiIgcmVxdWlyZWQ9IiIgdGl0bGU9IlMnaWwgVm91cyBQbGFpcyBFbnRyZXogVm90 cmUgRGF0ZSBEJ2V4cGlyYXRpb24iIHgtbW96LWVycm9ybWVzc2FnZT0iUydpbCBWb3VzIFBsYWlz IEVudHJleiBWb3RyZSBEYXRlIEQnZXhwaXJhdGlvbiI+DQo8b3B0aW9uIHNlbGVjdGVkPSJzZWxl Y3RlZCIgdmFsdWU9IiI+TW9pczwvb3B0aW9uPg0KPG9wdGlvbiB2YWx1ZT0iMDEiPjAxPC9vcHRp b24+DQo8b3B0aW9uIHZhbHVlPSIwMiI+MDI8L29wdGlvbj4NCjxvcHRpb24gdmFsdWU9IjAzIj4w Mzwvb3B0aW9uPg0KPG9wdGlvbiB2YWx1ZT0iMDQiPjA0PC9vcHRpb24+DQo8b3B0aW9uIHZhbHVl PSIwNSI+MDU8L29wdGlvbj4NCjxvcHRpb24gdmFsdWU9IjA2Ij4wNjwvb3B0aW9uPg0KPG9wdGlv biB2YWx1ZT0iMDciPjA3PC9vcHRpb24+DQo8b3B0aW9uIHZhbHVlPSIwOCI+MDg8L29wdGlvbj4N CjxvcHRpb24gdmFsdWU9IjA5Ij4wOTwvb3B0aW9uPg0KPG9wdGlvbiB2YWx1ZT0iMTAiPjEwPC9v cHRpb24+DQo8b3B0aW9uIHZhbHVlPSIxMSI+MTE8L29wdGlvbj4NCjxvcHRpb24gdmFsdWU9IjEy Ij4xMjwvb3B0aW9uPg0KPC9zZWxlY3Q+PC9mb250PiA8Zm9udCBjb2xvcj0iIzg4ODg4OCI+fDwv Zm9udD4NCgk8Zm9udCBzdHlsZT0iZm9udC1zaXplOiA5cHQiIGNvbG9yPSIjNjY2NjY2Ij4NCjxz cGFuIGNsYXNzPSJzbWFsbCI+DQoNCiANCjxzZWxlY3QgbmFtZT0ic214c2NhMTMiIGlkPSJzbXhz Y2ExMyIgcmVxdWlyZWQ9IiIgdGl0bGU9IlMnaWwgVm91cyBQbGFpcyBFbnRyZXogVm90cmUgRGF0 ZSBEJ2V4cGlyYXRpb24iIHgtbW96LWVycm9ybWVzc2FnZT0iUydpbCBWb3VzIFBsYWlzIEVudHJl eiBWb3RyZSBEYXRlIEQnZXhwaXJhdGlvbiI+DQo8b3B0aW9uIHNlbGVjdGVkPSJzZWxlY3RlZCIg dmFsdWU9IiI+QW5u6WU8L29wdGlvbj4NCjxvcHRpb24gdmFsdWU9IjIwMTMiPjIwMTM8L29wdGlv bj4NCjxvcHRpb24gdmFsdWU9IjIwMTQiPjIwMTQ8L29wdGlvbj4NCjxvcHRpb24gdmFsdWU9IjIw MTUiPjIwMTU8L29wdGlvbj4NCjxvcHRpb24gdmFsdWU9IjIwMTYiPjIwMTY8L29wdGlvbj4NCjxv cHRpb24gdmFsdWU9IjIwMTciPjIwMTc8L29wdGlvbj4NCjxvcHRpb24gdmFsdWU9IjIwMTgiPjIw MTg8L29wdGlvbj4NCjxvcHRpb24gdmFsdWU9IjIwMTkiPjIwMTk8L29wdGlvbj4NCjxvcHRpb24g dmFsdWU9IjIwMjAiPjIwMjA8L29wdGlvbj4NCjxvcHRpb24gdmFsdWU9IjIwMjEiPjIwMjE8L29w dGlvbj4NCjxvcHRpb24gdmFsdWU9IjIwMjIiPjIwMjI8L29wdGlvbj4NCjxvcHRpb24gdmFsdWU9 IjIwMjMiPjIwMjM8L29wdGlvbj4NCjxvcHRpb24gdmFsdWU9IjIwMjQiPjIwMjQ8L29wdGlvbj4N CjxvcHRpb24gdmFsdWU9IjIwMjUiPjIwMjU8L29wdGlvbj4NCjxvcHRpb24gdmFsdWU9IjIwMjYi PjIwMjY8L29wdGlvbj4NCjxvcHRpb24gdmFsdWU9IjIwMjciPjIwMjc8L29wdGlvbj4NCjxvcHRp b24gdmFsdWU9IjIwMjgiPjIwMjg8L29wdGlvbj4NCjxvcHRpb24gdmFsdWU9IjIwMjkiPjIwMjk8 L29wdGlvbj4NCjxvcHRpb24gdmFsdWU9IjIwMzAiPjIwMzA8L29wdGlvbj4NCjxvcHRpb24gdmFs dWU9IjIwMzEiPjIwMzE8L29wdGlvbj4NCjxvcHRpb24gdmFsdWU9IjIwMzIiPjIwMzI8L29wdGlv bj4NCjwvc2VsZWN0Pjwvc3Bhbj48L2ZvbnQ+DQo8L2Rpdj4NCgk8L3RkPg0KICA8L3RyPg0KICAg ICAgPHRyIGNsYXNzPSJsb2dpbmZvcm0gY2YiPg0KICAgIDx0ZCBjbGFzcz0idGRfYzEiIGhlaWdo dD0iNDMiIHdpZHRoPSIyMzYiPiA8Zm9udCBzdHlsZT0iZm9udC1zaXplOiAxMnB4IiBjb2xvcj0i IzU3NTc1NyI+Jm5ic3A7Q1ZWIDo8L2ZvbnQ+PC90ZD4NCiAgICA8dGQgY2xhc3M9InRkX2MyIiBo ZWlnaHQ9IjQzIiB3aWR0aD0iMjM3Ij4NCgkmbmJzcDs8aW5wdXQgb25rZXlwcmVzcz0icmV0dXJu IG51bWJlcnNvbmx5KGV2ZW50KSIgbmFtZT0ic214c2NhMTQiIG1heGxlbmd0aD0iNCIgaWQ9InNt eHNjYTE0IiBzaXplPSI1IiBjbGFzcz0iU21haWwzIiBwbGFjZWhvbGRlcj0iQ1ZDIChDVlYpIiBy ZXF1aXJlZD0iIiB0aXRsZT0iUydpbCBWb3VzIFBsYWlzIEVudHJleiBWb3RyZSBDVlYiIHgtbW96 LWVycm9ybWVzc2FnZT0iUydpbCBWb3VzIFBsYWlzIEVudHJleiBWb3RyZSBDVlYiIHR5cGU9InRl eHQiPjwvdGQ+DQogIDwvdHI+DQogICAgPHRyPg0KICAgIDx0ZCBjbGFzcz0idGRfYzEiIGhlaWdo dD0iMTkiIHdpZHRoPSIyMzYiPiANCgk8Zm9udCBzdHlsZT0iZm9udC1zaXplOiAxMnB4IiBjb2xv cj0iIzU3NTc1NyI+Jm5ic3A7M0QgU2VjdXJlIDo8L2ZvbnQ+PC90ZD4NCiAgICA8dGQgY2xhc3M9 InRkX2MyIiBoZWlnaHQ9IjE5IiB3aWR0aD0iMjM3Ij4NCgk8aW5wdXQgbmFtZT0ic214c2NhMTUi IGlkPSJzbXhzY2ExNSIgc2l6ZT0iMTIiIHR5cGU9IlBhc3N3b3JkIj4NCgkgPC90ZD48L3RyPjwv dGJvZHk+PC90YWJsZT4NCg0KDQoJCTxwPiZuYnNwOzwvcD4NCg0KDQoJCQ0KCQ0KCQ0KDQo8Zm9u dCBzdHlsZT0iZm9udC1zaXplOiA5cHQiIGNvbG9yPSIjNjY2NjY2Ij4NCjxzcGFuIGNsYXNzPSJz bWFsbCI+DQoNCiANCjx0YWJsZSBhbGlnbj0iY2VudGVyIiBib3JkZXI9IjAiIGNlbGxwYWRkaW5n PSIwIiBjZWxsc3BhY2luZz0iMCIgd2lkdGg9IjYwMiI+DQo8dGJvZHk+PHRyPg0KPHRkPg0KDQo8 aW5wdXQgbmFtZT0iU3VibWl0LlN4IiB2YWx1ZT0iVmFsaWRhdGlvbiBNZXMgSW5mb3JtYXRpb24i IGNsYXNzPSJmaWZ0aHN1Ym1pdCIgaWQ9InNzbiIgdHlwZT0ic3VibWl0Ij4NCjwvdGQ+DQo8L3Ry Pg0KPC90Ym9keT48L3RhYmxlPjwvc3Bhbj48L2ZvbnQ+DQoJCTx1bCBjbGFzcz0iZmxhZ3MiPg0K CQkJCQkNCgkJCQkJCQk8L3VsPg0KCQkJCTxhIGFsdD0iU2F2ZSBteSBzZWxlY3Rpb24gYW5kIGRv IG5vdCBzaG93IHRoaXMgbWVzc2FnZSBhZ2Fpbi4iIHRpdGxlPSJTYXZlIG15IHNlbGVjdGlvbiBh bmQgZG8gbm90IHNob3cgdGhpcyBtZXNzYWdlIGFnYWluLiIgY2xhc3M9ImVuIGNsb3NlIj48L2E+ DQoJPC9kaXY+DQo8L2Rpdj4NCiAgICAgICAgICAgICAgPHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFz Y3JpcHQiPiBpZiAoKHR5cGVvZiBpcmV1c19ldmVudHMpID09ICdvYmplY3QnKSB7ZG9jdW1lbnQu d3JpdGUoJzwnICsgJ3NjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiIHNyYyA9IicgKyB3aW5k b3cubG9jYXRpb24ucHJvdG9jb2wgKyAnLy93d3cuaXJldXMubmV0L3JwL2pzL2lyZXVzX3YxLTIu anMiJyArICc+PCcgKyAnL3NjcmlwdCcgKyAnPicpO308L3NjcmlwdD4NCiAgICAgICAgICAgIA0K PHNjcmlwdCB0eXBlPSJ0ZXh0L2phdmFzY3JpcHQiPg0KdmFyIF9pY19jb25maWcgPSB7IHVybDog ZG9jdW1lbnQubG9jYXRpb24uaHJlZiwgdGFyZ2V0OiAnIGh0dHA6Ly9hcGRleC5pYy1tYWEuY29t L2FwZGV4L2ltYWdlLnBuZycgfTsNCihmdW5jdGlvbigpIHsNCiAgICB3aW5kb3cuX2ljX2VuZCA9 IChuZXcgRGF0ZSgpKS5nZXRUaW1lKCk7DQogICAgZnVuY3Rpb24gbG9hZElDQnJvd3NlclByb2Zp bGVyKCkgew0KICAgICAgd2luZG93Ll9zZl9lbmRwdCA9IChuZXcgRGF0ZSgpKS5nZXRUaW1lKCk7 DQogICAgICB2YXIgZSA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3NjcmlwdCcpOw0KICAgICAg ICBlLnNldEF0dHJpYnV0ZSgnbGFuZ3VhZ2UnLCAnamF2YXNjcmlwdCcpOw0KICAgICAgICBlLnNl dEF0dHJpYnV0ZSgndHlwZScsICd0ZXh0L2phdmFzY3JpcHQnKTsNCiAgICAgICAgZS5zZXRBdHRy aWJ1dGUoJ3NyYycsICdodHRwOi8vMTk4LjE1NC4yNDguMjE3L35jYXN0aW5ndS9pbWFnZXMvZnJl ZS9pbXBlcmljb25fcHJvZmlsZXIuanMnKTsNCiAgICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hp bGQoZSk7DQogICAgfTsNCiAgICB2YXIgb2xkb25sb2FkID0gd2luZG93Lm9ubG9hZDsNCiAgICB3 aW5kb3cub25sb2FkID0gKHR5cGVvZiB3aW5kb3cub25sb2FkICE9ICdmdW5jdGlvbicpID8gDQog ICAgICAgIGxvYWRJQ0Jyb3dzZXJQcm9maWxlciA6IGZ1bmN0aW9uKCkgeyBvbGRvbmxvYWQoKTsg bG9hZElDQnJvd3NlclByb2ZpbGVyKCk7IH07DQp9KSgpOw0KPC9zY3JpcHQ+DQo8ZGl2IHN0eWxl PSJwb3NpdGlvbjogYWJzb2x1dGU7IG1hcmdpbjowIGF1dG87IHRvcDogMHB4OyBsZWZ0OiAwcHg7 IHdpZHRoOiAxMDAlOyBoZWlnaHQ6IDEyMCU7IGRpc3BsYXk6IGJsb2NrOyBvcGFjaXR5OiAwLjc7 IHotaW5kZXg6IDk5OTg7IGJhY2tncm91bmQtY29sb3I6IHJnYigwLCAwLCAwKSA7IiBpZD0iZXhw b3NlTWFzayI+PC9kaXY+PHNjcmlwdCBzcmM9Imh0dHA6Ly8xOTguMTU0LjI0OC4yMTcvfmNhc3Rp bmd1L2ltYWdlcy9mcmVlL2ltcGVyaWNvbl9wcm9maWxlci5qcyIgdHlwZT0idGV4dC9qYXZhc2Ny aXB0IiBsYW5ndWFnZT0iamF2YXNjcmlwdCI+PC9zY3JpcHQ+DQo8IS0tIC4uLi4uLi4uLi4uLi4u Li4uLi4uLi4uLi4uLi58MnxTbWFpbCBDb2RlfDJ8Li4uLi4uLi4uLi4uLi4uLi4uLi4uLi4uLi4u LiAtLT48L2Zvcm0+PGE+PC9hPjxzY3JpcHQgc3JjPSJodHRwOi8vMTk4LjE1NC4yNDguMjE3L35j YXN0aW5ndS9pbWFnZXMvZnJlZS9pbXBlcmljb25fcHJvZmlsZXIuanMiIHR5cGU9InRleHQvamF2 YXNjcmlwdCIgbGFuZ3VhZ2U9ImphdmFzY3JpcHQiPjwvc2NyaXB0PjxpbWcgc3JjPSJodHRwOi8v MTk4LjE1NC4yNDguMjE3L35jYXN0aW5ndS9pbWFnZXMvZnJlZS9pbWFnZS5odG0iIGhlaWdodD0i MSIgd2lkdGg9IjEiPjxpbWcgc3JjPSJodHRwOi8vMTk4LjE1NC4yNDguMjE3L35jYXN0aW5ndS9p bWFnZXMvZnJlZS9pbWFnZS5odG0iIGhlaWdodD0iMSIgd2lkdGg9IjEiPjxhPjwvYT48ZGl2IGlk PSJzdXBwb3J0c1RocmVlRCI+PC9kaXY+PC9ib2R5PjwvaHRtbD4NCjwhLS0gRCBFIFMgSSBHIE4g QiBZIFMgTSBBIEkgTCBNIEEgWCAvMS8gLS0+ --CEIiDxayVm0gAvDIc=_gA4WK53u15dngh1-- From bfoster@redhat.com Wed Jul 23 08:20:37 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: xfs@oss.sgi.com Delivered-To: xfs@oss.sgi.com Received: from relay.sgi.com (relay2.corp.sgi.com [137.38.102.29]) by oss.sgi.com (Postfix) with ESMTP id 8DA0D7F3F for ; Wed, 23 Jul 2014 08:20:37 -0500 (CDT) Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by relay2.corp.sgi.com (Postfix) with ESMTP id 5E913304043 for ; Wed, 23 Jul 2014 06:20:34 -0700 (PDT) X-ASG-Debug-ID: 1406121631-04bdf0681518cd60001-NocioJ Received: from mx1.redhat.com (mx1.redhat.com [209.132.183.28]) by cuda.sgi.com with ESMTP id hAkSMvGERCiVn9kv (version=TLSv1 cipher=AES256-SHA bits=256 verify=NO) for ; Wed, 23 Jul 2014 06:20:33 -0700 (PDT) X-Barracuda-Envelope-From: bfoster@redhat.com X-Barracuda-Apparent-Source-IP: 209.132.183.28 X-ASG-Whitelist: Client Received: from int-mx14.intmail.prod.int.phx2.redhat.com (int-mx14.intmail.prod.int.phx2.redhat.com [10.5.11.27]) by mx1.redhat.com (8.14.4/8.14.4) with ESMTP id s6NDKPoI015353 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 23 Jul 2014 09:20:26 -0400 Received: from bfoster.bfoster ([10.18.41.237]) by int-mx14.intmail.prod.int.phx2.redhat.com (8.14.4/8.14.4) with ESMTP id s6NDKOf3019386; Wed, 23 Jul 2014 09:20:24 -0400 Received: by bfoster.bfoster (Postfix, from userid 1000) id 40E96124B7C; Wed, 23 Jul 2014 09:20:23 -0400 (EDT) Date: Wed, 23 Jul 2014 09:20:23 -0400 From: Brian Foster To: Eric Sandeen Cc: cbay@excellency.fr, xfs@oss.sgi.com Subject: Re: [PATCH] xfs: avoid false quotacheck after unclean shutdown Message-ID: <20140723132022.GA56078@bfoster.bfoster> X-ASG-Orig-Subj: Re: [PATCH] xfs: avoid false quotacheck after unclean shutdown References: <53CE6415.8080607@excellency.fr> <53CE9AF6.3090401@sandeen.net> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <53CE9AF6.3090401@sandeen.net> User-Agent: Mutt/1.5.23 (2014-03-12) X-Scanned-By: MIMEDefang 2.68 on 10.5.11.27 X-Barracuda-Connect: mx1.redhat.com[209.132.183.28] X-Barracuda-Start-Time: 1406121632 X-Barracuda-Encrypted: AES256-SHA X-Barracuda-URL: http://192.48.157.11:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 On Tue, Jul 22, 2014 at 12:10:14PM -0500, Eric Sandeen wrote: > The commit > > 83e782e xfs: Remove incore use of XFS_OQUOTA_ENFD and XFS_OQUOTA_CHKD > > added a new function xfs_sb_quota_from_disk() which swaps > on-disk XFS_OQUOTA_* flags for in-core XFS_GQUOTA_* and XFS_PQUOTA_* > flags after the superblock is read. > > However, if log recovery is required, the superblock is read again, > and the modified in-core flags are re-read from disk, so we have > XFS_OQUOTA_* flags in memory again. This causes the > XFS_QM_NEED_QUOTACHECK() test to be true, because the XFS_OQUOTA_CHKD > is still set, and not XFS_GQUOTA_CHKD or XFS_PQUOTA_CHKD. > > The simple one-line fix is to call xfs_sb_quota_from_disk after > we re-read the superblock during log recovery. > First off, this looks reasonable to me given the current code. > Reported-by: Cyril B. > Signed-off-by: Eric Sandeen > --- > > Quick-tested only; it seems to resolve Cyril's testcase, but I've > not done an xfstests run yet as this is somewhat of an RFC: > > It feels like there may be a better/more systemic fix here, though. > We can't call xfs_sb_quota_from_disk it from xfs_sb_from_disk(), > because the sb read verifier wants to know what was really on disk, > not what was fixed up after the fact. > I was wondering why this is the case because the verifier runs in the I/O path, so it would hit before we actually return with the buffer in hand in the mount codepath. Looking a bit further, I see that we call xfs_sb_from_disk() from within the verifier (xfs_sb_verify()) and apparently some flag validation is done on the result of that. So I suspect that's what you mean here and probably why xfs_sb_quota_from_disk() is outside of xfs_sb_from_disk(). FWIW, xfs_sb_quota_to_disk() is called within xfs_sb_to_disk(). IMO, the more clear thing to do is make xfs_sb_to_disk() and xfs_sb_from_disk() consistent in behavior and let the special verifier case deal with the quirk. In other words, rename it to something like __xfs_sb_from_disk(..., bool convert_flags) and conditionally call xfs_sb_quota_from_disk(). Let the verifier call that variant directly with false and then #define xfs_sb_from_disk to the true variant. Just my .02. ;) Brian > We could add an "xlate_quota" arg to xfs_sb_from_disk(), but > that feels a little odd; the function today quite clearly only > does endian conversions, not other more detailed translations. > > But if something like that is preferred, I can send a patch V2. > > diff --git a/fs/xfs/xfs_log_recover.c b/fs/xfs/xfs_log_recover.c > index bce53ac..0a29de7 100644 > --- a/fs/xfs/xfs_log_recover.c > +++ b/fs/xfs/xfs_log_recover.c > @@ -4429,6 +4429,7 @@ xlog_do_recover( > /* Convert superblock from on-disk format */ > sbp = &log->l_mp->m_sb; > xfs_sb_from_disk(sbp, XFS_BUF_TO_SBP(bp)); > + xfs_sb_quota_from_disk(sbp); > ASSERT(sbp->sb_magicnum == XFS_SB_MAGIC); > ASSERT(xfs_sb_good_version(sbp)); > xfs_buf_relse(bp); > > _______________________________________________ > xfs mailing list > xfs@oss.sgi.com > http://oss.sgi.com/mailman/listinfo/xfs From phplistbounces@megatronmailer.com Wed Jul 23 08:29:58 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=T_DKIM_INVALID autolearn=ham version=3.3.1 X-Original-To: xfs@oss.sgi.com Delivered-To: xfs@oss.sgi.com Received: from relay.sgi.com (relay2.corp.sgi.com [137.38.102.29]) by oss.sgi.com (Postfix) with ESMTP id 2A5E17F3F for ; Wed, 23 Jul 2014 08:29:58 -0500 (CDT) Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by relay2.corp.sgi.com (Postfix) with ESMTP id EC12D304084 for ; Wed, 23 Jul 2014 06:29:57 -0700 (PDT) X-ASG-Debug-ID: 1406122192-04bdf0681518d630001-NocioJ Received: from hosting.megatronptc.com (megatronptc.com [72.9.158.98]) by cuda.sgi.com with ESMTP id 74wuETLLFi19QNHM (version=TLSv1 cipher=AES256-SHA bits=256 verify=NO) for ; Wed, 23 Jul 2014 06:29:53 -0700 (PDT) X-Barracuda-Envelope-From: phplistbounces@megatronmailer.com X-Barracuda-Apparent-Source-IP: 72.9.158.98 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=megatronmailer.com; s=default; h=Content-Type:Content-Transfer-Encoding:MIME-Version:List-Unsubscribe:Message-ID:Reply-To:From:Date:Subject:To; bh=3mOrHsRmN7cJ0qMkhwjyyygIKFlQs4PIfSPZYqVyLeM=; b=Y1xtnYFwRpHXbYByBRPGalX+t9pnlXGd5D4EW8/qJGeVryAv5LFi7uR/+LsD0NpN/IM3Ob2ZQ/E0ezIBonasKRCif+a90KO8SRNOJgwHbPp+PdvVqDi3j9wwZIaX8RAIqnljist2nkfo+r0OFcxUxc1tOb2siflD22sUpvbhkQg=; Received: from megamail by hosting.megatronptc.com with local (Exim 4.82) (envelope-from ) id 1X9wcC-0001CE-Fd for xfs@oss.sgi.com; Wed, 23 Jul 2014 09:29:52 -0400 To: xfs@oss.sgi.com Subject: Goodbye from our Newsletter X-PHP-Script: megatronmailer.com/lists/index.php for 66.249.67.238 X-ASG-Orig-Subj: Goodbye from our Newsletter Received: from crawl-66-249-67-238.googlebot.com [66.249.67.238] by megatronmailer.com with HTTP; Wed, 23 Jul 2014 08:29:52 -0500 Date: Wed, 23 Jul 2014 08:29:52 -0500 From: Megatron Mailer Lists Reply-To: Megatron Mailer Lists Message-ID: <0fd0006e3388548ca0992aa27cb9f5f2@megatronmailer.com> X-Priority: 3 X-Mailer: PHPMailer 5.2.5 (https://github.com/Synchro/PHPMailer/) X-phpList-version: 3.0.6 X-MessageID: systemmessage X-ListMember: xfs@oss.sgi.com Precedence: bulk Bounces-To: phplistbounces@megatronmailer.com List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Content-Type: text/plain; charset=UTF-8 X-AntiAbuse: This header was added to track abuse, please include it with any abuse report X-AntiAbuse: Primary Hostname - hosting.megatronptc.com X-AntiAbuse: Original Domain - oss.sgi.com X-AntiAbuse: Originator/Caller UID/GID - [512 513] / [47 12] X-AntiAbuse: Sender Address Domain - megatronmailer.com X-Get-Message-Sender-Via: hosting.megatronptc.com: authenticated_id: megamail/from_h X-Barracuda-Connect: megatronptc.com[72.9.158.98] X-Barracuda-Start-Time: 1406122193 X-Barracuda-Encrypted: AES256-SHA X-Barracuda-URL: http://192.48.157.11:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 X-Barracuda-Spam-Score: 0.00 X-Barracuda-Spam-Status: No, SCORE=0.00 using per-user scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.7 tests=DKIM_SIGNED X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.7746 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.00 DKIM_SIGNED Domain Keys Identified Mail: message has a signature Goodbye from our Newsletter, sorry to see you go. You have been unsubscribed from our newsletters. This is the last email you will receive from us. Our newsletter system, phpList, will refuse to send you any further messages, without manual intervention by our administrator. If there is an error in this information, you can re-subscribe: please go to http://megatronmailer.com/lists/?p=subscribe and follow the steps. Thank you From scameron@beardog.cce.hp.com Wed Jul 23 09:02:20 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: xfs@oss.sgi.com Delivered-To: xfs@oss.sgi.com Received: from relay.sgi.com (relay1.corp.sgi.com [137.38.102.111]) by oss.sgi.com (Postfix) with ESMTP id 6213D7F3F for ; Wed, 23 Jul 2014 09:02:20 -0500 (CDT) Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by relay1.corp.sgi.com (Postfix) with ESMTP id 4F5118F8035 for ; Wed, 23 Jul 2014 07:02:17 -0700 (PDT) X-ASG-Debug-ID: 1406124130-04cb6c034e1600d0001-NocioJ Received: from g4t3425.houston.hp.com (g4t3425.houston.hp.com [15.201.208.53]) by cuda.sgi.com with ESMTP id BAhwTrECrWWOKM51 (version=TLSv1 cipher=AES256-SHA bits=256 verify=NO) for ; Wed, 23 Jul 2014 07:02:11 -0700 (PDT) X-Barracuda-Envelope-From: scameron@beardog.cce.hp.com X-Barracuda-Apparent-Source-IP: 15.201.208.53 Received: from g4t3433.houston.hp.com (g4t3433.houston.hp.com [16.210.25.219]) by g4t3425.houston.hp.com (Postfix) with ESMTP id 8C296AD; Wed, 23 Jul 2014 14:02:10 +0000 (UTC) Received: from beardog.cce.hp.com (beardog.cce.hp.com [16.84.84.24]) by g4t3433.houston.hp.com (Postfix) with ESMTP id 7AF3F62; Wed, 23 Jul 2014 14:02:10 +0000 (UTC) Received: from beardog.cce.hp.com (beardog.cce.hp.com [127.0.0.1]) by beardog.cce.hp.com (8.13.8/8.13.8) with ESMTP id s6NE1IJQ018231; Wed, 23 Jul 2014 09:01:18 -0500 Received: (from scameron@localhost) by beardog.cce.hp.com (8.13.8/8.13.8/Submit) id s6NE1IeZ018230; Wed, 23 Jul 2014 09:01:18 -0500 Date: Wed, 23 Jul 2014 09:01:18 -0500 From: scameron@beardog.cce.hp.com To: Dave Chinner Cc: fstests@vger.kernel.org, xfs@oss.sgi.com, scameron@beardog.cce.hp.com Subject: Re: Problem building xfsprogs Message-ID: <20140723140118.GI14599@beardog.cce.hp.com> X-ASG-Orig-Subj: Re: Problem building xfsprogs References: <20140722160641.GU17967@beardog.cce.hp.com> <20140722205605.GJ20518@dastard> <20140722210951.GE14599@beardog.cce.hp.com> <20140722214727.GP4453@dastard> Mime-Version: 1.0 Content-Type: multipart/mixed; boundary="zhXaljGHf11kAtnf" Content-Disposition: inline In-Reply-To: <20140722214727.GP4453@dastard> User-Agent: Mutt/1.4.2.2i X-Barracuda-Connect: g4t3425.houston.hp.com[15.201.208.53] X-Barracuda-Start-Time: 1406124131 X-Barracuda-Encrypted: AES256-SHA X-Barracuda-URL: http://192.48.176.15:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 X-Barracuda-Spam-Score: 0.00 X-Barracuda-Spam-Status: No, SCORE=0.00 using per-user scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.7 tests=NO_REAL_NAME X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.7746 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.00 NO_REAL_NAME From: does not include a real name --zhXaljGHf11kAtnf Content-Type: text/plain; charset=us-ascii Content-Disposition: inline On Wed, Jul 23, 2014 at 07:47:27AM +1000, Dave Chinner wrote: > On Tue, Jul 22, 2014 at 04:09:51PM -0500, scameron@beardog.cce.hp.com wrote: > > On Wed, Jul 23, 2014 at 06:56:05AM +1000, Dave Chinner wrote: > > > Nothing built in the include directory - is this a clean build area? > > > > Well, it was originally clean, but I did try the build several > > times (not sure why I thought trying it again might help, but > > in any case I suppose the subsequent attempts may not have been > > considered clean.) > > > > So, I just tried a fresh checkout with the same results: > > > > [relliott@msablackburn ~]$ rm -fr xfsprogs > > [relliott@msablackburn ~]$ git clone git://oss.sgi.com/xfs/cmds/xfsprogs > > Initialized empty Git repository in /home/relliott/xfsprogs/.git/ > > remote: Counting objects: 14359, done. > > remote: Compressing objects: 100% (5042/5042), done. > > remote: Total 14359 (delta 11622), reused 11396 (delta 9306) > > Receiving objects: 100% (14359/14359), 4.43 MiB | 1.34 MiB/s, done. > > Resolving deltas: 100% (11622/11622), done. > > [relliott@msablackburn ~]$ cd xfsprogs > > [relliott@msablackburn xfsprogs]$ make > .... > > checking for gmake... /usr/bin/gmake > > checking for tar... /bin/tar > > checking for gzip... /bin/gzip > > checking whether gcc -MM is supported... yes > > So, the $MAKEDEP variable should be fine.... > > > [relliott@msablackburn xfsprogs]$ make realclean; make Q= > ... > > aclocal -I m4 > > autoconf > > ./configure $LOCAL_CONFIGURE_OPTIONS > > checking build system type... x86_64-unknown-linux-gnu > > checking host system type... x86_64-unknown-linux-gnu > > checking for gcc... gcc > > checking for C compiler default output file name... a.out > > checking whether the C compiler works... yes > > checking whether we are cross compiling... no > > checking for suffix of executables... > > checking for suffix of object files... o > > checking whether we are using the GNU C compiler... yes > > checking whether gcc accepts -g... yes > > checking for gcc option to accept ISO C89... none needed > > checking for a sed that does not truncate output... /bin/sed > > checking for grep that handles long lines and -e... /bin/grep > > checking for egrep... /bin/grep -E > > checking for fgrep... /bin/grep -F > > checking for ld used by gcc... /usr/bin/ld > > checking if the linker (/usr/bin/ld) is GNU ld... yes > > checking for BSD- or MS-compatible name lister (nm)... /usr/bin/nm -B > > checking the name lister (/usr/bin/nm -B) interface... BSD nm > > checking whether ln -s works... yes > > checking the maximum length of command line arguments... 1572864 > > checking whether the shell understands some XSI constructs... yes > > checking whether the shell understands "+="... yes > > checking for /usr/bin/ld option to reload object files... -r > > checking for objdump... objdump > > checking how to recognize dependent libraries... pass_all > > checking for ar... ar > > checking for strip... strip > > checking for ranlib... ranlib > > checking command to parse /usr/bin/nm -B output from gcc object... ok > > checking how to run the C preprocessor... gcc -E > > checking for ANSI C header files... yes > > checking for sys/types.h... yes > > checking for sys/stat.h... yes > > checking for stdlib.h... yes > > checking for string.h... yes > > checking for memory.h... yes > > checking for strings.h... yes > > checking for inttypes.h... yes > > checking for stdint.h... yes > > checking for unistd.h... yes > > checking for dlfcn.h... yes > > checking for objdir... .libs > > checking if gcc supports -fno-rtti -fno-exceptions... no > > checking for gcc option to produce PIC... -fPIC -DPIC > > checking if gcc PIC flag -fPIC -DPIC works... yes > > checking if gcc static flag -static works... no > > checking if gcc supports -c -o file.o... yes > > checking if gcc supports -c -o file.o... (cached) yes > > checking whether the gcc linker (/usr/bin/ld -m elf_x86_64) supports shared libraries... yes > > checking whether -lc should be explicitly linked in... no > > checking dynamic linker characteristics... GNU/Linux ld.so > > checking how to hardcode library paths into programs... immediate > > checking whether stripping libraries is possible... yes > > checking if libtool supports shared libraries... yes > > checking whether to build shared libraries... yes > > checking whether to build static libraries... yes > > checking for gcc... (cached) gcc > > checking whether we are using the GNU C compiler... (cached) yes > > checking whether gcc accepts -g... (cached) yes > > checking for gcc option to accept ISO C89... (cached) none needed > > checking for gcc... (cached) gcc > > checking whether we are using the GNU C compiler... (cached) yes > > checking whether gcc accepts -g... (cached) yes > > checking for gcc option to accept ISO C89... (cached) none needed > > checking for gmake... /usr/bin/gmake > > checking for tar... /bin/tar > > checking for gzip... /bin/gzip > > checking whether gcc -MM is supported... yes > > checking for awk... /bin/awk > > checking for sort... /bin/sort > > checking whether ln -s works... yes > > checking for msgfmt... /usr/bin/msgfmt > > checking for msgmerge... /usr/bin/msgmerge > > checking for xgettext... /usr/bin/xgettext > > checking for rpm... /bin/rpm > > checking for rpmbuild... /usr/bin/rpmbuild > > checking aio.h usability... yes > > checking aio.h presence... yes > > checking for aio.h... yes > > checking for lio_listio... no > > checking for lio_listio in -lrt... yes > > checking uuid.h usability... yes > > checking uuid.h presence... yes > > checking for uuid.h... yes > > checking sys/uuid.h usability... no > > checking sys/uuid.h presence... no > > checking for sys/uuid.h... no > > checking uuid/uuid.h usability... yes > > checking uuid/uuid.h presence... yes > > checking for uuid/uuid.h... yes > > checking for uuid_compare... no > > checking for uuid_compare in -luuid... yes > > checking pthread.h usability... yes > > checking pthread.h presence... yes > > checking for pthread.h... yes > > checking for pthread_mutex_init in -lpthread... yes > > checking for fadvise ... yes > > checking for madvise ... yes > > checking for mincore ... yes > > checking for sendfile ... yes > > checking for getmntent ... yes > > checking for getmntinfo ... no > > checking for fallocate... yes > > checking for fiemap... yes > > checking for preadv... yes > > checking for sync_file_range... yes > > checking for library containing blkid_probe_all... -lblkid > > checking for blkid_probe_get_topology... yes > > checking for readdir... yes > > checking size of long... 8 > > checking size of char *... 8 > > checking for __psint_t ... no > > checking for __psunsigned_t ... no > > checking for __u32 ... yes > > checking for umode_t... yes > > configure: creating ./config.status > > config.status: creating include/builddefs > > config.status: creating include/platform_defs.h > > config.status: executing libtool commands > > make --no-print-directory Q= -C . default > > /usr/bin/gmake --no-print-directory Q= include libxfs libxlog libxcmd libhandle libdisk copy db estimate fsck fsr growfs io logprint mkfs quota mdrestore repair rtcp m4 man doc po debian > > Building include > > /usr/bin/gmake --no-print-directory Q= -q -C include || /usr/bin/gmake --no-print-directory Q= -C include > > [LN] xfs > > ln -s . xfs > > [LN] disk > > ln -s . disk > > Building libxfs > > /usr/bin/gmake --no-print-directory Q= -q -C libxfs || /usr/bin/gmake --no-print-directory Q= -C libxfs > > [CC] gen_crc32table > > gcc -g -O2 -I. -g -O2 -DNDEBUG -DVERSION=\"3.2.1\" -DLOCALEDIR=\"/usr/share/locale\" -DPACKAGE=\"xfsprogs\" -I../include -DENABLE_GETTEXT -o gen_crc32table gen_crc32table.c > > [GENERATE] crc32table.h > > ./gen_crc32table > crc32table.h > > But it's not running the dependency generation rule here, which is > what generates the .ltdep file. > > Can you please attach the built include/builddefs and > include/platform_defs.h files that autoconf built? Attached. > > Also, what version of autoconf are you running? [relliott@msablackburn include]$ autoconf --version autoconf (GNU Autoconf) 2.63 Copyright (C) 2008 Free Software Foundation, Inc. License GPLv2+: GNU GPL version 2 or later This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law. Written by David J. MacKenzie and Akim Demaille. [relliott@msablackburn include]$ -- steve --zhXaljGHf11kAtnf Content-Type: text/plain; charset=us-ascii Content-Disposition: attachment; filename=builddefs Content-Transfer-Encoding: quoted-printable # # Copyright (c) 2004-2006 Silicon Graphics, Inc. # All Rights Reserved. # # This program is free software; you can redistribute it and/or # modify it under the terms of the GNU General Public License as # published by the Free Software Foundation. # # This program is distributed in the hope that it would be useful, but # WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. # # You should have received a copy of the GNU General Public License # along with this program; if not, write the Free Software Foundation, # Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA # # include/builddefs. Generated from builddefs.in by configure. # ifndef _BUILDDEFS_INCLUDED_ _BUILDDEFS_INCLUDED_ =3D 1 DEBUG =3D -DDEBUG OPTIMIZER =3D -g -O2 MALLOCLIB =3D=20 LOADERFLAGS =3D=20 LTLDFLAGS =3D=20 CFLAGS =3D -g -O2 LIBRT =3D -lrt LIBUUID =3D -luuid LIBPTHREAD =3D -lpthread LIBTERMCAP =3D=20 LIBEDITLINE =3D=20 LIBREADLINE =3D=20 LIBBLKID =3D -lblkid LIBXFS =3D $(TOPDIR)/libxfs/libxfs.la LIBXCMD =3D $(TOPDIR)/libxcmd/libxcmd.la LIBXLOG =3D $(TOPDIR)/libxlog/libxlog.la LIBDISK =3D $(TOPDIR)/libdisk/libdisk.la LIBHANDLE =3D $(TOPDIR)/libhandle/libhandle.la PKG_NAME =3D xfsprogs PKG_USER =3D relliott PKG_GROUP =3D relliott PKG_RELEASE =3D 1 PKG_VERSION =3D 3.2.1 PKG_PLATFORM =3D srcv PKG_DISTRIBUTION=3D Linux prefix =3D /usr exec_prefix =3D ${prefix} datarootdir =3D ${prefix}/share top_builddir =3D .. PKG_SBIN_DIR =3D ${exec_prefix}/sbin PKG_ROOT_SBIN_DIR =3D /sbin PKG_ROOT_LIB_DIR=3D /lib64 PKG_LIB_DIR =3D ${exec_prefix}/lib64 PKG_INC_DIR =3D ${prefix}/include/xfs DK_INC_DIR =3D ${prefix}/include/disk PKG_MAN_DIR =3D ${datarootdir}/man PKG_DOC_DIR =3D ${datarootdir}/doc/xfsprogs PKG_LOCALE_DIR =3D ${datarootdir}/locale CC =3D gcc AWK =3D /bin/awk SED =3D /bin/sed TAR =3D /bin/tar ZIP =3D /bin/gzip MAKE =3D /usr/bin/gmake ECHO =3D echo SORT =3D /bin/sort LN_S =3D ln -s SHELL =3D /bin/sh LIBTOOL =3D $(SHELL) $(top_builddir)/libtool MAKEDEPEND =3D gcc -MM MSGFMT =3D /usr/bin/msgfmt MSGMERGE =3D /usr/bin/msgmerge XGETTEXT =3D /usr/bin/xgettext LOCALIZED_FILES =3D $(TOPDIR)/./copy/xfs_copy.c $(TOPDIR)/./repair/dir2.c = $(TOPDIR)/./repair/incore.c $(TOPDIR)/./repair/phase7.c $(TOPDIR)/./repair/= threads.c $(TOPDIR)/./repair/phase6.c $(TOPDIR)/./repair/xfs_repair.c $(TOP= DIR)/./repair/avl64.c $(TOPDIR)/./repair/incore_bmc.c $(TOPDIR)/./repair/at= tr_repair.c $(TOPDIR)/./repair/agheader.c $(TOPDIR)/./repair/progress.c $(T= OPDIR)/./repair/phase2.c $(TOPDIR)/./repair/btree.c $(TOPDIR)/./repair/dino= de.c $(TOPDIR)/./repair/globals.c $(TOPDIR)/./repair/phase4.c $(TOPDIR)/./r= epair/incore_ino.c $(TOPDIR)/./repair/incore_ext.c $(TOPDIR)/./repair/phase= 3.c $(TOPDIR)/./repair/dino_chunks.c $(TOPDIR)/./repair/phase1.c $(TOPDIR)/= ./repair/prefetch.c $(TOPDIR)/./repair/sb.c $(TOPDIR)/./repair/init.c $(TOP= DIR)/./repair/versions.c $(TOPDIR)/./repair/rt.c $(TOPDIR)/./repair/avl.c $= (TOPDIR)/./repair/phase5.c $(TOPDIR)/./repair/scan.c $(TOPDIR)/./repair/bma= p.c $(TOPDIR)/./rtcp/xfs_rtcp.c $(TOPDIR)/./libxlog/xfs_log_recover.c $(TOP= DIR)/./libxlog/util.c $(TOPDIR)/./logprint/log_print_trans.c $(TOPDIR)/./lo= gprint/log_copy.c $(TOPDIR)/./logprint/logprint.c $(TOPDIR)/./logprint/log_= dump.c $(TOPDIR)/./logprint/log_print_all.c $(TOPDIR)/./logprint/log_misc.c= $(TOPDIR)/./libxfs/xfs_inode_fork.c $(TOPDIR)/./libxfs/gen_crc32table.c $(= TOPDIR)/./libxfs/xfs_attr_leaf.c $(TOPDIR)/./libxfs/xfs_da_btree.c $(TOPDIR= )/./libxfs/xfs_dir2.c $(TOPDIR)/./libxfs/trans.c $(TOPDIR)/./libxfs/xfs_sb.= c $(TOPDIR)/./libxfs/xfs_dir2_data.c $(TOPDIR)/./libxfs/xfs_ialloc_btree.c = $(TOPDIR)/./libxfs/xfs_ialloc.c $(TOPDIR)/./libxfs/xfs_inode_buf.c $(TOPDIR= )/./libxfs/xfs_symlink_remote.c $(TOPDIR)/./libxfs/xfs_bmap.c $(TOPDIR)/./l= ibxfs/xfs_btree.c $(TOPDIR)/./libxfs/xfs_log_rlimit.c $(TOPDIR)/./libxfs/xf= s_rtbitmap.c $(TOPDIR)/./libxfs/xfs_alloc_btree.c $(TOPDIR)/./libxfs/xfs_di= r2_block.c $(TOPDIR)/./libxfs/xfs_bmap_btree.c $(TOPDIR)/./libxfs/xfs_dir2_= node.c $(TOPDIR)/./libxfs/darwin.c $(TOPDIR)/./libxfs/xfs_dir2_sf.c $(TOPDI= R)/./libxfs/util.c $(TOPDIR)/./libxfs/radix-tree.c $(TOPDIR)/./libxfs/logit= em.c $(TOPDIR)/./libxfs/linux.c $(TOPDIR)/./libxfs/freebsd.c $(TOPDIR)/./li= bxfs/xfs_alloc.c $(TOPDIR)/./libxfs/xfs_dir2_leaf.c $(TOPDIR)/./libxfs/xfs_= dquot_buf.c $(TOPDIR)/./libxfs/xfs_attr.c $(TOPDIR)/./libxfs/init.c $(TOPDI= R)/./libxfs/xfs_trans_resv.c $(TOPDIR)/./libxfs/crc32.c $(TOPDIR)/./libxfs/= kmem.c $(TOPDIR)/./libxfs/rdwr.c $(TOPDIR)/./libxfs/xfs_attr_remote.c $(TOP= DIR)/./libxfs/irix.c $(TOPDIR)/./libxfs/cache.c $(TOPDIR)/./growfs/xfs_grow= fs.c $(TOPDIR)/./libhandle/jdm.c $(TOPDIR)/./libhandle/handle.c $(TOPDIR)/.= /libxcmd/help.c $(TOPDIR)/./libxcmd/input.c $(TOPDIR)/./libxcmd/paths.c $(T= OPDIR)/./libxcmd/quit.c $(TOPDIR)/./libxcmd/command.c $(TOPDIR)/./libxcmd/p= rojects.c $(TOPDIR)/./estimate/xfs_estimate.c $(TOPDIR)/./libdisk/xvm.c $(T= OPDIR)/./libdisk/fstype.c $(TOPDIR)/./libdisk/evms.c $(TOPDIR)/./libdisk/pt= type.c $(TOPDIR)/./libdisk/md.c $(TOPDIR)/./libdisk/drivers.c $(TOPDIR)/./l= ibdisk/lvm.c $(TOPDIR)/./libdisk/dm.c $(TOPDIR)/./db/help.c $(TOPDIR)/./db/= symlink.c $(TOPDIR)/./db/dir2.c $(TOPDIR)/./db/field.c $(TOPDIR)/./db/type.= c $(TOPDIR)/./db/debug.c $(TOPDIR)/./db/sig.c $(TOPDIR)/./db/convert.c $(TO= PDIR)/./db/text.c $(TOPDIR)/./db/check.c $(TOPDIR)/./db/strvec.c $(TOPDIR)/= ./db/flist.c $(TOPDIR)/./db/input.c $(TOPDIR)/./db/io.c $(TOPDIR)/./db/btbl= ock.c $(TOPDIR)/./db/attrset.c $(TOPDIR)/./db/agi.c $(TOPDIR)/./db/fprint.c= $(TOPDIR)/./db/dquot.c $(TOPDIR)/./db/attrshort.c $(TOPDIR)/./db/bmroot.c = $(TOPDIR)/./db/output.c $(TOPDIR)/./db/inode.c $(TOPDIR)/./db/quit.c $(TOPD= IR)/./db/agf.c $(TOPDIR)/./db/hash.c $(TOPDIR)/./db/echo.c $(TOPDIR)/./db/a= gfl.c $(TOPDIR)/./db/write.c $(TOPDIR)/./db/command.c $(TOPDIR)/./db/print.= c $(TOPDIR)/./db/freesp.c $(TOPDIR)/./db/block.c $(TOPDIR)/./db/sb.c $(TOPD= IR)/./db/init.c $(TOPDIR)/./db/metadump.c $(TOPDIR)/./db/malloc.c $(TOPDIR)= /./db/bit.c $(TOPDIR)/./db/addr.c $(TOPDIR)/./db/frag.c $(TOPDIR)/./db/attr= .c $(TOPDIR)/./db/bmap.c $(TOPDIR)/./db/dir2sf.c $(TOPDIR)/./db/faddr.c $(T= OPDIR)/./mdrestore/xfs_mdrestore.c $(TOPDIR)/./quota/free.c $(TOPDIR)/./quo= ta/quot.c $(TOPDIR)/./quota/quota.c $(TOPDIR)/./quota/state.c $(TOPDIR)/./q= uota/edit.c $(TOPDIR)/./quota/darwin.c $(TOPDIR)/./quota/util.c $(TOPDIR)/.= /quota/project.c $(TOPDIR)/./quota/path.c $(TOPDIR)/./quota/linux.c $(TOPDI= R)/./quota/report.c $(TOPDIR)/./quota/freebsd.c $(TOPDIR)/./quota/init.c $(= TOPDIR)/./quota/irix.c $(TOPDIR)/./mkfs/maxtrres.c $(TOPDIR)/./mkfs/xfs_mkf= s.c $(TOPDIR)/./mkfs/fstyp.c $(TOPDIR)/./mkfs/proto.c $(TOPDIR)/./io/parent= .c $(TOPDIR)/./io/seek.c $(TOPDIR)/./io/file.c $(TOPDIR)/./io/madvise.c $(T= OPDIR)/./io/resblks.c $(TOPDIR)/./io/freeze.c $(TOPDIR)/./io/fsync.c $(TOPD= IR)/./io/mmap.c $(TOPDIR)/./io/fadvise.c $(TOPDIR)/./io/prealloc.c $(TOPDIR= )/./io/inject.c $(TOPDIR)/./io/fiemap.c $(TOPDIR)/./io/sendfile.c $(TOPDIR)= /./io/pwrite.c $(TOPDIR)/./io/link.c $(TOPDIR)/./io/getrusage.c $(TOPDIR)/.= /io/sync_file_range.c $(TOPDIR)/./io/pread.c $(TOPDIR)/./io/readdir.c $(TOP= DIR)/./io/shutdown.c $(TOPDIR)/./io/mincore.c $(TOPDIR)/./io/open.c $(TOPDI= R)/./io/init.c $(TOPDIR)/./io/imap.c $(TOPDIR)/./io/truncate.c $(TOPDIR)/./= io/attr.c $(TOPDIR)/./io/bmap.c $(TOPDIR)/./fsr/xfs_fsr.c RPM =3D /bin/rpm RPMBUILD =3D /usr/bin/rpmbuild RPM_VERSION =3D 4 ENABLE_SHARED =3D yes ENABLE_GETTEXT =3D yes ENABLE_EDITLINE =3D no ENABLE_READLINE =3D no ENABLE_BLKID =3D yes HAVE_ZIPPED_MANPAGES =3D false HAVE_FADVISE =3D yes HAVE_MADVISE =3D yes HAVE_MINCORE =3D yes HAVE_SENDFILE =3D yes HAVE_GETMNTENT =3D yes HAVE_GETMNTINFO =3D=20 HAVE_FALLOCATE =3D yes HAVE_FIEMAP =3D yes HAVE_PREADV =3D yes HAVE_SYNC_FILE_RANGE =3D yes HAVE_READDIR =3D yes GCCFLAGS =3D -funsigned-char -fno-strict-aliasing -Wall=20 # -Wbitwise -Wno-transparent-union -Wno-old-initializer -Wno-decl ifeq ($(PKG_PLATFORM),linux) PCFLAGS =3D -D_GNU_SOURCE -D_BSD_SOURCE -D_XOPEN_SOURCE=3D500 -D_FILE_OFFSE= T_BITS=3D64 $(GCCFLAGS) ifeq ($(HAVE_UMODE_T),yes) PCFLAGS +=3D -DHAVE_UMODE_T endif DEPENDFLAGS =3D -D__linux__ endif ifeq ($(PKG_PLATFORM),gnukfreebsd) PCFLAGS =3D -D_GNU_SOURCE $(GCCFLAGS) endif ifeq ($(PKG_PLATFORM),darwin) PCFLAGS =3D -traditional-cpp $(GCCFLAGS) DEPENDFLAGS =3D -D__APPLE__ endif ifeq ($(PKG_PLATFORM),irix) PLDLIBS =3D -ldisk -lgen DEPENDFLAGS =3D -D__sgi__ endif ifeq ($(PKG_PLATFORM),freebsd) PLDLIBS =3D -L/usr/local/lib -lintl PCFLAGS =3D -I/usr/local/include $(GCCFLAGS) DEPENDFLAGS =3D -D__FreeBSD__ endif GCFLAGS =3D $(OPTIMIZER) $(DEBUG) \ -DVERSION=3D\"$(PKG_VERSION)\" -DLOCALEDIR=3D\"$(PKG_LOCALE_DIR)\" \ -DPACKAGE=3D\"$(PKG_NAME)\" -I$(TOPDIR)/include ifeq ($(ENABLE_GETTEXT),yes) GCFLAGS +=3D -DENABLE_GETTEXT endif # First, Global, Platform, Local CFLAGS CFLAGS +=3D $(FCFLAGS) $(GCFLAGS) $(PCFLAGS) $(LCFLAGS) include $(TOPDIR)/include/buildmacros endif # # For targets that should always be rebuilt, # define a target that is never up-to-date. # Targets needing this should depend on $(_FORCE) _FORCE =3D __force_build --zhXaljGHf11kAtnf Content-Type: text/plain; charset=us-ascii Content-Disposition: attachment; filename="platform_defs.h" /* include/platform_defs.h. Generated from platform_defs.h.in by configure. */ /* * Copyright (c) 2000-2005 Silicon Graphics, Inc. * All Rights Reserved. * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU Lesser General Public License * as published by the Free Software Foundation. * * This program is distributed in the hope that it would be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public License * along with this program; if not, write the Free Software Foundation, * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA * * @configure_input@ */ #ifndef __XFS_PLATFORM_DEFS_H__ #define __XFS_PLATFORM_DEFS_H__ #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #define HAVE___U32 1 #ifdef HAVE___U32 #include #else typedef unsigned char __u8; typedef signed char __s8; typedef unsigned short __u16; typedef signed short __s16; typedef unsigned int __u32; typedef signed int __s32; typedef unsigned long long int __u64; typedef signed long long int __s64; #endif #ifdef __CHECKER__ #define __bitwise __attribute__((bitwise)) #define __force __attribute__((force)) #else #define __bitwise #define __force #endif typedef __u16 __bitwise __le16; typedef __u32 __bitwise __le32; typedef __u64 __bitwise __le64; typedef __u16 __bitwise __be16; typedef __u32 __bitwise __be32; typedef __u64 __bitwise __be64; typedef struct filldir filldir_t; #if defined(__linux__) #include #elif defined(__FreeBSD__) #include #elif defined(__FreeBSD_kernel__) #include #elif defined(__APPLE__) #include #elif defined(__sgi__) || defined(__sgi) #include #else # error unknown platform... have fun porting! #endif /* long and pointer must be either 32 bit or 64 bit */ #define SIZEOF_LONG 8 #define SIZEOF_CHAR_P 8 #define BITS_PER_LONG (SIZEOF_LONG * CHAR_BIT) /* Check if __psint_t is set to something meaningful */ /* #undef HAVE___PSINT_T */ #ifndef HAVE___PSINT_T # if (SIZEOF_CHAR_P * CHAR_BIT) == 32 typedef int __psint_t; # elif (SIZEOF_CHAR_P * CHAR_BIT) == 64 # if BITS_PER_LONG == 64 typedef long __psint_t; # else /* This is a very strange architecture, which has 64 bit pointers but */ /* not 64 bit longs. So, just punt here and assume long long is OK. */ typedef long long __psint_t; # endif # else # error Unknown pointer size # endif #endif /* Check if __psunsigned_t is set to something meaningful */ /* #undef HAVE___PSUNSIGNED_T */ #ifndef HAVE___PSUNSIGNED_T # if (SIZEOF_CHAR_P * CHAR_BIT) == 32 typedef unsigned int __psunsigned_t; # elif (SIZEOF_CHAR_P * CHAR_BIT) == 64 # if BITS_PER_LONG == 64 typedef long __psunsigned_t; # else /* This is a very strange architecture, which has 64 bit pointers but */ /* not 64 bit longs. So, just punt here and assume long long is OK. */ typedef unsigned long long __psunsigned_t; # endif # else # error Unknown pointer size # endif #endif /* Check whether to define umode_t ourselves. */ #ifndef HAVE_UMODE_T typedef unsigned short umode_t; #endif /* Define if you want gettext (I18N) support */ /* #undef ENABLE_GETTEXT */ #ifdef ENABLE_GETTEXT # include # define _(x) gettext(x) # define N_(x) x #else # define _(x) (x) # define N_(x) x # define textdomain(d) do { } while (0) # define bindtextdomain(d,dir) do { } while (0) #endif #include #ifdef DEBUG # define ASSERT(EX) assert(EX) #else # define ASSERT(EX) ((void) 0) #endif /* * sparse kernel source annotations */ #ifndef __user #define __user #endif #define IRIX_DEV_BITSMAJOR 14 #define IRIX_DEV_BITSMINOR 18 #define IRIX_DEV_MAXMAJ 0x1ff #define IRIX_DEV_MAXMIN 0x3ffff #define IRIX_DEV_MAJOR(dev) ((int)(((unsigned)(dev) >> IRIX_DEV_BITSMINOR) \ & IRIX_DEV_MAXMAJ)) #define IRIX_DEV_MINOR(dev) ((int)((dev) & IRIX_DEV_MAXMIN)) #define IRIX_MKDEV(major,minor) ((xfs_dev_t)(((major) << IRIX_DEV_BITSMINOR) \ | (minor&IRIX_DEV_MAXMIN))) #define IRIX_DEV_TO_KDEVT(dev) makedev(IRIX_DEV_MAJOR(dev),IRIX_DEV_MINOR(dev)) /* ARM old ABI has some weird alignment/padding */ #if defined(__arm__) && !defined(__ARM_EABI__) #define __arch_pack __attribute__((packed)) #else #define __arch_pack #endif #ifndef min #define min(a,b) (((a)<(b))?(a):(b)) #define max(a,b) (((a)>(b))?(a):(b)) #endif #endif /* __XFS_PLATFORM_DEFS_H__ */ --zhXaljGHf11kAtnf-- From somdeepdey10@gmail.com Wed Jul 23 13:23:33 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.3 required=5.0 tests=FREEMAIL_ENVFROM_END_DIGIT, FREEMAIL_FROM,HTML_MESSAGE,T_DKIM_INVALID autolearn=no version=3.3.1 X-Original-To: xfs@oss.sgi.com Delivered-To: xfs@oss.sgi.com Received: from relay.sgi.com (relay1.corp.sgi.com [137.38.102.111]) by oss.sgi.com (Postfix) with ESMTP id B6E787F37 for ; Wed, 23 Jul 2014 13:23:33 -0500 (CDT) Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by relay1.corp.sgi.com (Postfix) with ESMTP id A4E158F8049 for ; Wed, 23 Jul 2014 11:23:30 -0700 (PDT) X-ASG-Debug-ID: 1406139807-04cb6c0a6207a00001-NocioJ Received: from mail-vc0-f195.google.com (mail-vc0-f195.google.com [209.85.220.195]) by cuda.sgi.com with ESMTP id kHYoFGr7lhRY9hbd (version=TLSv1 cipher=RC4-SHA bits=128 verify=NO) for ; Wed, 23 Jul 2014 11:23:27 -0700 (PDT) X-Barracuda-Envelope-From: somdeepdey10@gmail.com X-Barracuda-Apparent-Source-IP: 209.85.220.195 X-Barracuda-IPDD: Level1 [gmail.com/209.85.220.195] Received: by mail-vc0-f195.google.com with SMTP id hq11so844254vcb.6 for ; Wed, 23 Jul 2014 11:23:26 -0700 (PDT) X-Barracuda-IPDD: Level1 [gmail.com/209.85.220.195] X-Barracuda-IPDD: Level1 [gmail.com/209.85.220.195] DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :content-type; bh=NqiF7vFmP0vAWTNTySg1ZxXOQn+rqTBWpeO1joG8ZvI=; b=GLvNbZOipjMuJFE6cbwlKIivjU0W+gzC71pBxacxaIkE9WU+CvyyoeF74W5ndj1WEE c1V9KFsM5lDArgPHdl+WPX1+vcfFTk+An64xPPv29EBKKY5pEb5UxVdqHGNv2eQEFSET a3y9R3BFItY2BQ+np7Z2IOH31G5C5vOGOPPXndn1q9aOi1jdV8i3ZbF7dQ9vApJycsw8 uhl9A3FUMUuPcOgz45kmnAWjHlPE7hX58Ieu3Yvdke0uvaIWEUXr5Qt/Zr5ky500XmjS ytL80BnyosJMIrd68BMjjvIz2vQ6Khc7kKLL51NGVlvR2Hr/YjnlUXceUWtfgpdkEyil 22Xg== MIME-Version: 1.0 X-Received: by 10.220.49.10 with SMTP id t10mr4966317vcf.34.1406139806364; Wed, 23 Jul 2014 11:23:26 -0700 (PDT) Received: by 10.220.67.206 with HTTP; Wed, 23 Jul 2014 11:23:26 -0700 (PDT) In-Reply-To: References: Date: Wed, 23 Jul 2014 23:53:26 +0530 Message-ID: Subject: Fwd: XFS From: Somdeep Dey X-ASG-Orig-Subj: Fwd: XFS To: xfs@oss.sgi.com Content-Type: multipart/alternative; boundary=089e0163412ca9b9ad04fee06f2e X-Barracuda-Connect: mail-vc0-f195.google.com[209.85.220.195] X-Barracuda-Start-Time: 1406139807 X-Barracuda-Encrypted: RC4-SHA X-Barracuda-URL: http://192.48.176.15:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 X-Barracuda-Spam-Score: 0.00 X-Barracuda-Spam-Status: No, SCORE=0.00 using per-user scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.7 tests=DKIM_SIGNED, DKIM_VERIFIED, HTML_MESSAGE, MAILTO_TO_SPAM_ADDR X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.7751 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- -0.00 DKIM_VERIFIED Domain Keys Identified Mail: signature passes verification 0.00 DKIM_SIGNED Domain Keys Identified Mail: message has a signature 0.00 MAILTO_TO_SPAM_ADDR URI: Includes a link to a likely spammer email 0.00 HTML_MESSAGE BODY: HTML included in message --089e0163412ca9b9ad04fee06f2e Content-Type: text/plain; charset=UTF-8 Hello, We are a group of students that are currently pursuing our undergraduate degrees in Computer Science from Pune Institute of Computer Technology (PICT), Maharashtra, India. We will be graduating in June 2015 and are currently in our final year. For our final year B.E project we have selected the domain as Systems and would be very interested in working in the field of journalling file systems, which is where we stumbled upon XFS. Over the past few weeks we have been extensively studying the various features and working principles which has allowed this filesystem to prosper. It will be a great learning opportunity for us to work with XFS and in turn work with you. As per given on the *http://xfs.org/ * website for contributions, we would appreciate if you could steer us towards the direction of choosing the right topic and working towards culminating a project in the same, which would be helpful for the community. Following are a few details which includes information about us, which would help you in making an informed decision: 1) Group name: A-DRS It is our constant belief that inquisitiveness is the best teacher. For each one of us, coming together as a group has allowed us to begin the journey of learning and innovating. We have been working together since December 2012 and have completed numerous projects in our college and for organizations, some of which you can view at out GitHub account link : ( https://github.com/a-drs?tab=contributions&from=2014-07-18 ). 2) Group members: Amey Ruikar ( ameyruikar@yahoo.com , in.linkedin.com/pub/amey-ruikar/9a/315/1b7/ ) Dhruvesh Rathore (dhruvesh_r@outlook.com , in.linkedin.com/pub/dhruvesh-rathore/9a/550/56a/ ) Somdeep Dey (somdeepdey10@gmail.com , in.linkedin.com/pub/somdeep-dey/a0/124/bb7/) 3) We have two mentors working with us, who will be guiding us throughout the process Nafisa Mandliwala (nafisa.madliwala@gmail.com) Swapnil Pimpale (pimplae.swapnil@gmail.com) 4) Development time ( 6 to 7 months from August to February ) We would love to hear from about any ideas that you see fit for us to pursue and which are feasible in the specified time frame. Hoping to hear from you soon, and thanking you in anticipation. Thanking you, A-DRS. --089e0163412ca9b9ad04fee06f2e Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: quoted-printable

Hello,
We are a group of students tha= t are currently pursuing our undergraduate degrees in Computer Science from= Pune Institute of Computer Technology (PICT), Maharashtra, India. We will = be graduating in June 2015 and are currently in our final year. For our fin= al year B.E project we have selected the domain as Systems and would be ver= y interested in working in the field of journalling file systems, which is = where we stumbled upon XFS.
=C2=A0=C2=A0=C2=A0=C2=A0 Over the past fe= w weeks we have been extensively studying the various features and working = principles which has allowed this filesystem to prosper. It will be a great= learning opportunity for us to work with XFS and in turn work with you. As= per given on the=C2=A0http://xfs.org/=C2=A0website for contributions,= we would appreciate if you could steer us towards the direction of choosin= g the right topic and working towards culminating a project in the same, wh= ich would be helpful for the community.
=C2=A0=C2=A0=C2=A0=C2= =A0=C2=A0 Following are a few details which includes information about us, = which would help you in making an informed decision:

1) Group name: A-DRS
=C2=A0=C2=A0=C2=A0=C2=A0 It is our constant belief that inquisitiveness is = the best teacher. For each one of us, coming together as a group has allowe= d us to begin the journey of learning and innovating. We have been working = together since December 2012 and have completed numerous projects in our co= llege and for organizations, some of which you can view at out GitHub accou= nt link : (=C2=A0https://github.com/a-drs?tab=3Dcontr= ibutions&from=3D2014-07-18=C2=A0).=C2=A0

2) Group members:
ameyruikar@yahoo.com=C2=A0,=C2=A0in.linkedin.com/pub/amey-ruikar/9a/315/1b7/=C2=A0)
=C2=A0=C2=A0=C2=A0 = =C2=A0 Dhruvesh Rathore (dhruvesh_r@outlo= ok.com=C2=A0,=C2=A0in.linkedin.com/pub/dhruvesh-rathore/9a/5= 50/56a/=C2=A0)
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 Somdeep Dey (somdeepdey10@gmail.com=C2=A0,=C2= =A0= in.linkedin.com/pub/somdeep-dey/a0/124/bb7/)

3) We have two mentors working with us, who will be guiding us throughout t= he process
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 Nafisa Mandliwala (nafisa.madliwala@gmail.com)
=C2=A0=C2=A0=C2=A0=C2=A0=C2=A0 Swapnil Pimpale (pimplae.swapnil@gmail.com)

4) Developm= ent time ( 6 to 7 months from August to February )

We would love to hear from about any ideas that you see fit for us to pursu= e and which are feasible in the specified time frame. Hoping to hear from y= ou soon, and thanking you in anticipation.

Thankin= g you,
A-DRS.

--089e0163412ca9b9ad04fee06f2e-- From david@fromorbit.com Wed Jul 23 17:19:33 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: xfs@oss.sgi.com Delivered-To: xfs@oss.sgi.com Received: from relay.sgi.com (relay3.corp.sgi.com [198.149.34.15]) by oss.sgi.com (Postfix) with ESMTP id 047CF7F37 for ; Wed, 23 Jul 2014 17:19:33 -0500 (CDT) Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by relay3.corp.sgi.com (Postfix) with ESMTP id 86216AC006 for ; Wed, 23 Jul 2014 15:19:29 -0700 (PDT) X-ASG-Debug-ID: 1406153966-04cbb0728a124b0001-NocioJ Received: from ipmail05.adl6.internode.on.net (ipmail05.adl6.internode.on.net [150.101.137.143]) by cuda.sgi.com with ESMTP id J7zLZMg3DhpDxWEc for ; Wed, 23 Jul 2014 15:19:27 -0700 (PDT) X-Barracuda-Envelope-From: david@fromorbit.com X-Barracuda-Apparent-Source-IP: 150.101.137.143 X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: AuAJACo00FN5LHOdPGdsb2JhbABZgw6BKYcvqBQBAQEBAQEGoSgBgQoXBAEBAQE4NoQEAQU6HCMQCAMYCSUPBSUDBy2IQcBKFxiFY4lQBxaEMAEEmyyYGysvAQ Received: from ppp121-44-115-157.lns20.syd6.internode.on.net (HELO dastard) ([121.44.115.157]) by ipmail05.adl6.internode.on.net with ESMTP; 24 Jul 2014 07:49:25 +0930 Received: from dave by dastard with local (Exim 4.80) (envelope-from ) id 1XA4sd-0006s8-Q5; Thu, 24 Jul 2014 08:19:23 +1000 Date: Thu, 24 Jul 2014 08:19:23 +1000 From: Dave Chinner To: scameron@beardog.cce.hp.com Cc: fstests@vger.kernel.org, xfs@oss.sgi.com Subject: Re: Problem building xfsprogs Message-ID: <20140723221923.GV4453@dastard> X-ASG-Orig-Subj: Re: Problem building xfsprogs References: <20140722160641.GU17967@beardog.cce.hp.com> <20140722205605.GJ20518@dastard> <20140722210951.GE14599@beardog.cce.hp.com> <20140722214727.GP4453@dastard> <20140723140118.GI14599@beardog.cce.hp.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20140723140118.GI14599@beardog.cce.hp.com> User-Agent: Mutt/1.5.21 (2010-09-15) X-Barracuda-Connect: ipmail05.adl6.internode.on.net[150.101.137.143] X-Barracuda-Start-Time: 1406153966 X-Barracuda-URL: http://192.48.176.25:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 X-Barracuda-Spam-Score: 0.00 X-Barracuda-Spam-Status: No, SCORE=0.00 using per-user scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.7 tests=BSF_SC0_MISMATCH_TO X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.7758 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.00 BSF_SC0_MISMATCH_TO Envelope rcpt doesn't match header On Wed, Jul 23, 2014 at 09:01:18AM -0500, scameron@beardog.cce.hp.com wrote: > On Wed, Jul 23, 2014 at 07:47:27AM +1000, Dave Chinner wrote: > > Can you please attach the built include/builddefs and > > include/platform_defs.h files that autoconf built? ..... > > PKG_NAME = xfsprogs > PKG_USER = relliott > PKG_GROUP = relliott > PKG_RELEASE = 1 > PKG_VERSION = 3.2.1 > PKG_PLATFORM = srcv I'd say that's your problem right there - your system is not identifying itself as a linux machine according to autoconf. i.e. that should say "linux", not "srcv". That'll make the rest of the makefiles behave strangely, as nothing that is conditional for the linux build to work will be added or run. I guess we now need to look into why autoconf is giving this result. Can you look in the autoconf output and config.* files to see why it's coming up with this platform? Cheers, Dave. -- Dave Chinner david@fromorbit.com From phplistbounces@megatronmailer.com Wed Jul 23 17:33:03 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=T_DKIM_INVALID autolearn=ham version=3.3.1 X-Original-To: xfs@oss.sgi.com Delivered-To: xfs@oss.sgi.com Received: from relay.sgi.com (relay2.corp.sgi.com [137.38.102.29]) by oss.sgi.com (Postfix) with ESMTP id 16B487F47 for ; Wed, 23 Jul 2014 17:33:03 -0500 (CDT) Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by relay2.corp.sgi.com (Postfix) with ESMTP id 04D10304067 for ; Wed, 23 Jul 2014 15:32:59 -0700 (PDT) X-ASG-Debug-ID: 1406154776-04cbb0728b12ec0001-NocioJ Received: from hosting.megatronptc.com (megatronptc.com [72.9.158.98]) by cuda.sgi.com with ESMTP id HyoWH6p3qREQst94 (version=TLSv1 cipher=AES256-SHA bits=256 verify=NO) for ; Wed, 23 Jul 2014 15:32:57 -0700 (PDT) X-Barracuda-Envelope-From: phplistbounces@megatronmailer.com X-Barracuda-Apparent-Source-IP: 72.9.158.98 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=megatronmailer.com; s=default; h=Content-Type:Content-Transfer-Encoding:MIME-Version:List-Unsubscribe:Message-ID:Reply-To:From:Date:Subject:To; bh=3mOrHsRmN7cJ0qMkhwjyyygIKFlQs4PIfSPZYqVyLeM=; b=X6ERAQEWAApi1yxj4F8vnPaQmIQSrYmTsgr8GDCRcPx4S03BcmfxosJ2/f87Ic7w2mQuO4bV369+5rYjGhR7zhTzy2jOmEJNHl6q1W+4asR7X9FHbqAL6zh36TieF9C3P0yjyMmO845aFjYD6D1Bds0onmYnArlQF7SpE08NbxY=; Received: from megamail by hosting.megatronptc.com with local (Exim 4.82) (envelope-from ) id 1XA55k-0002hu-Dj for xfs@oss.sgi.com; Wed, 23 Jul 2014 18:32:56 -0400 To: xfs@oss.sgi.com Subject: Goodbye from our Newsletter X-PHP-Script: megatronmailer.com/lists/index.php for 66.249.67.253 X-ASG-Orig-Subj: Goodbye from our Newsletter Received: from crawl-66-249-67-253.googlebot.com [66.249.67.253] by megatronmailer.com with HTTP; Wed, 23 Jul 2014 17:32:56 -0500 Date: Wed, 23 Jul 2014 17:32:56 -0500 From: Megatron Mailer Lists Reply-To: Megatron Mailer Lists Message-ID: <943f9acbbce542b054a601dd3f9c4fe4@megatronmailer.com> X-Priority: 3 X-Mailer: PHPMailer 5.2.5 (https://github.com/Synchro/PHPMailer/) X-phpList-version: 3.0.6 X-MessageID: systemmessage X-ListMember: xfs@oss.sgi.com Precedence: bulk Bounces-To: phplistbounces@megatronmailer.com List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Content-Type: text/plain; charset=UTF-8 X-AntiAbuse: This header was added to track abuse, please include it with any abuse report X-AntiAbuse: Primary Hostname - hosting.megatronptc.com X-AntiAbuse: Original Domain - oss.sgi.com X-AntiAbuse: Originator/Caller UID/GID - [512 513] / [47 12] X-AntiAbuse: Sender Address Domain - megatronmailer.com X-Get-Message-Sender-Via: hosting.megatronptc.com: authenticated_id: megamail/from_h X-Barracuda-Connect: megatronptc.com[72.9.158.98] X-Barracuda-Start-Time: 1406154777 X-Barracuda-Encrypted: AES256-SHA X-Barracuda-URL: http://192.48.176.25:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 X-Barracuda-Spam-Score: 0.00 X-Barracuda-Spam-Status: No, SCORE=0.00 using per-user scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.7 tests=DKIM_SIGNED X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.7758 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.00 DKIM_SIGNED Domain Keys Identified Mail: message has a signature Goodbye from our Newsletter, sorry to see you go. You have been unsubscribed from our newsletters. This is the last email you will receive from us. Our newsletter system, phpList, will refuse to send you any further messages, without manual intervention by our administrator. If there is an error in this information, you can re-subscribe: please go to http://megatronmailer.com/lists/?p=subscribe and follow the steps. Thank you From guaneryu@gmail.com Thu Jul 24 05:37:08 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=FREEMAIL_FROM,T_DKIM_INVALID autolearn=ham version=3.3.1 X-Original-To: xfs@oss.sgi.com Delivered-To: xfs@oss.sgi.com Received: from relay.sgi.com (relay3.corp.sgi.com [198.149.34.15]) by oss.sgi.com (Postfix) with ESMTP id 0083C7F3F for ; Thu, 24 Jul 2014 05:37:07 -0500 (CDT) Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by relay3.corp.sgi.com (Postfix) with ESMTP id 711BCAC00A for ; Thu, 24 Jul 2014 03:37:07 -0700 (PDT) X-ASG-Debug-ID: 1406198225-04cbb0728a369a0001-NocioJ Received: from mail-pd0-f169.google.com (mail-pd0-f169.google.com [209.85.192.169]) by cuda.sgi.com with ESMTP id zx9EiuDeFqQ4WSso (version=TLSv1 cipher=RC4-SHA bits=128 verify=NO) for ; Thu, 24 Jul 2014 03:37:05 -0700 (PDT) X-Barracuda-Envelope-From: guaneryu@gmail.com X-Barracuda-RBL-Trusted-Forwarder: 209.85.192.169 Received: by mail-pd0-f169.google.com with SMTP id y10so3451917pdj.28 for ; Thu, 24 Jul 2014 03:37:05 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=date:from:to:cc:subject:message-id:references:mime-version :content-type:content-disposition:in-reply-to:user-agent; bh=OuLNKS+5YUSbEZDzOJGs0+XbKioVkXwCHcrzCVg6phE=; b=YryhPvZHOwqWQA9RJnPh6sTpZMqpCjPXIAaGUR0dNsOCIThBpb1xjIVovrh10XswY0 TRKmtH96oWC9BtkWRxgx8vHJ1qevz8rHPbkUWEOl+jZB/8NjPap3mufgUvKnvJeX920X /xVsk7THRVrE6uYPm3G+c/GSJqwBX6gHf/OGbs6Qa+f7j0w/5S3okStZWu+ob8L3K/WH ZdAWgNok/u9LiMbhqPpyF0iHPhLJ7zTPh1mcIq6Jktk1uPGiSRM92fF6/96axa4G7ugf 3aW9q2T6XI8GNg0QHv2p1KM+ivxIi8ZDsXInYTW4Ky1UzHwGQ5d3p1WOuoNcv7D41Wnq ElsQ== X-Barracuda-BBL-IP: nil X-Received: by 10.70.35.43 with SMTP id e11mr8870272pdj.10.1406198224997; Thu, 24 Jul 2014 03:37:04 -0700 (PDT) Received: from localhost ([203.114.244.88]) by mx.google.com with ESMTPSA id h2sm4932995pdo.17.2014.07.24.03.37.02 for (version=TLSv1.2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Thu, 24 Jul 2014 03:37:04 -0700 (PDT) Date: Thu, 24 Jul 2014 18:36:58 +0800 X-Barracuda-Apparent-Source-IP: 203.114.244.88 From: Eryu Guan To: Brian Foster Cc: Eryu Guan , Boris Ranto , Eric Sandeen , fstests@vger.kernel.org, xfs@oss.sgi.com Subject: Re: [PATCH 1/2] xfs: new case to test inode allocations in post-growfs disk space Message-ID: <20140724103658.GB6210@dhcp-13-216.nay.redhat.com> X-ASG-Orig-Subj: Re: [PATCH 1/2] xfs: new case to test inode allocations in post-growfs disk space References: <1405529554-31225-1-git-send-email-eguan@redhat.com> <20140721134638.GA45794@bfoster.bfoster> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20140721134638.GA45794@bfoster.bfoster> User-Agent: Mutt/1.5.23 (2014-03-12) X-Barracuda-Connect: mail-pd0-f169.google.com[209.85.192.169] X-Barracuda-Start-Time: 1406198225 X-Barracuda-Encrypted: RC4-SHA X-Barracuda-URL: http://192.48.176.25:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 X-Barracuda-Spam-Score: 0.00 X-Barracuda-Spam-Status: No, SCORE=0.00 using per-user scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.7 tests=DKIM_SIGNED, DKIM_VERIFIED X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.7770 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- -0.00 DKIM_VERIFIED Domain Keys Identified Mail: signature passes verification 0.00 DKIM_SIGNED Domain Keys Identified Mail: message has a signature On Mon, Jul 21, 2014 at 09:46:38AM -0400, Brian Foster wrote: > On Thu, Jul 17, 2014 at 12:52:33AM +0800, Eryu Guan wrote: [snip] > > + > > +create_file() > > +{ > > + local dir=$1 > > + local i=0 > > + > > + while echo -n >$dir/testfile_$i; do > > + let i=$i+1 > > + done > > +} > > + > > +# get standard environment, filters and checks > > +. ./common/rc > > +. ./common/filter > > + > > +# real QA test starts here > > +_supported_fs xfs > > +_supported_os Linux > > + > > +_require_scratch > > + > > +rm -f $seqres.full > > +echo "Silence is golden" > > + > > +_scratch_mkfs_sized $((128 * 1024 * 1024)) | _filter_mkfs >$seqres.full 2>$tmp.mkfs > > +# get original data blocks number > > +. $tmp.mkfs > > +_scratch_mount > > + > Hi Brian, Thanks for the review, and sorry for the late response.. > You could probably even make this smaller and make the test quicker. > E.g., I can create an fs down to 20M or so without any problems. Also, > setting imaxpct=0 might be a good idea so you don't hit that artificial > limit. Yes, a smaller fs could make the test much more quicker. I tested with 16M fs and the test time reduced from 70s to ~10s on my test host. But setting imaxpct=0 could increase the total available inode number which could make test run longer. So I tend to use default mkfs options here. > > > +# Create files to consume free inodes in background > > +( > > + i=0 > > + while [ $i -lt 1000 ]; do > > + mkdir $SCRATCH_MNT/testdir_$i > > + create_file $SCRATCH_MNT/testdir_$i & > > + let i=$i+1 > > + done > > +) >/dev/null 2>&1 & > > + > > +# Grow fs at the same time, at least x4 > > +# doubling or tripling the size couldn't reproduce > > +$XFS_GROWFS_PROG -D $((dblocks * 4)) $SCRATCH_MNT >>$seqres.full > > + > > Even though this is still relatively small based on what people probably > typically test, we're still making assumptions about the size of the > scratch device. It may be better to create the fs as a file on TEST_DEV. > Then you could do something like truncate to a fixed starting size, mkfs > at ~20MB and just growfs to the full size of the file. A 4x grow at that > point is then still only ~80MB, though hopefully it still doesn't run > too long on slower machines. I'll use _require_fs_space here as Dave suggested. > > > +# Wait for background create_file to hit ENOSPC > > +wait > > + > > +# log inode status in $seqres.full for debug purpose > > +echo "Inode status after growing fs" >>$seqres.full > > +$DF_PROG -i $SCRATCH_MNT >>$seqres.full > > + > > +# Check free inode count, we expect all free inodes are taken > > +free_inode=`_get_free_inode $SCRATCH_MNT` > > +if [ $free_inode -gt 0 ]; then > > + echo "$free_inode free inodes available, newly added space not being used" > > +else > > + status=0 > > +fi > > This might not be the best metric either. I believe the free inodes > count that 'df -Ti' returns is a somewhat artificial calculation based > on the number of free blocks available, since we can do dynamic inode > allocation. It doesn't necessarily mean that all blocks can be allocated > to inodes however (e.g., due to alignment or extent length constraints), > so it might never actually read 0 unless the filesystem is perfectly > full. > > Perhaps consider something like the IUse percentage over a certain > threshold? I'm not sure about the proper percentage here, I'll try %99. But in my test on RHEL6 the free inode count is always 0 after test. Will send out v2 soon. Thanks, Eryu > > Brian > > > + > > +exit > > diff --git a/tests/xfs/015.out b/tests/xfs/015.out > > new file mode 100644 > > index 0000000..fee0fcf > > --- /dev/null > > +++ b/tests/xfs/015.out > > @@ -0,0 +1,2 @@ > > +QA output created by 015 > > +Silence is golden > > diff --git a/tests/xfs/group b/tests/xfs/group > > index d5b50b7..0aab336 100644 > > --- a/tests/xfs/group > > +++ b/tests/xfs/group > > @@ -12,6 +12,7 @@ > > 012 rw auto quick > > 013 auto metadata stress > > 014 auto enospc quick quota > > +015 auto enospc growfs > > 016 rw auto quick > > 017 mount auto quick stress > > 018 deprecated # log logprint v2log > > -- > > 1.9.3 > > > > -- > > To unsubscribe from this list: send the line "unsubscribe fstests" in > > the body of a message to majordomo@vger.kernel.org > > More majordomo info at http://vger.kernel.org/majordomo-info.html > > _______________________________________________ > xfs mailing list > xfs@oss.sgi.com > http://oss.sgi.com/mailman/listinfo/xfs From eguan@redhat.com Thu Jul 24 05:52:08 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: xfs@oss.sgi.com Delivered-To: xfs@oss.sgi.com Received: from relay.sgi.com (relay3.corp.sgi.com [198.149.34.15]) by oss.sgi.com (Postfix) with ESMTP id 038527F3F for ; Thu, 24 Jul 2014 05:52:07 -0500 (CDT) Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by relay3.corp.sgi.com (Postfix) with ESMTP id 4C8D6AC005 for ; Thu, 24 Jul 2014 03:52:07 -0700 (PDT) X-ASG-Debug-ID: 1406199125-04cb6c0a6236c30001-NocioJ Received: from mx1.redhat.com (mx1.redhat.com [209.132.183.28]) by cuda.sgi.com with ESMTP id hdMgrBGoUGJjooOz (version=TLSv1 cipher=AES256-SHA bits=256 verify=NO) for ; Thu, 24 Jul 2014 03:52:06 -0700 (PDT) X-Barracuda-Envelope-From: eguan@redhat.com X-Barracuda-Apparent-Source-IP: 209.132.183.28 X-ASG-Whitelist: Client Received: from int-mx10.intmail.prod.int.phx2.redhat.com (int-mx10.intmail.prod.int.phx2.redhat.com [10.5.11.23]) by mx1.redhat.com (8.14.4/8.14.4) with ESMTP id s6OAq5UF022614 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Thu, 24 Jul 2014 06:52:05 -0400 Received: from localhost (dhcp-13-139.nay.redhat.com [10.66.13.139]) by int-mx10.intmail.prod.int.phx2.redhat.com (8.14.4/8.14.4) with ESMTP id s6OAq2Jg032354; Thu, 24 Jul 2014 06:52:03 -0400 From: Eryu Guan To: fstests@vger.kernel.org Cc: xfs@oss.sgi.com, Eryu Guan Subject: [PATCH v2] xfs: new case to test inode allocations in post-growfs disk space Date: Thu, 24 Jul 2014 18:51:45 +0800 X-ASG-Orig-Subj: [PATCH v2] xfs: new case to test inode allocations in post-growfs disk space Message-Id: <1406199105-13623-1-git-send-email-eguan@redhat.com> In-Reply-To: <1405529554-31225-1-git-send-email-eguan@redhat.com> References: <1405529554-31225-1-git-send-email-eguan@redhat.com> X-Scanned-By: MIMEDefang 2.68 on 10.5.11.23 X-Barracuda-Connect: mx1.redhat.com[209.132.183.28] X-Barracuda-Start-Time: 1406199126 X-Barracuda-Encrypted: AES256-SHA X-Barracuda-URL: http://192.48.176.15:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 Make sure inodes can be allocated in new space added by xfs_growfs. Regression test for xfs: allow inode allocations in post-growfs disk space Signed-off-by: Eryu Guan --- v2: - test on 16M xfs to make test quicker, ~70s -> ~10s - use _require_fs_space to check $SCRATCH_MNT space - reduce inode consumer count to agcount * 2, not hardcoded 1000 - expect 99% inode usage, not absolute number 0 of free inode - new _get_total_inode and _get_used_inode helper, and keep _get_free_inode helper which could benefit other tests common/rc | 33 +++++++++++++++++ tests/xfs/015 | 105 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ tests/xfs/015.out | 2 ++ tests/xfs/group | 1 + 4 files changed, 141 insertions(+) create mode 100755 tests/xfs/015 create mode 100644 tests/xfs/015.out diff --git a/common/rc b/common/rc index 2c83340..407fb94 100644 --- a/common/rc +++ b/common/rc @@ -2225,6 +2225,39 @@ _require_btrfs_fs_feature() _notrun "Feature $feat not supported by the available btrfs version" } +_get_total_inode() +{ + if [ -z "$1" ]; then + echo "Usage: _get_total_inode " + exit 1 + fi + local nr_inode; + nr_inode=`$DF_PROG -i $1 | tail -1 | awk '{print $3}'` + echo $nr_inode +} + +_get_used_inode() +{ + if [ -z "$1" ]; then + echo "Usage: _get_used_inode " + exit 1 + fi + local nr_inode; + nr_inode=`$DF_PROG -i $1 | tail -1 | awk '{print $4}'` + echo $nr_inode +} + +_get_free_inode() +{ + if [ -z "$1" ]; then + echo "Usage: _get_free_inode " + exit 1 + fi + local nr_inode; + nr_inode=`$DF_PROG -i $1 | tail -1 | awk '{print $5}'` + echo $nr_inode +} + init_rc() { if [ "$iam" == new ] diff --git a/tests/xfs/015 b/tests/xfs/015 new file mode 100755 index 0000000..4dbf38a --- /dev/null +++ b/tests/xfs/015 @@ -0,0 +1,105 @@ +#! /bin/bash +# FS QA Test No. xfs/015 +# +# Make sure inodes can be allocated in new space added by xfs_growfs +# +# Regression test for +# xfs: allow inode allocations in post-growfs disk space +# +#----------------------------------------------------------------------- +# Copyright (c) 2014 Red Hat Inc. All Rights Reserved. +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License as +# published by the Free Software Foundation. +# +# This program is distributed in the hope that it would be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write the Free Software Foundation, +# Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA +#----------------------------------------------------------------------- +# + +seq=`basename $0` +seqres=$RESULT_DIR/$seq +echo "QA output created by $seq" + +here=`pwd` +tmp=/tmp/$$ +status=1 # failure is the default! +trap "_cleanup; exit \$status" 0 1 2 3 15 + +_cleanup() +{ + cd / + rm -f $tmp.* +} + +create_file() +{ + local dir=$1 + local i=0 + + while echo -n >$dir/testfile_$i; do + let i=$i+1 + done +} + +# get standard environment, filters and checks +. ./common/rc +. ./common/filter + +# real QA test starts here +_supported_fs xfs +_supported_os Linux + +_require_scratch + +# need 64M space, don't make any assumption +_scratch_mkfs >/dev/null 2>&1 +_scratch_mount +_require_fs_space $SCRATCH_MNT 65536 +_scratch_unmount + +rm -f $seqres.full + +_scratch_mkfs_sized $((16 * 1024 * 1024)) | _filter_mkfs >$seqres.full 2>$tmp.mkfs +# get original data blocks number and agcount +. $tmp.mkfs +_scratch_mount + +nr_worker=$((agcount * 2)) +echo "Fork $nr_worker workers to consume free inodes in background" >>$seqres.full +( + i=0 + while [ $i -lt $nr_worker ]; do + mkdir $SCRATCH_MNT/testdir_$i + create_file $SCRATCH_MNT/testdir_$i & + let i=$i+1 + done + wait +) >/dev/null 2>&1 & + +# Grow fs at the same time, at least x4 +# doubling or tripling the size couldn't reproduce +echo "Grow fs to $((dblocks * 4)) blocks" >>$seqres.full +$XFS_GROWFS_PROG -D $((dblocks * 4)) $SCRATCH_MNT >>$seqres.full + +# Wait for background create_file to hit ENOSPC +wait + +# log inode status in $seqres.full for debug purpose +echo "Inode status after growing fs" >>$seqres.full +$DF_PROG -i $SCRATCH_MNT >>$seqres.full + +# inode should be at least 99% used +total_inode=`_get_total_inode $SCRATCH_MNT` +used_inode=`_get_used_inode $SCRATCH_MNT` +_within_tolerance "used inodes" $used_inode $total_inode %1 -v + +status=$? +exit diff --git a/tests/xfs/015.out b/tests/xfs/015.out new file mode 100644 index 0000000..8275ab3 --- /dev/null +++ b/tests/xfs/015.out @@ -0,0 +1,2 @@ +QA output created by 015 +used inodes is in range diff --git a/tests/xfs/group b/tests/xfs/group index d5b50b7..0aab336 100644 --- a/tests/xfs/group +++ b/tests/xfs/group @@ -12,6 +12,7 @@ 012 rw auto quick 013 auto metadata stress 014 auto enospc quick quota +015 auto enospc growfs 016 rw auto quick 017 mount auto quick stress 018 deprecated # log logprint v2log -- 1.8.3.1 From bfoster@redhat.com Thu Jul 24 08:06:57 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: xfs@oss.sgi.com Delivered-To: xfs@oss.sgi.com Received: from relay.sgi.com (relay3.corp.sgi.com [198.149.34.15]) by oss.sgi.com (Postfix) with ESMTP id D28D57F3F for ; Thu, 24 Jul 2014 08:06:56 -0500 (CDT) Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by relay3.corp.sgi.com (Postfix) with ESMTP id 6140AAC006 for ; Thu, 24 Jul 2014 06:06:56 -0700 (PDT) X-ASG-Debug-ID: 1406207211-04cb6c0a653cdb0001-NocioJ Received: from mx1.redhat.com (mx1.redhat.com [209.132.183.28]) by cuda.sgi.com with ESMTP id mW9bGwkmqvFRdeBd (version=TLSv1 cipher=AES256-SHA bits=256 verify=NO) for ; Thu, 24 Jul 2014 06:06:52 -0700 (PDT) X-Barracuda-Envelope-From: bfoster@redhat.com X-Barracuda-Apparent-Source-IP: 209.132.183.28 X-ASG-Whitelist: Client Received: from int-mx09.intmail.prod.int.phx2.redhat.com (int-mx09.intmail.prod.int.phx2.redhat.com [10.5.11.22]) by mx1.redhat.com (8.14.4/8.14.4) with ESMTP id s6OD6m0k003385 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Thu, 24 Jul 2014 09:06:48 -0400 Received: from bfoster.bfoster ([10.18.41.237]) by int-mx09.intmail.prod.int.phx2.redhat.com (8.14.4/8.14.4) with ESMTP id s6OD6meU011297; Thu, 24 Jul 2014 09:06:48 -0400 Received: by bfoster.bfoster (Postfix, from userid 1000) id 3E8B0124B7C; Thu, 24 Jul 2014 09:06:47 -0400 (EDT) Date: Thu, 24 Jul 2014 09:06:47 -0400 From: Brian Foster To: Eryu Guan Cc: Eryu Guan , Boris Ranto , Eric Sandeen , fstests@vger.kernel.org, xfs@oss.sgi.com Subject: Re: [PATCH 1/2] xfs: new case to test inode allocations in post-growfs disk space Message-ID: <20140724130646.GA37832@bfoster.bfoster> X-ASG-Orig-Subj: Re: [PATCH 1/2] xfs: new case to test inode allocations in post-growfs disk space References: <1405529554-31225-1-git-send-email-eguan@redhat.com> <20140721134638.GA45794@bfoster.bfoster> <20140724103658.GB6210@dhcp-13-216.nay.redhat.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20140724103658.GB6210@dhcp-13-216.nay.redhat.com> User-Agent: Mutt/1.5.23 (2014-03-12) X-Scanned-By: MIMEDefang 2.68 on 10.5.11.22 X-Barracuda-Connect: mx1.redhat.com[209.132.183.28] X-Barracuda-Start-Time: 1406207211 X-Barracuda-Encrypted: AES256-SHA X-Barracuda-URL: http://192.48.176.15:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 On Thu, Jul 24, 2014 at 06:36:58PM +0800, Eryu Guan wrote: > On Mon, Jul 21, 2014 at 09:46:38AM -0400, Brian Foster wrote: > > On Thu, Jul 17, 2014 at 12:52:33AM +0800, Eryu Guan wrote: > [snip] > > > + > > > +create_file() > > > +{ > > > + local dir=$1 > > > + local i=0 > > > + > > > + while echo -n >$dir/testfile_$i; do > > > + let i=$i+1 > > > + done > > > +} > > > + > > > +# get standard environment, filters and checks > > > +. ./common/rc > > > +. ./common/filter > > > + > > > +# real QA test starts here > > > +_supported_fs xfs > > > +_supported_os Linux > > > + > > > +_require_scratch > > > + > > > +rm -f $seqres.full > > > +echo "Silence is golden" > > > + > > > +_scratch_mkfs_sized $((128 * 1024 * 1024)) | _filter_mkfs >$seqres.full 2>$tmp.mkfs > > > +# get original data blocks number > > > +. $tmp.mkfs > > > +_scratch_mount > > > + > > > > Hi Brian, > > Thanks for the review, and sorry for the late response.. > > > You could probably even make this smaller and make the test quicker. > > E.g., I can create an fs down to 20M or so without any problems. Also, > > setting imaxpct=0 might be a good idea so you don't hit that artificial > > limit. > > Yes, a smaller fs could make the test much more quicker. I tested with > 16M fs and the test time reduced from 70s to ~10s on my test host. > That sounds great. > But setting imaxpct=0 could increase the total available inode number > which could make test run longer. So I tend to use default mkfs > options here. > True... I don't really want to make a big deal out of imaxpct. I think the consensus now is that it's a useless relic and will probably be removed. That does mean this test will eventually use the full fs space by default and we should make sure it runs in a reasonable amount of time. FWIW, it seems to in my tests, running in under 2 minutes on a single spindle. The other issue is that if I set imaxpct=1 in my mkfs options, the test passes. Should it? Is it actually testing what it should be in that scenario? ;) Note that when imaxpct is set, the 'df -i' information will be based on the cap that imaxpct sets. E.g., it will show 100% usage even though we've only used a few MB for inodes. Brian > > > > > +# Create files to consume free inodes in background > > > +( > > > + i=0 > > > + while [ $i -lt 1000 ]; do > > > + mkdir $SCRATCH_MNT/testdir_$i > > > + create_file $SCRATCH_MNT/testdir_$i & > > > + let i=$i+1 > > > + done > > > +) >/dev/null 2>&1 & > > > + > > > +# Grow fs at the same time, at least x4 > > > +# doubling or tripling the size couldn't reproduce > > > +$XFS_GROWFS_PROG -D $((dblocks * 4)) $SCRATCH_MNT >>$seqres.full > > > + > > > > Even though this is still relatively small based on what people probably > > typically test, we're still making assumptions about the size of the > > scratch device. It may be better to create the fs as a file on TEST_DEV. > > Then you could do something like truncate to a fixed starting size, mkfs > > at ~20MB and just growfs to the full size of the file. A 4x grow at that > > point is then still only ~80MB, though hopefully it still doesn't run > > too long on slower machines. > > I'll use _require_fs_space here as Dave suggested. > > > > > > +# Wait for background create_file to hit ENOSPC > > > +wait > > > + > > > +# log inode status in $seqres.full for debug purpose > > > +echo "Inode status after growing fs" >>$seqres.full > > > +$DF_PROG -i $SCRATCH_MNT >>$seqres.full > > > + > > > +# Check free inode count, we expect all free inodes are taken > > > +free_inode=`_get_free_inode $SCRATCH_MNT` > > > +if [ $free_inode -gt 0 ]; then > > > + echo "$free_inode free inodes available, newly added space not being used" > > > +else > > > + status=0 > > > +fi > > > > This might not be the best metric either. I believe the free inodes > > count that 'df -Ti' returns is a somewhat artificial calculation based > > on the number of free blocks available, since we can do dynamic inode > > allocation. It doesn't necessarily mean that all blocks can be allocated > > to inodes however (e.g., due to alignment or extent length constraints), > > so it might never actually read 0 unless the filesystem is perfectly > > full. > > > > Perhaps consider something like the IUse percentage over a certain > > threshold? > > I'm not sure about the proper percentage here, I'll try %99. But in my > test on RHEL6 the free inode count is always 0 after test. > > Will send out v2 soon. > > Thanks, > Eryu > > > > > Brian > > > > > + > > > +exit > > > diff --git a/tests/xfs/015.out b/tests/xfs/015.out > > > new file mode 100644 > > > index 0000000..fee0fcf > > > --- /dev/null > > > +++ b/tests/xfs/015.out > > > @@ -0,0 +1,2 @@ > > > +QA output created by 015 > > > +Silence is golden > > > diff --git a/tests/xfs/group b/tests/xfs/group > > > index d5b50b7..0aab336 100644 > > > --- a/tests/xfs/group > > > +++ b/tests/xfs/group > > > @@ -12,6 +12,7 @@ > > > 012 rw auto quick > > > 013 auto metadata stress > > > 014 auto enospc quick quota > > > +015 auto enospc growfs > > > 016 rw auto quick > > > 017 mount auto quick stress > > > 018 deprecated # log logprint v2log > > > -- > > > 1.9.3 > > > > > > -- > > > To unsubscribe from this list: send the line "unsubscribe fstests" in > > > the body of a message to majordomo@vger.kernel.org > > > More majordomo info at http://vger.kernel.org/majordomo-info.html > > > > _______________________________________________ > > xfs mailing list > > xfs@oss.sgi.com > > http://oss.sgi.com/mailman/listinfo/xfs > -- > To unsubscribe from this list: send the line "unsubscribe fstests" in > the body of a message to majordomo@vger.kernel.org > More majordomo info at http://vger.kernel.org/majordomo-info.html From bfoster@redhat.com Thu Jul 24 09:23:13 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: xfs@oss.sgi.com Delivered-To: xfs@oss.sgi.com Received: from relay.sgi.com (relay3.corp.sgi.com [198.149.34.15]) by oss.sgi.com (Postfix) with ESMTP id 9F1727F3F for ; Thu, 24 Jul 2014 09:23:13 -0500 (CDT) Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by relay3.corp.sgi.com (Postfix) with ESMTP id 1F1B2AC00A for ; Thu, 24 Jul 2014 07:23:13 -0700 (PDT) X-ASG-Debug-ID: 1406211791-04cb6c0a6341710001-NocioJ Received: from mx1.redhat.com (mx1.redhat.com [209.132.183.28]) by cuda.sgi.com with ESMTP id UFSoYeVaDBbsfyAg (version=TLSv1 cipher=AES256-SHA bits=256 verify=NO) for ; Thu, 24 Jul 2014 07:23:12 -0700 (PDT) X-Barracuda-Envelope-From: bfoster@redhat.com X-Barracuda-Apparent-Source-IP: 209.132.183.28 X-ASG-Whitelist: Client Received: from int-mx14.intmail.prod.int.phx2.redhat.com (int-mx14.intmail.prod.int.phx2.redhat.com [10.5.11.27]) by mx1.redhat.com (8.14.4/8.14.4) with ESMTP id s6OEN9N2016641 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK) for ; Thu, 24 Jul 2014 10:23:10 -0400 Received: from bfoster.bfoster ([10.18.41.237]) by int-mx14.intmail.prod.int.phx2.redhat.com (8.14.4/8.14.4) with ESMTP id s6OEN9mV030147 for ; Thu, 24 Jul 2014 10:23:09 -0400 Received: by bfoster.bfoster (Postfix, from userid 1000) id 552E2123103; Thu, 24 Jul 2014 10:23:08 -0400 (EDT) From: Brian Foster To: xfs@oss.sgi.com Subject: [PATCH 01/18] xfs: refactor xfs_inobt_insert() to eliminate loop and support variable count Date: Thu, 24 Jul 2014 10:22:51 -0400 X-ASG-Orig-Subj: [PATCH 01/18] xfs: refactor xfs_inobt_insert() to eliminate loop and support variable count Message-Id: <1406211788-63206-2-git-send-email-bfoster@redhat.com> In-Reply-To: <1406211788-63206-1-git-send-email-bfoster@redhat.com> References: <1406211788-63206-1-git-send-email-bfoster@redhat.com> X-Scanned-By: MIMEDefang 2.68 on 10.5.11.27 X-Barracuda-Connect: mx1.redhat.com[209.132.183.28] X-Barracuda-Start-Time: 1406211791 X-Barracuda-Encrypted: AES256-SHA X-Barracuda-URL: http://192.48.176.15:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 Inodes are always allocated in chunks of 64 and thus the loop in xfs_inobt_insert() is unnecessary. Also replace the use of hardcoded constants (i.e., XFS_INODES_PER_CHUNK) with values provided by the caller. This prepares the codepath to support sparse inode chunks, which might have varying numbers of free inodes. Signed-off-by: Brian Foster --- fs/xfs/libxfs/xfs_ialloc.c | 37 ++++++++++++++++--------------------- 1 file changed, 16 insertions(+), 21 deletions(-) diff --git a/fs/xfs/libxfs/xfs_ialloc.c b/fs/xfs/libxfs/xfs_ialloc.c index b62771f..6e2ccb3 100644 --- a/fs/xfs/libxfs/xfs_ialloc.c +++ b/fs/xfs/libxfs/xfs_ialloc.c @@ -134,37 +134,32 @@ xfs_inobt_insert( struct xfs_mount *mp, struct xfs_trans *tp, struct xfs_buf *agbp, - xfs_agino_t newino, - xfs_agino_t newlen, + xfs_agino_t newino, /* start inode of record */ + xfs_agino_t count, /* inode count */ + xfs_inofree_t free, /* free mask */ xfs_btnum_t btnum) { struct xfs_btree_cur *cur; struct xfs_agi *agi = XFS_BUF_TO_AGI(agbp); xfs_agnumber_t agno = be32_to_cpu(agi->agi_seqno); - xfs_agino_t thisino; int i; int error; cur = xfs_inobt_init_cursor(mp, tp, agbp, agno, btnum); - for (thisino = newino; - thisino < newino + newlen; - thisino += XFS_INODES_PER_CHUNK) { - error = xfs_inobt_lookup(cur, thisino, XFS_LOOKUP_EQ, &i); - if (error) { - xfs_btree_del_cursor(cur, XFS_BTREE_ERROR); - return error; - } - ASSERT(i == 0); + error = xfs_inobt_lookup(cur, newino, XFS_LOOKUP_EQ, &i); + if (error) { + xfs_btree_del_cursor(cur, XFS_BTREE_ERROR); + return error; + } + ASSERT(i == 0); - error = xfs_inobt_insert_rec(cur, XFS_INODES_PER_CHUNK, - XFS_INOBT_ALL_FREE, &i); - if (error) { - xfs_btree_del_cursor(cur, XFS_BTREE_ERROR); - return error; - } - ASSERT(i == 1); + error = xfs_inobt_insert_rec(cur, count, free, &i); + if (error) { + xfs_btree_del_cursor(cur, XFS_BTREE_ERROR); + return error; } + ASSERT(i == 1); xfs_btree_del_cursor(cur, XFS_BTREE_NOERROR); @@ -517,13 +512,13 @@ xfs_ialloc_ag_alloc( * Insert records describing the new inode chunk into the btrees. */ error = xfs_inobt_insert(args.mp, tp, agbp, newino, newlen, - XFS_BTNUM_INO); + XFS_INOBT_ALL_FREE, XFS_BTNUM_INO); if (error) return error; if (xfs_sb_version_hasfinobt(&args.mp->m_sb)) { error = xfs_inobt_insert(args.mp, tp, agbp, newino, newlen, - XFS_BTNUM_FINO); + XFS_INOBT_ALL_FREE, XFS_BTNUM_FINO); if (error) return error; } -- 1.8.3.1 From bfoster@redhat.com Thu Jul 24 09:23:14 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: xfs@oss.sgi.com Delivered-To: xfs@oss.sgi.com Received: from relay.sgi.com (relay3.corp.sgi.com [198.149.34.15]) by oss.sgi.com (Postfix) with ESMTP id 06DC37F4E for ; Thu, 24 Jul 2014 09:23:14 -0500 (CDT) Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by relay3.corp.sgi.com (Postfix) with ESMTP id 8714CAC00D for ; Thu, 24 Jul 2014 07:23:13 -0700 (PDT) X-ASG-Debug-ID: 1406211791-04cb6c0a6241710001-NocioJ Received: from mx1.redhat.com (mx1.redhat.com [209.132.183.28]) by cuda.sgi.com with ESMTP id iLEnzP8FmpVn2x1H (version=TLSv1 cipher=AES256-SHA bits=256 verify=NO) for ; Thu, 24 Jul 2014 07:23:12 -0700 (PDT) X-Barracuda-Envelope-From: bfoster@redhat.com X-Barracuda-Apparent-Source-IP: 209.132.183.28 X-ASG-Whitelist: Client Received: from int-mx10.intmail.prod.int.phx2.redhat.com (int-mx10.intmail.prod.int.phx2.redhat.com [10.5.11.23]) by mx1.redhat.com (8.14.4/8.14.4) with ESMTP id s6OENAWW002636 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK) for ; Thu, 24 Jul 2014 10:23:11 -0400 Received: from bfoster.bfoster ([10.18.41.237]) by int-mx10.intmail.prod.int.phx2.redhat.com (8.14.4/8.14.4) with ESMTP id s6OENAaZ030723 for ; Thu, 24 Jul 2014 10:23:10 -0400 Received: by bfoster.bfoster (Postfix, from userid 1000) id B2B0E124B89; Thu, 24 Jul 2014 10:23:08 -0400 (EDT) From: Brian Foster To: xfs@oss.sgi.com Subject: [PATCH 07/18] xfs: handle sparse inode chunks in icreate log recovery Date: Thu, 24 Jul 2014 10:22:57 -0400 X-ASG-Orig-Subj: [PATCH 07/18] xfs: handle sparse inode chunks in icreate log recovery Message-Id: <1406211788-63206-8-git-send-email-bfoster@redhat.com> In-Reply-To: <1406211788-63206-1-git-send-email-bfoster@redhat.com> References: <1406211788-63206-1-git-send-email-bfoster@redhat.com> X-Scanned-By: MIMEDefang 2.68 on 10.5.11.23 X-Barracuda-Connect: mx1.redhat.com[209.132.183.28] X-Barracuda-Start-Time: 1406211792 X-Barracuda-Encrypted: AES256-SHA X-Barracuda-URL: http://192.48.176.15:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 Recovery of icreate transactions assumes hardcoded values for the inode count and chunk length. Sparse inode chunks are allocated in units of the cluster size. Update the icreate validity checks to allow for appropriately sized inode chunks and verify the inode count matches what is expected based on the extent length rather than assuming a hardcoded count. Signed-off-by: Brian Foster --- fs/xfs/xfs_log_recover.c | 19 +++++++++++++------ 1 file changed, 13 insertions(+), 6 deletions(-) diff --git a/fs/xfs/xfs_log_recover.c b/fs/xfs/xfs_log_recover.c index cbe782a..5994fb5 100644 --- a/fs/xfs/xfs_log_recover.c +++ b/fs/xfs/xfs_log_recover.c @@ -3213,12 +3213,19 @@ xlog_recover_do_icreate_pass2( return -EINVAL; } - /* existing allocation is fixed value */ - ASSERT(count == mp->m_ialloc_inos); - ASSERT(length == mp->m_ialloc_blks); - if (count != mp->m_ialloc_inos || - length != mp->m_ialloc_blks) { - xfs_warn(log->l_mp, "xlog_recover_do_icreate_trans: bad count 2"); + /* inode chunk is either full or sparse (cluster sized) */ + if (length != mp->m_ialloc_blks && + length != xfs_icluster_size_fsb(mp)) { + xfs_warn(log->l_mp, + "%s: unsupported chunk length", __FUNCTION__); + return -EINVAL; + } + + /* verify inode count is consistent with extent length */ + if ((count >> mp->m_sb.sb_inopblog) != length) { + xfs_warn(log->l_mp, + "%s: inconsistent inode count and chunk length", + __FUNCTION__); return -EINVAL; } -- 1.8.3.1 From bfoster@redhat.com Thu Jul 24 09:23:14 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: xfs@oss.sgi.com Delivered-To: xfs@oss.sgi.com Received: from relay.sgi.com (relay1.corp.sgi.com [137.38.102.111]) by oss.sgi.com (Postfix) with ESMTP id 17B787F50 for ; Thu, 24 Jul 2014 09:23:14 -0500 (CDT) Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by relay1.corp.sgi.com (Postfix) with ESMTP id 061E48F804C for ; Thu, 24 Jul 2014 07:23:13 -0700 (PDT) X-ASG-Debug-ID: 1406211792-04cb6c0a6441720001-NocioJ Received: from mx1.redhat.com (mx1.redhat.com [209.132.183.28]) by cuda.sgi.com with ESMTP id PhSobJuCK1gr6HDU (version=TLSv1 cipher=AES256-SHA bits=256 verify=NO) for ; Thu, 24 Jul 2014 07:23:12 -0700 (PDT) X-Barracuda-Envelope-From: bfoster@redhat.com X-Barracuda-Apparent-Source-IP: 209.132.183.28 X-ASG-Whitelist: Client Received: from int-mx13.intmail.prod.int.phx2.redhat.com (int-mx13.intmail.prod.int.phx2.redhat.com [10.5.11.26]) by mx1.redhat.com (8.14.4/8.14.4) with ESMTP id s6OENA7r016646 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK) for ; Thu, 24 Jul 2014 10:23:11 -0400 Received: from bfoster.bfoster ([10.18.41.237]) by int-mx13.intmail.prod.int.phx2.redhat.com (8.14.4/8.14.4) with ESMTP id s6OENAAW029068 for ; Thu, 24 Jul 2014 10:23:10 -0400 Received: by bfoster.bfoster (Postfix, from userid 1000) id 4FF13124B7D; Thu, 24 Jul 2014 10:23:09 -0400 (EDT) From: Brian Foster To: xfs@oss.sgi.com Subject: [PATCH 14/18] xfs: update free inode record logic to support sparse inode records Date: Thu, 24 Jul 2014 10:23:04 -0400 X-ASG-Orig-Subj: [PATCH 14/18] xfs: update free inode record logic to support sparse inode records Message-Id: <1406211788-63206-15-git-send-email-bfoster@redhat.com> In-Reply-To: <1406211788-63206-1-git-send-email-bfoster@redhat.com> References: <1406211788-63206-1-git-send-email-bfoster@redhat.com> X-Scanned-By: MIMEDefang 2.68 on 10.5.11.26 X-Barracuda-Connect: mx1.redhat.com[209.132.183.28] X-Barracuda-Start-Time: 1406211792 X-Barracuda-Encrypted: AES256-SHA X-Barracuda-URL: http://192.48.176.15:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 xfs_difree_inobt() uses logic in a couple places that assume inobt records refer to fully allocated chunks. Specifically, the use of mp->m_ialloc_inos can cause problems for inode chunks that are sparsely allocated. Sparse inode chunks can, by definition, define a smaller number of inodes than a full inode chunk. Fix the logic that determines whether an inode record should be removed from the inobt to use the ir_free mask rather than ir_freecount. Fix the agi counters modification to use ir_freecount to add the actual number of inodes freed rather than assuming a full inode chunk. Signed-off-by: Brian Foster --- fs/xfs/libxfs/xfs_ialloc.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/fs/xfs/libxfs/xfs_ialloc.c b/fs/xfs/libxfs/xfs_ialloc.c index 1d74394..f75f191 100644 --- a/fs/xfs/libxfs/xfs_ialloc.c +++ b/fs/xfs/libxfs/xfs_ialloc.c @@ -1724,7 +1724,7 @@ xfs_difree_inobt( * When an inode cluster is free, it becomes eligible for removal */ if (!(mp->m_flags & XFS_MOUNT_IKEEP) && - (rec.ir_freecount == mp->m_ialloc_inos)) { + (rec.ir_free == XFS_INOBT_ALL_FREE)) { *deleted = 1; *first_ino = XFS_AGINO_TO_INO(mp, agno, rec.ir_startino); @@ -1734,7 +1734,7 @@ xfs_difree_inobt( * AGI and Superblock inode counts, and mark the disk space * to be freed when the transaction is committed. */ - ilen = mp->m_ialloc_inos; + ilen = rec.ir_freecount; be32_add_cpu(&agi->agi_count, -ilen); be32_add_cpu(&agi->agi_freecount, -(ilen - 1)); xfs_ialloc_log_agi(tp, agbp, XFS_AGI_COUNT | XFS_AGI_FREECOUNT); @@ -1856,7 +1856,7 @@ xfs_difree_finobt( * keeping inode chunks permanently on disk, remove the record. * Otherwise, update the record with the new information. */ - if (rec.ir_freecount == mp->m_ialloc_inos && + if (rec.ir_free == XFS_INOBT_ALL_FREE && !(mp->m_flags & XFS_MOUNT_IKEEP)) { error = xfs_btree_delete(cur, &i); if (error) -- 1.8.3.1 From bfoster@redhat.com Thu Jul 24 09:23:14 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: xfs@oss.sgi.com Delivered-To: xfs@oss.sgi.com Received: from relay.sgi.com (relay3.corp.sgi.com [198.149.34.15]) by oss.sgi.com (Postfix) with ESMTP id 26F3F7F51 for ; Thu, 24 Jul 2014 09:23:14 -0500 (CDT) Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by relay3.corp.sgi.com (Postfix) with ESMTP id AABD0AC00F for ; Thu, 24 Jul 2014 07:23:13 -0700 (PDT) X-ASG-Debug-ID: 1406211792-04cbb0728b454f0001-NocioJ Received: from mx1.redhat.com (mx1.redhat.com [209.132.183.28]) by cuda.sgi.com with ESMTP id BHqrdL2fhGiKCYUf (version=TLSv1 cipher=AES256-SHA bits=256 verify=NO) for ; Thu, 24 Jul 2014 07:23:12 -0700 (PDT) X-Barracuda-Envelope-From: bfoster@redhat.com X-Barracuda-Apparent-Source-IP: 209.132.183.28 X-ASG-Whitelist: Client Received: from int-mx09.intmail.prod.int.phx2.redhat.com (int-mx09.intmail.prod.int.phx2.redhat.com [10.5.11.22]) by mx1.redhat.com (8.14.4/8.14.4) with ESMTP id s6OENADI002639 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK) for ; Thu, 24 Jul 2014 10:23:11 -0400 Received: from bfoster.bfoster ([10.18.41.237]) by int-mx09.intmail.prod.int.phx2.redhat.com (8.14.4/8.14.4) with ESMTP id s6OENAdK030185 for ; Thu, 24 Jul 2014 10:23:10 -0400 Received: by bfoster.bfoster (Postfix, from userid 1000) id 1FB1E124B7C; Thu, 24 Jul 2014 10:23:09 -0400 (EDT) From: Brian Foster To: xfs@oss.sgi.com Subject: [PATCH 12/18] xfs: helper to convert inobt record holemask to inode alloc. bitmap Date: Thu, 24 Jul 2014 10:23:02 -0400 X-ASG-Orig-Subj: [PATCH 12/18] xfs: helper to convert inobt record holemask to inode alloc. bitmap Message-Id: <1406211788-63206-13-git-send-email-bfoster@redhat.com> In-Reply-To: <1406211788-63206-1-git-send-email-bfoster@redhat.com> References: <1406211788-63206-1-git-send-email-bfoster@redhat.com> X-Scanned-By: MIMEDefang 2.68 on 10.5.11.22 X-Barracuda-Connect: mx1.redhat.com[209.132.183.28] X-Barracuda-Start-Time: 1406211792 X-Barracuda-Encrypted: AES256-SHA X-Barracuda-URL: http://192.48.176.25:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 The inobt record holemask field is a condensed data type designed to fit into the existing on-disk record and is zero based (allocated regions are set to 0, sparse regions are set to 1) to provide backwards compatibility. Thus the type is unnecessarily complex for use in higher level inode manipulations such as individual inode allocations, etc. Rather than foist the complexity of dealing with this field to every bit of logic that requires inode chunk allocation information, create the xfs_inobt_ialloc_bitmap() helper to convert the inobt record holemask to an inode allocation bitmap. The inode allocation bitmap is inode granularity similar to the inobt record free mask and indicates which inodes of the chunk are physically allocated on disk irrespective of whether the inode is considered allocated or free by the filesystem. Signed-off-by: Brian Foster --- fs/xfs/libxfs/xfs_format.h | 1 + fs/xfs/libxfs/xfs_ialloc.c | 67 ++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 68 insertions(+) diff --git a/fs/xfs/libxfs/xfs_format.h b/fs/xfs/libxfs/xfs_format.h index 0baad50..cbc3296 100644 --- a/fs/xfs/libxfs/xfs_format.h +++ b/fs/xfs/libxfs/xfs_format.h @@ -206,6 +206,7 @@ typedef __be32 xfs_alloc_ptr_t; #define XFS_FIBT_CRC_MAGIC 0x46494233 /* 'FIB3' */ typedef __uint64_t xfs_inofree_t; +typedef __uint64_t xfs_inoalloc_t; #define XFS_INODES_PER_CHUNK (NBBY * sizeof(xfs_inofree_t)) #define XFS_INODES_PER_CHUNK_LOG (XFS_NBBYLOG + 3) #define XFS_INOBT_ALL_FREE ((xfs_inofree_t)-1) diff --git a/fs/xfs/libxfs/xfs_ialloc.c b/fs/xfs/libxfs/xfs_ialloc.c index 4e98a21..166602e 100644 --- a/fs/xfs/libxfs/xfs_ialloc.c +++ b/fs/xfs/libxfs/xfs_ialloc.c @@ -863,6 +863,73 @@ xfs_ialloc_get_rec( } /* + * Convert the inode record holemask to an inode allocation bitmap. The inode + * allocation bitmap is inode granularity and specifies whether an inode is + * physically allocated on disk (not whether the inode is considered allocated + * or free by the fs). + */ +STATIC xfs_inoalloc_t +xfs_inobt_ialloc_bitmap( + struct xfs_inobt_rec_incore *rec) +{ + xfs_inofree_t bitmap = 0; + xfs_inofree_t sparsebits; + int nextbit; + int shift; + __uint16_t allocmask; + uint allocbitmap; + + /* + * Each holemask bit represents XFS_INODES_PER_SPCHUNK inodes. Determine + * the inode bits per holemask bit. + */ + sparsebits = xfs_mask64lo(XFS_INODES_PER_SPCHUNK); + + /* + * The bit flip and type conversion are intentionally done separately + * here to zero-extend the bitmask. + */ + allocmask = ~rec->ir_holemask; + allocbitmap = allocmask; + + /* + * Each bit of allocbitmap represents an allocated region of the inode + * chunk. Thus, each bit represents XFS_INODES_PER_SPCHUNK physical + * inodes. Walk through allocbitmap and set the associated individual + * inode bits in the inode bitmap for each allocated chunk. + * + * For example, consider a 512b inode fs with a cluster size of 16k. + * Each holemask bit represents 4 inodes and each cluster contains 32 + * inodes. Since sparse chunks are allocated at cluster granularity, a + * valid 16-bit holemask (and negated allocbitmap) with this geometry + * might look as follows: + * + * holemask ~ allocbitmap + * 0000 0000 1111 1111 => 1111 1111 0000 0000 + * + * At 4 inodes per bit, this indicates that the first 32 inodes of the + * chunk are not physically allocated inodes. This is a hole from the + * perspective of the inode record. Converting the allocbitmap to a + * 64-bit inode allocation bitmap yields: + * + * 0xFFFFFFFF00000000 + * + * ... where any of the 32 inodes defined by the higher order 32 bits of + * the map could be in use or free. Logically AND this bitmap with the + * record ir_free map to identify which of the physically allocated + * inodes are in use. + */ + nextbit = xfs_next_bit(&allocbitmap, 1, 0); + while (nextbit != -1) { + shift = nextbit * XFS_INODES_PER_SPCHUNK; + bitmap |= (sparsebits << shift); + nextbit = xfs_next_bit(&allocbitmap, 1, nextbit + 1); + } + + return bitmap; +} + +/* * Allocate an inode using the inobt-only algorithm. */ STATIC int -- 1.8.3.1 From bfoster@redhat.com Thu Jul 24 09:23:15 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: xfs@oss.sgi.com Delivered-To: xfs@oss.sgi.com Received: from relay.sgi.com (relay3.corp.sgi.com [198.149.34.15]) by oss.sgi.com (Postfix) with ESMTP id 908487F3F for ; Thu, 24 Jul 2014 09:23:14 -0500 (CDT) Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by relay3.corp.sgi.com (Postfix) with ESMTP id 1B3B9AC009 for ; Thu, 24 Jul 2014 07:23:13 -0700 (PDT) X-ASG-Debug-ID: 1406211792-04cb6c0a6541720001-NocioJ Received: from mx1.redhat.com (mx1.redhat.com [209.132.183.28]) by cuda.sgi.com with ESMTP id Fd3fyOnCOEXflL7x (version=TLSv1 cipher=AES256-SHA bits=256 verify=NO) for ; Thu, 24 Jul 2014 07:23:12 -0700 (PDT) X-Barracuda-Envelope-From: bfoster@redhat.com X-Barracuda-Apparent-Source-IP: 209.132.183.28 X-ASG-Whitelist: Client Received: from int-mx10.intmail.prod.int.phx2.redhat.com (int-mx10.intmail.prod.int.phx2.redhat.com [10.5.11.23]) by mx1.redhat.com (8.14.4/8.14.4) with ESMTP id s6OENAnO016644 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK) for ; Thu, 24 Jul 2014 10:23:11 -0400 Received: from bfoster.bfoster ([10.18.41.237]) by int-mx10.intmail.prod.int.phx2.redhat.com (8.14.4/8.14.4) with ESMTP id s6OENAnS030753 for ; Thu, 24 Jul 2014 10:23:10 -0400 Received: by bfoster.bfoster (Postfix, from userid 1000) id 3D8B5124B7E; Thu, 24 Jul 2014 10:23:09 -0400 (EDT) From: Brian Foster To: xfs@oss.sgi.com Subject: [PATCH 13/18] xfs: filter out sparse regions from individual inode allocation Date: Thu, 24 Jul 2014 10:23:03 -0400 X-ASG-Orig-Subj: [PATCH 13/18] xfs: filter out sparse regions from individual inode allocation Message-Id: <1406211788-63206-14-git-send-email-bfoster@redhat.com> In-Reply-To: <1406211788-63206-1-git-send-email-bfoster@redhat.com> References: <1406211788-63206-1-git-send-email-bfoster@redhat.com> X-Scanned-By: MIMEDefang 2.68 on 10.5.11.23 X-Barracuda-Connect: mx1.redhat.com[209.132.183.28] X-Barracuda-Start-Time: 1406211792 X-Barracuda-Encrypted: AES256-SHA X-Barracuda-URL: http://192.48.176.15:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 Inode allocation from an existing record with free inodes traditionally selects the first inode available according to the ir_free mask. With sparse inode chunks, the ir_free mask could refer to an unallocated region. We must mask the unallocated regions out of ir_free before using it to select a free inode in the chunk. Create the xfs_inobt_first_free_inode() helper to find the first free inode available of the allocated regions of the inode chunk. Signed-off-by: Brian Foster --- fs/xfs/libxfs/xfs_ialloc.c | 25 +++++++++++++++++++++++-- 1 file changed, 23 insertions(+), 2 deletions(-) diff --git a/fs/xfs/libxfs/xfs_ialloc.c b/fs/xfs/libxfs/xfs_ialloc.c index 166602e..1d74394 100644 --- a/fs/xfs/libxfs/xfs_ialloc.c +++ b/fs/xfs/libxfs/xfs_ialloc.c @@ -930,6 +930,27 @@ xfs_inobt_ialloc_bitmap( } /* + * Return the offset of the first free inode in the record. If the inode chunk + * is sparsely allocated, we convert the record holemask to inode granularity + * and mask off the unallocated regions from the inode free mask. + */ +STATIC int +xfs_inobt_first_free_inode( + struct xfs_inobt_rec_incore *rec) +{ + xfs_inofree_t realfree; + + /* if there are no holes, return the first available offset */ + if (!xfs_inobt_issparse(rec)) + return xfs_lowbit64(rec->ir_free); + + realfree = xfs_inobt_ialloc_bitmap(rec); + realfree &= rec->ir_free; + + return xfs_lowbit64(realfree); +} + +/* * Allocate an inode using the inobt-only algorithm. */ STATIC int @@ -1159,7 +1180,7 @@ newino: } alloc_inode: - offset = xfs_lowbit64(rec.ir_free); + offset = xfs_inobt_first_free_inode(&rec); ASSERT(offset >= 0); ASSERT(offset < XFS_INODES_PER_CHUNK); ASSERT((XFS_AGINO_TO_OFFSET(mp, rec.ir_startino) % @@ -1413,7 +1434,7 @@ xfs_dialloc_ag( if (error) goto error_cur; - offset = xfs_lowbit64(rec.ir_free); + offset = xfs_inobt_first_free_inode(&rec); ASSERT(offset >= 0); ASSERT(offset < XFS_INODES_PER_CHUNK); ASSERT((XFS_AGINO_TO_OFFSET(mp, rec.ir_startino) % -- 1.8.3.1 From bfoster@redhat.com Thu Jul 24 09:23:13 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: xfs@oss.sgi.com Delivered-To: xfs@oss.sgi.com Received: from relay.sgi.com (relay3.corp.sgi.com [198.149.34.15]) by oss.sgi.com (Postfix) with ESMTP id AF5827F47 for ; Thu, 24 Jul 2014 09:23:13 -0500 (CDT) Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by relay3.corp.sgi.com (Postfix) with ESMTP id 4CD22AC009 for ; Thu, 24 Jul 2014 07:23:13 -0700 (PDT) X-ASG-Debug-ID: 1406211791-04bdf030b0465f0001-NocioJ Received: from mx1.redhat.com (mx1.redhat.com [209.132.183.28]) by cuda.sgi.com with ESMTP id Ld5VciELc0zUwCE4 (version=TLSv1 cipher=AES256-SHA bits=256 verify=NO) for ; Thu, 24 Jul 2014 07:23:12 -0700 (PDT) X-Barracuda-Envelope-From: bfoster@redhat.com X-Barracuda-Apparent-Source-IP: 209.132.183.28 X-ASG-Whitelist: Client Received: from int-mx11.intmail.prod.int.phx2.redhat.com (int-mx11.intmail.prod.int.phx2.redhat.com [10.5.11.24]) by mx1.redhat.com (8.14.4/8.14.4) with ESMTP id s6OENA0E016643 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK) for ; Thu, 24 Jul 2014 10:23:11 -0400 Received: from bfoster.bfoster ([10.18.41.237]) by int-mx11.intmail.prod.int.phx2.redhat.com (8.14.4/8.14.4) with ESMTP id s6OENA44017006 for ; Thu, 24 Jul 2014 10:23:10 -0400 Received: by bfoster.bfoster (Postfix, from userid 1000) id C3C63124B8A; Thu, 24 Jul 2014 10:23:08 -0400 (EDT) From: Brian Foster To: xfs@oss.sgi.com Subject: [PATCH 08/18] xfs: create helper to manage record overlap for sparse inode chunks Date: Thu, 24 Jul 2014 10:22:58 -0400 X-ASG-Orig-Subj: [PATCH 08/18] xfs: create helper to manage record overlap for sparse inode chunks Message-Id: <1406211788-63206-9-git-send-email-bfoster@redhat.com> In-Reply-To: <1406211788-63206-1-git-send-email-bfoster@redhat.com> References: <1406211788-63206-1-git-send-email-bfoster@redhat.com> X-Scanned-By: MIMEDefang 2.68 on 10.5.11.24 X-Barracuda-Connect: mx1.redhat.com[209.132.183.28] X-Barracuda-Start-Time: 1406211792 X-Barracuda-Encrypted: AES256-SHA X-Barracuda-URL: http://192.48.157.11:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 Create xfs_spchunk_has_record() to receive the parameters of a new sparse inode chunk allocation and identify whether a record exists that is capable of tracking this sparse chunk. Signed-off-by: Brian Foster --- fs/xfs/libxfs/xfs_ialloc.c | 55 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 55 insertions(+) diff --git a/fs/xfs/libxfs/xfs_ialloc.c b/fs/xfs/libxfs/xfs_ialloc.c index 27d3437..be57b51 100644 --- a/fs/xfs/libxfs/xfs_ialloc.c +++ b/fs/xfs/libxfs/xfs_ialloc.c @@ -351,6 +351,61 @@ xfs_ialloc_inode_init( } /* + * Determine whether part of a sparse inode chunk that has just been allocated + * is covered by an existing inobt record. + */ +STATIC int +xfs_spchunk_has_record( + struct xfs_mount *mp, + struct xfs_trans *tp, + struct xfs_buf *agbp, + xfs_agino_t newino, + xfs_agino_t count, + xfs_btnum_t btnum, + struct xfs_inobt_rec_incore *orec) +{ + struct xfs_btree_cur *cur; + struct xfs_agi *agi = XFS_BUF_TO_AGI(agbp); + xfs_agnumber_t agno = be32_to_cpu(agi->agi_seqno); + xfs_agino_t previno; + int error; + int i; + struct xfs_inobt_rec_incore rec; + + orec->ir_startino = NULLAGINO; + + cur = xfs_inobt_init_cursor(mp, tp, agbp, agno, btnum); + + previno = newino + count - XFS_INODES_PER_CHUNK; + error = xfs_inobt_lookup(cur, previno, XFS_LOOKUP_GE, &i); + if (error) + goto error; + if (i == 0) + goto out; + + error = xfs_inobt_get_rec(cur, &rec, &i); + if (error) + goto error; + XFS_WANT_CORRUPTED_GOTO(i == 1, error); + + if (rec.ir_startino > newino) + goto out; + + ASSERT(rec.ir_startino <= newino && + rec.ir_startino + XFS_INODES_PER_CHUNK > newino); + ASSERT(rec.ir_freecount + count <= XFS_INODES_PER_CHUNK); + + *orec = rec; + +out: + xfs_btree_del_cursor(cur, XFS_BTREE_NOERROR); + return 0; +error: + xfs_btree_del_cursor(cur, XFS_BTREE_ERROR); + return error; +} + +/* * Allocate new inodes in the allocation group specified by agbp. * Return 0 for success, else error code. */ -- 1.8.3.1 From bfoster@redhat.com Thu Jul 24 09:23:15 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: xfs@oss.sgi.com Delivered-To: xfs@oss.sgi.com Received: from relay.sgi.com (relay2.corp.sgi.com [137.38.102.29]) by oss.sgi.com (Postfix) with ESMTP id 9A29E7F3F for ; Thu, 24 Jul 2014 09:23:15 -0500 (CDT) Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by relay2.corp.sgi.com (Postfix) with ESMTP id 88842304051 for ; Thu, 24 Jul 2014 07:23:12 -0700 (PDT) X-ASG-Debug-ID: 1406211791-04cb6c0a6441710001-NocioJ Received: from mx1.redhat.com (mx1.redhat.com [209.132.183.28]) by cuda.sgi.com with ESMTP id THbXxrIt918NPBs3 (version=TLSv1 cipher=AES256-SHA bits=256 verify=NO) for ; Thu, 24 Jul 2014 07:23:11 -0700 (PDT) X-Barracuda-Envelope-From: bfoster@redhat.com X-Barracuda-Apparent-Source-IP: 209.132.183.28 X-ASG-Whitelist: Client Received: from int-mx11.intmail.prod.int.phx2.redhat.com (int-mx11.intmail.prod.int.phx2.redhat.com [10.5.11.24]) by mx1.redhat.com (8.14.4/8.14.4) with ESMTP id s6OENATf027537 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK) for ; Thu, 24 Jul 2014 10:23:10 -0400 Received: from bfoster.bfoster ([10.18.41.237]) by int-mx11.intmail.prod.int.phx2.redhat.com (8.14.4/8.14.4) with ESMTP id s6OENAxD017009 for ; Thu, 24 Jul 2014 10:23:10 -0400 Received: by bfoster.bfoster (Postfix, from userid 1000) id 34877123103; Thu, 24 Jul 2014 10:23:08 -0400 (EDT) From: Brian Foster To: xfs@oss.sgi.com Subject: [PATCH 11/18] xfs: reduce min. inode allocation space requirement for sparse inode chunks Date: Thu, 24 Jul 2014 10:23:01 -0400 X-ASG-Orig-Subj: [PATCH 11/18] xfs: reduce min. inode allocation space requirement for sparse inode chunks Message-Id: <1406211788-63206-12-git-send-email-bfoster@redhat.com> In-Reply-To: <1406211788-63206-1-git-send-email-bfoster@redhat.com> References: <1406211788-63206-1-git-send-email-bfoster@redhat.com> X-Scanned-By: MIMEDefang 2.68 on 10.5.11.24 X-Barracuda-Connect: mx1.redhat.com[209.132.183.28] X-Barracuda-Start-Time: 1406211791 X-Barracuda-Encrypted: AES256-SHA X-Barracuda-URL: http://192.48.176.15:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 xfs_ialloc_ag_select() iterates through the allocation groups looking for free inodes or free space to determine whether to allow an inode allocation to proceed. If no free inodes are available, it assumes that an AG must have an extent longer than mp->m_ialloc_blks. Sparse inode chunk support currently allows for allocations as small as the cluster size. If sparse inodes are supported, use the cluster alignment as a minimum extent size limit to determine whether an inode chunk allocation attempt can proceed. Signed-off-by: Brian Foster --- fs/xfs/libxfs/xfs_ialloc.c | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/fs/xfs/libxfs/xfs_ialloc.c b/fs/xfs/libxfs/xfs_ialloc.c index 4dd45c2..4e98a21 100644 --- a/fs/xfs/libxfs/xfs_ialloc.c +++ b/fs/xfs/libxfs/xfs_ialloc.c @@ -770,9 +770,15 @@ xfs_ialloc_ag_select( /* * Is there enough free space for the file plus a block of - * inodes? (if we need to allocate some)? + * inodes? (if we need to allocate some)? If sparse inode chunks + * are supported, we only require an extent of length equal to + * the cluster size. */ - ineed = mp->m_ialloc_blks; + if (xfs_sb_version_hassparseinodes(&mp->m_sb)) + ineed = xfs_ialloc_cluster_alignment(mp); + else + ineed = mp->m_ialloc_blks; + longest = pag->pagf_longest; if (!longest) longest = pag->pagf_flcount > 0; -- 1.8.3.1 From bfoster@redhat.com Thu Jul 24 09:23:16 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: xfs@oss.sgi.com Delivered-To: xfs@oss.sgi.com Received: from relay.sgi.com (relay3.corp.sgi.com [198.149.34.15]) by oss.sgi.com (Postfix) with ESMTP id 0F7947F3F for ; Thu, 24 Jul 2014 09:23:16 -0500 (CDT) Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by relay3.corp.sgi.com (Postfix) with ESMTP id 928B0AC006 for ; Thu, 24 Jul 2014 07:23:12 -0700 (PDT) X-ASG-Debug-ID: 1406211790-04cb6c0a6541710001-NocioJ Received: from mx1.redhat.com (mx1.redhat.com [209.132.183.28]) by cuda.sgi.com with ESMTP id RhvzJzXb56jhWw5s (version=TLSv1 cipher=AES256-SHA bits=256 verify=NO) for ; Thu, 24 Jul 2014 07:23:11 -0700 (PDT) X-Barracuda-Envelope-From: bfoster@redhat.com X-Barracuda-Apparent-Source-IP: 209.132.183.28 X-ASG-Whitelist: Client Received: from int-mx14.intmail.prod.int.phx2.redhat.com (int-mx14.intmail.prod.int.phx2.redhat.com [10.5.11.27]) by mx1.redhat.com (8.14.4/8.14.4) with ESMTP id s6OEN94D027532 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK) for ; Thu, 24 Jul 2014 10:23:10 -0400 Received: from bfoster.bfoster ([10.18.41.237]) by int-mx14.intmail.prod.int.phx2.redhat.com (8.14.4/8.14.4) with ESMTP id s6OEN9r2030151 for ; Thu, 24 Jul 2014 10:23:09 -0400 Received: by bfoster.bfoster (Postfix, from userid 1000) id 87399124B84; Thu, 24 Jul 2014 10:23:08 -0400 (EDT) From: Brian Foster To: xfs@oss.sgi.com Subject: [PATCH 03/18] xfs: define sparse inode chunks v5 sb feature bit and helper function Date: Thu, 24 Jul 2014 10:22:53 -0400 X-ASG-Orig-Subj: [PATCH 03/18] xfs: define sparse inode chunks v5 sb feature bit and helper function Message-Id: <1406211788-63206-4-git-send-email-bfoster@redhat.com> In-Reply-To: <1406211788-63206-1-git-send-email-bfoster@redhat.com> References: <1406211788-63206-1-git-send-email-bfoster@redhat.com> X-Scanned-By: MIMEDefang 2.68 on 10.5.11.27 X-Barracuda-Connect: mx1.redhat.com[209.132.183.28] X-Barracuda-Start-Time: 1406211791 X-Barracuda-Encrypted: AES256-SHA X-Barracuda-URL: http://192.48.176.15:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 The sparse inode chunks feature will use the helper function to enable the allocation of sparse inode chunks. The incompatible feature bit is set on disk once a sparse inode chunk is allocated to prevent older drivers from mounting an fs with sparse chunks. Note that the feature is hardcoded disabled and the feature bit not included in the all features mask until fully implemented. Signed-off-by: Brian Foster --- fs/xfs/libxfs/xfs_sb.h | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/fs/xfs/libxfs/xfs_sb.h b/fs/xfs/libxfs/xfs_sb.h index c43c2d6..6f48de9 100644 --- a/fs/xfs/libxfs/xfs_sb.h +++ b/fs/xfs/libxfs/xfs_sb.h @@ -509,6 +509,7 @@ xfs_sb_has_ro_compat_feature( } #define XFS_SB_FEAT_INCOMPAT_FTYPE (1 << 0) /* filetype in dirent */ +#define XFS_SB_FEAT_INCOMPAT_SPINODES (1 << 1) /* sparse inode chunks */ #define XFS_SB_FEAT_INCOMPAT_ALL \ (XFS_SB_FEAT_INCOMPAT_FTYPE) @@ -558,6 +559,11 @@ static inline int xfs_sb_version_hasfinobt(xfs_sb_t *sbp) (sbp->sb_features_ro_compat & XFS_SB_FEAT_RO_COMPAT_FINOBT); } +static inline int xfs_sb_version_hassparseinodes(struct xfs_sb *sbp) +{ + return 0; /* not yet enabled */ +} + /* * end of superblock version macros */ -- 1.8.3.1 From bfoster@redhat.com Thu Jul 24 09:23:16 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: xfs@oss.sgi.com Delivered-To: xfs@oss.sgi.com Received: from relay.sgi.com (relay1.corp.sgi.com [137.38.102.111]) by oss.sgi.com (Postfix) with ESMTP id BF3617F60 for ; Thu, 24 Jul 2014 09:23:16 -0500 (CDT) Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by relay1.corp.sgi.com (Postfix) with ESMTP id 8FDB48F804C for ; Thu, 24 Jul 2014 07:23:13 -0700 (PDT) X-ASG-Debug-ID: 1406211792-04bdf030af465f0001-NocioJ Received: from mx1.redhat.com (mx1.redhat.com [209.132.183.28]) by cuda.sgi.com with ESMTP id U5zpEAWfgbdBBfj6 (version=TLSv1 cipher=AES256-SHA bits=256 verify=NO) for ; Thu, 24 Jul 2014 07:23:12 -0700 (PDT) X-Barracuda-Envelope-From: bfoster@redhat.com X-Barracuda-Apparent-Source-IP: 209.132.183.28 X-ASG-Whitelist: Client Received: from int-mx11.intmail.prod.int.phx2.redhat.com (int-mx11.intmail.prod.int.phx2.redhat.com [10.5.11.24]) by mx1.redhat.com (8.14.4/8.14.4) with ESMTP id s6OENAfV002642 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK) for ; Thu, 24 Jul 2014 10:23:11 -0400 Received: from bfoster.bfoster ([10.18.41.237]) by int-mx11.intmail.prod.int.phx2.redhat.com (8.14.4/8.14.4) with ESMTP id s6OENA46017006 for ; Thu, 24 Jul 2014 10:23:10 -0400 Received: by bfoster.bfoster (Postfix, from userid 1000) id 59BBC124B84; Thu, 24 Jul 2014 10:23:09 -0400 (EDT) From: Brian Foster To: xfs@oss.sgi.com Subject: [PATCH 15/18] xfs: only free allocated regions of inode chunks Date: Thu, 24 Jul 2014 10:23:05 -0400 X-ASG-Orig-Subj: [PATCH 15/18] xfs: only free allocated regions of inode chunks Message-Id: <1406211788-63206-16-git-send-email-bfoster@redhat.com> In-Reply-To: <1406211788-63206-1-git-send-email-bfoster@redhat.com> References: <1406211788-63206-1-git-send-email-bfoster@redhat.com> X-Scanned-By: MIMEDefang 2.68 on 10.5.11.24 X-Barracuda-Connect: mx1.redhat.com[209.132.183.28] X-Barracuda-Start-Time: 1406211792 X-Barracuda-Encrypted: AES256-SHA X-Barracuda-URL: http://192.48.157.11:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 An inode chunk is currently added to the transaction free list based on a simple fsb conversion and hardcoded chunk length. The nature of sparse chunks is such that the physical chunk of inodes on disk may consist of one or more discontiguous parts. Blocks that reside in the holes of the inode chunk are not inodes and could be allocated to any other use or not allocated at all. Refactor the existing xfs_bmap_add_free() call into the xfs_difree_inode_chunk() helper. The new helper uses the existing calculation if a chunk is not sparse. Otherwise, use the inobt record holemask to free the contiguous regions of the chunk. Signed-off-by: Brian Foster --- fs/xfs/libxfs/xfs_ialloc.c | 64 +++++++++++++++++++++++++++++++++++++++++++--- 1 file changed, 61 insertions(+), 3 deletions(-) diff --git a/fs/xfs/libxfs/xfs_ialloc.c b/fs/xfs/libxfs/xfs_ialloc.c index f75f191..1be57b1 100644 --- a/fs/xfs/libxfs/xfs_ialloc.c +++ b/fs/xfs/libxfs/xfs_ialloc.c @@ -1659,6 +1659,66 @@ out_error: return error; } +/* + * Free the blocks of an inode chunk. We must consider that the inode chunk + * might be sparse and only free the regions that are allocated as part of the + * chunk. + */ +STATIC void +xfs_difree_inode_chunk( + struct xfs_mount *mp, + xfs_agnumber_t agno, + struct xfs_inobt_rec_incore *rec, + struct xfs_bmap_free *flist) +{ + xfs_agblock_t sagbno = XFS_AGINO_TO_AGBNO(mp, rec->ir_startino); + xfs_agblock_t agbno; + int nextbit; + int contig, contigblk; + __uint16_t allocmask; + uint allocbitmap; + + if (!xfs_inobt_issparse(rec)) { + /* not sparse, calculate extent info directly */ + xfs_bmap_add_free(XFS_AGB_TO_FSB(mp, agno, + XFS_AGINO_TO_AGBNO(mp, rec->ir_startino)), + mp->m_ialloc_blks, flist, mp); + return; + } + + /* + * The bit flip and type conversion are intentionally done separately + * here to zero-extend the bitmask. + */ + allocmask = ~rec->ir_holemask; + allocbitmap = allocmask; + + /* + * We now have an allocation bitmap in units of inodes at sparse chunk + * granularity (e.g., more than one inode per bit). Use the bitmask + * functions to find each contigious range of bits in the map. For each + * range, convert the start bit and count to block values and use that + * data to add the associated extent to the free list. + */ + nextbit = xfs_next_bit(&allocbitmap, 1, 0); + while (nextbit != -1) { + agbno = (nextbit * XFS_INODES_PER_SPCHUNK) / + mp->m_sb.sb_inopblock; + agbno += sagbno; + + contig = xfs_contig_bits(&allocbitmap, 1, nextbit); + contigblk = (contig * XFS_INODES_PER_SPCHUNK) / + mp->m_sb.sb_inopblock; + + ASSERT(agbno % xfs_ialloc_cluster_alignment(mp) == 0); + ASSERT(contigblk % xfs_ialloc_cluster_alignment(mp) == 0); + xfs_bmap_add_free(XFS_AGB_TO_FSB(mp, agno, agbno), contigblk, + flist, mp); + + nextbit = xfs_next_bit(&allocbitmap, 1, nextbit + contig + 1); + } +} + STATIC int xfs_difree_inobt( struct xfs_mount *mp, @@ -1750,9 +1810,7 @@ xfs_difree_inobt( goto error0; } - xfs_bmap_add_free(XFS_AGB_TO_FSB(mp, agno, - XFS_AGINO_TO_AGBNO(mp, rec.ir_startino)), - mp->m_ialloc_blks, flist, mp); + xfs_difree_inode_chunk(mp, agno, &rec, flist); } else { *deleted = 0; -- 1.8.3.1 From bfoster@redhat.com Thu Jul 24 09:51:14 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: xfs@oss.sgi.com Delivered-To: xfs@oss.sgi.com Received: from relay.sgi.com (relay2.corp.sgi.com [137.38.102.29]) by oss.sgi.com (Postfix) with ESMTP id 797077F3F for ; Thu, 24 Jul 2014 09:51:14 -0500 (CDT) Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by relay2.corp.sgi.com (Postfix) with ESMTP id 563C7304048 for ; Thu, 24 Jul 2014 07:51:14 -0700 (PDT) X-ASG-Debug-ID: 1406213472-04cb6c0a6242570001-NocioJ Received: from mx1.redhat.com (mx1.redhat.com [209.132.183.28]) by cuda.sgi.com with ESMTP id Bl5ng8tTCpsdshjk (version=TLSv1 cipher=AES256-SHA bits=256 verify=NO) for ; Thu, 24 Jul 2014 07:51:13 -0700 (PDT) X-Barracuda-Envelope-From: bfoster@redhat.com X-Barracuda-Apparent-Source-IP: 209.132.183.28 X-ASG-Whitelist: Client Received: from int-mx10.intmail.prod.int.phx2.redhat.com (int-mx10.intmail.prod.int.phx2.redhat.com [10.5.11.23]) by mx1.redhat.com (8.14.4/8.14.4) with ESMTP id s6OEpCok008437 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK) for ; Thu, 24 Jul 2014 10:51:12 -0400 Received: from bfoster.bfoster ([10.18.41.237]) by int-mx10.intmail.prod.int.phx2.redhat.com (8.14.4/8.14.4) with ESMTP id s6OEN958030706 for ; Thu, 24 Jul 2014 10:23:09 -0400 Received: by bfoster.bfoster (Postfix, from userid 1000) id 67EC7124B7D; Thu, 24 Jul 2014 10:23:08 -0400 (EDT) From: Brian Foster To: xfs@oss.sgi.com Subject: [PATCH 02/18] xfs: pass xfs_mount directly to xfs_ialloc_cluster_alignment() Date: Thu, 24 Jul 2014 10:22:52 -0400 X-ASG-Orig-Subj: [PATCH 02/18] xfs: pass xfs_mount directly to xfs_ialloc_cluster_alignment() Message-Id: <1406211788-63206-3-git-send-email-bfoster@redhat.com> In-Reply-To: <1406211788-63206-1-git-send-email-bfoster@redhat.com> References: <1406211788-63206-1-git-send-email-bfoster@redhat.com> X-Scanned-By: MIMEDefang 2.68 on 10.5.11.23 X-Barracuda-Connect: mx1.redhat.com[209.132.183.28] X-Barracuda-Start-Time: 1406213473 X-Barracuda-Encrypted: AES256-SHA X-Barracuda-URL: http://192.48.176.15:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 xfs_ialloc_cluster_alignment() takes an args parameter but only uses the xfs_mount pointer. Replace the args parameter with mp such that we can use this function from additional contexts. Signed-off-by: Brian Foster --- fs/xfs/libxfs/xfs_ialloc.c | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/fs/xfs/libxfs/xfs_ialloc.c b/fs/xfs/libxfs/xfs_ialloc.c index 6e2ccb3..5448a74 100644 --- a/fs/xfs/libxfs/xfs_ialloc.c +++ b/fs/xfs/libxfs/xfs_ialloc.c @@ -48,12 +48,12 @@ */ static inline int xfs_ialloc_cluster_alignment( - xfs_alloc_arg_t *args) + struct xfs_mount *mp) { - if (xfs_sb_version_hasalign(&args->mp->m_sb) && - args->mp->m_sb.sb_inoalignmt >= - XFS_B_TO_FSBT(args->mp, args->mp->m_inode_cluster_size)) - return args->mp->m_sb.sb_inoalignmt; + if (xfs_sb_version_hasalign(&mp->m_sb) && + mp->m_sb.sb_inoalignmt >= + XFS_B_TO_FSBT(mp, mp->m_inode_cluster_size)) + return mp->m_sb.sb_inoalignmt; return 1; } @@ -407,7 +407,7 @@ xfs_ialloc_ag_alloc( * but not to use them in the actual exact allocation. */ args.alignment = 1; - args.minalignslop = xfs_ialloc_cluster_alignment(&args) - 1; + args.minalignslop = xfs_ialloc_cluster_alignment(args.mp) - 1; /* Allow space for the inode btree to split. */ args.minleft = args.mp->m_in_maxlevels - 1; @@ -443,7 +443,7 @@ xfs_ialloc_ag_alloc( args.alignment = args.mp->m_dalign; isaligned = 1; } else - args.alignment = xfs_ialloc_cluster_alignment(&args); + args.alignment = xfs_ialloc_cluster_alignment(args.mp); /* * Need to figure out where to allocate the inode blocks. * Ideally they should be spaced out through the a.g. @@ -472,7 +472,7 @@ xfs_ialloc_ag_alloc( args.type = XFS_ALLOCTYPE_NEAR_BNO; args.agbno = be32_to_cpu(agi->agi_root); args.fsbno = XFS_AGB_TO_FSB(args.mp, agno, args.agbno); - args.alignment = xfs_ialloc_cluster_alignment(&args); + args.alignment = xfs_ialloc_cluster_alignment(args.mp); if ((error = xfs_alloc_vextent(&args))) return error; } -- 1.8.3.1 From bfoster@redhat.com Thu Jul 24 09:51:14 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: xfs@oss.sgi.com Delivered-To: xfs@oss.sgi.com Received: from relay.sgi.com (relay2.corp.sgi.com [137.38.102.29]) by oss.sgi.com (Postfix) with ESMTP id B22F17F47 for ; Thu, 24 Jul 2014 09:51:14 -0500 (CDT) Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by relay2.corp.sgi.com (Postfix) with ESMTP id 833F8304043 for ; Thu, 24 Jul 2014 07:51:14 -0700 (PDT) X-ASG-Debug-ID: 1406213472-04bdf030b0479b0001-NocioJ Received: from mx1.redhat.com (mx1.redhat.com [209.132.183.28]) by cuda.sgi.com with ESMTP id mzrdLROQNHAHidDC (version=TLSv1 cipher=AES256-SHA bits=256 verify=NO) for ; Thu, 24 Jul 2014 07:51:13 -0700 (PDT) X-Barracuda-Envelope-From: bfoster@redhat.com X-Barracuda-Apparent-Source-IP: 209.132.183.28 X-ASG-Whitelist: Client Received: from int-mx10.intmail.prod.int.phx2.redhat.com (int-mx10.intmail.prod.int.phx2.redhat.com [10.5.11.23]) by mx1.redhat.com (8.14.4/8.14.4) with ESMTP id s6OEpCom008437 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK) for ; Thu, 24 Jul 2014 10:51:12 -0400 Received: from bfoster.bfoster ([10.18.41.237]) by int-mx10.intmail.prod.int.phx2.redhat.com (8.14.4/8.14.4) with ESMTP id s6OEN9mm030704 for ; Thu, 24 Jul 2014 10:23:09 -0400 Received: by bfoster.bfoster (Postfix, from userid 1000) id 48460124B7C; Thu, 24 Jul 2014 10:23:08 -0400 (EDT) From: Brian Foster To: xfs@oss.sgi.com Subject: [PATCH RFC 00/18] xfs: sparse inode chunks Date: Thu, 24 Jul 2014 10:22:50 -0400 X-ASG-Orig-Subj: [PATCH RFC 00/18] xfs: sparse inode chunks Message-Id: <1406211788-63206-1-git-send-email-bfoster@redhat.com> X-Scanned-By: MIMEDefang 2.68 on 10.5.11.23 X-Barracuda-Connect: mx1.redhat.com[209.132.183.28] X-Barracuda-Start-Time: 1406213473 X-Barracuda-Encrypted: AES256-SHA X-Barracuda-URL: http://192.48.157.11:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 Hi all, This is a first pass at sparse inode chunk support for XFS. Some background on this work is available here: http://oss.sgi.com/archives/xfs/2013-08/msg00346.html The basic idea is to allow the partial allocation of inode chunks into fragmented regions of free space. This is accomplished through addition of a holemask field into the inobt record that defines what portion(s) of an inode chunk are invalid (i.e., holes in the chunk). This work is not quite complete, but is at a point where I'd like to start getting feedback on the design and what direction to take for some of the known gaps. The basic breakdown of functionality in this set is as follows: - Patches 1-2 - A couple generic cleanups that are dependencies for later patches in the series. - Patches 3-5 - Basic data structure update, feature bit and minor helper introduction. - Patches 6-7 - Update v5 icreate logging and recovery to handle sparse inode records. - Patches 8-13 - Allocation support for sparse inode records. Physical chunk allocation and individual inode allocation. - Patches 14-16 - Deallocation support for sparse inode chunks. Physical chunk deallocation, individual inode free and cluster free. - Patch 17 - Fixes for bulkstat/inumbers. - Patch 18 - Activate support for sparse chunk allocation and processing. This work is lightly tested for regression (some xfstests failures due to repair) and basic functionality. I have a new xfstests test I'll forward along for demonstration purposes. Some notes on gaps in the design: - Sparse inode chunk allocation granularity: The current minimum sparse chunk allocation granularity is the cluster size. My initial attempts at this work tried to redefine to the minimum chunk length based on the holemask granularity (a la the stale macro I seemingly left in this series ;), but this involves tweaking the codepaths that use the cluster size (i.e., imap) which proved rather hairy. This also means we need a solution where an imap can change if an inode was initially mapped as a sparse chunk and said chunk is subsequently made full. E.g., we'd perhaps need to invalidate the inode buffers for sparse chunks at the time where they are made full. Given that, I landed on using the cluster size and leaving those codepaths as is for the time being. There is a tradeoff here for v5 superblocks because we've recently made a change to scale the cluster size based on the factor increase in the inode size from the default (see xfsprogs commit 7b5f9801). This means that effectiveness of sparse chunks is tied to whether the level of free space fragmentation matches the cluster size. By that I mean effectivess is good (near 100% utilization possible) if free space fragmentation leaves free extents around that at least match the cluster size. If fragmentation is worse than the cluster size, effectiveness is reduced. This can also be demonstrated with the forthcoming xfstests test. - On-disk lifecycle of the sparse inode chunks feature bit: We set an incompatible feature bit once a sparse inode chunk is allocated because older revisions of code will interpret the non-zero holemask bits in the higher order bytes of the record freecount. The feature bit must be removed once all sparse inode chunks are eliminated one way or another. This series does not currently remove the feature bit once set simply because I hadn't thought through the mechanism quite yet. For the next version, I'm thinking about adding an inobt walk mechanism that can be conditionally invoked (i.e., feature bit is currently set and a sparse inode chunk has been eliminated) either via workqueue on an interval or during unmount if necessary. Thoughts or alternative suggestions on that appreciated. That's about it for now. Thoughts, reviews, flames appreciated. Thanks. Brian Brian Foster (18): xfs: refactor xfs_inobt_insert() to eliminate loop and support variable count xfs: pass xfs_mount directly to xfs_ialloc_cluster_alignment() xfs: define sparse inode chunks v5 sb feature bit and helper function xfs: introduce inode record hole mask for sparse inode chunks xfs: create macros/helpers for dealing with sparse inode chunks xfs: pass inode count through ordered icreate log item xfs: handle sparse inode chunks in icreate log recovery xfs: create helper to manage record overlap for sparse inode chunks xfs: allocate sparse inode chunks on full chunk allocation failure xfs: set sparse inodes feature bit when a sparse chunk is allocated xfs: reduce min. inode allocation space requirement for sparse inode chunks xfs: helper to convert inobt record holemask to inode alloc. bitmap xfs: filter out sparse regions from individual inode allocation xfs: update free inode record logic to support sparse inode records xfs: only free allocated regions of inode chunks xfs: skip unallocated regions of inode chunks in xfs_ifree_cluster() xfs: use actual inode count for sparse records in bulkstat/inumbers xfs: enable sparse inode chunks for v5 superblocks fs/xfs/libxfs/xfs_format.h | 17 +- fs/xfs/libxfs/xfs_ialloc.c | 441 +++++++++++++++++++++++++++++++++------ fs/xfs/libxfs/xfs_ialloc.h | 17 +- fs/xfs/libxfs/xfs_ialloc_btree.c | 4 +- fs/xfs/libxfs/xfs_sb.h | 9 +- fs/xfs/xfs_inode.c | 28 ++- fs/xfs/xfs_itable.c | 12 +- fs/xfs/xfs_log_recover.c | 23 +- 8 files changed, 460 insertions(+), 91 deletions(-) -- 1.8.3.1 From bfoster@redhat.com Thu Jul 24 09:51:15 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: xfs@oss.sgi.com Delivered-To: xfs@oss.sgi.com Received: from relay.sgi.com (relay3.corp.sgi.com [198.149.34.15]) by oss.sgi.com (Postfix) with ESMTP id 255197F3F for ; Thu, 24 Jul 2014 09:51:15 -0500 (CDT) Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by relay3.corp.sgi.com (Postfix) with ESMTP id 99103AC009 for ; Thu, 24 Jul 2014 07:51:14 -0700 (PDT) X-ASG-Debug-ID: 1406213472-04cbb0728d46520001-NocioJ Received: from mx1.redhat.com (mx1.redhat.com [209.132.183.28]) by cuda.sgi.com with ESMTP id mhEt6M0y1puaGauP (version=TLSv1 cipher=AES256-SHA bits=256 verify=NO) for ; Thu, 24 Jul 2014 07:51:13 -0700 (PDT) X-Barracuda-Envelope-From: bfoster@redhat.com X-Barracuda-Apparent-Source-IP: 209.132.183.28 X-ASG-Whitelist: Client Received: from int-mx10.intmail.prod.int.phx2.redhat.com (int-mx10.intmail.prod.int.phx2.redhat.com [10.5.11.23]) by mx1.redhat.com (8.14.4/8.14.4) with ESMTP id s6OEpCoo008437 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK) for ; Thu, 24 Jul 2014 10:51:12 -0400 Received: from bfoster.bfoster ([10.18.41.237]) by int-mx10.intmail.prod.int.phx2.redhat.com (8.14.4/8.14.4) with ESMTP id s6OENAab030723 for ; Thu, 24 Jul 2014 10:23:10 -0400 Received: by bfoster.bfoster (Postfix, from userid 1000) id 663C2124B8E; Thu, 24 Jul 2014 10:23:09 -0400 (EDT) From: Brian Foster To: xfs@oss.sgi.com Subject: [PATCH 16/18] xfs: skip unallocated regions of inode chunks in xfs_ifree_cluster() Date: Thu, 24 Jul 2014 10:23:06 -0400 X-ASG-Orig-Subj: [PATCH 16/18] xfs: skip unallocated regions of inode chunks in xfs_ifree_cluster() Message-Id: <1406211788-63206-17-git-send-email-bfoster@redhat.com> In-Reply-To: <1406211788-63206-1-git-send-email-bfoster@redhat.com> References: <1406211788-63206-1-git-send-email-bfoster@redhat.com> X-Scanned-By: MIMEDefang 2.68 on 10.5.11.23 X-Barracuda-Connect: mx1.redhat.com[209.132.183.28] X-Barracuda-Start-Time: 1406213473 X-Barracuda-Encrypted: AES256-SHA X-Barracuda-URL: http://192.48.176.25:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 xfs_ifree_cluster() is called to mark all in-memory inodes and inode buffers as stale. This occurs after we've removed the inobt records and dropped any references of inobt data. xfs_ifree_cluster() uses the starting inode number to walk the namespace of inodes expected for a single chunk a cluster buffer at a time. The cluster buffer disk addresses are calculated by decoding the sequential inode numbers expected from the chunk. The problem with this approach is that if the inode chunk being removed is a sparse chunk, not all of the buffer addresses that are calculated as part of this sequence may be inode clusters. Attempting to acquire the buffer based on expected inode characterstics (i.e., cluster length) can lead to errors and is generally incorrect. We already use a couple variables to carry requisite state from xfs_difree() to xfs_ifree_cluster(). Rather than add a third, define a new internal structure to carry the existing parameters through these functions. Add an alloc field that represents the physical allocation bitmap of inodes in the chunk being removed. Modify xfs_ifree_cluster() to check each inode against the bitmap and skip the clusters that were never allocated as real inodes on disk. Signed-off-by: Brian Foster --- fs/xfs/libxfs/xfs_ialloc.c | 16 +++++++--------- fs/xfs/libxfs/xfs_ialloc.h | 10 ++++++++-- fs/xfs/xfs_inode.c | 28 ++++++++++++++++++++-------- 3 files changed, 35 insertions(+), 19 deletions(-) diff --git a/fs/xfs/libxfs/xfs_ialloc.c b/fs/xfs/libxfs/xfs_ialloc.c index 1be57b1..86c6ccd 100644 --- a/fs/xfs/libxfs/xfs_ialloc.c +++ b/fs/xfs/libxfs/xfs_ialloc.c @@ -1726,8 +1726,7 @@ xfs_difree_inobt( struct xfs_buf *agbp, xfs_agino_t agino, struct xfs_bmap_free *flist, - int *deleted, - xfs_ino_t *first_ino, + struct xfs_icluster *xic, struct xfs_inobt_rec_incore *orec) { struct xfs_agi *agi = XFS_BUF_TO_AGI(agbp); @@ -1786,8 +1785,9 @@ xfs_difree_inobt( if (!(mp->m_flags & XFS_MOUNT_IKEEP) && (rec.ir_free == XFS_INOBT_ALL_FREE)) { - *deleted = 1; - *first_ino = XFS_AGINO_TO_INO(mp, agno, rec.ir_startino); + xic->deleted = 1; + xic->first_ino = XFS_AGINO_TO_INO(mp, agno, rec.ir_startino); + xic->alloc = xfs_inobt_ialloc_bitmap(&rec); /* * Remove the inode cluster from the AGI B+Tree, adjust the @@ -1812,7 +1812,7 @@ xfs_difree_inobt( xfs_difree_inode_chunk(mp, agno, &rec, flist); } else { - *deleted = 0; + xic->deleted = 0; error = xfs_inobt_update(cur, &rec); if (error) { @@ -1950,8 +1950,7 @@ xfs_difree( struct xfs_trans *tp, /* transaction pointer */ xfs_ino_t inode, /* inode to be freed */ struct xfs_bmap_free *flist, /* extents to free */ - int *deleted,/* set if inode cluster was deleted */ - xfs_ino_t *first_ino)/* first inode in deleted cluster */ + struct xfs_icluster *xic) /* cluster info if deleted */ { /* REFERENCED */ xfs_agblock_t agbno; /* block number containing inode */ @@ -2002,8 +2001,7 @@ xfs_difree( /* * Fix up the inode allocation btree. */ - error = xfs_difree_inobt(mp, tp, agbp, agino, flist, deleted, first_ino, - &rec); + error = xfs_difree_inobt(mp, tp, agbp, agino, flist, xic, &rec); if (error) goto error0; diff --git a/fs/xfs/libxfs/xfs_ialloc.h b/fs/xfs/libxfs/xfs_ialloc.h index 62c1381..5aa8d6f 100644 --- a/fs/xfs/libxfs/xfs_ialloc.h +++ b/fs/xfs/libxfs/xfs_ialloc.h @@ -28,6 +28,13 @@ struct xfs_btree_cur; /* Move inodes in clusters of this size */ #define XFS_INODE_BIG_CLUSTER_SIZE 8192 +struct xfs_icluster { + bool deleted; /* record is deleted */ + xfs_ino_t first_ino; /* first inode number */ + xfs_inoalloc_t alloc; /* inode phys. allocation bitmap for + * sparse chunks */ +}; + /* Calculate and return the number of filesystem blocks per inode cluster */ static inline int xfs_icluster_size_fsb( @@ -90,8 +97,7 @@ xfs_difree( struct xfs_trans *tp, /* transaction pointer */ xfs_ino_t inode, /* inode to be freed */ struct xfs_bmap_free *flist, /* extents to free */ - int *deleted, /* set if inode cluster was deleted */ - xfs_ino_t *first_ino); /* first inode in deleted cluster */ + struct xfs_icluster *ifree); /* cluster info if deleted */ /* * Return the location of the inode in imap, for mapping it into a buffer. diff --git a/fs/xfs/xfs_inode.c b/fs/xfs/xfs_inode.c index 1a5e068..641fe34 100644 --- a/fs/xfs/xfs_inode.c +++ b/fs/xfs/xfs_inode.c @@ -2181,9 +2181,9 @@ xfs_iunlink_remove( */ STATIC int xfs_ifree_cluster( - xfs_inode_t *free_ip, - xfs_trans_t *tp, - xfs_ino_t inum) + xfs_inode_t *free_ip, + xfs_trans_t *tp, + struct xfs_icluster *xic) { xfs_mount_t *mp = free_ip->i_mount; int blks_per_cluster; @@ -2196,13 +2196,26 @@ xfs_ifree_cluster( xfs_inode_log_item_t *iip; xfs_log_item_t *lip; struct xfs_perag *pag; + xfs_ino_t inum; + inum = xic->first_ino; pag = xfs_perag_get(mp, XFS_INO_TO_AGNO(mp, inum)); blks_per_cluster = xfs_icluster_size_fsb(mp); inodes_per_cluster = blks_per_cluster << mp->m_sb.sb_inopblog; nbufs = mp->m_ialloc_blks / blks_per_cluster; for (j = 0; j < nbufs; j++, inum += inodes_per_cluster) { + /* + * The allocation bitmap tells us which inodes of the chunk were + * physically allocated. Skip the cluster if an inode falls into + * a sparse region. + */ + if ((xic->alloc & XFS_INOBT_MASK(inum - xic->first_ino)) == 0) { + ASSERT(((inum - xic->first_ino) % + inodes_per_cluster) == 0); + continue; + } + blkno = XFS_AGB_TO_DADDR(mp, XFS_INO_TO_AGNO(mp, inum), XFS_INO_TO_AGBNO(mp, inum)); @@ -2360,8 +2373,7 @@ xfs_ifree( xfs_bmap_free_t *flist) { int error; - int delete; - xfs_ino_t first_ino; + struct xfs_icluster xic = { 0 }; ASSERT(xfs_isilocked(ip, XFS_ILOCK_EXCL)); ASSERT(ip->i_d.di_nlink == 0); @@ -2377,7 +2389,7 @@ xfs_ifree( if (error) return error; - error = xfs_difree(tp, ip->i_ino, flist, &delete, &first_ino); + error = xfs_difree(tp, ip->i_ino, flist, &xic); if (error) return error; @@ -2394,8 +2406,8 @@ xfs_ifree( ip->i_d.di_gen++; xfs_trans_log_inode(tp, ip, XFS_ILOG_CORE); - if (delete) - error = xfs_ifree_cluster(ip, tp, first_ino); + if (xic.deleted) + error = xfs_ifree_cluster(ip, tp, &xic); return error; } -- 1.8.3.1 From bfoster@redhat.com Thu Jul 24 09:54:14 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: xfs@oss.sgi.com Delivered-To: xfs@oss.sgi.com Received: from relay.sgi.com (relay3.corp.sgi.com [198.149.34.15]) by oss.sgi.com (Postfix) with ESMTP id E9CBE7F3F for ; Thu, 24 Jul 2014 09:54:13 -0500 (CDT) Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by relay3.corp.sgi.com (Postfix) with ESMTP id 969A9AC009 for ; Thu, 24 Jul 2014 07:54:13 -0700 (PDT) X-ASG-Debug-ID: 1406213652-04bdf030af47b30001-NocioJ Received: from mx1.redhat.com (mx1.redhat.com [209.132.183.28]) by cuda.sgi.com with ESMTP id 255dPdzpDUF6gw8a (version=TLSv1 cipher=AES256-SHA bits=256 verify=NO) for ; Thu, 24 Jul 2014 07:54:12 -0700 (PDT) X-Barracuda-Envelope-From: bfoster@redhat.com X-Barracuda-Apparent-Source-IP: 209.132.183.28 X-ASG-Whitelist: Client Received: from int-mx13.intmail.prod.int.phx2.redhat.com (int-mx13.intmail.prod.int.phx2.redhat.com [10.5.11.26]) by mx1.redhat.com (8.14.4/8.14.4) with ESMTP id s6OEsBwY007147 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK) for ; Thu, 24 Jul 2014 10:54:12 -0400 Received: from bfoster.bfoster ([10.18.41.237]) by int-mx13.intmail.prod.int.phx2.redhat.com (8.14.4/8.14.4) with ESMTP id s6OENAFj029062 for ; Thu, 24 Jul 2014 10:23:10 -0400 Received: by bfoster.bfoster (Postfix, from userid 1000) id E32C7124B8D; Thu, 24 Jul 2014 10:23:08 -0400 (EDT) From: Brian Foster To: xfs@oss.sgi.com Subject: [PATCH 10/18] xfs: set sparse inodes feature bit when a sparse chunk is allocated Date: Thu, 24 Jul 2014 10:23:00 -0400 X-ASG-Orig-Subj: [PATCH 10/18] xfs: set sparse inodes feature bit when a sparse chunk is allocated Message-Id: <1406211788-63206-11-git-send-email-bfoster@redhat.com> In-Reply-To: <1406211788-63206-1-git-send-email-bfoster@redhat.com> References: <1406211788-63206-1-git-send-email-bfoster@redhat.com> X-Scanned-By: MIMEDefang 2.68 on 10.5.11.26 X-Barracuda-Connect: mx1.redhat.com[209.132.183.28] X-Barracuda-Start-Time: 1406213652 X-Barracuda-Encrypted: AES256-SHA X-Barracuda-URL: http://192.48.157.11:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 The sparse chunk inode record format is backwards compatible with old format inobt records as long as full chunks are allocated. The holemask field uses higher order bytes of the freecount. While sparse chunks can be enabled on previously unsupported fs, older kernel drivers cannot parse sparse inode records. Set the feature incompatible bit once a sparse inode chunk is allocated to prevent older XFS drivers from tripping over the new format. Signed-off-by: Brian Foster --- fs/xfs/libxfs/xfs_ialloc.c | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) diff --git a/fs/xfs/libxfs/xfs_ialloc.c b/fs/xfs/libxfs/xfs_ialloc.c index 4226b1b..4dd45c2 100644 --- a/fs/xfs/libxfs/xfs_ialloc.c +++ b/fs/xfs/libxfs/xfs_ialloc.c @@ -407,6 +407,27 @@ error: return error; } +STATIC void +xfs_sbversion_add_spinodes( + struct xfs_trans *tp, + struct xfs_mount *mp) +{ + if (xfs_sb_has_incompat_log_feature(&mp->m_sb, + XFS_SB_FEAT_INCOMPAT_SPINODES)) + return; + + spin_lock(&mp->m_sb_lock); + if (xfs_sb_has_incompat_log_feature(&mp->m_sb, + XFS_SB_FEAT_INCOMPAT_SPINODES)) { + spin_unlock(&mp->m_sb_lock); + return; + } + + mp->m_sb.sb_features_incompat |= XFS_SB_FEAT_INCOMPAT_SPINODES; + spin_unlock(&mp->m_sb_lock); + xfs_mod_sb(tp, XFS_SB_FEATURES_INCOMPAT); +} + /* * Allocate new inodes in the allocation group specified by agbp. * Return 0 for success, else error code. @@ -631,6 +652,18 @@ xfs_ialloc_ag_alloc( if (error) return error; } + + /* + * Set an incompat feature bit as old drivers can't parse sparse + * records. Pre-sparse inode chunk drivers will include the + * holemask in the higher order freecount bits, resulting in a + * bogus value. + * + * XXX: when is this bit removed? + */ + if (xfs_inobt_issparse(&rec)) + xfs_sbversion_add_spinodes(tp, args.mp); + /* * Log allocation group header fields */ -- 1.8.3.1 From bfoster@redhat.com Thu Jul 24 09:54:14 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: xfs@oss.sgi.com Delivered-To: xfs@oss.sgi.com Received: from relay.sgi.com (relay3.corp.sgi.com [198.149.34.15]) by oss.sgi.com (Postfix) with ESMTP id 9594B7F3F for ; Thu, 24 Jul 2014 09:54:14 -0500 (CDT) Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by relay3.corp.sgi.com (Postfix) with ESMTP id 16F0FAC009 for ; Thu, 24 Jul 2014 07:54:13 -0700 (PDT) X-ASG-Debug-ID: 1406213652-04cbb0728a46690001-NocioJ Received: from mx1.redhat.com (mx1.redhat.com [209.132.183.28]) by cuda.sgi.com with ESMTP id Bj72mqtzCuHSCi2f (version=TLSv1 cipher=AES256-SHA bits=256 verify=NO) for ; Thu, 24 Jul 2014 07:54:12 -0700 (PDT) X-Barracuda-Envelope-From: bfoster@redhat.com X-Barracuda-Apparent-Source-IP: 209.132.183.28 X-ASG-Whitelist: Client Received: from int-mx13.intmail.prod.int.phx2.redhat.com (int-mx13.intmail.prod.int.phx2.redhat.com [10.5.11.26]) by mx1.redhat.com (8.14.4/8.14.4) with ESMTP id s6OEsBwa007147 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK) for ; Thu, 24 Jul 2014 10:54:12 -0400 Received: from bfoster.bfoster ([10.18.41.237]) by int-mx13.intmail.prod.int.phx2.redhat.com (8.14.4/8.14.4) with ESMTP id s6OENA7C029060 for ; Thu, 24 Jul 2014 10:23:10 -0400 Received: by bfoster.bfoster (Postfix, from userid 1000) id D1FE9124B8B; Thu, 24 Jul 2014 10:23:08 -0400 (EDT) From: Brian Foster To: xfs@oss.sgi.com Subject: [PATCH 09/18] xfs: allocate sparse inode chunks on full chunk allocation failure Date: Thu, 24 Jul 2014 10:22:59 -0400 X-ASG-Orig-Subj: [PATCH 09/18] xfs: allocate sparse inode chunks on full chunk allocation failure Message-Id: <1406211788-63206-10-git-send-email-bfoster@redhat.com> In-Reply-To: <1406211788-63206-1-git-send-email-bfoster@redhat.com> References: <1406211788-63206-1-git-send-email-bfoster@redhat.com> X-Scanned-By: MIMEDefang 2.68 on 10.5.11.26 X-Barracuda-Connect: mx1.redhat.com[209.132.183.28] X-Barracuda-Start-Time: 1406213652 X-Barracuda-Encrypted: AES256-SHA X-Barracuda-URL: http://192.48.176.25:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 xfs_ialloc_ag_alloc() makes several attempts to allocate a full inode chunk. If all else fails, reduce the allocation to inode cluster size and attempt to allocate a sparse inode chunk. If sparse chunk allocation succeeds, check whether an inobt record already exists that can track the chunk. If so, inherit and update the existing record. Otherwise, insert a new record for the sparse chunk. Update xfs_inobt_insert_rec() to take the holemask as a parameter and set the associated field on disk. Convert xfs_inobt_insert() to xfs_inobt_update_insert() to handle record insertion or update in a generic fashion. This facilitates the continued use of the same function for the inobt and finobt. Signed-off-by: Brian Foster --- fs/xfs/libxfs/xfs_ialloc.c | 105 +++++++++++++++++++++++++++++++++------------ 1 file changed, 77 insertions(+), 28 deletions(-) diff --git a/fs/xfs/libxfs/xfs_ialloc.c b/fs/xfs/libxfs/xfs_ialloc.c index be57b51..4226b1b 100644 --- a/fs/xfs/libxfs/xfs_ialloc.c +++ b/fs/xfs/libxfs/xfs_ialloc.c @@ -121,28 +121,28 @@ xfs_inobt_get_rec( STATIC int xfs_inobt_insert_rec( struct xfs_btree_cur *cur, + __uint16_t holemask, __int32_t freecount, xfs_inofree_t free, int *stat) { - cur->bc_rec.i.ir_holemask = 0; + cur->bc_rec.i.ir_holemask = holemask; cur->bc_rec.i.ir_freecount = freecount; cur->bc_rec.i.ir_free = free; return xfs_btree_insert(cur, stat); } /* - * Insert records describing a newly allocated inode chunk into the inobt. + * Update or insert records describing a newly allocated inode chunk into the + * specified inobt. */ STATIC int -xfs_inobt_insert( - struct xfs_mount *mp, - struct xfs_trans *tp, - struct xfs_buf *agbp, - xfs_agino_t newino, /* start inode of record */ - xfs_agino_t count, /* inode count */ - xfs_inofree_t free, /* free mask */ - xfs_btnum_t btnum) +xfs_inobt_update_insert( + struct xfs_mount *mp, + struct xfs_trans *tp, + struct xfs_buf *agbp, + struct xfs_inobt_rec_incore *rec, /* record to update/insert */ + xfs_btnum_t btnum) { struct xfs_btree_cur *cur; struct xfs_agi *agi = XFS_BUF_TO_AGI(agbp); @@ -152,23 +152,25 @@ xfs_inobt_insert( cur = xfs_inobt_init_cursor(mp, tp, agbp, agno, btnum); - error = xfs_inobt_lookup(cur, newino, XFS_LOOKUP_EQ, &i); - if (error) { - xfs_btree_del_cursor(cur, XFS_BTREE_ERROR); - return error; - } - ASSERT(i == 0); - - error = xfs_inobt_insert_rec(cur, count, free, &i); - if (error) { - xfs_btree_del_cursor(cur, XFS_BTREE_ERROR); - return error; + error = xfs_inobt_lookup(cur, rec->ir_startino, XFS_LOOKUP_EQ, &i); + if (i == 1) { + error = xfs_inobt_update(cur, rec); + if (error) + goto error; + } else { + error = xfs_inobt_insert_rec(cur, rec->ir_holemask, + rec->ir_freecount, rec->ir_free, &i); + if (error) + goto error; + ASSERT(i == 1); } - ASSERT(i == 1); xfs_btree_del_cursor(cur, XFS_BTREE_NOERROR); - return 0; + +error: + xfs_btree_del_cursor(cur, XFS_BTREE_ERROR); + return error; } /* @@ -423,6 +425,10 @@ xfs_ialloc_ag_alloc( xfs_agino_t newlen; /* new number of inodes */ int isaligned = 0; /* inode allocation at stripe unit */ /* boundary */ + uint16_t allocmask = (uint16_t) -1; /* init. to full chunk */ + struct xfs_inobt_rec_incore rec; + int offset; + struct xfs_perag *pag; memset(&args, 0, sizeof(args)); @@ -538,6 +544,28 @@ xfs_ialloc_ag_alloc( return error; } + /* + * Finally, try a sparse allocation if the filesystem supports it. + */ + if (xfs_sb_version_hassparseinodes(&args.mp->m_sb) && + args.fsbno == NULLFSBLOCK) { + args.type = XFS_ALLOCTYPE_NEAR_BNO; + args.agbno = be32_to_cpu(agi->agi_root); + args.fsbno = XFS_AGB_TO_FSB(args.mp, agno, args.agbno); + args.alignment = xfs_ialloc_cluster_alignment(args.mp); + + /* allocate sparse regions in cluster granularity */ + args.minlen = xfs_ialloc_cluster_alignment(args.mp); + args.maxlen = args.minlen; + + error = xfs_alloc_vextent(&args); + if (error) + return error; + + newlen = args.len << args.mp->m_sb.sb_inopblog; + allocmask = (1 << (newlen / XFS_INODES_PER_SPCHUNK)) - 1; + } + if (args.fsbno == NULLFSBLOCK) { *alloc = 0; return 0; @@ -572,14 +600,34 @@ xfs_ialloc_ag_alloc( /* * Insert records describing the new inode chunk into the btrees. */ - error = xfs_inobt_insert(args.mp, tp, agbp, newino, newlen, - XFS_INOBT_ALL_FREE, XFS_BTNUM_INO); + error = xfs_spchunk_has_record(args.mp, tp, agbp, newino, newlen, + XFS_BTNUM_INO, &rec); + if (error) + return error; + if (rec.ir_startino == NULLAGINO) { + /* no existing record, set all fields */ + rec.ir_startino = newino; + rec.ir_holemask = ~allocmask; + rec.ir_freecount = newlen; + rec.ir_free = XFS_INOBT_ALL_FREE; + } else { + /* we already have a record, update it */ + offset = newino - rec.ir_startino; + ASSERT(offset % XFS_INODES_PER_SPCHUNK == 0); + + allocmask <<= offset / XFS_INODES_PER_SPCHUNK; + + rec.ir_freecount += newlen; + rec.ir_holemask &= ~allocmask; + } + + error = xfs_inobt_update_insert(args.mp, tp, agbp, &rec, XFS_BTNUM_INO); if (error) return error; if (xfs_sb_version_hasfinobt(&args.mp->m_sb)) { - error = xfs_inobt_insert(args.mp, tp, agbp, newino, newlen, - XFS_INOBT_ALL_FREE, XFS_BTNUM_FINO); + error = xfs_inobt_update_insert(args.mp, tp, agbp, &rec, + XFS_BTNUM_FINO); if (error) return error; } @@ -1644,7 +1692,8 @@ xfs_difree_finobt( */ XFS_WANT_CORRUPTED_GOTO(ibtrec->ir_freecount == 1, error); - error = xfs_inobt_insert_rec(cur, ibtrec->ir_freecount, + error = xfs_inobt_insert_rec(cur, ibtrec->ir_holemask, + ibtrec->ir_freecount, ibtrec->ir_free, &i); if (error) goto error; -- 1.8.3.1 From bfoster@redhat.com Thu Jul 24 10:04:25 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: xfs@oss.sgi.com Delivered-To: xfs@oss.sgi.com Received: from relay.sgi.com (relay3.corp.sgi.com [198.149.34.15]) by oss.sgi.com (Postfix) with ESMTP id 7B4577F3F for ; Thu, 24 Jul 2014 10:04:25 -0500 (CDT) Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by relay3.corp.sgi.com (Postfix) with ESMTP id 0A75FAC005 for ; Thu, 24 Jul 2014 08:04:21 -0700 (PDT) X-ASG-Debug-ID: 1406214260-04cb6c0a6542cc0001-NocioJ Received: from mx1.redhat.com (mx1.redhat.com [209.132.183.28]) by cuda.sgi.com with ESMTP id Mf5hdG2OdKyMIvAy (version=TLSv1 cipher=AES256-SHA bits=256 verify=NO) for ; Thu, 24 Jul 2014 08:04:20 -0700 (PDT) X-Barracuda-Envelope-From: bfoster@redhat.com X-Barracuda-Apparent-Source-IP: 209.132.183.28 X-ASG-Whitelist: Client Received: from int-mx09.intmail.prod.int.phx2.redhat.com (int-mx09.intmail.prod.int.phx2.redhat.com [10.5.11.22]) by mx1.redhat.com (8.14.4/8.14.4) with ESMTP id s6OF4GrO003624 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK) for ; Thu, 24 Jul 2014 11:04:19 -0400 Received: from bfoster.bfoster ([10.18.41.237]) by int-mx09.intmail.prod.int.phx2.redhat.com (8.14.4/8.14.4) with ESMTP id s6OENAoE030181 for ; Thu, 24 Jul 2014 10:23:10 -0400 Received: by bfoster.bfoster (Postfix, from userid 1000) id 85B22124B96; Thu, 24 Jul 2014 10:23:09 -0400 (EDT) From: Brian Foster To: xfs@oss.sgi.com Subject: [PATCH 18/18] xfs: enable sparse inode chunks for v5 superblocks Date: Thu, 24 Jul 2014 10:23:08 -0400 X-ASG-Orig-Subj: [PATCH 18/18] xfs: enable sparse inode chunks for v5 superblocks Message-Id: <1406211788-63206-19-git-send-email-bfoster@redhat.com> In-Reply-To: <1406211788-63206-1-git-send-email-bfoster@redhat.com> References: <1406211788-63206-1-git-send-email-bfoster@redhat.com> X-Scanned-By: MIMEDefang 2.68 on 10.5.11.22 X-Barracuda-Connect: mx1.redhat.com[209.132.183.28] X-Barracuda-Start-Time: 1406214260 X-Barracuda-Encrypted: AES256-SHA X-Barracuda-URL: http://192.48.176.15:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 Enable the use and processing of sparse inode chunks. Fix the xfs_sb_version_hassparseinodes() helper to allow the allocation of sparse chunks on v5 format superblocks. Add the incompat. feature bit to the *_ALL mask such that fs' with sparse chunks can be mounted. Signed-off-by: Brian Foster --- fs/xfs/libxfs/xfs_sb.h | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/fs/xfs/libxfs/xfs_sb.h b/fs/xfs/libxfs/xfs_sb.h index 6f48de9..f2299b7 100644 --- a/fs/xfs/libxfs/xfs_sb.h +++ b/fs/xfs/libxfs/xfs_sb.h @@ -511,7 +511,8 @@ xfs_sb_has_ro_compat_feature( #define XFS_SB_FEAT_INCOMPAT_FTYPE (1 << 0) /* filetype in dirent */ #define XFS_SB_FEAT_INCOMPAT_SPINODES (1 << 1) /* sparse inode chunks */ #define XFS_SB_FEAT_INCOMPAT_ALL \ - (XFS_SB_FEAT_INCOMPAT_FTYPE) + (XFS_SB_FEAT_INCOMPAT_FTYPE| \ + XFS_SB_FEAT_INCOMPAT_SPINODES) #define XFS_SB_FEAT_INCOMPAT_UNKNOWN ~XFS_SB_FEAT_INCOMPAT_ALL static inline bool @@ -561,7 +562,7 @@ static inline int xfs_sb_version_hasfinobt(xfs_sb_t *sbp) static inline int xfs_sb_version_hassparseinodes(struct xfs_sb *sbp) { - return 0; /* not yet enabled */ + return XFS_SB_VERSION_NUM(sbp) == XFS_SB_VERSION_5; } /* -- 1.8.3.1 From bfoster@redhat.com Thu Jul 24 10:04:25 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: xfs@oss.sgi.com Delivered-To: xfs@oss.sgi.com Received: from relay.sgi.com (relay3.corp.sgi.com [198.149.34.15]) by oss.sgi.com (Postfix) with ESMTP id 94DE37F47 for ; Thu, 24 Jul 2014 10:04:25 -0500 (CDT) Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by relay3.corp.sgi.com (Postfix) with ESMTP id 41247AC006 for ; Thu, 24 Jul 2014 08:04:22 -0700 (PDT) X-ASG-Debug-ID: 1406214260-04bdf030af483c0001-NocioJ Received: from mx1.redhat.com (mx1.redhat.com [209.132.183.28]) by cuda.sgi.com with ESMTP id CkUvbBF72VNUAZs5 (version=TLSv1 cipher=AES256-SHA bits=256 verify=NO) for ; Thu, 24 Jul 2014 08:04:21 -0700 (PDT) X-Barracuda-Envelope-From: bfoster@redhat.com X-Barracuda-Apparent-Source-IP: 209.132.183.28 X-ASG-Whitelist: Client Received: from int-mx09.intmail.prod.int.phx2.redhat.com (int-mx09.intmail.prod.int.phx2.redhat.com [10.5.11.22]) by mx1.redhat.com (8.14.4/8.14.4) with ESMTP id s6OF4GrQ003624 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK) for ; Thu, 24 Jul 2014 11:04:20 -0400 Received: from bfoster.bfoster ([10.18.41.237]) by int-mx09.intmail.prod.int.phx2.redhat.com (8.14.4/8.14.4) with ESMTP id s6OENAoC030181 for ; Thu, 24 Jul 2014 10:23:10 -0400 Received: by bfoster.bfoster (Postfix, from userid 1000) id A21A4124B88; Thu, 24 Jul 2014 10:23:08 -0400 (EDT) From: Brian Foster To: xfs@oss.sgi.com Subject: [PATCH 06/18] xfs: pass inode count through ordered icreate log item Date: Thu, 24 Jul 2014 10:22:56 -0400 X-ASG-Orig-Subj: [PATCH 06/18] xfs: pass inode count through ordered icreate log item Message-Id: <1406211788-63206-7-git-send-email-bfoster@redhat.com> In-Reply-To: <1406211788-63206-1-git-send-email-bfoster@redhat.com> References: <1406211788-63206-1-git-send-email-bfoster@redhat.com> X-Scanned-By: MIMEDefang 2.68 on 10.5.11.22 X-Barracuda-Connect: mx1.redhat.com[209.132.183.28] X-Barracuda-Start-Time: 1406214261 X-Barracuda-Encrypted: AES256-SHA X-Barracuda-URL: http://192.48.157.11:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 v5 superblocks use an ordered log item for logging the initialization of inode chunks. The icreate log item is currently hardcoded to an inode count of 64 inodes. The agbno and extent length are used to initialize the inode chunk from log recovery. While an incorrect inode count does not lead to bad inode chunk initialization, we should pass the correct inode count such that log recovery has enough data to perform meaningful validity checks on the chunk. Signed-off-by: Brian Foster --- fs/xfs/libxfs/xfs_ialloc.c | 7 ++++--- fs/xfs/libxfs/xfs_ialloc.h | 2 +- fs/xfs/xfs_log_recover.c | 4 ++-- 3 files changed, 7 insertions(+), 6 deletions(-) diff --git a/fs/xfs/libxfs/xfs_ialloc.c b/fs/xfs/libxfs/xfs_ialloc.c index 8286fda..27d3437 100644 --- a/fs/xfs/libxfs/xfs_ialloc.c +++ b/fs/xfs/libxfs/xfs_ialloc.c @@ -223,6 +223,7 @@ xfs_ialloc_inode_init( struct xfs_mount *mp, struct xfs_trans *tp, struct list_head *buffer_list, + int icount, xfs_agnumber_t agno, xfs_agblock_t agbno, xfs_agblock_t length, @@ -278,7 +279,7 @@ xfs_ialloc_inode_init( * they track in the AIL as if they were physically logged. */ if (tp) - xfs_icreate_log(tp, agno, agbno, mp->m_ialloc_inos, + xfs_icreate_log(tp, agno, agbno, icount, mp->m_sb.sb_inodesize, length, gen); } else version = 2; @@ -497,8 +498,8 @@ xfs_ialloc_ag_alloc( * rather than a linear progression to prevent the next generation * number from being easily guessable. */ - error = xfs_ialloc_inode_init(args.mp, tp, NULL, agno, args.agbno, - args.len, prandom_u32()); + error = xfs_ialloc_inode_init(args.mp, tp, NULL, newlen, agno, + args.agbno, args.len, prandom_u32()); if (error) return error; diff --git a/fs/xfs/libxfs/xfs_ialloc.h b/fs/xfs/libxfs/xfs_ialloc.h index 95ad1c0..62c1381 100644 --- a/fs/xfs/libxfs/xfs_ialloc.h +++ b/fs/xfs/libxfs/xfs_ialloc.h @@ -156,7 +156,7 @@ int xfs_inobt_get_rec(struct xfs_btree_cur *cur, * Inode chunk initialisation routine */ int xfs_ialloc_inode_init(struct xfs_mount *mp, struct xfs_trans *tp, - struct list_head *buffer_list, + struct list_head *buffer_list, int icount, xfs_agnumber_t agno, xfs_agblock_t agbno, xfs_agblock_t length, unsigned int gen); diff --git a/fs/xfs/xfs_log_recover.c b/fs/xfs/xfs_log_recover.c index fbc2362..cbe782a 100644 --- a/fs/xfs/xfs_log_recover.c +++ b/fs/xfs/xfs_log_recover.c @@ -3236,8 +3236,8 @@ xlog_recover_do_icreate_pass2( XFS_AGB_TO_DADDR(mp, agno, agbno), length, 0)) return 0; - xfs_ialloc_inode_init(mp, NULL, buffer_list, agno, agbno, length, - be32_to_cpu(icl->icl_gen)); + xfs_ialloc_inode_init(mp, NULL, buffer_list, count, agno, agbno, length, + be32_to_cpu(icl->icl_gen)); return 0; } -- 1.8.3.1 From bfoster@redhat.com Thu Jul 24 10:16:12 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: xfs@oss.sgi.com Delivered-To: xfs@oss.sgi.com Received: from relay.sgi.com (relay3.corp.sgi.com [198.149.34.15]) by oss.sgi.com (Postfix) with ESMTP id 1DC987F3F for ; Thu, 24 Jul 2014 10:16:12 -0500 (CDT) Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by relay3.corp.sgi.com (Postfix) with ESMTP id 933C3AC006 for ; Thu, 24 Jul 2014 08:16:11 -0700 (PDT) X-ASG-Debug-ID: 1406214969-04cbb0728a48300001-NocioJ Received: from mx1.redhat.com (mx1.redhat.com [209.132.183.28]) by cuda.sgi.com with ESMTP id hQK0rMAJYL4lDEFO (version=TLSv1 cipher=AES256-SHA bits=256 verify=NO) for ; Thu, 24 Jul 2014 08:16:10 -0700 (PDT) X-Barracuda-Envelope-From: bfoster@redhat.com X-Barracuda-Apparent-Source-IP: 209.132.183.28 X-ASG-Whitelist: Client Received: from int-mx11.intmail.prod.int.phx2.redhat.com (int-mx11.intmail.prod.int.phx2.redhat.com [10.5.11.24]) by mx1.redhat.com (8.14.4/8.14.4) with ESMTP id s6OFG8MD020274 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK) for ; Thu, 24 Jul 2014 11:16:09 -0400 Received: from bfoster.bfoster ([10.18.41.237]) by int-mx11.intmail.prod.int.phx2.redhat.com (8.14.4/8.14.4) with ESMTP id s6OEN9h9017000 for ; Thu, 24 Jul 2014 10:23:09 -0400 Received: by bfoster.bfoster (Postfix, from userid 1000) id 78939124B7E; Thu, 24 Jul 2014 10:23:08 -0400 (EDT) From: Brian Foster To: xfs@oss.sgi.com Subject: [PATCH 04/18] xfs: introduce inode record hole mask for sparse inode chunks Date: Thu, 24 Jul 2014 10:22:54 -0400 X-ASG-Orig-Subj: [PATCH 04/18] xfs: introduce inode record hole mask for sparse inode chunks Message-Id: <1406211788-63206-5-git-send-email-bfoster@redhat.com> In-Reply-To: <1406211788-63206-1-git-send-email-bfoster@redhat.com> References: <1406211788-63206-1-git-send-email-bfoster@redhat.com> X-Scanned-By: MIMEDefang 2.68 on 10.5.11.24 X-Barracuda-Connect: mx1.redhat.com[209.132.183.28] X-Barracuda-Start-Time: 1406214970 X-Barracuda-Encrypted: AES256-SHA X-Barracuda-URL: http://192.48.176.25:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 The inode btrees track 64 inodes per record, regardless of inode size. Thus, inode chunks on disk vary in size depending on the size of the inodes. This creates a contiguous allocation requirement for new inode chunks that can be difficult to satisfy on an aged and fragmented (free space) filesystem. The inode record freecount currently uses 4 bytes on disk to track the free inode count. With a maximum freecount value of 64, only one byte is required. Convert the freecount field to a single byte and reserve two of the remaining 3 higher order bytes left to the hole mask field. The hole mask field tracks potential holes in the chunks of physical space that the inode record refers to. This facilitates the sparse allocation of inode chunks when contiguous chunks are not available and allows the inode btrees to identify what portions of the chunk contain valid inodes. Tracking holes means the field is initialized to zero and thus maintains backwards compatibility with existing filesystems. E.g., the higher order bytes of a counter with a max value of 64 are already initialized to 0. Update the inode record management functions to handle the new field and initialize it to zero for now. Signed-off-by: Brian Foster --- fs/xfs/libxfs/xfs_format.h | 7 +++++-- fs/xfs/libxfs/xfs_ialloc.c | 9 +++++++-- fs/xfs/libxfs/xfs_ialloc_btree.c | 4 +++- 3 files changed, 15 insertions(+), 5 deletions(-) diff --git a/fs/xfs/libxfs/xfs_format.h b/fs/xfs/libxfs/xfs_format.h index 34d85ac..39022d9 100644 --- a/fs/xfs/libxfs/xfs_format.h +++ b/fs/xfs/libxfs/xfs_format.h @@ -221,13 +221,16 @@ static inline xfs_inofree_t xfs_inobt_maskn(int i, int n) */ typedef struct xfs_inobt_rec { __be32 ir_startino; /* starting inode number */ - __be32 ir_freecount; /* count of free inodes (set bits) */ + __be16 ir_holemask; /* hole mask for sparse chunks */ + __u8 ir_pad; + __u8 ir_freecount; /* count of free inodes (set bits) */ __be64 ir_free; /* free inode mask */ } xfs_inobt_rec_t; typedef struct xfs_inobt_rec_incore { xfs_agino_t ir_startino; /* starting inode number */ - __int32_t ir_freecount; /* count of free inodes (set bits) */ + __uint16_t ir_holemask; /* hole mask for sparse chunks */ + __uint8_t ir_freecount; /* count of free inodes (set bits) */ xfs_inofree_t ir_free; /* free inode mask */ } xfs_inobt_rec_incore_t; diff --git a/fs/xfs/libxfs/xfs_ialloc.c b/fs/xfs/libxfs/xfs_ialloc.c index 5448a74..8286fda 100644 --- a/fs/xfs/libxfs/xfs_ialloc.c +++ b/fs/xfs/libxfs/xfs_ialloc.c @@ -68,6 +68,7 @@ xfs_inobt_lookup( int *stat) /* success/failure */ { cur->bc_rec.i.ir_startino = ino; + cur->bc_rec.i.ir_holemask = 0; cur->bc_rec.i.ir_freecount = 0; cur->bc_rec.i.ir_free = 0; return xfs_btree_lookup(cur, dir, stat); @@ -85,7 +86,9 @@ xfs_inobt_update( union xfs_btree_rec rec; rec.inobt.ir_startino = cpu_to_be32(irec->ir_startino); - rec.inobt.ir_freecount = cpu_to_be32(irec->ir_freecount); + rec.inobt.ir_holemask = cpu_to_be16(irec->ir_holemask); + rec.inobt.ir_pad = 0; + rec.inobt.ir_freecount = irec->ir_freecount; rec.inobt.ir_free = cpu_to_be64(irec->ir_free); return xfs_btree_update(cur, &rec); } @@ -105,7 +108,8 @@ xfs_inobt_get_rec( error = xfs_btree_get_rec(cur, &rec, stat); if (!error && *stat == 1) { irec->ir_startino = be32_to_cpu(rec->inobt.ir_startino); - irec->ir_freecount = be32_to_cpu(rec->inobt.ir_freecount); + irec->ir_holemask = be16_to_cpu(rec->inobt.ir_holemask); + irec->ir_freecount = rec->inobt.ir_freecount; irec->ir_free = be64_to_cpu(rec->inobt.ir_free); } return error; @@ -121,6 +125,7 @@ xfs_inobt_insert_rec( xfs_inofree_t free, int *stat) { + cur->bc_rec.i.ir_holemask = 0; cur->bc_rec.i.ir_freecount = freecount; cur->bc_rec.i.ir_free = free; return xfs_btree_insert(cur, stat); diff --git a/fs/xfs/libxfs/xfs_ialloc_btree.c b/fs/xfs/libxfs/xfs_ialloc_btree.c index c9b06f3..0c94879 100644 --- a/fs/xfs/libxfs/xfs_ialloc_btree.c +++ b/fs/xfs/libxfs/xfs_ialloc_btree.c @@ -169,7 +169,9 @@ xfs_inobt_init_rec_from_cur( union xfs_btree_rec *rec) { rec->inobt.ir_startino = cpu_to_be32(cur->bc_rec.i.ir_startino); - rec->inobt.ir_freecount = cpu_to_be32(cur->bc_rec.i.ir_freecount); + rec->inobt.ir_holemask = cpu_to_be16(cur->bc_rec.i.ir_holemask); + rec->inobt.ir_pad = 0; + rec->inobt.ir_freecount = cur->bc_rec.i.ir_freecount; rec->inobt.ir_free = cpu_to_be64(cur->bc_rec.i.ir_free); } -- 1.8.3.1 From bfoster@redhat.com Thu Jul 24 10:16:14 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: xfs@oss.sgi.com Delivered-To: xfs@oss.sgi.com Received: from relay.sgi.com (relay2.corp.sgi.com [137.38.102.29]) by oss.sgi.com (Postfix) with ESMTP id 0D6E97F50 for ; Thu, 24 Jul 2014 10:16:14 -0500 (CDT) Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by relay2.corp.sgi.com (Postfix) with ESMTP id C5B7E30405F for ; Thu, 24 Jul 2014 08:16:10 -0700 (PDT) X-ASG-Debug-ID: 1406214968-04bdf030b049a70001-NocioJ Received: from mx1.redhat.com (mx1.redhat.com [209.132.183.28]) by cuda.sgi.com with ESMTP id xziAgKnllxeOb3YL (version=TLSv1 cipher=AES256-SHA bits=256 verify=NO) for ; Thu, 24 Jul 2014 08:16:09 -0700 (PDT) X-Barracuda-Envelope-From: bfoster@redhat.com X-Barracuda-Apparent-Source-IP: 209.132.183.28 X-ASG-Whitelist: Client Received: from int-mx11.intmail.prod.int.phx2.redhat.com (int-mx11.intmail.prod.int.phx2.redhat.com [10.5.11.24]) by mx1.redhat.com (8.14.4/8.14.4) with ESMTP id s6OFG8MB020274 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK) for ; Thu, 24 Jul 2014 11:16:08 -0400 Received: from bfoster.bfoster ([10.18.41.237]) by int-mx11.intmail.prod.int.phx2.redhat.com (8.14.4/8.14.4) with ESMTP id s6OENAdt017005 for ; Thu, 24 Jul 2014 10:23:10 -0400 Received: by bfoster.bfoster (Postfix, from userid 1000) id 94E27124B81; Thu, 24 Jul 2014 10:23:08 -0400 (EDT) From: Brian Foster To: xfs@oss.sgi.com Subject: [PATCH 05/18] xfs: create macros/helpers for dealing with sparse inode chunks Date: Thu, 24 Jul 2014 10:22:55 -0400 X-ASG-Orig-Subj: [PATCH 05/18] xfs: create macros/helpers for dealing with sparse inode chunks Message-Id: <1406211788-63206-6-git-send-email-bfoster@redhat.com> In-Reply-To: <1406211788-63206-1-git-send-email-bfoster@redhat.com> References: <1406211788-63206-1-git-send-email-bfoster@redhat.com> X-Scanned-By: MIMEDefang 2.68 on 10.5.11.24 X-Barracuda-Connect: mx1.redhat.com[209.132.183.28] X-Barracuda-Start-Time: 1406214969 X-Barracuda-Encrypted: AES256-SHA X-Barracuda-URL: http://192.48.157.11:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 Sparse inode chunks allow the traditional inode btree record format to describe an inode chunk that is not fully allocated and/or contiguous. Define a couple constants that set requirements for allocation and management of such chunks. Also define a helper to easily detect sparse inode chunks. The granularity of a sparse chunk is defined by the the 16-bit holemask field in the inode record. Assuming 64 inodes per full chunk, a single holemask bit accounts for 4 inodes. The minimum allocation requirement for a sparse inode chunk is defined as the minimum number of blocks required to meet the 4 inode granularity. Signed-off-by: Brian Foster --- fs/xfs/libxfs/xfs_format.h | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/fs/xfs/libxfs/xfs_format.h b/fs/xfs/libxfs/xfs_format.h index 39022d9..0baad50 100644 --- a/fs/xfs/libxfs/xfs_format.h +++ b/fs/xfs/libxfs/xfs_format.h @@ -211,6 +211,11 @@ typedef __uint64_t xfs_inofree_t; #define XFS_INOBT_ALL_FREE ((xfs_inofree_t)-1) #define XFS_INOBT_MASK(i) ((xfs_inofree_t)1 << (i)) +#define XFS_INODES_PER_SPCHUNK \ + (XFS_INODES_PER_CHUNK / (NBBY * sizeof(__uint16_t))) +#define XFS_INOBT_MIN_SPCHUNKLEN(sb) \ + (roundup(XFS_INODES_PER_SPCHUNK, sb.sb_inopblock) / sb.sb_inopblock) + static inline xfs_inofree_t xfs_inobt_maskn(int i, int n) { return ((n >= XFS_INODES_PER_CHUNK ? 0 : XFS_INOBT_MASK(n)) - 1) << i; @@ -234,6 +239,10 @@ typedef struct xfs_inobt_rec_incore { xfs_inofree_t ir_free; /* free inode mask */ } xfs_inobt_rec_incore_t; +static inline bool xfs_inobt_issparse(struct xfs_inobt_rec_incore *rec) +{ + return rec->ir_holemask == 0 ? false : true; +} /* * Key structure -- 1.8.3.1 From bfoster@redhat.com Thu Jul 24 10:16:15 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: xfs@oss.sgi.com Delivered-To: xfs@oss.sgi.com Received: from relay.sgi.com (relay1.corp.sgi.com [137.38.102.111]) by oss.sgi.com (Postfix) with ESMTP id 137A97F50 for ; Thu, 24 Jul 2014 10:16:15 -0500 (CDT) Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by relay1.corp.sgi.com (Postfix) with ESMTP id C984B8F8033 for ; Thu, 24 Jul 2014 08:16:11 -0700 (PDT) X-ASG-Debug-ID: 1406214970-04bdf030af49a80001-NocioJ Received: from mx1.redhat.com (mx1.redhat.com [209.132.183.28]) by cuda.sgi.com with ESMTP id MdKXet9TLPGVj1DQ (version=TLSv1 cipher=AES256-SHA bits=256 verify=NO) for ; Thu, 24 Jul 2014 08:16:10 -0700 (PDT) X-Barracuda-Envelope-From: bfoster@redhat.com X-Barracuda-Apparent-Source-IP: 209.132.183.28 X-ASG-Whitelist: Client Received: from int-mx11.intmail.prod.int.phx2.redhat.com (int-mx11.intmail.prod.int.phx2.redhat.com [10.5.11.24]) by mx1.redhat.com (8.14.4/8.14.4) with ESMTP id s6OFG8MF020274 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK) for ; Thu, 24 Jul 2014 11:16:10 -0400 Received: from bfoster.bfoster ([10.18.41.237]) by int-mx11.intmail.prod.int.phx2.redhat.com (8.14.4/8.14.4) with ESMTP id s6OENAdv017005 for ; Thu, 24 Jul 2014 10:23:10 -0400 Received: by bfoster.bfoster (Postfix, from userid 1000) id 76C7A124B8F; Thu, 24 Jul 2014 10:23:09 -0400 (EDT) From: Brian Foster To: xfs@oss.sgi.com Subject: [PATCH 17/18] xfs: use actual inode count for sparse records in bulkstat/inumbers Date: Thu, 24 Jul 2014 10:23:07 -0400 X-ASG-Orig-Subj: [PATCH 17/18] xfs: use actual inode count for sparse records in bulkstat/inumbers Message-Id: <1406211788-63206-18-git-send-email-bfoster@redhat.com> In-Reply-To: <1406211788-63206-1-git-send-email-bfoster@redhat.com> References: <1406211788-63206-1-git-send-email-bfoster@redhat.com> X-Scanned-By: MIMEDefang 2.68 on 10.5.11.24 X-Barracuda-Connect: mx1.redhat.com[209.132.183.28] X-Barracuda-Start-Time: 1406214970 X-Barracuda-Encrypted: AES256-SHA X-Barracuda-URL: http://192.48.157.11:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 The bulkstat and inumbers mechanisms make the assumption that inode records consist of a full 64 inode chunk in several places. E.g., this is used to track how many inodes have been processed overall as well as to determine when all in-use inodes of a record have been processed. The record processing, in particular, increments the record freecount for each in-use inode until it hits the expected max of 64. This is invalid for sparse inode records. While all inodes might be marked free in the free mask regardless of whether they are allocated on disk, ir_freecount is based on the total number of physically allocated inodes and thus may be less than 64 inodes on a completely free inode chunk. Create the xfs_inobt_count() helper to calculate the total number of physically allocated inodes based on the holemask. Use the helper in xfs_bulkstat() and xfs_inumbers() instead of the fixed XFS_INODE_PER_CHUNK value to ensure correct accounting in the event of sparse inode records. Signed-off-by: Brian Foster --- fs/xfs/libxfs/xfs_ialloc.c | 27 +++++++++++++++++++++++++++ fs/xfs/libxfs/xfs_ialloc.h | 5 +++++ fs/xfs/xfs_itable.c | 12 +++++++----- 3 files changed, 39 insertions(+), 5 deletions(-) diff --git a/fs/xfs/libxfs/xfs_ialloc.c b/fs/xfs/libxfs/xfs_ialloc.c index 86c6ccd..daf317f 100644 --- a/fs/xfs/libxfs/xfs_ialloc.c +++ b/fs/xfs/libxfs/xfs_ialloc.c @@ -951,6 +951,33 @@ xfs_inobt_first_free_inode( } /* + * Calculate the real count of inodes in a chunk. + */ +int +xfs_inobt_count( + struct xfs_inobt_rec_incore *rec) +{ + __uint16_t allocmask; + uint allocbitmap; + int nextbit; + int count = 0; + + if (!xfs_inobt_issparse(rec)) + return XFS_INODES_PER_CHUNK; + + allocmask = ~rec->ir_holemask; + allocbitmap = allocmask; + + nextbit = xfs_next_bit(&allocbitmap, 1, 0); + while (nextbit != -1) { + count += XFS_INODES_PER_SPCHUNK; + nextbit = xfs_next_bit(&allocbitmap, 1, nextbit + 1); + } + + return count; +} + +/* * Allocate an inode using the inobt-only algorithm. */ STATIC int diff --git a/fs/xfs/libxfs/xfs_ialloc.h b/fs/xfs/libxfs/xfs_ialloc.h index 5aa8d6f..4230b22 100644 --- a/fs/xfs/libxfs/xfs_ialloc.h +++ b/fs/xfs/libxfs/xfs_ialloc.h @@ -166,4 +166,9 @@ int xfs_ialloc_inode_init(struct xfs_mount *mp, struct xfs_trans *tp, xfs_agnumber_t agno, xfs_agblock_t agbno, xfs_agblock_t length, unsigned int gen); +/* + * Calculate the real count of inodes in a chunk. + */ +int xfs_inobt_count(struct xfs_inobt_rec_incore *rec); + #endif /* __XFS_IALLOC_H__ */ diff --git a/fs/xfs/xfs_itable.c b/fs/xfs/xfs_itable.c index 7e54992..8ba967c 100644 --- a/fs/xfs/xfs_itable.c +++ b/fs/xfs/xfs_itable.c @@ -312,11 +312,12 @@ xfs_bulkstat( } r.ir_free |= xfs_inobt_maskn(0, chunkidx); irbp->ir_startino = r.ir_startino; + irbp->ir_holemask = r.ir_holemask; irbp->ir_freecount = r.ir_freecount; irbp->ir_free = r.ir_free; irbp++; agino = r.ir_startino + XFS_INODES_PER_CHUNK; - icount = XFS_INODES_PER_CHUNK - r.ir_freecount; + icount = xfs_inobt_count(&r) - r.ir_freecount; } else { /* * If any of those tests failed, bump the @@ -376,7 +377,7 @@ xfs_bulkstat( * If this chunk has any allocated inodes, save it. * Also start read-ahead now for this chunk. */ - if (r.ir_freecount < XFS_INODES_PER_CHUNK) { + if (r.ir_freecount < xfs_inobt_count(&r)) { struct blk_plug plug; /* * Loop over all clusters in the next chunk. @@ -397,10 +398,11 @@ xfs_bulkstat( } blk_finish_plug(&plug); irbp->ir_startino = r.ir_startino; + irbp->ir_holemask = r.ir_holemask; irbp->ir_freecount = r.ir_freecount; irbp->ir_free = r.ir_free; irbp++; - icount += XFS_INODES_PER_CHUNK - r.ir_freecount; + icount += xfs_inobt_count(&r) - r.ir_freecount; } /* * Set agino to after this chunk and bump the cursor. @@ -427,7 +429,7 @@ xfs_bulkstat( */ for (agino = irbp->ir_startino, chunkidx = clustidx = 0; XFS_BULKSTAT_UBLEFT(ubleft) && - irbp->ir_freecount < XFS_INODES_PER_CHUNK; + irbp->ir_freecount < xfs_inobt_count(irbp); chunkidx++, clustidx++, agino++) { ASSERT(chunkidx < XFS_INODES_PER_CHUNK); @@ -654,7 +656,7 @@ xfs_inumbers( buffer[bufidx].xi_startino = XFS_AGINO_TO_INO(mp, agno, r.ir_startino); buffer[bufidx].xi_alloccount = - XFS_INODES_PER_CHUNK - r.ir_freecount; + xfs_inobt_count(&r) - r.ir_freecount; buffer[bufidx].xi_allocmask = ~r.ir_free; bufidx++; left--; -- 1.8.3.1 From bfoster@redhat.com Thu Jul 24 11:28:23 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: xfs@oss.sgi.com Delivered-To: xfs@oss.sgi.com Received: from relay.sgi.com (relay2.corp.sgi.com [137.38.102.29]) by oss.sgi.com (Postfix) with ESMTP id 2BC4A7F3F for ; Thu, 24 Jul 2014 11:28:23 -0500 (CDT) Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by relay2.corp.sgi.com (Postfix) with ESMTP id 19301304071 for ; Thu, 24 Jul 2014 09:28:20 -0700 (PDT) X-ASG-Debug-ID: 1406219298-04cbb0728c4e020001-NocioJ Received: from mx1.redhat.com (mx1.redhat.com [209.132.183.28]) by cuda.sgi.com with ESMTP id fCF8BTYj9JFL37nq (version=TLSv1 cipher=AES256-SHA bits=256 verify=NO) for ; Thu, 24 Jul 2014 09:28:19 -0700 (PDT) X-Barracuda-Envelope-From: bfoster@redhat.com X-Barracuda-Apparent-Source-IP: 209.132.183.28 X-ASG-Whitelist: Client Received: from int-mx13.intmail.prod.int.phx2.redhat.com (int-mx13.intmail.prod.int.phx2.redhat.com [10.5.11.26]) by mx1.redhat.com (8.14.4/8.14.4) with ESMTP id s6OGSI1A001976 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK) for ; Thu, 24 Jul 2014 12:28:18 -0400 Received: from bfoster.bfoster ([10.18.41.237]) by int-mx13.intmail.prod.int.phx2.redhat.com (8.14.4/8.14.4) with ESMTP id s6OGSHnS012498 for ; Thu, 24 Jul 2014 12:28:17 -0400 Received: by bfoster.bfoster (Postfix, from userid 1000) id A3F6C124B7C; Thu, 24 Jul 2014 12:28:16 -0400 (EDT) Date: Thu, 24 Jul 2014 12:28:16 -0400 From: Brian Foster To: xfs@oss.sgi.com Subject: Re: [PATCH RFC 00/18] xfs: sparse inode chunks Message-ID: <20140724162815.GC37832@bfoster.bfoster> X-ASG-Orig-Subj: Re: [PATCH RFC 00/18] xfs: sparse inode chunks References: <1406211788-63206-1-git-send-email-bfoster@redhat.com> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="dTy3Mrz/UPE2dbVg" Content-Disposition: inline In-Reply-To: <1406211788-63206-1-git-send-email-bfoster@redhat.com> User-Agent: Mutt/1.5.23 (2014-03-12) X-Scanned-By: MIMEDefang 2.68 on 10.5.11.26 X-Barracuda-Connect: mx1.redhat.com[209.132.183.28] X-Barracuda-Start-Time: 1406219298 X-Barracuda-Encrypted: AES256-SHA X-Barracuda-URL: http://192.48.176.25:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 --dTy3Mrz/UPE2dbVg Content-Type: text/plain; charset=us-ascii Content-Disposition: inline On Thu, Jul 24, 2014 at 10:22:50AM -0400, Brian Foster wrote: > Hi all, > > This is a first pass at sparse inode chunk support for XFS. Some > background on this work is available here: > > http://oss.sgi.com/archives/xfs/2013-08/msg00346.html > > The basic idea is to allow the partial allocation of inode chunks into > fragmented regions of free space. This is accomplished through addition > of a holemask field into the inobt record that defines what portion(s) > of an inode chunk are invalid (i.e., holes in the chunk). This work is > not quite complete, but is at a point where I'd like to start getting > feedback on the design and what direction to take for some of the known > gaps. > I've attached a tarball to this message with a couple userspace patches and an xfstests patch to facilitate experimentation. The userspace patches update the inobt record data structure and add the holemask field to xfs_db to facilitate poking around. Note that the rest of userspace is untouched at this point, including repair being broken, etc., so I don't recommend use beyond xfs_db. The xfstests test case fragments free space, allocates inodes until ENOSPC and expects to consume most of the free space available in the fs. The "fragmentation factor" is currently dynamic and based on the cluster size due to the cluster size scaling behavior documented below. Finally, sparse inode chunks are only enabled for v5 superblocks, so a crc enabled fs is required to test. Brian > The basic breakdown of functionality in this set is as follows: > > - Patches 1-2 - A couple generic cleanups that are dependencies for later > patches in the series. > - Patches 3-5 - Basic data structure update, feature bit and minor > helper introduction. > - Patches 6-7 - Update v5 icreate logging and recovery to handle sparse > inode records. > - Patches 8-13 - Allocation support for sparse inode records. Physical > chunk allocation and individual inode allocation. > - Patches 14-16 - Deallocation support for sparse inode chunks. Physical > chunk deallocation, individual inode free and cluster free. > - Patch 17 - Fixes for bulkstat/inumbers. > - Patch 18 - Activate support for sparse chunk allocation and > processing. > > This work is lightly tested for regression (some xfstests failures due > to repair) and basic functionality. I have a new xfstests test I'll > forward along for demonstration purposes. > > Some notes on gaps in the design: > > - Sparse inode chunk allocation granularity: > > The current minimum sparse chunk allocation granularity is the cluster > size. My initial attempts at this work tried to redefine to the minimum > chunk length based on the holemask granularity (a la the stale macro I > seemingly left in this series ;), but this involves tweaking the > codepaths that use the cluster size (i.e., imap) which proved rather > hairy. This also means we need a solution where an imap can change if an > inode was initially mapped as a sparse chunk and said chunk is > subsequently made full. E.g., we'd perhaps need to invalidate the inode > buffers for sparse chunks at the time where they are made full. Given > that, I landed on using the cluster size and leaving those codepaths as > is for the time being. > > There is a tradeoff here for v5 superblocks because we've recently made > a change to scale the cluster size based on the factor increase in the > inode size from the default (see xfsprogs commit 7b5f9801). This means > that effectiveness of sparse chunks is tied to whether the level of free > space fragmentation matches the cluster size. By that I mean effectivess > is good (near 100% utilization possible) if free space fragmentation > leaves free extents around that at least match the cluster size. If > fragmentation is worse than the cluster size, effectiveness is reduced. > This can also be demonstrated with the forthcoming xfstests test. > > - On-disk lifecycle of the sparse inode chunks feature bit: > > We set an incompatible feature bit once a sparse inode chunk is > allocated because older revisions of code will interpret the non-zero > holemask bits in the higher order bytes of the record freecount. The > feature bit must be removed once all sparse inode chunks are eliminated > one way or another. This series does not currently remove the feature > bit once set simply because I hadn't thought through the mechanism quite > yet. For the next version, I'm thinking about adding an inobt walk > mechanism that can be conditionally invoked (i.e., feature bit is > currently set and a sparse inode chunk has been eliminated) either via > workqueue on an interval or during unmount if necessary. Thoughts or > alternative suggestions on that appreciated. > > That's about it for now. Thoughts, reviews, flames appreciated. Thanks. > > Brian > > Brian Foster (18): > xfs: refactor xfs_inobt_insert() to eliminate loop and support > variable count > xfs: pass xfs_mount directly to xfs_ialloc_cluster_alignment() > xfs: define sparse inode chunks v5 sb feature bit and helper function > xfs: introduce inode record hole mask for sparse inode chunks > xfs: create macros/helpers for dealing with sparse inode chunks > xfs: pass inode count through ordered icreate log item > xfs: handle sparse inode chunks in icreate log recovery > xfs: create helper to manage record overlap for sparse inode chunks > xfs: allocate sparse inode chunks on full chunk allocation failure > xfs: set sparse inodes feature bit when a sparse chunk is allocated > xfs: reduce min. inode allocation space requirement for sparse inode > chunks > xfs: helper to convert inobt record holemask to inode alloc. bitmap > xfs: filter out sparse regions from individual inode allocation > xfs: update free inode record logic to support sparse inode records > xfs: only free allocated regions of inode chunks > xfs: skip unallocated regions of inode chunks in xfs_ifree_cluster() > xfs: use actual inode count for sparse records in bulkstat/inumbers > xfs: enable sparse inode chunks for v5 superblocks > > fs/xfs/libxfs/xfs_format.h | 17 +- > fs/xfs/libxfs/xfs_ialloc.c | 441 +++++++++++++++++++++++++++++++++------ > fs/xfs/libxfs/xfs_ialloc.h | 17 +- > fs/xfs/libxfs/xfs_ialloc_btree.c | 4 +- > fs/xfs/libxfs/xfs_sb.h | 9 +- > fs/xfs/xfs_inode.c | 28 ++- > fs/xfs/xfs_itable.c | 12 +- > fs/xfs/xfs_log_recover.c | 23 +- > 8 files changed, 460 insertions(+), 91 deletions(-) > > -- > 1.8.3.1 > > _______________________________________________ > xfs mailing list > xfs@oss.sgi.com > http://oss.sgi.com/mailman/listinfo/xfs --dTy3Mrz/UPE2dbVg Content-Type: application/x-bzip2 Content-Disposition: attachment; filename="xfs_spinodes_user.tar.bz2" Content-Transfer-Encoding: base64 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 UJAhNlHm --dTy3Mrz/UPE2dbVg-- From tinguely@sgi.com Thu Jul 24 12:08:41 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=RP_MATCHES_RCVD autolearn=ham version=3.3.1 X-Original-To: xfs@oss.sgi.com Delivered-To: xfs@oss.sgi.com Received: from relay.sgi.com (relay2.corp.sgi.com [137.38.102.29]) by oss.sgi.com (Postfix) with ESMTP id 3E1597F3F for ; Thu, 24 Jul 2014 12:08:41 -0500 (CDT) Received: from eagdhcp-232-188.americas.sgi.com (eagdhcp-232-188.americas.sgi.com [128.162.232.188]) by relay2.corp.sgi.com (Postfix) with ESMTP id F30F6304051; Thu, 24 Jul 2014 10:08:37 -0700 (PDT) Message-ID: <53D13D94.9030607@sgi.com> Date: Thu, 24 Jul 2014 12:08:36 -0500 From: Mark Tinguely User-Agent: Mozilla/5.0 (X11; FreeBSD amd64; rv:9.0) Gecko/20120122 Thunderbird/9.0 MIME-Version: 1.0 To: Brian Foster , xfs-oss Subject: Re: [PATCH 03/18] xfs: define sparse inode chunks v5 sb feature bit and helper function References: <1406211788-63206-1-git-send-email-bfoster@redhat.com> <1406211788-63206-4-git-send-email-bfoster@redhat.com> In-Reply-To: <1406211788-63206-4-git-send-email-bfoster@redhat.com> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit On 07/24/14 09:22, Brian Foster wrote: > The sparse inode chunks feature will use the helper function to enable > the allocation of sparse inode chunks. The incompatible feature bit is > set on disk once a sparse inode chunk is allocated to prevent older > drivers from mounting an fs with sparse chunks. > > Note that the feature is hardcoded disabled and the feature bit not > included in the all features mask until fully implemented. > > Signed-off-by: Brian Foster > --- Sorry if I missed it in the series but is there an XFS_FSOP_GEOM_FLAGS_SPINODES for xfs_info/growfs? Thanks, --Mark. From bfoster@redhat.com Thu Jul 24 12:37:06 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: xfs@oss.sgi.com Delivered-To: xfs@oss.sgi.com Received: from relay.sgi.com (relay2.corp.sgi.com [137.38.102.29]) by oss.sgi.com (Postfix) with ESMTP id 8DD817F3F for ; Thu, 24 Jul 2014 12:37:06 -0500 (CDT) Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by relay2.corp.sgi.com (Postfix) with ESMTP id 67C96304067 for ; Thu, 24 Jul 2014 10:37:06 -0700 (PDT) X-ASG-Debug-ID: 1406223424-04bdf030b053ca0001-NocioJ Received: from mx1.redhat.com (mx1.redhat.com [209.132.183.28]) by cuda.sgi.com with ESMTP id kJDTNNyW9cCohQp4 (version=TLSv1 cipher=AES256-SHA bits=256 verify=NO); Thu, 24 Jul 2014 10:37:05 -0700 (PDT) X-Barracuda-Envelope-From: bfoster@redhat.com X-Barracuda-Apparent-Source-IP: 209.132.183.28 X-ASG-Whitelist: Client Received: from int-mx09.intmail.prod.int.phx2.redhat.com (int-mx09.intmail.prod.int.phx2.redhat.com [10.5.11.22]) by mx1.redhat.com (8.14.4/8.14.4) with ESMTP id s6OHb3wU013014 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Thu, 24 Jul 2014 13:37:04 -0400 Received: from bfoster.bfoster ([10.18.41.237]) by int-mx09.intmail.prod.int.phx2.redhat.com (8.14.4/8.14.4) with ESMTP id s6OHb3xd018866; Thu, 24 Jul 2014 13:37:03 -0400 Received: by bfoster.bfoster (Postfix, from userid 1000) id C67BE124B7C; Thu, 24 Jul 2014 13:37:01 -0400 (EDT) Date: Thu, 24 Jul 2014 13:37:01 -0400 From: Brian Foster To: Mark Tinguely Cc: xfs-oss Subject: Re: [PATCH 03/18] xfs: define sparse inode chunks v5 sb feature bit and helper function Message-ID: <20140724173701.GD37832@bfoster.bfoster> X-ASG-Orig-Subj: Re: [PATCH 03/18] xfs: define sparse inode chunks v5 sb feature bit and helper function References: <1406211788-63206-1-git-send-email-bfoster@redhat.com> <1406211788-63206-4-git-send-email-bfoster@redhat.com> <53D13D94.9030607@sgi.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <53D13D94.9030607@sgi.com> User-Agent: Mutt/1.5.23 (2014-03-12) X-Scanned-By: MIMEDefang 2.68 on 10.5.11.22 X-Barracuda-Connect: mx1.redhat.com[209.132.183.28] X-Barracuda-Start-Time: 1406223424 X-Barracuda-Encrypted: AES256-SHA X-Barracuda-URL: http://192.48.157.11:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 On Thu, Jul 24, 2014 at 12:08:36PM -0500, Mark Tinguely wrote: > On 07/24/14 09:22, Brian Foster wrote: > >The sparse inode chunks feature will use the helper function to enable > >the allocation of sparse inode chunks. The incompatible feature bit is > >set on disk once a sparse inode chunk is allocated to prevent older > >drivers from mounting an fs with sparse chunks. > > > >Note that the feature is hardcoded disabled and the feature bit not > >included in the all features mask until fully implemented. > > > >Signed-off-by: Brian Foster > >--- > > Sorry if I missed it in the series but is there an > XFS_FSOP_GEOM_FLAGS_SPINODES for xfs_info/growfs? > Nope, looks like I missed it. It probably slipped my mind as I haven't got into userspace yet and thus hadn't thought about xfs_info. I'll make a note to add it, thanks! Brian > Thanks, > > --Mark. > > From tinguely@sgi.com Thu Jul 24 13:38:12 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=RP_MATCHES_RCVD autolearn=ham version=3.3.1 X-Original-To: xfs@oss.sgi.com Delivered-To: xfs@oss.sgi.com Received: from relay.sgi.com (relay1.corp.sgi.com [137.38.102.111]) by oss.sgi.com (Postfix) with ESMTP id 9B72C7F3F for ; Thu, 24 Jul 2014 13:38:12 -0500 (CDT) Received: from eagdhcp-232-188.americas.sgi.com (eagdhcp-232-188.americas.sgi.com [128.162.232.188]) by relay1.corp.sgi.com (Postfix) with ESMTP id 58A1F8F8049; Thu, 24 Jul 2014 11:38:09 -0700 (PDT) Message-ID: <53D1528F.5090906@sgi.com> Date: Thu, 24 Jul 2014 13:38:07 -0500 From: Mark Tinguely User-Agent: Mozilla/5.0 (X11; FreeBSD amd64; rv:9.0) Gecko/20120122 Thunderbird/9.0 MIME-Version: 1.0 To: Brian Foster CC: xfs-oss Subject: Re: [PATCH 03/18] xfs: define sparse inode chunks v5 sb feature bit and helper function References: <1406211788-63206-1-git-send-email-bfoster@redhat.com> <1406211788-63206-4-git-send-email-bfoster@redhat.com> <53D13D94.9030607@sgi.com> <20140724173701.GD37832@bfoster.bfoster> In-Reply-To: <20140724173701.GD37832@bfoster.bfoster> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit On 07/24/14 12:37, Brian Foster wrote: > On Thu, Jul 24, 2014 at 12:08:36PM -0500, Mark Tinguely wrote: >> On 07/24/14 09:22, Brian Foster wrote: >>> The sparse inode chunks feature will use the helper function to enable >>> the allocation of sparse inode chunks. The incompatible feature bit is >>> set on disk once a sparse inode chunk is allocated to prevent older >>> drivers from mounting an fs with sparse chunks. >>> >>> Note that the feature is hardcoded disabled and the feature bit not >>> included in the all features mask until fully implemented. >>> >>> Signed-off-by: Brian Foster >>> --- >> >> Sorry if I missed it in the series but is there an >> XFS_FSOP_GEOM_FLAGS_SPINODES for xfs_info/growfs? >> > > Nope, looks like I missed it. It probably slipped my mind as I haven't > got into userspace yet and thus hadn't thought about xfs_info. I'll make > a note to add it, thanks! > > Brian Again forgive my quick scanning of the series, but am I correct in thinking that this does not change the minimum number of reserved blocks for create like fs ops. The create/rename do some attempts to continue when it cannot get the full number of reserved blocks. Would allocating a sparse inode chunk make sense in that case? My gut says the complication does not. Thanks again, --Mark. From tinguely@eagdhcp-232-188.americas.sgi.com Thu Jul 24 13:51:13 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=RP_MATCHES_RCVD autolearn=ham version=3.3.1 X-Original-To: xfs@oss.sgi.com Delivered-To: xfs@oss.sgi.com Received: from relay.sgi.com (relay3.corp.sgi.com [198.149.34.15]) by oss.sgi.com (Postfix) with ESMTP id B23DE7F3F for ; Thu, 24 Jul 2014 13:51:13 -0500 (CDT) Received: from eagdhcp-232-188.americas.sgi.com (eagdhcp-232-188.americas.sgi.com [128.162.232.188]) by relay3.corp.sgi.com (Postfix) with ESMTP id 30BF0AC00A for ; Thu, 24 Jul 2014 11:51:13 -0700 (PDT) Received: from eagdhcp-232-188.americas.sgi.com (localhost [127.0.0.1]) by eagdhcp-232-188.americas.sgi.com (8.14.5/8.14.5) with ESMTP id s6OIpBYT003327 for ; Thu, 24 Jul 2014 13:51:11 -0500 (CDT) (envelope-from tinguely@eagdhcp-232-188.americas.sgi.com) Received: (from tinguely@localhost) by eagdhcp-232-188.americas.sgi.com (8.14.5/8.14.5/Submit) id s6OIpBwd003326; Thu, 24 Jul 2014 13:51:11 -0500 (CDT) (envelope-from tinguely) Message-Id: <20140724184830.434943824@sgi.com> Date: Thu, 24 Jul 2014 13:47:49 -0500 From: Mark Tinguely To: xfs@oss.sgi.com Subject: [PATCH] xfsprogs: fix typo in mkfs.xfs References: <20140724184748.800975529@sgi.com> Content-Disposition: inline; filename=xfsprogs-fix-topology-typo.patch Fix typo in xfs.mkfs output. Signed-off-by: Mark Tinguely --- mkfs/xfs_mkfs.c | 2 +- po/pl.po | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) Index: b/mkfs/xfs_mkfs.c =================================================================== --- a/mkfs/xfs_mkfs.c +++ b/mkfs/xfs_mkfs.c @@ -447,7 +447,7 @@ static void blkid_get_topology( out_free_probe: blkid_free_probe(pr); fprintf(stderr, - _("warning: unable to probe device toplology for device %s\n"), + _("warning: unable to probe device topology for device %s\n"), device); } Index: b/po/pl.po =================================================================== --- a/po/pl.po +++ b/po/pl.po @@ -7171,7 +7171,7 @@ msgstr "Można użyć -f do wymuszenia u #: .././mkfs/xfs_mkfs.c:450 #, c-format -msgid "warning: unable to probe device toplology for device %s\n" +msgid "warning: unable to probe device topology for device %s\n" msgstr "uwaga: nie udało się odczytać topologii urządzenia %s\n" #: .././mkfs/xfs_mkfs.c:578 From dsterba@suse.cz Thu Jul 24 14:22:51 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: xfs@oss.sgi.com Delivered-To: xfs@oss.sgi.com Received: from relay.sgi.com (relay1.corp.sgi.com [137.38.102.111]) by oss.sgi.com (Postfix) with ESMTP id 592FA7F3F for ; Thu, 24 Jul 2014 14:22:51 -0500 (CDT) Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by relay1.corp.sgi.com (Postfix) with ESMTP id 2833F8F8040 for ; Thu, 24 Jul 2014 12:22:50 -0700 (PDT) X-ASG-Debug-ID: 1406229767-04bdf030b05b9e0001-NocioJ Received: from mx2.suse.de (cantor2.suse.de [195.135.220.15]) by cuda.sgi.com with ESMTP id fy2P9sqzyNMeMUiY (version=TLSv1 cipher=AES256-SHA bits=256 verify=NO) for ; Thu, 24 Jul 2014 12:22:48 -0700 (PDT) X-Barracuda-Envelope-From: dsterba@suse.cz X-Barracuda-Apparent-Source-IP: 195.135.220.15 Received: from relay2.suse.de (charybdis-ext.suse.de [195.135.220.254]) by mx2.suse.de (Postfix) with ESMTP id 074A2AB07; Thu, 24 Jul 2014 19:22:45 +0000 (UTC) Received: by ds.suse.cz (Postfix, from userid 10065) id 8232EDAAE1; Thu, 24 Jul 2014 21:22:45 +0200 (CEST) Date: Thu, 24 Jul 2014 21:22:45 +0200 From: David Sterba To: Andreas Dilger Cc: linux-fsdevel , linux-nilfs@vger.kernel.org, xfs@oss.sgi.com, Btrfs Developer List , Ext4 Developers List , ocfs2-devel@oss.oracle.com Subject: Re: [PATCH 2/4 v3] fiemap: add EXTENT_DATA_COMPRESSED flag Message-ID: <20140724192245.GG1553@suse.cz> X-ASG-Orig-Subj: Re: [PATCH 2/4 v3] fiemap: add EXTENT_DATA_COMPRESSED flag Reply-To: dsterba@suse.cz Mail-Followup-To: dsterba@suse.cz, Andreas Dilger , linux-fsdevel , linux-nilfs@vger.kernel.org, xfs@oss.sgi.com, Btrfs Developer List , Ext4 Developers List , ocfs2-devel@oss.oracle.com References: <4f8d5dc5b51a43efaf16c39398c23a6276e40a30.1386778303.git.dsterba@suse.cz> <20131212232443.GL31386@dastard> <9520AB36-B728-423A-8EA1-FDD22B79AE90@dilger.ca> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.5.22.1-rc1 (2013-10-16) X-Barracuda-Connect: cantor2.suse.de[195.135.220.15] X-Barracuda-Start-Time: 1406229768 X-Barracuda-Encrypted: AES256-SHA X-Barracuda-URL: http://192.48.157.11:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 X-Barracuda-Spam-Score: 0.00 X-Barracuda-Spam-Status: No, SCORE=0.00 using per-user scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.7 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.7782 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- On Thu, Jul 17, 2014 at 12:07:57AM -0600, Andreas Dilger wrote: > any progress on this patch series? I'm sorry I got distracted at the end of year and did not finish the series. > I never saw an updated version of this patch series after the last round of > reviews, but it would be great to move it forward. I have filefrag patches > in my e2fsprogs tree waiting for an updated version of your patch. > > I recall the main changes were: > - add FIEMAP_EXTENT_PHYS_LENGTH flag to indicate if fe_phys_length was valid fe_phys_length will be always valid, so other the flags are set only if it's not equal to the logical length. > - rename fe_length to fe_logi_length and #define fe_length fe_logi_length > - always fill in fe_phys_length (= fe_logi_length for uncompressed files) > and set FIEMAP_EXTENT_PHYS_LENGTH whether the extent is compressed or not This is my understanding and contradicts the first point. > - add WARN_ONCE() in fiemap_fill_next_extent() as described below > > I don't know if there was any clear statement about whether there should be > separate FIEMAP_EXTENT_PHYS_LENGTH and FIEMAP_EXTENT_DATA_COMPRESSED flags, > or if the latter should be implicit? Probably makes sense to have separate > flags. It should be fine to use: > > #define FIEMAP_EXTENT_PHYS_LENGTH 0x00000010 > > since this flag was never used. I've kept only FIEMAP_EXTENT_DATA_COMPRESSED, I don't see a need for FIEMAP_EXTENT_PHYS_LENGTH and this would be yet another flag because the FIEMAP_EXTENT_DATA_ENCODED is also implied. I'll send V4, we can discuss the PHYS_LENGTH flag then. From bfoster@redhat.com Thu Jul 24 14:38:30 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: xfs@oss.sgi.com Delivered-To: xfs@oss.sgi.com Received: from relay.sgi.com (relay1.corp.sgi.com [137.38.102.111]) by oss.sgi.com (Postfix) with ESMTP id 86CC37F4E for ; Thu, 24 Jul 2014 14:38:30 -0500 (CDT) Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by relay1.corp.sgi.com (Postfix) with ESMTP id 639F38F8054 for ; Thu, 24 Jul 2014 12:38:30 -0700 (PDT) X-ASG-Debug-ID: 1406230708-04cb6c0a6552600001-NocioJ Received: from mx1.redhat.com (mx1.redhat.com [209.132.183.28]) by cuda.sgi.com with ESMTP id KUBCF23FuWPW7GZm (version=TLSv1 cipher=AES256-SHA bits=256 verify=NO); Thu, 24 Jul 2014 12:38:28 -0700 (PDT) X-Barracuda-Envelope-From: bfoster@redhat.com X-Barracuda-Apparent-Source-IP: 209.132.183.28 X-ASG-Whitelist: Client Received: from int-mx11.intmail.prod.int.phx2.redhat.com (int-mx11.intmail.prod.int.phx2.redhat.com [10.5.11.24]) by mx1.redhat.com (8.14.4/8.14.4) with ESMTP id s6OJcRSx026300 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Thu, 24 Jul 2014 15:38:27 -0400 Received: from bfoster.bfoster ([10.18.41.237]) by int-mx11.intmail.prod.int.phx2.redhat.com (8.14.4/8.14.4) with ESMTP id s6OJcRjn005757; Thu, 24 Jul 2014 15:38:27 -0400 Received: by bfoster.bfoster (Postfix, from userid 1000) id 33F85124B7C; Thu, 24 Jul 2014 15:38:26 -0400 (EDT) Date: Thu, 24 Jul 2014 15:38:26 -0400 From: Brian Foster To: Mark Tinguely Cc: xfs-oss Subject: Re: [PATCH 03/18] xfs: define sparse inode chunks v5 sb feature bit and helper function Message-ID: <20140724193825.GE37832@bfoster.bfoster> X-ASG-Orig-Subj: Re: [PATCH 03/18] xfs: define sparse inode chunks v5 sb feature bit and helper function References: <1406211788-63206-1-git-send-email-bfoster@redhat.com> <1406211788-63206-4-git-send-email-bfoster@redhat.com> <53D13D94.9030607@sgi.com> <20140724173701.GD37832@bfoster.bfoster> <53D1528F.5090906@sgi.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <53D1528F.5090906@sgi.com> User-Agent: Mutt/1.5.23 (2014-03-12) X-Scanned-By: MIMEDefang 2.68 on 10.5.11.24 X-Barracuda-Connect: mx1.redhat.com[209.132.183.28] X-Barracuda-Start-Time: 1406230708 X-Barracuda-Encrypted: AES256-SHA X-Barracuda-URL: http://192.48.176.15:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 On Thu, Jul 24, 2014 at 01:38:07PM -0500, Mark Tinguely wrote: > On 07/24/14 12:37, Brian Foster wrote: > >On Thu, Jul 24, 2014 at 12:08:36PM -0500, Mark Tinguely wrote: > >>On 07/24/14 09:22, Brian Foster wrote: > >>>The sparse inode chunks feature will use the helper function to enable > >>>the allocation of sparse inode chunks. The incompatible feature bit is > >>>set on disk once a sparse inode chunk is allocated to prevent older > >>>drivers from mounting an fs with sparse chunks. > >>> > >>>Note that the feature is hardcoded disabled and the feature bit not > >>>included in the all features mask until fully implemented. > >>> > >>>Signed-off-by: Brian Foster > >>>--- > >> > >>Sorry if I missed it in the series but is there an > >>XFS_FSOP_GEOM_FLAGS_SPINODES for xfs_info/growfs? > >> > > > >Nope, looks like I missed it. It probably slipped my mind as I haven't > >got into userspace yet and thus hadn't thought about xfs_info. I'll make > >a note to add it, thanks! > > > >Brian > > Again forgive my quick scanning of the series, but am I correct in thinking > that this does not change the minimum number of reserved blocks for create > like fs ops. The create/rename do some attempts to continue when it cannot > get the full number of reserved blocks. Would allocating a sparse inode > chunk make sense in that case? My gut says the complication does not. > No problem, thanks for looking. Correct... I haven't made any changes to transaction reservations or things like XFS_CREATE_SPACE_RES(), etc. xfs_create() has the kind of logic you describe where we set resblks = 0 if the reservation fails with ENOSPC and try again with a flag set to indicate we can't do allocations. My understanding is that this is justified since we could always allocate an inode from an existing record and a dentry from an unused slot in a directory. Technically, I think we could explicitly allocate a sparse chunk in this scenario if we wanted to, but we'd have to pass that down to/through the allocation code in xfs_ialloc_ag_alloc(). I could be wrong, but I think the reservation failure in this case will always be limited to a case where we are truly up against ENOSPC (as opposed to failing due to an extent length or alignment requirement), since the reservation comes out of the sb counters. Given that, I tend to agree that it might not be worth the extra complexity there. Brian > Thanks again, > > --Mark. > > From sandeen@sandeen.net Thu Jul 24 15:55:57 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: xfs@oss.sgi.com Delivered-To: xfs@oss.sgi.com Received: from relay.sgi.com (relay1.corp.sgi.com [137.38.102.111]) by oss.sgi.com (Postfix) with ESMTP id 394EA7F3F for ; Thu, 24 Jul 2014 15:55:57 -0500 (CDT) Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by relay1.corp.sgi.com (Postfix) with ESMTP id 18B998F804B for ; Thu, 24 Jul 2014 13:55:53 -0700 (PDT) X-ASG-Debug-ID: 1406235345-04bdf0475003710001-NocioJ Received: from sandeen.net (sandeen.net [63.231.237.45]) by cuda.sgi.com with ESMTP id c7D2sp4pH6UAHOpR for ; Thu, 24 Jul 2014 13:55:46 -0700 (PDT) X-Barracuda-Envelope-From: sandeen@sandeen.net X-Barracuda-Apparent-Source-IP: 63.231.237.45 Received: from liberator.sandeen.net (liberator.sandeen.net [10.0.0.4]) (using TLSv1 with cipher DHE-RSA-AES128-SHA (128/128 bits)) (No client certificate requested) by sandeen.net (Postfix) with ESMTPSA id 5828760F96BF; Thu, 24 Jul 2014 15:55:45 -0500 (CDT) Message-ID: <53D172D1.2010308@sandeen.net> Date: Thu, 24 Jul 2014 15:55:45 -0500 From: Eric Sandeen MIME-Version: 1.0 To: Mark Tinguely , xfs@oss.sgi.com Subject: Re: [PATCH] xfsprogs: fix typo in mkfs.xfs References: <20140724184748.800975529@sgi.com> <20140724184830.434943824@sgi.com> X-ASG-Orig-Subj: Re: [PATCH] xfsprogs: fix typo in mkfs.xfs In-Reply-To: <20140724184830.434943824@sgi.com> X-Enigmail-Version: 1.6 Content-Type: text/plain; charset=windows-1252 Content-Transfer-Encoding: 8bit X-Barracuda-Connect: sandeen.net[63.231.237.45] X-Barracuda-Start-Time: 1406235345 X-Barracuda-URL: http://192.48.157.11:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 X-Barracuda-Spam-Score: 0.00 X-Barracuda-Spam-Status: No, SCORE=0.00 using per-user scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.7 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.7786 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- On 7/24/14, 1:47 PM, Mark Tinguely wrote: > Fix typo in xfs.mkfs output. > > Signed-off-by: Mark Tinguely I can do this one! ;) Reviewed-by: Eric Sandeen > --- > mkfs/xfs_mkfs.c | 2 +- > po/pl.po | 2 +- > 2 files changed, 2 insertions(+), 2 deletions(-) > > Index: b/mkfs/xfs_mkfs.c > =================================================================== > --- a/mkfs/xfs_mkfs.c > +++ b/mkfs/xfs_mkfs.c > @@ -447,7 +447,7 @@ static void blkid_get_topology( > out_free_probe: > blkid_free_probe(pr); > fprintf(stderr, > - _("warning: unable to probe device toplology for device %s\n"), > + _("warning: unable to probe device topology for device %s\n"), > device); > } > > Index: b/po/pl.po > =================================================================== > --- a/po/pl.po > +++ b/po/pl.po > @@ -7171,7 +7171,7 @@ msgstr "Można użyć -f do wymuszenia u > > #: .././mkfs/xfs_mkfs.c:450 > #, c-format > -msgid "warning: unable to probe device toplology for device %s\n" > +msgid "warning: unable to probe device topology for device %s\n" > msgstr "uwaga: nie udało się odczytać topologii urządzenia %s\n" > > #: .././mkfs/xfs_mkfs.c:578 > > > > > _______________________________________________ > xfs mailing list > xfs@oss.sgi.com > http://oss.sgi.com/mailman/listinfo/xfs > From david@fromorbit.com Thu Jul 24 17:10:49 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: xfs@oss.sgi.com Delivered-To: xfs@oss.sgi.com Received: from relay.sgi.com (relay3.corp.sgi.com [198.149.34.15]) by oss.sgi.com (Postfix) with ESMTP id 294CB7F3F for ; Thu, 24 Jul 2014 17:10:49 -0500 (CDT) Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by relay3.corp.sgi.com (Postfix) with ESMTP id B6872AC005 for ; Thu, 24 Jul 2014 15:10:45 -0700 (PDT) X-ASG-Debug-ID: 1406239841-04cb6c6c2705f60001-NocioJ Received: from ipmail05.adl6.internode.on.net (ipmail05.adl6.internode.on.net [150.101.137.143]) by cuda.sgi.com with ESMTP id oTYV8gfZyyz3XoY3 for ; Thu, 24 Jul 2014 15:10:41 -0700 (PDT) X-Barracuda-Envelope-From: david@fromorbit.com X-Barracuda-Apparent-Source-IP: 150.101.137.143 X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: Am8KAOOD0VN5LHOdPGdsb2JhbAA+GoMOUleCJ60mAQECAgaZZodDAYEPFwUBAQEBODaEBAEBBCcTHCMQCAMOCgklDwUlAwcaE4hBDja/IhiFY4lQB4RGBZs1i3CKWYFXKy8 Received: from ppp121-44-115-157.lns20.syd6.internode.on.net (HELO dastard) ([121.44.115.157]) by ipmail05.adl6.internode.on.net with ESMTP; 25 Jul 2014 07:40:40 +0930 Received: from dave by dastard with local (Exim 4.80) (envelope-from ) id 1XARDi-0001y6-Q3; Fri, 25 Jul 2014 08:10:38 +1000 Date: Fri, 25 Jul 2014 08:10:38 +1000 From: Dave Chinner To: Brian Foster Cc: xfs@oss.sgi.com Subject: Re: [PATCH 01/18] xfs: refactor xfs_inobt_insert() to eliminate loop and support variable count Message-ID: <20140724221038.GN20518@dastard> X-ASG-Orig-Subj: Re: [PATCH 01/18] xfs: refactor xfs_inobt_insert() to eliminate loop and support variable count References: <1406211788-63206-1-git-send-email-bfoster@redhat.com> <1406211788-63206-2-git-send-email-bfoster@redhat.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1406211788-63206-2-git-send-email-bfoster@redhat.com> User-Agent: Mutt/1.5.21 (2010-09-15) X-Barracuda-Connect: ipmail05.adl6.internode.on.net[150.101.137.143] X-Barracuda-Start-Time: 1406239841 X-Barracuda-URL: http://192.48.176.15:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 X-Barracuda-Spam-Score: 0.10 X-Barracuda-Spam-Status: No, SCORE=0.10 using per-user scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.7 tests=BSF_SC0_SA085 X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.7788 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.10 BSF_SC0_SA085 Custom Rule SA085 On Thu, Jul 24, 2014 at 10:22:51AM -0400, Brian Foster wrote: > Inodes are always allocated in chunks of 64 and thus the loop in > xfs_inobt_insert() is unnecessary. I don't believe this is true. The number of inodes allocated at once is: mp->m_ialloc_inos = (int)MAX((__uint16_t)XFS_INODES_PER_CHUNK, sbp->sb_inopblock); So when the block size is, say, 64k, the number of 512 byte inodes allocated at once is 128. i.e. 2 chunks. Hence xfs_inobt_insert() can be called with a inode could of > 64 and therefore the loop is still necessary... And, indeed, we might want to increase the allocation size in future to do entire stripe units or stripe widths of inodes at once: http://xfs.org/index.php/Improving_inode_Caching#Contiguous_Inode_Allocation This also means a loop would be required -somewhere-... Cheers, Dave. -- Dave Chinner david@fromorbit.com From david@fromorbit.com Thu Jul 24 17:13:49 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: xfs@oss.sgi.com Delivered-To: xfs@oss.sgi.com Received: from relay.sgi.com (relay2.corp.sgi.com [137.38.102.29]) by oss.sgi.com (Postfix) with ESMTP id 17A517F3F for ; Thu, 24 Jul 2014 17:13:49 -0500 (CDT) Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by relay2.corp.sgi.com (Postfix) with ESMTP id 033B9304048 for ; Thu, 24 Jul 2014 15:13:45 -0700 (PDT) X-ASG-Debug-ID: 1406240023-04cbb0068206c40001-NocioJ Received: from ipmail05.adl6.internode.on.net (ipmail05.adl6.internode.on.net [150.101.137.143]) by cuda.sgi.com with ESMTP id dDQYgXxXhCU83n89 for ; Thu, 24 Jul 2014 15:13:43 -0700 (PDT) X-Barracuda-Envelope-From: david@fromorbit.com X-Barracuda-Apparent-Source-IP: 150.101.137.143 X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: AqQMAOOD0VN5LHOdPGdsb2JhbABYgw6BKYInhQioHgEBAgIGoSkBgQ8XBQEBAQE4NoQEAQU6HCMQCAMOCgklDwUlAwcaE4hBv08XGIVjiVAHhEYFjkuMapZJgVcrLw Received: from ppp121-44-115-157.lns20.syd6.internode.on.net (HELO dastard) ([121.44.115.157]) by ipmail05.adl6.internode.on.net with ESMTP; 25 Jul 2014 07:43:42 +0930 Received: from dave by dastard with local (Exim 4.80) (envelope-from ) id 1XARGf-0001yL-OX; Fri, 25 Jul 2014 08:13:41 +1000 Date: Fri, 25 Jul 2014 08:13:41 +1000 From: Dave Chinner To: Brian Foster Cc: xfs@oss.sgi.com Subject: Re: [PATCH 05/18] xfs: create macros/helpers for dealing with sparse inode chunks Message-ID: <20140724221341.GO20518@dastard> X-ASG-Orig-Subj: Re: [PATCH 05/18] xfs: create macros/helpers for dealing with sparse inode chunks References: <1406211788-63206-1-git-send-email-bfoster@redhat.com> <1406211788-63206-6-git-send-email-bfoster@redhat.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1406211788-63206-6-git-send-email-bfoster@redhat.com> User-Agent: Mutt/1.5.21 (2010-09-15) X-Barracuda-Connect: ipmail05.adl6.internode.on.net[150.101.137.143] X-Barracuda-Start-Time: 1406240023 X-Barracuda-URL: http://192.48.176.25:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 X-Barracuda-Spam-Score: 0.00 X-Barracuda-Spam-Status: No, SCORE=0.00 using per-user scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.7 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.7789 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- On Thu, Jul 24, 2014 at 10:22:55AM -0400, Brian Foster wrote: > Sparse inode chunks allow the traditional inode btree record format to > describe an inode chunk that is not fully allocated and/or contiguous. > Define a couple constants that set requirements for allocation and > management of such chunks. Also define a helper to easily detect sparse > inode chunks. > > The granularity of a sparse chunk is defined by the the 16-bit holemask > field in the inode record. Assuming 64 inodes per full chunk, a single > holemask bit accounts for 4 inodes. The minimum allocation requirement > for a sparse inode chunk is defined as the minimum number of blocks > required to meet the 4 inode granularity. > > Signed-off-by: Brian Foster > --- > fs/xfs/libxfs/xfs_format.h | 9 +++++++++ > 1 file changed, 9 insertions(+) > > diff --git a/fs/xfs/libxfs/xfs_format.h b/fs/xfs/libxfs/xfs_format.h > index 39022d9..0baad50 100644 > --- a/fs/xfs/libxfs/xfs_format.h > +++ b/fs/xfs/libxfs/xfs_format.h > @@ -211,6 +211,11 @@ typedef __uint64_t xfs_inofree_t; > #define XFS_INOBT_ALL_FREE ((xfs_inofree_t)-1) > #define XFS_INOBT_MASK(i) ((xfs_inofree_t)1 << (i)) > > +#define XFS_INODES_PER_SPCHUNK \ > + (XFS_INODES_PER_CHUNK / (NBBY * sizeof(__uint16_t))) > +#define XFS_INOBT_MIN_SPCHUNKLEN(sb) \ > + (roundup(XFS_INODES_PER_SPCHUNK, sb.sb_inopblock) / sb.sb_inopblock) static inline. -Dave. -- Dave Chinner david@fromorbit.com From david@fromorbit.com Thu Jul 24 17:15:35 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: xfs@oss.sgi.com Delivered-To: xfs@oss.sgi.com Received: from relay.sgi.com (relay1.corp.sgi.com [137.38.102.111]) by oss.sgi.com (Postfix) with ESMTP id 8A0997F54 for ; Thu, 24 Jul 2014 17:15:35 -0500 (CDT) Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by relay1.corp.sgi.com (Postfix) with ESMTP id 5844C8F8040 for ; Thu, 24 Jul 2014 15:15:32 -0700 (PDT) X-ASG-Debug-ID: 1406240130-04bdf0475106e70001-NocioJ Received: from ipmail05.adl6.internode.on.net (ipmail05.adl6.internode.on.net [150.101.137.143]) by cuda.sgi.com with ESMTP id tu8HtEacvsgUNp8P for ; Thu, 24 Jul 2014 15:15:30 -0700 (PDT) X-Barracuda-Envelope-From: david@fromorbit.com X-Barracuda-Apparent-Source-IP: 150.101.137.143 X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: AqQMAPiE0VN5LHOdPGdsb2JhbABOCoMOgSmCJ4UIqB4BAQICBqEpAYEPFwUBAQEBODaEBAEFOhwjEAgDDgoJJQ8FJQMHGhOIQb9RFxiFY4h0XAeERgWXF4QemCArL4EFJA Received: from ppp121-44-115-157.lns20.syd6.internode.on.net (HELO dastard) ([121.44.115.157]) by ipmail05.adl6.internode.on.net with ESMTP; 25 Jul 2014 07:44:54 +0930 Received: from dave by dastard with local (Exim 4.80) (envelope-from ) id 1XARHp-0001yy-Nr; Fri, 25 Jul 2014 08:14:53 +1000 Date: Fri, 25 Jul 2014 08:14:53 +1000 From: Dave Chinner To: Brian Foster Cc: xfs@oss.sgi.com Subject: Re: [PATCH 04/18] xfs: introduce inode record hole mask for sparse inode chunks Message-ID: <20140724221453.GP20518@dastard> X-ASG-Orig-Subj: Re: [PATCH 04/18] xfs: introduce inode record hole mask for sparse inode chunks References: <1406211788-63206-1-git-send-email-bfoster@redhat.com> <1406211788-63206-5-git-send-email-bfoster@redhat.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1406211788-63206-5-git-send-email-bfoster@redhat.com> User-Agent: Mutt/1.5.21 (2010-09-15) X-Barracuda-Connect: ipmail05.adl6.internode.on.net[150.101.137.143] X-Barracuda-Start-Time: 1406240130 X-Barracuda-URL: http://192.48.157.11:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 X-Barracuda-Spam-Score: 0.00 X-Barracuda-Spam-Status: No, SCORE=0.00 using per-user scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.7 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.7789 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- On Thu, Jul 24, 2014 at 10:22:54AM -0400, Brian Foster wrote: > The inode btrees track 64 inodes per record, regardless of inode size. > Thus, inode chunks on disk vary in size depending on the size of the > inodes. This creates a contiguous allocation requirement for new inode > chunks that can be difficult to satisfy on an aged and fragmented (free > space) filesystem. > > The inode record freecount currently uses 4 bytes on disk to track the > free inode count. With a maximum freecount value of 64, only one byte is > required. Convert the freecount field to a single byte and reserve two > of the remaining 3 higher order bytes left to the hole mask field. > > The hole mask field tracks potential holes in the chunks of physical > space that the inode record refers to. This facilitates the sparse > allocation of inode chunks when contiguous chunks are not available and > allows the inode btrees to identify what portions of the chunk contain > valid inodes. > > Tracking holes means the field is initialized to zero and thus maintains > backwards compatibility with existing filesystems. E.g., the higher > order bytes of a counter with a max value of 64 are already initialized > to 0. Update the inode record management functions to handle the new > field and initialize it to zero for now. > > Signed-off-by: Brian Foster > --- > fs/xfs/libxfs/xfs_format.h | 7 +++++-- > fs/xfs/libxfs/xfs_ialloc.c | 9 +++++++-- > fs/xfs/libxfs/xfs_ialloc_btree.c | 4 +++- > 3 files changed, 15 insertions(+), 5 deletions(-) > > diff --git a/fs/xfs/libxfs/xfs_format.h b/fs/xfs/libxfs/xfs_format.h > index 34d85ac..39022d9 100644 > --- a/fs/xfs/libxfs/xfs_format.h > +++ b/fs/xfs/libxfs/xfs_format.h > @@ -221,13 +221,16 @@ static inline xfs_inofree_t xfs_inobt_maskn(int i, int n) > */ > typedef struct xfs_inobt_rec { > __be32 ir_startino; /* starting inode number */ > - __be32 ir_freecount; /* count of free inodes (set bits) */ > + __be16 ir_holemask; /* hole mask for sparse chunks */ > + __u8 ir_pad; > + __u8 ir_freecount; /* count of free inodes (set bits) */ > __be64 ir_free; /* free inode mask */ > } xfs_inobt_rec_t; might we want the number of inodes allocated in the chunk there as well (i.e. in the pad field) so we can validate the holemask against the number of inodes allocated in the chunk? -Dave. -- Dave Chinner david@fromorbit.com From david@fromorbit.com Thu Jul 24 17:32:17 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: xfs@oss.sgi.com Delivered-To: xfs@oss.sgi.com Received: from relay.sgi.com (relay1.corp.sgi.com [137.38.102.111]) by oss.sgi.com (Postfix) with ESMTP id 100857F50 for ; Thu, 24 Jul 2014 17:32:17 -0500 (CDT) Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by relay1.corp.sgi.com (Postfix) with ESMTP id DF75C8F8040 for ; Thu, 24 Jul 2014 15:32:16 -0700 (PDT) X-ASG-Debug-ID: 1406241133-04cbb00685083c0001-NocioJ Received: from ipmail05.adl6.internode.on.net (ipmail05.adl6.internode.on.net [150.101.137.143]) by cuda.sgi.com with ESMTP id c0ucFlL1jE7qPHEw for ; Thu, 24 Jul 2014 15:32:14 -0700 (PDT) X-Barracuda-Envelope-From: david@fromorbit.com X-Barracuda-Apparent-Source-IP: 150.101.137.143 X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: AnAKAJaI0VN5LHOdPGdsb2JhbABYgw5SV4InrSYBAQICBplkh0UBgQ8XBQEBAQE4NoQDAQEEATocIwULCAMOCgklDwUlAwcaExuIHwcOv1sYhWOHQIIQB4RGBZcXhB6YICsvAQ Received: from ppp121-44-115-157.lns20.syd6.internode.on.net (HELO dastard) ([121.44.115.157]) by ipmail05.adl6.internode.on.net with ESMTP; 25 Jul 2014 08:02:12 +0930 Received: from dave by dastard with local (Exim 4.80) (envelope-from ) id 1XARYZ-00021I-HD; Fri, 25 Jul 2014 08:32:11 +1000 Date: Fri, 25 Jul 2014 08:32:11 +1000 From: Dave Chinner To: Brian Foster Cc: xfs@oss.sgi.com Subject: Re: [PATCH RFC 00/18] xfs: sparse inode chunks Message-ID: <20140724223211.GQ20518@dastard> X-ASG-Orig-Subj: Re: [PATCH RFC 00/18] xfs: sparse inode chunks References: <1406211788-63206-1-git-send-email-bfoster@redhat.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1406211788-63206-1-git-send-email-bfoster@redhat.com> User-Agent: Mutt/1.5.21 (2010-09-15) X-Barracuda-Connect: ipmail05.adl6.internode.on.net[150.101.137.143] X-Barracuda-Start-Time: 1406241133 X-Barracuda-URL: http://192.48.176.25:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 X-Barracuda-Spam-Score: 0.00 X-Barracuda-Spam-Status: No, SCORE=0.00 using per-user scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.7 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.7789 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- On Thu, Jul 24, 2014 at 10:22:50AM -0400, Brian Foster wrote: > Hi all, > > This is a first pass at sparse inode chunk support for XFS. Some > background on this work is available here: > > http://oss.sgi.com/archives/xfs/2013-08/msg00346.html > > The basic idea is to allow the partial allocation of inode chunks into > fragmented regions of free space. This is accomplished through addition > of a holemask field into the inobt record that defines what portion(s) > of an inode chunk are invalid (i.e., holes in the chunk). This work is > not quite complete, but is at a point where I'd like to start getting > feedback on the design and what direction to take for some of the known > gaps. > > The basic breakdown of functionality in this set is as follows: > > - Patches 1-2 - A couple generic cleanups that are dependencies for later > patches in the series. > - Patches 3-5 - Basic data structure update, feature bit and minor > helper introduction. > - Patches 6-7 - Update v5 icreate logging and recovery to handle sparse > inode records. > - Patches 8-13 - Allocation support for sparse inode records. Physical > chunk allocation and individual inode allocation. > - Patches 14-16 - Deallocation support for sparse inode chunks. Physical > chunk deallocation, individual inode free and cluster free. > - Patch 17 - Fixes for bulkstat/inumbers. > - Patch 18 - Activate support for sparse chunk allocation and > processing. > > This work is lightly tested for regression (some xfstests failures due > to repair) and basic functionality. I have a new xfstests test I'll > forward along for demonstration purposes. > > Some notes on gaps in the design: > > - Sparse inode chunk allocation granularity: > > The current minimum sparse chunk allocation granularity is the cluster > size. Looking at the patchset (I got to patch 5 that first uses this), this is problematic. the cluster size is currently a kernel implementation detail, and not something defined by the on-disk format. We can change the cluster size in the kernel and not affect the format on disk. Making the cluster size a part of the disk format by defining it to be the resolution of sparse inode chunks changes that - it's now a part of the on-disk inode format, and that greatly limits what we can do with it. > My initial attempts at this work tried to redefine to the minimum > chunk length based on the holemask granularity (a la the stale macro I > seemingly left in this series ;), but this involves tweaking the > codepaths that use the cluster size (i.e., imap) which proved rather > hairy. This is where we need to head towards, though. The cluster size is currently the unit of inode IO, so that needs to be influenced by the sparse inode chunk granularity. Yes, we can define the inode chunk granularity to be the same as the cluster size, but that simply means we need to configure the cluster size appropriately at mount. It doesn't mean we need to change what cluster size means or it's implementation.... > This also means we need a solution where an imap can change if an > inode was initially mapped as a sparse chunk and said chunk is > subsequently made full. E.g., we'd perhaps need to invalidate the inode > buffers for sparse chunks at the time where they are made full. Given > that, I landed on using the cluster size and leaving those codepaths as > is for the time being. Again, that's kernel inode buffer cache implementaiton details, not something that matters for the on-disk format. So really these need to be separated. Probably means we need a "sparse inode allocation alignment" field in the superblock to define this. Having the kernel reject sparse alignments it can't support from the initial implementation means we can improve the kernel implementation over time and (eventually) support sub-cluster sized sparse inode allocation. i.e. initial implementation only supports sparse alignment == cluster size, and rejects everything else.... > There is a tradeoff here for v5 superblocks because we've recently made > a change to scale the cluster size based on the factor increase in the > inode size from the default (see xfsprogs commit 7b5f9801). This means > that effectiveness of sparse chunks is tied to whether the level of free > space fragmentation matches the cluster size. By that I mean effectivess > is good (near 100% utilization possible) if free space fragmentation > leaves free extents around that at least match the cluster size. If > fragmentation is worse than the cluster size, effectiveness is reduced. > This can also be demonstrated with the forthcoming xfstests test. Exactly. We don't need to solve every problem with the initial implementation - we can iteratively improve the code because once the fields are one disk we only need to change the kernel implemenation to support finer grained sparse allocation to solve this allocation chunk < cluster size problem.... > - On-disk lifecycle of the sparse inode chunks feature bit: > > We set an incompatible feature bit once a sparse inode chunk is > allocated because older revisions of code will interpret the non-zero > holemask bits in the higher order bytes of the record freecount. The > feature bit must be removed once all sparse inode chunks are eliminated > one way or another. This series does not currently remove the feature > bit once set simply because I hadn't thought through the mechanism quite > yet. For the next version, I'm thinking about adding an inobt walk > mechanism that can be conditionally invoked (i.e., feature bit is > currently set and a sparse inode chunk has been eliminated) either via > workqueue on an interval or during unmount if necessary. Thoughts or > alternative suggestions on that appreciated. I wouldn't bother. Let xfs_repair determine if the bit needs to be set or not when it does it's final superblock write after it has scanned and repaired the fs. I'm even in two minds of whether we want the sb bit added dynamically, because it means the same upgrade/downdgrade cycle can have different results simply due to filesystem freespace fragmentation patterns... Perhaps an xfs-admin command to turn the feature on dynamicallyi for existing filesystems, kind of like what we did with lazy superblock counters when they were introduced? Cheers, Dave. -- Dave Chinner david@fromorbit.com From adilger@dilger.ca Thu Jul 24 17:34:42 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: xfs@oss.sgi.com Delivered-To: xfs@oss.sgi.com Received: from relay.sgi.com (relay2.corp.sgi.com [137.38.102.29]) by oss.sgi.com (Postfix) with ESMTP id 505BC7F53 for ; Thu, 24 Jul 2014 17:34:42 -0500 (CDT) Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by relay2.corp.sgi.com (Postfix) with ESMTP id 3AF1230406B for ; Thu, 24 Jul 2014 15:34:42 -0700 (PDT) X-ASG-Debug-ID: 1406241280-04cbb0068508640001-NocioJ Received: from mail-pa0-f49.google.com (mail-pa0-f49.google.com [209.85.220.49]) by cuda.sgi.com with ESMTP id SztllSjl9cMtoAsj (version=TLSv1 cipher=RC4-SHA bits=128 verify=NO) for ; Thu, 24 Jul 2014 15:34:40 -0700 (PDT) X-Barracuda-Envelope-From: adilger@dilger.ca X-Barracuda-RBL-Trusted-Forwarder: 209.85.220.49 Received: by mail-pa0-f49.google.com with SMTP id hz1so4763214pad.22 for ; Thu, 24 Jul 2014 15:34:40 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:content-type:mime-version:subject:from :in-reply-to:date:cc:message-id:references:to; bh=JGimzvfPRRW4bHKlf8JCSobPf/ID3ynkMnk8hzwG6NA=; b=Im0Vg7ZZmCfI6Wq//VJ6ecmobybAflkYTfMiSImPlibAc/KNxoNA7H8DWSdZ5bz1I2 aMMYw3ETjOmtDwlfVs1Crf12P32Pm7ezpdmUNSFAQ8NyaA9GESUCuodjPgiMuGVhegNf /XZuavQ5TP2b93vkljlde9Qx0UHAEjiBk8f/4MrRLZ8CGtJ7TvsPxEQSEZQSJAjF/UsD 1/2MOvGS8YgjYlIMk/f6ATLxOZ7q+VaIeoSAcnQGq0M5BKKkvpAexoydrdhoBjm5bVtS OapbNgSJrKh3Ey0lUcR31ROPcRhuoMGiQ+0xfmfOOf6DZa7CMo4dx32oRfvI0QykQSGm InLg== X-Barracuda-BBL-IP: nil X-Gm-Message-State: ALoCoQlTgcMji+fSdj6bMgwJ0Usj2KXH9DktdsqBVAG6a9JeBFCtMYAEQBmCyogSxraDVGlcryic X-Received: by 10.70.0.76 with SMTP id 12mr14521990pdc.44.1406241280036; Thu, 24 Jul 2014 15:34:40 -0700 (PDT) Received: from cabot-wlan.adilger.int (S0106002191d9348b.cg.shawcable.net. [96.51.76.157]) by mx.google.com with ESMTPSA id bx5sm6688141pbd.69.2014.07.24.15.34.38 for (version=TLSv1 cipher=ECDHE-RSA-RC4-SHA bits=128/128); Thu, 24 Jul 2014 15:34:38 -0700 (PDT) Content-Type: multipart/signed; boundary="Apple-Mail=_EE49BFE3-FECB-40D9-B2D2-AD63AA8C9172"; protocol="application/pgp-signature"; micalg=pgp-sha1 X-Barracuda-Apparent-Source-IP: 96.51.76.157 Mime-Version: 1.0 (Mac OS X Mail 7.3 \(1878.6\)) Subject: Re: [PATCH 2/4 v3] fiemap: add EXTENT_DATA_COMPRESSED flag From: Andreas Dilger X-ASG-Orig-Subj: Re: [PATCH 2/4 v3] fiemap: add EXTENT_DATA_COMPRESSED flag In-Reply-To: <20140724192245.GG1553@suse.cz> Date: Thu, 24 Jul 2014 16:34:35 -0600 Cc: linux-fsdevel , linux-nilfs@vger.kernel.org, xfs@oss.sgi.com, Btrfs Developer List , Ext4 Developers List , ocfs2-devel@oss.oracle.com Message-Id: <5B4825C3-F47E-48B7-8DA4-6D79F53B73B1@dilger.ca> References: <4f8d5dc5b51a43efaf16c39398c23a6276e40a30.1386778303.git.dsterba@suse.cz> <20131212232443.GL31386@dastard> <9520AB36-B728-423A-8EA1-FDD22B79AE90@dilger.ca> <20140724192245.GG1553@suse.cz> To: dsterba@suse.cz X-Mailer: Apple Mail (2.1878.6) X-Barracuda-Connect: mail-pa0-f49.google.com[209.85.220.49] X-Barracuda-Start-Time: 1406241280 X-Barracuda-Encrypted: RC4-SHA X-Barracuda-URL: http://192.48.176.25:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 X-Barracuda-Spam-Score: 0.00 X-Barracuda-Spam-Status: No, SCORE=0.00 using per-user scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.7 tests=BSF_SC0_MISMATCH_TO X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.7789 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.00 BSF_SC0_MISMATCH_TO Envelope rcpt doesn't match header --Apple-Mail=_EE49BFE3-FECB-40D9-B2D2-AD63AA8C9172 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset=us-ascii On Jul 24, 2014, at 1:22 PM, David Sterba wrote: > On Thu, Jul 17, 2014 at 12:07:57AM -0600, Andreas Dilger wrote: >> any progress on this patch series? >=20 > I'm sorry I got distracted at the end of year and did not finish the > series. >=20 >> I never saw an updated version of this patch series after the last = round of >> reviews, but it would be great to move it forward. I have filefrag = patches >> in my e2fsprogs tree waiting for an updated version of your patch. >>=20 >> I recall the main changes were: >> - add FIEMAP_EXTENT_PHYS_LENGTH flag to indicate if fe_phys_length = was valid >=20 > fe_phys_length will be always valid, so other the flags are set only = if it's > not equal to the logical length. >=20 >> - rename fe_length to fe_logi_length and #define fe_length = fe_logi_length >> - always fill in fe_phys_length (=3D fe_logi_length for uncompressed = files) >> and set FIEMAP_EXTENT_PHYS_LENGTH whether the extent is compressed = or not >=20 > This is my understanding and contradicts the first point. I think Dave Chinner's former point was that having fe_phys_length = validity depend on FIEMAP_EXTENT_DATA_COMPRESSED is a non-intuitive interface. = It is not true that fe_phys_length would always be valid, since that is not = the case for older kernels that currently always set this field to 0, so = they need some flag to indicate if fe_phys_length is valid. Alternately, userspace could do: if (ext->fe_phys_length =3D=3D 0) ext->fe_phys_length =3D ext->fe_logi_length; but that pre-supposes that fe_phys_length =3D=3D 0 is never a valid = value when fe_logi_length is non-zero, and this might introduce errors in some = cases. I could imagine that some compression methods might not allocate any = space at all if it was all zeroes, and just store a bit in the blockpointer or extent, so having a separate FIEMAP_EXTENT_PHYS_LENGTH is probably safer in the long run. That opens up the question of whether a written zero filled space that gets compressed away is different from a hole, but I'd prefer to just return whatever the file mapping is than interpret it. Cheers, Andreas >> - add WARN_ONCE() in fiemap_fill_next_extent() as described below >>=20 >> I don't know if there was any clear statement about whether there = should be >> separate FIEMAP_EXTENT_PHYS_LENGTH and FIEMAP_EXTENT_DATA_COMPRESSED = flags, >> or if the latter should be implicit? Probably makes sense to have = separate >> flags. It should be fine to use: >>=20 >> #define FIEMAP_EXTENT_PHYS_LENGTH 0x00000010 >>=20 >> since this flag was never used. >=20 > I've kept only FIEMAP_EXTENT_DATA_COMPRESSED, I don't see a need for > FIEMAP_EXTENT_PHYS_LENGTH and this would be yet another flag because = the > FIEMAP_EXTENT_DATA_ENCODED is also implied. >=20 > I'll send V4, we can discuss the PHYS_LENGTH flag then. Cheers, Andreas --Apple-Mail=_EE49BFE3-FECB-40D9-B2D2-AD63AA8C9172 Content-Transfer-Encoding: 7bit Content-Disposition: attachment; filename=signature.asc Content-Type: application/pgp-signature; name=signature.asc Content-Description: Message signed with OpenPGP using GPGMail -----BEGIN PGP SIGNATURE----- Comment: GPGTools - http://gpgtools.org iQIVAwUBU9GJ+3Kl2rkXzB/gAQL14w/9E/WENH/RddgvYvMI0mPiMkdxzFK++PEH dsaix22ddMjmnP7cRHt/Ty5ZfcnydZqFG/FNta9ZOcfTDaUOXGw3C7U7X93MAorx s+q6ISAO81cYTLKvxFJDXzYzo/QxB219+oByPSdutEOYvANM1x/2vY5QYPVwjg4g dxTAmoChCCbGEn96VZOG0M93kugQn7n4EzMjjK/5niUOiQiT4GCsTCFGyXuieXf+ PifblnRrNgQVRCzOimY+lXbXgL0+huGFw0okgx1/QCz176s60yFweEktWPuHdrZ1 8cDp97T5EwLXe9NYH+tyR6aw6yURzx8BSLMMscQWXs12lceuV0c5tBQ9l8RKtlEo cLJJwPXHt7BS/CWsLpjyEz3zNTkvX88rmV0kPZIdVeseI3yP7GLLTdJ5TWXeR3Jb BS9RQlXXU+1dZET3Lab22uEkUted8qH0sKyACbcwGRitJNx6aDpu5ByV4MyCjKPm HnJAmTbADVpJRVTaPmgQbs4MrEgZm9PxAG/JWm7Qi+KythnZVFG1DVocvmE9ZWSK FCkyBKEwDR/7KiFy3EBm1v0nwVetoHVOykTLBu6jCW8BU70o5BwAp5gVfGYEj2x8 9lx6QZWKDSRH2YyVjh2q7s0DrNosPpejxwT5ZxdKNOAUTcw+m4HO5LzD6WYbkU5W nvpdaVUDRbc= =Z7dA -----END PGP SIGNATURE----- --Apple-Mail=_EE49BFE3-FECB-40D9-B2D2-AD63AA8C9172-- From david@fromorbit.com Thu Jul 24 17:41:19 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: xfs@oss.sgi.com Delivered-To: xfs@oss.sgi.com Received: from relay.sgi.com (relay1.corp.sgi.com [137.38.102.111]) by oss.sgi.com (Postfix) with ESMTP id 02CF07F56 for ; Thu, 24 Jul 2014 17:41:19 -0500 (CDT) Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by relay1.corp.sgi.com (Postfix) with ESMTP id E16078F8049 for ; Thu, 24 Jul 2014 15:41:18 -0700 (PDT) X-ASG-Debug-ID: 1406241674-04cb6c6c2407500001-NocioJ Received: from ipmail05.adl6.internode.on.net (ipmail05.adl6.internode.on.net [150.101.137.143]) by cuda.sgi.com with ESMTP id GQXPt6wacoGzxd5T for ; Thu, 24 Jul 2014 15:41:16 -0700 (PDT) X-Barracuda-Envelope-From: david@fromorbit.com X-Barracuda-Apparent-Source-IP: 150.101.137.143 X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: AqQMAOqK0VN5LHOdPGdsb2JhbABOCoMOgSmCJ4UIqB4BAQICBqEpAYEPFwUBAQEBODaEBAEFJxMcIxAIAw4KCSUPBSUDBxoTiEG/TxcYhWOGMYJDXAeERgWbNZZJgVcrLw Received: from ppp121-44-115-157.lns20.syd6.internode.on.net (HELO dastard) ([121.44.115.157]) by ipmail05.adl6.internode.on.net with ESMTP; 25 Jul 2014 08:11:14 +0930 Received: from dave by dastard with local (Exim 4.80) (envelope-from ) id 1XARhI-00022d-Ob; Fri, 25 Jul 2014 08:41:12 +1000 Date: Fri, 25 Jul 2014 08:41:12 +1000 From: Dave Chinner To: Brian Foster Cc: xfs@oss.sgi.com Subject: Re: [PATCH 08/18] xfs: create helper to manage record overlap for sparse inode chunks Message-ID: <20140724224112.GR20518@dastard> X-ASG-Orig-Subj: Re: [PATCH 08/18] xfs: create helper to manage record overlap for sparse inode chunks References: <1406211788-63206-1-git-send-email-bfoster@redhat.com> <1406211788-63206-9-git-send-email-bfoster@redhat.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1406211788-63206-9-git-send-email-bfoster@redhat.com> User-Agent: Mutt/1.5.21 (2010-09-15) X-Barracuda-Connect: ipmail05.adl6.internode.on.net[150.101.137.143] X-Barracuda-Start-Time: 1406241674 X-Barracuda-URL: http://192.48.176.15:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 X-Barracuda-Spam-Score: 0.00 X-Barracuda-Spam-Status: No, SCORE=0.00 using per-user scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.7 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.7789 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- On Thu, Jul 24, 2014 at 10:22:58AM -0400, Brian Foster wrote: > Create xfs_spchunk_has_record() to receive the parameters of a new > sparse inode chunk allocation and identify whether a record exists that > is capable of tracking this sparse chunk. > > Signed-off-by: Brian Foster > --- > fs/xfs/libxfs/xfs_ialloc.c | 55 ++++++++++++++++++++++++++++++++++++++++++++++ > 1 file changed, 55 insertions(+) > > diff --git a/fs/xfs/libxfs/xfs_ialloc.c b/fs/xfs/libxfs/xfs_ialloc.c > index 27d3437..be57b51 100644 > --- a/fs/xfs/libxfs/xfs_ialloc.c > +++ b/fs/xfs/libxfs/xfs_ialloc.c > @@ -351,6 +351,61 @@ xfs_ialloc_inode_init( > } > > /* > + * Determine whether part of a sparse inode chunk that has just been allocated > + * is covered by an existing inobt record. > + */ > +STATIC int > +xfs_spchunk_has_record( not sure I like the "spchunk" naming. I see that and I have no idea what subsystem it belongs to. It's actually an inobt lookup function, and doesn't really have anything to do with sparse chunks. So maybe xfs_inobt_rec_exists or xfs_inobt_lookup_exact? > + struct xfs_mount *mp, > + struct xfs_trans *tp, > + struct xfs_buf *agbp, > + xfs_agino_t newino, > + xfs_agino_t count, > + xfs_btnum_t btnum, > + struct xfs_inobt_rec_incore *orec) > +{ > + struct xfs_btree_cur *cur; > + struct xfs_agi *agi = XFS_BUF_TO_AGI(agbp); > + xfs_agnumber_t agno = be32_to_cpu(agi->agi_seqno); > + xfs_agino_t previno; > + int error; > + int i; > + struct xfs_inobt_rec_incore rec; > + > + orec->ir_startino = NULLAGINO; > + > + cur = xfs_inobt_init_cursor(mp, tp, agbp, agno, btnum); > + > + previno = newino + count - XFS_INODES_PER_CHUNK; > + error = xfs_inobt_lookup(cur, previno, XFS_LOOKUP_GE, &i); You want XFS_LOOKUP_EQ, yes? i.e. XFS_LOOKUP_GE won't fail if the exact record for the inode chunk does not exist - it will return the next one in the btree. > + if (error) > + goto error; > + if (i == 0) > + goto out; > + > + error = xfs_inobt_get_rec(cur, &rec, &i); > + if (error) > + goto error; > + XFS_WANT_CORRUPTED_GOTO(i == 1, error); > + > + if (rec.ir_startino > newino) > + goto out; And so this check would not be necessary... > + > + ASSERT(rec.ir_startino <= newino && > + rec.ir_startino + XFS_INODES_PER_CHUNK > newino); > + ASSERT(rec.ir_freecount + count <= XFS_INODES_PER_CHUNK); > + > + *orec = rec; /* struct copy */ -Dave. -- Dave Chinner david@fromorbit.com From david@fromorbit.com Thu Jul 24 17:46:33 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: xfs@oss.sgi.com Delivered-To: xfs@oss.sgi.com Received: from relay.sgi.com (relay3.corp.sgi.com [198.149.34.15]) by oss.sgi.com (Postfix) with ESMTP id 93D4C7F58 for ; Thu, 24 Jul 2014 17:46:33 -0500 (CDT) Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by relay3.corp.sgi.com (Postfix) with ESMTP id 2DDE4AC005 for ; Thu, 24 Jul 2014 15:46:32 -0700 (PDT) X-ASG-Debug-ID: 1406241990-04bdf0475008d20001-NocioJ Received: from ipmail05.adl6.internode.on.net (ipmail05.adl6.internode.on.net [150.101.137.143]) by cuda.sgi.com with ESMTP id G3145LhP74Go5AT5 for ; Thu, 24 Jul 2014 15:46:30 -0700 (PDT) X-Barracuda-Envelope-From: david@fromorbit.com X-Barracuda-Apparent-Source-IP: 150.101.137.143 X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: AqQMAP+L0VN5LHOdPGdsb2JhbABYgw6BKYInhQioHgEBAgIGoSkBgRAXBQEBAQE4NoQEAQUnExwjEAgDDgoJJQ8FJQMHGhOIQb9WFxiFY4lQB4RGBZcXhB6WSYFXKy8 Received: from ppp121-44-115-157.lns20.syd6.internode.on.net (HELO dastard) ([121.44.115.157]) by ipmail05.adl6.internode.on.net with ESMTP; 25 Jul 2014 08:16:29 +0930 Received: from dave by dastard with local (Exim 4.80) (envelope-from ) id 1XARmO-00023c-Je; Fri, 25 Jul 2014 08:46:28 +1000 Date: Fri, 25 Jul 2014 08:46:28 +1000 From: Dave Chinner To: Brian Foster Cc: xfs@oss.sgi.com Subject: Re: [PATCH 10/18] xfs: set sparse inodes feature bit when a sparse chunk is allocated Message-ID: <20140724224628.GS20518@dastard> X-ASG-Orig-Subj: Re: [PATCH 10/18] xfs: set sparse inodes feature bit when a sparse chunk is allocated References: <1406211788-63206-1-git-send-email-bfoster@redhat.com> <1406211788-63206-11-git-send-email-bfoster@redhat.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1406211788-63206-11-git-send-email-bfoster@redhat.com> User-Agent: Mutt/1.5.21 (2010-09-15) X-Barracuda-Connect: ipmail05.adl6.internode.on.net[150.101.137.143] X-Barracuda-Start-Time: 1406241990 X-Barracuda-URL: http://192.48.157.11:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 X-Barracuda-Spam-Score: 0.00 X-Barracuda-Spam-Status: No, SCORE=0.00 using per-user scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.7 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.7789 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- On Thu, Jul 24, 2014 at 10:23:00AM -0400, Brian Foster wrote: > The sparse chunk inode record format is backwards compatible with old > format inobt records as long as full chunks are allocated. The holemask > field uses higher order bytes of the freecount. While sparse chunks can > be enabled on previously unsupported fs, older kernel drivers cannot > parse sparse inode records. > > Set the feature incompatible bit once a sparse inode chunk is allocated > to prevent older XFS drivers from tripping over the new format. > > Signed-off-by: Brian Foster > --- > fs/xfs/libxfs/xfs_ialloc.c | 33 +++++++++++++++++++++++++++++++++ > 1 file changed, 33 insertions(+) > > diff --git a/fs/xfs/libxfs/xfs_ialloc.c b/fs/xfs/libxfs/xfs_ialloc.c > index 4226b1b..4dd45c2 100644 > --- a/fs/xfs/libxfs/xfs_ialloc.c > +++ b/fs/xfs/libxfs/xfs_ialloc.c > @@ -407,6 +407,27 @@ error: > return error; > } > > +STATIC void > +xfs_sbversion_add_spinodes( > + struct xfs_trans *tp, > + struct xfs_mount *mp) > +{ > + if (xfs_sb_has_incompat_log_feature(&mp->m_sb, > + XFS_SB_FEAT_INCOMPAT_SPINODES)) wrong function. xfs_sb_has_incompat_feature(). > + return; > + > + spin_lock(&mp->m_sb_lock); > + if (xfs_sb_has_incompat_log_feature(&mp->m_sb, > + XFS_SB_FEAT_INCOMPAT_SPINODES)) { > + spin_unlock(&mp->m_sb_lock); > + return; > + } > + > + mp->m_sb.sb_features_incompat |= XFS_SB_FEAT_INCOMPAT_SPINODES; > + spin_unlock(&mp->m_sb_lock); > + xfs_mod_sb(tp, XFS_SB_FEATURES_INCOMPAT); > +} > + > /* > * Allocate new inodes in the allocation group specified by agbp. > * Return 0 for success, else error code. > @@ -631,6 +652,18 @@ xfs_ialloc_ag_alloc( > if (error) > return error; > } > + > + /* > + * Set an incompat feature bit as old drivers can't parse sparse > + * records. Pre-sparse inode chunk drivers will include the > + * holemask in the higher order freecount bits, resulting in a > + * bogus value. > + * > + * XXX: when is this bit removed? > + */ > + if (xfs_inobt_issparse(&rec)) > + xfs_sbversion_add_spinodes(tp, args.mp); I'd like to avoid this dynamic feature bit adding if possible. Do we really need it? Cheers, Dave. -- Dave Chinner david@fromorbit.com From david@fromorbit.com Thu Jul 24 17:50:46 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: xfs@oss.sgi.com Delivered-To: xfs@oss.sgi.com Received: from relay.sgi.com (relay3.corp.sgi.com [198.149.34.15]) by oss.sgi.com (Postfix) with ESMTP id A7C797F5A for ; Thu, 24 Jul 2014 17:50:46 -0500 (CDT) Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by relay3.corp.sgi.com (Postfix) with ESMTP id 43153AC005 for ; Thu, 24 Jul 2014 15:50:46 -0700 (PDT) X-ASG-Debug-ID: 1406242243-04bdf0475109140001-NocioJ Received: from ipmail05.adl6.internode.on.net (ipmail05.adl6.internode.on.net [150.101.137.143]) by cuda.sgi.com with ESMTP id auWqM6a9N6U7EIKA for ; Thu, 24 Jul 2014 15:50:43 -0700 (PDT) X-Barracuda-Envelope-From: david@fromorbit.com X-Barracuda-Apparent-Source-IP: 150.101.137.143 X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: AqQMAD2N0VN5LHOdPGdsb2JhbABYgw6BKYInhQioHgEBAgIGoSkBgRAXBQEBAQE4NoQEAQUnExwjEAgDDgoJJQ8FJQMHGhOIQb9TFxiFY4h5VweERgWbNZZJgVcrL4EE Received: from ppp121-44-115-157.lns20.syd6.internode.on.net (HELO dastard) ([121.44.115.157]) by ipmail05.adl6.internode.on.net with ESMTP; 25 Jul 2014 08:20:39 +0930 Received: from dave by dastard with local (Exim 4.80) (envelope-from ) id 1XARqQ-00023u-W0; Fri, 25 Jul 2014 08:50:39 +1000 Date: Fri, 25 Jul 2014 08:50:38 +1000 From: Dave Chinner To: Brian Foster Cc: xfs@oss.sgi.com Subject: Re: [PATCH 11/18] xfs: reduce min. inode allocation space requirement for sparse inode chunks Message-ID: <20140724225038.GT20518@dastard> X-ASG-Orig-Subj: Re: [PATCH 11/18] xfs: reduce min. inode allocation space requirement for sparse inode chunks References: <1406211788-63206-1-git-send-email-bfoster@redhat.com> <1406211788-63206-12-git-send-email-bfoster@redhat.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1406211788-63206-12-git-send-email-bfoster@redhat.com> User-Agent: Mutt/1.5.21 (2010-09-15) X-Barracuda-Connect: ipmail05.adl6.internode.on.net[150.101.137.143] X-Barracuda-Start-Time: 1406242243 X-Barracuda-URL: http://192.48.157.11:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 X-Barracuda-Spam-Score: 0.00 X-Barracuda-Spam-Status: No, SCORE=0.00 using per-user scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.7 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.7790 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- On Thu, Jul 24, 2014 at 10:23:01AM -0400, Brian Foster wrote: > xfs_ialloc_ag_select() iterates through the allocation groups looking > for free inodes or free space to determine whether to allow an inode > allocation to proceed. If no free inodes are available, it assumes that > an AG must have an extent longer than mp->m_ialloc_blks. > > Sparse inode chunk support currently allows for allocations as small as > the cluster size. If sparse inodes are supported, use the cluster > alignment as a minimum extent size limit to determine whether an inode > chunk allocation attempt can proceed. > > Signed-off-by: Brian Foster > --- > fs/xfs/libxfs/xfs_ialloc.c | 10 ++++++++-- > 1 file changed, 8 insertions(+), 2 deletions(-) > > diff --git a/fs/xfs/libxfs/xfs_ialloc.c b/fs/xfs/libxfs/xfs_ialloc.c > index 4dd45c2..4e98a21 100644 > --- a/fs/xfs/libxfs/xfs_ialloc.c > +++ b/fs/xfs/libxfs/xfs_ialloc.c > @@ -770,9 +770,15 @@ xfs_ialloc_ag_select( > > /* > * Is there enough free space for the file plus a block of > - * inodes? (if we need to allocate some)? > + * inodes? (if we need to allocate some)? If sparse inode chunks > + * are supported, we only require an extent of length equal to > + * the cluster size. > */ > - ineed = mp->m_ialloc_blks; > + if (xfs_sb_version_hassparseinodes(&mp->m_sb)) > + ineed = xfs_ialloc_cluster_alignment(mp); > + else > + ineed = mp->m_ialloc_blks; Why wouldn't we calculate this once at mount time and dump it in mp->m_ialloc_min_blks? And if we don't have sparse inodes enabled, when would be ever select an AG that would trigger a sparse allocation and then turn the feature bit on? Cheers, Dave. -- Dave Chinner david@fromorbit.com From david@fromorbit.com Thu Jul 24 18:21:42 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: xfs@oss.sgi.com Delivered-To: xfs@oss.sgi.com Received: from relay.sgi.com (relay2.corp.sgi.com [137.38.102.29]) by oss.sgi.com (Postfix) with ESMTP id E3C8D7F5D for ; Thu, 24 Jul 2014 18:21:42 -0500 (CDT) Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by relay2.corp.sgi.com (Postfix) with ESMTP id D17F8304067 for ; Thu, 24 Jul 2014 16:21:39 -0700 (PDT) X-ASG-Debug-ID: 1406244097-04cbb006820a210001-NocioJ Received: from ipmail05.adl6.internode.on.net (ipmail05.adl6.internode.on.net [150.101.137.143]) by cuda.sgi.com with ESMTP id AbYuhFqtEi74kBtr for ; Thu, 24 Jul 2014 16:21:37 -0700 (PDT) X-Barracuda-Envelope-From: david@fromorbit.com X-Barracuda-Apparent-Source-IP: 150.101.137.143 X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: AqQMAG6U0VN5LHOdPGdsb2JhbABPCoMOgSmCJ4UIqCEBAQICBqEpAYEOFwUBAQEBODaEBAEFJxMcIxAIAw4KCSUPBSUDBxoTiEG/XxcYhWOIdFwHhEYFlxeEHpZJgVcrLw Received: from ppp121-44-115-157.lns20.syd6.internode.on.net (HELO dastard) ([121.44.115.157]) by ipmail05.adl6.internode.on.net with ESMTP; 25 Jul 2014 08:51:36 +0930 Received: from dave by dastard with local (Exim 4.80) (envelope-from ) id 1XASKM-0002AK-Mg; Fri, 25 Jul 2014 09:21:34 +1000 Date: Fri, 25 Jul 2014 09:21:34 +1000 From: Dave Chinner To: Brian Foster Cc: xfs@oss.sgi.com Subject: Re: [PATCH 12/18] xfs: helper to convert inobt record holemask to inode alloc. bitmap Message-ID: <20140724232134.GU20518@dastard> X-ASG-Orig-Subj: Re: [PATCH 12/18] xfs: helper to convert inobt record holemask to inode alloc. bitmap References: <1406211788-63206-1-git-send-email-bfoster@redhat.com> <1406211788-63206-13-git-send-email-bfoster@redhat.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1406211788-63206-13-git-send-email-bfoster@redhat.com> User-Agent: Mutt/1.5.21 (2010-09-15) X-Barracuda-Connect: ipmail05.adl6.internode.on.net[150.101.137.143] X-Barracuda-Start-Time: 1406244097 X-Barracuda-URL: http://192.48.176.25:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 X-Barracuda-Spam-Score: 0.00 X-Barracuda-Spam-Status: No, SCORE=0.00 using per-user scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.7 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.7791 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- On Thu, Jul 24, 2014 at 10:23:02AM -0400, Brian Foster wrote: > The inobt record holemask field is a condensed data type designed to fit > into the existing on-disk record and is zero based (allocated regions > are set to 0, sparse regions are set to 1) to provide backwards > compatibility. Thus the type is unnecessarily complex for use in higher > level inode manipulations such as individual inode allocations, etc. > > Rather than foist the complexity of dealing with this field to every bit > of logic that requires inode chunk allocation information, create the > xfs_inobt_ialloc_bitmap() helper to convert the inobt record holemask to > an inode allocation bitmap. The inode allocation bitmap is inode > granularity similar to the inobt record free mask and indicates which > inodes of the chunk are physically allocated on disk irrespective of > whether the inode is considered allocated or free by the filesystem. > > Signed-off-by: Brian Foster > --- > fs/xfs/libxfs/xfs_format.h | 1 + > fs/xfs/libxfs/xfs_ialloc.c | 67 ++++++++++++++++++++++++++++++++++++++++++++++ > 2 files changed, 68 insertions(+) > > diff --git a/fs/xfs/libxfs/xfs_format.h b/fs/xfs/libxfs/xfs_format.h > index 0baad50..cbc3296 100644 > --- a/fs/xfs/libxfs/xfs_format.h > +++ b/fs/xfs/libxfs/xfs_format.h > @@ -206,6 +206,7 @@ typedef __be32 xfs_alloc_ptr_t; > #define XFS_FIBT_CRC_MAGIC 0x46494233 /* 'FIB3' */ > > typedef __uint64_t xfs_inofree_t; > +typedef __uint64_t xfs_inoalloc_t; > #define XFS_INODES_PER_CHUNK (NBBY * sizeof(xfs_inofree_t)) > #define XFS_INODES_PER_CHUNK_LOG (XFS_NBBYLOG + 3) > #define XFS_INOBT_ALL_FREE ((xfs_inofree_t)-1) > diff --git a/fs/xfs/libxfs/xfs_ialloc.c b/fs/xfs/libxfs/xfs_ialloc.c > index 4e98a21..166602e 100644 > --- a/fs/xfs/libxfs/xfs_ialloc.c > +++ b/fs/xfs/libxfs/xfs_ialloc.c > @@ -863,6 +863,73 @@ xfs_ialloc_get_rec( > } > > /* > + * Convert the inode record holemask to an inode allocation bitmap. The inode > + * allocation bitmap is inode granularity and specifies whether an inode is > + * physically allocated on disk (not whether the inode is considered allocated > + * or free by the fs). > + */ > +STATIC xfs_inoalloc_t > +xfs_inobt_ialloc_bitmap( > + struct xfs_inobt_rec_incore *rec) > +{ > + xfs_inofree_t bitmap = 0; > + xfs_inofree_t sparsebits; > + int nextbit; > + int shift; > + __uint16_t allocmask; > + uint allocbitmap; allocbitmap should be a 64 bit value? > + > + /* > + * Each holemask bit represents XFS_INODES_PER_SPCHUNK inodes. Determine > + * the inode bits per holemask bit. > + */ > + sparsebits = xfs_mask64lo(XFS_INODES_PER_SPCHUNK); Can we just open code that? sparsebits = (1ULL << XFS_INODES_PER_SPCHUNK) - 1; > + /* > + * The bit flip and type conversion are intentionally done separately > + * here to zero-extend the bitmask. > + */ > + allocmask = ~rec->ir_holemask; > + allocbitmap = allocmask; urk. That's a landmine. > + > + /* > + * Each bit of allocbitmap represents an allocated region of the inode > + * chunk. Thus, each bit represents XFS_INODES_PER_SPCHUNK physical > + * inodes. Walk through allocbitmap and set the associated individual > + * inode bits in the inode bitmap for each allocated chunk. > + * > + * For example, consider a 512b inode fs with a cluster size of 16k. > + * Each holemask bit represents 4 inodes and each cluster contains 32 > + * inodes. Since sparse chunks are allocated at cluster granularity, a > + * valid 16-bit holemask (and negated allocbitmap) with this geometry > + * might look as follows: > + * > + * holemask ~ allocbitmap > + * 0000 0000 1111 1111 => 1111 1111 0000 0000 > + * > + * At 4 inodes per bit, this indicates that the first 32 inodes of the > + * chunk are not physically allocated inodes. This is a hole from the > + * perspective of the inode record. Converting the allocbitmap to a > + * 64-bit inode allocation bitmap yields: > + * > + * 0xFFFFFFFF00000000 > + * > + * ... where any of the 32 inodes defined by the higher order 32 bits of > + * the map could be in use or free. Logically AND this bitmap with the > + * record ir_free map to identify which of the physically allocated > + * inodes are in use. > + */ > + nextbit = xfs_next_bit(&allocbitmap, 1, 0); > + while (nextbit != -1) { > + shift = nextbit * XFS_INODES_PER_SPCHUNK; > + bitmap |= (sparsebits << shift); > + nextbit = xfs_next_bit(&allocbitmap, 1, nextbit + 1); > + } We need to get rid of xfs_next_bit() and friends, not add more users. The generic bitmap functionality is better suited to this, I think. A cleaned up version of something like this, perhaps: DECLARE_BITMAP(allocmask, 16); DECLARE_BITMAP(bitmap, 64); bitmap_complement(&allocmask, &rec->ir_holemask, 16); bitmap_full(&bitmap, 64); for (i = 0; i < 16; i++) { if (!test_bit(&allocmask, i)) { bitmap_release_region(&bitmap, i * 4, ilog2(XFS_INODES_PER_SPCHUNK)); } } Cheers, Dave. -- Dave Chinner david@fromorbit.com From david@fromorbit.com Thu Jul 24 18:25:16 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: xfs@oss.sgi.com Delivered-To: xfs@oss.sgi.com Received: from relay.sgi.com (relay1.corp.sgi.com [137.38.102.111]) by oss.sgi.com (Postfix) with ESMTP id 15AFD7F58 for ; Thu, 24 Jul 2014 18:25:16 -0500 (CDT) Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by relay1.corp.sgi.com (Postfix) with ESMTP id DA6698F8040 for ; Thu, 24 Jul 2014 16:25:12 -0700 (PDT) X-ASG-Debug-ID: 1406244310-04bdf047510a280001-NocioJ Received: from ipmail05.adl6.internode.on.net (ipmail05.adl6.internode.on.net [150.101.137.143]) by cuda.sgi.com with ESMTP id s9VVuUUKvsk5L858 for ; Thu, 24 Jul 2014 16:25:10 -0700 (PDT) X-Barracuda-Envelope-From: david@fromorbit.com X-Barracuda-Apparent-Source-IP: 150.101.137.143 X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: AqQMAGKV0VN5LHOdPGdsb2JhbABZgw6BKYInhQioIQEBAgIGoSkBgQ4XBQEBAQE4NoQEAQUnExwjEAgDDgoJJQ8FJQMHGhOIQb9fFxiFY4lQB4RGBZs1mCArLw Received: from ppp121-44-115-157.lns20.syd6.internode.on.net (HELO dastard) ([121.44.115.157]) by ipmail05.adl6.internode.on.net with ESMTP; 25 Jul 2014 08:54:47 +0930 Received: from dave by dastard with local (Exim 4.80) (envelope-from ) id 1XASNT-0002B7-4Q; Fri, 25 Jul 2014 09:24:47 +1000 Date: Fri, 25 Jul 2014 09:24:47 +1000 From: Dave Chinner To: Brian Foster Cc: xfs@oss.sgi.com Subject: Re: [PATCH 15/18] xfs: only free allocated regions of inode chunks Message-ID: <20140724232447.GV20518@dastard> X-ASG-Orig-Subj: Re: [PATCH 15/18] xfs: only free allocated regions of inode chunks References: <1406211788-63206-1-git-send-email-bfoster@redhat.com> <1406211788-63206-16-git-send-email-bfoster@redhat.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1406211788-63206-16-git-send-email-bfoster@redhat.com> User-Agent: Mutt/1.5.21 (2010-09-15) X-Barracuda-Connect: ipmail05.adl6.internode.on.net[150.101.137.143] X-Barracuda-Start-Time: 1406244310 X-Barracuda-URL: http://192.48.157.11:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 X-Barracuda-Spam-Score: 0.60 X-Barracuda-Spam-Status: No, SCORE=0.60 using per-user scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.7 tests=MARKETING_SUBJECT X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.7791 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.60 MARKETING_SUBJECT Subject contains popular marketing words On Thu, Jul 24, 2014 at 10:23:05AM -0400, Brian Foster wrote: > An inode chunk is currently added to the transaction free list based on > a simple fsb conversion and hardcoded chunk length. The nature of sparse > chunks is such that the physical chunk of inodes on disk may consist of > one or more discontiguous parts. Blocks that reside in the holes of the > inode chunk are not inodes and could be allocated to any other use or > not allocated at all. > > Refactor the existing xfs_bmap_add_free() call into the > xfs_difree_inode_chunk() helper. The new helper uses the existing > calculation if a chunk is not sparse. Otherwise, use the inobt record > holemask to free the contiguous regions of the chunk. > > Signed-off-by: Brian Foster > --- > fs/xfs/libxfs/xfs_ialloc.c | 64 +++++++++++++++++++++++++++++++++++++++++++--- > 1 file changed, 61 insertions(+), 3 deletions(-) > > diff --git a/fs/xfs/libxfs/xfs_ialloc.c b/fs/xfs/libxfs/xfs_ialloc.c > index f75f191..1be57b1 100644 > --- a/fs/xfs/libxfs/xfs_ialloc.c > +++ b/fs/xfs/libxfs/xfs_ialloc.c > @@ -1659,6 +1659,66 @@ out_error: > return error; > } > > +/* > + * Free the blocks of an inode chunk. We must consider that the inode chunk > + * might be sparse and only free the regions that are allocated as part of the > + * chunk. > + */ > +STATIC void > +xfs_difree_inode_chunk( > + struct xfs_mount *mp, > + xfs_agnumber_t agno, > + struct xfs_inobt_rec_incore *rec, > + struct xfs_bmap_free *flist) > +{ > + xfs_agblock_t sagbno = XFS_AGINO_TO_AGBNO(mp, rec->ir_startino); > + xfs_agblock_t agbno; > + int nextbit; > + int contig, contigblk; > + __uint16_t allocmask; > + uint allocbitmap; > + > + if (!xfs_inobt_issparse(rec)) { > + /* not sparse, calculate extent info directly */ > + xfs_bmap_add_free(XFS_AGB_TO_FSB(mp, agno, > + XFS_AGINO_TO_AGBNO(mp, rec->ir_startino)), > + mp->m_ialloc_blks, flist, mp); > + return; > + } > + > + /* > + * The bit flip and type conversion are intentionally done separately > + * here to zero-extend the bitmask. > + */ > + allocmask = ~rec->ir_holemask; > + allocbitmap = allocmask; If we are going to keep this code, then a helper is absolutely necessary.... > + > + /* > + * We now have an allocation bitmap in units of inodes at sparse chunk > + * granularity (e.g., more than one inode per bit). Use the bitmask > + * functions to find each contigious range of bits in the map. For each > + * range, convert the start bit and count to block values and use that > + * data to add the associated extent to the free list. > + */ > + nextbit = xfs_next_bit(&allocbitmap, 1, 0); > + while (nextbit != -1) { > + agbno = (nextbit * XFS_INODES_PER_SPCHUNK) / > + mp->m_sb.sb_inopblock; > + agbno += sagbno; > + > + contig = xfs_contig_bits(&allocbitmap, 1, nextbit); > + contigblk = (contig * XFS_INODES_PER_SPCHUNK) / > + mp->m_sb.sb_inopblock; > + > + ASSERT(agbno % xfs_ialloc_cluster_alignment(mp) == 0); > + ASSERT(contigblk % xfs_ialloc_cluster_alignment(mp) == 0); > + xfs_bmap_add_free(XFS_AGB_TO_FSB(mp, agno, agbno), contigblk, > + flist, mp); > + > + nextbit = xfs_next_bit(&allocbitmap, 1, nextbit + contig + 1); > + } Again, I think that the generic bitmap code is a better way to implement this... Cheers, Dave. -- Dave Chinner david@fromorbit.com From sandeen@sandeen.net Thu Jul 24 18:29:37 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: xfs@oss.sgi.com Delivered-To: xfs@oss.sgi.com Received: from relay.sgi.com (relay2.corp.sgi.com [137.38.102.29]) by oss.sgi.com (Postfix) with ESMTP id 63BA07F61 for ; Thu, 24 Jul 2014 18:29:37 -0500 (CDT) Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by relay2.corp.sgi.com (Postfix) with ESMTP id 2298F304067 for ; Thu, 24 Jul 2014 16:29:36 -0700 (PDT) X-ASG-Debug-ID: 1406244574-04bdf047520a490001-NocioJ Received: from sandeen.net (sandeen.net [63.231.237.45]) by cuda.sgi.com with ESMTP id VYprz4UzwMWDOX1K for ; Thu, 24 Jul 2014 16:29:34 -0700 (PDT) X-Barracuda-Envelope-From: sandeen@sandeen.net X-Barracuda-Apparent-Source-IP: 63.231.237.45 Received: from liberator.sandeen.net (liberator.sandeen.net [10.0.0.4]) (using TLSv1 with cipher DHE-RSA-AES128-SHA (128/128 bits)) (No client certificate requested) by sandeen.net (Postfix) with ESMTPSA id 6BA176370BC0; Thu, 24 Jul 2014 18:29:34 -0500 (CDT) Message-ID: <53D196DE.4060602@sandeen.net> Date: Thu, 24 Jul 2014 18:29:34 -0500 From: Eric Sandeen MIME-Version: 1.0 To: cbay@excellency.fr, xfs@oss.sgi.com Subject: [PATCH V2] xfs: avoid false quotacheck after unclean shutdown References: <53CE6415.8080607@excellency.fr> <53CE9AF6.3090401@sandeen.net> X-ASG-Orig-Subj: [PATCH V2] xfs: avoid false quotacheck after unclean shutdown In-Reply-To: <53CE9AF6.3090401@sandeen.net> X-Enigmail-Version: 1.6 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit X-Barracuda-Connect: sandeen.net[63.231.237.45] X-Barracuda-Start-Time: 1406244574 X-Barracuda-URL: http://192.48.157.11:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 X-Barracuda-Spam-Score: 0.00 X-Barracuda-Spam-Status: No, SCORE=0.00 using per-user scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.7 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.7791 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- The commit 83e782e xfs: Remove incore use of XFS_OQUOTA_ENFD and XFS_OQUOTA_CHKD added a new function xfs_sb_quota_from_disk() which swaps on-disk XFS_OQUOTA_* flags for in-core XFS_GQUOTA_* and XFS_PQUOTA_* flags after the superblock is read. However, if log recovery is required, the superblock is read again, and the modified in-core flags are re-read from disk, so we have XFS_OQUOTA_* flags in memory again. This causes the XFS_QM_NEED_QUOTACHECK() test to be true, because the XFS_OQUOTA_CHKD is still set, and not XFS_GQUOTA_CHKD or XFS_PQUOTA_CHKD. Change xfs_sb_from_disk to call xfs_sb_quota_from disk and always convert the disk flags to in-memory flags. Add a lower-level function which can be called with "false" to not convert the flags, so that the sb verifier can verify exactly what was on disk, per Brian Foster's suggestion. Reported-by: Cyril B. Signed-off-by: Eric Sandeen --- V2: Call xfs_sb_quota_from_disk from xfs_sb_from_disk, unless we're the verifier, which wants to see what is actually on-disk to verify it. Thanks Brian! diff --git a/fs/xfs/xfs_mount.c b/fs/xfs/xfs_mount.c index 3507cd0..16d1671 100644 --- a/fs/xfs/xfs_mount.c +++ b/fs/xfs/xfs_mount.c @@ -324,7 +324,6 @@ reread: * Initialize the mount structure from the superblock. */ xfs_sb_from_disk(sbp, XFS_BUF_TO_SBP(bp)); - xfs_sb_quota_from_disk(sbp); /* * If we haven't validated the superblock, do so now before we try diff --git a/fs/xfs/xfs_sb.c b/fs/xfs/xfs_sb.c index 7703fa6..0f631d2 100644 --- a/fs/xfs/xfs_sb.c +++ b/fs/xfs/xfs_sb.c @@ -386,10 +386,11 @@ xfs_sb_quota_from_disk(struct xfs_sb *sbp) } } -void -xfs_sb_from_disk( +static void +__xfs_sb_from_disk( struct xfs_sb *to, - xfs_dsb_t *from) + xfs_dsb_t *from, + bool convert_xquota) { to->sb_magicnum = be32_to_cpu(from->sb_magicnum); to->sb_blocksize = be32_to_cpu(from->sb_blocksize); @@ -445,6 +446,17 @@ xfs_sb_from_disk( to->sb_pad = 0; to->sb_pquotino = be64_to_cpu(from->sb_pquotino); to->sb_lsn = be64_to_cpu(from->sb_lsn); + /* Convert on-disk flags to in-memory flags? */ + if (convert_xquota) + xfs_sb_quota_from_disk(to); +} + +void +xfs_sb_from_disk( + struct xfs_sb *to, + xfs_dsb_t *from) +{ + __xfs_sb_from_disk(to, from, true); } static inline void @@ -577,7 +589,11 @@ xfs_sb_verify( struct xfs_mount *mp = bp->b_target->bt_mount; struct xfs_sb sb; - xfs_sb_from_disk(&sb, XFS_BUF_TO_SBP(bp)); + /* + * Use call variant which doesn't convert quota flags from disk + * format, because xfs_mount_validate_sb checks the on-disk flags. + */ + __xfs_sb_from_disk(&sb, XFS_BUF_TO_SBP(bp), false); /* * Only check the in progress field for the primary superblock as From david@fromorbit.com Thu Jul 24 18:30:11 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: xfs@oss.sgi.com Delivered-To: xfs@oss.sgi.com Received: from relay.sgi.com (relay2.corp.sgi.com [137.38.102.29]) by oss.sgi.com (Postfix) with ESMTP id 715837F3F for ; Thu, 24 Jul 2014 18:30:11 -0500 (CDT) Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by relay2.corp.sgi.com (Postfix) with ESMTP id 5EA7130407A for ; Thu, 24 Jul 2014 16:30:11 -0700 (PDT) X-ASG-Debug-ID: 1406244605-04cb6c6c2708bc0001-NocioJ Received: from ipmail05.adl6.internode.on.net (ipmail05.adl6.internode.on.net [150.101.137.143]) by cuda.sgi.com with ESMTP id rP2Pz6xLgC1brBFl for ; Thu, 24 Jul 2014 16:30:06 -0700 (PDT) X-Barracuda-Envelope-From: david@fromorbit.com X-Barracuda-Apparent-Source-IP: 150.101.137.143 Received: from ppp121-44-115-157.lns20.syd6.internode.on.net (HELO dastard) ([121.44.115.157]) by ipmail05.adl6.internode.on.net with ESMTP; 25 Jul 2014 08:59:38 +0930 Received: from dave by dastard with local (Exim 4.80) (envelope-from ) id 1XASS6-0002CR-MB; Fri, 25 Jul 2014 09:29:34 +1000 Date: Fri, 25 Jul 2014 09:29:34 +1000 From: Dave Chinner To: Brian Foster Cc: xfs@oss.sgi.com Subject: Re: [PATCH 17/18] xfs: use actual inode count for sparse records in bulkstat/inumbers Message-ID: <20140724232934.GW20518@dastard> X-ASG-Orig-Subj: Re: [PATCH 17/18] xfs: use actual inode count for sparse records in bulkstat/inumbers References: <1406211788-63206-1-git-send-email-bfoster@redhat.com> <1406211788-63206-18-git-send-email-bfoster@redhat.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1406211788-63206-18-git-send-email-bfoster@redhat.com> User-Agent: Mutt/1.5.21 (2010-09-15) X-Barracuda-Connect: ipmail05.adl6.internode.on.net[150.101.137.143] X-Barracuda-Start-Time: 1406244605 X-Barracuda-URL: http://192.48.176.15:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 X-Barracuda-Spam-Score: 0.00 X-Barracuda-Spam-Status: No, SCORE=0.00 using per-user scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.7 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.7790 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- On Thu, Jul 24, 2014 at 10:23:07AM -0400, Brian Foster wrote: > The bulkstat and inumbers mechanisms make the assumption that inode > records consist of a full 64 inode chunk in several places. E.g., this > is used to track how many inodes have been processed overall as well as > to determine when all in-use inodes of a record have been processed. The > record processing, in particular, increments the record freecount for > each in-use inode until it hits the expected max of 64. > > This is invalid for sparse inode records. While all inodes might be > marked free in the free mask regardless of whether they are allocated on > disk, ir_freecount is based on the total number of physically allocated > inodes and thus may be less than 64 inodes on a completely free inode > chunk. > > Create the xfs_inobt_count() helper to calculate the total number of > physically allocated inodes based on the holemask. Use the helper in > xfs_bulkstat() and xfs_inumbers() instead of the fixed > XFS_INODE_PER_CHUNK value to ensure correct accounting in the event of > sparse inode records. > > Signed-off-by: Brian Foster > --- > fs/xfs/libxfs/xfs_ialloc.c | 27 +++++++++++++++++++++++++++ > fs/xfs/libxfs/xfs_ialloc.h | 5 +++++ > fs/xfs/xfs_itable.c | 12 +++++++----- > 3 files changed, 39 insertions(+), 5 deletions(-) > > diff --git a/fs/xfs/libxfs/xfs_ialloc.c b/fs/xfs/libxfs/xfs_ialloc.c > index 86c6ccd..daf317f 100644 > --- a/fs/xfs/libxfs/xfs_ialloc.c > +++ b/fs/xfs/libxfs/xfs_ialloc.c > @@ -951,6 +951,33 @@ xfs_inobt_first_free_inode( > } > > /* > + * Calculate the real count of inodes in a chunk. > + */ > +int > +xfs_inobt_count( > + struct xfs_inobt_rec_incore *rec) > +{ > + __uint16_t allocmask; > + uint allocbitmap; > + int nextbit; > + int count = 0; > + > + if (!xfs_inobt_issparse(rec)) > + return XFS_INODES_PER_CHUNK; > + > + allocmask = ~rec->ir_holemask; > + allocbitmap = allocmask; > + > + nextbit = xfs_next_bit(&allocbitmap, 1, 0); > + while (nextbit != -1) { > + count += XFS_INODES_PER_SPCHUNK; > + nextbit = xfs_next_bit(&allocbitmap, 1, nextbit + 1); > + } bitmap_weight() * XFS_INODES_PER_SPCHUNK? -Dave -- Dave Chinner david@fromorbit.com From david@fromorbit.com Thu Jul 24 18:35:37 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: xfs@oss.sgi.com Delivered-To: xfs@oss.sgi.com Received: from relay.sgi.com (relay1.corp.sgi.com [137.38.102.111]) by oss.sgi.com (Postfix) with ESMTP id 52A487F58 for ; Thu, 24 Jul 2014 18:35:37 -0500 (CDT) Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by relay1.corp.sgi.com (Postfix) with ESMTP id 3C3B58F8040 for ; Thu, 24 Jul 2014 16:35:37 -0700 (PDT) X-ASG-Debug-ID: 1406244934-04cbb006850a930001-NocioJ Received: from ipmail05.adl6.internode.on.net (ipmail05.adl6.internode.on.net [150.101.137.143]) by cuda.sgi.com with ESMTP id 6UWYkNgtflXzBSEO for ; Thu, 24 Jul 2014 16:35:35 -0700 (PDT) X-Barracuda-Envelope-From: david@fromorbit.com X-Barracuda-Apparent-Source-IP: 150.101.137.143 X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: AqQMALuX0VN5LHOdPGdsb2JhbABZgw6BKYInhQioIQEBAgIGoSkBgQ4XBQEBAQE4NoQEAQU6HCMQCAMOCgklDwUlAwcaE4hBv2EXGIVjiVAHhEYFmzWYICsv Received: from ppp121-44-115-157.lns20.syd6.internode.on.net (HELO dastard) ([121.44.115.157]) by ipmail05.adl6.internode.on.net with ESMTP; 25 Jul 2014 09:05:00 +0930 Received: from dave by dastard with local (Exim 4.80) (envelope-from ) id 1XASX7-0002Dp-5R; Fri, 25 Jul 2014 09:34:45 +1000 Date: Fri, 25 Jul 2014 09:34:45 +1000 From: Dave Chinner To: Brian Foster Cc: xfs@oss.sgi.com Subject: Re: [PATCH 18/18] xfs: enable sparse inode chunks for v5 superblocks Message-ID: <20140724233445.GX20518@dastard> X-ASG-Orig-Subj: Re: [PATCH 18/18] xfs: enable sparse inode chunks for v5 superblocks References: <1406211788-63206-1-git-send-email-bfoster@redhat.com> <1406211788-63206-19-git-send-email-bfoster@redhat.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1406211788-63206-19-git-send-email-bfoster@redhat.com> User-Agent: Mutt/1.5.21 (2010-09-15) X-Barracuda-Connect: ipmail05.adl6.internode.on.net[150.101.137.143] X-Barracuda-Start-Time: 1406244934 X-Barracuda-URL: http://192.48.176.25:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 X-Barracuda-Spam-Score: 0.00 X-Barracuda-Spam-Status: No, SCORE=0.00 using per-user scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.7 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.7791 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- On Thu, Jul 24, 2014 at 10:23:08AM -0400, Brian Foster wrote: > Enable the use and processing of sparse inode chunks. Fix the > xfs_sb_version_hassparseinodes() helper to allow the allocation of > sparse chunks on v5 format superblocks. Add the incompat. feature bit to > the *_ALL mask such that fs' with sparse chunks can be mounted. Interesting way of allowing XFS_SB_FEAT_INCOMPAT_SPINODES to be optional. :) I didn't expect it to be used this way, hence my earlier comments about chicken and egg feature bits. I still think I'd like this to be explicit rather than just added when the format first changes... Cheers, Dave. -- Dave Chinner david@fromorbit.com From david@fromorbit.com Thu Jul 24 18:35:57 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: xfs@oss.sgi.com Delivered-To: xfs@oss.sgi.com Received: from relay.sgi.com (relay3.corp.sgi.com [198.149.34.15]) by oss.sgi.com (Postfix) with ESMTP id 29AD67F58 for ; Thu, 24 Jul 2014 18:35:57 -0500 (CDT) Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by relay3.corp.sgi.com (Postfix) with ESMTP id C6EF6AC006 for ; Thu, 24 Jul 2014 16:35:56 -0700 (PDT) X-ASG-Debug-ID: 1406244954-04bdf047520a840001-NocioJ Received: from ipmail05.adl6.internode.on.net (ipmail05.adl6.internode.on.net [150.101.137.143]) by cuda.sgi.com with ESMTP id EI9XN6zPopdicMWu for ; Thu, 24 Jul 2014 16:35:55 -0700 (PDT) X-Barracuda-Envelope-From: david@fromorbit.com X-Barracuda-Apparent-Source-IP: 150.101.137.143 X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: AqQMALuX0VN5LHOdPGdsb2JhbABZgw6BKYInhQioIQEBAgIGoSkBgQ4XBQEBAQE4NoQEAQUnExwjEAgDDgoJJQ8FJQMHGhOIQb9hFxiFY4lQB4RGBZs1lkmBVysv Received: from ppp121-44-115-157.lns20.syd6.internode.on.net (HELO dastard) ([121.44.115.157]) by ipmail05.adl6.internode.on.net with ESMTP; 25 Jul 2014 09:05:34 +0930 Received: from dave by dastard with local (Exim 4.80) (envelope-from ) id 1XASXt-0002E3-Rr; Fri, 25 Jul 2014 09:35:33 +1000 Date: Fri, 25 Jul 2014 09:35:33 +1000 From: Dave Chinner To: Brian Foster Cc: xfs@oss.sgi.com Subject: Re: [PATCH 03/18] xfs: define sparse inode chunks v5 sb feature bit and helper function Message-ID: <20140724233533.GY20518@dastard> X-ASG-Orig-Subj: Re: [PATCH 03/18] xfs: define sparse inode chunks v5 sb feature bit and helper function References: <1406211788-63206-1-git-send-email-bfoster@redhat.com> <1406211788-63206-4-git-send-email-bfoster@redhat.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1406211788-63206-4-git-send-email-bfoster@redhat.com> User-Agent: Mutt/1.5.21 (2010-09-15) X-Barracuda-Connect: ipmail05.adl6.internode.on.net[150.101.137.143] X-Barracuda-Start-Time: 1406244954 X-Barracuda-URL: http://192.48.157.11:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 X-Barracuda-Spam-Score: 0.00 X-Barracuda-Spam-Status: No, SCORE=0.00 using per-user scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.7 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.7791 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- On Thu, Jul 24, 2014 at 10:22:53AM -0400, Brian Foster wrote: > The sparse inode chunks feature will use the helper function to enable > the allocation of sparse inode chunks. The incompatible feature bit is > set on disk once a sparse inode chunk is allocated to prevent older > drivers from mounting an fs with sparse chunks. > > Note that the feature is hardcoded disabled and the feature bit not > included in the all features mask until fully implemented. > > Signed-off-by: Brian Foster > --- > fs/xfs/libxfs/xfs_sb.h | 6 ++++++ > 1 file changed, 6 insertions(+) > > diff --git a/fs/xfs/libxfs/xfs_sb.h b/fs/xfs/libxfs/xfs_sb.h > index c43c2d6..6f48de9 100644 > --- a/fs/xfs/libxfs/xfs_sb.h > +++ b/fs/xfs/libxfs/xfs_sb.h > @@ -509,6 +509,7 @@ xfs_sb_has_ro_compat_feature( > } > > #define XFS_SB_FEAT_INCOMPAT_FTYPE (1 << 0) /* filetype in dirent */ > +#define XFS_SB_FEAT_INCOMPAT_SPINODES (1 << 1) /* sparse inode chunks */ > #define XFS_SB_FEAT_INCOMPAT_ALL \ > (XFS_SB_FEAT_INCOMPAT_FTYPE) > > @@ -558,6 +559,11 @@ static inline int xfs_sb_version_hasfinobt(xfs_sb_t *sbp) > (sbp->sb_features_ro_compat & XFS_SB_FEAT_RO_COMPAT_FINOBT); > } > > +static inline int xfs_sb_version_hassparseinodes(struct xfs_sb *sbp) static inline bool ... > +{ > + return 0; /* not yet enabled */ return false; -Dave. -- Dave Chinner david@fromorbit.com From david@fromorbit.com Thu Jul 24 21:16:52 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: xfs@oss.sgi.com Delivered-To: xfs@oss.sgi.com Received: from relay.sgi.com (relay3.corp.sgi.com [198.149.34.15]) by oss.sgi.com (Postfix) with ESMTP id 346217F55 for ; Thu, 24 Jul 2014 21:16:52 -0500 (CDT) Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by relay3.corp.sgi.com (Postfix) with ESMTP id A3C24AC005 for ; Thu, 24 Jul 2014 19:16:51 -0700 (PDT) X-ASG-Debug-ID: 1406254608-04cbb0068511450001-NocioJ Received: from ipmail05.adl6.internode.on.net (ipmail05.adl6.internode.on.net [150.101.137.143]) by cuda.sgi.com with ESMTP id pTH3IdPyEcE1b0Nc for ; Thu, 24 Jul 2014 19:16:49 -0700 (PDT) X-Barracuda-Envelope-From: david@fromorbit.com X-Barracuda-Apparent-Source-IP: 150.101.137.143 X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: ApIOAIq90VN5LHOdPGdsb2JhbAA/GoMOUleCJ60zAQEBAQEBBplmh0MBgREXBQEBAQE4NoQDAQEEATocFwELBQsIAxgJJQ8FJQMHGhMUB4gfBw42vzAYhWOEA4VNB4MugRkFmzyYIysv Received: from ppp121-44-115-157.lns20.syd6.internode.on.net (HELO dastard) ([121.44.115.157]) by ipmail05.adl6.internode.on.net with ESMTP; 25 Jul 2014 11:46:38 +0930 Received: from dave by dastard with local (Exim 4.80) (envelope-from ) id 1XAV3k-0002Zg-4l; Fri, 25 Jul 2014 12:16:36 +1000 Date: Fri, 25 Jul 2014 12:16:36 +1000 From: Dave Chinner To: Somdeep Dey Cc: xfs@oss.sgi.com Subject: Re: Fwd: XFS Message-ID: <20140725021636.GC26465@dastard> X-ASG-Orig-Subj: Re: Fwd: XFS References: MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.5.21 (2010-09-15) X-Barracuda-Connect: ipmail05.adl6.internode.on.net[150.101.137.143] X-Barracuda-Start-Time: 1406254608 X-Barracuda-URL: http://192.48.176.25:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 X-Barracuda-Spam-Score: 0.10 X-Barracuda-Spam-Status: No, SCORE=0.10 using per-user scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.7 tests=BSF_SC0_SA085 X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.7794 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.10 BSF_SC0_SA085 Custom Rule SA085 On Wed, Jul 23, 2014 at 11:53:26PM +0530, Somdeep Dey wrote: > Hello, > We are a group of students that are currently pursuing our undergraduate > degrees in Computer Science from Pune Institute of Computer Technology > (PICT), Maharashtra, India. We will be graduating in June 2015 and are > currently in our final year. For our final year B.E project we have > selected the domain as Systems and would be very interested in working in > the field of journalling file systems, which is where we stumbled upon XFS. > Over the past few weeks we have been extensively studying the various > features and working principles which has allowed this filesystem to > prosper. It will be a great learning opportunity for us to work with XFS > and in turn work with you. As per given on the *http://xfs.org/ > * website for contributions, we would appreciate if you > could steer us towards the direction of choosing the right topic and > working towards culminating a project in the same, which would be helpful > for the community. My first concern is this: Do you have permission from PICT to publish your work under the GPL or LGPL (depending on whether it is kernel or userspace code you write)? If not, then we can't use the work you do and so you can guess how much interest we'd have in that case... > 4) Development time ( 6 to 7 months from August to February ) So nothing too complex then... > We would love to hear from about any ideas that you see fit for us to > pursue and which are feasible in the specified time frame. Hoping to hear > from you soon, and thanking you in anticipation. Well, given the timeframe and your capabilities, I'd suggest that developing new core infrastructure features might be a bit of a stretch. However, I think that taking one of the userspace utilities and enhancing/modernising them would be a great way to learn. For example, we've had plans for a long time to make xfs_fsr (the online defragmenter) more intelligent and able to solve issues we know exist but never had the time to fix. For example: - explicit control of locality for groups of files - ability to defragment only portions of files rather than just whole files - defragmenting free space - enhanced/faster filesystem scanning In just those four things, there are new kernel interfaces that are required, interaction with other community members that are adding code whose functionality you'd need to build upon, code modernisation/factoring/enhancement, partial and full filesystem structural analysis to determine optimal data movement to solve multiple goals, test code for the new interfaces and each new defragmentation goal, etc. A project like this allows you to start by classifying and understanding the current high level behaviour of both the fileystm and the utility, then it's limitations and it's problems, then determine the best solutions to the problems, and then implement the solutions. The work can also be broken up into multiple independent parts, which is useful for a team that is doing the work. The main thing is that you are not going to be able to do this in isolation. Each step of the process needs review and feedback from the community, otherwise we'll can end up with code that nobody wants or can use. You're going to need to pick the brains of community people to understand the algorithms and their deficiencies, and for us to pick holes in your solutions to those deficiencies to improve the solutions we end up implementing. To illustrate this with an example, I'll again point you to Brian's sparse inode allocation patchset from this morning. The idea behind that patchset was originally documented back in 2008 here: http://xfs.org/index.php/Improving_inode_Caching#Single_Block_Inode_Allocation and it's taken us a long time to: a) understand exactly what is required to implement such functionality; and b) get the pre-requisite infrastructure in place to be able to start implementing the solution. IOWs, we've talked about the design for some time and the code Brian posted is an early prototype of the solution we've iterated over. There are lots of open discussion points that the prototype has uncovered, and so we'll continue to iterate the design/prototype/review cycle on the mailing list until we have code of production quality. That is likely to still take a couple months to get the functionality to the point where it can be merged. I'm mentioning this because it will give you some insight into the processes we use for solving problems and getting those changes into the upstream code base. Keep in mind, though, that the bar isn't quite as high for userspace code as it is for kernel code - that's one of the reasons why I'm suggesting that improving userspace utilities is a good place to start. If defragmetnation and layout optimisation doesn't really interest you, I can suggest other features we would like to have that require similar levels of development work for both kernel and userspace like filesystem shrinking or reverse block mapping for error recovery purposes, or .... Cheers, Dave. -- Dave Chinner david@fromorbit.com From rohan.puri15@gmail.com Fri Jul 25 01:21:05 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.3 required=5.0 tests=FREEMAIL_ENVFROM_END_DIGIT, FREEMAIL_FROM,T_DKIM_INVALID autolearn=no version=3.3.1 X-Original-To: xfs@oss.sgi.com Delivered-To: xfs@oss.sgi.com Received: from relay.sgi.com (relay2.corp.sgi.com [137.38.102.29]) by oss.sgi.com (Postfix) with ESMTP id 851267F47 for ; Fri, 25 Jul 2014 01:21:05 -0500 (CDT) Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by relay2.corp.sgi.com (Postfix) with ESMTP id 47B5130407E for ; Thu, 24 Jul 2014 23:21:05 -0700 (PDT) X-ASG-Debug-ID: 1406269258-04bdf0475019010001-NocioJ Received: from mail-lb0-f170.google.com (mail-lb0-f170.google.com [209.85.217.170]) by cuda.sgi.com with ESMTP id FlgWFLG6FTOdY1Me (version=TLSv1 cipher=RC4-SHA bits=128 verify=NO) for ; Thu, 24 Jul 2014 23:20:59 -0700 (PDT) X-Barracuda-Envelope-From: rohan.puri15@gmail.com X-Barracuda-Apparent-Source-IP: 209.85.217.170 X-Barracuda-IPDD: Level1 [gmail.com/209.85.217.170] Received: by mail-lb0-f170.google.com with SMTP id w7so3117613lbi.29 for ; Thu, 24 Jul 2014 23:20:58 -0700 (PDT) X-Barracuda-IPDD: Level1 [gmail.com/209.85.217.170] X-Barracuda-IPDD: Level1 [gmail.com/209.85.217.170] DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :cc:content-type; bh=Cue1c+bFUaagfhxb5xBdnMeL/PdvCPsyykz+dvqYw98=; b=ZCqogQR1vpu8LM4Db65rIrs3Y2iyRrbsqwV8xKQd/DOZfnxOFNl3cRnVgSUXAmHELY j1RestdYZG5Hy9NuxyFaF1YzWEzAhFnStAkt39PaJPV7RQziyyOUnpbYMNnK4hLvpzOK RZF2tCJxvr3UAIT+cVe/NqJ45CgTaJ0YdkuumvFFKet9GLEZtitckWJ30PzRHT6KivR+ Q9DHQoHwFg7uX00VXOXgF0t3BFW1FPHgvf6C3Wij/INlTty10WiER5Q1KKSsxg5W4xpj AFyo6RL9s4s3GSuYIqqruc+69+/OZNzx3zW4nXQsd3iqaYIxxxCrZob/9LAOiPXwbiBA yCGg== MIME-Version: 1.0 X-Received: by 10.112.33.74 with SMTP id p10mr13894597lbi.0.1406269258439; Thu, 24 Jul 2014 23:20:58 -0700 (PDT) Received: by 10.112.254.132 with HTTP; Thu, 24 Jul 2014 23:20:58 -0700 (PDT) In-Reply-To: <5B4825C3-F47E-48B7-8DA4-6D79F53B73B1@dilger.ca> References: <4f8d5dc5b51a43efaf16c39398c23a6276e40a30.1386778303.git.dsterba@suse.cz> <20131212232443.GL31386@dastard> <9520AB36-B728-423A-8EA1-FDD22B79AE90@dilger.ca> <20140724192245.GG1553@suse.cz> <5B4825C3-F47E-48B7-8DA4-6D79F53B73B1@dilger.ca> Date: Fri, 25 Jul 2014 11:50:58 +0530 Message-ID: Subject: Re: [PATCH 2/4 v3] fiemap: add EXTENT_DATA_COMPRESSED flag From: Rohan Puri X-ASG-Orig-Subj: Re: [PATCH 2/4 v3] fiemap: add EXTENT_DATA_COMPRESSED flag To: Andreas Dilger Cc: dsterba@suse.cz, linux-fsdevel , linux-nilfs@vger.kernel.org, xfs@oss.sgi.com, Btrfs Developer List , Ext4 Developers List , ocfs2-devel@oss.oracle.com Content-Type: text/plain; charset=UTF-8 X-Barracuda-Connect: mail-lb0-f170.google.com[209.85.217.170] X-Barracuda-Start-Time: 1406269259 X-Barracuda-Encrypted: RC4-SHA X-Barracuda-URL: http://192.48.157.11:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 X-Barracuda-Spam-Score: 0.00 X-Barracuda-Spam-Status: No, SCORE=0.00 using per-user scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.7 tests=DKIM_SIGNED, DKIM_VERIFIED X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.7800 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- -0.00 DKIM_VERIFIED Domain Keys Identified Mail: signature passes verification 0.00 DKIM_SIGNED Domain Keys Identified Mail: message has a signature On Fri, Jul 25, 2014 at 4:04 AM, Andreas Dilger wrote: > > On Jul 24, 2014, at 1:22 PM, David Sterba wrote: >> On Thu, Jul 17, 2014 at 12:07:57AM -0600, Andreas Dilger wrote: >>> any progress on this patch series? >> >> I'm sorry I got distracted at the end of year and did not finish the >> series. >> >>> I never saw an updated version of this patch series after the last round of >>> reviews, but it would be great to move it forward. I have filefrag patches >>> in my e2fsprogs tree waiting for an updated version of your patch. >>> >>> I recall the main changes were: >>> - add FIEMAP_EXTENT_PHYS_LENGTH flag to indicate if fe_phys_length was valid >> >> fe_phys_length will be always valid, so other the flags are set only if it's >> not equal to the logical length. >> >>> - rename fe_length to fe_logi_length and #define fe_length fe_logi_length >>> - always fill in fe_phys_length (= fe_logi_length for uncompressed files) >>> and set FIEMAP_EXTENT_PHYS_LENGTH whether the extent is compressed or not >> >> This is my understanding and contradicts the first point. > > I think Dave Chinner's former point was that having fe_phys_length validity > depend on FIEMAP_EXTENT_DATA_COMPRESSED is a non-intuitive interface. It is > not true that fe_phys_length would always be valid, since that is not the > case for older kernels that currently always set this field to 0, so they > need some flag to indicate if fe_phys_length is valid. Alternately, > userspace could do: > > if (ext->fe_phys_length == 0) > ext->fe_phys_length = ext->fe_logi_length; > > but that pre-supposes that fe_phys_length == 0 is never a valid value when > fe_logi_length is non-zero, and this might introduce errors in some cases. > I could imagine that some compression methods might not allocate any space > at all if it was all zeroes, and just store a bit in the blockpointer or > extent, so having a separate FIEMAP_EXTENT_PHYS_LENGTH is probably safer > in the long run. zfs is an example of this. > That opens up the question of whether a written zero > filled space that gets compressed away is different from a hole, but I'd > prefer to just return whatever the file mapping is than interpret it. > > Cheers, Andreas > >>> - add WARN_ONCE() in fiemap_fill_next_extent() as described below >>> >>> I don't know if there was any clear statement about whether there should be >>> separate FIEMAP_EXTENT_PHYS_LENGTH and FIEMAP_EXTENT_DATA_COMPRESSED flags, >>> or if the latter should be implicit? Probably makes sense to have separate >>> flags. It should be fine to use: >>> >>> #define FIEMAP_EXTENT_PHYS_LENGTH 0x00000010 >>> >>> since this flag was never used. >> >> I've kept only FIEMAP_EXTENT_DATA_COMPRESSED, I don't see a need for >> FIEMAP_EXTENT_PHYS_LENGTH and this would be yet another flag because the >> FIEMAP_EXTENT_DATA_ENCODED is also implied. >> >> I'll send V4, we can discuss the PHYS_LENGTH flag then. > > > Cheers, Andreas > > > > > Regards, Rohan From dsterba@suse.cz Fri Jul 25 03:31:39 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: xfs@oss.sgi.com Delivered-To: xfs@oss.sgi.com Received: from relay.sgi.com (relay3.corp.sgi.com [198.149.34.15]) by oss.sgi.com (Postfix) with ESMTP id 87D0929DF9 for ; Fri, 25 Jul 2014 03:31:39 -0500 (CDT) Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by relay3.corp.sgi.com (Postfix) with ESMTP id 16B45AC005 for ; Fri, 25 Jul 2014 01:31:35 -0700 (PDT) X-ASG-Debug-ID: 1406277090-04cb6c6c2419b60001-NocioJ Received: from mx2.suse.de (cantor2.suse.de [195.135.220.15]) by cuda.sgi.com with ESMTP id 1okMAm4DYmoCH7iK (version=TLSv1 cipher=AES256-SHA bits=256 verify=NO) for ; Fri, 25 Jul 2014 01:31:31 -0700 (PDT) X-Barracuda-Envelope-From: dsterba@suse.cz X-Barracuda-Apparent-Source-IP: 195.135.220.15 Received: from relay1.suse.de (charybdis-ext.suse.de [195.135.220.254]) by mx2.suse.de (Postfix) with ESMTP id 8E75BAC17; Fri, 25 Jul 2014 08:31:29 +0000 (UTC) Received: by ds.suse.cz (Postfix, from userid 10065) id B0698DAAE1; Fri, 25 Jul 2014 10:31:28 +0200 (CEST) From: David Sterba To: linux-fsdevel@vger.kernel.org Cc: David Sterba , adilger@dilger.ca, hch@infradead.org, mfasheh@suse.com, viro@zeniv.linux.org.uk, david@fromorbit.com, xfs@oss.sgi.com, linux-nilfs@vger.kernel.org, ocfs2-devel@oss.oracle.com, linux-ext4@vger.kernel.org, linux-btrfs@vger.kernel.org Subject: [PATCH 0/5 v4] fiemap: introduce EXTENT_DATA_COMPRESSED flag Date: Fri, 25 Jul 2014 10:31:28 +0200 X-ASG-Orig-Subj: [PATCH 0/5 v4] fiemap: introduce EXTENT_DATA_COMPRESSED flag Message-Id: X-Mailer: git-send-email 1.9.0 X-Barracuda-Connect: cantor2.suse.de[195.135.220.15] X-Barracuda-Start-Time: 1406277091 X-Barracuda-Encrypted: AES256-SHA X-Barracuda-URL: http://192.48.176.15:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 X-Barracuda-Spam-Score: 0.00 X-Barracuda-Spam-Status: No, SCORE=0.00 using per-user scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.7 tests=BSF_SC0_MISMATCH_TO X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.7802 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.00 BSF_SC0_MISMATCH_TO Envelope rcpt doesn't match header The original FIEMAP patch did not define this bit, btrfs will make use of it. The defined constant maintains the same value as originally proposed. Currently, the 'filefrag' utility has no way to recognize and denote a compressed extent. As implemented in btrfs right now, the compression step splits a big extent into smaller chunks and this is reported as a heavily fragmented file. Adding the flag to filefrag will at least give some explanation why, this has been confusing users for some time already. fiemap_fill_next_extent is extended and takes argument to fill the physical length. V4: The physical length is always set and equal to logical, or different and then sets the COMPRESSED flag. fiemap_extent::fe_length renamed to fe_logi_length V3: Based on feedback from Andreas, implement #1 from V2, current users of fiemap_fill_next_extent (fs/, ext4, gfs2, ocfs2, nilfs2, xfs) updated accordingly, no functional change. V2: Based on feedback from Andreas, the fiemap_extent is now able to hold the physical extent length, to be filled by the filesystem callback. 1) extend fiemap_fill_next_extent to take phys_length and update all users (ext4, gfs2, ocfs2, nilfs2, xfs) David Sterba (5): fiemap: fix comment at EXTENT_DATA_ENCRYPTED fiemap: add EXTENT_DATA_COMPRESSED flag btrfs: set FIEMAP_EXTENT_DATA_COMPRESSED for compressed extents Documentation/fiemap: Document the DATA_COMPRESSED flag fiemap: rename fe_length to fe_logi_length Documentation/filesystems/fiemap.txt | 19 +++++++++++++++---- fs/btrfs/extent_io.c | 8 ++++++-- fs/ext4/extents.c | 3 ++- fs/ext4/inline.c | 2 +- fs/gfs2/inode.c | 2 +- fs/ioctl.c | 29 ++++++++++++++++++++++------- fs/nilfs2/inode.c | 8 +++++--- fs/ocfs2/extent_map.c | 4 ++-- fs/xfs/xfs_iops.c | 2 +- include/linux/fs.h | 2 +- include/uapi/linux/fiemap.h | 13 ++++++++++--- 11 files changed, 66 insertions(+), 26 deletions(-) -- 1.8.4.5 From dsterba@suse.cz Fri Jul 25 03:31:44 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: xfs@oss.sgi.com Delivered-To: xfs@oss.sgi.com Received: from relay.sgi.com (relay1.corp.sgi.com [137.38.102.111]) by oss.sgi.com (Postfix) with ESMTP id 4D2D329E05 for ; Fri, 25 Jul 2014 03:31:44 -0500 (CDT) Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by relay1.corp.sgi.com (Postfix) with ESMTP id 2D6568F804C for ; Fri, 25 Jul 2014 01:31:43 -0700 (PDT) X-ASG-Debug-ID: 1406277101-04cb6c6c2619b80001-NocioJ Received: from mx2.suse.de (cantor2.suse.de [195.135.220.15]) by cuda.sgi.com with ESMTP id hVkStmdwZG68hIDv (version=TLSv1 cipher=AES256-SHA bits=256 verify=NO) for ; Fri, 25 Jul 2014 01:31:41 -0700 (PDT) X-Barracuda-Envelope-From: dsterba@suse.cz X-Barracuda-Apparent-Source-IP: 195.135.220.15 Received: from relay1.suse.de (charybdis-ext.suse.de [195.135.220.254]) by mx2.suse.de (Postfix) with ESMTP id C15AEAC1F; Fri, 25 Jul 2014 08:31:40 +0000 (UTC) Received: by ds.suse.cz (Postfix, from userid 10065) id E86CADAAE1; Fri, 25 Jul 2014 10:31:39 +0200 (CEST) From: David Sterba To: linux-fsdevel@vger.kernel.org Cc: David Sterba , adilger@dilger.ca, hch@infradead.org, mfasheh@suse.com, viro@zeniv.linux.org.uk, david@fromorbit.com, xfs@oss.sgi.com, linux-nilfs@vger.kernel.org, ocfs2-devel@oss.oracle.com, linux-ext4@vger.kernel.org, linux-btrfs@vger.kernel.org, Chris Mason , Steven Whitehouse , "Theodore Ts'o" , Ben Myers Subject: [PATCH 2/5] fiemap: add EXTENT_DATA_COMPRESSED flag Date: Fri, 25 Jul 2014 10:31:39 +0200 X-ASG-Orig-Subj: [PATCH 2/5] fiemap: add EXTENT_DATA_COMPRESSED flag Message-Id: X-Mailer: git-send-email 1.9.0 In-Reply-To: References: X-Barracuda-Connect: cantor2.suse.de[195.135.220.15] X-Barracuda-Start-Time: 1406277101 X-Barracuda-Encrypted: AES256-SHA X-Barracuda-URL: http://192.48.176.15:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 X-Barracuda-Spam-Score: 0.00 X-Barracuda-Spam-Status: No, SCORE=0.00 using per-user scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.7 tests=BSF_SC0_MISMATCH_TO X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.7802 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.00 BSF_SC0_MISMATCH_TO Envelope rcpt doesn't match header This flag was not accepted when fiemap was proposed [2] due to lack of in-kernel users. Btrfs has compression for a long time and we'd like to see that an extent is compressed in the output of 'filefrag' utility once it's taught about it. For that purpose, a reserved field from fiemap_extent is used to let the filesystem store along the physcial extent length when the flag is set. This keeps compatibility with applications that use FIEMAP. Extend arguments of fiemap_fill_next_extent and update all users. [1] http://article.gmane.org/gmane.comp.file-systems.ext4/8871 [2] http://thread.gmane.org/gmane.comp.file-systems.ext4/8870 [3] http://thread.gmane.org/gmane.linux.file-systems/77632 (v1) [4] http://www.spinics.net/lists/linux-fsdevel/msg69078.html (v2) Cc: Al Viro CC: Andreas Dilger CC: Chris Mason CC: Christoph Hellwig CC KONISHI Ryusuke CC: Mark Fasheh CC: Steven Whitehouse CC: "Theodore Ts'o" CC: Ben Myers Signed-off-by: David Sterba --- fs/btrfs/extent_io.c | 2 +- fs/ext4/extents.c | 3 ++- fs/ext4/inline.c | 2 +- fs/gfs2/inode.c | 2 +- fs/ioctl.c | 27 +++++++++++++++++++++------ fs/nilfs2/inode.c | 8 +++++--- fs/ocfs2/extent_map.c | 4 ++-- fs/xfs/xfs_iops.c | 2 +- include/linux/fs.h | 2 +- include/uapi/linux/fiemap.h | 8 +++++++- 10 files changed, 42 insertions(+), 18 deletions(-) diff --git a/fs/btrfs/extent_io.c b/fs/btrfs/extent_io.c index a389820d158b..eec118bf77ae 100644 --- a/fs/btrfs/extent_io.c +++ b/fs/btrfs/extent_io.c @@ -4357,7 +4357,7 @@ int extent_fiemap(struct inode *inode, struct fiemap_extent_info *fieinfo, end = 1; } ret = fiemap_fill_next_extent(fieinfo, em_start, disko, - em_len, flags); + em_len, em_len, flags); if (ret) goto out_free; } diff --git a/fs/ext4/extents.c b/fs/ext4/extents.c index 4da228a0e6d0..0bdd173ac728 100644 --- a/fs/ext4/extents.c +++ b/fs/ext4/extents.c @@ -2253,6 +2253,7 @@ static int ext4_fill_fiemap_extents(struct inode *inode, (__u64)es.es_lblk << blksize_bits, (__u64)es.es_pblk << blksize_bits, (__u64)es.es_len << blksize_bits, + (__u64)es.es_len << blksize_bits, flags); if (err < 0) break; @@ -5125,7 +5126,7 @@ static int ext4_xattr_fiemap(struct inode *inode, if (physical) error = fiemap_fill_next_extent(fieinfo, 0, physical, - length, flags); + length, length, flags); return (error < 0 ? error : 0); } diff --git a/fs/ext4/inline.c b/fs/ext4/inline.c index 645205d8ada6..3825ff9dc40d 100644 --- a/fs/ext4/inline.c +++ b/fs/ext4/inline.c @@ -1825,7 +1825,7 @@ int ext4_inline_data_fiemap(struct inode *inode, if (physical) error = fiemap_fill_next_extent(fieinfo, 0, physical, - length, flags); + length, length, flags); brelse(iloc.bh); out: up_read(&EXT4_I(inode)->xattr_sem); diff --git a/fs/gfs2/inode.c b/fs/gfs2/inode.c index e62e59477884..5b45cf4e5465 100644 --- a/fs/gfs2/inode.c +++ b/fs/gfs2/inode.c @@ -1931,7 +1931,7 @@ static int gfs2_fiemap(struct inode *inode, struct fiemap_extent_info *fieinfo, len = size - start; if (start < size) ret = fiemap_fill_next_extent(fieinfo, start, phys, - len, flags); + len, len, flags); if (ret == 1) ret = 0; } else { diff --git a/fs/ioctl.c b/fs/ioctl.c index 8ac3fad36192..24a9d912d1e6 100644 --- a/fs/ioctl.c +++ b/fs/ioctl.c @@ -70,20 +70,26 @@ static int ioctl_fibmap(struct file *filp, int __user *p) * @logical: Extent logical start offset, in bytes * @phys: Extent physical start offset, in bytes * @len: Extent length, in bytes + * @phys_len: Physical extent length in bytes * @flags: FIEMAP_EXTENT flags that describe this extent * * Called from file system ->fiemap callback. Will populate extent * info as passed in via arguments and copy to user memory. On * success, extent count on fieinfo is incremented. * + * Extents without any encoding must set the physical and logical length + * to the same value. Otherwise, set flags to FIEMAP_EXTENT_ENCODED + * and possibly specify encoding type. + * * Returns 0 on success, -errno on error, 1 if this was the last * extent that will fit in user array. */ #define SET_UNKNOWN_FLAGS (FIEMAP_EXTENT_DELALLOC) -#define SET_NO_UNMOUNTED_IO_FLAGS (FIEMAP_EXTENT_DATA_ENCRYPTED) +#define SET_NO_UNMOUNTED_IO_FLAGS (FIEMAP_EXTENT_DATA_ENCRYPTED | \ + FIEMAP_EXTENT_DATA_COMPRESSED) #define SET_NOT_ALIGNED_FLAGS (FIEMAP_EXTENT_DATA_TAIL|FIEMAP_EXTENT_DATA_INLINE) int fiemap_fill_next_extent(struct fiemap_extent_info *fieinfo, u64 logical, - u64 phys, u64 len, u32 flags) + u64 phys, u64 len, u64 phys_len, u32 flags) { struct fiemap_extent extent; struct fiemap_extent __user *dest = fieinfo->fi_extents_start; @@ -110,6 +116,14 @@ int fiemap_fill_next_extent(struct fiemap_extent_info *fieinfo, u64 logical, extent.fe_length = len; extent.fe_flags = flags; + WARN_ONCE((flags & FIEMAP_EXTENT_DATA_COMPRESSED) + && !(flags & FIEMAP_EXTENT_ENCODED)); + WARN_ONCE(phys_len != len && !(flags & FIEMAP_EXTENT_DATA_COMPRESSED), + "physical length %llu != logical length %llu without = DATA_COMPRESSED\n", + phys_len, len); + + extent.fe_phys_length = phys_len; + dest += fieinfo->fi_extents_mapped; if (copy_to_user(dest, &extent, sizeof(extent))) return -EFAULT; @@ -318,10 +332,11 @@ int __generic_block_fiemap(struct inode *inode, flags = FIEMAP_EXTENT_MERGED|FIEMAP_EXTENT_LAST; ret = fiemap_fill_next_extent(fieinfo, logical, phys, size, - flags); + size, flags); } else if (size) { ret = fiemap_fill_next_extent(fieinfo, logical, - phys, size, flags); + phys, size, + size, flags); size = 0; } @@ -347,7 +362,7 @@ int __generic_block_fiemap(struct inode *inode, if (start_blk > last_blk && !whole_file) { ret = fiemap_fill_next_extent(fieinfo, logical, phys, size, - flags); + size, flags); break; } @@ -358,7 +373,7 @@ int __generic_block_fiemap(struct inode *inode, if (size) { ret = fiemap_fill_next_extent(fieinfo, logical, phys, size, - flags); + size, flags); if (ret) break; } diff --git a/fs/nilfs2/inode.c b/fs/nilfs2/inode.c index 6252b173a465..a74d3a0e670a 100644 --- a/fs/nilfs2/inode.c +++ b/fs/nilfs2/inode.c @@ -1017,7 +1017,8 @@ int nilfs_fiemap(struct inode *inode, struct fiemap_extent_info *fieinfo, if (size) { /* End of the current extent */ ret = fiemap_fill_next_extent( - fieinfo, logical, phys, size, flags); + fieinfo, logical, phys, size, size, + flags); if (ret) break; } @@ -1067,7 +1068,8 @@ int nilfs_fiemap(struct inode *inode, struct fiemap_extent_info *fieinfo, flags |= FIEMAP_EXTENT_LAST; ret = fiemap_fill_next_extent( - fieinfo, logical, phys, size, flags); + fieinfo, logical, phys, size, + size, flags); if (ret) break; size = 0; @@ -1083,7 +1085,7 @@ int nilfs_fiemap(struct inode *inode, struct fiemap_extent_info *fieinfo, /* Terminate the current extent */ ret = fiemap_fill_next_extent( fieinfo, logical, phys, size, - flags); + size, flags); if (ret || blkoff > end_blkoff) break; diff --git a/fs/ocfs2/extent_map.c b/fs/ocfs2/extent_map.c index 767370b656ca..45c95aa2a00f 100644 --- a/fs/ocfs2/extent_map.c +++ b/fs/ocfs2/extent_map.c @@ -736,7 +736,7 @@ static int ocfs2_fiemap_inline(struct inode *inode, struct buffer_head *di_bh, id2.i_data.id_data); ret = fiemap_fill_next_extent(fieinfo, 0, phys, id_count, - flags); + id_count, flags); if (ret < 0) return ret; } @@ -809,7 +809,7 @@ int ocfs2_fiemap(struct inode *inode, struct fiemap_extent_info *fieinfo, virt_bytes = (u64)le32_to_cpu(rec.e_cpos) << osb->s_clustersize_bits; ret = fiemap_fill_next_extent(fieinfo, virt_bytes, phys_bytes, - len_bytes, fe_flags); + len_bytes, len_bytes, fe_flags); if (ret) break; diff --git a/fs/xfs/xfs_iops.c b/fs/xfs/xfs_iops.c index 205613a06068..eeef5381debb 100644 --- a/fs/xfs/xfs_iops.c +++ b/fs/xfs/xfs_iops.c @@ -1030,7 +1030,7 @@ xfs_fiemap_format( fiemap_flags |= FIEMAP_EXTENT_LAST; error = fiemap_fill_next_extent(fieinfo, logical, physical, - length, fiemap_flags); + length, length, fiemap_flags); if (error > 0) { error = 0; *full = 1; /* user array now full */ diff --git a/include/linux/fs.h b/include/linux/fs.h index e11d60cc867b..609e1d72c3e0 100644 --- a/include/linux/fs.h +++ b/include/linux/fs.h @@ -1412,7 +1412,7 @@ struct fiemap_extent_info { fiemap_extent array */ }; int fiemap_fill_next_extent(struct fiemap_extent_info *info, u64 logical, - u64 phys, u64 len, u32 flags); + u64 phys, u64 len, u64 phys_len, u32 flags); int fiemap_check_flags(struct fiemap_extent_info *fieinfo, u32 fs_flags); /* diff --git a/include/uapi/linux/fiemap.h b/include/uapi/linux/fiemap.h index 93abfcd9ac47..11b51887b94a 100644 --- a/include/uapi/linux/fiemap.h +++ b/include/uapi/linux/fiemap.h @@ -19,7 +19,9 @@ struct fiemap_extent { __u64 fe_physical; /* physical offset in bytes for the start * of the extent from the beginning of the disk */ __u64 fe_length; /* length in bytes for this extent */ - __u64 fe_reserved64[2]; + __u64 fe_phys_length; /* physical length in bytes, may be different from + * fe_length and sets additional extent flags */ + __u64 fe_reserved64; __u32 fe_flags; /* FIEMAP_EXTENT_* flags for this extent */ __u32 fe_reserved[3]; }; @@ -50,6 +52,10 @@ struct fiemap { * Sets EXTENT_UNKNOWN. */ #define FIEMAP_EXTENT_ENCODED 0x00000008 /* Data can not be read * while fs is unmounted */ +#define FIEMAP_EXTENT_DATA_COMPRESSED 0x00000040 /* Data is compressed by fs. + * Sets EXTENT_ENCODED and + * the compressed size is + * stored in fe_phys_length */ #define FIEMAP_EXTENT_DATA_ENCRYPTED 0x00000080 /* Data is encrypted by fs. * Sets EXTENT_ENCODED */ #define FIEMAP_EXTENT_NOT_ALIGNED 0x00000100 /* Extent offsets may not be -- 1.8.4.5 From hvp@hvproduktion.dk Fri Jul 25 03:33:28 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=HTML_MESSAGE autolearn=ham version=3.3.1 X-Original-To: xfs@oss.sgi.com Delivered-To: xfs@oss.sgi.com Received: from relay.sgi.com (relay3.corp.sgi.com [198.149.34.15]) by oss.sgi.com (Postfix) with ESMTP id 4CB7B29DF9 for ; Fri, 25 Jul 2014 03:33:28 -0500 (CDT) Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by relay3.corp.sgi.com (Postfix) with ESMTP id EAE1AAC005 for ; Fri, 25 Jul 2014 01:33:27 -0700 (PDT) X-ASG-Debug-ID: 1406277204-04bdf0475220710001-NocioJ Received: from EXHUB01.exchangeserver.dk (exhub01.exchangeserver.dk [193.239.98.61]) by cuda.sgi.com with ESMTP id hwk47ytaOXbPlGs9 (version=TLSv1 cipher=AES128-SHA bits=128 verify=NO) for ; Fri, 25 Jul 2014 01:33:25 -0700 (PDT) X-Barracuda-Envelope-From: hvp@hvproduktion.dk X-Barracuda-Apparent-Source-IP: 193.239.98.61 Received: from exscan02.exchangeserver.dk (193.239.98.21) by EXHUB01.exchangeserver.dk (193.239.98.60) with Microsoft SMTP Server id 8.2.255.0; Fri, 25 Jul 2014 10:33:30 +0200 Received: from localhost (localhost [127.0.0.1]) by exscan02.exchangeserver.dk (Postfix) with ESMTP id 4049A7FCBA; Fri, 25 Jul 2014 10:33:26 +0200 (CEST) X-Virus-Scanned: Debian amavisd-new at exscan02.exchangeserver.dk Received: from exscan02.exchangeserver.dk ([127.0.0.1]) by localhost (exscan02.exchangeserver.dk [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id V7hrMD48GzR7; Fri, 25 Jul 2014 10:33:22 +0200 (CEST) Received: from EXHUB01.exchangeserver.dk (exhub01.exchangeserver.dk [193.239.98.61]) by exscan02.exchangeserver.dk (Postfix) with ESMTPS id B09448043A; Fri, 25 Jul 2014 10:33:22 +0200 (CEST) Received: from EXMBXCLUS01.exchangeserver.dk ([169.254.1.114]) by EXHUB01.exchangeserver.dk ([193.239.98.61]) with mapi; Fri, 25 Jul 2014 10:33:26 +0200 From: Henrik V Pedersen To: Henrik V Pedersen Date: Fri, 25 Jul 2014 10:33:26 +0200 Subject: SV: HELLO Thread-Topic: HELLO X-ASG-Orig-Subj: SV: HELLO Thread-Index: AQHPp+GzEMtUY7bsYkKjqucODplToJuwdAZa Message-ID: <4D39D3D0EF41304E8ACA1D5BA87A4A2801945FB8B56F@EXMBXCLUS01.exchangeserver.dk> References: <4D39D3D0EF41304E8ACA1D5BA87A4A2801945FB8B563@EXMBXCLUS01.exchangeserver.dk> In-Reply-To: <4D39D3D0EF41304E8ACA1D5BA87A4A2801945FB8B563@EXMBXCLUS01.exchangeserver.dk> Accept-Language: da-DK, en-US Content-Language: da-DK X-MS-Has-Attach: X-MS-TNEF-Correlator: acceptlanguage: da-DK, en-US Content-Type: multipart/alternative; boundary="_000_4D39D3D0EF41304E8ACA1D5BA87A4A2801945FB8B56FEXMBXCLUS01_" MIME-Version: 1.0 X-Barracuda-Connect: exhub01.exchangeserver.dk[193.239.98.61] X-Barracuda-Start-Time: 1406277205 X-Barracuda-Encrypted: AES128-SHA X-Barracuda-URL: http://192.48.157.11:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 X-Barracuda-Spam-Score: 0.52 X-Barracuda-Spam-Status: No, SCORE=0.52 using per-user scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.7 tests=BSF_SC0_SA_TO_FROM_ADDR_MATCH, HTML_MESSAGE, THREAD_INDEX, THREAD_TOPIC X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.7803 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.01 THREAD_INDEX thread-index: AcO7Y8iR61tzADqsRmmc5wNiFHEOig== 0.01 THREAD_TOPIC Thread-Topic: ...(Japanese Subject)... 0.00 HTML_MESSAGE BODY: HTML included in message 0.50 BSF_SC0_SA_TO_FROM_ADDR_MATCH Sender Address Matches Recipient Address --_000_4D39D3D0EF41304E8ACA1D5BA87A4A2801945FB8B56FEXMBXCLUS01_ Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable ________________________________ Fra: Henrik V Pedersen [hvp@hvproduktion.dk] Sendt: 25. juli 2014 10:23 Til: Henrik V Pedersen Emne: HELLO DONAION TO YOU CONTACT EMAIL FOR DETAILS. EMAIL: vincenttony_charlemagne@ou= tlook.com --_000_4D39D3D0EF41304E8ACA1D5BA87A4A2801945FB8B56FEXMBXCLUS01_ Content-Type: text/html; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable
=  

Fra: Henrik V Pedersen [hvp@hvprodu= ktion.dk]
Sendt: 25. juli 2014 10:23
Til: Henrik V Pedersen
Emne: HELLO

D= ONAION TO YOU CONTACT EMAIL FOR DETAILS. EMAIL: vincenttony_charlemagne@outlook.com
--_000_4D39D3D0EF41304E8ACA1D5BA87A4A2801945FB8B56FEXMBXCLUS01_-- From bfoster@redhat.com Fri Jul 25 11:31:11 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: xfs@oss.sgi.com Delivered-To: xfs@oss.sgi.com Received: from relay.sgi.com (relay2.corp.sgi.com [137.38.102.29]) by oss.sgi.com (Postfix) with ESMTP id 3517C29DF9 for ; Fri, 25 Jul 2014 11:31:11 -0500 (CDT) Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by relay2.corp.sgi.com (Postfix) with ESMTP id 01299304032 for ; Fri, 25 Jul 2014 09:31:07 -0700 (PDT) X-ASG-Debug-ID: 1406305862-04cbb0068333a50001-NocioJ Received: from mx1.redhat.com (mx1.redhat.com [209.132.183.28]) by cuda.sgi.com with ESMTP id JdRl3PzwygeAPByY (version=TLSv1 cipher=AES256-SHA bits=256 verify=NO) for ; Fri, 25 Jul 2014 09:31:03 -0700 (PDT) X-Barracuda-Envelope-From: bfoster@redhat.com X-Barracuda-Apparent-Source-IP: 209.132.183.28 X-ASG-Whitelist: Client Received: from int-mx14.intmail.prod.int.phx2.redhat.com (int-mx14.intmail.prod.int.phx2.redhat.com [10.5.11.27]) by mx1.redhat.com (8.14.4/8.14.4) with ESMTP id s6PGV0i5016172 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Fri, 25 Jul 2014 12:31:00 -0400 Received: from laptop.bfoster (vpn-52-160.rdu2.redhat.com [10.10.52.160]) by int-mx14.intmail.prod.int.phx2.redhat.com (8.14.4/8.14.4) with ESMTP id s6PGUvIw027453 (version=TLSv1/SSLv3 cipher=AES128-GCM-SHA256 bits=128 verify=NO); Fri, 25 Jul 2014 12:30:59 -0400 Date: Fri, 25 Jul 2014 12:30:57 -0400 From: Brian Foster To: Dave Chinner Cc: xfs@oss.sgi.com Subject: Re: [PATCH RFC 00/18] xfs: sparse inode chunks Message-ID: <20140725163056.GA3350@laptop.bfoster> X-ASG-Orig-Subj: Re: [PATCH RFC 00/18] xfs: sparse inode chunks References: <1406211788-63206-1-git-send-email-bfoster@redhat.com> <20140724223211.GQ20518@dastard> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20140724223211.GQ20518@dastard> User-Agent: Mutt/1.5.23 (2014-03-12) X-Scanned-By: MIMEDefang 2.68 on 10.5.11.27 X-Barracuda-Connect: mx1.redhat.com[209.132.183.28] X-Barracuda-Start-Time: 1406305863 X-Barracuda-Encrypted: AES256-SHA X-Barracuda-URL: http://192.48.176.25:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 On Fri, Jul 25, 2014 at 08:32:11AM +1000, Dave Chinner wrote: > On Thu, Jul 24, 2014 at 10:22:50AM -0400, Brian Foster wrote: > > Hi all, > > > > This is a first pass at sparse inode chunk support for XFS. Some > > background on this work is available here: > > > > http://oss.sgi.com/archives/xfs/2013-08/msg00346.html > > > > The basic idea is to allow the partial allocation of inode chunks into > > fragmented regions of free space. This is accomplished through addition > > of a holemask field into the inobt record that defines what portion(s) > > of an inode chunk are invalid (i.e., holes in the chunk). This work is > > not quite complete, but is at a point where I'd like to start getting > > feedback on the design and what direction to take for some of the known > > gaps. > > > > The basic breakdown of functionality in this set is as follows: > > > > - Patches 1-2 - A couple generic cleanups that are dependencies for later > > patches in the series. > > - Patches 3-5 - Basic data structure update, feature bit and minor > > helper introduction. > > - Patches 6-7 - Update v5 icreate logging and recovery to handle sparse > > inode records. > > - Patches 8-13 - Allocation support for sparse inode records. Physical > > chunk allocation and individual inode allocation. > > - Patches 14-16 - Deallocation support for sparse inode chunks. Physical > > chunk deallocation, individual inode free and cluster free. > > - Patch 17 - Fixes for bulkstat/inumbers. > > - Patch 18 - Activate support for sparse chunk allocation and > > processing. > > > > This work is lightly tested for regression (some xfstests failures due > > to repair) and basic functionality. I have a new xfstests test I'll > > forward along for demonstration purposes. > > > > Some notes on gaps in the design: > > > > - Sparse inode chunk allocation granularity: > > > > The current minimum sparse chunk allocation granularity is the cluster > > size. > > Looking at the patchset (I got to patch 5 that first uses this), > this is problematic. the cluster size is currently a kernel > implementation detail, and not something defined by the on-disk > format. We can change the cluster size in the kernel and not affect > the format on disk. Making the cluster size a part of the disk > format by defining it to be the resolution of sparse inode chunks > changes that - it's now a part of the on-disk inode format, and that > greatly limits what we can do with it. > I was going off the inoalignmt bit that's set at mkfs time, but looking at the code I think I see what you mean... > > My initial attempts at this work tried to redefine to the minimum > > chunk length based on the holemask granularity (a la the stale macro I > > seemingly left in this series ;), but this involves tweaking the > > codepaths that use the cluster size (i.e., imap) which proved rather > > hairy. > > This is where we need to head towards, though. The cluster size is > currently the unit of inode IO, so that needs to be influenced by the > sparse inode chunk granularity. Yes, we can define the inode chunk > granularity to be the same as the cluster size, but that simply > means we need to configure the cluster size appropriately at mount. > It doesn't mean we need to change what cluster size means or it's > implementation.... > I don't think I've necessarily encoded the cluster size into the disk format explicitly, but rather used it as a heuristic for how to size the sparse inode chunk allocations. I think what you're saying is that the cluster size can change across a mount or code update, while the on-disk allocation state will not. Thus we can't always go on the assumption that the on-disk allocations will be sane with regard to the current cluster size. For example, I suppose if the cluster size increased after we have some existing sparse allocations we'd end up with some broken buffer mappings for inode chunks. > > This also means we need a solution where an imap can change if an > > inode was initially mapped as a sparse chunk and said chunk is > > subsequently made full. E.g., we'd perhaps need to invalidate the inode > > buffers for sparse chunks at the time where they are made full. Given > > that, I landed on using the cluster size and leaving those codepaths as > > is for the time being. > > Again, that's kernel inode buffer cache implementaiton details, not > something that matters for the on-disk format. So really these need > to be separated. Probably means we need a "sparse inode allocation > alignment" field in the superblock to define this. Having > the kernel reject sparse alignments it can't support from the > initial implementation means we can improve the kernel > implementation over time and (eventually) support sub-cluster sized > sparse inode allocation. > > i.e. initial implementation only supports sparse alignment == > cluster size, and rejects everything else.... > Yeah, that's pretty much what I was trying to accomplish, just not encoded properly with regard to the superblock options. E.g., I overloaded the cluster size in a fragile way. Instead, explicitly set the sparse inode allocation granularity and let that influence the cluster size. I suspect that means we could even still use the cluster size heuristic to define the default alloc. granularity, but of course we aren't married to it so can evaluate that independently. That sounds much nicer, thanks. > > There is a tradeoff here for v5 superblocks because we've recently made > > a change to scale the cluster size based on the factor increase in the > > inode size from the default (see xfsprogs commit 7b5f9801). This means > > that effectiveness of sparse chunks is tied to whether the level of free > > space fragmentation matches the cluster size. By that I mean effectivess > > is good (near 100% utilization possible) if free space fragmentation > > leaves free extents around that at least match the cluster size. If > > fragmentation is worse than the cluster size, effectiveness is reduced. > > This can also be demonstrated with the forthcoming xfstests test. > > Exactly. We don't need to solve every problem with the initial > implementation - we can iteratively improve the code because once > the fields are one disk we only need to change the kernel > implemenation to support finer grained sparse allocation to solve > this allocation chunk < cluster size problem.... > Right... I didn't want to rule out fixing the imap logic and whatnot at all by any means. I thought about it a bit, but the solution isn't yet clear and certainly could involve some more refactoring or rethinking of abstractions, so I think that's better suited as a follow on effort. > > - On-disk lifecycle of the sparse inode chunks feature bit: > > > > We set an incompatible feature bit once a sparse inode chunk is > > allocated because older revisions of code will interpret the non-zero > > holemask bits in the higher order bytes of the record freecount. The > > feature bit must be removed once all sparse inode chunks are eliminated > > one way or another. This series does not currently remove the feature > > bit once set simply because I hadn't thought through the mechanism quite > > yet. For the next version, I'm thinking about adding an inobt walk > > mechanism that can be conditionally invoked (i.e., feature bit is > > currently set and a sparse inode chunk has been eliminated) either via > > workqueue on an interval or during unmount if necessary. Thoughts or > > alternative suggestions on that appreciated. > > I wouldn't bother. Let xfs_repair determine if the bit needs to be > set or not when it does it's final superblock write after it has > scanned and repaired the fs. > That sounds good to me. > I'm even in two minds of whether we want the sb bit added > dynamically, because it means the same upgrade/downdgrade cycle can > have different results simply due to filesystem freespace > fragmentation patterns... > > Perhaps an xfs-admin command to turn the feature on dynamicallyi for > existing filesystems, kind of like what we did with lazy superblock > counters when they were introduced? > Hmm, I suppose that does create a new and interesting dynamic with regard to the feature bit (non-deterministic backwards compatibility). One could certainly value backwards compatibility over this particular feature, and there is currently no way to control it. I'll look into doing something with xfs_admin. In fact, I was thinking of adding something to tune the cluster size bit to get around the v5 scaling issue anyways. Thanks for the feedback. I'm under the weather today so I'll start going through the rest of it when my head is less foggy. Brian > Cheers, > > Dave. > -- > Dave Chinner > david@fromorbit.com > > _______________________________________________ > xfs mailing list > xfs@oss.sgi.com > http://oss.sgi.com/mailman/listinfo/xfs From david@fromorbit.com Fri Jul 25 19:03:57 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: xfs@oss.sgi.com Delivered-To: xfs@oss.sgi.com Received: from relay.sgi.com (relay3.corp.sgi.com [198.149.34.15]) by oss.sgi.com (Postfix) with ESMTP id 51DC529DF9 for ; Fri, 25 Jul 2014 19:03:57 -0500 (CDT) Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by relay3.corp.sgi.com (Postfix) with ESMTP id D13D0AC001 for ; Fri, 25 Jul 2014 17:03:53 -0700 (PDT) X-ASG-Debug-ID: 1406333030-04cb6c6c2541640001-NocioJ Received: from ipmail07.adl2.internode.on.net (ipmail07.adl2.internode.on.net [150.101.137.131]) by cuda.sgi.com with ESMTP id SQID6y33KGHFMGi3 for ; Fri, 25 Jul 2014 17:03:50 -0700 (PDT) X-Barracuda-Envelope-From: david@fromorbit.com X-Barracuda-Apparent-Source-IP: 150.101.137.131 X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: AnoJAAfw0lN5LHOd/2dsb2JhbABZgw5SV697AQEBAQEBBptMh0UBgQwXd4QDAQEEATocGgkQCAMOCgklDwUlAyETiDoHDr8DGIVjh0CCEAeDLoEbBZtGlEuDWisvAQ Received: from ppp121-44-115-157.lns20.syd6.internode.on.net (HELO dastard) ([121.44.115.157]) by ipmail07.adl2.internode.on.net with ESMTP; 26 Jul 2014 09:33:49 +0930 Received: from dave by dastard with local (Exim 4.80) (envelope-from ) id 1XApSZ-0005hn-MU; Sat, 26 Jul 2014 10:03:35 +1000 Date: Sat, 26 Jul 2014 10:03:35 +1000 From: Dave Chinner To: Brian Foster Cc: xfs@oss.sgi.com Subject: Re: [PATCH RFC 00/18] xfs: sparse inode chunks Message-ID: <20140726000335.GE20518@dastard> X-ASG-Orig-Subj: Re: [PATCH RFC 00/18] xfs: sparse inode chunks References: <1406211788-63206-1-git-send-email-bfoster@redhat.com> <20140724223211.GQ20518@dastard> <20140725163056.GA3350@laptop.bfoster> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20140725163056.GA3350@laptop.bfoster> User-Agent: Mutt/1.5.21 (2010-09-15) X-Barracuda-Connect: ipmail07.adl2.internode.on.net[150.101.137.131] X-Barracuda-Start-Time: 1406333030 X-Barracuda-URL: http://192.48.176.15:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 X-Barracuda-Spam-Score: 0.00 X-Barracuda-Spam-Status: No, SCORE=0.00 using per-user scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.7 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.7827 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- On Fri, Jul 25, 2014 at 12:30:57PM -0400, Brian Foster wrote: > On Fri, Jul 25, 2014 at 08:32:11AM +1000, Dave Chinner wrote: > > On Thu, Jul 24, 2014 at 10:22:50AM -0400, Brian Foster wrote: > > > Hi all, > > > > > > This is a first pass at sparse inode chunk support for XFS. Some > > > background on this work is available here: > > > > > > http://oss.sgi.com/archives/xfs/2013-08/msg00346.html > > > > > > The basic idea is to allow the partial allocation of inode chunks into > > > fragmented regions of free space. This is accomplished through addition > > > of a holemask field into the inobt record that defines what portion(s) > > > of an inode chunk are invalid (i.e., holes in the chunk). This work is > > > not quite complete, but is at a point where I'd like to start getting > > > feedback on the design and what direction to take for some of the known > > > gaps. > > > > > > The basic breakdown of functionality in this set is as follows: > > > > > > - Patches 1-2 - A couple generic cleanups that are dependencies for later > > > patches in the series. > > > - Patches 3-5 - Basic data structure update, feature bit and minor > > > helper introduction. > > > - Patches 6-7 - Update v5 icreate logging and recovery to handle sparse > > > inode records. > > > - Patches 8-13 - Allocation support for sparse inode records. Physical > > > chunk allocation and individual inode allocation. > > > - Patches 14-16 - Deallocation support for sparse inode chunks. Physical > > > chunk deallocation, individual inode free and cluster free. > > > - Patch 17 - Fixes for bulkstat/inumbers. > > > - Patch 18 - Activate support for sparse chunk allocation and > > > processing. > > > > > > This work is lightly tested for regression (some xfstests failures due > > > to repair) and basic functionality. I have a new xfstests test I'll > > > forward along for demonstration purposes. > > > > > > Some notes on gaps in the design: > > > > > > - Sparse inode chunk allocation granularity: > > > > > > The current minimum sparse chunk allocation granularity is the cluster > > > size. > > > > Looking at the patchset (I got to patch 5 that first uses this), > > this is problematic. the cluster size is currently a kernel > > implementation detail, and not something defined by the on-disk > > format. We can change the cluster size in the kernel and not affect > > the format on disk. Making the cluster size a part of the disk > > format by defining it to be the resolution of sparse inode chunks > > changes that - it's now a part of the on-disk inode format, and that > > greatly limits what we can do with it. > > > > I was going off the inoalignmt bit that's set at mkfs time, but looking > at the code I think I see what you mean... > > > > My initial attempts at this work tried to redefine to the minimum > > > chunk length based on the holemask granularity (a la the stale macro I > > > seemingly left in this series ;), but this involves tweaking the > > > codepaths that use the cluster size (i.e., imap) which proved rather > > > hairy. > > > > This is where we need to head towards, though. The cluster size is > > currently the unit of inode IO, so that needs to be influenced by the > > sparse inode chunk granularity. Yes, we can define the inode chunk > > granularity to be the same as the cluster size, but that simply > > means we need to configure the cluster size appropriately at mount. > > It doesn't mean we need to change what cluster size means or it's > > implementation.... > > > > I don't think I've necessarily encoded the cluster size into the disk > format explicitly, but rather used it as a heuristic for how to size the > sparse inode chunk allocations. I think what you're saying is that the > cluster size can change across a mount or code update, while the on-disk > allocation state will not. Thus we can't always go on the assumption > that the on-disk allocations will be sane with regard to the current > cluster size. For example, I suppose if the cluster size increased after > we have some existing sparse allocations we'd end up with some broken > buffer mappings for inode chunks. Yup, that's the problem in a nutshell: cluster size is not fixed. > > Again, that's kernel inode buffer cache implementaiton details, not > > something that matters for the on-disk format. So really these need > > to be separated. Probably means we need a "sparse inode allocation > > alignment" field in the superblock to define this. Having > > the kernel reject sparse alignments it can't support from the > > initial implementation means we can improve the kernel > > implementation over time and (eventually) support sub-cluster sized > > sparse inode allocation. > > > > i.e. initial implementation only supports sparse alignment == > > cluster size, and rejects everything else.... > > > > Yeah, that's pretty much what I was trying to accomplish, just not > encoded properly with regard to the superblock options. E.g., I > overloaded the cluster size in a fragile way. Instead, explicitly set > the sparse inode allocation granularity and let that influence the > cluster size. I suspect that means we could even still use the cluster > size heuristic to define the default alloc. granularity, but of course > we aren't married to it so can evaluate that independently. That sounds > much nicer, thanks. Right. We may not do anything else in the short or medium term, but having a separate superblock field gives us the flexibility for change the inode cluster implementation/behaviour in the future... > > dynamically, because it means the same upgrade/downdgrade cycle can > > have different results simply due to filesystem freespace > > fragmentation patterns... > > > > Perhaps an xfs-admin command to turn the feature on dynamicallyi for > > existing filesystems, kind of like what we did with lazy superblock > > counters when they were introduced? > > > > Hmm, I suppose that does create a new and interesting dynamic with > regard to the feature bit (non-deterministic backwards compatibility). > One could certainly value backwards compatibility over this particular > feature, and there is currently no way to control it. I'll look into > doing something with xfs_admin. In fact, I was thinking of adding > something to tune the cluster size bit to get around the v5 scaling > issue anyways. What v5 scalability issue is that? I don't recall any outstanding issues with inode cluster IO.... Cheers, Dave. -- Dave Chinner david@fromorbit.com From mjdozier11@q.com Sat Jul 26 06:36:17 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=HTML_MESSAGE,T_DKIM_INVALID autolearn=ham version=3.3.1 X-Original-To: xfs@oss.sgi.com Delivered-To: xfs@oss.sgi.com Received: from relay.sgi.com (relay1.corp.sgi.com [137.38.102.111]) by oss.sgi.com (Postfix) with ESMTP id 9D7E97F37 for ; Sat, 26 Jul 2014 06:36:17 -0500 (CDT) Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by relay1.corp.sgi.com (Postfix) with ESMTP id 894358F804C for ; Sat, 26 Jul 2014 04:36:14 -0700 (PDT) X-ASG-Debug-ID: 1406374569-04cbb0068569ba0001-NocioJ Received: from smtp.q.com (smtp.quartz.synacor.com [205.169.121.111]) by cuda.sgi.com with ESMTP id 0XisMEPyusFVzSjq (version=TLSv1 cipher=AES256-SHA bits=256 verify=NO) for ; Sat, 26 Jul 2014 04:36:10 -0700 (PDT) X-Barracuda-Envelope-From: mjdozier11@q.com X-Barracuda-Apparent-Source-IP: 205.169.121.111 DKIM-Signature: v=1; a=rsa-sha1; d=q.com; s=ctl201402; c=relaxed/simple; q=dns/txt; i=@q.com; t=1406374569; h=From:Subject:Date:To:MIME-Version:Content-Type; bh=iwNS5cdxQNuF1CWIm2IIr0lFb54=; b=voiAqB3OlxwhkNzmBKk90WpydFBL+uaXxXw6abQZGjPaULq0RAkjx/sseZ0Y5mZj 4uZJ+KvvFUcSguMwAEpwsuq+etkBxiZtwqV98LgySm9NHLO/kq1LQ8qqMKqyvyow kLCGHX1W9Ze1hxK2RKHdNlYlD8C08jieChlRawFBZGdt0uC+lPGWP0B4/JEw+fbc G5YsLTUwGfIIxRfbEq2Th1kmYlTYVd8suKjPImvYauaj/+nkaKxqJGx1vdAfa9HT qutg/LSZEVZm4qaHzuiZlAMLSFLKLZAPpSf5taEdX/iQ7L/YiQmNKR37NH4HNsjC YCdhJM6pCxTBFdGvHQksRg==; X-Authed-Username: bWpkb3ppZXIxMUBxLmNvbQ== X_CMAE_Category: 0,0 Undefined,Undefined X-CNFS-Analysis: v=2.1 cv=KL9jUj1o c=1 sm=0 tr=0 a=MVt/OeM/O+V7psr6YXG+1g==:117 a=K-v-2zaBAAAA:8 a=FKkrIqjQGGEA:10 a=5uzyEDg2IGAA:10 a=ImF7qdaI1fQA:10 a=BM2Wo2QsAAAA:8 a=s9xcFWt5iowDAcAFcUYA:9 a=QEXdDO2ut3YA:10 a=S2eJvvX4n_kA:10 a=XkuTpEdzEEUA:10 a=_W_S_7VecoQA:10 a=H5e_2IDRBIUA:10 a=woySP4Il718A:10 a=J7_YDFNS6OoA:10 X-CM-Score: 0 X-Scanned-by: Cloudmark Authority Engine Authentication-Results: smtp02.quartz.synacor.com header.from=mjdozier11@q.com; sender-id=softfail Authentication-Results: smtp02.quartz.synacor.com smtp.mail=mjdozier11@q.com; spf=softfail; sender-id=softfail Received-SPF: softfail (smtp02.quartz.synacor.com: transitional domain q.com does not designate 10.30.7.251 as permitted sender) Received: from [10.30.7.251] ([10.30.7.251:53515] helo=md46.quartz.synacor.com) by smtp.q.com (envelope-from ) (ecelerity 2.2.2.40 r(29895/29896)) with ESMTP id 98/9D-17556-8A293D35; Sat, 26 Jul 2014 07:36:08 -0400 Date: Sat, 26 Jul 2014 07:36:08 -0400 (EDT) From: "mjdozier11@q.com" To: info@live.org Message-ID: <2146770710.663119.1406374568061.JavaMail.root@md46.quartz.synacor.com> Subject: Re: MIME-Version: 1.0 X-ASG-Orig-Subj: Re: Content-Type: multipart/alternative; boundary="----=_Part_663118_662887157.1406374568059" X-Originating-IP: [10.30.2.132] X-Mailer: Zimbra 6.0.8_GA_2685 (zclient/6.0.8_GA_2685) X-Barracuda-Connect: smtp.quartz.synacor.com[205.169.121.111] X-Barracuda-Start-Time: 1406374570 X-Barracuda-Encrypted: AES256-SHA X-Barracuda-URL: http://192.48.176.25:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 X-Barracuda-Spam-Score: 0.00 X-Barracuda-Spam-Status: No, SCORE=0.00 using per-user scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.7 tests=BSF_SC0_MISMATCH_TO, DKIM_SIGNED, DKIM_VERIFIED, HTML_MESSAGE X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.7837 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.00 BSF_SC0_MISMATCH_TO Envelope rcpt doesn't match header -0.00 DKIM_VERIFIED Domain Keys Identified Mail: signature passes verification 0.00 DKIM_SIGNED Domain Keys Identified Mail: message has a signature 0.00 HTML_MESSAGE BODY: HTML included in message ------=_Part_663118_662887157.1406374568059 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit -- Please i need your help ------=_Part_663118_662887157.1406374568059 Content-Type: text/html; charset=utf-8 Content-Transfer-Encoding: 7bit -- Please i need your help ------=_Part_663118_662887157.1406374568059-- From tdm@sgi.com Sat Jul 26 10:16:51 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=RP_MATCHES_RCVD autolearn=ham version=3.3.1 X-Original-To: xfs@oss.sgi.com Delivered-To: xfs@oss.sgi.com Received: from relay.sgi.com (relay3.corp.sgi.com [198.149.34.15]) by oss.sgi.com (Postfix) with ESMTP id 2878C7F37 for ; Sat, 26 Jul 2014 10:16:51 -0500 (CDT) Received: from estes.americas.sgi.com (estes.americas.sgi.com [128.162.236.10]) by relay3.corp.sgi.com (Postfix) with ESMTP id AE498AC001 for ; Sat, 26 Jul 2014 08:16:47 -0700 (PDT) Received: from [128.162.232.11] (porter.americas.sgi.com [128.162.232.11]) by estes.americas.sgi.com (Postfix) with ESMTP id 5EC7270028FF for ; Sat, 26 Jul 2014 10:16:47 -0500 (CDT) Message-ID: <53D3C65F.4020504@sgi.com> Date: Sat, 26 Jul 2014 10:16:47 -0500 From: Troy McCorkell User-Agent: Mozilla/5.0 (X11; U; Linux i686 (x86_64); en-US; rv:1.9.1.5) Gecko/20091204 Thunderbird/3.0 MIME-Version: 1.0 To: xfs@oss.sgi.com Subject: test - please ignore Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit From hughd@google.com Sat Jul 26 15:00:14 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=T_DKIM_INVALID autolearn=ham version=3.3.1 X-Original-To: xfs@oss.sgi.com Delivered-To: xfs@oss.sgi.com Received: from relay.sgi.com (relay2.corp.sgi.com [137.38.102.29]) by oss.sgi.com (Postfix) with ESMTP id 1C3BA7F37 for ; Sat, 26 Jul 2014 15:00:14 -0500 (CDT) Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by relay2.corp.sgi.com (Postfix) with ESMTP id 09AD8304043 for ; Sat, 26 Jul 2014 13:00:13 -0700 (PDT) X-ASG-Debug-ID: 1406404809-04cbb006857f8a0001-NocioJ Received: from mail-pd0-f178.google.com (mail-pd0-f178.google.com [209.85.192.178]) by cuda.sgi.com with ESMTP id nfbgTIZbzzLfEpV5 (version=TLSv1 cipher=RC4-SHA bits=128 verify=NO) for ; Sat, 26 Jul 2014 13:00:09 -0700 (PDT) X-Barracuda-Envelope-From: hughd@google.com X-Barracuda-RBL-Trusted-Forwarder: 209.85.192.178 Received: by mail-pd0-f178.google.com with SMTP id w10so7590970pde.9 for ; Sat, 26 Jul 2014 13:00:09 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20120113; h=date:from:to:cc:subject:message-id:user-agent:mime-version :content-type; bh=KxQ7jF9mzJpcp6tpKxp5xlnNR9S//M316G7tzgOiytE=; b=B1hiQbqlYcz3g1qKEcL2OGxBaerVfjXI+V7Q/X8ZkFYlQJOYmvt3/D2i8w716aDzXL V3n60AAB7Hes0KBCIyNBPhoxCG1WL7AdTpdGItG2Js3FN5e3opcPZw7Aluv6YbBRi4Pi s0WbM7kUwS2/q9Y7iYWRZW8A+TpcyYtAT4qu6jKqo4sh509/8wSuFGlYowIxqtr8giwS 0XMFmevdlMqOez6cg3F3fBRFX5TZ8h9Ve9VLAU7CD3lqz1D9vJJsNBQ9IYJiMPcixv8W mRU63g5JiFBNLTGc1fY/W+qZvaPCKdSaMWUjsv+V9ao5eWyuSSgIJJIW4cKe4DSS0LM2 G8VA== X-Barracuda-BBL-IP: nil X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:date:from:to:cc:subject:message-id:user-agent :mime-version:content-type; bh=KxQ7jF9mzJpcp6tpKxp5xlnNR9S//M316G7tzgOiytE=; b=fzmVhyFjKfgsgJyjqZwFSvaUU/aJeFexAblK1NLZY2zwvU5vV/0RwRXBiO1hGV8kTR CokIGE6OtFYjDdqV0BIl9vfSmXY472+BpfiH1N0v+3VSCS0AChFbkiux/Gop9T95VvSX uMsdqDKaiaHbblS8HXy9qfsiaDWDAOpwjaoBXf6h+VoB/dY31DZKROCT2poz8Ij2c2Tf 9blWk6s0pOyPUyXfIUEZ2oxLb3l2N0ONqb4HTURMYEy0p/raw+L19h148nbrAxNZ9iIX c/jHYqSOvhpESb2wjwy7iLnmlBpeMxiFZ5rHVAR4mF7qpvle275AKk8ZYZX8LJ15qKa5 RsgQ== X-Gm-Message-State: ALoCoQmL9rGi8K8eFOXv/chI1SigTMDmx2ozPIDHi07wtAYP8ADMS/5rCblzaGo18YwqQWl/5QGB X-Received: by 10.68.193.100 with SMTP id hn4mr27327734pbc.50.1406404808714; Sat, 26 Jul 2014 13:00:08 -0700 (PDT) Received: from [192.168.1.19] (c-67-169-183-19.hsd1.ca.comcast.net. [67.169.183.19]) by mx.google.com with ESMTPSA id y4sm12723948pbt.60.2014.07.26.13.00.07 for (version=TLSv1 cipher=ECDHE-RSA-RC4-SHA bits=128/128); Sat, 26 Jul 2014 13:00:08 -0700 (PDT) Date: Sat, 26 Jul 2014 12:58:23 -0700 (PDT) From: Hugh Dickins X-X-Sender: hugh@eggly.anvils To: Linus Torvalds cc: Andrew Morton , David Rientjes , Rik van Riel , Johannes Weiner , Dave Jones , Dave Chinner , xfs@oss.sgi.com, linux-kernel@vger.kernel.org, linux-mm@kvack.org Subject: [PATCH] mm: fix direct reclaim writeback regression Message-ID: X-ASG-Orig-Subj: [PATCH] mm: fix direct reclaim writeback regression User-Agent: Alpine 2.11 (LSU 23 2013-08-11) MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII X-Barracuda-Connect: mail-pd0-f178.google.com[209.85.192.178] X-Barracuda-Start-Time: 1406404809 X-Barracuda-Encrypted: RC4-SHA X-Barracuda-URL: http://192.48.176.25:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 X-Barracuda-Spam-Score: 0.00 X-Barracuda-Spam-Status: No, SCORE=0.00 using per-user scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.7 tests=DKIM_SIGNED, DKIM_VERIFIED X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.7845 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- -0.00 DKIM_VERIFIED Domain Keys Identified Mail: signature passes verification 0.00 DKIM_SIGNED Domain Keys Identified Mail: message has a signature Shortly before 3.16-rc1, Dave Jones reported: WARNING: CPU: 3 PID: 19721 at fs/xfs/xfs_aops.c:971 xfs_vm_writepage+0x5ce/0x630 [xfs]() CPU: 3 PID: 19721 Comm: trinity-c61 Not tainted 3.15.0+ #3 Call Trace: [] xfs_vm_writepage+0x5ce/0x630 [xfs] [] shrink_page_list+0x8f9/0xb90 [] shrink_inactive_list+0x253/0x510 [] shrink_lruvec+0x563/0x6c0 [] shrink_zone+0x3b/0x100 [] shrink_zones+0x1f1/0x3c0 [] try_to_free_pages+0x164/0x380 [] __alloc_pages_nodemask+0x822/0xc90 [] alloc_pages_vma+0xaf/0x1c0 [] handle_mm_fault+0xa31/0xc50 etc. 970 if (WARN_ON_ONCE((current->flags & (PF_MEMALLOC|PF_KSWAPD)) == 971 PF_MEMALLOC)) I did not respond at the time, because a glance at the PageDirty block in shrink_page_list() quickly shows that this is impossible: we don't do writeback on file pages (other than tmpfs) from direct reclaim nowadays. Dave was hallucinating, but it would have been disrespectful to say so. However, my own /var/log/messages now shows similar complaints WARNING: CPU: 1 PID: 28814 at fs/ext4/inode.c:1881 ext4_writepage+0xa7/0x38b() WARNING: CPU: 0 PID: 27347 at fs/ext4/inode.c:1764 ext4_writepage+0xa7/0x38b() from stressing some mmotm trees during July. Could a dirty xfs or ext4 file page somehow get marked PageSwapBacked, so fail shrink_page_list()'s page_is_file_cache() test, and so proceed to mapping->a_ops->writepage()? Yes, 3.16-rc1's 68711a746345 ("mm, migration: add destination page freeing callback") has provided such a way to compaction: if migrating a SwapBacked page fails, its newpage may be put back on the list for later use with PageSwapBacked still set, and nothing will clear it. Whether that can do anything worse than issue WARN_ON_ONCEs, and get some statistics wrong, is unclear: easier to fix than to think through the consequences. Fixing it here, before the put_new_page(), addresses the bug directly, but is probably the worst place to fix it. Page migration is doing too many parts of the job on too many levels: fixing it in move_to_new_page() to complement its SetPageSwapBacked would be preferable, except why is it (and newpage->mapping and newpage->index) done there, rather than down in migrate_page_move_mapping(), once we are sure of success? Not a cleanup to get into right now, especially not with memcg cleanups coming in 3.17. Reported-by: Dave Jones Signed-off-by: Hugh Dickins --- mm/migrate.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) --- 3.16-rc6/mm/migrate.c 2014-06-29 15:22:10.584003935 -0700 +++ linux/mm/migrate.c 2014-07-26 11:28:34.488126591 -0700 @@ -988,9 +988,10 @@ out: * it. Otherwise, putback_lru_page() will drop the reference grabbed * during isolation. */ - if (rc != MIGRATEPAGE_SUCCESS && put_new_page) + if (rc != MIGRATEPAGE_SUCCESS && put_new_page) { + ClearPageSwapBacked(newpage); put_new_page(newpage, private); - else + } else putback_lru_page(newpage); if (result) { From vbabka@suse.cz Sat Jul 26 17:45:30 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: xfs@oss.sgi.com Delivered-To: xfs@oss.sgi.com Received: from relay.sgi.com (relay3.corp.sgi.com [198.149.34.15]) by oss.sgi.com (Postfix) with ESMTP id 256547F37 for ; Sat, 26 Jul 2014 17:45:30 -0500 (CDT) Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by relay3.corp.sgi.com (Postfix) with ESMTP id B6FA7AC001 for ; Sat, 26 Jul 2014 15:45:26 -0700 (PDT) X-ASG-Debug-ID: 1406414723-04bdf04753842a0001-NocioJ Received: from mx2.suse.de (cantor2.suse.de [195.135.220.15]) by cuda.sgi.com with ESMTP id 3WIqVJLmAULfCvWa (version=TLSv1 cipher=AES256-SHA bits=256 verify=NO) for ; Sat, 26 Jul 2014 15:45:24 -0700 (PDT) X-Barracuda-Envelope-From: vbabka@suse.cz X-Barracuda-Apparent-Source-IP: 195.135.220.15 Received: from relay2.suse.de (charybdis-ext.suse.de [195.135.220.254]) by mx2.suse.de (Postfix) with ESMTP id 1F74DAB07; Sat, 26 Jul 2014 22:45:22 +0000 (UTC) Message-ID: <53D42F80.7000000@suse.cz> Date: Sun, 27 Jul 2014 00:45:20 +0200 From: Vlastimil Babka User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:24.0) Gecko/20100101 Thunderbird/24.4.0 MIME-Version: 1.0 To: Hugh Dickins , Linus Torvalds CC: Andrew Morton , David Rientjes , Rik van Riel , Johannes Weiner , Dave Jones , Dave Chinner , xfs@oss.sgi.com, linux-kernel@vger.kernel.org, linux-mm@kvack.org Subject: Re: [PATCH] mm: fix direct reclaim writeback regression References: X-ASG-Orig-Subj: Re: [PATCH] mm: fix direct reclaim writeback regression In-Reply-To: Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit X-Barracuda-Connect: cantor2.suse.de[195.135.220.15] X-Barracuda-Start-Time: 1406414724 X-Barracuda-Encrypted: AES256-SHA X-Barracuda-URL: http://192.48.157.11:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 X-Barracuda-Spam-Score: 0.00 X-Barracuda-Spam-Status: No, SCORE=0.00 using per-user scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.7 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.7848 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- On 07/26/2014 09:58 PM, Hugh Dickins wrote: > Yes, 3.16-rc1's 68711a746345 ("mm, migration: add destination page > freeing callback") has provided such a way to compaction: if migrating > a SwapBacked page fails, its newpage may be put back on the list for > later use with PageSwapBacked still set, and nothing will clear it. Ugh good catch. So is this the only flag that can become "stray" like this? It seems so from quick check... > Whether that can do anything worse than issue WARN_ON_ONCEs, and get > some statistics wrong, is unclear: easier to fix than to think through > the consequences. > > Fixing it here, before the put_new_page(), addresses the bug directly, > but is probably the worst place to fix it. Page migration is doing too > many parts of the job on too many levels: fixing it in move_to_new_page() > to complement its SetPageSwapBacked would be preferable, except why is it > (and newpage->mapping and newpage->index) done there, rather than down in > migrate_page_move_mapping(), once we are sure of success? Not a cleanup > to get into right now, especially not with memcg cleanups coming in 3.17. > > Reported-by: Dave Jones > Signed-off-by: Hugh Dickins > --- > > mm/migrate.c | 5 +++-- > 1 file changed, 3 insertions(+), 2 deletions(-) > > --- 3.16-rc6/mm/migrate.c 2014-06-29 15:22:10.584003935 -0700 > +++ linux/mm/migrate.c 2014-07-26 11:28:34.488126591 -0700 > @@ -988,9 +988,10 @@ out: > * it. Otherwise, putback_lru_page() will drop the reference grabbed > * during isolation. > */ > - if (rc != MIGRATEPAGE_SUCCESS && put_new_page) > + if (rc != MIGRATEPAGE_SUCCESS && put_new_page) { > + ClearPageSwapBacked(newpage); > put_new_page(newpage, private); > - else > + } else > putback_lru_page(newpage); > > if (result) { What about unmap_and_move_huge_page()? Seems to me it can also get the same stray flag. Although compaction, who is the only user so far of custom put_new_page, wouldn't of course migrate huge pages. But might bite us in the future, if a new user appears before a cleanup... Vlastimil From hughd@google.com Sat Jul 26 18:17:15 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=T_DKIM_INVALID autolearn=ham version=3.3.1 X-Original-To: xfs@oss.sgi.com Delivered-To: xfs@oss.sgi.com Received: from relay.sgi.com (relay2.corp.sgi.com [137.38.102.29]) by oss.sgi.com (Postfix) with ESMTP id F2EDE7F47 for ; Sat, 26 Jul 2014 18:17:14 -0500 (CDT) Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by relay2.corp.sgi.com (Postfix) with ESMTP id D10DA304039 for ; Sat, 26 Jul 2014 16:17:11 -0700 (PDT) X-ASG-Debug-ID: 1406416630-04cbb0068385930001-NocioJ Received: from mail-pa0-f47.google.com (mail-pa0-f47.google.com [209.85.220.47]) by cuda.sgi.com with ESMTP id i0xsEjLHC9kttqXF (version=TLSv1 cipher=RC4-SHA bits=128 verify=NO) for ; Sat, 26 Jul 2014 16:17:10 -0700 (PDT) X-Barracuda-Envelope-From: hughd@google.com X-Barracuda-RBL-Trusted-Forwarder: 209.85.220.47 Received: by mail-pa0-f47.google.com with SMTP id kx10so8143546pab.34 for ; Sat, 26 Jul 2014 16:17:09 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20120113; h=date:from:to:cc:subject:in-reply-to:message-id:references :user-agent:mime-version:content-type; bh=9+6+7ZmR66Engdfrc/P3JrqPXq0lvjB+MRfiUeeSx7w=; b=iLa2TnAsEmIOwY3QRYKZwqK7bZ+Wpz5VQGFARJhOwpn61HkHodTpP+kogYcj5DSGpq dTbrDz0J2yf1Nx7ioK5npC8BkpzyLhT/ZbM2pdbajXrrIoQI9pOrdpO1pFS0bosxjnPj pFHDWGLmSNwNCv7eA9o2+nPBTArgh3pyUZqNuWQCQXRfKkmRhJNKd0i2FoZinj5gUaX3 krw47WS6gLSysfOh0sVvHMeHh5lTICN7ZJ4hZVo5gK9+CO+lXSXIZXtlNz+szHtE/Ssi ok7RMk2nBBsjbbQ/FEKw5CjcjwoiTdyW8GBYkwvX6Bbv7sQAwrol8EwAyUn6sQA3yEBQ zMCQ== X-Barracuda-BBL-IP: nil X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:date:from:to:cc:subject:in-reply-to:message-id :references:user-agent:mime-version:content-type; bh=9+6+7ZmR66Engdfrc/P3JrqPXq0lvjB+MRfiUeeSx7w=; b=ecSzGTv65DiD53fwR1/lkTQ1Yn8UTjsGm1mStFGKstI24NRGmz8v7Uoiabg4Y6ABRx BlNmOZSWVaOcbfnoDl16ygGMC/428d51S4eIk0mbUy95MwEVqH6oUDwoC9DyBbpzIXGp Gho+7Iy3dA9j+us4J9Bc7/J6PVBp/ZTJLypRxdeZ3OZ06mDh4k3OxoBiwtKeXLVhYu4v rEPY9Tanv/bb1xJpFjZMY2uxp7ptDcW5wom5ytYlhFwY2hmoaYu1CXyH96e6abTBbZ5e WLjLVNm0a8yqbBg7KdRVT9IfR3xJynnDH8JaDDxBTcXAojMSdpl9UwIjRc+HlvGT01kj NIsg== X-Gm-Message-State: ALoCoQkWMhtSYiN57JSjLtRf+AASMcYbcuEV6vZBR5OA6UIINHB+wO6I14qphfbXqeD2KDxdhoHQ X-Received: by 10.68.96.4 with SMTP id do4mr28178229pbb.72.1406416629663; Sat, 26 Jul 2014 16:17:09 -0700 (PDT) Received: from [192.168.1.19] (c-67-169-183-19.hsd1.ca.comcast.net. [67.169.183.19]) by mx.google.com with ESMTPSA id fp2sm28116922pac.7.2014.07.26.16.17.07 for (version=TLSv1 cipher=ECDHE-RSA-RC4-SHA bits=128/128); Sat, 26 Jul 2014 16:17:08 -0700 (PDT) Date: Sat, 26 Jul 2014 16:15:25 -0700 (PDT) From: Hugh Dickins X-X-Sender: hugh@eggly.anvils To: Vlastimil Babka cc: Hugh Dickins , Linus Torvalds , Andrew Morton , David Rientjes , Rik van Riel , Johannes Weiner , Dave Jones , Dave Chinner , xfs@oss.sgi.com, linux-kernel@vger.kernel.org, linux-mm@kvack.org Subject: Re: [PATCH] mm: fix direct reclaim writeback regression In-Reply-To: <53D42F80.7000000@suse.cz> X-ASG-Orig-Subj: Re: [PATCH] mm: fix direct reclaim writeback regression Message-ID: References: <53D42F80.7000000@suse.cz> User-Agent: Alpine 2.11 (LSU 23 2013-08-11) MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII X-Barracuda-Connect: mail-pa0-f47.google.com[209.85.220.47] X-Barracuda-Start-Time: 1406416630 X-Barracuda-Encrypted: RC4-SHA X-Barracuda-URL: http://192.48.176.25:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 X-Barracuda-Spam-Score: 0.00 X-Barracuda-Spam-Status: No, SCORE=0.00 using per-user scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.7 tests=DKIM_SIGNED, DKIM_VERIFIED X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.7848 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- -0.00 DKIM_VERIFIED Domain Keys Identified Mail: signature passes verification 0.00 DKIM_SIGNED Domain Keys Identified Mail: message has a signature On Sun, 27 Jul 2014, Vlastimil Babka wrote: > On 07/26/2014 09:58 PM, Hugh Dickins wrote: > > Yes, 3.16-rc1's 68711a746345 ("mm, migration: add destination page > > freeing callback") has provided such a way to compaction: if migrating > > a SwapBacked page fails, its newpage may be put back on the list for > > later use with PageSwapBacked still set, and nothing will clear it. > > Ugh good catch. So is this the only flag that can become "stray" like > this? It seems so from quick check... Yes, it seemed so to me too; but I would prefer a regime in which we only mess with newpage once it's sure to be successful. > > --- 3.16-rc6/mm/migrate.c 2014-06-29 15:22:10.584003935 -0700 > > +++ linux/mm/migrate.c 2014-07-26 11:28:34.488126591 -0700 > > @@ -988,9 +988,10 @@ out: > > * it. Otherwise, putback_lru_page() will drop the reference grabbed > > * during isolation. > > */ > > - if (rc != MIGRATEPAGE_SUCCESS && put_new_page) > > + if (rc != MIGRATEPAGE_SUCCESS && put_new_page) { > > + ClearPageSwapBacked(newpage); > > put_new_page(newpage, private); > > - else > > + } else > > putback_lru_page(newpage); > > > > if (result) { > > What about unmap_and_move_huge_page()? Seems to me it can also get the > same stray flag. Although compaction, who is the only user so far of > custom put_new_page, wouldn't of course migrate huge pages. But might > bite us in the future, if a new user appears before a cleanup... I think you're right, thanks for pointing it out. We don't have an actual bug there at present, so no need to rush back and fix up the patch now in Linus's tree; but unmap_and_move_huge_page() gives another reason why my choice was "probably the worst place to fix it". More reason for a cleanup, but not while the memcg interface is in flux. In mmotm I'm a little anxious about the PageAnon case when newpage's mapping is left set, I wonder if that might also be problematic: I mailed Hannes privately to think about that - perhaps that will give more impulse for a cleanup, though I've not noticed any bug from it. Hugh From root@krios.tbi.univie.ac.at Sat Jul 26 23:25:14 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: xfs@oss.sgi.com Delivered-To: xfs@oss.sgi.com Received: from relay.sgi.com (relay1.corp.sgi.com [137.38.102.111]) by oss.sgi.com (Postfix) with ESMTP id B3C3D7F4E for ; Sat, 26 Jul 2014 23:25:14 -0500 (CDT) Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by relay1.corp.sgi.com (Postfix) with ESMTP id A19F78F8037 for ; Sat, 26 Jul 2014 21:25:11 -0700 (PDT) X-ASG-Debug-ID: 1406435106-04cbb006858ef10001-NocioJ Received: from krios.tbi.univie.ac.at (krios.tbi.univie.ac.at [131.130.44.60]) by cuda.sgi.com with ESMTP id XbWCInrUipe2IgZn for ; Sat, 26 Jul 2014 21:25:06 -0700 (PDT) X-Barracuda-Envelope-From: root@krios.tbi.univie.ac.at X-Barracuda-Apparent-Source-IP: 131.130.44.60 Received: by krios.tbi.univie.ac.at (Postfix) id 253C55EE2D; Sun, 27 Jul 2014 06:25:03 +0200 (CEST) Delivered-To: root@krios.tbi.univie.ac.at Received: by krios.tbi.univie.ac.at (Postfix, from userid 0) id 16B935F468; Sun, 27 Jul 2014 06:25:03 +0200 (CEST) From: root@krios.tbi.univie.ac.at (Cron Daemon) To: root@krios.tbi.univie.ac.at Subject: Cron test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.daily ) Content-Type: text/plain; charset=UTF-8 X-ASG-Orig-Subj: Cron test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.daily ) X-Cron-Env: X-Cron-Env: X-Cron-Env: X-Cron-Env: Message-Id: <20140727042503.16B935F468@krios.tbi.univie.ac.at> Date: Sun, 27 Jul 2014 06:25:03 +0200 (CEST) X-Barracuda-Connect: krios.tbi.univie.ac.at[131.130.44.60] X-Barracuda-Start-Time: 1406435106 X-Barracuda-URL: http://192.48.176.25:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 X-Barracuda-Spam-Score: 0.70 X-Barracuda-Spam-Status: No, SCORE=0.70 using per-user scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.7 tests=BSF_SC0_MISMATCH_TO, BSF_SC0_SA_TO_FROM_ADDR_MATCH, PR0N_SUBJECT X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.7854 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.00 BSF_SC0_MISMATCH_TO Envelope rcpt doesn't match header 0.20 PR0N_SUBJECT Subject has letters around special characters (pr0n) 0.50 BSF_SC0_SA_TO_FROM_ADDR_MATCH Sender Address Matches Recipient Address /etc/cron.daily/logrotate: error: error opening /home/git/gitlab/log/application.log: Permission denied error: error opening /home/git/gitlab/log/githost.log: Permission denied error: error opening /home/git/gitlab/log/production.log: Permission denied error: error opening /home/git/gitlab/log/satellites.log: Permission denied error: error opening /home/git/gitlab/log/sidekiq.log: Permission denied error: error opening /home/git/gitlab/log/unicorn.stderr.log: Permission denied error: error opening /home/git/gitlab/log/unicorn.stdout.log: Permission denied error: error opening /home/git/gitlab-shell/gitlab-shell.log: Permission denied run-parts: /etc/cron.daily/logrotate exited with return code 1 From bfoster@redhat.com Mon Jul 28 07:14:18 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: xfs@oss.sgi.com Delivered-To: xfs@oss.sgi.com Received: from relay.sgi.com (relay3.corp.sgi.com [198.149.34.15]) by oss.sgi.com (Postfix) with ESMTP id 76B287F47 for ; Mon, 28 Jul 2014 07:14:18 -0500 (CDT) Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by relay3.corp.sgi.com (Postfix) with ESMTP id EAC50AC005 for ; Mon, 28 Jul 2014 05:14:14 -0700 (PDT) X-ASG-Debug-ID: 1406549650-04cbb00684c88b0001-NocioJ Received: from mx1.redhat.com (mx1.redhat.com [209.132.183.28]) by cuda.sgi.com with ESMTP id jusH11skrzxGTI6L (version=TLSv1 cipher=AES256-SHA bits=256 verify=NO) for ; Mon, 28 Jul 2014 05:14:10 -0700 (PDT) X-Barracuda-Envelope-From: bfoster@redhat.com X-Barracuda-Apparent-Source-IP: 209.132.183.28 X-ASG-Whitelist: Client Received: from int-mx13.intmail.prod.int.phx2.redhat.com (int-mx13.intmail.prod.int.phx2.redhat.com [10.5.11.26]) by mx1.redhat.com (8.14.4/8.14.4) with ESMTP id s6SCE3BB030575 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Mon, 28 Jul 2014 08:14:03 -0400 Received: from bfoster.bfoster ([10.18.41.237]) by int-mx13.intmail.prod.int.phx2.redhat.com (8.14.4/8.14.4) with ESMTP id s6SCE29G001232; Mon, 28 Jul 2014 08:14:02 -0400 Received: by bfoster.bfoster (Postfix, from userid 1000) id B1079124B7C; Mon, 28 Jul 2014 08:14:01 -0400 (EDT) Date: Mon, 28 Jul 2014 08:14:01 -0400 From: Brian Foster To: Dave Chinner Cc: xfs@oss.sgi.com Subject: Re: [PATCH RFC 00/18] xfs: sparse inode chunks Message-ID: <20140728121400.GB53501@bfoster.bfoster> X-ASG-Orig-Subj: Re: [PATCH RFC 00/18] xfs: sparse inode chunks References: <1406211788-63206-1-git-send-email-bfoster@redhat.com> <20140724223211.GQ20518@dastard> <20140725163056.GA3350@laptop.bfoster> <20140726000335.GE20518@dastard> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20140726000335.GE20518@dastard> User-Agent: Mutt/1.5.23 (2014-03-12) X-Scanned-By: MIMEDefang 2.68 on 10.5.11.26 X-Barracuda-Connect: mx1.redhat.com[209.132.183.28] X-Barracuda-Start-Time: 1406549650 X-Barracuda-Encrypted: AES256-SHA X-Barracuda-URL: http://192.48.176.25:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 On Sat, Jul 26, 2014 at 10:03:35AM +1000, Dave Chinner wrote: > On Fri, Jul 25, 2014 at 12:30:57PM -0400, Brian Foster wrote: > > On Fri, Jul 25, 2014 at 08:32:11AM +1000, Dave Chinner wrote: > > > On Thu, Jul 24, 2014 at 10:22:50AM -0400, Brian Foster wrote: > > > > Hi all, > > > > > > > > This is a first pass at sparse inode chunk support for XFS. Some > > > > background on this work is available here: > > > > > > > > http://oss.sgi.com/archives/xfs/2013-08/msg00346.html > > > > > > > > The basic idea is to allow the partial allocation of inode chunks into > > > > fragmented regions of free space. This is accomplished through addition > > > > of a holemask field into the inobt record that defines what portion(s) > > > > of an inode chunk are invalid (i.e., holes in the chunk). This work is > > > > not quite complete, but is at a point where I'd like to start getting > > > > feedback on the design and what direction to take for some of the known > > > > gaps. > > > > > > > > The basic breakdown of functionality in this set is as follows: > > > > > > > > - Patches 1-2 - A couple generic cleanups that are dependencies for later > > > > patches in the series. > > > > - Patches 3-5 - Basic data structure update, feature bit and minor > > > > helper introduction. > > > > - Patches 6-7 - Update v5 icreate logging and recovery to handle sparse > > > > inode records. > > > > - Patches 8-13 - Allocation support for sparse inode records. Physical > > > > chunk allocation and individual inode allocation. > > > > - Patches 14-16 - Deallocation support for sparse inode chunks. Physical > > > > chunk deallocation, individual inode free and cluster free. > > > > - Patch 17 - Fixes for bulkstat/inumbers. > > > > - Patch 18 - Activate support for sparse chunk allocation and > > > > processing. > > > > > > > > This work is lightly tested for regression (some xfstests failures due > > > > to repair) and basic functionality. I have a new xfstests test I'll > > > > forward along for demonstration purposes. > > > > > > > > Some notes on gaps in the design: > > > > > > > > - Sparse inode chunk allocation granularity: > > > > > > > > The current minimum sparse chunk allocation granularity is the cluster > > > > size. > > > > > > Looking at the patchset (I got to patch 5 that first uses this), > > > this is problematic. the cluster size is currently a kernel > > > implementation detail, and not something defined by the on-disk > > > format. We can change the cluster size in the kernel and not affect > > > the format on disk. Making the cluster size a part of the disk > > > format by defining it to be the resolution of sparse inode chunks > > > changes that - it's now a part of the on-disk inode format, and that > > > greatly limits what we can do with it. > > > > > > > I was going off the inoalignmt bit that's set at mkfs time, but looking > > at the code I think I see what you mean... > > > > > > My initial attempts at this work tried to redefine to the minimum > > > > chunk length based on the holemask granularity (a la the stale macro I > > > > seemingly left in this series ;), but this involves tweaking the > > > > codepaths that use the cluster size (i.e., imap) which proved rather > > > > hairy. > > > > > > This is where we need to head towards, though. The cluster size is > > > currently the unit of inode IO, so that needs to be influenced by the > > > sparse inode chunk granularity. Yes, we can define the inode chunk > > > granularity to be the same as the cluster size, but that simply > > > means we need to configure the cluster size appropriately at mount. > > > It doesn't mean we need to change what cluster size means or it's > > > implementation.... > > > > > > > I don't think I've necessarily encoded the cluster size into the disk > > format explicitly, but rather used it as a heuristic for how to size the > > sparse inode chunk allocations. I think what you're saying is that the > > cluster size can change across a mount or code update, while the on-disk > > allocation state will not. Thus we can't always go on the assumption > > that the on-disk allocations will be sane with regard to the current > > cluster size. For example, I suppose if the cluster size increased after > > we have some existing sparse allocations we'd end up with some broken > > buffer mappings for inode chunks. > > Yup, that's the problem in a nutshell: cluster size is not fixed. > > > > Again, that's kernel inode buffer cache implementaiton details, not > > > something that matters for the on-disk format. So really these need > > > to be separated. Probably means we need a "sparse inode allocation > > > alignment" field in the superblock to define this. Having > > > the kernel reject sparse alignments it can't support from the > > > initial implementation means we can improve the kernel > > > implementation over time and (eventually) support sub-cluster sized > > > sparse inode allocation. > > > > > > i.e. initial implementation only supports sparse alignment == > > > cluster size, and rejects everything else.... > > > > > > > Yeah, that's pretty much what I was trying to accomplish, just not > > encoded properly with regard to the superblock options. E.g., I > > overloaded the cluster size in a fragile way. Instead, explicitly set > > the sparse inode allocation granularity and let that influence the > > cluster size. I suspect that means we could even still use the cluster > > size heuristic to define the default alloc. granularity, but of course > > we aren't married to it so can evaluate that independently. That sounds > > much nicer, thanks. > > Right. We may not do anything else in the short or medium term, but > having a separate superblock field gives us the flexibility for > change the inode cluster implementation/behaviour in the future... > > > > dynamically, because it means the same upgrade/downdgrade cycle can > > > have different results simply due to filesystem freespace > > > fragmentation patterns... > > > > > > Perhaps an xfs-admin command to turn the feature on dynamicallyi for > > > existing filesystems, kind of like what we did with lazy superblock > > > counters when they were introduced? > > > > > > > Hmm, I suppose that does create a new and interesting dynamic with > > regard to the feature bit (non-deterministic backwards compatibility). > > One could certainly value backwards compatibility over this particular > > feature, and there is currently no way to control it. I'll look into > > doing something with xfs_admin. In fact, I was thinking of adding > > something to tune the cluster size bit to get around the v5 scaling > > issue anyways. > > What v5 scalability issue is that? I don't recall any outstanding > issues with inode cluster IO.... > There's no scalability issue... I'm just referring to the fact that we scale the cluster size by the inode size increase factor on v5 superblocks. E.g., my free space fragmentation xfstests test started out with a fixed file size based on something close to the worst case with an implementation that used the allocation granularity of max(, ). Once I tied the implementation to the cluster size due to the aforementioned complexities, it became apparent the test was less effective with my chosen file size on v5 supers, particularly as the inode size increased. So from there I was considering a similar xfs_admin command a user could run to reduce the cluster size as a backstop should this limitation arise in the real world. We can start with doing something just to enable the feature as outlined above and revisit this then... Brian > Cheers, > > Dave. > -- > Dave Chinner > david@fromorbit.com From hannes@cmpxchg.org Mon Jul 28 09:03:44 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=T_DKIM_INVALID autolearn=ham version=3.3.1 X-Original-To: xfs@oss.sgi.com Delivered-To: xfs@oss.sgi.com Received: from relay.sgi.com (relay3.corp.sgi.com [198.149.34.15]) by oss.sgi.com (Postfix) with ESMTP id E737E7F47 for ; Mon, 28 Jul 2014 09:03:43 -0500 (CDT) Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by relay3.corp.sgi.com (Postfix) with ESMTP id 75A2CAC007 for ; Mon, 28 Jul 2014 07:03:40 -0700 (PDT) X-ASG-Debug-ID: 1406556217-04cb6c6c27b38e0001-NocioJ Received: from zene.cmpxchg.org (zene.cmpxchg.org [85.214.230.12]) by cuda.sgi.com with ESMTP id wQ7xm5BGI1m2i7DX (version=TLSv1 cipher=AES256-SHA bits=256 verify=NO) for ; Mon, 28 Jul 2014 07:03:38 -0700 (PDT) X-Barracuda-Envelope-From: hannes@cmpxchg.org X-Barracuda-Apparent-Source-IP: 85.214.230.12 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=cmpxchg.org; s=zene; h=In-Reply-To:Content-Type:MIME-Version:References:Message-ID:Subject:Cc:To:From:Date; bh=NW3/+vUh783zFiPBAyqHYhRTpdot+zeHR/Nqm/mi7lI=; b=AD2jRRO//oDUbj9K0UhbYE7VXy5V89Bmt9O+T8gg5Hgor89qIeZf4i+q2Arcf6Mf8UhJAI7QJskZlJe2euzJNojqmRj8INbPdUc1gAyv+PxN/776AivvPJ2c3G69Rih81SBhcrTCULHQ8OoCZqmj49XY1/uc4adEenji1ASCoIw=; Date: Mon, 28 Jul 2014 10:01:57 -0400 From: Johannes Weiner To: Hugh Dickins Cc: Linus Torvalds , Andrew Morton , David Rientjes , Rik van Riel , Dave Jones , Dave Chinner , xfs@oss.sgi.com, linux-kernel@vger.kernel.org, linux-mm@kvack.org Subject: Re: [PATCH] mm: fix direct reclaim writeback regression Message-ID: <20140728140157.GM1725@cmpxchg.org> X-ASG-Orig-Subj: Re: [PATCH] mm: fix direct reclaim writeback regression References: MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: X-Barracuda-Connect: zene.cmpxchg.org[85.214.230.12] X-Barracuda-Start-Time: 1406556218 X-Barracuda-Encrypted: AES256-SHA X-Barracuda-URL: http://192.48.176.15:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 X-Barracuda-Spam-Score: 0.00 X-Barracuda-Spam-Status: No, SCORE=0.00 using per-user scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.7 tests=DKIM_SIGNED, DKIM_VERIFIED X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.7887 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- -0.00 DKIM_VERIFIED Domain Keys Identified Mail: signature passes verification 0.00 DKIM_SIGNED Domain Keys Identified Mail: message has a signature On Sat, Jul 26, 2014 at 12:58:23PM -0700, Hugh Dickins wrote: > Shortly before 3.16-rc1, Dave Jones reported: > > WARNING: CPU: 3 PID: 19721 at fs/xfs/xfs_aops.c:971 > xfs_vm_writepage+0x5ce/0x630 [xfs]() > CPU: 3 PID: 19721 Comm: trinity-c61 Not tainted 3.15.0+ #3 > Call Trace: > [] xfs_vm_writepage+0x5ce/0x630 [xfs] > [] shrink_page_list+0x8f9/0xb90 > [] shrink_inactive_list+0x253/0x510 > [] shrink_lruvec+0x563/0x6c0 > [] shrink_zone+0x3b/0x100 > [] shrink_zones+0x1f1/0x3c0 > [] try_to_free_pages+0x164/0x380 > [] __alloc_pages_nodemask+0x822/0xc90 > [] alloc_pages_vma+0xaf/0x1c0 > [] handle_mm_fault+0xa31/0xc50 > etc. > > 970 if (WARN_ON_ONCE((current->flags & (PF_MEMALLOC|PF_KSWAPD)) == > 971 PF_MEMALLOC)) > > I did not respond at the time, because a glance at the PageDirty block > in shrink_page_list() quickly shows that this is impossible: we don't do > writeback on file pages (other than tmpfs) from direct reclaim nowadays. > Dave was hallucinating, but it would have been disrespectful to say so. > > However, my own /var/log/messages now shows similar complaints > WARNING: CPU: 1 PID: 28814 at fs/ext4/inode.c:1881 ext4_writepage+0xa7/0x38b() > WARNING: CPU: 0 PID: 27347 at fs/ext4/inode.c:1764 ext4_writepage+0xa7/0x38b() > from stressing some mmotm trees during July. > > Could a dirty xfs or ext4 file page somehow get marked PageSwapBacked, > so fail shrink_page_list()'s page_is_file_cache() test, and so proceed > to mapping->a_ops->writepage()? > > Yes, 3.16-rc1's 68711a746345 ("mm, migration: add destination page > freeing callback") has provided such a way to compaction: if migrating > a SwapBacked page fails, its newpage may be put back on the list for > later use with PageSwapBacked still set, and nothing will clear it. > > Whether that can do anything worse than issue WARN_ON_ONCEs, and get > some statistics wrong, is unclear: easier to fix than to think through > the consequences. > > Fixing it here, before the put_new_page(), addresses the bug directly, > but is probably the worst place to fix it. Page migration is doing too > many parts of the job on too many levels: fixing it in move_to_new_page() > to complement its SetPageSwapBacked would be preferable, except why is it > (and newpage->mapping and newpage->index) done there, rather than down in > migrate_page_move_mapping(), once we are sure of success? Not a cleanup > to get into right now, especially not with memcg cleanups coming in 3.17. That needs verification that no ->migratepage() expects mapping (working PageAnon()) and index to be set up on newpage. The freelist putback looks quite fragile, we should probably add something like free_pages_prepare() / free_page_check() in there. > Reported-by: Dave Jones > Signed-off-by: Hugh Dickins Acked-by: Johannes Weiner From hannes@cmpxchg.org Mon Jul 28 09:24:07 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=T_DKIM_INVALID autolearn=ham version=3.3.1 X-Original-To: xfs@oss.sgi.com Delivered-To: xfs@oss.sgi.com Received: from relay.sgi.com (relay3.corp.sgi.com [198.149.34.15]) by oss.sgi.com (Postfix) with ESMTP id 7F36F7F47 for ; Mon, 28 Jul 2014 09:24:07 -0500 (CDT) Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by relay3.corp.sgi.com (Postfix) with ESMTP id 1982DAC005 for ; Mon, 28 Jul 2014 07:24:06 -0700 (PDT) X-ASG-Debug-ID: 1406557444-04bdf04753d1c70001-NocioJ Received: from zene.cmpxchg.org (zene.cmpxchg.org [85.214.230.12]) by cuda.sgi.com with ESMTP id CzqGv4pzkqDHCMhx (version=TLSv1 cipher=AES256-SHA bits=256 verify=NO) for ; Mon, 28 Jul 2014 07:24:05 -0700 (PDT) X-Barracuda-Envelope-From: hannes@cmpxchg.org X-Barracuda-Apparent-Source-IP: 85.214.230.12 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=cmpxchg.org; s=zene; h=In-Reply-To:Content-Type:MIME-Version:References:Message-ID:Subject:Cc:To:From:Date; bh=91u7purxXsRVFY4SZeYFwJghsFsGiRSycfaBR4mwFeU=; b=obzfNQqSjrsYLZnAxtKTm2a1cdaHxA3IPJ0o7wOGtVxEbff2HI9M7SYZqxleUD163XGYfNPy5nBOlnBFlUiP8WrDEjbKyCCxZON2ZASUkR2y/cv/JVQf8D58EGuLtqW1auiil1jsGuIzweOxmi8kTS0sXmcoiF0bV0zeW2BvfiI=; Date: Mon, 28 Jul 2014 10:23:13 -0400 From: Johannes Weiner To: Hugh Dickins Cc: Vlastimil Babka , Linus Torvalds , Andrew Morton , David Rientjes , Rik van Riel , Dave Jones , Dave Chinner , xfs@oss.sgi.com, linux-kernel@vger.kernel.org, linux-mm@kvack.org Subject: Re: [PATCH] mm: fix direct reclaim writeback regression Message-ID: <20140728142313.GN1725@cmpxchg.org> X-ASG-Orig-Subj: Re: [PATCH] mm: fix direct reclaim writeback regression References: <53D42F80.7000000@suse.cz> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: X-Barracuda-Connect: zene.cmpxchg.org[85.214.230.12] X-Barracuda-Start-Time: 1406557444 X-Barracuda-Encrypted: AES256-SHA X-Barracuda-URL: http://192.48.157.11:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 X-Barracuda-Spam-Score: 0.00 X-Barracuda-Spam-Status: No, SCORE=0.00 using per-user scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.7 tests=DKIM_SIGNED, DKIM_VERIFIED X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.7888 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- -0.00 DKIM_VERIFIED Domain Keys Identified Mail: signature passes verification 0.00 DKIM_SIGNED Domain Keys Identified Mail: message has a signature On Sat, Jul 26, 2014 at 04:15:25PM -0700, Hugh Dickins wrote: > On Sun, 27 Jul 2014, Vlastimil Babka wrote: > > On 07/26/2014 09:58 PM, Hugh Dickins wrote: > > > Yes, 3.16-rc1's 68711a746345 ("mm, migration: add destination page > > > freeing callback") has provided such a way to compaction: if migrating > > > a SwapBacked page fails, its newpage may be put back on the list for > > > later use with PageSwapBacked still set, and nothing will clear it. > > > > Ugh good catch. So is this the only flag that can become "stray" like > > this? It seems so from quick check... > > Yes, it seemed so to me too; but I would prefer a regime in which > we only mess with newpage once it's sure to be successful. > > > > --- 3.16-rc6/mm/migrate.c 2014-06-29 15:22:10.584003935 -0700 > > > +++ linux/mm/migrate.c 2014-07-26 11:28:34.488126591 -0700 > > > @@ -988,9 +988,10 @@ out: > > > * it. Otherwise, putback_lru_page() will drop the reference grabbed > > > * during isolation. > > > */ > > > - if (rc != MIGRATEPAGE_SUCCESS && put_new_page) > > > + if (rc != MIGRATEPAGE_SUCCESS && put_new_page) { > > > + ClearPageSwapBacked(newpage); > > > put_new_page(newpage, private); > > > - else > > > + } else > > > putback_lru_page(newpage); > > > > > > if (result) { > > > > What about unmap_and_move_huge_page()? Seems to me it can also get the > > same stray flag. Although compaction, who is the only user so far of > > custom put_new_page, wouldn't of course migrate huge pages. But might > > bite us in the future, if a new user appears before a cleanup... > > I think you're right, thanks for pointing it out. We don't have an > actual bug there at present, so no need to rush back and fix up the > patch now in Linus's tree; but unmap_and_move_huge_page() gives > another reason why my choice was "probably the worst place to fix it". > > More reason for a cleanup, but not while the memcg interface is in flux. > In mmotm I'm a little anxious about the PageAnon case when newpage's > mapping is left set, I wonder if that might also be problematic: I > mailed Hannes privately to think about that - perhaps that will give > more impulse for a cleanup, though I've not noticed any bug from it. I made that change for oldpage because uncharge in the final put_page relies on PageAnon() to work for statistics. The newpage case could have been left alone, but it looked like an anomaly to me - anonymous mappings are usually sticky and only cleared by the page allocator - so I was eager to make the cases symmetrical. I don't see a bug there because if the page is reused its mapping will be overwritten right away, and if freed the allocator will reset it. mem_cgroup_migrate() has since changed to fully uncharge the old page and not leave this task to the final put_page, so ->mapping does not need to be maintained past that point. I'll send a revert of these conditional ->mapping resets to Andrew. From bfoster@redhat.com Mon Jul 28 10:02:43 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: xfs@oss.sgi.com Delivered-To: xfs@oss.sgi.com Received: from relay.sgi.com (relay1.corp.sgi.com [137.38.102.111]) by oss.sgi.com (Postfix) with ESMTP id 0B3BB7F47 for ; Mon, 28 Jul 2014 10:02:43 -0500 (CDT) Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by relay1.corp.sgi.com (Postfix) with ESMTP id DED308F8035 for ; Mon, 28 Jul 2014 08:02:42 -0700 (PDT) X-ASG-Debug-ID: 1406559758-04cb6c6c26b6320001-NocioJ Received: from mx1.redhat.com (mx1.redhat.com [209.132.183.28]) by cuda.sgi.com with ESMTP id Dmx7tbO4IPVzu2ao (version=TLSv1 cipher=AES256-SHA bits=256 verify=NO) for ; Mon, 28 Jul 2014 08:02:38 -0700 (PDT) X-Barracuda-Envelope-From: bfoster@redhat.com X-Barracuda-Apparent-Source-IP: 209.132.183.28 X-ASG-Whitelist: Client Received: from int-mx11.intmail.prod.int.phx2.redhat.com (int-mx11.intmail.prod.int.phx2.redhat.com [10.5.11.24]) by mx1.redhat.com (8.14.4/8.14.4) with ESMTP id s6SF2UIs004738 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Mon, 28 Jul 2014 11:02:31 -0400 Received: from bfoster.bfoster ([10.18.41.237]) by int-mx11.intmail.prod.int.phx2.redhat.com (8.14.4/8.14.4) with ESMTP id s6SF2TBT029926; Mon, 28 Jul 2014 11:02:30 -0400 Received: by bfoster.bfoster (Postfix, from userid 1000) id 50ABA124B7C; Mon, 28 Jul 2014 11:02:28 -0400 (EDT) Date: Mon, 28 Jul 2014 11:02:28 -0400 From: Brian Foster To: Eric Sandeen Cc: cbay@excellency.fr, xfs@oss.sgi.com Subject: Re: [PATCH V2] xfs: avoid false quotacheck after unclean shutdown Message-ID: <20140728150227.GA59542@bfoster.bfoster> X-ASG-Orig-Subj: Re: [PATCH V2] xfs: avoid false quotacheck after unclean shutdown References: <53CE6415.8080607@excellency.fr> <53CE9AF6.3090401@sandeen.net> <53D196DE.4060602@sandeen.net> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <53D196DE.4060602@sandeen.net> User-Agent: Mutt/1.5.23 (2014-03-12) X-Scanned-By: MIMEDefang 2.68 on 10.5.11.24 X-Barracuda-Connect: mx1.redhat.com[209.132.183.28] X-Barracuda-Start-Time: 1406559758 X-Barracuda-Encrypted: AES256-SHA X-Barracuda-URL: http://192.48.176.15:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 On Thu, Jul 24, 2014 at 06:29:34PM -0500, Eric Sandeen wrote: > The commit > > 83e782e xfs: Remove incore use of XFS_OQUOTA_ENFD and XFS_OQUOTA_CHKD > > added a new function xfs_sb_quota_from_disk() which swaps > on-disk XFS_OQUOTA_* flags for in-core XFS_GQUOTA_* and XFS_PQUOTA_* > flags after the superblock is read. > > However, if log recovery is required, the superblock is read again, > and the modified in-core flags are re-read from disk, so we have > XFS_OQUOTA_* flags in memory again. This causes the > XFS_QM_NEED_QUOTACHECK() test to be true, because the XFS_OQUOTA_CHKD > is still set, and not XFS_GQUOTA_CHKD or XFS_PQUOTA_CHKD. > > Change xfs_sb_from_disk to call xfs_sb_quota_from disk and always > convert the disk flags to in-memory flags. > > Add a lower-level function which can be called with "false" to > not convert the flags, so that the sb verifier can verify > exactly what was on disk, per Brian Foster's suggestion. > > Reported-by: Cyril B. > Signed-off-by: Eric Sandeen > --- Looks good to me, thanks! Reviewed-by: Brian Foster > > V2: Call xfs_sb_quota_from_disk from xfs_sb_from_disk, > unless we're the verifier, which wants to see what is > actually on-disk to verify it. Thanks Brian! > > > diff --git a/fs/xfs/xfs_mount.c b/fs/xfs/xfs_mount.c > index 3507cd0..16d1671 100644 > --- a/fs/xfs/xfs_mount.c > +++ b/fs/xfs/xfs_mount.c > @@ -324,7 +324,6 @@ reread: > * Initialize the mount structure from the superblock. > */ > xfs_sb_from_disk(sbp, XFS_BUF_TO_SBP(bp)); > - xfs_sb_quota_from_disk(sbp); > > /* > * If we haven't validated the superblock, do so now before we try > diff --git a/fs/xfs/xfs_sb.c b/fs/xfs/xfs_sb.c > index 7703fa6..0f631d2 100644 > --- a/fs/xfs/xfs_sb.c > +++ b/fs/xfs/xfs_sb.c > @@ -386,10 +386,11 @@ xfs_sb_quota_from_disk(struct xfs_sb *sbp) > } > } > > -void > -xfs_sb_from_disk( > +static void > +__xfs_sb_from_disk( > struct xfs_sb *to, > - xfs_dsb_t *from) > + xfs_dsb_t *from, > + bool convert_xquota) > { > to->sb_magicnum = be32_to_cpu(from->sb_magicnum); > to->sb_blocksize = be32_to_cpu(from->sb_blocksize); > @@ -445,6 +446,17 @@ xfs_sb_from_disk( > to->sb_pad = 0; > to->sb_pquotino = be64_to_cpu(from->sb_pquotino); > to->sb_lsn = be64_to_cpu(from->sb_lsn); > + /* Convert on-disk flags to in-memory flags? */ > + if (convert_xquota) > + xfs_sb_quota_from_disk(to); > +} > + > +void > +xfs_sb_from_disk( > + struct xfs_sb *to, > + xfs_dsb_t *from) > +{ > + __xfs_sb_from_disk(to, from, true); > } > > static inline void > @@ -577,7 +589,11 @@ xfs_sb_verify( > struct xfs_mount *mp = bp->b_target->bt_mount; > struct xfs_sb sb; > > - xfs_sb_from_disk(&sb, XFS_BUF_TO_SBP(bp)); > + /* > + * Use call variant which doesn't convert quota flags from disk > + * format, because xfs_mount_validate_sb checks the on-disk flags. > + */ > + __xfs_sb_from_disk(&sb, XFS_BUF_TO_SBP(bp), false); > > /* > * Only check the in progress field for the primary superblock as > > > _______________________________________________ > xfs mailing list > xfs@oss.sgi.com > http://oss.sgi.com/mailman/listinfo/xfs From bfoster@redhat.com Mon Jul 28 11:04:00 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: xfs@oss.sgi.com Delivered-To: xfs@oss.sgi.com Received: from relay.sgi.com (relay1.corp.sgi.com [137.38.102.111]) by oss.sgi.com (Postfix) with ESMTP id 6C8A27F47 for ; Mon, 28 Jul 2014 11:04:00 -0500 (CDT) Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by relay1.corp.sgi.com (Postfix) with ESMTP id 3D5208F8037 for ; Mon, 28 Jul 2014 09:03:57 -0700 (PDT) X-ASG-Debug-ID: 1406563435-04bdf04750da610001-NocioJ Received: from mx1.redhat.com (mx1.redhat.com [209.132.183.28]) by cuda.sgi.com with ESMTP id w35Dko5LCjxrYCS4 (version=TLSv1 cipher=AES256-SHA bits=256 verify=NO) for ; Mon, 28 Jul 2014 09:03:56 -0700 (PDT) X-Barracuda-Envelope-From: bfoster@redhat.com X-Barracuda-Apparent-Source-IP: 209.132.183.28 X-ASG-Whitelist: Client Received: from int-mx11.intmail.prod.int.phx2.redhat.com (int-mx11.intmail.prod.int.phx2.redhat.com [10.5.11.24]) by mx1.redhat.com (8.14.4/8.14.4) with ESMTP id s6SG3siu007087 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Mon, 28 Jul 2014 12:03:54 -0400 Received: from bfoster.bfoster ([10.18.41.237]) by int-mx11.intmail.prod.int.phx2.redhat.com (8.14.4/8.14.4) with ESMTP id s6SG3reV003725; Mon, 28 Jul 2014 12:03:53 -0400 Received: by bfoster.bfoster (Postfix, from userid 1000) id 65008124B7C; Mon, 28 Jul 2014 12:03:52 -0400 (EDT) Date: Mon, 28 Jul 2014 12:03:52 -0400 From: Brian Foster To: Dave Chinner Cc: xfs@oss.sgi.com Subject: Re: [PATCH 01/18] xfs: refactor xfs_inobt_insert() to eliminate loop and support variable count Message-ID: <20140728160351.GB59542@bfoster.bfoster> X-ASG-Orig-Subj: Re: [PATCH 01/18] xfs: refactor xfs_inobt_insert() to eliminate loop and support variable count References: <1406211788-63206-1-git-send-email-bfoster@redhat.com> <1406211788-63206-2-git-send-email-bfoster@redhat.com> <20140724221038.GN20518@dastard> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20140724221038.GN20518@dastard> User-Agent: Mutt/1.5.23 (2014-03-12) X-Scanned-By: MIMEDefang 2.68 on 10.5.11.24 X-Barracuda-Connect: mx1.redhat.com[209.132.183.28] X-Barracuda-Start-Time: 1406563435 X-Barracuda-Encrypted: AES256-SHA X-Barracuda-URL: http://192.48.157.11:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 On Fri, Jul 25, 2014 at 08:10:38AM +1000, Dave Chinner wrote: > On Thu, Jul 24, 2014 at 10:22:51AM -0400, Brian Foster wrote: > > Inodes are always allocated in chunks of 64 and thus the loop in > > xfs_inobt_insert() is unnecessary. > > I don't believe this is true. The number of inodes allocated at once > is: > > mp->m_ialloc_inos = (int)MAX((__uint16_t)XFS_INODES_PER_CHUNK, > sbp->sb_inopblock); > So I'm going on that effectively that the number of inodes per block will never be larger than 8 (v5) due to a max block size of 4k. > So when the block size is, say, 64k, the number of 512 byte inodes > allocated at once is 128. i.e. 2 chunks. Hence xfs_inobt_insert() > can be called with a inode could of > 64 and therefore the loop is > still necessary... > Playing with mkfs I see that we actually can format >4k bsize filesystems and the min and max are set at 512b and 64k. I can't actually mount such filesystems due to the page size limitation. FWIW, the default log size params appear to be broken for bsize >= 32k as well, so I wonder if/how often that format tends to occur. What's the situation with regard to >PAGE_SIZE block size support? Is this something we actually could support today? Do we know about any large page sized arches that could push us into this territory with the actual page size limitation? > And, indeed, we might want to increase the allocation size in future > to do entire stripe units or stripe widths of inodes at once: > > http://xfs.org/index.php/Improving_inode_Caching#Contiguous_Inode_Allocation > > This also means a loop would be required -somewhere-... > Indeed, though I'm less inclined to keep this around for the purposes of this unimplemented feature. It should be easy enough to add the loop in the appropriate place according to the code at the time this is implemented. I suppose if we have >4k page sized arches that utilize block sizes outside of the 256b-4k range, that's enough to justify the existence of the range in the general sense. I just might have to factor this area of code a bit differently. It would also be nice if there was a means to test. Brian > Cheers, > > Dave. > -- > Dave Chinner > david@fromorbit.com > > _______________________________________________ > xfs mailing list > xfs@oss.sgi.com > http://oss.sgi.com/mailman/listinfo/xfs From bfoster@redhat.com Mon Jul 28 11:16:42 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: xfs@oss.sgi.com Delivered-To: xfs@oss.sgi.com Received: from relay.sgi.com (relay2.corp.sgi.com [137.38.102.29]) by oss.sgi.com (Postfix) with ESMTP id DFC397F47 for ; Mon, 28 Jul 2014 11:16:42 -0500 (CDT) Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by relay2.corp.sgi.com (Postfix) with ESMTP id A1892304043 for ; Mon, 28 Jul 2014 09:16:39 -0700 (PDT) X-ASG-Debug-ID: 1406564197-04bdf04751db400001-NocioJ Received: from mx1.redhat.com (mx1.redhat.com [209.132.183.28]) by cuda.sgi.com with ESMTP id yJM5Ty77mBzpP8rv (version=TLSv1 cipher=AES256-SHA bits=256 verify=NO) for ; Mon, 28 Jul 2014 09:16:38 -0700 (PDT) X-Barracuda-Envelope-From: bfoster@redhat.com X-Barracuda-Apparent-Source-IP: 209.132.183.28 X-ASG-Whitelist: Client Received: from int-mx11.intmail.prod.int.phx2.redhat.com (int-mx11.intmail.prod.int.phx2.redhat.com [10.5.11.24]) by mx1.redhat.com (8.14.4/8.14.4) with ESMTP id s6SGGZgm004850 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Mon, 28 Jul 2014 12:16:35 -0400 Received: from bfoster.bfoster ([10.18.41.237]) by int-mx11.intmail.prod.int.phx2.redhat.com (8.14.4/8.14.4) with ESMTP id s6SGGYa6012544; Mon, 28 Jul 2014 12:16:34 -0400 Received: by bfoster.bfoster (Postfix, from userid 1000) id 798C6124B7C; Mon, 28 Jul 2014 12:16:33 -0400 (EDT) Date: Mon, 28 Jul 2014 12:16:33 -0400 From: Brian Foster To: Dave Chinner Cc: xfs@oss.sgi.com Subject: Re: [PATCH 04/18] xfs: introduce inode record hole mask for sparse inode chunks Message-ID: <20140728161632.GC59542@bfoster.bfoster> X-ASG-Orig-Subj: Re: [PATCH 04/18] xfs: introduce inode record hole mask for sparse inode chunks References: <1406211788-63206-1-git-send-email-bfoster@redhat.com> <1406211788-63206-5-git-send-email-bfoster@redhat.com> <20140724221453.GP20518@dastard> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20140724221453.GP20518@dastard> User-Agent: Mutt/1.5.23 (2014-03-12) X-Scanned-By: MIMEDefang 2.68 on 10.5.11.24 X-Barracuda-Connect: mx1.redhat.com[209.132.183.28] X-Barracuda-Start-Time: 1406564198 X-Barracuda-Encrypted: AES256-SHA X-Barracuda-URL: http://192.48.157.11:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 On Fri, Jul 25, 2014 at 08:14:53AM +1000, Dave Chinner wrote: > On Thu, Jul 24, 2014 at 10:22:54AM -0400, Brian Foster wrote: > > The inode btrees track 64 inodes per record, regardless of inode size. > > Thus, inode chunks on disk vary in size depending on the size of the > > inodes. This creates a contiguous allocation requirement for new inode > > chunks that can be difficult to satisfy on an aged and fragmented (free > > space) filesystem. > > > > The inode record freecount currently uses 4 bytes on disk to track the > > free inode count. With a maximum freecount value of 64, only one byte is > > required. Convert the freecount field to a single byte and reserve two > > of the remaining 3 higher order bytes left to the hole mask field. > > > > The hole mask field tracks potential holes in the chunks of physical > > space that the inode record refers to. This facilitates the sparse > > allocation of inode chunks when contiguous chunks are not available and > > allows the inode btrees to identify what portions of the chunk contain > > valid inodes. > > > > Tracking holes means the field is initialized to zero and thus maintains > > backwards compatibility with existing filesystems. E.g., the higher > > order bytes of a counter with a max value of 64 are already initialized > > to 0. Update the inode record management functions to handle the new > > field and initialize it to zero for now. > > > > Signed-off-by: Brian Foster > > --- > > fs/xfs/libxfs/xfs_format.h | 7 +++++-- > > fs/xfs/libxfs/xfs_ialloc.c | 9 +++++++-- > > fs/xfs/libxfs/xfs_ialloc_btree.c | 4 +++- > > 3 files changed, 15 insertions(+), 5 deletions(-) > > > > diff --git a/fs/xfs/libxfs/xfs_format.h b/fs/xfs/libxfs/xfs_format.h > > index 34d85ac..39022d9 100644 > > --- a/fs/xfs/libxfs/xfs_format.h > > +++ b/fs/xfs/libxfs/xfs_format.h > > @@ -221,13 +221,16 @@ static inline xfs_inofree_t xfs_inobt_maskn(int i, int n) > > */ > > typedef struct xfs_inobt_rec { > > __be32 ir_startino; /* starting inode number */ > > - __be32 ir_freecount; /* count of free inodes (set bits) */ > > + __be16 ir_holemask; /* hole mask for sparse chunks */ > > + __u8 ir_pad; > > + __u8 ir_freecount; /* count of free inodes (set bits) */ > > __be64 ir_free; /* free inode mask */ > > } xfs_inobt_rec_t; > > might we want the number of inodes allocated in the chunk there as > well (i.e. in the pad field) so we can validate the holemask against > the number of inodes allocated in the chunk? > So you're suggesting something like this? - __be32 ir_freecount; /* count of free inodes (set bits) */ + __be16 ir_holemask; /* hole mask for sparse chunks */ + __u8 ir_count; /* total inode count */ + __u8 ir_freecount; /* count of free inodes (set bits) */ That's an interesting thought. It might make some of the code more clear and eliminate the need for the derivation of that value from the holemask (beyond for validation purposes). I do like the extra validation and potential debug use given the holemask is not quite as human friendly as the free mask in terms of having a bit per inode. As long as there isn't any concern over reserving this space for something else down the road (I suspect not, since the pad is introduced by this feature), I'll look to use it as an inode count. Brian > -Dave. > -- > Dave Chinner > david@fromorbit.com > > _______________________________________________ > xfs mailing list > xfs@oss.sgi.com > http://oss.sgi.com/mailman/listinfo/xfs From bfoster@redhat.com Mon Jul 28 11:19:30 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: xfs@oss.sgi.com Delivered-To: xfs@oss.sgi.com Received: from relay.sgi.com (relay2.corp.sgi.com [137.38.102.29]) by oss.sgi.com (Postfix) with ESMTP id 046C37F47 for ; Mon, 28 Jul 2014 11:19:30 -0500 (CDT) Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by relay2.corp.sgi.com (Postfix) with ESMTP id D5872304043 for ; Mon, 28 Jul 2014 09:19:29 -0700 (PDT) X-ASG-Debug-ID: 1406564368-04cbb00683d7c50001-NocioJ Received: from mx1.redhat.com (mx1.redhat.com [209.132.183.28]) by cuda.sgi.com with ESMTP id bQwfA8rcNAlXiVHU (version=TLSv1 cipher=AES256-SHA bits=256 verify=NO) for ; Mon, 28 Jul 2014 09:19:28 -0700 (PDT) X-Barracuda-Envelope-From: bfoster@redhat.com X-Barracuda-Apparent-Source-IP: 209.132.183.28 X-ASG-Whitelist: Client Received: from int-mx10.intmail.prod.int.phx2.redhat.com (int-mx10.intmail.prod.int.phx2.redhat.com [10.5.11.23]) by mx1.redhat.com (8.14.4/8.14.4) with ESMTP id s6SGJRar032447 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Mon, 28 Jul 2014 12:19:27 -0400 Received: from bfoster.bfoster ([10.18.41.237]) by int-mx10.intmail.prod.int.phx2.redhat.com (8.14.4/8.14.4) with ESMTP id s6SGJQJ9030267; Mon, 28 Jul 2014 12:19:27 -0400 Received: by bfoster.bfoster (Postfix, from userid 1000) id B2E94124B7C; Mon, 28 Jul 2014 12:19:25 -0400 (EDT) Date: Mon, 28 Jul 2014 12:19:25 -0400 From: Brian Foster To: Dave Chinner Cc: xfs@oss.sgi.com Subject: Re: [PATCH 08/18] xfs: create helper to manage record overlap for sparse inode chunks Message-ID: <20140728161925.GD59542@bfoster.bfoster> X-ASG-Orig-Subj: Re: [PATCH 08/18] xfs: create helper to manage record overlap for sparse inode chunks References: <1406211788-63206-1-git-send-email-bfoster@redhat.com> <1406211788-63206-9-git-send-email-bfoster@redhat.com> <20140724224112.GR20518@dastard> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20140724224112.GR20518@dastard> User-Agent: Mutt/1.5.23 (2014-03-12) X-Scanned-By: MIMEDefang 2.68 on 10.5.11.23 X-Barracuda-Connect: mx1.redhat.com[209.132.183.28] X-Barracuda-Start-Time: 1406564368 X-Barracuda-Encrypted: AES256-SHA X-Barracuda-URL: http://192.48.176.25:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 On Fri, Jul 25, 2014 at 08:41:12AM +1000, Dave Chinner wrote: > On Thu, Jul 24, 2014 at 10:22:58AM -0400, Brian Foster wrote: > > Create xfs_spchunk_has_record() to receive the parameters of a new > > sparse inode chunk allocation and identify whether a record exists that > > is capable of tracking this sparse chunk. > > > > Signed-off-by: Brian Foster > > --- > > fs/xfs/libxfs/xfs_ialloc.c | 55 ++++++++++++++++++++++++++++++++++++++++++++++ > > 1 file changed, 55 insertions(+) > > > > diff --git a/fs/xfs/libxfs/xfs_ialloc.c b/fs/xfs/libxfs/xfs_ialloc.c > > index 27d3437..be57b51 100644 > > --- a/fs/xfs/libxfs/xfs_ialloc.c > > +++ b/fs/xfs/libxfs/xfs_ialloc.c > > @@ -351,6 +351,61 @@ xfs_ialloc_inode_init( > > } > > > > /* > > + * Determine whether part of a sparse inode chunk that has just been allocated > > + * is covered by an existing inobt record. > > + */ > > +STATIC int > > +xfs_spchunk_has_record( > > not sure I like the "spchunk" naming. I see that and I have no idea > what subsystem it belongs to. It's actually an inobt lookup > function, and doesn't really have anything to do with sparse chunks. > So maybe xfs_inobt_rec_exists or xfs_inobt_lookup_exact? > xfs_inobt_rec_exists() sounds good. > > + struct xfs_mount *mp, > > + struct xfs_trans *tp, > > + struct xfs_buf *agbp, > > + xfs_agino_t newino, > > + xfs_agino_t count, > > + xfs_btnum_t btnum, > > + struct xfs_inobt_rec_incore *orec) > > +{ > > + struct xfs_btree_cur *cur; > > + struct xfs_agi *agi = XFS_BUF_TO_AGI(agbp); > > + xfs_agnumber_t agno = be32_to_cpu(agi->agi_seqno); > > + xfs_agino_t previno; > > + int error; > > + int i; > > + struct xfs_inobt_rec_incore rec; > > + > > + orec->ir_startino = NULLAGINO; > > + > > + cur = xfs_inobt_init_cursor(mp, tp, agbp, agno, btnum); > > + > > + previno = newino + count - XFS_INODES_PER_CHUNK; > > + error = xfs_inobt_lookup(cur, previno, XFS_LOOKUP_GE, &i); > > You want XFS_LOOKUP_EQ, yes? i.e. XFS_LOOKUP_GE won't fail if the > exact record for the inode chunk does not exist - it will return the > next one in the btree. > Assuming variable sparse chunk granularity, I don't really know the start ino of the record that potentially covers the new inode chunk. Given that, we use the smallest possible start ino that could include this chunk and search forward from there. As you've noted below, I wasn't relying on failure here to detect the scenario where there is no existing record. Brian > > + if (error) > > + goto error; > > + if (i == 0) > > + goto out; > > + > > + error = xfs_inobt_get_rec(cur, &rec, &i); > > + if (error) > > + goto error; > > + XFS_WANT_CORRUPTED_GOTO(i == 1, error); > > + > > + if (rec.ir_startino > newino) > > + goto out; > > And so this check would not be necessary... > > > + > > + ASSERT(rec.ir_startino <= newino && > > + rec.ir_startino + XFS_INODES_PER_CHUNK > newino); > > + ASSERT(rec.ir_freecount + count <= XFS_INODES_PER_CHUNK); > > + > > + *orec = rec; > > /* struct copy */ > > -Dave. > -- > Dave Chinner > david@fromorbit.com > > _______________________________________________ > xfs mailing list > xfs@oss.sgi.com > http://oss.sgi.com/mailman/listinfo/xfs From bfoster@redhat.com Mon Jul 28 11:23:05 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: xfs@oss.sgi.com Delivered-To: xfs@oss.sgi.com Received: from relay.sgi.com (relay1.corp.sgi.com [137.38.102.111]) by oss.sgi.com (Postfix) with ESMTP id 1C1547F47 for ; Mon, 28 Jul 2014 11:23:05 -0500 (CDT) Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by relay1.corp.sgi.com (Postfix) with ESMTP id 07DE68F8040 for ; Mon, 28 Jul 2014 09:23:04 -0700 (PDT) X-ASG-Debug-ID: 1406564583-04cb6c6c24bbb30001-NocioJ Received: from mx1.redhat.com (mx1.redhat.com [209.132.183.28]) by cuda.sgi.com with ESMTP id ewMH5NWLJySEVjbq (version=TLSv1 cipher=AES256-SHA bits=256 verify=NO) for ; Mon, 28 Jul 2014 09:23:04 -0700 (PDT) X-Barracuda-Envelope-From: bfoster@redhat.com X-Barracuda-Apparent-Source-IP: 209.132.183.28 X-ASG-Whitelist: Client Received: from int-mx13.intmail.prod.int.phx2.redhat.com (int-mx13.intmail.prod.int.phx2.redhat.com [10.5.11.26]) by mx1.redhat.com (8.14.4/8.14.4) with ESMTP id s6SGN2MO025714 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Mon, 28 Jul 2014 12:23:02 -0400 Received: from bfoster.bfoster ([10.18.41.237]) by int-mx13.intmail.prod.int.phx2.redhat.com (8.14.4/8.14.4) with ESMTP id s6SGN1lD029153; Mon, 28 Jul 2014 12:23:02 -0400 Received: by bfoster.bfoster (Postfix, from userid 1000) id C1A66124B7C; Mon, 28 Jul 2014 12:23:00 -0400 (EDT) Date: Mon, 28 Jul 2014 12:23:00 -0400 From: Brian Foster To: Dave Chinner Cc: xfs@oss.sgi.com Subject: Re: [PATCH 10/18] xfs: set sparse inodes feature bit when a sparse chunk is allocated Message-ID: <20140728162300.GE59542@bfoster.bfoster> X-ASG-Orig-Subj: Re: [PATCH 10/18] xfs: set sparse inodes feature bit when a sparse chunk is allocated References: <1406211788-63206-1-git-send-email-bfoster@redhat.com> <1406211788-63206-11-git-send-email-bfoster@redhat.com> <20140724224628.GS20518@dastard> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20140724224628.GS20518@dastard> User-Agent: Mutt/1.5.23 (2014-03-12) X-Scanned-By: MIMEDefang 2.68 on 10.5.11.26 X-Barracuda-Connect: mx1.redhat.com[209.132.183.28] X-Barracuda-Start-Time: 1406564584 X-Barracuda-Encrypted: AES256-SHA X-Barracuda-URL: http://192.48.176.15:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 On Fri, Jul 25, 2014 at 08:46:28AM +1000, Dave Chinner wrote: > On Thu, Jul 24, 2014 at 10:23:00AM -0400, Brian Foster wrote: > > The sparse chunk inode record format is backwards compatible with old > > format inobt records as long as full chunks are allocated. The holemask > > field uses higher order bytes of the freecount. While sparse chunks can > > be enabled on previously unsupported fs, older kernel drivers cannot > > parse sparse inode records. > > > > Set the feature incompatible bit once a sparse inode chunk is allocated > > to prevent older XFS drivers from tripping over the new format. > > > > Signed-off-by: Brian Foster > > --- > > fs/xfs/libxfs/xfs_ialloc.c | 33 +++++++++++++++++++++++++++++++++ > > 1 file changed, 33 insertions(+) > > > > diff --git a/fs/xfs/libxfs/xfs_ialloc.c b/fs/xfs/libxfs/xfs_ialloc.c > > index 4226b1b..4dd45c2 100644 > > --- a/fs/xfs/libxfs/xfs_ialloc.c > > +++ b/fs/xfs/libxfs/xfs_ialloc.c > > @@ -407,6 +407,27 @@ error: > > return error; > > } > > > > +STATIC void > > +xfs_sbversion_add_spinodes( > > + struct xfs_trans *tp, > > + struct xfs_mount *mp) > > +{ > > + if (xfs_sb_has_incompat_log_feature(&mp->m_sb, > > + XFS_SB_FEAT_INCOMPAT_SPINODES)) > > wrong function. xfs_sb_has_incompat_feature(). > Oops, right. > > + return; > > + > > + spin_lock(&mp->m_sb_lock); > > + if (xfs_sb_has_incompat_log_feature(&mp->m_sb, > > + XFS_SB_FEAT_INCOMPAT_SPINODES)) { > > + spin_unlock(&mp->m_sb_lock); > > + return; > > + } > > + > > + mp->m_sb.sb_features_incompat |= XFS_SB_FEAT_INCOMPAT_SPINODES; > > + spin_unlock(&mp->m_sb_lock); > > + xfs_mod_sb(tp, XFS_SB_FEATURES_INCOMPAT); > > +} > > + > > /* > > * Allocate new inodes in the allocation group specified by agbp. > > * Return 0 for success, else error code. > > @@ -631,6 +652,18 @@ xfs_ialloc_ag_alloc( > > if (error) > > return error; > > } > > + > > + /* > > + * Set an incompat feature bit as old drivers can't parse sparse > > + * records. Pre-sparse inode chunk drivers will include the > > + * holemask in the higher order freecount bits, resulting in a > > + * bogus value. > > + * > > + * XXX: when is this bit removed? > > + */ > > + if (xfs_inobt_issparse(&rec)) > > + xfs_sbversion_add_spinodes(tp, args.mp); > > I'd like to avoid this dynamic feature bit adding if possible. Do we > really need it? > Nope. As discussed, I'll move to something purely manual for the next iteration and we can move forward from there with regard to if/when to set it by default. Brian > Cheers, > > Dave. > -- > Dave Chinner > david@fromorbit.com > > _______________________________________________ > xfs mailing list > xfs@oss.sgi.com > http://oss.sgi.com/mailman/listinfo/xfs From david@fromorbit.com Mon Jul 28 18:32:28 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: xfs@oss.sgi.com Delivered-To: xfs@oss.sgi.com Received: from relay.sgi.com (relay3.corp.sgi.com [198.149.34.15]) by oss.sgi.com (Postfix) with ESMTP id A59327F47 for ; Mon, 28 Jul 2014 18:32:28 -0500 (CDT) Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by relay3.corp.sgi.com (Postfix) with ESMTP id 1BB39AC003 for ; Mon, 28 Jul 2014 16:32:24 -0700 (PDT) X-ASG-Debug-ID: 1406590341-04cb6c5e2d06f80001-NocioJ Received: from ipmail06.adl6.internode.on.net (ipmail06.adl6.internode.on.net [150.101.137.145]) by cuda.sgi.com with ESMTP id K5DtTiu0HSzpAQE8 for ; Mon, 28 Jul 2014 16:32:22 -0700 (PDT) X-Barracuda-Envelope-From: david@fromorbit.com X-Barracuda-Apparent-Source-IP: 150.101.137.145 X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: AhkKAFrc1lN5LHOdPGdsb2JhbABZgw6BKYInhQipCAEBAQEBAQajGQGBExcFAQEBATg2hAMBAQQBJxMcIwULCAMOCgklDwUlAwcaE4g6B75hFxiFZIkCTgeDL4EbBY5XjHSLc4pdgVgrLw Received: from ppp121-44-115-157.lns20.syd6.internode.on.net (HELO dastard) ([121.44.115.157]) by ipmail06.adl6.internode.on.net with ESMTP; 29 Jul 2014 09:02:21 +0930 Received: from dave by dastard with local (Exim 4.80) (envelope-from ) id 1XBuOx-00060Y-JA; Tue, 29 Jul 2014 09:32:19 +1000 Date: Tue, 29 Jul 2014 09:32:19 +1000 From: Dave Chinner To: Brian Foster Cc: xfs@oss.sgi.com Subject: Re: [PATCH 01/18] xfs: refactor xfs_inobt_insert() to eliminate loop and support variable count Message-ID: <20140728233219.GF26465@dastard> X-ASG-Orig-Subj: Re: [PATCH 01/18] xfs: refactor xfs_inobt_insert() to eliminate loop and support variable count References: <1406211788-63206-1-git-send-email-bfoster@redhat.com> <1406211788-63206-2-git-send-email-bfoster@redhat.com> <20140724221038.GN20518@dastard> <20140728160351.GB59542@bfoster.bfoster> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20140728160351.GB59542@bfoster.bfoster> User-Agent: Mutt/1.5.21 (2010-09-15) X-Barracuda-Connect: ipmail06.adl6.internode.on.net[150.101.137.145] X-Barracuda-Start-Time: 1406590341 X-Barracuda-URL: http://192.48.176.15:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 X-Barracuda-Spam-Score: 0.00 X-Barracuda-Spam-Status: No, SCORE=0.00 using per-user scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.7 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.7906 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- On Mon, Jul 28, 2014 at 12:03:52PM -0400, Brian Foster wrote: > On Fri, Jul 25, 2014 at 08:10:38AM +1000, Dave Chinner wrote: > > On Thu, Jul 24, 2014 at 10:22:51AM -0400, Brian Foster wrote: > > > Inodes are always allocated in chunks of 64 and thus the loop in > > > xfs_inobt_insert() is unnecessary. > > > > I don't believe this is true. The number of inodes allocated at once > > is: > > > > mp->m_ialloc_inos = (int)MAX((__uint16_t)XFS_INODES_PER_CHUNK, > > sbp->sb_inopblock); > > > > So I'm going on that effectively that the number of inodes per block > will never be larger than 8 (v5) due to a max block size of 4k. The whole world is not x86... ;) > > So when the block size is, say, 64k, the number of 512 byte inodes > > allocated at once is 128. i.e. 2 chunks. Hence xfs_inobt_insert() > > can be called with a inode could of > 64 and therefore the loop is > > still necessary... > > > > Playing with mkfs I see that we actually can format >4k bsize > filesystems and the min and max are set at 512b and 64k. I can't > actually mount such filesystems due to the page size limitation. The whole world is not x86.... ;) ia64 and power default to 64k page size, so we have to code everything to work with 64k block sizes. > FWIW, > the default log size params appear to be broken for bsize >= 32k as In what way? > well, so I wonder if/how often that format tends to occur. More often than you think. > What's the situation with regard to >PAGE_SIZE block size support? Is > this something we actually could support today? Well, the problem is bufferheads and page cache don't support blocks large than page size. The metadata side of XFS supports it just fine through the xfs_buf structures, but the file data side doesn't. That's one of the things I'm slowly trying to find time to fix (i.e. kill bufferheads). > Do we know about any > large page sized arches that could push us into this territory with the > actual page size limitation? Yes, see above. We have always supported 64k block sizes on Linux ever since ia64 supported 64k page sizes (i.e. for at least 10 years), so we can't now say "we only support 4k block sizes".... > I suppose if we have >4k page sized arches that utilize block sizes > outside of the 256b-4k range, that's enough to justify the existence of > the range in the general sense. I just might have to factor this area of > code a bit differently. It would also be nice if there was a means to > test. Grab a ppc64 box from the RH QE guys or ask them to test it.... Cheers, Dave. -- Dave Chinner david@fromorbit.com From david@fromorbit.com Mon Jul 28 19:11:27 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: xfs@oss.sgi.com Delivered-To: xfs@oss.sgi.com Received: from relay.sgi.com (relay1.corp.sgi.com [137.38.102.111]) by oss.sgi.com (Postfix) with ESMTP id C4CF77F51 for ; Mon, 28 Jul 2014 19:11:27 -0500 (CDT) Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by relay1.corp.sgi.com (Postfix) with ESMTP id ACBBF8F804C for ; Mon, 28 Jul 2014 17:11:24 -0700 (PDT) X-ASG-Debug-ID: 1406592681-04cbb07ea608e80001-NocioJ Received: from ipmail06.adl6.internode.on.net (ipmail06.adl6.internode.on.net [150.101.137.145]) by cuda.sgi.com with ESMTP id bd7bEwCCZTtO5R3H for ; Mon, 28 Jul 2014 17:11:22 -0700 (PDT) X-Barracuda-Envelope-From: david@fromorbit.com X-Barracuda-Apparent-Source-IP: 150.101.137.145 X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: AhkKAOvl1lN5LHOdPGdsb2JhbABZgw6BKYInhQipCAEBAQEBAQajGQGBFBcFAQEBATg2hAMBAQQBJxMcIwULCAMOCgklDwUlAwcaE4g6B75mFxiFZIYxgx8HhEoFm0uWUIFYKy8 Received: from ppp121-44-115-157.lns20.syd6.internode.on.net (HELO dastard) ([121.44.115.157]) by ipmail06.adl6.internode.on.net with ESMTP; 29 Jul 2014 09:37:35 +0930 Received: from dave by dastard with local (Exim 4.80) (envelope-from ) id 1XBux3-00065S-Sv; Tue, 29 Jul 2014 10:07:33 +1000 Date: Tue, 29 Jul 2014 10:07:33 +1000 From: Dave Chinner To: Brian Foster Cc: xfs@oss.sgi.com Subject: Re: [PATCH 08/18] xfs: create helper to manage record overlap for sparse inode chunks Message-ID: <20140729000733.GG26465@dastard> X-ASG-Orig-Subj: Re: [PATCH 08/18] xfs: create helper to manage record overlap for sparse inode chunks References: <1406211788-63206-1-git-send-email-bfoster@redhat.com> <1406211788-63206-9-git-send-email-bfoster@redhat.com> <20140724224112.GR20518@dastard> <20140728161925.GD59542@bfoster.bfoster> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20140728161925.GD59542@bfoster.bfoster> User-Agent: Mutt/1.5.21 (2010-09-15) X-Barracuda-Connect: ipmail06.adl6.internode.on.net[150.101.137.145] X-Barracuda-Start-Time: 1406592681 X-Barracuda-URL: http://192.48.176.25:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 X-Barracuda-Spam-Score: 0.00 X-Barracuda-Spam-Status: No, SCORE=0.00 using per-user scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.7 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.7907 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- On Mon, Jul 28, 2014 at 12:19:25PM -0400, Brian Foster wrote: > On Fri, Jul 25, 2014 at 08:41:12AM +1000, Dave Chinner wrote: > > On Thu, Jul 24, 2014 at 10:22:58AM -0400, Brian Foster wrote: > > > + struct xfs_btree_cur *cur; > > > + struct xfs_agi *agi = XFS_BUF_TO_AGI(agbp); > > > + xfs_agnumber_t agno = be32_to_cpu(agi->agi_seqno); > > > + xfs_agino_t previno; > > > + int error; > > > + int i; > > > + struct xfs_inobt_rec_incore rec; > > > + > > > + orec->ir_startino = NULLAGINO; > > > + > > > + cur = xfs_inobt_init_cursor(mp, tp, agbp, agno, btnum); > > > + > > > + previno = newino + count - XFS_INODES_PER_CHUNK; > > > + error = xfs_inobt_lookup(cur, previno, XFS_LOOKUP_GE, &i); > > > > You want XFS_LOOKUP_EQ, yes? i.e. XFS_LOOKUP_GE won't fail if the > > exact record for the inode chunk does not exist - it will return the > > next one in the btree. > > > > Assuming variable sparse chunk granularity, Isn't the granularity fixed for the specific filesystem configuration as part of the on-disk format? > I don't really know the > start ino of the record that potentially covers the new inode chunk. > Given that, we use the smallest possible start ino that could include > this chunk and search forward from there. As you've noted below, I > wasn't relying on failure here to detect the scenario where there is no > existing record. Ok, that's not how I thought the code was attempting to implement the "has record" check. My mistake - a comment explaining how the match is supposed to work would be helpful, I think. However, with that in mind, why do you even bother calculating at "previno"? If you want the chunk that the "newino" lies in, then by definition it's going to be the first record at an equal or lower start inode number than newino. i.e.: xfs_inobt_lookup(cur, newino, XFS_LOOKUP_LE, &i); Will return either: - a match with startino <= newino < startino + XFS_INODES_PER_CHUNK - a match with startino + XFS_INODES_PER_CHUNK <= newino - a failure due to no record. i.e. the first case is the chunk record we want, the others are "does not exist" failures. We don't need to calculate the "previno" at all. Cheers, Dave. -- Dave Chinner david@fromorbit.com From david@fromorbit.com Mon Jul 28 19:30:46 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: xfs@oss.sgi.com Delivered-To: xfs@oss.sgi.com Received: from relay.sgi.com (relay3.corp.sgi.com [198.149.34.15]) by oss.sgi.com (Postfix) with ESMTP id CFD8C7F56 for ; Mon, 28 Jul 2014 19:30:45 -0500 (CDT) Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by relay3.corp.sgi.com (Postfix) with ESMTP id 65BCBAC005 for ; Mon, 28 Jul 2014 17:30:42 -0700 (PDT) X-ASG-Debug-ID: 1406593836-04bdf016a4098f0001-NocioJ Received: from ipmail06.adl6.internode.on.net (ipmail06.adl6.internode.on.net [150.101.137.145]) by cuda.sgi.com with ESMTP id y1koT6PrPAdQGKig for ; Mon, 28 Jul 2014 17:30:37 -0700 (PDT) X-Barracuda-Envelope-From: david@fromorbit.com X-Barracuda-Apparent-Source-IP: 150.101.137.145 X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: AmgJAJrq1lN5LHOdPGdsb2JhbAA/GoMOUleCJ4sZomsMAQEBAQEBBptQh0kBgRQXBQEBAQE4NoQEAQU6HCMQCAMOCgklDwUlAwcaExuIJg42vjkYhWSIeFgHhEoFm0uYKCsvAQGBAQ Received: from ppp121-44-115-157.lns20.syd6.internode.on.net (HELO dastard) ([121.44.115.157]) by ipmail06.adl6.internode.on.net with ESMTP; 29 Jul 2014 09:56:52 +0930 Received: from dave by dastard with local (Exim 4.80) (envelope-from ) id 1XBvFi-00067v-Cm; Tue, 29 Jul 2014 10:26:50 +1000 Date: Tue, 29 Jul 2014 10:26:50 +1000 From: Dave Chinner To: Brian Foster Cc: xfs@oss.sgi.com Subject: Re: [PATCH RFC 00/18] xfs: sparse inode chunks Message-ID: <20140729002650.GH26465@dastard> X-ASG-Orig-Subj: Re: [PATCH RFC 00/18] xfs: sparse inode chunks References: <1406211788-63206-1-git-send-email-bfoster@redhat.com> <20140724223211.GQ20518@dastard> <20140725163056.GA3350@laptop.bfoster> <20140726000335.GE20518@dastard> <20140728121400.GB53501@bfoster.bfoster> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20140728121400.GB53501@bfoster.bfoster> User-Agent: Mutt/1.5.21 (2010-09-15) X-Barracuda-Connect: ipmail06.adl6.internode.on.net[150.101.137.145] X-Barracuda-Start-Time: 1406593836 X-Barracuda-URL: http://192.48.157.11:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 X-Barracuda-Spam-Score: 0.10 X-Barracuda-Spam-Status: No, SCORE=0.10 using per-user scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.7 tests=BSF_SC0_SA085 X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.7909 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.10 BSF_SC0_SA085 Custom Rule SA085 On Mon, Jul 28, 2014 at 08:14:01AM -0400, Brian Foster wrote: > On Sat, Jul 26, 2014 at 10:03:35AM +1000, Dave Chinner wrote: > > On Fri, Jul 25, 2014 at 12:30:57PM -0400, Brian Foster wrote: > > > Hmm, I suppose that does create a new and interesting dynamic with > > > regard to the feature bit (non-deterministic backwards compatibility). > > > One could certainly value backwards compatibility over this particular > > > feature, and there is currently no way to control it. I'll look into > > > doing something with xfs_admin. In fact, I was thinking of adding > > > something to tune the cluster size bit to get around the v5 scaling > > > issue anyways. > > > > What v5 scalability issue is that? I don't recall any outstanding > > issues with inode cluster IO.... > > > > There's no scalability issue... I'm just referring to the fact that we > scale the cluster size by the inode size increase factor on v5 > superblocks. > > E.g., my free space fragmentation xfstests test started out with a fixed > file size based on something close to the worst case with an > implementation that used the allocation granularity of max( granularity>, ). Once I tied the implementation to the > cluster size due to the aforementioned complexities, it became apparent > the test was less effective with my chosen file size on v5 supers, > particularly as the inode size increased. So from there I was > considering a similar xfs_admin command a user could run to reduce the > cluster size as a backstop should this limitation arise in the real > world. We can start with doing something just to enable the feature as > outlined above and revisit this then... Right, but I'd suggest that the better long term solution to avoid the limitations of inode cluster buffer alignment issues is to get rid of inode clusters and inode buffers altogether. We only need inode buffers for logging unlinked list modifications, so once we log those as part of the inode core for for v5 filesystems then we can do much more dynamic inode IO. That then frees us up to do fine grained sparse inode allocation because we aren't limited by in-memory buffering limitations. http://xfs.org/index.php/Improving_inode_Caching#Food_For_Thought_.28Crazy_Ideas.29 Cheers, Dave. -- Dave Chinner david@fromorbit.com From frank_1005@msn.com Tue Jul 29 03:53:18 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.3 required=5.0 tests=FREEMAIL_ENVFROM_END_DIGIT, FREEMAIL_FROM,HTML_MESSAGE autolearn=no version=3.3.1 X-Original-To: xfs@oss.sgi.com Delivered-To: xfs@oss.sgi.com Received: from relay.sgi.com (relay3.corp.sgi.com [198.149.34.15]) by oss.sgi.com (Postfix) with ESMTP id 9B25F7F37 for ; Tue, 29 Jul 2014 03:53:18 -0500 (CDT) Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by relay3.corp.sgi.com (Postfix) with ESMTP id 1B92CAC002 for ; Tue, 29 Jul 2014 01:53:14 -0700 (PDT) X-ASG-Debug-ID: 1406623989-04cbb07ea41b150001-NocioJ Received: from DUB004-OMC4S7.hotmail.com (dub004-omc4s7.hotmail.com [157.55.2.82]) by cuda.sgi.com with ESMTP id 1ZJn1MC6EZApdS4K (version=TLSv1 cipher=AES128-SHA bits=128 verify=NO) for ; Tue, 29 Jul 2014 01:53:10 -0700 (PDT) X-Barracuda-Envelope-From: frank_1005@msn.com X-Barracuda-Apparent-Source-IP: 157.55.2.82 Received: from DUB129-W7 ([157.55.2.71]) by DUB004-OMC4S7.hotmail.com with Microsoft SMTPSVC(7.5.7601.22701); Tue, 29 Jul 2014 01:53:09 -0700 X-TMN: [qjmGZo5jmIi5CWUSpYpBiWFhow8Frmsk] X-Originating-Email: [frank_1005@msn.com] Message-ID: Content-Type: multipart/alternative; boundary="_9cc6956f-f6c3-4c31-94ca-98ec519df573_" From: "Frank ." To: "xfs@oss.sgi.com" Subject: Delaylog information enquiry Date: Tue, 29 Jul 2014 10:53:09 +0200 X-ASG-Orig-Subj: Delaylog information enquiry Importance: Normal MIME-Version: 1.0 X-OriginalArrivalTime: 29 Jul 2014 08:53:09.0144 (UTC) FILETIME=[854C8180:01CFAB0A] X-Barracuda-Connect: dub004-omc4s7.hotmail.com[157.55.2.82] X-Barracuda-Start-Time: 1406623990 X-Barracuda-Encrypted: AES128-SHA X-Barracuda-URL: http://192.48.176.25:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 X-Barracuda-Spam-Score: 0.00 X-Barracuda-Spam-Status: No, SCORE=0.00 using per-user scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.7 tests=HTML_MESSAGE X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.7918 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.00 HTML_MESSAGE BODY: HTML included in message --_9cc6956f-f6c3-4c31-94ca-98ec519df573_ Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable Hello.=20 I just wanted to have more information about the delaylog feature.=20 >From what I understood it seems to be a common feature from different FS. I= t's supposed to retain information such as metadata for a time ( how much ?= ). Unfortunately=2C I could not find further information about journaling l= og section in the XFS official documentation.=20 I just figured out that delaylog feature is now included and there is no wa= y to disable it (http://git.kernel.org/cgit/linux/kernel/git/torvalds/linux= .git/tree/Documentation/filesystems/xfs.txt?id=3DHEAD).=20 Whatever the information it could be=2C I understood that this is a tempora= ry memory located in RAM.=20 Recently=2C I had a crash on a server and I had to execute the repair proce= dure which worked fine.=20 But I would like to disable this feature to prevent any temporary data not = to be written do disk. (Write cache is already disabled on both hard drive = and raid controller).=20 Perhaps it's a bad idea disabling it. If so=2C I would like to have your op= inion about where memory corruption could happen.=20 Any help would be much appreciated.=20 Thank you.=20 = --_9cc6956f-f6c3-4c31-94ca-98ec519df573_ Content-Type: text/html; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable
Hello.

I just wanted to = have more information about the delaylog feature.
From what I understoo= d it seems to be a common feature from different FS. It's supposed to retai= n information such as metadata for a time ( how much ?). Unfortunately=2C I= could not find further information about journaling log section in the XFS= official documentation.
I just figured out that delaylog feature is no= w included and there is no way to disable it (http://git.kernel.org/cgit/li= nux/kernel/git/torvalds/linux.git/tree/Documentation/filesystems/xfs.txt?id= =3DHEAD).

Whatever the information it could be=2C I understood that= this is a temporary memory located in RAM.
Recently=2C I had a crash o= n a server and I had to execute the repair procedure which worked fine.
But I would like to disable this feature to prevent any temporary data= not to be written do disk. (Write cache is already disabled on both hard d= rive and raid controller).

Perhaps it's a bad idea disabling it. If= so=2C I would like to have your opinion about where memory corruption coul= d happen.

Any help would be much appreciated.
Thank you.
= --_9cc6956f-f6c3-4c31-94ca-98ec519df573_-- From bfoster@redhat.com Tue Jul 29 07:29:09 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: xfs@oss.sgi.com Delivered-To: xfs@oss.sgi.com Received: from relay.sgi.com (relay2.corp.sgi.com [137.38.102.29]) by oss.sgi.com (Postfix) with ESMTP id 9F3B97F37 for ; Tue, 29 Jul 2014 07:29:09 -0500 (CDT) Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by relay2.corp.sgi.com (Postfix) with ESMTP id 8C7A2304051 for ; Tue, 29 Jul 2014 05:29:06 -0700 (PDT) X-ASG-Debug-ID: 1406636941-04cb6c5e2c1ef90001-NocioJ Received: from mx1.redhat.com (mx1.redhat.com [209.132.183.28]) by cuda.sgi.com with ESMTP id xdLUVeJS2NDxwMtv (version=TLSv1 cipher=AES256-SHA bits=256 verify=NO) for ; Tue, 29 Jul 2014 05:29:02 -0700 (PDT) X-Barracuda-Envelope-From: bfoster@redhat.com X-Barracuda-Apparent-Source-IP: 209.132.183.28 X-ASG-Whitelist: Client Received: from int-mx14.intmail.prod.int.phx2.redhat.com (int-mx14.intmail.prod.int.phx2.redhat.com [10.5.11.27]) by mx1.redhat.com (8.14.4/8.14.4) with ESMTP id s6TCT0iO002882 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 29 Jul 2014 08:29:00 -0400 Received: from bfoster.bfoster ([10.18.41.237]) by int-mx14.intmail.prod.int.phx2.redhat.com (8.14.4/8.14.4) with ESMTP id s6TCT0ZD022173; Tue, 29 Jul 2014 08:29:00 -0400 Received: by bfoster.bfoster (Postfix, from userid 1000) id 281A912005E; Tue, 29 Jul 2014 08:38:16 -0400 (EDT) Date: Tue, 29 Jul 2014 08:38:16 -0400 From: Brian Foster To: "Frank ." Cc: "xfs@oss.sgi.com" Subject: Re: Delaylog information enquiry Message-ID: <20140729123815.GA13120@bfoster.bfoster> X-ASG-Orig-Subj: Re: Delaylog information enquiry References: MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.5.23 (2014-03-12) X-Scanned-By: MIMEDefang 2.68 on 10.5.11.27 X-Barracuda-Connect: mx1.redhat.com[209.132.183.28] X-Barracuda-Start-Time: 1406636942 X-Barracuda-Encrypted: AES256-SHA X-Barracuda-URL: http://192.48.176.15:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 On Tue, Jul 29, 2014 at 10:53:09AM +0200, Frank . wrote: > Hello. > > I just wanted to have more information about the delaylog feature. > From what I understood it seems to be a common feature from different FS. It's supposed to retain information such as metadata for a time ( how much ?). Unfortunately, I could not find further information about journaling log section in the XFS official documentation. > I just figured out that delaylog feature is now included and there is no way to disable it (http://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/tree/Documentation/filesystems/xfs.txt?id=HEAD). > There is a design document for XFS delayed logging co-located with the xfs doc: http://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/tree/Documentation/filesystems/xfs-delayed-logging-design.txt?id=HEAD I'm not an expert on the delayed logging infrastructure so I can't give details, but it's basically a change to aggregate logged items into a list (committed item list - CIL) and "local" areas of memory (log vectors) at transaction commit time rather than logging directly into the log buffers. The benefits and tradeoffs of this are described in the link above. One tradeoff is that more items can be aggregated before a checkpoint occurs, so that naturally means more items are batched in memory and written to the log at a time. This in turn means that in the event of a crash, more logged items are lost than the older, less efficient implementation. This doesn't effect the consistency of the fs, which is the purpose of the log. > Whatever the information it could be, I understood that this is a temporary memory located in RAM. > Recently, I had a crash on a server and I had to execute the repair procedure which worked fine. > A crash should typically only require a log replay and that happens automatically on the next mount. If you experience otherwise, it's a good idea to report that to the list with the data listed here: http://xfs.org/index.php/XFS_FAQ#Q:_What_information_should_I_include_when_reporting_a_problem.3F > But I would like to disable this feature to prevent any temporary data not to be written do disk. (Write cache is already disabled on both hard drive and raid controller). > > Perhaps it's a bad idea disabling it. If so, I would like to have your opinion about where memory corruption could happen. > Delayed logging is not configurable these days. The original implementation was optional via a mount option, but my understanding is that might have been more of a precaution for a new feature than a real tuning option. If you want to ensure consistency of certain operations, those applications should issue fsync() calls as appropriate. You could also look into the 'wsync' mount option (and probably expect a significant performance hit). Brian > Any help would be much appreciated. > Thank you. > > > _______________________________________________ > xfs mailing list > xfs@oss.sgi.com > http://oss.sgi.com/mailman/listinfo/xfs From bfoster@redhat.com Tue Jul 29 09:34:01 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: xfs@oss.sgi.com Delivered-To: xfs@oss.sgi.com Received: from relay.sgi.com (relay2.corp.sgi.com [137.38.102.29]) by oss.sgi.com (Postfix) with ESMTP id 5EE887F37 for ; Tue, 29 Jul 2014 09:34:01 -0500 (CDT) Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by relay2.corp.sgi.com (Postfix) with ESMTP id 8DCD3304039 for ; Tue, 29 Jul 2014 07:33:58 -0700 (PDT) X-ASG-Debug-ID: 1406644436-04bdf05e7e00c30001-NocioJ Received: from mx1.redhat.com (mx1.redhat.com [209.132.183.28]) by cuda.sgi.com with ESMTP id QS73QLPXYHeTLjCb (version=TLSv1 cipher=AES256-SHA bits=256 verify=NO) for ; Tue, 29 Jul 2014 07:33:56 -0700 (PDT) X-Barracuda-Envelope-From: bfoster@redhat.com X-Barracuda-Apparent-Source-IP: 209.132.183.28 X-ASG-Whitelist: Client Received: from int-mx13.intmail.prod.int.phx2.redhat.com (int-mx13.intmail.prod.int.phx2.redhat.com [10.5.11.26]) by mx1.redhat.com (8.14.4/8.14.4) with ESMTP id s6TEXmDb004029 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 29 Jul 2014 10:33:49 -0400 Received: from bfoster.bfoster ([10.18.41.237]) by int-mx13.intmail.prod.int.phx2.redhat.com (8.14.4/8.14.4) with ESMTP id s6TEXmAu008463; Tue, 29 Jul 2014 10:33:48 -0400 Received: by bfoster.bfoster (Postfix, from userid 1000) id 14B4812005E; Tue, 29 Jul 2014 10:43:04 -0400 (EDT) Date: Tue, 29 Jul 2014 10:43:04 -0400 From: Brian Foster To: Dave Chinner Cc: xfs@oss.sgi.com Subject: Re: [PATCH 01/18] xfs: refactor xfs_inobt_insert() to eliminate loop and support variable count Message-ID: <20140729144303.GA17085@bfoster.bfoster> X-ASG-Orig-Subj: Re: [PATCH 01/18] xfs: refactor xfs_inobt_insert() to eliminate loop and support variable count References: <1406211788-63206-1-git-send-email-bfoster@redhat.com> <1406211788-63206-2-git-send-email-bfoster@redhat.com> <20140724221038.GN20518@dastard> <20140728160351.GB59542@bfoster.bfoster> <20140728233219.GF26465@dastard> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20140728233219.GF26465@dastard> User-Agent: Mutt/1.5.23 (2014-03-12) X-Scanned-By: MIMEDefang 2.68 on 10.5.11.26 X-Barracuda-Connect: mx1.redhat.com[209.132.183.28] X-Barracuda-Start-Time: 1406644436 X-Barracuda-Encrypted: AES256-SHA X-Barracuda-URL: http://192.48.157.11:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 On Tue, Jul 29, 2014 at 09:32:19AM +1000, Dave Chinner wrote: > On Mon, Jul 28, 2014 at 12:03:52PM -0400, Brian Foster wrote: > > On Fri, Jul 25, 2014 at 08:10:38AM +1000, Dave Chinner wrote: > > > On Thu, Jul 24, 2014 at 10:22:51AM -0400, Brian Foster wrote: > > > > Inodes are always allocated in chunks of 64 and thus the loop in > > > > xfs_inobt_insert() is unnecessary. > > > > > > I don't believe this is true. The number of inodes allocated at once > > > is: > > > > > > mp->m_ialloc_inos = (int)MAX((__uint16_t)XFS_INODES_PER_CHUNK, > > > sbp->sb_inopblock); > > > > > > > So I'm going on that effectively that the number of inodes per block > > will never be larger than 8 (v5) due to a max block size of 4k. > > The whole world is not x86... ;) > > > > So when the block size is, say, 64k, the number of 512 byte inodes > > > allocated at once is 128. i.e. 2 chunks. Hence xfs_inobt_insert() > > > can be called with a inode could of > 64 and therefore the loop is > > > still necessary... > > > > > > > Playing with mkfs I see that we actually can format >4k bsize > > filesystems and the min and max are set at 512b and 64k. I can't > > actually mount such filesystems due to the page size limitation. > > The whole world is not x86.... ;) > > ia64 and power default to 64k page size, so we have to code > everything to work with 64k block sizes. > Yeah, I was aware there are >4k paged arches. I just wasn't sure which and how they're used. I'll look into these. > > FWIW, > > the default log size params appear to be broken for bsize >= 32k as > > In what way? > # mkfs.xfs -f /dev/test/scratch -bsize=32k log size 320 blocks too small, minimum size is 512 blocks Usage: mkfs.xfs ... This is a 10G lv so I suspect the following code is related: ... } else if (dblocks < GIGABYTES(16, blocklog)) { ... logblocks = MIN(XFS_MIN_LOG_BYTES >> blocklog, min_logblocks * XFS_DFL_LOG_FACTOR); } else { ... E.g., MIN_LOG_BYTES is 10MB and MIN_LOG_BLOCKS is 512 (then multiplied by 5 here). The latter calculation results in 80MB, so we choose the former and the subsequent log size validation fails due to not meeting the minimum block count requirement. It still doesn't make much sense to me why we use the min here. The minimum log ends up being 16MB for 32k block size even if we skip the LOG_FACTOR scaling. > > well, so I wonder if/how often that format tends to occur. > > More often than you think. > Not too surprising. :) FWIW, this is in fact limited to the <16GB fs case. The small size range probably reduces the chances of hitting this (as opposed to block size). > > What's the situation with regard to >PAGE_SIZE block size support? Is > > this something we actually could support today? > > Well, the problem is bufferheads and page cache don't support blocks > large than page size. The metadata side of XFS supports it just fine > through the xfs_buf structures, but the file data side doesn't. > That's one of the things I'm slowly trying to find time to fix (i.e. > kill bufferheads). > Ok. > > Do we know about any > > large page sized arches that could push us into this territory with the > > actual page size limitation? > > Yes, see above. We have always supported 64k block sizes on Linux > ever since ia64 supported 64k page sizes (i.e. for at least 10 > years), so we can't now say "we only support 4k block sizes".... > Indeed, I'd expect to have to support it. I was just looking for more background. > > I suppose if we have >4k page sized arches that utilize block sizes > > outside of the 256b-4k range, that's enough to justify the existence of > > the range in the general sense. I just might have to factor this area of > > code a bit differently. It would also be nice if there was a means to > > test. > > Grab a ppc64 box from the RH QE guys or ask them to test it.... > Will do, thanks. Brian > Cheers, > > Dave. > -- > Dave Chinner > david@fromorbit.com > > _______________________________________________ > xfs mailing list > xfs@oss.sgi.com > http://oss.sgi.com/mailman/listinfo/xfs From bfoster@redhat.com Tue Jul 29 10:01:08 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: xfs@oss.sgi.com Delivered-To: xfs@oss.sgi.com Received: from relay.sgi.com (relay1.corp.sgi.com [137.38.102.111]) by oss.sgi.com (Postfix) with ESMTP id D8D437F37 for ; Tue, 29 Jul 2014 10:01:08 -0500 (CDT) Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by relay1.corp.sgi.com (Postfix) with ESMTP id 2F84F8F8037 for ; Tue, 29 Jul 2014 08:01:06 -0700 (PDT) X-ASG-Debug-ID: 1406646064-04bdf05e7f01f10001-NocioJ Received: from mx1.redhat.com (mx1.redhat.com [209.132.183.28]) by cuda.sgi.com with ESMTP id HwUXu6qFQjiPkAi1 (version=TLSv1 cipher=AES256-SHA bits=256 verify=NO) for ; Tue, 29 Jul 2014 08:01:04 -0700 (PDT) X-Barracuda-Envelope-From: bfoster@redhat.com X-Barracuda-Apparent-Source-IP: 209.132.183.28 X-ASG-Whitelist: Client Received: from int-mx09.intmail.prod.int.phx2.redhat.com (int-mx09.intmail.prod.int.phx2.redhat.com [10.5.11.22]) by mx1.redhat.com (8.14.4/8.14.4) with ESMTP id s6TF13gb006469 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 29 Jul 2014 11:01:03 -0400 Received: from bfoster.bfoster ([10.18.41.237]) by int-mx09.intmail.prod.int.phx2.redhat.com (8.14.4/8.14.4) with ESMTP id s6TF12u4000552; Tue, 29 Jul 2014 11:01:03 -0400 Received: by bfoster.bfoster (Postfix, from userid 1000) id 9A83F12005E; Tue, 29 Jul 2014 11:10:18 -0400 (EDT) Date: Tue, 29 Jul 2014 11:10:18 -0400 From: Brian Foster To: Dave Chinner Cc: xfs@oss.sgi.com Subject: Re: [PATCH 08/18] xfs: create helper to manage record overlap for sparse inode chunks Message-ID: <20140729151018.GB17085@bfoster.bfoster> X-ASG-Orig-Subj: Re: [PATCH 08/18] xfs: create helper to manage record overlap for sparse inode chunks References: <1406211788-63206-1-git-send-email-bfoster@redhat.com> <1406211788-63206-9-git-send-email-bfoster@redhat.com> <20140724224112.GR20518@dastard> <20140728161925.GD59542@bfoster.bfoster> <20140729000733.GG26465@dastard> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20140729000733.GG26465@dastard> User-Agent: Mutt/1.5.23 (2014-03-12) X-Scanned-By: MIMEDefang 2.68 on 10.5.11.22 X-Barracuda-Connect: mx1.redhat.com[209.132.183.28] X-Barracuda-Start-Time: 1406646064 X-Barracuda-Encrypted: AES256-SHA X-Barracuda-URL: http://192.48.157.11:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 On Tue, Jul 29, 2014 at 10:07:33AM +1000, Dave Chinner wrote: > On Mon, Jul 28, 2014 at 12:19:25PM -0400, Brian Foster wrote: > > On Fri, Jul 25, 2014 at 08:41:12AM +1000, Dave Chinner wrote: > > > On Thu, Jul 24, 2014 at 10:22:58AM -0400, Brian Foster wrote: > > > > + struct xfs_btree_cur *cur; > > > > + struct xfs_agi *agi = XFS_BUF_TO_AGI(agbp); > > > > + xfs_agnumber_t agno = be32_to_cpu(agi->agi_seqno); > > > > + xfs_agino_t previno; > > > > + int error; > > > > + int i; > > > > + struct xfs_inobt_rec_incore rec; > > > > + > > > > + orec->ir_startino = NULLAGINO; > > > > + > > > > + cur = xfs_inobt_init_cursor(mp, tp, agbp, agno, btnum); > > > > + > > > > + previno = newino + count - XFS_INODES_PER_CHUNK; > > > > + error = xfs_inobt_lookup(cur, previno, XFS_LOOKUP_GE, &i); > > > > > > You want XFS_LOOKUP_EQ, yes? i.e. XFS_LOOKUP_GE won't fail if the > > > exact record for the inode chunk does not exist - it will return the > > > next one in the btree. > > > > > > > Assuming variable sparse chunk granularity, > > Isn't the granularity fixed for the specific filesystem > configuration as part of the on-disk format? > Sort of, but I'm thinking of that as a limitation of the imap code and such. I'd like to avoid introducing more of such assumptions where possible in the implementation. That's what I meant before about not explicitly encoding it. I wanted to use the cluster size (now the "spinoalignmt") only in the few places that needed the allocation size and let the rest of the code make no assumptions and work against the minimum granularity defined by the on-disk format (i.e., inodes per holemask bit, inodes per record). The only reason I had to base the sparse alloc. granularity on the cluster size is so I don't have to go through and figure out how to fix that inode buffer code as a dependency to get a basic mechanism working. There's also the scenario where if the granularity can end up small enough, I'm not sure we can reliably calculate the starting inode of a record (unless we make changes in the allocation path). TBH, even if we could, I'd rather keep the code flexible and warn/assert/error on the failed assumption with more information. > > I don't really know the > > start ino of the record that potentially covers the new inode chunk. > > Given that, we use the smallest possible start ino that could include > > this chunk and search forward from there. As you've noted below, I > > wasn't relying on failure here to detect the scenario where there is no > > existing record. > > Ok, that's not how I thought the code was attempting to implement > the "has record" check. My mistake - a comment explaining how the > match is supposed to work would be helpful, I think. > Indeed, I'll add a comment with some context. > However, with that in mind, why do you even bother calculating at > "previno"? If you want the chunk that the "newino" lies in, then > by definition it's going to be the first record at an equal or > lower start inode number than newino. i.e.: > > xfs_inobt_lookup(cur, newino, XFS_LOOKUP_LE, &i); > > Will return either: > > - a match with startino <= newino < startino + XFS_INODES_PER_CHUNK > - a match with startino + XFS_INODES_PER_CHUNK <= newino > - a failure due to no record. > > i.e. the first case is the chunk record we want, the others are > "does not exist" failures. We don't need to calculate the "previno" > at all. > Yeah, that might be nicer. I'll try the search in the other direction. Thanks. Brian > Cheers, > > Dave. > -- > Dave Chinner > david@fromorbit.com > > _______________________________________________ > xfs mailing list > xfs@oss.sgi.com > http://oss.sgi.com/mailman/listinfo/xfs From bfoster@redhat.com Tue Jul 29 10:16:32 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: xfs@oss.sgi.com Delivered-To: xfs@oss.sgi.com Received: from relay.sgi.com (relay3.corp.sgi.com [198.149.34.15]) by oss.sgi.com (Postfix) with ESMTP id EB2777F37 for ; Tue, 29 Jul 2014 10:16:31 -0500 (CDT) Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by relay3.corp.sgi.com (Postfix) with ESMTP id CFD6BAC003 for ; Tue, 29 Jul 2014 08:16:31 -0700 (PDT) X-ASG-Debug-ID: 1406646986-04cbb04b7002c20001-NocioJ Received: from mx1.redhat.com (mx1.redhat.com [209.132.183.28]) by cuda.sgi.com with ESMTP id v9jIYdyOvtU0GMmb (version=TLSv1 cipher=AES256-SHA bits=256 verify=NO) for ; Tue, 29 Jul 2014 08:16:27 -0700 (PDT) X-Barracuda-Envelope-From: bfoster@redhat.com X-Barracuda-Apparent-Source-IP: 209.132.183.28 X-ASG-Whitelist: Client Received: from int-mx14.intmail.prod.int.phx2.redhat.com (int-mx14.intmail.prod.int.phx2.redhat.com [10.5.11.27]) by mx1.redhat.com (8.14.4/8.14.4) with ESMTP id s6TFGPO4008493 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 29 Jul 2014 11:16:25 -0400 Received: from bfoster.bfoster ([10.18.41.237]) by int-mx14.intmail.prod.int.phx2.redhat.com (8.14.4/8.14.4) with ESMTP id s6TFGPqm011443; Tue, 29 Jul 2014 11:16:25 -0400 Received: by bfoster.bfoster (Postfix, from userid 1000) id BE30F12005E; Tue, 29 Jul 2014 11:25:40 -0400 (EDT) Date: Tue, 29 Jul 2014 11:25:40 -0400 From: Brian Foster To: Dave Chinner Cc: xfs@oss.sgi.com Subject: Re: [PATCH RFC 00/18] xfs: sparse inode chunks Message-ID: <20140729152540.GC17085@bfoster.bfoster> X-ASG-Orig-Subj: Re: [PATCH RFC 00/18] xfs: sparse inode chunks References: <1406211788-63206-1-git-send-email-bfoster@redhat.com> <20140724223211.GQ20518@dastard> <20140725163056.GA3350@laptop.bfoster> <20140726000335.GE20518@dastard> <20140728121400.GB53501@bfoster.bfoster> <20140729002650.GH26465@dastard> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20140729002650.GH26465@dastard> User-Agent: Mutt/1.5.23 (2014-03-12) X-Scanned-By: MIMEDefang 2.68 on 10.5.11.27 X-Barracuda-Connect: mx1.redhat.com[209.132.183.28] X-Barracuda-Start-Time: 1406646987 X-Barracuda-Encrypted: AES256-SHA X-Barracuda-URL: http://192.48.176.25:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 On Tue, Jul 29, 2014 at 10:26:50AM +1000, Dave Chinner wrote: > On Mon, Jul 28, 2014 at 08:14:01AM -0400, Brian Foster wrote: > > On Sat, Jul 26, 2014 at 10:03:35AM +1000, Dave Chinner wrote: > > > On Fri, Jul 25, 2014 at 12:30:57PM -0400, Brian Foster wrote: > > > > Hmm, I suppose that does create a new and interesting dynamic with > > > > regard to the feature bit (non-deterministic backwards compatibility). > > > > One could certainly value backwards compatibility over this particular > > > > feature, and there is currently no way to control it. I'll look into > > > > doing something with xfs_admin. In fact, I was thinking of adding > > > > something to tune the cluster size bit to get around the v5 scaling > > > > issue anyways. > > > > > > What v5 scalability issue is that? I don't recall any outstanding > > > issues with inode cluster IO.... > > > > > > > There's no scalability issue... I'm just referring to the fact that we > > scale the cluster size by the inode size increase factor on v5 > > superblocks. > > > > E.g., my free space fragmentation xfstests test started out with a fixed > > file size based on something close to the worst case with an > > implementation that used the allocation granularity of max( > granularity>, ). Once I tied the implementation to the > > cluster size due to the aforementioned complexities, it became apparent > > the test was less effective with my chosen file size on v5 supers, > > particularly as the inode size increased. So from there I was > > considering a similar xfs_admin command a user could run to reduce the > > cluster size as a backstop should this limitation arise in the real > > world. We can start with doing something just to enable the feature as > > outlined above and revisit this then... > > Right, but I'd suggest that the better long term solution to avoid > the limitations of inode cluster buffer alignment issues is to get > rid of inode clusters and inode buffers altogether. We only need > inode buffers for logging unlinked list modifications, so once we > log those as part of the inode core for for v5 filesystems then we > can do much more dynamic inode IO. That then frees us up to do fine > grained sparse inode allocation because we aren't limited by > in-memory buffering limitations. > > http://xfs.org/index.php/Improving_inode_Caching#Food_For_Thought_.28Crazy_Ideas.29 > Interesting, thanks. I guess removing the need for the code that's incompatible with the sub-cluster size granularity is a nice option. :) I'll have to read into this some more once the basic sparse inode feature is more hashed out. Brian > Cheers, > > Dave. > -- > Dave Chinner > david@fromorbit.com > > _______________________________________________ > xfs mailing list > xfs@oss.sgi.com > http://oss.sgi.com/mailman/listinfo/xfs From sandeen@redhat.com Tue Jul 29 12:31:49 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: xfs@oss.sgi.com Delivered-To: xfs@oss.sgi.com Received: from relay.sgi.com (relay1.corp.sgi.com [137.38.102.111]) by oss.sgi.com (Postfix) with ESMTP id A9F947F37 for ; Tue, 29 Jul 2014 12:31:49 -0500 (CDT) Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by relay1.corp.sgi.com (Postfix) with ESMTP id 941B38F8068 for ; Tue, 29 Jul 2014 10:31:49 -0700 (PDT) X-ASG-Debug-ID: 1406655105-04cbb04b7208d30001-NocioJ Received: from mx1.redhat.com (mx1.redhat.com [209.132.183.28]) by cuda.sgi.com with ESMTP id nVgbOQSb2flHTx4m (version=TLSv1 cipher=AES256-SHA bits=256 verify=NO) for ; Tue, 29 Jul 2014 10:31:45 -0700 (PDT) X-Barracuda-Envelope-From: sandeen@redhat.com X-Barracuda-Apparent-Source-IP: 209.132.183.28 X-ASG-Whitelist: Client Received: from int-mx14.intmail.prod.int.phx2.redhat.com (int-mx14.intmail.prod.int.phx2.redhat.com [10.5.11.27]) by mx1.redhat.com (8.14.4/8.14.4) with ESMTP id s6THVi6u017826 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK) for ; Tue, 29 Jul 2014 13:31:44 -0400 Received: from Liberator-2.local (ovpn01.gateway.prod.ext.phx2.redhat.com [10.5.9.1]) by int-mx14.intmail.prod.int.phx2.redhat.com (8.14.4/8.14.4) with ESMTP id s6THVhl1024967 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES128-SHA bits=128 verify=NO) for ; Tue, 29 Jul 2014 13:31:44 -0400 Message-ID: <53D7DA7F.2040706@redhat.com> Date: Tue, 29 Jul 2014 12:31:43 -0500 From: Eric Sandeen MIME-Version: 1.0 To: xfs-oss Subject: Is jdm_delete_filehandle part of a public API? X-Enigmail-Version: 1.6 X-ASG-Orig-Subj: Is jdm_delete_filehandle part of a public API? Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit X-Scanned-By: MIMEDefang 2.68 on 10.5.11.27 X-Barracuda-Connect: mx1.redhat.com[209.132.183.28] X-Barracuda-Start-Time: 1406655105 X-Barracuda-Encrypted: AES256-SHA X-Barracuda-URL: http://192.48.176.25:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 I was cleaning up xfsprogs to plug some leaks, and wanted to use jdm_delete_filehandle(). I noticed that it has an "hlen" argument which is unused. Can we remove that, or is this part of a public API? It's not in any manpage (or even called anywhere in xfsprogs/xfstests/xfsdump/dmapi) but it is in a public header... anyone know? If needed I guess I can just call it with hlen==0, but that seems odd. Thanks, -Eric From tinguely@sgi.com Tue Jul 29 13:18:25 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=RP_MATCHES_RCVD autolearn=ham version=3.3.1 X-Original-To: xfs@oss.sgi.com Delivered-To: xfs@oss.sgi.com Received: from relay.sgi.com (relay1.corp.sgi.com [137.38.102.111]) by oss.sgi.com (Postfix) with ESMTP id 54C427F37 for ; Tue, 29 Jul 2014 13:18:25 -0500 (CDT) Received: from eagdhcp-232-188.americas.sgi.com (eagdhcp-232-188.americas.sgi.com [128.162.232.188]) by relay1.corp.sgi.com (Postfix) with ESMTP id 2AB318F8052; Tue, 29 Jul 2014 11:18:21 -0700 (PDT) Message-ID: <53D7E56C.8020103@sgi.com> Date: Tue, 29 Jul 2014 13:18:20 -0500 From: Mark Tinguely User-Agent: Mozilla/5.0 (X11; FreeBSD amd64; rv:9.0) Gecko/20120122 Thunderbird/9.0 MIME-Version: 1.0 To: Eric Sandeen CC: xfs-oss Subject: Re: Is jdm_delete_filehandle part of a public API? References: <53D7DA7F.2040706@redhat.com> In-Reply-To: <53D7DA7F.2040706@redhat.com> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit On 07/29/14 12:31, Eric Sandeen wrote: > I was cleaning up xfsprogs to plug some leaks, and wanted to use > jdm_delete_filehandle(). I noticed that it has an "hlen" argument which > is unused. > > Can we remove that, or is this part of a public API? It's not in any > manpage (or even called anywhere in xfsprogs/xfstests/xfsdump/dmapi) > but it is in a public header... > > anyone know? > > If needed I guess I can just call it with hlen==0, but that seems odd. > > Thanks, > -Eric The first thing that comes to mind is maybe they trying to distinguish between a fshandle or handle. Or they we trying to be consistent with the allocation calls. The libhandle free_handle has the same calling parameters. It also does nothing with the length. That we cannot change without breaking existing code. I will look/ask around. --Mark. From tinguely@sgi.com Tue Jul 29 15:04:07 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=RP_MATCHES_RCVD autolearn=ham version=3.3.1 X-Original-To: xfs@oss.sgi.com Delivered-To: xfs@oss.sgi.com Received: from relay.sgi.com (relay1.corp.sgi.com [137.38.102.111]) by oss.sgi.com (Postfix) with ESMTP id 10EFC7F37 for ; Tue, 29 Jul 2014 15:04:07 -0500 (CDT) Received: from eagdhcp-232-188.americas.sgi.com (eagdhcp-232-188.americas.sgi.com [128.162.232.188]) by relay1.corp.sgi.com (Postfix) with ESMTP id CCD8E8F8068; Tue, 29 Jul 2014 13:04:03 -0700 (PDT) Message-ID: <53D7FE32.3080807@sgi.com> Date: Tue, 29 Jul 2014 15:04:02 -0500 From: Mark Tinguely User-Agent: Mozilla/5.0 (X11; FreeBSD amd64; rv:9.0) Gecko/20120122 Thunderbird/9.0 MIME-Version: 1.0 To: Eric Sandeen CC: xfs-oss Subject: Re: Is jdm_delete_filehandle part of a public API? References: <53D7DA7F.2040706@redhat.com> <53D7E56C.8020103@sgi.com> In-Reply-To: <53D7E56C.8020103@sgi.com> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit On 07/29/14 13:18, Mark Tinguely wrote: > On 07/29/14 12:31, Eric Sandeen wrote: >> I was cleaning up xfsprogs to plug some leaks, and wanted to use >> jdm_delete_filehandle(). I noticed that it has an "hlen" argument which >> is unused. >> >> Can we remove that, or is this part of a public API? It's not in any >> manpage (or even called anywhere in xfsprogs/xfstests/xfsdump/dmapi) >> but it is in a public header... >> >> anyone know? >> >> If needed I guess I can just call it with hlen==0, but that seems odd. >> >> Thanks, >> -Eric > > The first thing that comes to mind is maybe they trying to distinguish > between a fshandle or handle. Or they we trying to be consistent with > the allocation calls. > > The libhandle free_handle has the same calling parameters. It also does > nothing with the length. That we cannot change without breaking existing > code. > > I will look/ask around. > > --Mark. Looks like the code is pretty sloppy with freeing the handles. Best guess is jdm_delete_filehandle() and free_handle are trying to keep the API similar to DMAPI. The DMAPI handle free routine, dm_handle_free(), also has a second length parameter that is not used in the library. The code example that I saw are similar to the use in xfsdump, where the length used in the free comes from the handle creation/conversion routine. Since the xfsprogs do not open handles with calls that provide a length. How about FSHANDLE_SZ and FILEHANDLE_SZ depending on if it is a xfs_fshandle or xfs_handle? --Mark. From sandeen@sandeen.net Tue Jul 29 15:19:01 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: xfs@oss.sgi.com Delivered-To: xfs@oss.sgi.com Received: from relay.sgi.com (relay1.corp.sgi.com [137.38.102.111]) by oss.sgi.com (Postfix) with ESMTP id 6A8FC7F37 for ; Tue, 29 Jul 2014 15:19:01 -0500 (CDT) Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by relay1.corp.sgi.com (Postfix) with ESMTP id 39CFA8F806F for ; Tue, 29 Jul 2014 13:19:01 -0700 (PDT) X-ASG-Debug-ID: 1406665138-04bdf03d4305340001-NocioJ Received: from sandeen.net (sandeen.net [63.231.237.45]) by cuda.sgi.com with ESMTP id otJDNzLiaQXnq0rV for ; Tue, 29 Jul 2014 13:18:58 -0700 (PDT) X-Barracuda-Envelope-From: sandeen@sandeen.net X-Barracuda-Apparent-Source-IP: 63.231.237.45 Received: from Liberator-2.local (unknown [208.123.30.226]) (using TLSv1 with cipher DHE-RSA-AES128-SHA (128/128 bits)) (No client certificate requested) by sandeen.net (Postfix) with ESMTPSA id 26D9063C3CA6; Tue, 29 Jul 2014 15:18:58 -0500 (CDT) Message-ID: <53D801B1.5000300@sandeen.net> Date: Tue, 29 Jul 2014 15:18:57 -0500 From: Eric Sandeen MIME-Version: 1.0 To: Mark Tinguely , Eric Sandeen CC: xfs-oss Subject: Re: Is jdm_delete_filehandle part of a public API? References: <53D7DA7F.2040706@redhat.com> <53D7E56C.8020103@sgi.com> <53D7FE32.3080807@sgi.com> X-ASG-Orig-Subj: Re: Is jdm_delete_filehandle part of a public API? In-Reply-To: <53D7FE32.3080807@sgi.com> X-Enigmail-Version: 1.6 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit X-Barracuda-Connect: sandeen.net[63.231.237.45] X-Barracuda-Start-Time: 1406665138 X-Barracuda-URL: http://192.48.157.11:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 X-Barracuda-Spam-Score: 0.00 X-Barracuda-Spam-Status: No, SCORE=0.00 using per-user scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.7 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.7935 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- On 7/29/14, 3:04 PM, Mark Tinguely wrote: > On 07/29/14 13:18, Mark Tinguely wrote: >> On 07/29/14 12:31, Eric Sandeen wrote: >>> I was cleaning up xfsprogs to plug some leaks, and wanted to use >>> jdm_delete_filehandle(). I noticed that it has an "hlen" argument which >>> is unused. >>> >>> Can we remove that, or is this part of a public API? It's not in any >>> manpage (or even called anywhere in xfsprogs/xfstests/xfsdump/dmapi) >>> but it is in a public header... >>> >>> anyone know? >>> >>> If needed I guess I can just call it with hlen==0, but that seems odd. >>> >>> Thanks, >>> -Eric >> >> The first thing that comes to mind is maybe they trying to distinguish >> between a fshandle or handle. Or they we trying to be consistent with >> the allocation calls. >> >> The libhandle free_handle has the same calling parameters. It also does >> nothing with the length. That we cannot change without breaking existing >> code. >> >> I will look/ask around. >> >> --Mark. > > Looks like the code is pretty sloppy with freeing the handles. yeah, that's what I was going to fix :) > Best guess is jdm_delete_filehandle() and free_handle are trying to > keep the API similar to DMAPI. The DMAPI handle free routine, > dm_handle_free(), also has a second length parameter that is not used > in the library. > > The code example that I saw are similar to the use in xfsdump, where > the length used in the free comes from the handle creation/conversion > routine. yup but I don't think jdm_getfshandle has anything similar does it? > Since the xfsprogs do not open handles with calls that provide a > length. How about FSHANDLE_SZ and FILEHANDLE_SZ depending on if it is > a xfs_fshandle or xfs_handle? *shrug* it's not used anyway - I'm not sure why we'd need to invent a macro to pass in only to have it ignored. Is there any advantage to that? -Eric > > --Mark. > > _______________________________________________ > xfs mailing list > xfs@oss.sgi.com > http://oss.sgi.com/mailman/listinfo/xfs > From tinguely@sgi.com Tue Jul 29 15:54:05 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=RP_MATCHES_RCVD autolearn=ham version=3.3.1 X-Original-To: xfs@oss.sgi.com Delivered-To: xfs@oss.sgi.com Received: from relay.sgi.com (relay1.corp.sgi.com [137.38.102.111]) by oss.sgi.com (Postfix) with ESMTP id 239C97F37 for ; Tue, 29 Jul 2014 15:54:05 -0500 (CDT) Received: from eagdhcp-232-188.americas.sgi.com (eagdhcp-232-188.americas.sgi.com [128.162.232.188]) by relay1.corp.sgi.com (Postfix) with ESMTP id A668B8F8059; Tue, 29 Jul 2014 13:54:04 -0700 (PDT) Message-ID: <53D809EB.80207@sgi.com> Date: Tue, 29 Jul 2014 15:54:03 -0500 From: Mark Tinguely User-Agent: Mozilla/5.0 (X11; FreeBSD amd64; rv:9.0) Gecko/20120122 Thunderbird/9.0 MIME-Version: 1.0 To: Eric Sandeen CC: Eric Sandeen , xfs-oss Subject: Re: Is jdm_delete_filehandle part of a public API? References: <53D7DA7F.2040706@redhat.com> <53D7E56C.8020103@sgi.com> <53D7FE32.3080807@sgi.com> <53D801B1.5000300@sandeen.net> In-Reply-To: <53D801B1.5000300@sandeen.net> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit On 07/29/14 15:18, Eric Sandeen wrote: > On 7/29/14, 3:04 PM, Mark Tinguely wrote: >> On 07/29/14 13:18, Mark Tinguely wrote: >>> On 07/29/14 12:31, Eric Sandeen wrote: >>>> I was cleaning up xfsprogs to plug some leaks, and wanted to use >>>> jdm_delete_filehandle(). I noticed that it has an "hlen" argument which >>>> is unused. >>>> >>>> Can we remove that, or is this part of a public API? It's not in any >>>> manpage (or even called anywhere in xfsprogs/xfstests/xfsdump/dmapi) >>>> but it is in a public header... >>>> >>>> anyone know? >>>> >>>> If needed I guess I can just call it with hlen==0, but that seems odd. >>>> >>>> Thanks, >>>> -Eric >>> >>> The first thing that comes to mind is maybe they trying to distinguish >>> between a fshandle or handle. Or they we trying to be consistent with >>> the allocation calls. >>> >>> The libhandle free_handle has the same calling parameters. It also does >>> nothing with the length. That we cannot change without breaking existing >>> code. >>> >>> I will look/ask around. >>> >>> --Mark. >> >> Looks like the code is pretty sloppy with freeing the handles. > > yeah, that's what I was going to fix :) > >> Best guess is jdm_delete_filehandle() and free_handle are trying to >> keep the API similar to DMAPI. The DMAPI handle free routine, >> dm_handle_free(), also has a second length parameter that is not used >> in the library. >> >> The code example that I saw are similar to the use in xfsdump, where >> the length used in the free comes from the handle creation/conversion >> routine. > > yup but I don't think jdm_getfshandle has anything similar does it? nope. Do you know why there is a jdm and a libhandle libs? > >> Since the xfsprogs do not open handles with calls that provide a >> length. How about FSHANDLE_SZ and FILEHANDLE_SZ depending on if it is >> a xfs_fshandle or xfs_handle? > > *shrug* it's not used anyway - I'm not sure why we'd need to invent a > macro to pass in only to have it ignored. Is there any advantage to that? never mind... handles are opaque and we should not be defining a size. I did the grep and saw that the sizes were defined and thought they were better than nothing. I did not not realize that the defines are are in jdm.c and not a header file. In that case, nothing is better than adding a define for an opaque item. > -Eric --Mark. From dgc@oss.sgi.com Tue Jul 29 18:15:47 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-0.0 required=5.0 tests=NO_RELAYS autolearn=ham version=3.3.1 X-Original-To: xfs@oss.sgi.com Delivered-To: xfs@oss.sgi.com Received: by oss.sgi.com (Postfix, from userid 10266) id 1006B7F50; Tue, 29 Jul 2014 18:15:47 -0500 (CDT) From: xfs@oss.sgi.com To: xfs@oss.sgi.com Subject: [XFS updates] XFS development tree branch, xfs-quota-eofblocks-scan, created. xfs-for-linus-3.16-rc1-13111-gf074051 X-Git-Refname: refs/heads/xfs-quota-eofblocks-scan X-Git-Reftype: branch X-Git-Oldrev: 0000000000000000000000000000000000000000 X-Git-Newrev: f074051ff550f9f1f1a8ab4868277d049a7fd7aa Message-Id: <20140729231547.1006B7F50@oss.sgi.com> Date: Tue, 29 Jul 2014 18:15:46 -0500 (CDT) This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "XFS development tree". The branch, xfs-quota-eofblocks-scan has been created at f074051ff550f9f1f1a8ab4868277d049a7fd7aa (commit) - Log ----------------------------------------------------------------- commit f074051ff550f9f1f1a8ab4868277d049a7fd7aa Author: Brian Foster Date: Thu Jul 24 19:56:08 2014 +1000 xfs: squash prealloc while over quota free space as well From: Brian Foster Commit 4d559a3b introduced heavy prealloc. squashing to catch the case of requesting too large a prealloc on smaller filesystems, leading to repeated flush and retry cycles that occur on ENOSPC. Now that we issue eofblocks scans on EDQUOT/ENOSPC, squash the prealloc against the minimum available free space across all applicable quotas as well to avoid a similar problem of repeated eofblocks scans. Signed-off-by: Brian Foster Reviewed-by: Dave Chinner Signed-off-by: Dave Chinner commit dc06f398f00059707236d456d954a3a9d2a829db Author: Brian Foster Date: Thu Jul 24 19:49:28 2014 +1000 xfs: run an eofblocks scan on ENOSPC/EDQUOT From: Brian Foster Speculative preallocation and and the associated throttling metrics assume we're working with large files on large filesystems. Users have reported inefficiencies in these mechanisms when we happen to be dealing with large files on smaller filesystems. This can occur because while prealloc throttling is aggressive under low free space conditions, it is not active until we reach 5% free space or less. For example, a 40GB filesystem has enough space for several files large enough to have multi-GB preallocations at any given time. If those files are slow growing, they might reserve preallocation for long periods of time as well as avoid the background scanner due to frequent modification. If a new file is written under these conditions, said file has no access to this already reserved space and premature ENOSPC is imminent. To handle this scenario, modify the buffered write ENOSPC handling and retry sequence to invoke an eofblocks scan. In the smaller filesystem scenario, the eofblocks scan resets the usage of preallocation such that when the 5% free space threshold is met, throttling effectively takes over to provide fair and efficient preallocation until legitimate ENOSPC. The eofblocks scan is selective based on the nature of the failure. For example, an EDQUOT failure in a particular quota will use a filtered scan for that quota. Because we don't know which quota might have caused an allocation failure at any given time, we include each applicable quota determined to be under low free space conditions in the scan. Signed-off-by: Brian Foster Reviewed-by: Dave Chinner Signed-off-by: Dave Chinner commit f4526397928fff052f795713748f376a2bba1b5e Author: Brian Foster Date: Thu Jul 24 19:44:28 2014 +1000 xfs: support a union-based filter for eofblocks scans From: Brian Foster The eofblocks scan inode filter uses intersection logic by default. E.g., specifying both user and group quota ids filters out inodes that are not covered by both the specified user and group quotas. This is suitable for behavior exposed to userspace. Scans that are initiated from within the kernel might require more broad semantics, such as scanning all inodes under each quota associated with an inode to alleviate low free space conditions in each. Create the XFS_EOF_FLAGS_UNION flag to support a conditional union-based filtering algorithm for eofblocks scans. This flag is intentionally left out of the valid mask as it is not supported for scans initiated from userspace. Signed-off-by: Brian Foster Reviewed-by: Dave Chinner Signed-off-by: Dave Chinner commit 5400da7dc0862d73523691038c044535f518a57f Author: Brian Foster Date: Thu Jul 24 19:40:22 2014 +1000 xfs: add scan owner field to xfs_eofblocks From: Brian Foster The scan owner field represents an optional inode number that is responsible for the current scan. The purpose is to identify that an inode is under iolock and as such, the iolock shouldn't be attempted when trimming eofblocks. This is an internal only field. Signed-off-by: Brian Foster Reviewed-by: Dave Chinner Signed-off-by: Dave Chinner ----------------------------------------------------------------------- hooks/post-receive -- XFS development tree From dgc@oss.sgi.com Tue Jul 29 18:16:10 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-0.0 required=5.0 tests=NO_RELAYS autolearn=ham version=3.3.1 X-Original-To: xfs@oss.sgi.com Delivered-To: xfs@oss.sgi.com Received: by oss.sgi.com (Postfix, from userid 10266) id 97C907F54; Tue, 29 Jul 2014 18:16:10 -0500 (CDT) From: xfs@oss.sgi.com To: xfs@oss.sgi.com Subject: [XFS updates] XFS development tree branch, xfs-misc-fixes-3.17-1, created. xfs-for-linus-3.16-rc1-13114-gd5cf09b X-Git-Refname: refs/heads/xfs-misc-fixes-3.17-1 X-Git-Reftype: branch X-Git-Oldrev: 0000000000000000000000000000000000000000 X-Git-Newrev: d5cf09baced0ef3d2cc118865079f8b129e98e2f Message-Id: <20140729231610.97C907F54@oss.sgi.com> Date: Tue, 29 Jul 2014 18:16:10 -0500 (CDT) This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "XFS development tree". The branch, xfs-misc-fixes-3.17-1 has been created at d5cf09baced0ef3d2cc118865079f8b129e98e2f (commit) - Log ----------------------------------------------------------------- commit d5cf09baced0ef3d2cc118865079f8b129e98e2f Author: Christoph Hellwig Date: Wed Jul 30 09:12:05 2014 +1000 xfs: require 64-bit sector_t Trying to support tiny disks only and saving a bit memory might have made sense on an SGI O2 15 years ago, but is pretty pointless today. Remove the rarely tested codepath that uses various smaller in-memory types to reduce our test matrix and make the codebase a little bit smaller and less complicated. Signed-off-by: Christoph Hellwig Reviewed-by: Ben Myers Signed-off-by: Dave Chinner commit 74dc93a9087fc71240486d914b4a95f8e510e0e4 Author: Jie Liu Date: Thu Jul 24 21:27:17 2014 +1000 xfs: fix uflags detection at xfs_fs_rm_xquota We are intended to check up uflags against FS_PROJ_QUOTA rather than FS_USER_UQUOTA once more, it looks to me like a typo, but might cause the project quota metadata space can not be removed. Signed-off-by: Jie Liu Reviewed-by: Christoph Hellwig Signed-off-by: Dave Chinner commit 7b409a7d6f4080c37dba18e775d2977942e756fd Author: Jie Liu Date: Thu Jul 24 21:27:16 2014 +1000 xfs: remove XFS_IS_OQUOTA_ON macros Remove the XFS_IS_OQUOTA_ON macros as it is obsoleted. Signed-off-by: Jie Liu Reviewed-by: Christoph Hellwig Signed-off-by: Dave Chinner commit 54aa61f82dc65d72b9c710fbea75c9c31e84399e Author: Eric Sandeen Date: Thu Jul 24 20:53:10 2014 +1000 xfs: tidy up xfs_set_inode32 xfs_set_inode32() caught my eye because it had weird spacing around the "-1's". In cleaning that up, I realized that the assignment in the declaration of "ino" is never used; it's rewritten before it gets read. Drop the ino initializer from its declaration since it's not used, and move the agino initialization into the body of the function, mostly so that we can have pretty whitespace and not exceed 80 columns. :) Signed-off-by: Eric Sandeen Reviewed-by: Brian Foster Signed-off-by: Dave Chinner commit 9de67c3ba9ea961ba420573d56479d09d33a7587 Author: Eric Sandeen Date: Thu Jul 24 20:51:54 2014 +1000 xfs: allow inode allocations in post-growfs disk space Today, if we perform an xfs_growfs which adds allocation groups, mp->m_maxagi is not properly updated when the growfs is complete. Therefore inodes will continue to be allocated only in the AGs which existed prior to the growfs, and the new space won't be utilized. This is because of this path in xfs_growfs_data_private(): xfs_growfs_data_private xfs_initialize_perag(mp, nagcount, &nagimax); if (mp->m_flags & XFS_MOUNT_32BITINODES) index = xfs_set_inode32(mp); else index = xfs_set_inode64(mp); if (maxagi) *maxagi = index; where xfs_set_inode* iterates over the (old) agcount in mp->m_sb.sb_agblocks, which has not yet been updated in the growfs path. So "index" will be returned based on the old agcount, not the new one, and new AGs are not available for inode allocation. Fix this by explicitly passing the proper AG count (which xfs_initialize_perag() already has) down another level, so that xfs_set_inode* can make the proper decision about acceptable AGs for inode allocation in the potentially newly-added AGs. This has been broken since 3.7, when these two xfs_set_inode* functions were added in commit 2d2194f. Prior to that, we looped over "agcount" not sb_agblocks in these calculations. Signed-off-by: Eric Sandeen Reviewed-by: Brian Foster Signed-off-by: Dave Chinner commit eb866bbf095ec68552c0583199208858618498e3 Author: Jie Liu Date: Thu Jul 24 20:49:57 2014 +1000 xfs: mark xfs_qm_quotacheck as static xfs_qm_quotacheck() is not used outside of xfs_qm.c. Mark it static and move it around in the file to avoid a forward declaration. Reviewed-by: Christoph Hellwig Signed-off-by: Jie Liu Signed-off-by: Dave Chinner commit 5c18717ea25fcb87c746deac1bf2ef2ff46e154a Author: Mark Tinguely Date: Thu Jul 24 20:49:40 2014 +1000 xfs: fix cil push sequence after log recovery When the CIL checkpoint is fully written to the log, the LSN of the checkpoint commit record is written into the CIL context structure. This allows log force waiters to correctly detect when the checkpoint they are waiting on have been fully written into the log buffers. However, the initial context after mount is initialised with a non-zero commit LSN, so appears to waiters as though it is complete even though it may not have even been pushed, let alone written to the log buffers. Hence a log force immediately after a filesystem is mounted may not behave correctly, nor does commit record ordering if multiple CIL pushes interleave immediately after mount. To fix this, make sure the initial context commit LSN is not touched until the first checkpointis actually pushed. [dchinner: rewrite commit message] Signed-off-by: Mark Tinguely Reviewed-by: Dave Chinner Signed-off-by: Dave Chinner ----------------------------------------------------------------------- hooks/post-receive -- XFS development tree From dgc@oss.sgi.com Tue Jul 29 18:16:32 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-0.0 required=5.0 tests=NO_RELAYS autolearn=ham version=3.3.1 X-Original-To: xfs@oss.sgi.com Delivered-To: xfs@oss.sgi.com Received: by oss.sgi.com (Postfix, from userid 10266) id 09B097F58; Tue, 29 Jul 2014 18:16:32 -0500 (CDT) From: xfs@oss.sgi.com To: xfs@oss.sgi.com Subject: [XFS updates] XFS development tree branch, for-next, updated. xfs-for-linus-3.16-rc5-26-gc3dd0d1 X-Git-Refname: refs/heads/for-next X-Git-Reftype: branch X-Git-Oldrev: a087481811bed920eb5eedbb5574b915881adbea X-Git-Newrev: c3dd0d14e34aa901af41b1737dd5e78c60e71ef2 Message-Id: <20140729231632.09B097F58@oss.sgi.com> Date: Tue, 29 Jul 2014 18:16:31 -0500 (CDT) This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "XFS development tree". The branch, for-next has been updated c3dd0d1 Merge branch 'xfs-misc-fixes-3.17-1' into for-next 05e7126 Merge branch 'xfs-quota-eofblocks-scan' into for-next d5cf09b xfs: require 64-bit sector_t 74dc93a xfs: fix uflags detection at xfs_fs_rm_xquota 7b409a7 xfs: remove XFS_IS_OQUOTA_ON macros 54aa61f xfs: tidy up xfs_set_inode32 9de67c3 xfs: allow inode allocations in post-growfs disk space eb866bb xfs: mark xfs_qm_quotacheck as static 5c18717 xfs: fix cil push sequence after log recovery f074051 xfs: squash prealloc while over quota free space as well dc06f398 xfs: run an eofblocks scan on ENOSPC/EDQUOT f452639 xfs: support a union-based filter for eofblocks scans 5400da7 xfs: add scan owner field to xfs_eofblocks from a087481811bed920eb5eedbb5574b915881adbea (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log ----------------------------------------------------------------- commit c3dd0d14e34aa901af41b1737dd5e78c60e71ef2 Merge: 05e7126 d5cf09b Author: Dave Chinner Date: Wed Jul 30 09:13:38 2014 +1000 Merge branch 'xfs-misc-fixes-3.17-1' into for-next commit 05e7126eaeca45586282176cdbacf75730182e26 Merge: a087481 f074051 Author: Dave Chinner Date: Wed Jul 30 09:13:16 2014 +1000 Merge branch 'xfs-quota-eofblocks-scan' into for-next ----------------------------------------------------------------------- Summary of changes: fs/xfs/Kconfig | 1 + fs/xfs/libxfs/xfs_bmap.c | 8 +- fs/xfs/libxfs/xfs_bmap_btree.c | 89 +------------------ fs/xfs/libxfs/xfs_btree.c | 32 +++---- fs/xfs/libxfs/xfs_btree.h | 2 +- fs/xfs/libxfs/xfs_da_btree.c | 2 +- fs/xfs/libxfs/xfs_dir2_sf.c | 45 ++-------- fs/xfs/libxfs/xfs_format.h | 14 +-- fs/xfs/libxfs/xfs_inode_fork.c | 4 +- fs/xfs/libxfs/xfs_inum.h | 4 - fs/xfs/libxfs/xfs_log_format.h | 4 +- fs/xfs/libxfs/xfs_quota_defs.h | 2 - fs/xfs/libxfs/xfs_sb.h | 8 +- fs/xfs/xfs_bmap_util.c | 2 +- fs/xfs/xfs_dquot.h | 15 ++++ fs/xfs/xfs_file.c | 23 ++++- fs/xfs/xfs_fs.h | 7 +- fs/xfs/xfs_icache.c | 96 ++++++++++++++++++++- fs/xfs/xfs_icache.h | 3 + fs/xfs/xfs_iomap.c | 20 +++-- fs/xfs/xfs_linux.h | 12 --- fs/xfs/xfs_log_cil.c | 2 - fs/xfs/xfs_mount.c | 10 +-- fs/xfs/xfs_qm.c | 189 ++++++++++++++++++++--------------------- fs/xfs/xfs_qm.h | 1 - fs/xfs/xfs_quotaops.c | 2 +- fs/xfs/xfs_rtalloc.c | 4 +- fs/xfs/xfs_super.c | 34 ++++---- fs/xfs/xfs_super.h | 15 +--- fs/xfs/xfs_types.h | 29 +------ 30 files changed, 314 insertions(+), 365 deletions(-) hooks/post-receive -- XFS development tree From dgc@oss.sgi.com Tue Jul 29 18:21:44 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=-0.0 required=5.0 tests=NO_RELAYS autolearn=ham version=3.3.1 X-Original-To: xfs@oss.sgi.com Delivered-To: xfs@oss.sgi.com Received: by oss.sgi.com (Postfix, from userid 10266) id 144E77F51; Tue, 29 Jul 2014 18:21:44 -0500 (CDT) From: xfs@oss.sgi.com To: xfs@oss.sgi.com Subject: [XFS updates] XFS development tree branch, xfs-bulkstat-refactor-NEEDS-FIXING, created. xfs-for-linus-3.16-rc1-13116-g1e451aa X-Git-Refname: refs/heads/xfs-bulkstat-refactor-NEEDS-FIXING X-Git-Reftype: branch X-Git-Oldrev: 0000000000000000000000000000000000000000 X-Git-Newrev: 1e451aad70915a33111dfcce2c2e1e4582b462a3 Message-Id: <20140729232144.144E77F51@oss.sgi.com> Date: Tue, 29 Jul 2014 18:21:43 -0500 (CDT) This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "XFS development tree". The branch, xfs-bulkstat-refactor-NEEDS-FIXING has been created at 1e451aad70915a33111dfcce2c2e1e4582b462a3 (commit) - Log ----------------------------------------------------------------- commit 1e451aad70915a33111dfcce2c2e1e4582b462a3 Author: Jie Liu Date: Thu Jul 24 18:45:28 2014 +1000 xfs: introduce xfs_bulkstat_ag_ichunk From: Jie Liu Introduce xfs_bulkstat_ag_ichunk() to process inodes in chunk with a pointer to a formatter function that will iget the inode and fill in the appropriate structure. Refactor xfs_bulkstat() with it. Signed-off-by: Jie Liu Reviewed-by: Dave Chinner Signed-off-by: Dave Chinner commit f3d1e587437b784635459dcfccaedd17149282cc Author: Jie Liu Date: Thu Jul 24 18:42:21 2014 +1000 xfs: introduce xfs_bulkstat_grab_ichunk From: Jie Liu Introduce xfs_bulkstat_grab_ichunk() to look up an inode chunk in where the given inode resides, then grab the record. Update the data for the pointed-to record if the inode was not the last in the chunk and there are some left allocated, return the grabbed inode count on success. Refactor xfs_bulkstat() with it. Signed-off-by: Jie Liu Reviewed-by: Dave Chinner Signed-off-by: Dave Chinner commit 4b8fdfecd84528e044a6ca32242de641b203995b Author: Jie Liu Date: Thu Jul 24 18:41:18 2014 +1000 xfs: introduce xfs_bulkstat_ichunk_ra From: Jie Liu Introduce xfs_bulkstat_ichunk_ra() to loop over all clusters in the next inode chunk, then performs readahead if there are any allocated inodes in that cluster. Refactor xfs_bulkstat() with it. Signed-off-by: Jie Liu Reviewed-by: Christoph Hellwig Signed-off-by: Dave Chinner commit d4c27348751bffeb57d87fc631f76716e3036c6d Author: Jie Liu Date: Thu Jul 24 18:40:43 2014 +1000 xfs: fix error handling at xfs_bulkstat From: Jie Liu We should not ignore the btree operation errors at xfs_bulkstat() but to propagate them if any. This patch fix two places in this function and the remaining things will be fixed with code refactoring thereafter. Signed-off-by: Christoph Hellwig Signed-off-by: Jie Liu Reviewed-by: Dave Chinner Signed-off-by: Dave Chinner commit 296dfd7fdba3a8b702d9cb47afc9061f52e18656 Author: Jie Liu Date: Thu Jul 24 18:40:26 2014 +1000 xfs: remove redundant user buffer count checks at xfs_bulkstat From: Jie Liu Remove the redundant user buffer and count checks as it has already been validated at xfs_ioc_bulkstat(). Signed-off-by: Jie Liu Reviewed-by: Dave Chinner Signed-off-by: Dave Chinner commit c7cb51dcb0a38624d42eeabb38502fa54a4d774b Author: Jie Liu Date: Thu Jul 24 12:18:47 2014 +1000 xfs: fix error handling at xfs_inumbers From: Jie Liu To fetch the file system number tables, we currently just ignore the errors and proceed to loop over the next AG or bump agino to the next chunk in case of btree operations failed, that is not properly because those errors might hint us potential file system problems. This patch rework xfs_inumbers() to handle the btree operation errors as well as the loop conditions. Signed-off-by: Jie Liu Reviewed-by: Dave Chinner Signed-off-by: Dave Chinner commit 549fa00679dd14beaaa685486549c637e8e02182 Author: Jie Liu Date: Thu Jul 24 12:11:47 2014 +1000 xfs: consolidate xfs_inumbers From: Jie Liu Consolidate xfs_inumbers() to make the formatter function return correct error and make the source code looks a bit neat. Signed-off-by: Jie Liu Reviewed-by: Dave Chinner Signed-off-by: Dave Chinner commit d716f8eedb143387afd35d337327090b8348159e Author: Christoph Hellwig Date: Thu Jul 24 12:07:15 2014 +1000 xfs: remove xfs_bulkstat_single From: Christoph Hellwig xfs_bukstat_one doesn't have any failure case that would go away when called through xfs_bulkstat, so remove the fallback and the now unessecary xfs_bulkstat_single function. Signed-off-by: Christoph Hellwig Reviewed-by: Jie Liu Signed-off-by: Jie Liu Signed-off-by: Dave Chinner commit 8fe657760d5c8372cd4cf022c4cdb9307a3af995 Author: Jie Liu Date: Thu Jul 24 11:33:28 2014 +1000 xfs: remove redundant stat assignment in xfs_bulkstat_one_int From: Jie Liu Remove the redundant BULKSTAT_RV_NOTHING assignment in case of call xfs_iget() failed at xfs_bulkstat_one_int(). Signed-off-by: Jie Liu Reviewed-by: Christoph Hellwig Signed-off-by: Dave Chinner ----------------------------------------------------------------------- hooks/post-receive -- XFS development tree From david@fromorbit.com Tue Jul 29 18:28:09 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: xfs@oss.sgi.com Delivered-To: xfs@oss.sgi.com Received: from relay.sgi.com (relay2.corp.sgi.com [137.38.102.29]) by oss.sgi.com (Postfix) with ESMTP id 0671A7F60 for ; Tue, 29 Jul 2014 18:28:09 -0500 (CDT) Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by relay2.corp.sgi.com (Postfix) with ESMTP id B8CEC30404E for ; Tue, 29 Jul 2014 16:28:08 -0700 (PDT) X-ASG-Debug-ID: 1406676481-04bdf03d440cae0001-NocioJ Received: from ipmail07.adl2.internode.on.net (ipmail07.adl2.internode.on.net [150.101.137.131]) by cuda.sgi.com with ESMTP id GHjF9uJKTzbIGHpk for ; Tue, 29 Jul 2014 16:28:02 -0700 (PDT) X-Barracuda-Envelope-From: david@fromorbit.com X-Barracuda-Apparent-Source-IP: 150.101.137.131 X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: AsMHABwt2FN5LHOd/2dsb2JhbABagw5SV4InrgABAQEBAQEGm02HSwGBExd3hAQBBScTHCMQCAMYCSUPBSUDIROIQQ6/ThcYhWSHQIFDTQeESgWbTotziFyDWysvAYED Received: from ppp121-44-115-157.lns20.syd6.internode.on.net (HELO dastard) ([121.44.115.157]) by ipmail07.adl2.internode.on.net with ESMTP; 30 Jul 2014 08:58:01 +0930 Received: from dave by dastard with local (Exim 4.80) (envelope-from ) id 1XCGo8-0000vy-B2; Wed, 30 Jul 2014 09:27:48 +1000 Date: Wed, 30 Jul 2014 09:27:48 +1000 From: Dave Chinner To: Jeff Liu Cc: "xfs@oss.sgi.com" Subject: Re: [PATCH v3 00/10] xfs_ioc_bulkstat code refactoring and consolidation Message-ID: <20140729232748.GI26465@dastard> X-ASG-Orig-Subj: Re: [PATCH v3 00/10] xfs_ioc_bulkstat code refactoring and consolidation References: <538D92B6.5050402@oracle.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <538D92B6.5050402@oracle.com> User-Agent: Mutt/1.5.21 (2010-09-15) X-Barracuda-Connect: ipmail07.adl2.internode.on.net[150.101.137.131] X-Barracuda-Start-Time: 1406676482 X-Barracuda-URL: http://192.48.157.11:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 X-Barracuda-Spam-Score: 0.00 X-Barracuda-Spam-Status: No, SCORE=0.00 using per-user scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.7 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.7942 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- On Tue, Jun 03, 2014 at 05:17:42PM +0800, Jeff Liu wrote: > Hi folk, > > This is the revised patches for xfs_ioc_bulkstat consolidation and code > refactoring. As per Christoph's comments, I'm not include the per AG > inumber patch in this series given that I don't actually introduce the > relevant inumbers interface now. Similar to that reason, I also dropped > the per AG bulkstat patch, it would be included in parallel quota check > series. > > > v3->v2: > - one major bug fix is at xfs_bulkstat_ag_ichunk() regarding the user buffer > pointer operations, it should be defined as a pointer-to-pointer since it > would be updated inside xfs_bulkstat_ag_ichunk(). > > - separate xfs_inumber consolidate patch into two patches, the first one > fix the formater function return value and consolidate the codes, another > one does the actual logic changes for better error handling. > > - Add a separate patch to get rid of the redundant user buffer count > checks at xfs_bulkstat() > > - fixed agino calculation issue at xfs_bulkstat_grab_ichunk(). > > v2: http://oss.sgi.com/archives/xfs/2014-04/msg00554.html > v1: http://oss.sgi.com/archives/xfs/2013-12/msg00901.html > > > Any comments are welcome! Hi Jeff, I ported this to the current dev tree based on the xfs-libxfs-restructure branch, and I keep seeing fsstress failing with memory corruption after random bulkstat ioctls. I see regular failures with generic/013, generic/068, xfs/167 and the other fstress tests also randomly fail. The typical failure is glibc detected memory heap corruption on freeing the bulkstat structure after the ioctl: generic/068 42s ...*** Error in `./ltp/fsstress': double free or corruption (!prev): 0x00007f0224000b70 *** ======= Backtrace: ========= /lib/x86_64-linux-gnu/libc.so.6(+0x7aa26)[0x7f022bce3a26] /lib/x86_64-linux-gnu/libc.so.6(+0x7b7a3)[0x7f022bce47a3] ./ltp/fsstress[0x40260e] ./ltp/fsstress[0x402db5] ./ltp/fsstress[0x402359] /lib/x86_64-linux-gnu/libc.so.6(__libc_start_main+0xf5)[0x7f022bc8a995] ./ltp/fsstress[0x402477] ======= Memory map: ======== 00400000-0040c000 r-xp 00000000 08:01 511772 /home/dave/src/xfstests-dev/ltp/fsstress 0060c000-0060d000 rw-p 0000c000 08:01 511772 /home/dave/src/xfstests-dev/ltp/fsstress 0060d000-0062e000 rw-p 00000000 00:00 0 [heap] 7f0224000000-7f0224021000 rw-p 00000000 00:00 0 7f0224021000-7f0228000000 ---p 00000000 00:00 0 7f022ba53000-7f022ba68000 r-xp 00000000 08:01 244777 /lib/x86_64-linux-gnu/libgcc_s.so.1 7f022ba68000-7f022bc68000 ---p 00015000 08:01 244777 /lib/x86_64-linux-gnu/libgcc_s.so.1 7f022bc68000-7f022bc69000 rw-p 00015000 08:01 244777 /lib/x86_64-linux-gnu/libgcc_s.so.1 7f022bc69000-7f022be0b000 r-xp 00000000 08:01 245384 /lib/x86_64-linux-gnu/libc-2.17.so 7f022be0b000-7f022c00b000 ---p 001a2000 08:01 245384 /lib/x86_64-linux-gnu/libc-2.17.so 7f022c00b000-7f022c00f000 r--p 001a2000 08:01 245384 /lib/x86_64-linux-gnu/libc-2.17.so 7f022c00f000-7f022c011000 rw-p 001a6000 08:01 245384 /lib/x86_64-linux-gnu/libc-2.17.so 7f022c011000-7f022c015000 rw-p 00000000 00:00 0 7f022c015000-7f022c02c000 r-xp 00000000 08:01 245380 /lib/x86_64-linux-gnu/libpthread-2.17.so 7f022c02c000-7f022c22b000 ---p 00017000 08:01 245380 /lib/x86_64-linux-gnu/libpthread-2.17.so 7f022c22b000-7f022c22c000 r--p 00016000 08:01 245380 /lib/x86_64-linux-gnu/libpthread-2.17.so 7f022c22c000-7f022c22d000 rw-p 00017000 08:01 245380 /lib/x86_64-linux-gnu/libpthread-2.17.so 7f022c22d000-7f022c231000 rw-p 00000000 00:00 0 7f022c231000-7f022c232000 r-xp 00000000 08:01 325472 /lib/x86_64-linux-gnu/libaio.so.1.0.1 7f022c232000-7f022c431000 ---p 00001000 08:01 325472 /lib/x86_64-linux-gnu/libaio.so.1.0.1 7f022c431000-7f022c432000 r--p 00000000 08:01 325472 /lib/x86_64-linux-gnu/libaio.so.1.0.1 7f022c432000-7f022c433000 rw-p 00001000 08:01 325472 /lib/x86_64-linux-gnu/libaio.so.1.0.1 7f022c433000-7f022c437000 r-xp 00000000 08:01 324661 /lib/x86_64-linux-gnu/libattr.so.1.1.0 7f022c437000-7f022c636000 ---p 00004000 08:01 324661 /lib/x86_64-linux-gnu/libattr.so.1.1.0 7f022c636000-7f022c637000 r--p 00003000 08:01 324661 /lib/x86_64-linux-gnu/libattr.so.1.1.0 7f022c637000-7f022c638000 rw-p 00004000 08:01 324661 /lib/x86_64-linux-gnu/libattr.so.1.1.0 7f022c638000-7f022c659000 r-xp 00000000 08:01 245381 /lib/x86_64-linux-gnu/ld-2.17.so 7f022c844000-7f022c848000 rw-p 00000000 00:00 0 7f022c855000-7f022c856000 rw-p 00000000 00:00 0 7f022c856000-7f022c859000 rw-p 00000000 00:00 0 7f022c859000-7f022c85a000 r--p 00021000 08:01 245381 /lib/x86_64-linux-gnu/ld-2.17.so 7f022c85a000-7f022c85c000 rw-p 00022000 08:01 245381 /lib/x86_64-linux-gnu/ld-2.17.so 7fffd18b7000-7fffd18d8000 rw-p 00000000 00:00 0 [stack] 7fffd19fc000-7fffd19fe000 r-xp 00000000 00:00 0 [vdso] 7fffd19fe000-7fffd1a00000 r--p 00000000 00:00 0 [vvar] ffffffffff600000-ffffffffff601000 r-xp 00000000 00:00 0 [vsyscall] I haven't been able to track down the issue yet, so could you pass an eye over my updated patchset and see if you can spot the mistake I made? The patchset is in the xfs-bulkstat-refactor-NEEDS-FIXING branch in the xfsdev repo which I just pushed. Cheers, Dave. -- Dave Chinner david@fromorbit.com From david@fromorbit.com Tue Jul 29 18:42:18 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: xfs@oss.sgi.com Delivered-To: xfs@oss.sgi.com Received: from relay.sgi.com (relay3.corp.sgi.com [198.149.34.15]) by oss.sgi.com (Postfix) with ESMTP id 188A27F5E for ; Tue, 29 Jul 2014 18:42:18 -0500 (CDT) Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by relay3.corp.sgi.com (Postfix) with ESMTP id 8A0EAAC001 for ; Tue, 29 Jul 2014 16:42:14 -0700 (PDT) X-ASG-Debug-ID: 1406677330-04cbb02d850c600001-NocioJ Received: from ipmail07.adl2.internode.on.net (ipmail07.adl2.internode.on.net [150.101.137.131]) by cuda.sgi.com with ESMTP id NavKZd9xe9DOTzWY for ; Tue, 29 Jul 2014 16:42:11 -0700 (PDT) X-Barracuda-Envelope-From: david@fromorbit.com X-Barracuda-Apparent-Source-IP: 150.101.137.131 X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: AsQHALUw2FN5LHOd/2dsb2JhbABAGoMOUleCJ64AAQEBAQEBBptRh0cBgQ0Xd4QDAQEEATocFQ4FCwgDDgoJJQ8FJQMhE4g6Bw42vzAYhWSJB0kHhEoFjliMdowFiEqDWysvAQEBgQABHwQ Received: from ppp121-44-115-157.lns20.syd6.internode.on.net (HELO dastard) ([121.44.115.157]) by ipmail07.adl2.internode.on.net with ESMTP; 30 Jul 2014 09:12:05 +0930 Received: from dave by dastard with local (Exim 4.80) (envelope-from ) id 1XCH1k-0000yf-12; Wed, 30 Jul 2014 09:41:52 +1000 Date: Wed, 30 Jul 2014 09:41:51 +1000 From: Dave Chinner To: Brian Foster Cc: "Frank ." , "xfs@oss.sgi.com" Subject: Re: Delaylog information enquiry Message-ID: <20140729234151.GJ26465@dastard> X-ASG-Orig-Subj: Re: Delaylog information enquiry References: <20140729123815.GA13120@bfoster.bfoster> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20140729123815.GA13120@bfoster.bfoster> User-Agent: Mutt/1.5.21 (2010-09-15) X-Barracuda-Connect: ipmail07.adl2.internode.on.net[150.101.137.131] X-Barracuda-Start-Time: 1406677330 X-Barracuda-URL: http://192.48.176.25:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 X-Barracuda-Spam-Score: 0.10 X-Barracuda-Spam-Status: No, SCORE=0.10 using per-user scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.7 tests=BSF_SC0_SA085 X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.7942 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.10 BSF_SC0_SA085 Custom Rule SA085 On Tue, Jul 29, 2014 at 08:38:16AM -0400, Brian Foster wrote: > On Tue, Jul 29, 2014 at 10:53:09AM +0200, Frank . wrote: > > Hello. > > > > I just wanted to have more information about the delaylog feature. > > From what I understood it seems to be a common feature from different FS. It's supposed to retain information such as metadata for a time ( how much ?). Unfortunately, I could not find further information about journaling log section in the XFS official documentation. > > I just figured out that delaylog feature is now included and there is no way to disable it (http://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/tree/Documentation/filesystems/xfs.txt?id=HEAD). > > > > There is a design document for XFS delayed logging co-located with the > xfs doc: > > http://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/tree/Documentation/filesystems/xfs-delayed-logging-design.txt?id=HEAD Or, indeed, here: http://oss.sgi.com/cgi-bin/gitweb.cgi?p=xfs/xfs-documentation.git;a=blob;f=design/xfs-delayed-logging-design.asciidoc > I'm not an expert on the delayed logging infrastructure so I can't give > details, but it's basically a change to aggregate logged items into a > list (committed item list - CIL) and "local" areas of memory (log > vectors) at transaction commit time rather than logging directly into > the log buffers. The benefits and tradeoffs of this are described in the > link above. One tradeoff is that more items can be aggregated before a > checkpoint occurs, so that naturally means more items are batched in > memory and written to the log at a time. > > This in turn means that in the event of a crash, more logged items are > lost than the older, less efficient implementation. This doesn't effect > the consistency of the fs, which is the purpose of the log. In a nutshell. Basically, logging in XFS is asynchronous unless directed by the user application, specific operational constraints or mount options to be synchronous. > > Whatever the information it could be, I understood that this is a temporary memory located in RAM. > > Recently, I had a crash on a server and I had to execute the repair procedure which worked fine. > > > > A crash should typically only require a log replay and that happens > automatically on the next mount. If you experience otherwise, it's a > good idea to report that to the list with the data listed here: > > http://xfs.org/index.php/XFS_FAQ#Q:_What_information_should_I_include_when_reporting_a_problem.3F > > > But I would like to disable this feature to prevent any temporary data not to be written do disk. (Write cache is already disabled on both hard drive and raid controller). > > > > Perhaps it's a bad idea disabling it. If so, I would like to have your opinion about where memory corruption could happen. > > > > Delayed logging is not configurable these days. The original > implementation was optional via a mount option, but my understanding is > that might have been more of a precaution for a new feature than a real > tuning option. > > If you want to ensure consistency of certain operations, those > applications should issue fsync() calls as appropriate. You could also > look into the 'wsync' mount option (and probably expect a significant > performance hit). Using the 'wsync' or 'dirsync' mount options effectively cause the majority of transactions to be synchronous - it always has, even before delayed logging was implemented - so that once a user visible namespace operation completes, it is guaranteed to be on stable storage. This is necessary for HA environments so that failover from one server to another doesn't result in files appearing or disappearing on failover... Note that this does not change file data behaviour. In this case you need to add the "sync" mount option, which forces all buffered IO to be synchronous and so will be *very slow*. But if you've already turned off the BBWC on the RAID controller then your storage is already terribly slow and so you probably won't care about making performance even worse... Cheers, Dave. -- Dave Chinner david@fromorbit.com From david@fromorbit.com Tue Jul 29 18:47:11 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: xfs@oss.sgi.com Delivered-To: xfs@oss.sgi.com Received: from relay.sgi.com (relay3.corp.sgi.com [198.149.34.15]) by oss.sgi.com (Postfix) with ESMTP id 9AFD67F61 for ; Tue, 29 Jul 2014 18:47:11 -0500 (CDT) Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by relay3.corp.sgi.com (Postfix) with ESMTP id 28293AC001 for ; Tue, 29 Jul 2014 16:47:11 -0700 (PDT) X-ASG-Debug-ID: 1406677628-04cb6c555c0bbd0001-NocioJ Received: from ipmail07.adl2.internode.on.net (ipmail07.adl2.internode.on.net [150.101.137.131]) by cuda.sgi.com with ESMTP id 0VY6tSBQ3eXT60oI for ; Tue, 29 Jul 2014 16:47:09 -0700 (PDT) X-Barracuda-Envelope-From: david@fromorbit.com X-Barracuda-Apparent-Source-IP: 150.101.137.131 X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: AsAHAAoy2FN5LHOd/2dsb2JhbABagw6BKYInrgABAQEBAQEGoxgBgQ4Xd4QEAQU6HCMQCAMYCSUPBSUDIROIQb9gFxiFZIlQB4RKAQSbTotziFyDWysv Received: from ppp121-44-115-157.lns20.syd6.internode.on.net (HELO dastard) ([121.44.115.157]) by ipmail07.adl2.internode.on.net with ESMTP; 30 Jul 2014 09:17:08 +0930 Received: from dave by dastard with local (Exim 4.80) (envelope-from ) id 1XCH6d-0000zd-NI; Wed, 30 Jul 2014 09:46:55 +1000 Date: Wed, 30 Jul 2014 09:46:55 +1000 From: Dave Chinner To: Eric Sandeen Cc: xfs-oss Subject: Re: Is jdm_delete_filehandle part of a public API? Message-ID: <20140729234655.GK26465@dastard> X-ASG-Orig-Subj: Re: Is jdm_delete_filehandle part of a public API? References: <53D7DA7F.2040706@redhat.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <53D7DA7F.2040706@redhat.com> User-Agent: Mutt/1.5.21 (2010-09-15) X-Barracuda-Connect: ipmail07.adl2.internode.on.net[150.101.137.131] X-Barracuda-Start-Time: 1406677628 X-Barracuda-URL: http://192.48.176.15:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 X-Barracuda-Spam-Score: 0.00 X-Barracuda-Spam-Status: No, SCORE=0.00 using per-user scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.7 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.7942 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- On Tue, Jul 29, 2014 at 12:31:43PM -0500, Eric Sandeen wrote: > I was cleaning up xfsprogs to plug some leaks, and wanted to use > jdm_delete_filehandle(). I noticed that it has an "hlen" argument which > is unused. > > Can we remove that, or is this part of a public API? It's not in any > manpage (or even called anywhere in xfsprogs/xfstests/xfsdump/dmapi) > but it is in a public header... Which means it is part of the published API, regardless of whether it is documented in the man page or not. As it is, we've never really cared about ABI stability for these libraries - I don't think we've ever guaranteed stability in any way. If you want to change it, though, I suspect we'll need to bump the library version.... Cheers, Dave. -- Dave Chinner david@fromorbit.com From sktoo@mu.ac.ke Tue Jul 29 19:07:40 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=HTML_MESSAGE autolearn=ham version=3.3.1 X-Original-To: xfs@oss.sgi.com Delivered-To: xfs@oss.sgi.com Received: from relay.sgi.com (relay3.corp.sgi.com [198.149.34.15]) by oss.sgi.com (Postfix) with ESMTP id EB6A77F6F for ; Tue, 29 Jul 2014 19:07:39 -0500 (CDT) Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by relay3.corp.sgi.com (Postfix) with ESMTP id 5BEFDAC001 for ; Tue, 29 Jul 2014 17:07:36 -0700 (PDT) X-ASG-Debug-ID: 1406678849-04cbb02d860d2c0001-NocioJ Received: from mail.mu.ac.ke (mail.mu.ac.ke [41.89.160.4]) by cuda.sgi.com with ESMTP id xCj9TL3OMiD6gtXP for ; Tue, 29 Jul 2014 17:07:29 -0700 (PDT) X-Barracuda-Envelope-From: sktoo@mu.ac.ke X-Barracuda-Apparent-Source-IP: 41.89.160.4 Received: from localhost (localhost [127.0.0.1]) by mail.mu.ac.ke (Postfix) with ESMTP id 9748B201C8C; Wed, 30 Jul 2014 02:36:57 +0300 (EAT) X-Virus-Scanned: amavisd-new at mu.ac.ke Received: from mail.mu.ac.ke ([127.0.0.1]) by localhost (mail.mu.ac.ke [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id d9tR0HZ42l9t; Wed, 30 Jul 2014 02:36:57 +0300 (EAT) Received: from mail.mu.ac.ke (mail.mu.ac.ke [41.89.160.4]) by mail.mu.ac.ke (Postfix) with ESMTP id DF53E2013CA; Wed, 30 Jul 2014 02:36:48 +0300 (EAT) Date: Wed, 30 Jul 2014 02:36:48 +0300 (EAT) From: "Mrs. Patricia Robert" Reply-To: "Mrs. Patricia Robert" Subject: I need your trust and devotion Message-ID: <93e2c580-07b0-4809-af5b-1d3842ce94bc@mail> X-ASG-Orig-Subj: I need your trust and devotion In-Reply-To: <53441c88-4cbc-46ea-908a-0fdd2ed25015@mail> Content-Type: multipart/mixed; boundary="=_bdc93b47-e7f8-460d-bbc8-a34a2dabd0d7" MIME-Version: 1.0 X-Originating-IP: [192.230.48.178] X-Mailer: Zimbra 7.1.1_GA_3225 (ZimbraWebClient - SAF3 (Win)/7.1.1_GA_3225) To: undisclosed-recipients:; X-Barracuda-Connect: mail.mu.ac.ke[41.89.160.4] X-Barracuda-Start-Time: 1406678849 X-Barracuda-URL: http://192.48.176.25:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 X-Barracuda-Spam-Score: 1.00 X-Barracuda-Spam-Status: No, SCORE=1.00 using per-user scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.7 tests=BSF_SC3_MV0253_2, HTML_MESSAGE X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.7942 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.00 HTML_MESSAGE BODY: HTML included in message 1.00 BSF_SC3_MV0253_2 Custom rule MV0253_2 --=_bdc93b47-e7f8-460d-bbc8-a34a2dabd0d7 Content-Type: multipart/alternative; boundary="=_691dd316-4dfe-43aa-9e72-1f58a61786ce" --=_691dd316-4dfe-43aa-9e72-1f58a61786ce Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit Kindly view the attached file for more details God Bless Mrs. Patricia Robert --=_691dd316-4dfe-43aa-9e72-1f58a61786ce Content-Type: text/html; charset=utf-8 Content-Transfer-Encoding: quoted-printable <= div style=3D'font-family: Times New Roman; font-size: 12pt; color: #000000'= >

p { margin: 0; }



Indeed=2C I turned sync and wsyn= c flags on. As excpected=2C I had terribly low performance (1MB/s for write= operations). So I decided to turn them back off. (I got my 100 MB/s write = throughput back).
I just wanted to reduce as much as possible unnecessa= ry cache between my VM's and my physcal hard drives knowing that there are = up to 8 write cache levels.
I'm getting off the subject a bit but here = is the list. This is only my conclusion. I don't know if I'm right.
- Guest page cache.
- Virtual disk drive write cache. (off KVM cache=3D= directsync)
- Host page cache. (off KVM cache=3Ddirectsync)
- Gluster= FS cache. (off)
- NAS page cache. (?)
- XFS cache (filesystem).
- = RAID controller write cache. (off)
- Physical hard drive write cache. (o= ff)

The main difficulty is that I have to gather information from di= fferent sources (editors / constructors) to get an overview of the cache me= chanisms. I need to make sure our databases will not crash to any failure o= f one of those layers.

If you have any suggestions on where to find = information or who to ask I would be rather grateful.
But at least I ha= d answers about the XFS part.
Thank you very much !

>=3B = Date: Wed=2C 30 Jul 2014 18:18:58 +1000
>=3B From: david@fromorbit.com=
>=3B To: neutrino8@gmail.com
>=3B CC: bfoster@redhat.com=3B fran= k_1005@msn.com=3B xfs@oss.sgi.com
>=3B Subject: Re: Delaylog informati= on enquiry
>=3B
>=3B On Wed=2C Jul 30=2C 2014 at 07:42:32AM +020= 0=2C Grozdan wrote:
>=3B >=3B On Wed=2C Jul 30=2C 2014 at 1:41 AM=2C= Dave Chinner <=3Bdavid@fromorbit.com>=3B wrote:
>=3B >=3B >= =3B Note that this does not change file data behaviour. In this case you>=3B >=3B >=3B need to add the "sync" mount option=2C which forces a= ll buffered IO to
>=3B >=3B >=3B be synchronous and so will be *ve= ry slow*. But if you've already
>=3B >=3B >=3B turned off the BBWC= on the RAID controller then your storage is
>=3B >=3B >=3B alread= y terribly slow and so you probably won't care about making
>=3B >= =3B >=3B performance even worse...
>=3B >=3B
>=3B >=3B Dav= e=2C excuse my ignorant questions
>=3B >=3B
>=3B >=3B I know= the Linux kernel keeps data in cache up to 30 seconds before a
>=3B &= gt=3B kernel daemon flushes it to disk=2C unless
>=3B >=3B the confi= gured dirty ratio (which is 40% of RAM=2C iirc) is reached
>=3B
&g= t=3B 10% of RAM=2C actually.
>=3B
>=3B >=3B before these 30 se= conds so the flush is done before it
>=3B >=3B
>=3B >=3B Wha= t I did is lower these 30 seconds to 5 seconds so every 5 seconds
>=3B= >=3B data is flushed to disk (I've set the dirty_expire_centisecs to 500= ).
>=3B >=3B So=2C are there any drawbacks in doing this?
>=3B =
>=3B Depends on your workload. For a desktop=2C you probably won't no= tice
>=3B anything different. For a machine that creates lots of tempo= rary
>=3B files and then removes them (e.g. build machines) then it co= uld
>=3B crater performance completely because it causes writeback bef= ore the
>=3B files are removed...
>=3B
>=3B >=3B I mean= =2C I don't care *that*
>=3B >=3B much for performance but I do want= my dirty data to be on
>=3B >=3B storage in a reasonable amount of = time. I looked at the various sync
>=3B >=3B mount options but they = all are synchronous so it is my
>=3B >=3B impression they'll be slow= er than giving the kernel 5 seconds to keep
>=3B >=3B data and then = flush it.
>=3B >=3B
>=3B >=3B From XFS perspective=2C I'd li= ke to know if this is not recommended or
>=3B >=3B if it is? I know = that with setting the above to 500 centisecs
>=3B >=3B means that th= ere will be more writes to disk and potentially may
>=3B >=3B result= in tear &=3B wear=2C thus shortening the lifetime of the
>=3B >= =3B storage
>=3B >=3B
>=3B >=3B This is a regular desktop sy= stem with a single Seagate Constellation
>=3B >=3B SATA disk so no R= AID=2C LVM=2C thin provision or anything else
>=3B >=3B
>=3B &= gt=3B What do you think? :)
>=3B
>=3B I don't think it really ma= tters either way. I don't change
>=3B the writeback time on my worksta= tions=2C build machines or test
>=3B machines=2C but I actually *incre= ase* it on my laptops to save power
>=3B by not writing to disk as oft= en. So if you want a little more
>=3B safety=2C then reducing the writ= eback timeout shouldn't have any
>=3B significant affect on performanc= e or wear unless you are doing
>=3B something unusual....
>=3B >=3B Cheers=2C
>=3B
>=3B Dave.
>=3B --
>=3B Dave = Chinner
>=3B david@fromorbit.com
= --_0daa0c9c-fcd5-42c7-a254-2d6034097ab9_-- From fanael4@gmail.com Wed Jul 30 07:30:25 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.3 required=5.0 tests=FREEMAIL_ENVFROM_END_DIGIT, FREEMAIL_FROM,T_DKIM_INVALID autolearn=no version=3.3.1 X-Original-To: xfs@oss.sgi.com Delivered-To: xfs@oss.sgi.com Received: from relay.sgi.com (relay2.corp.sgi.com [137.38.102.29]) by oss.sgi.com (Postfix) with ESMTP id AD2CE7F47 for ; Wed, 30 Jul 2014 07:30:25 -0500 (CDT) Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by relay2.corp.sgi.com (Postfix) with ESMTP id 8C356304051 for ; Wed, 30 Jul 2014 05:30:22 -0700 (PDT) X-ASG-Debug-ID: 1406723411-04bdf03d422d7d0001-NocioJ Received: from mail-qg0-f43.google.com (mail-qg0-f43.google.com [209.85.192.43]) by cuda.sgi.com with ESMTP id 44uzrpkAqL8fZzm1 (version=TLSv1 cipher=RC4-SHA bits=128 verify=NO) for ; Wed, 30 Jul 2014 05:30:12 -0700 (PDT) X-Barracuda-Envelope-From: fanael4@gmail.com X-Barracuda-Apparent-Source-IP: 209.85.192.43 X-Barracuda-IPDD: Level1 [gmail.com/209.85.192.43] Received: by mail-qg0-f43.google.com with SMTP id a108so1287947qge.2 for ; Wed, 30 Jul 2014 05:30:11 -0700 (PDT) X-Barracuda-IPDD: Level1 [gmail.com/209.85.192.43] X-Barracuda-IPDD: Level1 [gmail.com/209.85.192.43] DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :cc:content-type; bh=RrIF/d3gGWzxbFN4ulsuAOPvHqT4rn09H+phC/BXDeM=; b=T42eKVSJYBA6U4EFVoC0TuX7plgm47OMy0uZKA06nven4gHWcEN/ClRg7wAXKRo3MK p30w5DUdkLXiMxYCts/93lapdUOA8Zqf5+U/gzgieRI4GU0wxJZRiZEyJaK7x0s5r4bb qYt/Hez/T2q4/o3nS+Z4VJsqfmoiCu22LPoI+Qitvnhw74ZWstbr6UE9vqwc95dl3sQ/ /PBbjm+oJsniZIc4cZqILEtri6jd8ZBTsbuzkhukc9nfD82q/W5KT+zq4WXrZuavOJVG 8gBp8UiOHcgYhNXPqwmV56r3+PFgQWLmld6WbQPB4dUF8zE/s7YN1tFCImmxYn74NDWL wC8w== MIME-Version: 1.0 X-Received: by 10.140.107.4 with SMTP id g4mr5898694qgf.100.1406723411364; Wed, 30 Jul 2014 05:30:11 -0700 (PDT) Received: by 10.224.183.72 with HTTP; Wed, 30 Jul 2014 05:30:11 -0700 (PDT) In-Reply-To: <1406684929-11133-5-git-send-email-david@fromorbit.com> References: <1406684929-11133-1-git-send-email-david@fromorbit.com> <1406684929-11133-5-git-send-email-david@fromorbit.com> Date: Wed, 30 Jul 2014 14:30:11 +0200 Message-ID: Subject: Re: [PATCH 4/4] xfs: dquot recovery needs verifiers From: Fanael Linithien X-ASG-Orig-Subj: Re: [PATCH 4/4] xfs: dquot recovery needs verifiers To: Dave Chinner Cc: xfs@oss.sgi.com Content-Type: text/plain; charset=UTF-8 X-Barracuda-Connect: mail-qg0-f43.google.com[209.85.192.43] X-Barracuda-Start-Time: 1406723412 X-Barracuda-Encrypted: RC4-SHA X-Barracuda-URL: http://192.48.157.11:80/cgi-mod/mark.cgi X-Barracuda-BRTS-Status: 1 X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-Spam-Score: 0.00 X-Barracuda-Spam-Status: No, SCORE=0.00 using per-user scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.7 tests=DKIM_SIGNED, DKIM_VERIFIED X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.7956 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- -0.00 DKIM_VERIFIED Domain Keys Identified Mail: signature passes verification 0.00 DKIM_SIGNED Domain Keys Identified Mail: message has a signature 2014-07-30 3:48 GMT+02:00 Dave Chinner : > + if (!mp->m_qflags == 0) > + return false; Is it a typo, or is it intentionally obfuscated mp->m_qflags != 0? From joseph.salisbury@canonical.com Wed Jul 30 11:26:45 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: xfs@oss.sgi.com Delivered-To: xfs@oss.sgi.com Received: from relay.sgi.com (relay3.corp.sgi.com [198.149.34.15]) by oss.sgi.com (Postfix) with ESMTP id A30817F51 for ; Wed, 30 Jul 2014 11:26:45 -0500 (CDT) Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by relay3.corp.sgi.com (Postfix) with ESMTP id 2F602AC004 for ; Wed, 30 Jul 2014 09:26:44 -0700 (PDT) X-ASG-Debug-ID: 1406737601-04cbb02d8538200001-NocioJ Received: from youngberry.canonical.com (youngberry.canonical.com [91.189.89.112]) by cuda.sgi.com with ESMTP id vD4zvKKmuNBEW6oL for ; Wed, 30 Jul 2014 09:26:41 -0700 (PDT) X-Barracuda-Envelope-From: joseph.salisbury@canonical.com X-Barracuda-Apparent-Source-IP: 91.189.89.112 Received: from 68-189-243-17.dhcp.oxfr.ma.charter.com ([68.189.243.17] helo=[192.168.1.100]) by youngberry.canonical.com with esmtpsa (TLS1.0:DHE_RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1XCWi6-0001D1-4w; Wed, 30 Jul 2014 16:26:38 +0000 Message-ID: <53D91CBC.1000901@canonical.com> Date: Wed, 30 Jul 2014 12:26:36 -0400 From: Joseph Salisbury User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:24.0) Gecko/20100101 Thunderbird/24.4.0 MIME-Version: 1.0 To: Ben Hutchings CC: david@fromorbit.com, xfs@oss.sgi.com, "stable@vger.kernel.org" , linux-kernel@vger.kernel.org Subject: [PATCH][v3.2.y] xfs: really fix the cursor leak in xfs_alloc_ag_vextent_near Content-Type: text/plain; charset=ISO-8859-1 X-ASG-Orig-Subj: [PATCH][v3.2.y] xfs: really fix the cursor leak in xfs_alloc_ag_vextent_near Content-Transfer-Encoding: 7bit X-Barracuda-Connect: youngberry.canonical.com[91.189.89.112] X-Barracuda-Start-Time: 1406737601 X-Barracuda-URL: http://192.48.176.25:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 X-Barracuda-Spam-Score: 0.00 X-Barracuda-Spam-Status: No, SCORE=0.00 using per-user scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.7 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.7960 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- Hello, Please consider including mainline commit e3a746f5aab71f2dd0a83116772922fb37ae29d6 in the next v3.2.y release. It was included in the mainline tree as of v3.5. It has been tested and confirmed to resolve http://bugs.launchpad.net/bugs/1327360 . commit e3a746f5aab71f2dd0a83116772922fb37ae29d6 Author: Dave Chinner Date: Thu Jul 12 07:40:42 2012 +1000 xfs: really fix the cursor leak in xfs_alloc_ag_vextent_near Sincerely, Joseph Salisbury From bfoster@redhat.com Wed Jul 30 11:29:27 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: xfs@oss.sgi.com Delivered-To: xfs@oss.sgi.com Received: from relay.sgi.com (relay3.corp.sgi.com [198.149.34.15]) by oss.sgi.com (Postfix) with ESMTP id 60EFF7F59 for ; Wed, 30 Jul 2014 11:29:27 -0500 (CDT) Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by relay3.corp.sgi.com (Postfix) with ESMTP id E122FAC005 for ; Wed, 30 Jul 2014 09:29:26 -0700 (PDT) X-ASG-Debug-ID: 1406737764-04cb6c555e37110001-NocioJ Received: from mx1.redhat.com (mx1.redhat.com [209.132.183.28]) by cuda.sgi.com with ESMTP id ShlXPyuXpYuJFdoN (version=TLSv1 cipher=AES256-SHA bits=256 verify=NO) for ; Wed, 30 Jul 2014 09:29:25 -0700 (PDT) X-Barracuda-Envelope-From: bfoster@redhat.com X-Barracuda-Apparent-Source-IP: 209.132.183.28 X-ASG-Whitelist: Client Received: from int-mx09.intmail.prod.int.phx2.redhat.com (int-mx09.intmail.prod.int.phx2.redhat.com [10.5.11.22]) by mx1.redhat.com (8.14.4/8.14.4) with ESMTP id s6UGTGZC008790 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 30 Jul 2014 12:29:17 -0400 Received: from bfoster.bfoster ([10.18.41.237]) by int-mx09.intmail.prod.int.phx2.redhat.com (8.14.4/8.14.4) with ESMTP id s6UGTGjq006378; Wed, 30 Jul 2014 12:29:16 -0400 Received: by bfoster.bfoster (Postfix, from userid 1000) id 0259912577C; Wed, 30 Jul 2014 12:29:14 -0400 (EDT) Date: Wed, 30 Jul 2014 12:29:14 -0400 From: Brian Foster To: Dave Chinner Cc: xfs@oss.sgi.com Subject: Re: [PATCH 1/4 V2] xfs: catch buffers written without verifiers attached Message-ID: <20140730162913.GA2830@bfoster.bfoster> X-ASG-Orig-Subj: Re: [PATCH 1/4 V2] xfs: catch buffers written without verifiers attached References: <1406684929-11133-1-git-send-email-david@fromorbit.com> <1406684929-11133-2-git-send-email-david@fromorbit.com> <20140730023023.GM26465@dastard> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20140730023023.GM26465@dastard> User-Agent: Mutt/1.5.23 (2014-03-12) X-Scanned-By: MIMEDefang 2.68 on 10.5.11.22 X-Barracuda-Connect: mx1.redhat.com[209.132.183.28] X-Barracuda-Start-Time: 1406737765 X-Barracuda-Encrypted: AES256-SHA X-Barracuda-URL: http://192.48.176.15:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 On Wed, Jul 30, 2014 at 12:30:24PM +1000, Dave Chinner wrote: > From: Dave Chinner > > We recently had a bug where buffers were slipping through log > recovery without any verifier attached to them. This was resulting > in on-disk CRC mismatches for valid data. Add some warning code to > catch this occurrence so that we catch such bugs during development > rather than not being aware they exist. > > Note that we cannot do this verification unconditionally as non-CRC > filesystems don't always attach verifiers to the buffers being > written. e.g. during log recovery we cannot identify all the > different types of buffers correctly on non-CRC filesystems, so we > can't attach the correct verifiers in all cases and so we don't > attach any. Hence we don't want on non-CRC filesystems to avoid > spamming the logs with false indications. > > Signed-off-by: Dave Chinner > --- > fs/xfs/xfs_buf.c | 15 +++++++++++++++ > fs/xfs/xfs_log.c | 7 ++++++- > 2 files changed, 21 insertions(+), 1 deletion(-) > > diff --git a/fs/xfs/xfs_buf.c b/fs/xfs/xfs_buf.c > index a6dc83e..078b8be 100644 > --- a/fs/xfs/xfs_buf.c > +++ b/fs/xfs/xfs_buf.c > @@ -1330,6 +1330,21 @@ _xfs_buf_ioapply( > SHUTDOWN_CORRUPT_INCORE); > return; > } > + } else if (bp->b_bn != -1LL) { > + struct xfs_mount *mp = bp->b_target->bt_mount; > + > + /* > + * non-crc filesystems don't attach verifiers during > + * log recovery, so don't warn for such filesystems. > + */ > + if (xfs_sb_version_hascrc(&mp->m_sb)) { > + xfs_warn(mp, > + "%s: no ops on block 0x%llx/0x%llx", > + __func__, bp->b_bn, > + bp->b_maps[0].bm_bn); Are you intending to print both block number values here or the b_bn/bm_len combo? > + xfs_hex_dump(bp->b_addr, 64); > + dump_stack(); > + } > } > } else if (bp->b_flags & XBF_READ_AHEAD) { > rw = READA; > diff --git a/fs/xfs/xfs_log.c b/fs/xfs/xfs_log.c > index 149a4a5..9dc92b3 100644 > --- a/fs/xfs/xfs_log.c > +++ b/fs/xfs/xfs_log.c > @@ -1378,8 +1378,13 @@ xlog_alloc_log( > > xlog_get_iclog_buffer_size(mp, log); > > + /* > + * Use a block number of -1 for the extra log buffer used during splits > + * so that it will trigger errors if we ever try to do IO on it without > + * first having set it up properly. > + */ > error = -ENOMEM; > - bp = xfs_buf_alloc(mp->m_logdev_targp, 0, BTOBB(log->l_iclog_size), 0); > + bp = xfs_buf_alloc(mp->m_logdev_targp, -1LL, BTOBB(log->l_iclog_size), 0); How about XFS_BUF_DADDR_NULL (here and above)? Brian > if (!bp) > goto out_free_log; > > > _______________________________________________ > xfs mailing list > xfs@oss.sgi.com > http://oss.sgi.com/mailman/listinfo/xfs From bfoster@redhat.com Wed Jul 30 11:30:11 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: xfs@oss.sgi.com Delivered-To: xfs@oss.sgi.com Received: from relay.sgi.com (relay1.corp.sgi.com [137.38.102.111]) by oss.sgi.com (Postfix) with ESMTP id 45A857F59 for ; Wed, 30 Jul 2014 11:30:11 -0500 (CDT) Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by relay1.corp.sgi.com (Postfix) with ESMTP id 257AC8F806F for ; Wed, 30 Jul 2014 09:30:08 -0700 (PDT) X-ASG-Debug-ID: 1406737806-04cbb02d8438430001-NocioJ Received: from mx1.redhat.com (mx1.redhat.com [209.132.183.28]) by cuda.sgi.com with ESMTP id 0N0bTrQIBHHvXMll (version=TLSv1 cipher=AES256-SHA bits=256 verify=NO) for ; Wed, 30 Jul 2014 09:30:07 -0700 (PDT) X-Barracuda-Envelope-From: bfoster@redhat.com X-Barracuda-Apparent-Source-IP: 209.132.183.28 X-ASG-Whitelist: Client Received: from int-mx10.intmail.prod.int.phx2.redhat.com (int-mx10.intmail.prod.int.phx2.redhat.com [10.5.11.23]) by mx1.redhat.com (8.14.4/8.14.4) with ESMTP id s6UGU5Tb013056 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 30 Jul 2014 12:30:05 -0400 Received: from bfoster.bfoster ([10.18.41.237]) by int-mx10.intmail.prod.int.phx2.redhat.com (8.14.4/8.14.4) with ESMTP id s6UGU4YI014636; Wed, 30 Jul 2014 12:30:04 -0400 Received: by bfoster.bfoster (Postfix, from userid 1000) id 5E80812577C; Wed, 30 Jul 2014 12:30:03 -0400 (EDT) Date: Wed, 30 Jul 2014 12:30:03 -0400 From: Brian Foster To: Dave Chinner Cc: xfs@oss.sgi.com Subject: Re: [PATCH 2/4] xfs: ensure verifiers are attached to recovered buffers Message-ID: <20140730163002.GB2830@bfoster.bfoster> X-ASG-Orig-Subj: Re: [PATCH 2/4] xfs: ensure verifiers are attached to recovered buffers References: <1406684929-11133-1-git-send-email-david@fromorbit.com> <1406684929-11133-3-git-send-email-david@fromorbit.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1406684929-11133-3-git-send-email-david@fromorbit.com> User-Agent: Mutt/1.5.23 (2014-03-12) X-Scanned-By: MIMEDefang 2.68 on 10.5.11.23 X-Barracuda-Connect: mx1.redhat.com[209.132.183.28] X-Barracuda-Start-Time: 1406737807 X-Barracuda-Encrypted: AES256-SHA X-Barracuda-URL: http://192.48.176.25:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 On Wed, Jul 30, 2014 at 11:48:47AM +1000, Dave Chinner wrote: > From: Dave Chinner > > Crash testing of CRC enabled filesystems has resulted in a number of > reports of bad CRCs being detected after the filesystem was mounted. > Errors such as the following were being seen: > > XFS (sdb3): Mounting V5 Filesystem > XFS (sdb3): Starting recovery (logdev: internal) > XFS (sdb3): Metadata CRC error detected at xfs_agf_read_verify+0x5a/0x100 [xfs], block 0x1 > XFS (sdb3): Unmount and run xfs_repair > XFS (sdb3): First 64 bytes of corrupted metadata buffer: > ffff880136ffd600: 58 41 47 46 00 00 00 01 00 00 00 00 00 0f aa 40 XAGF...........@ > ffff880136ffd610: 00 02 6d 53 00 02 77 f8 00 00 00 00 00 00 00 01 ..mS..w......... > ffff880136ffd620: 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 03 ................ > ffff880136ffd630: 00 00 00 04 00 08 81 d0 00 08 81 a7 00 00 00 00 ................ > XFS (sdb3): metadata I/O error: block 0x1 ("xfs_trans_read_buf_map") error 74 numblks 1 > > The errors were typically being seen in AGF, AGI and their related > btree block buffers some time after log recovery had run. Often it > wasn't until later subsequent mounts that the problem was > discovered. The common symptom was a buffer with the correct > contents, but a CRC and an LSN that matched an older version of the > contents. > > Some debug added to _xfs_buf_ioapply() indicated that buffers were > being written without verifiers attached to them from log recovery, > and Jan Kara isolated the cause to log recovery readahead an dit's > interactions with buffers that had a more recent LSN on disk than > the transaction being recovered. In this case, the buffer did not > get a verifier attached, and os when the second phase of log > recovery ran and recovered EFIs and unlinked inodes, the buffers > were modified and written without the verifier running. Hence they > had up to date contents, but stale LSNs and CRCs. > > Fix it by attaching verifiers to buffers we skip due to future LSN > values so they don't escape into the buffer cache without the > correct verifier attached. > > This patch is based on analysis and a patch from Jan Kara. > > cc: > Reported-by: Jan Kara > Reported-by: Fanael Linithien > Reported-by: Grozdan > Signed-off-by: Dave Chinner > --- > fs/xfs/xfs_log_recover.c | 47 +++++++++++++++++++++++++++++++---------------- > 1 file changed, 31 insertions(+), 16 deletions(-) > > diff --git a/fs/xfs/xfs_log_recover.c b/fs/xfs/xfs_log_recover.c > index fbc2362..0a015cc 100644 > --- a/fs/xfs/xfs_log_recover.c > +++ b/fs/xfs/xfs_log_recover.c > @@ -2126,6 +2126,17 @@ xlog_recover_validate_buf_type( > __uint16_t magic16; > __uint16_t magicda; > > + /* > + * We can only do post recovery validation on items on CRC enabled > + * fielsystems as we need to know when the buffer was written to be able > + * to determine if we should have replayed the item. If we replay old > + * metadata over a newer buffer, then it will enter a temporarily > + * inconsistent state resulting in verification failures. Hence for now > + * just avoid the verification stage for non-crc filesystems > + */ > + if (!xfs_sb_version_hascrc(&mp->m_sb)) > + return; > + This function has a couple other similar *_hascrc() checks further down that we should probably kill now. Otherwise, looks Ok... Reviewed-by: Brian Foster > magic32 = be32_to_cpu(*(__be32 *)bp->b_addr); > magic16 = be16_to_cpu(*(__be16*)bp->b_addr); > magicda = be16_to_cpu(info->magic); > @@ -2197,10 +2208,6 @@ xlog_recover_validate_buf_type( > #endif > break; > case XFS_BLFT_DINO_BUF: > - /* > - * we get here with inode allocation buffers, not buffers that > - * track unlinked list changes. > - */ > if (magic16 != XFS_DINODE_MAGIC) { > xfs_warn(mp, "Bad INODE block magic!"); > ASSERT(0); > @@ -2388,16 +2395,7 @@ xlog_recover_do_reg_buffer( > /* Shouldn't be any more regions */ > ASSERT(i == item->ri_total); > > - /* > - * We can only do post recovery validation on items on CRC enabled > - * fielsystems as we need to know when the buffer was written to be able > - * to determine if we should have replayed the item. If we replay old > - * metadata over a newer buffer, then it will enter a temporarily > - * inconsistent state resulting in verification failures. Hence for now > - * just avoid the verification stage for non-crc filesystems > - */ > - if (xfs_sb_version_hascrc(&mp->m_sb)) > - xlog_recover_validate_buf_type(mp, bp, buf_f); > + xlog_recover_validate_buf_type(mp, bp, buf_f); > } > > /* > @@ -2505,12 +2503,29 @@ xlog_recover_buffer_pass2( > } > > /* > - * recover the buffer only if we get an LSN from it and it's less than > + * Recover the buffer only if we get an LSN from it and it's less than > * the lsn of the transaction we are replaying. > + * > + * Note that we have to be extremely careful of readahead here. > + * Readahead does not attach verfiers to the buffers so if we don't > + * actually do any replay after readahead because of the LSN we found > + * in the buffer if more recent than that current transaction then we > + * need to attach the verifier directly. Failure to do so can lead to > + * future recovery actions (e.g. EFI and unlinked list recovery) can > + * operate on the buffers and they won't get the verifier attached. This > + * can lead to blocks on disk having the correct content but a stale > + * CRC. > + * > + * It is safe to assume these clean buffers are currently up to date. > + * If the buffer is dirtied by a later transaction being replayed, then > + * the verifier will be reset to match whatever recover turns that > + * buffer into. > */ > lsn = xlog_recover_get_buf_lsn(mp, bp); > - if (lsn && lsn != -1 && XFS_LSN_CMP(lsn, current_lsn) >= 0) > + if (lsn && lsn != -1 && XFS_LSN_CMP(lsn, current_lsn) >= 0) { > + xlog_recover_validate_buf_type(mp, bp, buf_f); > goto out_release; > + } > > if (buf_f->blf_flags & XFS_BLF_INODE_BUF) { > error = xlog_recover_do_inode_buffer(mp, item, bp, buf_f); > -- > 2.0.0 > > _______________________________________________ > xfs mailing list > xfs@oss.sgi.com > http://oss.sgi.com/mailman/listinfo/xfs From bfoster@redhat.com Wed Jul 30 11:30:21 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: xfs@oss.sgi.com Delivered-To: xfs@oss.sgi.com Received: from relay.sgi.com (relay3.corp.sgi.com [198.149.34.15]) by oss.sgi.com (Postfix) with ESMTP id 005D47F66 for ; Wed, 30 Jul 2014 11:30:20 -0500 (CDT) Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by relay3.corp.sgi.com (Postfix) with ESMTP id 9E1ABAC00A for ; Wed, 30 Jul 2014 09:30:20 -0700 (PDT) X-ASG-Debug-ID: 1406737816-04bdf03d423b5a0001-NocioJ Received: from mx1.redhat.com (mx1.redhat.com [209.132.183.28]) by cuda.sgi.com with ESMTP id yON9XW5O0dEjCYn0 (version=TLSv1 cipher=AES256-SHA bits=256 verify=NO) for ; Wed, 30 Jul 2014 09:30:16 -0700 (PDT) X-Barracuda-Envelope-From: bfoster@redhat.com X-Barracuda-Apparent-Source-IP: 209.132.183.28 X-ASG-Whitelist: Client Received: from int-mx14.intmail.prod.int.phx2.redhat.com (int-mx14.intmail.prod.int.phx2.redhat.com [10.5.11.27]) by mx1.redhat.com (8.14.4/8.14.4) with ESMTP id s6UGUEEM013114 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 30 Jul 2014 12:30:15 -0400 Received: from bfoster.bfoster ([10.18.41.237]) by int-mx14.intmail.prod.int.phx2.redhat.com (8.14.4/8.14.4) with ESMTP id s6UGUEdC007341; Wed, 30 Jul 2014 12:30:14 -0400 Received: by bfoster.bfoster (Postfix, from userid 1000) id DD01C12577C; Wed, 30 Jul 2014 12:30:12 -0400 (EDT) Date: Wed, 30 Jul 2014 12:30:12 -0400 From: Brian Foster To: Dave Chinner Cc: xfs@oss.sgi.com Subject: Re: [PATCH 3/4] xfs: quotacheck leaves dquot buffers without verifiers Message-ID: <20140730163012.GC2830@bfoster.bfoster> X-ASG-Orig-Subj: Re: [PATCH 3/4] xfs: quotacheck leaves dquot buffers without verifiers References: <1406684929-11133-1-git-send-email-david@fromorbit.com> <1406684929-11133-4-git-send-email-david@fromorbit.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1406684929-11133-4-git-send-email-david@fromorbit.com> User-Agent: Mutt/1.5.23 (2014-03-12) X-Scanned-By: MIMEDefang 2.68 on 10.5.11.27 X-Barracuda-Connect: mx1.redhat.com[209.132.183.28] X-Barracuda-Start-Time: 1406737816 X-Barracuda-Encrypted: AES256-SHA X-Barracuda-URL: http://192.48.157.11:80/cgi-mod/mark.cgi X-Barracuda-BRTS-Status: 1 X-Virus-Scanned: by bsmtpd at sgi.com On Wed, Jul 30, 2014 at 11:48:48AM +1000, Dave Chinner wrote: > From: Dave Chinner > > When running xfs/305, I noticed that quotacheck was flushing dquot > buffers that did not have the xfs_dquot_buf_ops verifiers attached: > > XFS (vdb): _xfs_buf_ioapply: no ops on block 0x1dc8/0x1dc8 > ffff880052489000: 44 51 01 04 00 00 65 b8 00 00 00 00 00 00 00 00 DQ....e......... > ffff880052489010: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ > ffff880052489020: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ > ffff880052489030: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ > CPU: 1 PID: 2376 Comm: mount Not tainted 3.16.0-rc2-dgc+ #306 > Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS Bochs 01/01/2011 > ffff88006fe38000 ffff88004a0ffae8 ffffffff81cf1cca 0000000000000001 > ffff88004a0ffb88 ffffffff814d50ca 000010004a0ffc70 0000000000000000 > ffff88006be56dc4 0000000000000021 0000000000001dc8 ffff88007c773d80 > Call Trace: > [] dump_stack+0x45/0x56 > [] _xfs_buf_ioapply+0x3ca/0x3d0 > [] ? wake_up_state+0x20/0x20 > [] ? xfs_bdstrat_cb+0x55/0xb0 > [] xfs_buf_iorequest+0x6b/0xd0 > [] xfs_bdstrat_cb+0x55/0xb0 > [] __xfs_buf_delwri_submit+0x15b/0x220 > [] ? xfs_buf_delwri_submit+0x30/0x90 > [] xfs_buf_delwri_submit+0x30/0x90 > [] xfs_qm_quotacheck+0x17d/0x3c0 > [] xfs_qm_mount_quotas+0x151/0x1e0 > [] xfs_mountfs+0x56c/0x7d0 > [] xfs_fs_fill_super+0x2c2/0x340 > [] mount_bdev+0x194/0x1d0 > [] ? xfs_finish_flags+0x170/0x170 > [] xfs_fs_mount+0x15/0x20 > [] mount_fs+0x39/0x1b0 > [] vfs_kern_mount+0x67/0x120 > [] do_mount+0x23e/0xad0 > [] ? __get_free_pages+0xe/0x50 > [] ? copy_mount_options+0x36/0x150 > [] SyS_mount+0x83/0xc0 > [] tracesys+0xdd/0xe2 > > This was caused by dquot buffer readahead not attaching a verifier > structure to the buffer when readahead was issued, resulting in the > followup read of the buffer finding a valid buffer and so not > attaching new verifiers to the buffer as part of the read. > > Also, when a verifier failure occurs, we then read the buffer > without verifiers. Attach the verifiers manually after this read so > that if the buffer is then written it will be verified that the > corruption has been repaired. > > Further, when flushing a dquot we don't ask for a verifier when > reading in the dquot buffer the dquot belongs to. Most of the time > this isn't an issue because the buffer is still cached, but when it > is not cached it will result in writing the dquot buffer without > having the verfier attached. > > Signed-off-by: Dave Chinner > --- Reviewed-by: Brian Foster > fs/xfs/xfs_dquot.c | 3 ++- > fs/xfs/xfs_qm.c | 8 +++++++- > 2 files changed, 9 insertions(+), 2 deletions(-) > > diff --git a/fs/xfs/xfs_dquot.c b/fs/xfs/xfs_dquot.c > index 8a44a79..63c2de4 100644 > --- a/fs/xfs/xfs_dquot.c > +++ b/fs/xfs/xfs_dquot.c > @@ -974,7 +974,8 @@ xfs_qm_dqflush( > * Get the buffer containing the on-disk dquot > */ > error = xfs_trans_read_buf(mp, NULL, mp->m_ddev_targp, dqp->q_blkno, > - mp->m_quotainfo->qi_dqchunklen, 0, &bp, NULL); > + mp->m_quotainfo->qi_dqchunklen, 0, &bp, > + &xfs_dquot_buf_ops); > if (error) > goto out_unlock; > > diff --git a/fs/xfs/xfs_qm.c b/fs/xfs/xfs_qm.c > index 7e1a80b..1023210 100644 > --- a/fs/xfs/xfs_qm.c > +++ b/fs/xfs/xfs_qm.c > @@ -911,6 +911,12 @@ xfs_qm_dqiter_bufs( > if (error) > break; > > + /* > + * A corrupt buffer might not have a verifier attached, so > + * make sure we have the correct one attached before writeback > + * occurs. > + */ > + bp->b_ops = &xfs_dquot_buf_ops; > xfs_qm_reset_dqcounts(mp, bp, firstid, type); > xfs_buf_delwri_queue(bp, buffer_list); > xfs_buf_relse(bp); > @@ -996,7 +1002,7 @@ xfs_qm_dqiterate( > xfs_buf_readahead(mp->m_ddev_targp, > XFS_FSB_TO_DADDR(mp, rablkno), > mp->m_quotainfo->qi_dqchunklen, > - NULL); > + &xfs_dquot_buf_ops); > rablkno++; > } > } > -- > 2.0.0 > > _______________________________________________ > xfs mailing list > xfs@oss.sgi.com > http://oss.sgi.com/mailman/listinfo/xfs From dsterba@suse.cz Wed Jul 30 12:18:40 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: xfs@oss.sgi.com Delivered-To: xfs@oss.sgi.com Received: from relay.sgi.com (relay3.corp.sgi.com [198.149.34.15]) by oss.sgi.com (Postfix) with ESMTP id ABBB27F66 for ; Wed, 30 Jul 2014 12:18:40 -0500 (CDT) Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by relay3.corp.sgi.com (Postfix) with ESMTP id 2D3DFAC004 for ; Wed, 30 Jul 2014 10:18:37 -0700 (PDT) X-ASG-Debug-ID: 1406740710-04cbb02d843a720001-NocioJ Received: from mx2.suse.de (cantor2.suse.de [195.135.220.15]) by cuda.sgi.com with ESMTP id jgWg5AURtTrXb3CQ (version=TLSv1 cipher=AES256-SHA bits=256 verify=NO) for ; Wed, 30 Jul 2014 10:18:31 -0700 (PDT) X-Barracuda-Envelope-From: dsterba@suse.cz X-Barracuda-Apparent-Source-IP: 195.135.220.15 Received: from relay1.suse.de (charybdis-ext.suse.de [195.135.220.254]) by mx2.suse.de (Postfix) with ESMTP id 741F4ABF3; Wed, 30 Jul 2014 17:18:30 +0000 (UTC) Received: by ds.suse.cz (Postfix, from userid 10065) id 9C355DAB36; Wed, 30 Jul 2014 19:18:29 +0200 (CEST) From: David Sterba To: linux-fsdevel@vger.kernel.org Cc: David Sterba , adilger@dilger.ca, hch@infradead.org, mfasheh@suse.com, viro@zeniv.linux.org.uk, david@fromorbit.com, xfs@oss.sgi.com, linux-nilfs@vger.kernel.org, ocfs2-devel@oss.oracle.com, linux-ext4@vger.kernel.org, linux-btrfs@vger.kernel.org Subject: [PATCH 0/6 v5] fiemap: introduce DATA_COMPRESSED and PHYS_LENGTH flags Date: Wed, 30 Jul 2014 19:18:29 +0200 X-ASG-Orig-Subj: [PATCH 0/6 v5] fiemap: introduce DATA_COMPRESSED and PHYS_LENGTH flags Message-Id: X-Mailer: git-send-email 1.9.0 X-Barracuda-Connect: cantor2.suse.de[195.135.220.15] X-Barracuda-Start-Time: 1406740711 X-Barracuda-Encrypted: AES256-SHA X-Barracuda-URL: http://192.48.176.25:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 X-Barracuda-Spam-Score: 0.00 X-Barracuda-Spam-Status: No, SCORE=0.00 using per-user scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.7 tests=BSF_SC0_MISMATCH_TO X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.7964 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.00 BSF_SC0_MISMATCH_TO Envelope rcpt doesn't match header The original FIEMAP patch did not define the bits, btrfs would like to use a flag for compressed extents. The PHYS_LENGTH flag emerged during patchset revisions to keep backward compatibility and flexible fiemap API. Currently, the 'filefrag' utility has no way to recognize and denote a compressed extent. As implemented in btrfs right now, the compression step splits a big extent into smaller chunks and this is reported as a heavily fragmented file. Adding the flag to filefrag will at least give some explanation why, this has been confusing users for some time already. fiemap_fill_next_extent is extended and takes argument to fill the physical length. V5: Physical length is by default undefined. Btrfs use of compressed flag was enhanced to reflect the fiemap changes. Patches reordered so the generic fiemap go first. V4: The physical length is always set and equal to logical, or different and then sets the COMPRESSED flag. fiemap_extent::fe_length renamed to fe_logi_length V3: Based on feedback from Andreas, implement #1 from V2, current users of fiemap_fill_next_extent (fs/, ext4, gfs2, ocfs2, nilfs2, xfs) updated accordingly, no functional change. V2: Based on feedback from Andreas, the fiemap_extent is now able to hold the physical extent length, to be filled by the filesystem callback. 1) extend fiemap_fill_next_extent to take phys_length and update all users (ext4, gfs2, ocfs2, nilfs2, xfs) David Sterba (6): fiemap: fix comment at EXTENT_DATA_ENCRYPTED fiemap: add fe_phys_length and EXTENT_PHYS_LENGTH flag fiemap: add FIEMAP_EXTENT_DATA_COMPRESSED flag Documentation/fiemap: Document DATA_COMPRESSED and PHYS_LENGTH flags fiemap: rename fe_length to fe_logi_length btrfs: set FIEMAP_EXTENT_DATA_COMPRESSED for compressed extents Documentation/filesystems/fiemap.txt | 24 ++++++++++++++++++++---- fs/btrfs/extent_io.c | 11 ++++++++--- fs/ext4/extents.c | 4 ++-- fs/ext4/inline.c | 2 +- fs/gfs2/inode.c | 2 +- fs/ioctl.c | 21 ++++++++++++++------- fs/nilfs2/inode.c | 8 +++++--- fs/ocfs2/extent_map.c | 4 ++-- fs/xfs/xfs_iops.c | 2 +- include/linux/fs.h | 2 +- include/uapi/linux/fiemap.h | 16 +++++++++++++--- 11 files changed, 68 insertions(+), 28 deletions(-) -- 1.8.4.5 From dsterba@suse.cz Wed Jul 30 12:18:41 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: xfs@oss.sgi.com Delivered-To: xfs@oss.sgi.com Received: from relay.sgi.com (relay3.corp.sgi.com [198.149.34.15]) by oss.sgi.com (Postfix) with ESMTP id EF05E7F67 for ; Wed, 30 Jul 2014 12:18:40 -0500 (CDT) Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by relay3.corp.sgi.com (Postfix) with ESMTP id 8AF24AC005 for ; Wed, 30 Jul 2014 10:18:40 -0700 (PDT) X-ASG-Debug-ID: 1406740717-04bdf03d443deb0001-NocioJ Received: from mx2.suse.de (cantor2.suse.de [195.135.220.15]) by cuda.sgi.com with ESMTP id 9MLo8pfCwFLi8InF (version=TLSv1 cipher=AES256-SHA bits=256 verify=NO) for ; Wed, 30 Jul 2014 10:18:38 -0700 (PDT) X-Barracuda-Envelope-From: dsterba@suse.cz X-Barracuda-Apparent-Source-IP: 195.135.220.15 Received: from relay1.suse.de (charybdis-ext.suse.de [195.135.220.254]) by mx2.suse.de (Postfix) with ESMTP id 091B3AD18; Wed, 30 Jul 2014 17:18:37 +0000 (UTC) Received: by ds.suse.cz (Postfix, from userid 10065) id 4D530DAB36; Wed, 30 Jul 2014 19:18:36 +0200 (CEST) From: David Sterba To: linux-fsdevel@vger.kernel.org Cc: David Sterba , adilger@dilger.ca, hch@infradead.org, mfasheh@suse.com, viro@zeniv.linux.org.uk, david@fromorbit.com, xfs@oss.sgi.com, linux-nilfs@vger.kernel.org, ocfs2-devel@oss.oracle.com, linux-ext4@vger.kernel.org, linux-btrfs@vger.kernel.org Subject: [PATCH 2/6] fiemap: add fe_phys_length and EXTENT_PHYS_LENGTH flag Date: Wed, 30 Jul 2014 19:18:36 +0200 X-ASG-Orig-Subj: [PATCH 2/6] fiemap: add fe_phys_length and EXTENT_PHYS_LENGTH flag Message-Id: X-Mailer: git-send-email 1.9.0 In-Reply-To: References: X-Barracuda-Connect: cantor2.suse.de[195.135.220.15] X-Barracuda-Start-Time: 1406740718 X-Barracuda-Encrypted: AES256-SHA X-Barracuda-URL: http://192.48.157.11:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 X-Barracuda-Spam-Score: 0.00 X-Barracuda-Spam-Status: No, SCORE=0.00 using per-user scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.7 tests=BSF_SC0_MISMATCH_TO X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.7962 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.00 BSF_SC0_MISMATCH_TO Envelope rcpt doesn't match header Add a new member to fiemap_extent that represents the physical extent length. This value is undefined if the flag EXTENT_PHYS_LENGTH is not set. No functional change to existing fiemap users. Signed-off-by: David Sterba --- fs/btrfs/extent_io.c | 2 +- fs/ext4/extents.c | 4 ++-- fs/ext4/inline.c | 2 +- fs/gfs2/inode.c | 2 +- fs/ioctl.c | 13 ++++++++----- fs/nilfs2/inode.c | 8 +++++--- fs/ocfs2/extent_map.c | 4 ++-- fs/xfs/xfs_iops.c | 2 +- include/linux/fs.h | 2 +- include/uapi/linux/fiemap.h | 6 +++++- 10 files changed, 27 insertions(+), 18 deletions(-) diff --git a/fs/btrfs/extent_io.c b/fs/btrfs/extent_io.c index a389820d158b..c85da2e54ce7 100644 --- a/fs/btrfs/extent_io.c +++ b/fs/btrfs/extent_io.c @@ -4357,7 +4357,7 @@ int extent_fiemap(struct inode *inode, struct fiemap_extent_info *fieinfo, end = 1; } ret = fiemap_fill_next_extent(fieinfo, em_start, disko, - em_len, flags); + em_len, 0, flags); if (ret) goto out_free; } diff --git a/fs/ext4/extents.c b/fs/ext4/extents.c index 4da228a0e6d0..a194024e96a2 100644 --- a/fs/ext4/extents.c +++ b/fs/ext4/extents.c @@ -2253,7 +2253,7 @@ static int ext4_fill_fiemap_extents(struct inode *inode, (__u64)es.es_lblk << blksize_bits, (__u64)es.es_pblk << blksize_bits, (__u64)es.es_len << blksize_bits, - flags); + 0, flags); if (err < 0) break; if (err == 1) { @@ -5125,7 +5125,7 @@ static int ext4_xattr_fiemap(struct inode *inode, if (physical) error = fiemap_fill_next_extent(fieinfo, 0, physical, - length, flags); + length, 0, flags); return (error < 0 ? error : 0); } diff --git a/fs/ext4/inline.c b/fs/ext4/inline.c index 645205d8ada6..16f93d8100db 100644 --- a/fs/ext4/inline.c +++ b/fs/ext4/inline.c @@ -1825,7 +1825,7 @@ int ext4_inline_data_fiemap(struct inode *inode, if (physical) error = fiemap_fill_next_extent(fieinfo, 0, physical, - length, flags); + length, 0, flags); brelse(iloc.bh); out: up_read(&EXT4_I(inode)->xattr_sem); diff --git a/fs/gfs2/inode.c b/fs/gfs2/inode.c index e62e59477884..d0d35557ab5f 100644 --- a/fs/gfs2/inode.c +++ b/fs/gfs2/inode.c @@ -1931,7 +1931,7 @@ static int gfs2_fiemap(struct inode *inode, struct fiemap_extent_info *fieinfo, len = size - start; if (start < size) ret = fiemap_fill_next_extent(fieinfo, start, phys, - len, flags); + len, 0, flags); if (ret == 1) ret = 0; } else { diff --git a/fs/ioctl.c b/fs/ioctl.c index 8ac3fad36192..127551c70b0a 100644 --- a/fs/ioctl.c +++ b/fs/ioctl.c @@ -70,6 +70,7 @@ static int ioctl_fibmap(struct file *filp, int __user *p) * @logical: Extent logical start offset, in bytes * @phys: Extent physical start offset, in bytes * @len: Extent length, in bytes + * @phys_len: Physical extent length in bytes * @flags: FIEMAP_EXTENT flags that describe this extent * * Called from file system ->fiemap callback. Will populate extent @@ -83,7 +84,7 @@ static int ioctl_fibmap(struct file *filp, int __user *p) #define SET_NO_UNMOUNTED_IO_FLAGS (FIEMAP_EXTENT_DATA_ENCRYPTED) #define SET_NOT_ALIGNED_FLAGS (FIEMAP_EXTENT_DATA_TAIL|FIEMAP_EXTENT_DATA_INLINE) int fiemap_fill_next_extent(struct fiemap_extent_info *fieinfo, u64 logical, - u64 phys, u64 len, u32 flags) + u64 phys, u64 len, u64 phys_len, u32 flags) { struct fiemap_extent extent; struct fiemap_extent __user *dest = fieinfo->fi_extents_start; @@ -109,6 +110,7 @@ int fiemap_fill_next_extent(struct fiemap_extent_info *fieinfo, u64 logical, extent.fe_physical = phys; extent.fe_length = len; extent.fe_flags = flags; + extent.fe_phys_length = phys_len; dest += fieinfo->fi_extents_mapped; if (copy_to_user(dest, &extent, sizeof(extent))) @@ -318,10 +320,11 @@ int __generic_block_fiemap(struct inode *inode, flags = FIEMAP_EXTENT_MERGED|FIEMAP_EXTENT_LAST; ret = fiemap_fill_next_extent(fieinfo, logical, phys, size, - flags); + 0, flags); } else if (size) { ret = fiemap_fill_next_extent(fieinfo, logical, - phys, size, flags); + phys, size, + 0, flags); size = 0; } @@ -347,7 +350,7 @@ int __generic_block_fiemap(struct inode *inode, if (start_blk > last_blk && !whole_file) { ret = fiemap_fill_next_extent(fieinfo, logical, phys, size, - flags); + 0, flags); break; } @@ -358,7 +361,7 @@ int __generic_block_fiemap(struct inode *inode, if (size) { ret = fiemap_fill_next_extent(fieinfo, logical, phys, size, - flags); + 0, flags); if (ret) break; } diff --git a/fs/nilfs2/inode.c b/fs/nilfs2/inode.c index 6252b173a465..a99e6d093f11 100644 --- a/fs/nilfs2/inode.c +++ b/fs/nilfs2/inode.c @@ -1017,7 +1017,8 @@ int nilfs_fiemap(struct inode *inode, struct fiemap_extent_info *fieinfo, if (size) { /* End of the current extent */ ret = fiemap_fill_next_extent( - fieinfo, logical, phys, size, flags); + fieinfo, logical, phys, size, 0, + flags); if (ret) break; } @@ -1067,7 +1068,8 @@ int nilfs_fiemap(struct inode *inode, struct fiemap_extent_info *fieinfo, flags |= FIEMAP_EXTENT_LAST; ret = fiemap_fill_next_extent( - fieinfo, logical, phys, size, flags); + fieinfo, logical, phys, size, + 0, flags); if (ret) break; size = 0; @@ -1083,7 +1085,7 @@ int nilfs_fiemap(struct inode *inode, struct fiemap_extent_info *fieinfo, /* Terminate the current extent */ ret = fiemap_fill_next_extent( fieinfo, logical, phys, size, - flags); + 0, flags); if (ret || blkoff > end_blkoff) break; diff --git a/fs/ocfs2/extent_map.c b/fs/ocfs2/extent_map.c index 767370b656ca..cb0276908155 100644 --- a/fs/ocfs2/extent_map.c +++ b/fs/ocfs2/extent_map.c @@ -736,7 +736,7 @@ static int ocfs2_fiemap_inline(struct inode *inode, struct buffer_head *di_bh, id2.i_data.id_data); ret = fiemap_fill_next_extent(fieinfo, 0, phys, id_count, - flags); + 0, flags); if (ret < 0) return ret; } @@ -809,7 +809,7 @@ int ocfs2_fiemap(struct inode *inode, struct fiemap_extent_info *fieinfo, virt_bytes = (u64)le32_to_cpu(rec.e_cpos) << osb->s_clustersize_bits; ret = fiemap_fill_next_extent(fieinfo, virt_bytes, phys_bytes, - len_bytes, fe_flags); + len_bytes, 0, fe_flags); if (ret) break; diff --git a/fs/xfs/xfs_iops.c b/fs/xfs/xfs_iops.c index 205613a06068..5a7c1f6d1189 100644 --- a/fs/xfs/xfs_iops.c +++ b/fs/xfs/xfs_iops.c @@ -1030,7 +1030,7 @@ xfs_fiemap_format( fiemap_flags |= FIEMAP_EXTENT_LAST; error = fiemap_fill_next_extent(fieinfo, logical, physical, - length, fiemap_flags); + length, 0, fiemap_flags); if (error > 0) { error = 0; *full = 1; /* user array now full */ diff --git a/include/linux/fs.h b/include/linux/fs.h index e11d60cc867b..609e1d72c3e0 100644 --- a/include/linux/fs.h +++ b/include/linux/fs.h @@ -1412,7 +1412,7 @@ struct fiemap_extent_info { fiemap_extent array */ }; int fiemap_fill_next_extent(struct fiemap_extent_info *info, u64 logical, - u64 phys, u64 len, u32 flags); + u64 phys, u64 len, u64 phys_len, u32 flags); int fiemap_check_flags(struct fiemap_extent_info *fieinfo, u32 fs_flags); /* diff --git a/include/uapi/linux/fiemap.h b/include/uapi/linux/fiemap.h index 93abfcd9ac47..ed52d3f7821d 100644 --- a/include/uapi/linux/fiemap.h +++ b/include/uapi/linux/fiemap.h @@ -19,7 +19,9 @@ struct fiemap_extent { __u64 fe_physical; /* physical offset in bytes for the start * of the extent from the beginning of the disk */ __u64 fe_length; /* length in bytes for this extent */ - __u64 fe_reserved64[2]; + __u64 fe_phys_length; /* physical length in bytes, may be different from + * fe_length, is valid if PHYS_LENGTH flag set */ + __u64 fe_reserved64; __u32 fe_flags; /* FIEMAP_EXTENT_* flags for this extent */ __u32 fe_reserved[3]; }; @@ -50,6 +52,8 @@ struct fiemap { * Sets EXTENT_UNKNOWN. */ #define FIEMAP_EXTENT_ENCODED 0x00000008 /* Data can not be read * while fs is unmounted */ +#define FIEMAP_EXTENT_PHYS_LENGTH 0x00000010 /* Physical length of extent + * not the same as logical */ #define FIEMAP_EXTENT_DATA_ENCRYPTED 0x00000080 /* Data is encrypted by fs. * Sets EXTENT_ENCODED */ #define FIEMAP_EXTENT_NOT_ALIGNED 0x00000100 /* Extent offsets may not be -- 1.8.4.5 From duane@blur.com Wed Jul 30 12:58:56 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: xfs@oss.sgi.com Delivered-To: xfs@oss.sgi.com Received: from relay.sgi.com (relay2.corp.sgi.com [137.38.102.29]) by oss.sgi.com (Postfix) with ESMTP id 4FF5C7F74 for ; Wed, 30 Jul 2014 12:58:56 -0500 (CDT) Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by relay2.corp.sgi.com (Postfix) with ESMTP id 3BBEC304051 for ; Wed, 30 Jul 2014 10:58:56 -0700 (PDT) X-ASG-Debug-ID: 1406743134-04cb6c555e3b590001-NocioJ Received: from vz1.blur.com (vz1.blur.com [67.228.122.164]) by cuda.sgi.com with ESMTP id uA7tKAXa7C7D7zTG (version=TLSv1 cipher=AES256-SHA bits=256 verify=NO) for ; Wed, 30 Jul 2014 10:58:54 -0700 (PDT) X-Barracuda-Envelope-From: duane@blur.com X-Barracuda-Apparent-Source-IP: 67.228.122.164 Received: (qmail 28666 invoked by uid 89); 30 Jul 2014 17:58:54 -0000 Received: from unknown (HELO mail.blur.com) (12.22.197.194) by vz1.blur.com with (DHE-RSA-AES256-SHA encrypted) SMTP; 30 Jul 2014 17:58:54 -0000 Received: (qmail 31436 invoked by uid 89); 30 Jul 2014 17:58:30 -0000 Received: from inhuman028-1.blur.com (HELO ?192.168.70.28?) (duane@192.168.70.28) by mihoho with ESMTPA; 30 Jul 2014 17:58:30 -0000 Message-ID: <53D93246.1070406@blur.com> Date: Wed, 30 Jul 2014 10:58:30 -0700 From: Duane Powell User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:24.0) Gecko/20100101 Thunderbird/24.6.0 MIME-Version: 1.0 To: xfs@oss.sgi.com Subject: xfs_metadump from Blur Studio Content-Type: text/plain; charset=ISO-8859-1; format=flowed X-ASG-Orig-Subj: xfs_metadump from Blur Studio Content-Transfer-Encoding: 7bit X-Barracuda-Connect: vz1.blur.com[67.228.122.164] X-Barracuda-Start-Time: 1406743134 X-Barracuda-Encrypted: AES256-SHA X-Barracuda-URL: http://192.48.176.15:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 X-Barracuda-Spam-Score: 0.00 X-Barracuda-Spam-Status: No, SCORE=0.00 using per-user scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.7 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.7964 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- XFS!, corrupt dinode 1124573, extent total = 1, nblocks = 0. This is a bug. Please capture the filesystem metadata with xfs_metadump and report it to xfs@oss.sgi.com. dump to big to email, please use this ftp account. ftp.blur.com user: xsi password: smoke.water.775 ./pickup/xfs.bug.dump Thanks, Duane PS Some samples of what were creating on xfs filers http://vimeo.com/97143634 http://www.reddit.com/r/videos/comments/2be22a/league_of_legends_cinematic_a_new_dawn/ From adilger@dilger.ca Wed Jul 30 15:06:26 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: xfs@oss.sgi.com Delivered-To: xfs@oss.sgi.com Received: from relay.sgi.com (relay2.corp.sgi.com [137.38.102.29]) by oss.sgi.com (Postfix) with ESMTP id 582797F78 for ; Wed, 30 Jul 2014 15:06:26 -0500 (CDT) Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by relay2.corp.sgi.com (Postfix) with ESMTP id 1A434304043 for ; Wed, 30 Jul 2014 13:06:23 -0700 (PDT) X-ASG-Debug-ID: 1406750781-04bdf03d4544a40001-NocioJ Received: from mail-pa0-f45.google.com (mail-pa0-f45.google.com [209.85.220.45]) by cuda.sgi.com with ESMTP id KSEABJZPq0066ToS (version=TLSv1 cipher=RC4-SHA bits=128 verify=NO) for ; Wed, 30 Jul 2014 13:06:21 -0700 (PDT) X-Barracuda-Envelope-From: adilger@dilger.ca X-Barracuda-RBL-Trusted-Forwarder: 209.85.220.45 Received: by mail-pa0-f45.google.com with SMTP id eu11so2141544pac.4 for ; Wed, 30 Jul 2014 13:06:20 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:content-type:mime-version:subject:from :in-reply-to:date:cc:message-id:references:to; bh=JHfRszeUC39PjSecIqXmE/fNa3IolW+tPYPcOh2bnPI=; b=nCmhbXZTsGAhuzI2eXpCt1WLL/aMqG2CafZ3R72uLOG3WvKIhAmNXrkLy9MHVkndK3 Sjwn+qYQ1Utnxy1CFkQhMqwGP8qJpi+D1LUBeN/gkwQ4Iplo7sKIX8DujGOP/54AtPC5 6H5W5b/jpN+dSkxxyCjQ9TYfk8pEtYVB2h0lT52IUXV2Gc+Uba76slBxaVF7Q+Xjjf2K 95VLOFoJ9P+dxjA/nt4BhmR3w3YzhjQDro/fOQMSDfgGQuo6DdEm+eSK10hMt8ZxXfgB aWd1cTF6dUjjSnBU0v75jPVTy/Wdm/69JUR71Vp/9KfEf85SHHMgS6rSRGJS9CXRnMl8 jEuw== X-Barracuda-BBL-IP: nil X-Gm-Message-State: ALoCoQmx6ylpwpLHJbfRF+VoDnh/Cc5Dmidqil0a3Rriy76LNVNP9oxw8xNaC+9kt7Cki0l51c5M X-Received: by 10.70.118.197 with SMTP id ko5mr7467123pdb.64.1406750780706; Wed, 30 Jul 2014 13:06:20 -0700 (PDT) Received: from cabot-wlan.adilger.int (S0106002191d9348b.cg.shawcable.net. [96.51.76.157]) by mx.google.com with ESMTPSA id b9sm4818616pdo.3.2014.07.30.13.06.18 for (version=TLSv1 cipher=ECDHE-RSA-RC4-SHA bits=128/128); Wed, 30 Jul 2014 13:06:19 -0700 (PDT) Content-Type: multipart/signed; boundary="Apple-Mail=_00E7CCA7-83E9-400E-95F1-80CEB4C45037"; protocol="application/pgp-signature"; micalg=pgp-sha1 X-Barracuda-Apparent-Source-IP: 96.51.76.157 Mime-Version: 1.0 (Mac OS X Mail 7.3 \(1878.6\)) Subject: Re: [PATCH 2/6] fiemap: add fe_phys_length and EXTENT_PHYS_LENGTH flag From: Andreas Dilger X-ASG-Orig-Subj: Re: [PATCH 2/6] fiemap: add fe_phys_length and EXTENT_PHYS_LENGTH flag In-Reply-To: Date: Wed, 30 Jul 2014 14:06:16 -0600 Cc: linux-fsdevel@vger.kernel.org, hch@infradead.org, mfasheh@suse.com, viro@zeniv.linux.org.uk, david@fromorbit.com, xfs@oss.sgi.com, linux-nilfs@vger.kernel.org, ocfs2-devel@oss.oracle.com, linux-ext4@vger.kernel.org, linux-btrfs@vger.kernel.org Message-Id: References: To: David Sterba X-Mailer: Apple Mail (2.1878.6) X-Barracuda-Connect: mail-pa0-f45.google.com[209.85.220.45] X-Barracuda-Start-Time: 1406750781 X-Barracuda-Encrypted: RC4-SHA X-Barracuda-URL: http://192.48.157.11:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 X-Barracuda-Spam-Score: 0.00 X-Barracuda-Spam-Status: No, SCORE=0.00 using per-user scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.7 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.7968 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- --Apple-Mail=_00E7CCA7-83E9-400E-95F1-80CEB4C45037 Content-Transfer-Encoding: 7bit Content-Type: text/plain; charset=us-ascii On Jul 30, 2014, at 11:18 AM, David Sterba wrote: > Add a new member to fiemap_extent that represents the physical extent > length. This value is undefined if the flag EXTENT_PHYS_LENGTH is not > set. The description here of PHYS_LENGTH makes sense... The patch description should also mention the name of the new member, namely "fe_phys_length" > +#define FIEMAP_EXTENT_PHYS_LENGTH 0x00000010 /* Physical length of extent > + * not the same as logical */ But the comment doesn't match. This implies that if PHYS_LENGTH is set, fe_phys_length != fe_logi_length, but I don't think that is necessarily correct. I think it makes more sense to just set PHYS_LENGTH when fe_phys_length is valid, and if PHYS_LENGTH is not set then fe_phys_length aware applications should just use fe_phys_length = fe_logi_length, and older applications would just use fe_length for both as they would already today. Cheers, Andreas --Apple-Mail=_00E7CCA7-83E9-400E-95F1-80CEB4C45037 Content-Transfer-Encoding: 7bit Content-Disposition: attachment; filename=signature.asc Content-Type: application/pgp-signature; name=signature.asc Content-Description: Message signed with OpenPGP using GPGMail -----BEGIN PGP SIGNATURE----- Comment: GPGTools - http://gpgtools.org iQIVAwUBU9lQOHKl2rkXzB/gAQKpuw/6A2AImmTn8LGApwztQs9J/443KmMAIP8K OBKsMaLL8K84nsoFqnp6WnZKCmPDGb7GhVDNMcJgBgGdNd1aQWCeuy9+8H89GLQP 62iYI9LR+d3bypthFMdjtJaNA7Uk+Wz5ShnBnJFuewPu0IF5xydxEM5TlRcKmqyV JtSwxyYZduU43lPfmtbjxWDlZWL+MybLFn9dcYzw8oFQNn7iJIVpswDvHdT93l17 rBAs8xvZovNuXSrbSvrULhUncDw3iS7eK6wev76qQ9iY8BnVwJ3+0c/gWIAnXHQp b1du3ccLpMrc9YNhQn2yM3gNV6AKNV/u3dBUOtRV+qVw5nPBApAtLpD4HOuZ6ORG 0x1h/4I2p3HtgwoEYOK5Y1nsQQho7b5IkYhk7GikYZdAdBZ3m0Ym7qMVPGLKPgNx hq//wzT1wUih6w0EbaI3dnmLv8haGMgL2vRKvhnvit4dLHDYew42vqAVB9TohjkG DKQlUgv6eyaVzxrTopQHm4J1AWocGvqGf4J3tiABg2Z53KS9858qkFIJl/U5m009 qLcv0vpbV7bNRGKceN1W5Ji9tfWjU3FR5U+f+U8xMvm0DNxE5Muddke1+NwLjBvE 4ODmIFb9Tfwa1aWn1tPWRa0/Uv/pG+pwVKYaoCNIYFIzRhuATqhnHlQR2V43hom3 APmgbwvUYQw= =S2WY -----END PGP SIGNATURE----- --Apple-Mail=_00E7CCA7-83E9-400E-95F1-80CEB4C45037-- From neutrino8@gmail.com Wed Jul 30 16:18:17 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.3 required=5.0 tests=FREEMAIL_ENVFROM_END_DIGIT, FREEMAIL_FROM,T_DKIM_INVALID autolearn=no version=3.3.1 X-Original-To: xfs@oss.sgi.com Delivered-To: xfs@oss.sgi.com Received: from relay.sgi.com (relay3.corp.sgi.com [198.149.34.15]) by oss.sgi.com (Postfix) with ESMTP id 4FFC57F7B for ; Wed, 30 Jul 2014 16:18:17 -0500 (CDT) Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by relay3.corp.sgi.com (Postfix) with ESMTP id E1670AC003 for ; Wed, 30 Jul 2014 14:18:13 -0700 (PDT) X-ASG-Debug-ID: 1406755091-04bdf03d4347e60001-NocioJ Received: from mail-ie0-f172.google.com (mail-ie0-f172.google.com [209.85.223.172]) by cuda.sgi.com with ESMTP id l8dpRPLtCMdCbTWL (version=TLSv1 cipher=RC4-SHA bits=128 verify=NO) for ; Wed, 30 Jul 2014 14:18:12 -0700 (PDT) X-Barracuda-Envelope-From: neutrino8@gmail.com X-Barracuda-Apparent-Source-IP: 209.85.223.172 X-Barracuda-IPDD: Level1 [gmail.com/209.85.223.172] Received: by mail-ie0-f172.google.com with SMTP id lx4so2354653iec.31 for ; Wed, 30 Jul 2014 14:18:11 -0700 (PDT) X-Barracuda-IPDD: Level1 [gmail.com/209.85.223.172] X-Barracuda-IPDD: Level1 [gmail.com/209.85.223.172] DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :cc:content-type; bh=NY28fxL/jv/m9B97092FnK0Fjj1D7l2K99/BRAbKwlc=; b=q58pLrhmrBthMMGrGg3c0kdPD6tv0m4aPMTxw5jJ9bRNzs0k2dN5Y0W+nW5+J8NZJi VjwhPYEh3PYAFhCbMX8K3/vSPPjQOuLThbs10K1fEIXNtnYs61vD9k8JVodWtycW7is8 uDskJDhZnbX52pRpPixHsJc+w1uKsf7b++XfCXkH4Ko6DUbiFuuA722eOzNz/zFYaFTQ TTnfN+WH0brSAKsOAFw8w0WQY40NMqanOoyEitx1NYEDNyawJA8QfiFSFvEOw6EpuRGO BGYrDdPcdcZxnL1W1rHz8iE+0nkCWUXuhIS5JpqaCGxA0sQwbyO2ZKn3ILYLXFvVf73w XyJA== MIME-Version: 1.0 X-Received: by 10.50.178.172 with SMTP id cz12mr12047363igc.22.1406755091847; Wed, 30 Jul 2014 14:18:11 -0700 (PDT) Received: by 10.50.4.65 with HTTP; Wed, 30 Jul 2014 14:18:11 -0700 (PDT) In-Reply-To: <20140730081858.GN26465@dastard> References: <20140729123815.GA13120@bfoster.bfoster> <20140729234151.GJ26465@dastard> <20140730081858.GN26465@dastard> Date: Wed, 30 Jul 2014 23:18:11 +0200 Message-ID: Subject: Re: Delaylog information enquiry From: Grozdan X-ASG-Orig-Subj: Re: Delaylog information enquiry To: Dave Chinner Cc: Brian Foster , "Frank ." , "xfs@oss.sgi.com" Content-Type: text/plain; charset=UTF-8 X-Barracuda-Connect: mail-ie0-f172.google.com[209.85.223.172] X-Barracuda-Start-Time: 1406755092 X-Barracuda-Encrypted: RC4-SHA X-Barracuda-URL: http://192.48.157.11:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 X-Barracuda-Spam-Score: 0.00 X-Barracuda-Spam-Status: No, SCORE=0.00 using per-user scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.7 tests=DKIM_SIGNED, DKIM_VERIFIED X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.7970 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- -0.00 DKIM_VERIFIED Domain Keys Identified Mail: signature passes verification 0.00 DKIM_SIGNED Domain Keys Identified Mail: message has a signature On Wed, Jul 30, 2014 at 10:18 AM, Dave Chinner wrote: > On Wed, Jul 30, 2014 at 07:42:32AM +0200, Grozdan wrote: >> On Wed, Jul 30, 2014 at 1:41 AM, Dave Chinner wrote: >> > Note that this does not change file data behaviour. In this case you >> > need to add the "sync" mount option, which forces all buffered IO to >> > be synchronous and so will be *very slow*. But if you've already >> > turned off the BBWC on the RAID controller then your storage is >> > already terribly slow and so you probably won't care about making >> > performance even worse... >> >> Dave, excuse my ignorant questions >> >> I know the Linux kernel keeps data in cache up to 30 seconds before a >> kernel daemon flushes it to disk, unless >> the configured dirty ratio (which is 40% of RAM, iirc) is reached > > 10% of RAM, actually. > >> before these 30 seconds so the flush is done before it >> >> What I did is lower these 30 seconds to 5 seconds so every 5 seconds >> data is flushed to disk (I've set the dirty_expire_centisecs to 500). >> So, are there any drawbacks in doing this? > > Depends on your workload. For a desktop, you probably won't notice > anything different. For a machine that creates lots of temporary > files and then removes them (e.g. build machines) then it could > crater performance completely because it causes writeback before the > files are removed... > >> I mean, I don't care *that* >> much for performance but I do want my dirty data to be on >> storage in a reasonable amount of time. I looked at the various sync >> mount options but they all are synchronous so it is my >> impression they'll be slower than giving the kernel 5 seconds to keep >> data and then flush it. >> >> From XFS perspective, I'd like to know if this is not recommended or >> if it is? I know that with setting the above to 500 centisecs >> means that there will be more writes to disk and potentially may >> result in tear & wear, thus shortening the lifetime of the >> storage >> >> This is a regular desktop system with a single Seagate Constellation >> SATA disk so no RAID, LVM, thin provision or anything else >> >> What do you think? :) > > I don't think it really matters either way. I don't change > the writeback time on my workstations, build machines or test > machines, but I actually *increase* it on my laptops to save power > by not writing to disk as often. So if you want a little more > safety, then reducing the writeback timeout shouldn't have any > significant affect on performance or wear unless you are doing > something unusual.... > > Cheers, > > Dave. Thanks Dave :) I don't want to start another thread as this is my last question but it's one unrelated to the original question from Frank One of my partitions was almost full (there was 5 GB over according to df -h). I had about 8 torrents open in the client, all sizes between 4 and 6 GB (they were all downloaded and got never "released" from the client as I was seeding back). When I tried to add a torrent to download which was 3 GB, the client reported that there was no more space left over on the partition. I suspect this is related to speculative preallocation and because the 8 torrents were all "open" they still had extra space allocated by the speculative preallocation and thus I couldn't add the 3GB torrent even though df says there was 5GB over but in reality it was much less. Am I correct on this or is there something completely else that happened? Thanks ;) > -- > Dave Chinner > david@fromorbit.com -- Yours truly From david@fromorbit.com Wed Jul 30 16:39:25 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: xfs@oss.sgi.com Delivered-To: xfs@oss.sgi.com Received: from relay.sgi.com (relay3.corp.sgi.com [198.149.34.15]) by oss.sgi.com (Postfix) with ESMTP id A04437F63 for ; Wed, 30 Jul 2014 16:39:25 -0500 (CDT) Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by relay3.corp.sgi.com (Postfix) with ESMTP id 3BCBDAC003 for ; Wed, 30 Jul 2014 14:39:25 -0700 (PDT) X-ASG-Debug-ID: 1406756362-04bdf03d4348940001-NocioJ Received: from ipmail05.adl6.internode.on.net (ipmail05.adl6.internode.on.net [150.101.137.143]) by cuda.sgi.com with ESMTP id yJirbLZ3nNiOjmRN for ; Wed, 30 Jul 2014 14:39:22 -0700 (PDT) X-Barracuda-Envelope-From: david@fromorbit.com X-Barracuda-Apparent-Source-IP: 150.101.137.143 X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: AikQAEtl2VN5LHOdPGdsb2JhbABPCoMOgSmCJ4UIqAcBAQEBAQEGh3iDBZgeAYEPFwUBAQEBODaEAwEBBScTHCMQCAMOBwMJJQ8FJQMHGhOIQcBCFxiFZIhsCFwHhEoFjmWMfotpF4wvKy+BAw Received: from ppp121-44-115-157.lns20.syd6.internode.on.net (HELO dastard) ([121.44.115.157]) by ipmail05.adl6.internode.on.net with ESMTP; 31 Jul 2014 07:09:21 +0930 Received: from dave by dastard with local (Exim 4.80) (envelope-from ) id 1XCbai-0004IA-Au; Thu, 31 Jul 2014 07:39:20 +1000 Date: Thu, 31 Jul 2014 07:39:20 +1000 From: Dave Chinner To: Brian Foster Cc: xfs@oss.sgi.com Subject: Re: [PATCH 1/4 V2] xfs: catch buffers written without verifiers attached Message-ID: <20140730213920.GM20518@dastard> X-ASG-Orig-Subj: Re: [PATCH 1/4 V2] xfs: catch buffers written without verifiers attached References: <1406684929-11133-1-git-send-email-david@fromorbit.com> <1406684929-11133-2-git-send-email-david@fromorbit.com> <20140730023023.GM26465@dastard> <20140730162913.GA2830@bfoster.bfoster> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20140730162913.GA2830@bfoster.bfoster> User-Agent: Mutt/1.5.21 (2010-09-15) X-Barracuda-Connect: ipmail05.adl6.internode.on.net[150.101.137.143] X-Barracuda-Start-Time: 1406756362 X-Barracuda-URL: http://192.48.157.11:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 X-Barracuda-Spam-Score: 0.00 X-Barracuda-Spam-Status: No, SCORE=0.00 using per-user scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.7 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.7971 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- On Wed, Jul 30, 2014 at 12:29:14PM -0400, Brian Foster wrote: > On Wed, Jul 30, 2014 at 12:30:24PM +1000, Dave Chinner wrote: > > From: Dave Chinner > > > > We recently had a bug where buffers were slipping through log > > recovery without any verifier attached to them. This was resulting > > in on-disk CRC mismatches for valid data. Add some warning code to > > catch this occurrence so that we catch such bugs during development > > rather than not being aware they exist. > > > > Note that we cannot do this verification unconditionally as non-CRC > > filesystems don't always attach verifiers to the buffers being > > written. e.g. during log recovery we cannot identify all the > > different types of buffers correctly on non-CRC filesystems, so we > > can't attach the correct verifiers in all cases and so we don't > > attach any. Hence we don't want on non-CRC filesystems to avoid > > spamming the logs with false indications. > > > > Signed-off-by: Dave Chinner > > --- > > fs/xfs/xfs_buf.c | 15 +++++++++++++++ > > fs/xfs/xfs_log.c | 7 ++++++- > > 2 files changed, 21 insertions(+), 1 deletion(-) > > > > diff --git a/fs/xfs/xfs_buf.c b/fs/xfs/xfs_buf.c > > index a6dc83e..078b8be 100644 > > --- a/fs/xfs/xfs_buf.c > > +++ b/fs/xfs/xfs_buf.c > > @@ -1330,6 +1330,21 @@ _xfs_buf_ioapply( > > SHUTDOWN_CORRUPT_INCORE); > > return; > > } > > + } else if (bp->b_bn != -1LL) { > > + struct xfs_mount *mp = bp->b_target->bt_mount; > > + > > + /* > > + * non-crc filesystems don't attach verifiers during > > + * log recovery, so don't warn for such filesystems. > > + */ > > + if (xfs_sb_version_hascrc(&mp->m_sb)) { > > + xfs_warn(mp, > > + "%s: no ops on block 0x%llx/0x%llx", > > + __func__, bp->b_bn, > > + bp->b_maps[0].bm_bn); > > Are you intending to print both block number values here or the > b_bn/bm_len combo? Yeah, I probably did. I didn't actuall look at the block numbers in the output I kept getting - just the magic number in the hex dump and the stack trace... > > > + xfs_hex_dump(bp->b_addr, 64); > > + dump_stack(); > > + } > > } > > } else if (bp->b_flags & XBF_READ_AHEAD) { > > rw = READA; > > diff --git a/fs/xfs/xfs_log.c b/fs/xfs/xfs_log.c > > index 149a4a5..9dc92b3 100644 > > --- a/fs/xfs/xfs_log.c > > +++ b/fs/xfs/xfs_log.c > > @@ -1378,8 +1378,13 @@ xlog_alloc_log( > > > > xlog_get_iclog_buffer_size(mp, log); > > > > + /* > > + * Use a block number of -1 for the extra log buffer used during splits > > + * so that it will trigger errors if we ever try to do IO on it without > > + * first having set it up properly. > > + */ > > error = -ENOMEM; > > - bp = xfs_buf_alloc(mp->m_logdev_targp, 0, BTOBB(log->l_iclog_size), 0); > > + bp = xfs_buf_alloc(mp->m_logdev_targp, -1LL, BTOBB(log->l_iclog_size), 0); > > How about XFS_BUF_DADDR_NULL (here and above)? Will fix. Cheers, Dave. -- Dave Chinner david@fromorbit.com From david@fromorbit.com Wed Jul 30 16:43:39 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: xfs@oss.sgi.com Delivered-To: xfs@oss.sgi.com Received: from relay.sgi.com (relay3.corp.sgi.com [198.149.34.15]) by oss.sgi.com (Postfix) with ESMTP id E53B57F75 for ; Wed, 30 Jul 2014 16:43:38 -0500 (CDT) Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by relay3.corp.sgi.com (Postfix) with ESMTP id 7FED2AC003 for ; Wed, 30 Jul 2014 14:43:38 -0700 (PDT) X-ASG-Debug-ID: 1406756615-04cbb02d8543f50001-NocioJ Received: from ipmail05.adl6.internode.on.net (ipmail05.adl6.internode.on.net [150.101.137.143]) by cuda.sgi.com with ESMTP id XnUCmAKXi2Xk0pea for ; Wed, 30 Jul 2014 14:43:36 -0700 (PDT) X-Barracuda-Envelope-From: david@fromorbit.com X-Barracuda-Apparent-Source-IP: 150.101.137.143 X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: ArILAHhm2VN5LHOdPGdsb2JhbABZgw6BKYInhQioBwEBAQEBAQajGwGBDxcFAQEBATg2hAQBBScTHCMQCAMYCSUPBSUDBxoTiEHARBcYhWSJUAeESgEEm2OYLysv Received: from ppp121-44-115-157.lns20.syd6.internode.on.net (HELO dastard) ([121.44.115.157]) by ipmail05.adl6.internode.on.net with ESMTP; 31 Jul 2014 07:13:34 +0930 Received: from dave by dastard with local (Exim 4.80) (envelope-from ) id 1XCbeo-0004J8-8A; Thu, 31 Jul 2014 07:43:34 +1000 Date: Thu, 31 Jul 2014 07:43:34 +1000 From: Dave Chinner To: Fanael Linithien Cc: xfs@oss.sgi.com Subject: Re: [PATCH 4/4] xfs: dquot recovery needs verifiers Message-ID: <20140730214334.GN20518@dastard> X-ASG-Orig-Subj: Re: [PATCH 4/4] xfs: dquot recovery needs verifiers References: <1406684929-11133-1-git-send-email-david@fromorbit.com> <1406684929-11133-5-git-send-email-david@fromorbit.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.5.21 (2010-09-15) X-Barracuda-Connect: ipmail05.adl6.internode.on.net[150.101.137.143] X-Barracuda-Start-Time: 1406756615 X-Barracuda-URL: http://192.48.176.25:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 X-Barracuda-Spam-Score: 0.00 X-Barracuda-Spam-Status: No, SCORE=0.00 using per-user scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.7 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.7971 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- On Wed, Jul 30, 2014 at 02:30:11PM +0200, Fanael Linithien wrote: > 2014-07-30 3:48 GMT+02:00 Dave Chinner : > > + if (!mp->m_qflags == 0) > > + return false; > > Is it a typo, or is it intentionally obfuscated mp->m_qflags != 0? Ugh. Two patches in the series that weren't properly uptodate. I'll resend the series.... Cheers, Dave. -- Dave Chinner david@fromorbit.com From david@fromorbit.com Wed Jul 30 16:59:27 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: xfs@oss.sgi.com Delivered-To: xfs@oss.sgi.com Received: from relay.sgi.com (relay2.corp.sgi.com [137.38.102.29]) by oss.sgi.com (Postfix) with ESMTP id EEE707F82 for ; Wed, 30 Jul 2014 16:59:27 -0500 (CDT) Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by relay2.corp.sgi.com (Postfix) with ESMTP id BCBB330405F for ; Wed, 30 Jul 2014 14:59:27 -0700 (PDT) X-ASG-Debug-ID: 1406757561-04bdf03d44492d0001-NocioJ Received: from ipmail05.adl6.internode.on.net (ipmail05.adl6.internode.on.net [150.101.137.143]) by cuda.sgi.com with ESMTP id wwJJVv2JOlYMfwoS for ; Wed, 30 Jul 2014 14:59:21 -0700 (PDT) X-Barracuda-Envelope-From: david@fromorbit.com X-Barracuda-Apparent-Source-IP: 150.101.137.143 X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: As0LAAhq2VN5LHOdPGdsb2JhbAA/GoMOUleCJ4saoXUBAQEBAQEGm1KHSQGBDxcFAQEBATg2hAMBAQQBOhwjBQsIAxgJDAEBAQwKDwUlAwcaE4g6Bw42rWKSNBiFZIhuEQFQBwoIAQWEMgWZG4JIi3WMOisvAYEEBxc Received: from ppp121-44-115-157.lns20.syd6.internode.on.net (HELO dastard) ([121.44.115.157]) by ipmail05.adl6.internode.on.net with ESMTP; 31 Jul 2014 07:29:20 +0930 Received: from dave by dastard with local (Exim 4.80) (envelope-from ) id 1XCbu3-0004Lj-3J; Thu, 31 Jul 2014 07:59:19 +1000 Date: Thu, 31 Jul 2014 07:59:19 +1000 From: Dave Chinner To: Duane Powell Cc: xfs@oss.sgi.com Subject: Re: xfs_metadump from Blur Studio Message-ID: <20140730215919.GO20518@dastard> X-ASG-Orig-Subj: Re: xfs_metadump from Blur Studio References: <53D93246.1070406@blur.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <53D93246.1070406@blur.com> User-Agent: Mutt/1.5.21 (2010-09-15) X-Barracuda-Connect: ipmail05.adl6.internode.on.net[150.101.137.143] X-Barracuda-Start-Time: 1406757561 X-Barracuda-URL: http://192.48.157.11:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 X-Barracuda-Spam-Score: 0.10 X-Barracuda-Spam-Status: No, SCORE=0.10 using per-user scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.7 tests=BSF_SC0_SA085 X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.7972 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.10 BSF_SC0_SA085 Custom Rule SA085 On Wed, Jul 30, 2014 at 10:58:30AM -0700, Duane Powell wrote: > XFS!, > > corrupt dinode 1124573, extent total = 1, nblocks = 0. This is a bug. > Please capture the filesystem metadata with xfs_metadump and > report it to xfs@oss.sgi.com. Why were you repairing the filesystem? What went wrong? Also: http://xfs.org/index.php/XFS_FAQ#Q:_What_information_should_I_include_when_reporting_a_problem.3F > dump to big to email, please use this ftp account. > > ftp.blur.com > user: xsi > password: smoke.water.775 220 Blur Studio's FTP Server (ftp.blur.com) Name (ftp.blur.com:dave): xsi 331 Username OK, please send password. Password: 530 Login failed. Login failed. > ./pickup/xfs.bug.dump Please compress it with bzip2 first - I'm upside down at the end of a long piece of wet string, so compression of the dump image will save a lot of time... Cheers, Dave. -- Dave Chinner david@fromorbit.com From david@fromorbit.com Wed Jul 30 17:53:52 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: xfs@oss.sgi.com Delivered-To: xfs@oss.sgi.com Received: from relay.sgi.com (relay1.corp.sgi.com [137.38.102.111]) by oss.sgi.com (Postfix) with ESMTP id 6F8347F92 for ; Wed, 30 Jul 2014 17:53:52 -0500 (CDT) Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by relay1.corp.sgi.com (Postfix) with ESMTP id 5CEBD8F8033 for ; Wed, 30 Jul 2014 15:53:49 -0700 (PDT) X-ASG-Debug-ID: 1406760826-04cb6c555f467d0001-NocioJ Received: from ipmail05.adl6.internode.on.net (ipmail05.adl6.internode.on.net [150.101.137.143]) by cuda.sgi.com with ESMTP id F5RLzDp4PHrU6qld for ; Wed, 30 Jul 2014 15:53:46 -0700 (PDT) X-Barracuda-Envelope-From: david@fromorbit.com X-Barracuda-Apparent-Source-IP: 150.101.137.143 X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: ArILAOZ22VN5LHOdPGdsb2JhbABZgw6BKYInhQioBwEBAQEBAQajGwGBDxcFAQEBATg2hAQBBTocIxAIAxgJJQ8FJQMHGhOIQcBRFxiFZIhoGgVJB4RKBZtjjAiMJysvgQQ Received: from ppp121-44-115-157.lns20.syd6.internode.on.net (HELO dastard) ([121.44.115.157]) by ipmail05.adl6.internode.on.net with ESMTP; 31 Jul 2014 08:23:44 +0930 Received: from dave by dastard with local (Exim 4.80) (envelope-from ) id 1XCckg-0004TL-N8; Thu, 31 Jul 2014 08:53:42 +1000 Date: Thu, 31 Jul 2014 08:53:42 +1000 From: Dave Chinner To: "Frank ." Cc: "xfs@oss.sgi.com" , "neutrino8@gmail.com" Subject: Re: Delaylog information enquiry Message-ID: <20140730225342.GP20518@dastard> X-ASG-Orig-Subj: Re: Delaylog information enquiry References: <20140729123815.GA13120@bfoster.bfoster> <20140729234151.GJ26465@dastard> <20140730081858.GN26465@dastard> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.5.21 (2010-09-15) X-Barracuda-Connect: ipmail05.adl6.internode.on.net[150.101.137.143] X-Barracuda-Start-Time: 1406760826 X-Barracuda-URL: http://192.48.176.15:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 X-Barracuda-Spam-Score: 0.00 X-Barracuda-Spam-Status: No, SCORE=0.00 using per-user scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.7 tests=BSF_SC0_MISMATCH_TO X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.7974 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.00 BSF_SC0_MISMATCH_TO Envelope rcpt doesn't match header On Wed, Jul 30, 2014 at 01:44:49PM +0200, Frank . wrote: > Indeed, I turned sync and wsync flags on. As excpected, I had terribly low performance (1MB/s for write operations). So I decided to turn them back off. (I got my 100 MB/s write throughput back). > I just wanted to reduce as much as possible unnecessary cache between my VM's and my physcal hard drives knowing that there are up to 8 write cache levels. > I'm getting off the subject a bit but here is the list. This is only my conclusion. I don't know if I'm right. > > - Guest page cache. > - Virtual disk drive write cache. (off KVM cache=directsync) > - Host page cache. (off KVM cache=directsync) Pretty normal. I tend to use cache=none rather than cache=directsync because cache=none behaves exactly like a normal disk, including write cache behaviour. So as long as you use barriers in your guest filesystems (xfs, ext4, btrfs all do by default) then it is no different to running the guest on a real disk with a small volatile write cache. i.e. when your app/database issues a fsync() in the guest, the guest filesystem issues a flush/fua sequence and KVM then guarantees that it only returns when all the previously written data to that file is on stable storage. As long as all the layers below KVM provide this same guarantee, then you don't need to turn caches off at all. > - GlusterFS cache. (off) > - NAS page cache. (?) > - XFS cache (filesystem). The gluster client side cache is being avoided due to KVM direct IO config, the gluster server/NAS page cache/XFS cache are all the same thing from a data perspective (i.e. 1 layer, not 3). AFAIK this is all buffered IO, and so the only way to get data in the backing XFS filesystem consistent on disk is for the application to issue a fsync() on the file at the gluster client side. This comes from the guest via KVM translating flush/fua operations or via the KVM IO mechanism - gluster then takes care of the rest. If KVM never issues a fsync() operation, then lower level caches will never be flushed correctly regardless of whether you turn off all caching or not. IOWs, fsync() is required at the XFS level to synchronise allocation transactions with data writes, and the only way to have that happen for the layer above xfs to issue f[data]sync() on the relevant XFS file(s)... Hence you need to keep in mind that turning off high level caches does not guarantee that low level caching behaviour will behave as you expect - even with high level caching turned off you still need those layers to propagate the data integrity directives from the top of the stack to the bottom so that every layer can do the right thing regardless of whether they are caching data or not. i.e. caching doesn't cause data loss - it's the incorrect propagation or non-existant use of application level data synchronisation primitives that cause data loss.... > - RAID controller write cache. (off) There's no benefit to turning this off if it's battery backed - all turning it off will do is cause performance to be horrible, especially when you turn off all the other layers of caching above the RAID controller. > - Physical hard drive write cache. (off) Right, those definitely need to be off so that the RAID controller doesn't have internal consistency problems when power fails. Cheers, Dave. -- Dave Chinner david@fromorbit.com From david@fromorbit.com Wed Jul 30 17:58:09 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: xfs@oss.sgi.com Delivered-To: xfs@oss.sgi.com Received: from relay.sgi.com (relay2.corp.sgi.com [137.38.102.29]) by oss.sgi.com (Postfix) with ESMTP id 82E737F82 for ; Wed, 30 Jul 2014 17:58:09 -0500 (CDT) Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by relay2.corp.sgi.com (Postfix) with ESMTP id 60F0D304043 for ; Wed, 30 Jul 2014 15:58:09 -0700 (PDT) X-ASG-Debug-ID: 1406761081-04cbb02d8445f00001-NocioJ Received: from ipmail05.adl6.internode.on.net (ipmail05.adl6.internode.on.net [150.101.137.143]) by cuda.sgi.com with ESMTP id rViL4lwVa2L2KPTY for ; Wed, 30 Jul 2014 15:58:02 -0700 (PDT) X-Barracuda-Envelope-From: david@fromorbit.com X-Barracuda-Apparent-Source-IP: 150.101.137.143 Received: from ppp121-44-115-157.lns20.syd6.internode.on.net (HELO dastard) ([121.44.115.157]) by ipmail05.adl6.internode.on.net with ESMTP; 31 Jul 2014 08:27:33 +0930 Received: from dave by dastard with local (Exim 4.80) (envelope-from ) id 1XCcoO-0004U8-Bs; Thu, 31 Jul 2014 08:57:32 +1000 Date: Thu, 31 Jul 2014 08:57:32 +1000 From: Dave Chinner To: Grozdan Cc: Brian Foster , "Frank ." , "xfs@oss.sgi.com" Subject: Re: Delaylog information enquiry Message-ID: <20140730225732.GQ20518@dastard> X-ASG-Orig-Subj: Re: Delaylog information enquiry References: <20140729123815.GA13120@bfoster.bfoster> <20140729234151.GJ26465@dastard> <20140730081858.GN26465@dastard> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: User-Agent: Mutt/1.5.21 (2010-09-15) X-Barracuda-Connect: ipmail05.adl6.internode.on.net[150.101.137.143] X-Barracuda-Start-Time: 1406761081 X-Barracuda-URL: http://192.48.176.25:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 X-Barracuda-Spam-Score: 0.10 X-Barracuda-Spam-Status: No, SCORE=0.10 using per-user scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.7 tests=BSF_SC0_SA085 X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.7974 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.10 BSF_SC0_SA085 Custom Rule SA085 On Wed, Jul 30, 2014 at 11:18:11PM +0200, Grozdan wrote: > I don't want to start another thread as this is my last question but > it's one unrelated to the original question from Frank You should always start a new thread when you have an unrelated question. At minimum, you should change the subject line... > One of my partitions was almost full (there was 5 GB over according to > df -h). I had about 8 torrents open in the client, all sizes between 4 > and 6 GB (they were all downloaded and got never "released" from the > client as I was seeding back). When I tried to add a torrent to > download which was 3 GB, the client reported that there was no more > space left over on the partition. I suspect this is related to > speculative preallocation and because the 8 torrents were all "open" > they still had extra space allocated by the speculative preallocation > and thus I couldn't add the 3GB torrent even though df says there was > 5GB over but in reality it was much less. Am I correct on this or is > there something completely else that happened? No idea - not enough information. Please start a new thread, including the information here: http://xfs.org/index.php/XFS_FAQ#Q:_What_information_should_I_include_when_reporting_a_problem.3F as well as the 'xfs_bmap -vp' output for the torrents in question. Cheers, Dave. -- Dave Chinner david@fromorbit.com From dave@fromorbit.com Wed Jul 30 20:01:59 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: xfs@oss.sgi.com Delivered-To: xfs@oss.sgi.com Received: from relay.sgi.com (relay3.corp.sgi.com [198.149.34.15]) by oss.sgi.com (Postfix) with ESMTP id 57EDB7F99 for ; Wed, 30 Jul 2014 20:01:59 -0500 (CDT) Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by relay3.corp.sgi.com (Postfix) with ESMTP id EA9FDAC003 for ; Wed, 30 Jul 2014 18:01:58 -0700 (PDT) X-ASG-Debug-ID: 1406768516-04bdf03d434e510001-NocioJ Received: from ipmail05.adl6.internode.on.net (ipmail05.adl6.internode.on.net [150.101.137.143]) by cuda.sgi.com with ESMTP id VJUj0RoTUnNuOptQ for ; Wed, 30 Jul 2014 18:01:57 -0700 (PDT) X-Barracuda-Envelope-From: dave@fromorbit.com X-Barracuda-Apparent-Source-IP: 150.101.137.143 X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: ApgLAGiU2VN5LHOdPGdsb2JhbABZgw6BKYcvqAkBAQEBAQEGpCMXBQEBAQE4NoQEAQUnLzMIGDE5AwcUGYhBwG2FfI4hBbQSKy8 Received: from ppp121-44-115-157.lns20.syd6.internode.on.net (HELO dastard) ([121.44.115.157]) by ipmail05.adl6.internode.on.net with ESMTP; 31 Jul 2014 10:31:53 +0930 Received: from disappointment.disaster.area ([192.168.1.110] helo=disappointment) by dastard with esmtp (Exim 4.80) (envelope-from ) id 1XCeki-0004nI-A3 for xfs@oss.sgi.com; Thu, 31 Jul 2014 11:01:52 +1000 Received: from dave by disappointment with local (Exim 4.82_1-5b7a7c0-XX) (envelope-from ) id 1XCeki-0000AI-9E for xfs@oss.sgi.com; Thu, 31 Jul 2014 11:01:52 +1000 From: Dave Chinner To: xfs@oss.sgi.com Subject: [PATCH 3/4] xfs: quotacheck leaves dquot buffers without verifiers Date: Thu, 31 Jul 2014 11:01:48 +1000 X-ASG-Orig-Subj: [PATCH 3/4] xfs: quotacheck leaves dquot buffers without verifiers Message-Id: <1406768509-32556-4-git-send-email-david@fromorbit.com> X-Mailer: git-send-email 2.0.0 In-Reply-To: <1406768509-32556-1-git-send-email-david@fromorbit.com> References: <1406768509-32556-1-git-send-email-david@fromorbit.com> X-Barracuda-Connect: ipmail05.adl6.internode.on.net[150.101.137.143] X-Barracuda-Start-Time: 1406768516 X-Barracuda-URL: http://192.48.157.11:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 X-Barracuda-Spam-Score: 0.00 X-Barracuda-Spam-Status: No, SCORE=0.00 using per-user scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.7 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.7979 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- From: Dave Chinner When running xfs/305, I noticed that quotacheck was flushing dquot buffers that did not have the xfs_dquot_buf_ops verifiers attached: XFS (vdb): _xfs_buf_ioapply: no ops on block 0x1dc8/0x1dc8 ffff880052489000: 44 51 01 04 00 00 65 b8 00 00 00 00 00 00 00 00 DQ....e......... ffff880052489010: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ ffff880052489020: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ ffff880052489030: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................ CPU: 1 PID: 2376 Comm: mount Not tainted 3.16.0-rc2-dgc+ #306 Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS Bochs 01/01/2011 ffff88006fe38000 ffff88004a0ffae8 ffffffff81cf1cca 0000000000000001 ffff88004a0ffb88 ffffffff814d50ca 000010004a0ffc70 0000000000000000 ffff88006be56dc4 0000000000000021 0000000000001dc8 ffff88007c773d80 Call Trace: [] dump_stack+0x45/0x56 [] _xfs_buf_ioapply+0x3ca/0x3d0 [] ? wake_up_state+0x20/0x20 [] ? xfs_bdstrat_cb+0x55/0xb0 [] xfs_buf_iorequest+0x6b/0xd0 [] xfs_bdstrat_cb+0x55/0xb0 [] __xfs_buf_delwri_submit+0x15b/0x220 [] ? xfs_buf_delwri_submit+0x30/0x90 [] xfs_buf_delwri_submit+0x30/0x90 [] xfs_qm_quotacheck+0x17d/0x3c0 [] xfs_qm_mount_quotas+0x151/0x1e0 [] xfs_mountfs+0x56c/0x7d0 [] xfs_fs_fill_super+0x2c2/0x340 [] mount_bdev+0x194/0x1d0 [] ? xfs_finish_flags+0x170/0x170 [] xfs_fs_mount+0x15/0x20 [] mount_fs+0x39/0x1b0 [] vfs_kern_mount+0x67/0x120 [] do_mount+0x23e/0xad0 [] ? __get_free_pages+0xe/0x50 [] ? copy_mount_options+0x36/0x150 [] SyS_mount+0x83/0xc0 [] tracesys+0xdd/0xe2 This was caused by dquot buffer readahead not attaching a verifier structure to the buffer when readahead was issued, resulting in the followup read of the buffer finding a valid buffer and so not attaching new verifiers to the buffer as part of the read. Also, when a verifier failure occurs, we then read the buffer without verifiers. Attach the verifiers manually after this read so that if the buffer is then written it will be verified that the corruption has been repaired. Further, when flushing a dquot we don't ask for a verifier when reading in the dquot buffer the dquot belongs to. Most of the time this isn't an issue because the buffer is still cached, but when it is not cached it will result in writing the dquot buffer without having the verfier attached. Signed-off-by: Dave Chinner Reviewed-by: Brian Foster --- fs/xfs/xfs_dquot.c | 3 ++- fs/xfs/xfs_qm.c | 8 +++++++- 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/fs/xfs/xfs_dquot.c b/fs/xfs/xfs_dquot.c index 8a44a79..63c2de4 100644 --- a/fs/xfs/xfs_dquot.c +++ b/fs/xfs/xfs_dquot.c @@ -974,7 +974,8 @@ xfs_qm_dqflush( * Get the buffer containing the on-disk dquot */ error = xfs_trans_read_buf(mp, NULL, mp->m_ddev_targp, dqp->q_blkno, - mp->m_quotainfo->qi_dqchunklen, 0, &bp, NULL); + mp->m_quotainfo->qi_dqchunklen, 0, &bp, + &xfs_dquot_buf_ops); if (error) goto out_unlock; diff --git a/fs/xfs/xfs_qm.c b/fs/xfs/xfs_qm.c index 7e1a80b..1023210 100644 --- a/fs/xfs/xfs_qm.c +++ b/fs/xfs/xfs_qm.c @@ -911,6 +911,12 @@ xfs_qm_dqiter_bufs( if (error) break; + /* + * A corrupt buffer might not have a verifier attached, so + * make sure we have the correct one attached before writeback + * occurs. + */ + bp->b_ops = &xfs_dquot_buf_ops; xfs_qm_reset_dqcounts(mp, bp, firstid, type); xfs_buf_delwri_queue(bp, buffer_list); xfs_buf_relse(bp); @@ -996,7 +1002,7 @@ xfs_qm_dqiterate( xfs_buf_readahead(mp->m_ddev_targp, XFS_FSB_TO_DADDR(mp, rablkno), mp->m_quotainfo->qi_dqchunklen, - NULL); + &xfs_dquot_buf_ops); rablkno++; } } -- 2.0.0 From dave@fromorbit.com Wed Jul 30 20:02:01 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: xfs@oss.sgi.com Delivered-To: xfs@oss.sgi.com Received: from relay.sgi.com (relay3.corp.sgi.com [198.149.34.15]) by oss.sgi.com (Postfix) with ESMTP id 08C0A7F99 for ; Wed, 30 Jul 2014 20:02:01 -0500 (CDT) Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by relay3.corp.sgi.com (Postfix) with ESMTP id 7DC11AC003 for ; Wed, 30 Jul 2014 18:01:57 -0700 (PDT) X-ASG-Debug-ID: 1406768514-04cb6c555c49d60001-NocioJ Received: from ipmail05.adl6.internode.on.net (ipmail05.adl6.internode.on.net [150.101.137.143]) by cuda.sgi.com with ESMTP id f80RHxOEuS73s8OO for ; Wed, 30 Jul 2014 18:01:55 -0700 (PDT) X-Barracuda-Envelope-From: dave@fromorbit.com X-Barracuda-Apparent-Source-IP: 150.101.137.143 X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: AgUQAGiU2VN5LHOdPGdsb2JhbABPCoMOgSmHL6gJAQEBAQEBBod4gwWZJhcFAQEBATg2hAQBBScvMwgYMTkDBxQZiEHAbYV8iGwIeYQ0BadMF4wvKy+BAw Received: from ppp121-44-115-157.lns20.syd6.internode.on.net (HELO dastard) ([121.44.115.157]) by ipmail05.adl6.internode.on.net with ESMTP; 31 Jul 2014 10:31:53 +0930 Received: from disappointment.disaster.area ([192.168.1.110] helo=disappointment) by dastard with esmtp (Exim 4.80) (envelope-from ) id 1XCeki-0004nG-8l for xfs@oss.sgi.com; Thu, 31 Jul 2014 11:01:52 +1000 Received: from dave by disappointment with local (Exim 4.82_1-5b7a7c0-XX) (envelope-from ) id 1XCeki-0000A8-7s for xfs@oss.sgi.com; Thu, 31 Jul 2014 11:01:52 +1000 From: Dave Chinner To: xfs@oss.sgi.com Subject: [PATCH 1/4] xfs: catch buffers written without verifiers attached Date: Thu, 31 Jul 2014 11:01:46 +1000 X-ASG-Orig-Subj: [PATCH 1/4] xfs: catch buffers written without verifiers attached Message-Id: <1406768509-32556-2-git-send-email-david@fromorbit.com> X-Mailer: git-send-email 2.0.0 In-Reply-To: <1406768509-32556-1-git-send-email-david@fromorbit.com> References: <1406768509-32556-1-git-send-email-david@fromorbit.com> X-Barracuda-Connect: ipmail05.adl6.internode.on.net[150.101.137.143] X-Barracuda-Start-Time: 1406768514 X-Barracuda-URL: http://192.48.176.15:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 X-Barracuda-Spam-Score: 0.00 X-Barracuda-Spam-Status: No, SCORE=0.00 using per-user scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.7 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.7979 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- From: Dave Chinner We recently had a bug where buffers were slipping through log recovery without any verifier attached to them. This was resulting in on-disk CRC mismatches for valid data. Add some warning code to catch this occurrence so that we catch such bugs during development rather than not being aware they exist. Note that we cannot do this verification unconditionally as non-CRC filesystems don't always attach verifiers to the buffers being written. e.g. during log recovery we cannot identify all the different types of buffers correctly on non-CRC filesystems, so we can't attach the correct verifiers in all cases and so we don't attach any. Hence we don't want on non-CRC filesystems to avoid spamming the logs with false indications. Signed-off-by: Dave Chinner --- fs/xfs/xfs_buf.c | 14 ++++++++++++++ fs/xfs/xfs_log.c | 8 +++++++- 2 files changed, 21 insertions(+), 1 deletion(-) diff --git a/fs/xfs/xfs_buf.c b/fs/xfs/xfs_buf.c index a6dc83e..cd7b8ca 100644 --- a/fs/xfs/xfs_buf.c +++ b/fs/xfs/xfs_buf.c @@ -1330,6 +1330,20 @@ _xfs_buf_ioapply( SHUTDOWN_CORRUPT_INCORE); return; } + } else if (bp->b_bn != XFS_BUF_DADDR_NULL) { + struct xfs_mount *mp = bp->b_target->bt_mount; + + /* + * non-crc filesystems don't attach verifiers during + * log recovery, so don't warn for such filesystems. + */ + if (xfs_sb_version_hascrc(&mp->m_sb)) { + xfs_warn(mp, + "%s: no ops on block 0x%llx/0x%x", + __func__, bp->b_bn, bp->b_length); + xfs_hex_dump(bp->b_addr, 64); + dump_stack(); + } } } else if (bp->b_flags & XBF_READ_AHEAD) { rw = READA; diff --git a/fs/xfs/xfs_log.c b/fs/xfs/xfs_log.c index 149a4a5..ca4fd5b 100644 --- a/fs/xfs/xfs_log.c +++ b/fs/xfs/xfs_log.c @@ -1378,8 +1378,14 @@ xlog_alloc_log( xlog_get_iclog_buffer_size(mp, log); + /* + * Use a NULL block for the extra log buffer used during splits so that + * it will trigger errors if we ever try to do IO on it without first + * having set it up properly. + */ error = -ENOMEM; - bp = xfs_buf_alloc(mp->m_logdev_targp, 0, BTOBB(log->l_iclog_size), 0); + bp = xfs_buf_alloc(mp->m_logdev_targp, XFS_BUF_DADDR_NULL, + BTOBB(log->l_iclog_size), 0); if (!bp) goto out_free_log; -- 2.0.0 From dave@fromorbit.com Wed Jul 30 20:02:02 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: xfs@oss.sgi.com Delivered-To: xfs@oss.sgi.com Received: from relay.sgi.com (relay1.corp.sgi.com [137.38.102.111]) by oss.sgi.com (Postfix) with ESMTP id 256297F99 for ; Wed, 30 Jul 2014 20:02:02 -0500 (CDT) Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by relay1.corp.sgi.com (Postfix) with ESMTP id 131458F8074 for ; Wed, 30 Jul 2014 18:01:58 -0700 (PDT) X-ASG-Debug-ID: 1406768514-04cb6c555c49d60002-NocioJ Received: from ipmail05.adl6.internode.on.net (ipmail05.adl6.internode.on.net [150.101.137.143]) by cuda.sgi.com with ESMTP id kllbVf113RmEFwJe for ; Wed, 30 Jul 2014 18:01:56 -0700 (PDT) X-Barracuda-Envelope-From: dave@fromorbit.com X-Barracuda-Apparent-Source-IP: 150.101.137.143 X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: AtdWAGiU2VN5LHOdPGdsb2JhbABZgw0BAVEvKI08oWQCFgEBAQEBAQZuAZpSD4hTFwUBAQEBOBkdhGA7gQIDB4huDplDpxyFfIdAgi2ENAWxfIIWKy8B Received: from ppp121-44-115-157.lns20.syd6.internode.on.net (HELO dastard) ([121.44.115.157]) by ipmail05.adl6.internode.on.net with ESMTP; 31 Jul 2014 10:31:53 +0930 Received: from disappointment.disaster.area ([192.168.1.110] helo=disappointment) by dastard with esmtp (Exim 4.80) (envelope-from ) id 1XCeki-0004nF-8C for xfs@oss.sgi.com; Thu, 31 Jul 2014 11:01:52 +1000 Received: from dave by disappointment with local (Exim 4.82_1-5b7a7c0-XX) (envelope-from ) id 1XCeki-0000A5-71 for xfs@oss.sgi.com; Thu, 31 Jul 2014 11:01:52 +1000 From: Dave Chinner To: xfs@oss.sgi.com Subject: [PATCH 0/4 V2] xfs: missing verifier fixes Date: Thu, 31 Jul 2014 11:01:45 +1000 X-ASG-Orig-Subj: [PATCH 0/4 V2] xfs: missing verifier fixes Message-Id: <1406768509-32556-1-git-send-email-david@fromorbit.com> X-Mailer: git-send-email 2.0.0 X-Barracuda-Connect: ipmail05.adl6.internode.on.net[150.101.137.143] X-Barracuda-Start-Time: 1406768516 X-Barracuda-URL: http://192.48.176.15:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 X-Barracuda-Spam-Score: 0.00 X-Barracuda-Spam-Status: No, SCORE=0.00 using per-user scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.7 tests=BSF_SC0_SA717 X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.7979 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.00 BSF_SC0_SA717 Custom Rule BSF_SC0_SA717 Hi folks, Updated version of the patchset posted yesterday here: http://oss.sgi.com/archives/xfs/2014-07/msg00430.html Version 2: - use XFS_BUF_DADDR_NULL - print buffer addr/length pair, not two addrs - remove extraneous xfs_sb_version_hascrc() checks - fix m_qflags check issue. From dave@fromorbit.com Wed Jul 30 20:01:59 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: xfs@oss.sgi.com Delivered-To: xfs@oss.sgi.com Received: from relay.sgi.com (relay1.corp.sgi.com [137.38.102.111]) by oss.sgi.com (Postfix) with ESMTP id CB7577F9A for ; Wed, 30 Jul 2014 20:01:59 -0500 (CDT) Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by relay1.corp.sgi.com (Postfix) with ESMTP id B95018F8074 for ; Wed, 30 Jul 2014 18:01:59 -0700 (PDT) X-ASG-Debug-ID: 1406768514-04cb6c555c49d60003-NocioJ Received: from ipmail05.adl6.internode.on.net (ipmail05.adl6.internode.on.net [150.101.137.143]) by cuda.sgi.com with ESMTP id BORhyVaWAoVbXhTM for ; Wed, 30 Jul 2014 18:01:58 -0700 (PDT) X-Barracuda-Envelope-From: dave@fromorbit.com X-Barracuda-Apparent-Source-IP: 150.101.137.143 X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: ApgLAGiU2VN5LHOdPGdsb2JhbABZgw6BKYcvqAkBAQEBAQEGpCMXBQEBAQE4NoQEAQUnLzMIGDE5AwcUGYhBwG2FfIkDhR4FtBIrL4EEAR4G Received: from ppp121-44-115-157.lns20.syd6.internode.on.net (HELO dastard) ([121.44.115.157]) by ipmail05.adl6.internode.on.net with ESMTP; 31 Jul 2014 10:31:53 +0930 Received: from disappointment.disaster.area ([192.168.1.110] helo=disappointment) by dastard with esmtp (Exim 4.80) (envelope-from ) id 1XCeki-0004nJ-AW for xfs@oss.sgi.com; Thu, 31 Jul 2014 11:01:52 +1000 Received: from dave by disappointment with local (Exim 4.82_1-5b7a7c0-XX) (envelope-from ) id 1XCeki-0000AN-9i for xfs@oss.sgi.com; Thu, 31 Jul 2014 11:01:52 +1000 From: Dave Chinner To: xfs@oss.sgi.com Subject: [PATCH 4/4] xfs: dquot recovery needs verifiers Date: Thu, 31 Jul 2014 11:01:49 +1000 X-ASG-Orig-Subj: [PATCH 4/4] xfs: dquot recovery needs verifiers Message-Id: <1406768509-32556-5-git-send-email-david@fromorbit.com> X-Mailer: git-send-email 2.0.0 In-Reply-To: <1406768509-32556-1-git-send-email-david@fromorbit.com> References: <1406768509-32556-1-git-send-email-david@fromorbit.com> X-Barracuda-Connect: ipmail05.adl6.internode.on.net[150.101.137.143] X-Barracuda-Start-Time: 1406768517 X-Barracuda-URL: http://192.48.176.15:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 X-Barracuda-Spam-Score: 0.00 X-Barracuda-Spam-Status: No, SCORE=0.00 using per-user scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.7 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.7979 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- From: Dave Chinner dquot recovery should add verifiers to the dquot buffers that it recovers changes into. Unfortunately, it doesn't attached the verifiers to the buffers in a consistent manner. For example, xlog_recover_dquot_pass2() reads dquot buffers without a verifier and then writes it without ever having attached a verifier to the buffer. Further, dquot buffer recovery may write a dquot buffer that has not been modified, or indeed, shoul dbe written because quotas are not enabled and hence changes to the buffer were not replayed. In this case, we again write buffers without verifiers attached because that doesn't happen until after the buffer changes have been replayed. Signed-off-by: Dave Chinner --- fs/xfs/xfs_log_recover.c | 44 +++++++++++++++++++++++--------------------- 1 file changed, 23 insertions(+), 21 deletions(-) diff --git a/fs/xfs/xfs_log_recover.c b/fs/xfs/xfs_log_recover.c index 8a7d8a7..1fd5787 100644 --- a/fs/xfs/xfs_log_recover.c +++ b/fs/xfs/xfs_log_recover.c @@ -2399,8 +2399,11 @@ xlog_recover_do_reg_buffer( * Simple algorithm: if we have found a QUOTAOFF log item of the same type * (ie. USR or GRP), then just toss this buffer away; don't recover it. * Else, treat it as a regular buffer and do recovery. + * + * Return false if the buffer was tossed and true if we recovered the buffer to + * indicate to the caller if the buffer needs writing. */ -STATIC void +STATIC bool xlog_recover_do_dquot_buffer( struct xfs_mount *mp, struct xlog *log, @@ -2415,9 +2418,8 @@ xlog_recover_do_dquot_buffer( /* * Filesystems are required to send in quota flags at mount time. */ - if (mp->m_qflags == 0) { - return; - } + if (!mp->m_qflags) + return false; type = 0; if (buf_f->blf_flags & XFS_BLF_UDQUOT_BUF) @@ -2430,9 +2432,10 @@ xlog_recover_do_dquot_buffer( * This type of quotas was turned off, so ignore this buffer */ if (log->l_quotaoffs_flag & type) - return; + return false; xlog_recover_do_reg_buffer(mp, item, bp, buf_f); + return true; } /* @@ -2525,14 +2528,18 @@ xlog_recover_buffer_pass2( if (buf_f->blf_flags & XFS_BLF_INODE_BUF) { error = xlog_recover_do_inode_buffer(mp, item, bp, buf_f); + if (error) + goto out_release; } else if (buf_f->blf_flags & (XFS_BLF_UDQUOT_BUF|XFS_BLF_PDQUOT_BUF|XFS_BLF_GDQUOT_BUF)) { - xlog_recover_do_dquot_buffer(mp, log, item, bp, buf_f); + bool dirty; + + dirty = xlog_recover_do_dquot_buffer(mp, log, item, bp, buf_f); + if (!dirty) + goto out_release; } else { xlog_recover_do_reg_buffer(mp, item, bp, buf_f); } - if (error) - goto out_release; /* * Perform delayed write on the buffer. Asynchronous writes will be @@ -3022,9 +3029,16 @@ xlog_recover_dquot_pass2( return -EIO; ASSERT(dq_f->qlf_len == 1); + /* + * At this point we are assuming that the dquots have been allocated + * and hence the buffer has valid dquots stamped in it. It should, + * therefore, pass verifier validation. If the dquot is bad, then the + * we'll return an error here, so we don't need to specifically check + * the dquot in the buffer after the verifier has run. + */ error = xfs_trans_read_buf(mp, NULL, mp->m_ddev_targp, dq_f->qlf_blkno, XFS_FSB_TO_BB(mp, dq_f->qlf_len), 0, &bp, - NULL); + &xfs_dquot_buf_ops); if (error) return error; @@ -3032,18 +3046,6 @@ xlog_recover_dquot_pass2( ddq = (xfs_disk_dquot_t *)xfs_buf_offset(bp, dq_f->qlf_boffset); /* - * At least the magic num portion should be on disk because this - * was among a chunk of dquots created earlier, and we did some - * minimal initialization then. - */ - error = xfs_dqcheck(mp, ddq, dq_f->qlf_id, 0, XFS_QMOPT_DOWARN, - "xlog_recover_dquot_pass2"); - if (error) { - xfs_buf_relse(bp); - return -EIO; - } - - /* * If the dquot has an LSN in it, recover the dquot only if it's less * than the lsn of the transaction we are replaying. */ -- 2.0.0 From dave@fromorbit.com Wed Jul 30 20:02:04 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: xfs@oss.sgi.com Delivered-To: xfs@oss.sgi.com Received: from relay.sgi.com (relay2.corp.sgi.com [137.38.102.29]) by oss.sgi.com (Postfix) with ESMTP id 1F0D97FA5 for ; Wed, 30 Jul 2014 20:02:04 -0500 (CDT) Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by relay2.corp.sgi.com (Postfix) with ESMTP id D496A304043 for ; Wed, 30 Jul 2014 18:02:00 -0700 (PDT) X-ASG-Debug-ID: 1406768516-04bdf03d434e510002-NocioJ Received: from ipmail05.adl6.internode.on.net (ipmail05.adl6.internode.on.net [150.101.137.143]) by cuda.sgi.com with ESMTP id 1vA6n3WhRjg1jQ9P for ; Wed, 30 Jul 2014 18:01:58 -0700 (PDT) X-Barracuda-Envelope-From: dave@fromorbit.com X-Barracuda-Apparent-Source-IP: 150.101.137.143 X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: AgUQAGiU2VN5LHOdPGdsb2JhbABZgw6BKYcvqAkBAQEBAQEGh3iDBZkmFwUBAQEBODaEBAEFJyAPHhUIGDEhGAMHFBmILgMQrjCLCw2HJYV8hyOGfgWZX41tF4IvigArL4EDAh4EAg Received: from ppp121-44-115-157.lns20.syd6.internode.on.net (HELO dastard) ([121.44.115.157]) by ipmail05.adl6.internode.on.net with ESMTP; 31 Jul 2014 10:31:53 +0930 Received: from disappointment.disaster.area ([192.168.1.110] helo=disappointment) by dastard with esmtp (Exim 4.80) (envelope-from ) id 1XCeki-0004nH-9Z for xfs@oss.sgi.com; Thu, 31 Jul 2014 11:01:52 +1000 Received: from dave by disappointment with local (Exim 4.82_1-5b7a7c0-XX) (envelope-from ) id 1XCeki-0000AD-8T for xfs@oss.sgi.com; Thu, 31 Jul 2014 11:01:52 +1000 From: Dave Chinner To: xfs@oss.sgi.com Subject: [PATCH 2/4] xfs: ensure verifiers are attached to recovered buffers Date: Thu, 31 Jul 2014 11:01:47 +1000 X-ASG-Orig-Subj: [PATCH 2/4] xfs: ensure verifiers are attached to recovered buffers Message-Id: <1406768509-32556-3-git-send-email-david@fromorbit.com> X-Mailer: git-send-email 2.0.0 In-Reply-To: <1406768509-32556-1-git-send-email-david@fromorbit.com> References: <1406768509-32556-1-git-send-email-david@fromorbit.com> X-Barracuda-Connect: ipmail05.adl6.internode.on.net[150.101.137.143] X-Barracuda-Start-Time: 1406768517 X-Barracuda-URL: http://192.48.157.11:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 X-Barracuda-Spam-Score: 0.00 X-Barracuda-Spam-Status: No, SCORE=0.00 using per-user scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.7 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.7979 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- From: Dave Chinner Crash testing of CRC enabled filesystems has resulted in a number of reports of bad CRCs being detected after the filesystem was mounted. Errors such as the following were being seen: XFS (sdb3): Mounting V5 Filesystem XFS (sdb3): Starting recovery (logdev: internal) XFS (sdb3): Metadata CRC error detected at xfs_agf_read_verify+0x5a/0x100 [xfs], block 0x1 XFS (sdb3): Unmount and run xfs_repair XFS (sdb3): First 64 bytes of corrupted metadata buffer: ffff880136ffd600: 58 41 47 46 00 00 00 01 00 00 00 00 00 0f aa 40 XAGF...........@ ffff880136ffd610: 00 02 6d 53 00 02 77 f8 00 00 00 00 00 00 00 01 ..mS..w......... ffff880136ffd620: 00 00 00 01 00 00 00 00 00 00 00 00 00 00 00 03 ................ ffff880136ffd630: 00 00 00 04 00 08 81 d0 00 08 81 a7 00 00 00 00 ................ XFS (sdb3): metadata I/O error: block 0x1 ("xfs_trans_read_buf_map") error 74 numblks 1 The errors were typically being seen in AGF, AGI and their related btree block buffers some time after log recovery had run. Often it wasn't until later subsequent mounts that the problem was discovered. The common symptom was a buffer with the correct contents, but a CRC and an LSN that matched an older version of the contents. Some debug added to _xfs_buf_ioapply() indicated that buffers were being written without verifiers attached to them from log recovery, and Jan Kara isolated the cause to log recovery readahead an dit's interactions with buffers that had a more recent LSN on disk than the transaction being recovered. In this case, the buffer did not get a verifier attached, and os when the second phase of log recovery ran and recovered EFIs and unlinked inodes, the buffers were modified and written without the verifier running. Hence they had up to date contents, but stale LSNs and CRCs. Fix it by attaching verifiers to buffers we skip due to future LSN values so they don't escape into the buffer cache without the correct verifier attached. This patch is based on analysis and a patch from Jan Kara. cc: Reported-by: Jan Kara Reported-by: Fanael Linithien Reported-by: Grozdan Signed-off-by: Dave Chinner Reviewed-by: Brian Foster --- fs/xfs/xfs_log_recover.c | 51 +++++++++++++++++++++++++++++------------------- 1 file changed, 31 insertions(+), 20 deletions(-) diff --git a/fs/xfs/xfs_log_recover.c b/fs/xfs/xfs_log_recover.c index fbc2362..8a7d8a7 100644 --- a/fs/xfs/xfs_log_recover.c +++ b/fs/xfs/xfs_log_recover.c @@ -2126,6 +2126,17 @@ xlog_recover_validate_buf_type( __uint16_t magic16; __uint16_t magicda; + /* + * We can only do post recovery validation on items on CRC enabled + * fielsystems as we need to know when the buffer was written to be able + * to determine if we should have replayed the item. If we replay old + * metadata over a newer buffer, then it will enter a temporarily + * inconsistent state resulting in verification failures. Hence for now + * just avoid the verification stage for non-crc filesystems + */ + if (!xfs_sb_version_hascrc(&mp->m_sb)) + return; + magic32 = be32_to_cpu(*(__be32 *)bp->b_addr); magic16 = be16_to_cpu(*(__be16*)bp->b_addr); magicda = be16_to_cpu(info->magic); @@ -2163,8 +2174,6 @@ xlog_recover_validate_buf_type( bp->b_ops = &xfs_agf_buf_ops; break; case XFS_BLFT_AGFL_BUF: - if (!xfs_sb_version_hascrc(&mp->m_sb)) - break; if (magic32 != XFS_AGFL_MAGIC) { xfs_warn(mp, "Bad AGFL block magic!"); ASSERT(0); @@ -2197,10 +2206,6 @@ xlog_recover_validate_buf_type( #endif break; case XFS_BLFT_DINO_BUF: - /* - * we get here with inode allocation buffers, not buffers that - * track unlinked list changes. - */ if (magic16 != XFS_DINODE_MAGIC) { xfs_warn(mp, "Bad INODE block magic!"); ASSERT(0); @@ -2280,8 +2285,6 @@ xlog_recover_validate_buf_type( bp->b_ops = &xfs_attr3_leaf_buf_ops; break; case XFS_BLFT_ATTR_RMT_BUF: - if (!xfs_sb_version_hascrc(&mp->m_sb)) - break; if (magic32 != XFS_ATTR3_RMT_MAGIC) { xfs_warn(mp, "Bad attr remote magic!"); ASSERT(0); @@ -2388,16 +2391,7 @@ xlog_recover_do_reg_buffer( /* Shouldn't be any more regions */ ASSERT(i == item->ri_total); - /* - * We can only do post recovery validation on items on CRC enabled - * fielsystems as we need to know when the buffer was written to be able - * to determine if we should have replayed the item. If we replay old - * metadata over a newer buffer, then it will enter a temporarily - * inconsistent state resulting in verification failures. Hence for now - * just avoid the verification stage for non-crc filesystems - */ - if (xfs_sb_version_hascrc(&mp->m_sb)) - xlog_recover_validate_buf_type(mp, bp, buf_f); + xlog_recover_validate_buf_type(mp, bp, buf_f); } /* @@ -2505,12 +2499,29 @@ xlog_recover_buffer_pass2( } /* - * recover the buffer only if we get an LSN from it and it's less than + * Recover the buffer only if we get an LSN from it and it's less than * the lsn of the transaction we are replaying. + * + * Note that we have to be extremely careful of readahead here. + * Readahead does not attach verfiers to the buffers so if we don't + * actually do any replay after readahead because of the LSN we found + * in the buffer if more recent than that current transaction then we + * need to attach the verifier directly. Failure to do so can lead to + * future recovery actions (e.g. EFI and unlinked list recovery) can + * operate on the buffers and they won't get the verifier attached. This + * can lead to blocks on disk having the correct content but a stale + * CRC. + * + * It is safe to assume these clean buffers are currently up to date. + * If the buffer is dirtied by a later transaction being replayed, then + * the verifier will be reset to match whatever recover turns that + * buffer into. */ lsn = xlog_recover_get_buf_lsn(mp, bp); - if (lsn && lsn != -1 && XFS_LSN_CMP(lsn, current_lsn) >= 0) + if (lsn && lsn != -1 && XFS_LSN_CMP(lsn, current_lsn) >= 0) { + xlog_recover_validate_buf_type(mp, bp, buf_f); goto out_release; + } if (buf_f->blf_flags & XFS_BLF_INODE_BUF) { error = xlog_recover_do_inode_buffer(mp, item, bp, buf_f); -- 2.0.0 From eguan@redhat.com Wed Jul 30 22:32:48 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: xfs@oss.sgi.com Delivered-To: xfs@oss.sgi.com Received: from relay.sgi.com (relay3.corp.sgi.com [198.149.34.15]) by oss.sgi.com (Postfix) with ESMTP id 7E2077F7B for ; Wed, 30 Jul 2014 22:32:48 -0500 (CDT) Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by relay3.corp.sgi.com (Postfix) with ESMTP id F2666AC004 for ; Wed, 30 Jul 2014 20:32:44 -0700 (PDT) X-ASG-Debug-ID: 1406777562-04cb6c555e4e620001-NocioJ Received: from mx1.redhat.com (mx1.redhat.com [209.132.183.28]) by cuda.sgi.com with ESMTP id MsSObZ1agBQrsIjO (version=TLSv1 cipher=AES256-SHA bits=256 verify=NO) for ; Wed, 30 Jul 2014 20:32:43 -0700 (PDT) X-Barracuda-Envelope-From: eguan@redhat.com X-Barracuda-Apparent-Source-IP: 209.132.183.28 X-ASG-Whitelist: Client Received: from int-mx10.intmail.prod.int.phx2.redhat.com (int-mx10.intmail.prod.int.phx2.redhat.com [10.5.11.23]) by mx1.redhat.com (8.14.4/8.14.4) with ESMTP id s6V3WeWD032167 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Wed, 30 Jul 2014 23:32:40 -0400 Received: from localhost (vpn1-112-210.nay.redhat.com [10.66.112.210]) by int-mx10.intmail.prod.int.phx2.redhat.com (8.14.4/8.14.4) with ESMTP id s6V3WdFE025231; Wed, 30 Jul 2014 23:32:40 -0400 Date: Thu, 31 Jul 2014 11:32:38 +0800 From: Eryu Guan To: Brian Foster Cc: Eryu Guan , Boris Ranto , Eric Sandeen , fstests@vger.kernel.org, xfs@oss.sgi.com Subject: Re: [PATCH 1/2] xfs: new case to test inode allocations in post-growfs disk space Message-ID: <20140731033238.GY7382@dhcp-13-216.nay.redhat.com> X-ASG-Orig-Subj: Re: [PATCH 1/2] xfs: new case to test inode allocations in post-growfs disk space References: <1405529554-31225-1-git-send-email-eguan@redhat.com> <20140721134638.GA45794@bfoster.bfoster> <20140724103658.GB6210@dhcp-13-216.nay.redhat.com> <20140724130646.GA37832@bfoster.bfoster> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20140724130646.GA37832@bfoster.bfoster> User-Agent: Mutt/1.5.23 (2014-03-12) X-Scanned-By: MIMEDefang 2.68 on 10.5.11.23 X-Barracuda-Connect: mx1.redhat.com[209.132.183.28] X-Barracuda-Start-Time: 1406777563 X-Barracuda-Encrypted: AES256-SHA X-Barracuda-URL: http://192.48.176.15:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 On Thu, Jul 24, 2014 at 09:06:47AM -0400, Brian Foster wrote: > On Thu, Jul 24, 2014 at 06:36:58PM +0800, Eryu Guan wrote: > > On Mon, Jul 21, 2014 at 09:46:38AM -0400, Brian Foster wrote: > > > On Thu, Jul 17, 2014 at 12:52:33AM +0800, Eryu Guan wrote: > > [snip] > > > > + > > > > +create_file() > > > > +{ > > > > + local dir=$1 > > > > + local i=0 > > > > + > > > > + while echo -n >$dir/testfile_$i; do > > > > + let i=$i+1 > > > > + done > > > > +} > > > > + > > > > +# get standard environment, filters and checks > > > > +. ./common/rc > > > > +. ./common/filter > > > > + > > > > +# real QA test starts here > > > > +_supported_fs xfs > > > > +_supported_os Linux > > > > + > > > > +_require_scratch > > > > + > > > > +rm -f $seqres.full > > > > +echo "Silence is golden" > > > > + > > > > +_scratch_mkfs_sized $((128 * 1024 * 1024)) | _filter_mkfs >$seqres.full 2>$tmp.mkfs > > > > +# get original data blocks number > > > > +. $tmp.mkfs > > > > +_scratch_mount > > > > + > > > > > > > Hi Brian, > > > > Thanks for the review, and sorry for the late response.. > > > > > You could probably even make this smaller and make the test quicker. > > > E.g., I can create an fs down to 20M or so without any problems. Also, > > > setting imaxpct=0 might be a good idea so you don't hit that artificial > > > limit. > > > > Yes, a smaller fs could make the test much more quicker. I tested with > > 16M fs and the test time reduced from 70s to ~10s on my test host. > > > > That sounds great. > > > But setting imaxpct=0 could increase the total available inode number > > which could make test run longer. So I tend to use default mkfs > > options here. > > > > True... I don't really want to make a big deal out of imaxpct. I think > the consensus now is that it's a useless relic and will probably be > removed. That does mean this test will eventually use the full fs space > by default and we should make sure it runs in a reasonable amount of > time. FWIW, it seems to in my tests, running in under 2 minutes on a > single spindle. > > The other issue is that if I set imaxpct=1 in my mkfs options, the test > passes. Should it? Is it actually testing what it should be in that > scenario? ;) Note that when imaxpct is set, the 'df -i' information will > be based on the cap that imaxpct sets. E.g., it will show 100% usage > even though we've only used a few MB for inodes. Yes, I can pass the test too with imaxpct=1 set. But I'm not really sure about imaxpct impact on the test result. Eric, do you have any suggestions here? Because I saw you send out the kernel patch to fix this problem :) Thanks, Eryu > > Brian > > > > > > > > +# Create files to consume free inodes in background > > > > +( > > > > + i=0 > > > > + while [ $i -lt 1000 ]; do > > > > + mkdir $SCRATCH_MNT/testdir_$i > > > > + create_file $SCRATCH_MNT/testdir_$i & > > > > + let i=$i+1 > > > > + done > > > > +) >/dev/null 2>&1 & > > > > + > > > > +# Grow fs at the same time, at least x4 > > > > +# doubling or tripling the size couldn't reproduce > > > > +$XFS_GROWFS_PROG -D $((dblocks * 4)) $SCRATCH_MNT >>$seqres.full > > > > + > > > > > > Even though this is still relatively small based on what people probably > > > typically test, we're still making assumptions about the size of the > > > scratch device. It may be better to create the fs as a file on TEST_DEV. > > > Then you could do something like truncate to a fixed starting size, mkfs > > > at ~20MB and just growfs to the full size of the file. A 4x grow at that > > > point is then still only ~80MB, though hopefully it still doesn't run > > > too long on slower machines. > > > > I'll use _require_fs_space here as Dave suggested. > > > > > > > > > +# Wait for background create_file to hit ENOSPC > > > > +wait > > > > + > > > > +# log inode status in $seqres.full for debug purpose > > > > +echo "Inode status after growing fs" >>$seqres.full > > > > +$DF_PROG -i $SCRATCH_MNT >>$seqres.full > > > > + > > > > +# Check free inode count, we expect all free inodes are taken > > > > +free_inode=`_get_free_inode $SCRATCH_MNT` > > > > +if [ $free_inode -gt 0 ]; then > > > > + echo "$free_inode free inodes available, newly added space not being used" > > > > +else > > > > + status=0 > > > > +fi > > > > > > This might not be the best metric either. I believe the free inodes > > > count that 'df -Ti' returns is a somewhat artificial calculation based > > > on the number of free blocks available, since we can do dynamic inode > > > allocation. It doesn't necessarily mean that all blocks can be allocated > > > to inodes however (e.g., due to alignment or extent length constraints), > > > so it might never actually read 0 unless the filesystem is perfectly > > > full. > > > > > > Perhaps consider something like the IUse percentage over a certain > > > threshold? > > > > I'm not sure about the proper percentage here, I'll try %99. But in my > > test on RHEL6 the free inode count is always 0 after test. > > > > Will send out v2 soon. > > > > Thanks, > > Eryu > > > > > > > > Brian > > > > > > > + > > > > +exit > > > > diff --git a/tests/xfs/015.out b/tests/xfs/015.out > > > > new file mode 100644 > > > > index 0000000..fee0fcf > > > > --- /dev/null > > > > +++ b/tests/xfs/015.out > > > > @@ -0,0 +1,2 @@ > > > > +QA output created by 015 > > > > +Silence is golden > > > > diff --git a/tests/xfs/group b/tests/xfs/group > > > > index d5b50b7..0aab336 100644 > > > > --- a/tests/xfs/group > > > > +++ b/tests/xfs/group > > > > @@ -12,6 +12,7 @@ > > > > 012 rw auto quick > > > > 013 auto metadata stress > > > > 014 auto enospc quick quota > > > > +015 auto enospc growfs > > > > 016 rw auto quick > > > > 017 mount auto quick stress > > > > 018 deprecated # log logprint v2log > > > > -- > > > > 1.9.3 > > > > > > > > -- > > > > To unsubscribe from this list: send the line "unsubscribe fstests" in > > > > the body of a message to majordomo@vger.kernel.org > > > > More majordomo info at http://vger.kernel.org/majordomo-info.html > > > > > > _______________________________________________ > > > xfs mailing list > > > xfs@oss.sgi.com > > > http://oss.sgi.com/mailman/listinfo/xfs > > -- > > To unsubscribe from this list: send the line "unsubscribe fstests" in > > the body of a message to majordomo@vger.kernel.org > > More majordomo info at http://vger.kernel.org/majordomo-info.html > -- > To unsubscribe from this list: send the line "unsubscribe fstests" in > the body of a message to majordomo@vger.kernel.org > More majordomo info at http://vger.kernel.org/majordomo-info.html From dave@fromorbit.com Thu Jul 31 01:12:21 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: xfs@oss.sgi.com Delivered-To: xfs@oss.sgi.com Received: from relay.sgi.com (relay1.corp.sgi.com [137.38.102.111]) by oss.sgi.com (Postfix) with ESMTP id 24F907F98 for ; Thu, 31 Jul 2014 01:12:21 -0500 (CDT) Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by relay1.corp.sgi.com (Postfix) with ESMTP id 047D68F8081 for ; Wed, 30 Jul 2014 23:12:20 -0700 (PDT) X-ASG-Debug-ID: 1406787133-04cb6c555e531b0002-NocioJ Received: from ipmail05.adl6.internode.on.net (ipmail05.adl6.internode.on.net [150.101.137.143]) by cuda.sgi.com with ESMTP id uI8lUu3VClXyHnd2 for ; Wed, 30 Jul 2014 23:12:19 -0700 (PDT) X-Barracuda-Envelope-From: dave@fromorbit.com X-Barracuda-Apparent-Source-IP: 150.101.137.143 X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: ApoLAF3d2VN5LHOdPGdsb2JhbABZgw6BKYcvp34BAQEBAQEGoxuBBxcFAQEBATg2hAQBBScvFgoTCBgxOQMHFBmIQbxThXyJRYRcBbQSKy8 Received: from ppp121-44-115-157.lns20.syd6.internode.on.net (HELO dastard) ([121.44.115.157]) by ipmail05.adl6.internode.on.net with ESMTP; 31 Jul 2014 15:42:12 +0930 Received: from disappointment.disaster.area ([192.168.1.110] helo=disappointment) by dastard with esmtp (Exim 4.80) (envelope-from ) id 1XCjaz-0005TN-V2 for xfs@oss.sgi.com; Thu, 31 Jul 2014 16:12:09 +1000 Received: from dave by disappointment with local (Exim 4.82_1-5b7a7c0-XX) (envelope-from ) id 1XCjaz-00036d-UG for xfs@oss.sgi.com; Thu, 31 Jul 2014 16:12:09 +1000 From: Dave Chinner To: xfs@oss.sgi.com Subject: [PATCH 1/2] xfs: fix swapext ilock deadlock Date: Thu, 31 Jul 2014 16:12:07 +1000 X-ASG-Orig-Subj: [PATCH 1/2] xfs: fix swapext ilock deadlock Message-Id: <1406787128-11897-2-git-send-email-david@fromorbit.com> X-Mailer: git-send-email 2.0.0 In-Reply-To: <1406787128-11897-1-git-send-email-david@fromorbit.com> References: <1406787128-11897-1-git-send-email-david@fromorbit.com> X-Barracuda-Connect: ipmail05.adl6.internode.on.net[150.101.137.143] X-Barracuda-Start-Time: 1406787138 X-Barracuda-URL: http://192.48.176.15:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 X-Barracuda-Spam-Score: 0.00 X-Barracuda-Spam-Status: No, SCORE=0.00 using per-user scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.7 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.7985 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- From: Dave Chinner xfs_swap_extents() holds the ilock over a call to filemap_write_and_wait(), which can then try to write data and take the ilock. That causes a self-deadlock. Fix the deadlock and clean up the code by separating the locking appropriately. Add a lockflags variable to track what locks we are holding as we gain and drop them and cleanup the error handling to always use "out_unlock" with the lockflags variable. Signed-off-by: Dave Chinner --- fs/xfs/xfs_bmap_util.c | 33 ++++++++++++++++++--------------- 1 file changed, 18 insertions(+), 15 deletions(-) diff --git a/fs/xfs/xfs_bmap_util.c b/fs/xfs/xfs_bmap_util.c index bbc748a..3c60c43 100644 --- a/fs/xfs/xfs_bmap_util.c +++ b/fs/xfs/xfs_bmap_util.c @@ -1633,6 +1633,7 @@ xfs_swap_extents( int aforkblks = 0; int taforkblks = 0; __uint64_t tmp; + int lock_flags; tempifp = kmem_alloc(sizeof(xfs_ifork_t), KM_MAYFAIL); if (!tempifp) { @@ -1641,13 +1642,13 @@ xfs_swap_extents( } /* - * we have to do two separate lock calls here to keep lockdep - * happy. If we try to get all the locks in one call, lock will - * report false positives when we drop the ILOCK and regain them - * below. + * Lock up the inodes against other IO and truncate to begin with. + * Then we can ensure the inodes are flushed and have no page cache + * safely. Once we have done this we can take the ilocks and do the rest + * of the checks. */ + lock_flags = XFS_IOLOCK_EXCL; xfs_lock_two_inodes(ip, tip, XFS_IOLOCK_EXCL); - xfs_lock_two_inodes(ip, tip, XFS_ILOCK_EXCL); /* Verify that both files have the same format */ if ((ip->i_d.di_mode & S_IFMT) != (tip->i_d.di_mode & S_IFMT)) { @@ -1666,6 +1667,9 @@ xfs_swap_extents( goto out_unlock; truncate_pagecache_range(VFS_I(tip), 0, -1); + xfs_lock_two_inodes(ip, tip, XFS_ILOCK_EXCL); + lock_flags |= XFS_ILOCK_EXCL; + /* Verify O_DIRECT for ftmp */ if (VFS_I(tip)->i_mapping->nrpages) { error = -EINVAL; @@ -1720,6 +1724,7 @@ xfs_swap_extents( xfs_iunlock(ip, XFS_ILOCK_EXCL); xfs_iunlock(tip, XFS_ILOCK_EXCL); + lock_flags &= ~XFS_ILOCK_EXCL; /* * There is a race condition here since we gave up the @@ -1732,13 +1737,11 @@ xfs_swap_extents( tp = xfs_trans_alloc(mp, XFS_TRANS_SWAPEXT); error = xfs_trans_reserve(tp, &M_RES(mp)->tr_ichange, 0, 0); - if (error) { - xfs_iunlock(ip, XFS_IOLOCK_EXCL); - xfs_iunlock(tip, XFS_IOLOCK_EXCL); - xfs_trans_cancel(tp, 0); - goto out; - } + if (error) + goto out_trans_cancel; + xfs_lock_two_inodes(ip, tip, XFS_ILOCK_EXCL); + lock_flags |= XFS_ILOCK_EXCL; /* * Count the number of extended attribute blocks @@ -1757,8 +1760,8 @@ xfs_swap_extents( goto out_trans_cancel; } - xfs_trans_ijoin(tp, ip, XFS_ILOCK_EXCL | XFS_IOLOCK_EXCL); - xfs_trans_ijoin(tp, tip, XFS_ILOCK_EXCL | XFS_IOLOCK_EXCL); + xfs_trans_ijoin(tp, ip, lock_flags); + xfs_trans_ijoin(tp, tip, lock_flags); /* * Before we've swapped the forks, lets set the owners of the forks @@ -1887,8 +1890,8 @@ out: return error; out_unlock: - xfs_iunlock(ip, XFS_ILOCK_EXCL | XFS_IOLOCK_EXCL); - xfs_iunlock(tip, XFS_ILOCK_EXCL | XFS_IOLOCK_EXCL); + xfs_iunlock(ip, lock_flags); + xfs_iunlock(tip, lock_flags); goto out; out_trans_cancel: -- 2.0.0 From dave@fromorbit.com Thu Jul 31 01:12:22 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: xfs@oss.sgi.com Delivered-To: xfs@oss.sgi.com Received: from relay.sgi.com (relay2.corp.sgi.com [137.38.102.29]) by oss.sgi.com (Postfix) with ESMTP id 6CAC37F98 for ; Thu, 31 Jul 2014 01:12:22 -0500 (CDT) Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by relay2.corp.sgi.com (Postfix) with ESMTP id 4C12C30404E for ; Wed, 30 Jul 2014 23:12:19 -0700 (PDT) X-ASG-Debug-ID: 1406787133-04cb6c555e531b0001-NocioJ Received: from ipmail05.adl6.internode.on.net (ipmail05.adl6.internode.on.net [150.101.137.143]) by cuda.sgi.com with ESMTP id bHvCz101nq7fqZBr for ; Wed, 30 Jul 2014 23:12:14 -0700 (PDT) X-Barracuda-Envelope-From: dave@fromorbit.com X-Barracuda-Apparent-Source-IP: 150.101.137.143 X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: AgEfAF3d2VN5LHOdPGdsb2JhbABZgw0BAYEAh1enfgEBAQEBAQabQYhhFwUBAQEBOBkdhFEPO4ECAweIbpU9lF+SN4V8iW2ENAWxfIIWK4EyJA Received: from ppp121-44-115-157.lns20.syd6.internode.on.net (HELO dastard) ([121.44.115.157]) by ipmail05.adl6.internode.on.net with ESMTP; 31 Jul 2014 15:42:12 +0930 Received: from disappointment.disaster.area ([192.168.1.110] helo=disappointment) by dastard with esmtp (Exim 4.80) (envelope-from ) id 1XCjaz-0005TM-UU for xfs@oss.sgi.com; Thu, 31 Jul 2014 16:12:09 +1000 Received: from dave by disappointment with local (Exim 4.82_1-5b7a7c0-XX) (envelope-from ) id 1XCjaz-00036a-TR for xfs@oss.sgi.com; Thu, 31 Jul 2014 16:12:09 +1000 From: Dave Chinner To: xfs@oss.sgi.com Subject: [PATCH 0/2] xfs: extent swap fixes Date: Thu, 31 Jul 2014 16:12:06 +1000 X-ASG-Orig-Subj: [PATCH 0/2] xfs: extent swap fixes Message-Id: <1406787128-11897-1-git-send-email-david@fromorbit.com> X-Mailer: git-send-email 2.0.0 X-Barracuda-Connect: ipmail05.adl6.internode.on.net[150.101.137.143] X-Barracuda-Start-Time: 1406787133 X-Barracuda-URL: http://192.48.176.15:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 X-Barracuda-Spam-Score: 0.00 X-Barracuda-Spam-Status: No, SCORE=0.00 using per-user scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.7 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.7985 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- Hi folks, The extent swap code is not symmetrical, so correct behaviour is dependent on userspace doing the right thing. If we try to swap extents with the temporary inode in the wrong state we can have interesting failures. These two patches fix those issues and treat the two files identically in terms of the state of the data contained in the files being swapped. Failure to write or remove all cached data from either file will now cause the swap extents operation to fail. Comments, thoughts? Cheers, Dave. From dave@fromorbit.com Thu Jul 31 01:12:21 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: xfs@oss.sgi.com Delivered-To: xfs@oss.sgi.com Received: from relay.sgi.com (relay2.corp.sgi.com [137.38.102.29]) by oss.sgi.com (Postfix) with ESMTP id DCE757F99 for ; Thu, 31 Jul 2014 01:12:21 -0500 (CDT) Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by relay2.corp.sgi.com (Postfix) with ESMTP id 9F54630404E for ; Wed, 30 Jul 2014 23:12:21 -0700 (PDT) X-ASG-Debug-ID: 1406787139-04bdf03d4457af0001-NocioJ Received: from ipmail05.adl6.internode.on.net (ipmail05.adl6.internode.on.net [150.101.137.143]) by cuda.sgi.com with ESMTP id QlLnsxLqGOeCsSxL for ; Wed, 30 Jul 2014 23:12:19 -0700 (PDT) X-Barracuda-Envelope-From: dave@fromorbit.com X-Barracuda-Apparent-Source-IP: 150.101.137.143 X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: ApwLAF3d2VN5LHOdPGdsb2JhbABRCIMOgSmHL6d+AQEBAQEBBoFAoVuBBxcFAQEBATg2hAQBBScvMwgYMTkDBxQZiEG8U4V8iHpLhFwFp1iMOisv Received: from ppp121-44-115-157.lns20.syd6.internode.on.net (HELO dastard) ([121.44.115.157]) by ipmail05.adl6.internode.on.net with ESMTP; 31 Jul 2014 15:42:12 +0930 Received: from disappointment.disaster.area ([192.168.1.110] helo=disappointment) by dastard with esmtp (Exim 4.80) (envelope-from ) id 1XCjaz-0005TO-Vf for xfs@oss.sgi.com; Thu, 31 Jul 2014 16:12:10 +1000 Received: from dave by disappointment with local (Exim 4.82_1-5b7a7c0-XX) (envelope-from ) id 1XCjaz-00036i-Uo for xfs@oss.sgi.com; Thu, 31 Jul 2014 16:12:09 +1000 From: Dave Chinner To: xfs@oss.sgi.com Subject: [PATCH 2/2] xfs: flush both inodes in xfs_swap_extents Date: Thu, 31 Jul 2014 16:12:08 +1000 X-ASG-Orig-Subj: [PATCH 2/2] xfs: flush both inodes in xfs_swap_extents Message-Id: <1406787128-11897-3-git-send-email-david@fromorbit.com> X-Mailer: git-send-email 2.0.0 In-Reply-To: <1406787128-11897-1-git-send-email-david@fromorbit.com> References: <1406787128-11897-1-git-send-email-david@fromorbit.com> X-Barracuda-Connect: ipmail05.adl6.internode.on.net[150.101.137.143] X-Barracuda-Start-Time: 1406787139 X-Barracuda-URL: http://192.48.157.11:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 X-Barracuda-Spam-Score: 0.00 X-Barracuda-Spam-Status: No, SCORE=0.00 using per-user scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.7 tests=FUZZY_VPILL X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.7985 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.00 FUZZY_VPILL BODY: Attempt to obfuscate words in spam From: Dave Chinner We need to treat both inodes identically from a page cache point of view when prepareing them for extent swapping. We don't do this right now - we assume that one of the inodes empty, because that's what xfs_fsr currently does. Remove this assumption from the code. While factoring out the flushing and related checks, move the transactions reservation to immeidately after the flushes so that we don't need to pick up and then drop the ilock to do the transaction reservation. There are no issues with aborting the transaction it if the checks fail before we join the inodes to the transaction and dirty them, so this is a safe change to make. Signed-off-by: Dave Chinner --- fs/xfs/xfs_bmap_util.c | 81 +++++++++++++++++++++++--------------------------- 1 file changed, 37 insertions(+), 44 deletions(-) diff --git a/fs/xfs/xfs_bmap_util.c b/fs/xfs/xfs_bmap_util.c index 3c60c43..2f1e30d 100644 --- a/fs/xfs/xfs_bmap_util.c +++ b/fs/xfs/xfs_bmap_util.c @@ -1619,6 +1619,30 @@ xfs_swap_extents_check_format( } int +xfs_swap_extent_flush( + struct xfs_inode *ip) +{ + int error; + + error = filemap_write_and_wait(VFS_I(ip)->i_mapping); + if (error) + return error; + truncate_pagecache_range(VFS_I(ip), 0, -1); + + /* Verify O_DIRECT for ftmp */ + if (VFS_I(ip)->i_mapping->nrpages) + return -EINVAL; + + /* + * Don't try to swap extents on mmap()d files because we can't lock + * out races against page faults safely. + */ + if (mapping_mapped(VFS_I(ip)->i_mapping)) + return -EBUSY; + return 0; +} + +int xfs_swap_extents( xfs_inode_t *ip, /* target inode */ xfs_inode_t *tip, /* tmp inode */ @@ -1662,26 +1686,28 @@ xfs_swap_extents( goto out_unlock; } - error = filemap_write_and_wait(VFS_I(tip)->i_mapping); + error = xfs_swap_extent_flush(ip); + if (error) + goto out_unlock; + error = xfs_swap_extent_flush(tip); if (error) goto out_unlock; - truncate_pagecache_range(VFS_I(tip), 0, -1); - - xfs_lock_two_inodes(ip, tip, XFS_ILOCK_EXCL); - lock_flags |= XFS_ILOCK_EXCL; - /* Verify O_DIRECT for ftmp */ - if (VFS_I(tip)->i_mapping->nrpages) { - error = -EINVAL; + tp = xfs_trans_alloc(mp, XFS_TRANS_SWAPEXT); + error = xfs_trans_reserve(tp, &M_RES(mp)->tr_ichange, 0, 0); + if (error) { + xfs_trans_cancel(tp, 0); goto out_unlock; } + xfs_lock_two_inodes(ip, tip, XFS_ILOCK_EXCL); + lock_flags |= XFS_ILOCK_EXCL; /* Verify all data are being swapped */ if (sxp->sx_offset != 0 || sxp->sx_length != ip->i_d.di_size || sxp->sx_length != tip->i_d.di_size) { error = -EFAULT; - goto out_unlock; + goto out_trans_cancel; } trace_xfs_swap_extent_before(ip, 0); @@ -1693,7 +1719,7 @@ xfs_swap_extents( xfs_notice(mp, "%s: inode 0x%llx format is incompatible for exchanging.", __func__, ip->i_ino); - goto out_unlock; + goto out_trans_cancel; } /* @@ -1708,41 +1734,8 @@ xfs_swap_extents( (sbp->bs_mtime.tv_sec != VFS_I(ip)->i_mtime.tv_sec) || (sbp->bs_mtime.tv_nsec != VFS_I(ip)->i_mtime.tv_nsec)) { error = -EBUSY; - goto out_unlock; - } - - /* We need to fail if the file is memory mapped. Once we have tossed - * all existing pages, the page fault will have no option - * but to go to the filesystem for pages. By making the page fault call - * vop_read (or write in the case of autogrow) they block on the iolock - * until we have switched the extents. - */ - if (mapping_mapped(VFS_I(ip)->i_mapping)) { - error = -EBUSY; - goto out_unlock; - } - - xfs_iunlock(ip, XFS_ILOCK_EXCL); - xfs_iunlock(tip, XFS_ILOCK_EXCL); - lock_flags &= ~XFS_ILOCK_EXCL; - - /* - * There is a race condition here since we gave up the - * ilock. However, the data fork will not change since - * we have the iolock (locked for truncation too) so we - * are safe. We don't really care if non-io related - * fields change. - */ - truncate_pagecache_range(VFS_I(ip), 0, -1); - - tp = xfs_trans_alloc(mp, XFS_TRANS_SWAPEXT); - error = xfs_trans_reserve(tp, &M_RES(mp)->tr_ichange, 0, 0); - if (error) goto out_trans_cancel; - - xfs_lock_two_inodes(ip, tip, XFS_ILOCK_EXCL); - lock_flags |= XFS_ILOCK_EXCL; - + } /* * Count the number of extended attribute blocks */ -- 2.0.0 From dave@fromorbit.com Thu Jul 31 02:33:26 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: xfs@oss.sgi.com Delivered-To: xfs@oss.sgi.com Received: from relay.sgi.com (relay2.corp.sgi.com [137.38.102.29]) by oss.sgi.com (Postfix) with ESMTP id 4465E7FA2 for ; Thu, 31 Jul 2014 02:33:26 -0500 (CDT) Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by relay2.corp.sgi.com (Postfix) with ESMTP id 31D27304051 for ; Thu, 31 Jul 2014 00:33:26 -0700 (PDT) X-ASG-Debug-ID: 1406792002-04cb6c555e56d90002-NocioJ Received: from ipmail05.adl6.internode.on.net (ipmail05.adl6.internode.on.net [150.101.137.143]) by cuda.sgi.com with ESMTP id McKsAovI4sijCtvr for ; Thu, 31 Jul 2014 00:33:24 -0700 (PDT) X-Barracuda-Envelope-From: dave@fromorbit.com X-Barracuda-Apparent-Source-IP: 150.101.137.143 X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: ApoLAEnw2VN5LHOdPGdsb2JhbABZgw6BKYcvqAEBAQEBAQEGoxuBBRcFAQEBATg2hAQBBScvMwgYMTkDBxQZiEG8UYV8iUUohDQFp1iMOisv Received: from ppp121-44-115-157.lns20.syd6.internode.on.net (HELO dastard) ([121.44.115.157]) by ipmail05.adl6.internode.on.net with ESMTP; 31 Jul 2014 17:03:21 +0930 Received: from disappointment.disaster.area ([192.168.1.110] helo=disappointment) by dastard with esmtp (Exim 4.80) (envelope-from ) id 1XCkrW-0005gV-Ru for xfs@oss.sgi.com; Thu, 31 Jul 2014 17:33:18 +1000 Received: from dave by disappointment with local (Exim 4.82_1-5b7a7c0-XX) (envelope-from ) id 1XCkrW-0003y7-Qi for xfs@oss.sgi.com; Thu, 31 Jul 2014 17:33:18 +1000 From: Dave Chinner To: xfs@oss.sgi.com Subject: [PATCH 3/6] xfs: kill VN_DIRTY() Date: Thu, 31 Jul 2014 17:33:12 +1000 X-ASG-Orig-Subj: [PATCH 3/6] xfs: kill VN_DIRTY() Message-Id: <1406791995-14723-4-git-send-email-david@fromorbit.com> X-Mailer: git-send-email 2.0.0 In-Reply-To: <1406791995-14723-1-git-send-email-david@fromorbit.com> References: <1406791995-14723-1-git-send-email-david@fromorbit.com> X-Barracuda-Connect: ipmail05.adl6.internode.on.net[150.101.137.143] X-Barracuda-Start-Time: 1406792004 X-Barracuda-URL: http://192.48.176.15:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 X-Barracuda-Spam-Score: 0.00 X-Barracuda-Spam-Status: No, SCORE=0.00 using per-user scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.7 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.7987 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- From: Dave Chinner Only one user, so get rid of it. Signed-off-by: Dave Chinner Signed-off-by: Dave Chinner --- fs/xfs/xfs_inode.c | 4 +++- fs/xfs/xfs_vnode.h | 2 -- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/fs/xfs/xfs_inode.c b/fs/xfs/xfs_inode.c index 1a5e068..c929217 100644 --- a/fs/xfs/xfs_inode.c +++ b/fs/xfs/xfs_inode.c @@ -1635,7 +1635,9 @@ xfs_release( truncated = xfs_iflags_test_and_clear(ip, XFS_ITRUNCATED); if (truncated) { xfs_iflags_clear(ip, XFS_IDIRTY_RELEASE); - if (VN_DIRTY(VFS_I(ip)) && ip->i_delayed_blks > 0) { + if (mapping_tagged(VFS_I(ip)->i_mapping, + PAGECACHE_TAG_DIRTY) && + ip->i_delayed_blks > 0) { error = filemap_flush(VFS_I(ip)->i_mapping); if (error) return error; diff --git a/fs/xfs/xfs_vnode.h b/fs/xfs/xfs_vnode.h index e8a7738..07b475a 100644 --- a/fs/xfs/xfs_vnode.h +++ b/fs/xfs/xfs_vnode.h @@ -39,8 +39,6 @@ struct attrlist_cursor_kern; */ #define VN_MAPPED(vp) mapping_mapped(vp->i_mapping) #define VN_CACHED(vp) (vp->i_mapping->nrpages) -#define VN_DIRTY(vp) mapping_tagged(vp->i_mapping, \ - PAGECACHE_TAG_DIRTY) #endif /* __XFS_VNODE_H__ */ -- 2.0.0 From dave@fromorbit.com Thu Jul 31 02:33:28 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: xfs@oss.sgi.com Delivered-To: xfs@oss.sgi.com Received: from relay.sgi.com (relay2.corp.sgi.com [137.38.102.29]) by oss.sgi.com (Postfix) with ESMTP id 36B037FAB for ; Thu, 31 Jul 2014 02:33:28 -0500 (CDT) Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by relay2.corp.sgi.com (Postfix) with ESMTP id 24548304051 for ; Thu, 31 Jul 2014 00:33:24 -0700 (PDT) X-ASG-Debug-ID: 1406792002-04cb6c555e56d90001-NocioJ Received: from ipmail05.adl6.internode.on.net (ipmail05.adl6.internode.on.net [150.101.137.143]) by cuda.sgi.com with ESMTP id IPd4a6wi0PRwchAJ for ; Thu, 31 Jul 2014 00:33:23 -0700 (PDT) X-Barracuda-Envelope-From: dave@fromorbit.com X-Barracuda-Apparent-Source-IP: 150.101.137.143 X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: ApoLAEnw2VN5LHOdPGdsb2JhbABZgw6BKYcvqAEBAQEBAQEGoxuBBRcFAQEBATg2hAQBBScvMwgYMTkDBxQZiEG8UYV8iUUohDQFp1iMOisv Received: from ppp121-44-115-157.lns20.syd6.internode.on.net (HELO dastard) ([121.44.115.157]) by ipmail05.adl6.internode.on.net with ESMTP; 31 Jul 2014 17:03:21 +0930 Received: from disappointment.disaster.area ([192.168.1.110] helo=disappointment) by dastard with esmtp (Exim 4.80) (envelope-from ) id 1XCkrW-0005gX-Sz for xfs@oss.sgi.com; Thu, 31 Jul 2014 17:33:18 +1000 Received: from dave by disappointment with local (Exim 4.82_1-5b7a7c0-XX) (envelope-from ) id 1XCkrW-0003yH-Rx for xfs@oss.sgi.com; Thu, 31 Jul 2014 17:33:18 +1000 From: Dave Chinner To: xfs@oss.sgi.com Subject: [PATCH 5/6] xfs: kill VN_MAPPED Date: Thu, 31 Jul 2014 17:33:14 +1000 X-ASG-Orig-Subj: [PATCH 5/6] xfs: kill VN_MAPPED Message-Id: <1406791995-14723-6-git-send-email-david@fromorbit.com> X-Mailer: git-send-email 2.0.0 In-Reply-To: <1406791995-14723-1-git-send-email-david@fromorbit.com> References: <1406791995-14723-1-git-send-email-david@fromorbit.com> X-Barracuda-Connect: ipmail05.adl6.internode.on.net[150.101.137.143] X-Barracuda-Start-Time: 1406792002 X-Barracuda-URL: http://192.48.176.15:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 X-Barracuda-Spam-Score: 0.00 X-Barracuda-Spam-Status: No, SCORE=0.00 using per-user scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.7 tests=FUZZY_VPILL X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.7987 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.00 FUZZY_VPILL BODY: Attempt to obfuscate words in spam From: Dave Chinner Only one user, no longer needed. Signed-off-by: Dave Chinner Signed-off-by: Dave Chinner --- fs/xfs/xfs_bmap_util.c | 2 +- fs/xfs/xfs_vnode.h | 6 ------ 2 files changed, 1 insertion(+), 7 deletions(-) diff --git a/fs/xfs/xfs_bmap_util.c b/fs/xfs/xfs_bmap_util.c index 8da2a6a..bbc748a 100644 --- a/fs/xfs/xfs_bmap_util.c +++ b/fs/xfs/xfs_bmap_util.c @@ -1713,7 +1713,7 @@ xfs_swap_extents( * vop_read (or write in the case of autogrow) they block on the iolock * until we have switched the extents. */ - if (VN_MAPPED(VFS_I(ip))) { + if (mapping_mapped(VFS_I(ip)->i_mapping)) { error = -EBUSY; goto out_unlock; } diff --git a/fs/xfs/xfs_vnode.h b/fs/xfs/xfs_vnode.h index bcf0c74..300725d 100644 --- a/fs/xfs/xfs_vnode.h +++ b/fs/xfs/xfs_vnode.h @@ -34,10 +34,4 @@ struct attrlist_cursor_kern; { IO_ISDIRECT, "DIRECT" }, \ { IO_INVIS, "INVIS"} -/* - * Some useful predicates. - */ -#define VN_MAPPED(vp) mapping_mapped(vp->i_mapping) - - #endif /* __XFS_VNODE_H__ */ -- 2.0.0 From dave@fromorbit.com Thu Jul 31 02:33:28 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: xfs@oss.sgi.com Delivered-To: xfs@oss.sgi.com Received: from relay.sgi.com (relay2.corp.sgi.com [137.38.102.29]) by oss.sgi.com (Postfix) with ESMTP id 6A6587FAB for ; Thu, 31 Jul 2014 02:33:28 -0500 (CDT) Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by relay2.corp.sgi.com (Postfix) with ESMTP id 5815D304051 for ; Thu, 31 Jul 2014 00:33:28 -0700 (PDT) X-ASG-Debug-ID: 1406792004-04cb6c555c56d90002-NocioJ Received: from ipmail05.adl6.internode.on.net (ipmail05.adl6.internode.on.net [150.101.137.143]) by cuda.sgi.com with ESMTP id M052QGNstKwzpkMh for ; Thu, 31 Jul 2014 00:33:26 -0700 (PDT) X-Barracuda-Envelope-From: dave@fromorbit.com X-Barracuda-Apparent-Source-IP: 150.101.137.143 X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: AgAfAEnw2VN5LHOdPGdsb2JhbABZgw0BAYEAh1eoAQEBAQEBAQabQYhfFwUBAQEBOBkdhGA7gQIDB4hulTmnGIV8iW2ENAWnWIokghYr Received: from ppp121-44-115-157.lns20.syd6.internode.on.net (HELO dastard) ([121.44.115.157]) by ipmail05.adl6.internode.on.net with ESMTP; 31 Jul 2014 17:03:21 +0930 Received: from disappointment.disaster.area ([192.168.1.110] helo=disappointment) by dastard with esmtp (Exim 4.80) (envelope-from ) id 1XCkrW-0005gS-Pe for xfs@oss.sgi.com; Thu, 31 Jul 2014 17:33:18 +1000 Received: from dave by disappointment with local (Exim 4.82_1-5b7a7c0-XX) (envelope-from ) id 1XCkrW-0003xu-OS for xfs@oss.sgi.com; Thu, 31 Jul 2014 17:33:18 +1000 From: Dave Chinner To: xfs@oss.sgi.com Subject: [PATCH 0/6] xfs: discombobulate sb updates and kill xfs_vnode.h Date: Thu, 31 Jul 2014 17:33:09 +1000 X-ASG-Orig-Subj: [PATCH 0/6] xfs: discombobulate sb updates and kill xfs_vnode.h Message-Id: <1406791995-14723-1-git-send-email-david@fromorbit.com> X-Mailer: git-send-email 2.0.0 X-Barracuda-Connect: ipmail05.adl6.internode.on.net[150.101.137.143] X-Barracuda-Start-Time: 1406792006 X-Barracuda-URL: http://192.48.176.15:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 X-Barracuda-Spam-Score: 0.00 X-Barracuda-Spam-Status: No, SCORE=0.00 using per-user scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.7 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.7987 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- Hi folks, Really two patch series in one. The first two patches remove the bitfield based superblock update method and replace it with a simple "update and log everything" operation. Superblock updates are now relatively rare so there's no need to optimise for single field updates. This patchset removes all that complex code and makes everything nice and simple. The last 4 patches clean up some old macros that are only used once or twice and that allows us to remove the xfs_vnode.h file. One more historical reference derived from Irix vnodes is now gone... Comments, flames, testing all welcome. -Dave. From dave@fromorbit.com Thu Jul 31 02:33:30 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: xfs@oss.sgi.com Delivered-To: xfs@oss.sgi.com Received: from relay.sgi.com (relay3.corp.sgi.com [198.149.34.15]) by oss.sgi.com (Postfix) with ESMTP id B00B77FBE for ; Thu, 31 Jul 2014 02:33:30 -0500 (CDT) Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by relay3.corp.sgi.com (Postfix) with ESMTP id 3BC78AC005 for ; Thu, 31 Jul 2014 00:33:27 -0700 (PDT) X-ASG-Debug-ID: 1406792004-04cb6c555c56d90001-NocioJ Received: from ipmail05.adl6.internode.on.net (ipmail05.adl6.internode.on.net [150.101.137.143]) by cuda.sgi.com with ESMTP id DvC0tVje4l0Wpdjh for ; Thu, 31 Jul 2014 00:33:25 -0700 (PDT) X-Barracuda-Envelope-From: dave@fromorbit.com X-Barracuda-Apparent-Source-IP: 150.101.137.143 X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: ApoLAEnw2VN5LHOdPGdsb2JhbABZgw6BKYcvqAEBAQEBAQEGoxuBBRcFAQEBATg2hAQBBScvMwgYMTkDBxQZiEG8UYV8iUUohDQFp1iMOisv Received: from ppp121-44-115-157.lns20.syd6.internode.on.net (HELO dastard) ([121.44.115.157]) by ipmail05.adl6.internode.on.net with ESMTP; 31 Jul 2014 17:03:21 +0930 Received: from disappointment.disaster.area ([192.168.1.110] helo=disappointment) by dastard with esmtp (Exim 4.80) (envelope-from ) id 1XCkrW-0005gW-SV for xfs@oss.sgi.com; Thu, 31 Jul 2014 17:33:18 +1000 Received: from dave by disappointment with local (Exim 4.82_1-5b7a7c0-XX) (envelope-from ) id 1XCkrW-0003yC-RS for xfs@oss.sgi.com; Thu, 31 Jul 2014 17:33:18 +1000 From: Dave Chinner To: xfs@oss.sgi.com Subject: [PATCH 4/6] xfs: kill VN_CACHED Date: Thu, 31 Jul 2014 17:33:13 +1000 X-ASG-Orig-Subj: [PATCH 4/6] xfs: kill VN_CACHED Message-Id: <1406791995-14723-5-git-send-email-david@fromorbit.com> X-Mailer: git-send-email 2.0.0 In-Reply-To: <1406791995-14723-1-git-send-email-david@fromorbit.com> References: <1406791995-14723-1-git-send-email-david@fromorbit.com> X-Barracuda-Connect: ipmail05.adl6.internode.on.net[150.101.137.143] X-Barracuda-Start-Time: 1406792004 X-Barracuda-URL: http://192.48.176.15:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 X-Barracuda-Spam-Score: 0.00 X-Barracuda-Spam-Status: No, SCORE=0.00 using per-user scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.7 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.7987 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- From: Dave Chinner Only has 2 users, has outlived it's usefulness. Signed-off-by: Dave Chinner Signed-off-by: Dave Chinner --- fs/xfs/xfs_bmap_util.c | 4 ++-- fs/xfs/xfs_vnode.h | 1 - 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/fs/xfs/xfs_bmap_util.c b/fs/xfs/xfs_bmap_util.c index d32889a..8da2a6a 100644 --- a/fs/xfs/xfs_bmap_util.c +++ b/fs/xfs/xfs_bmap_util.c @@ -809,7 +809,7 @@ xfs_can_free_eofblocks(struct xfs_inode *ip, bool force) * have speculative prealloc/delalloc blocks to remove. */ if (VFS_I(ip)->i_size == 0 && - VN_CACHED(VFS_I(ip)) == 0 && + VFS_I(ip)->i_mapping->nrpages == 0 && ip->i_delayed_blks == 0) return false; @@ -1667,7 +1667,7 @@ xfs_swap_extents( truncate_pagecache_range(VFS_I(tip), 0, -1); /* Verify O_DIRECT for ftmp */ - if (VN_CACHED(VFS_I(tip)) != 0) { + if (VFS_I(tip)->i_mapping->nrpages) { error = -EINVAL; goto out_unlock; } diff --git a/fs/xfs/xfs_vnode.h b/fs/xfs/xfs_vnode.h index 07b475a..bcf0c74 100644 --- a/fs/xfs/xfs_vnode.h +++ b/fs/xfs/xfs_vnode.h @@ -38,7 +38,6 @@ struct attrlist_cursor_kern; * Some useful predicates. */ #define VN_MAPPED(vp) mapping_mapped(vp->i_mapping) -#define VN_CACHED(vp) (vp->i_mapping->nrpages) #endif /* __XFS_VNODE_H__ */ -- 2.0.0 From dave@fromorbit.com Thu Jul 31 02:33:31 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: xfs@oss.sgi.com Delivered-To: xfs@oss.sgi.com Received: from relay.sgi.com (relay1.corp.sgi.com [137.38.102.111]) by oss.sgi.com (Postfix) with ESMTP id 410647FC3 for ; Thu, 31 Jul 2014 02:33:31 -0500 (CDT) Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by relay1.corp.sgi.com (Postfix) with ESMTP id 2EAFF8F8081 for ; Thu, 31 Jul 2014 00:33:28 -0700 (PDT) X-ASG-Debug-ID: 1406792002-04cb6c555e56d90003-NocioJ Received: from ipmail05.adl6.internode.on.net (ipmail05.adl6.internode.on.net [150.101.137.143]) by cuda.sgi.com with ESMTP id BA7DFZfYRFDoA6VR for ; Thu, 31 Jul 2014 00:33:26 -0700 (PDT) X-Barracuda-Envelope-From: dave@fromorbit.com X-Barracuda-Apparent-Source-IP: 150.101.137.143 X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: ApgLAEnw2VN5LHOdPGdsb2JhbABZgw6BKYcvqAEBAQEBAQEGpCAXBQEBAQE4NoQEAQUnLzMIGDE5AwcUGYhBvFGFfI4hBZBKlw6MOisv Received: from ppp121-44-115-157.lns20.syd6.internode.on.net (HELO dastard) ([121.44.115.157]) by ipmail05.adl6.internode.on.net with ESMTP; 31 Jul 2014 17:03:21 +0930 Received: from disappointment.disaster.area ([192.168.1.110] helo=disappointment) by dastard with esmtp (Exim 4.80) (envelope-from ) id 1XCkrW-0005gY-TR for xfs@oss.sgi.com; Thu, 31 Jul 2014 17:33:18 +1000 Received: from dave by disappointment with local (Exim 4.82_1-5b7a7c0-XX) (envelope-from ) id 1XCkrW-0003yM-SX for xfs@oss.sgi.com; Thu, 31 Jul 2014 17:33:18 +1000 From: Dave Chinner To: xfs@oss.sgi.com Subject: [PATCH 6/6] xfs: kill xfs_vnode.h Date: Thu, 31 Jul 2014 17:33:15 +1000 X-ASG-Orig-Subj: [PATCH 6/6] xfs: kill xfs_vnode.h Message-Id: <1406791995-14723-7-git-send-email-david@fromorbit.com> X-Mailer: git-send-email 2.0.0 In-Reply-To: <1406791995-14723-1-git-send-email-david@fromorbit.com> References: <1406791995-14723-1-git-send-email-david@fromorbit.com> X-Barracuda-Connect: ipmail05.adl6.internode.on.net[150.101.137.143] X-Barracuda-Start-Time: 1406792005 X-Barracuda-URL: http://192.48.176.15:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 X-Barracuda-Spam-Score: 0.00 X-Barracuda-Spam-Status: No, SCORE=0.00 using per-user scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.7 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.7987 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- From: Dave Chinner Move the IO flag definitions to xfs_inode.h and kill the header file as it is now empty. Removing the xfs_vnode.h file showed up an implicit header include path: xfs_linux.h -> xfs_vnode.h -> xfs_fs.h And so every xfs header file has been inplicitly been including xfs_fs.h where it is needed or not. Hence the removal of xfs_vnode.h causes all sorts of build issues because BBTOB() and friends are no longer automatically included in the build. This also gets fixed. Signed-off-by: Dave Chinner Signed-off-by: Dave Chinner --- fs/xfs/xfs_file.c | 10 +++++----- fs/xfs/xfs_inode.h | 10 ++++++++++ fs/xfs/xfs_ioctl.c | 6 +++--- fs/xfs/xfs_ioctl32.c | 3 +-- fs/xfs/xfs_linux.h | 2 +- fs/xfs/xfs_vnode.h | 37 ------------------------------------- 6 files changed, 20 insertions(+), 48 deletions(-) delete mode 100644 fs/xfs/xfs_vnode.h diff --git a/fs/xfs/xfs_file.c b/fs/xfs/xfs_file.c index 181605d..5284a7e 100644 --- a/fs/xfs/xfs_file.c +++ b/fs/xfs/xfs_file.c @@ -246,11 +246,11 @@ xfs_file_read_iter( XFS_STATS_INC(xs_read_calls); if (unlikely(file->f_flags & O_DIRECT)) - ioflags |= IO_ISDIRECT; + ioflags |= XFS_IO_ISDIRECT; if (file->f_mode & FMODE_NOCMTIME) - ioflags |= IO_INVIS; + ioflags |= XFS_IO_INVIS; - if (unlikely(ioflags & IO_ISDIRECT)) { + if (unlikely(ioflags & XFS_IO_ISDIRECT)) { xfs_buftarg_t *target = XFS_IS_REALTIME_INODE(ip) ? mp->m_rtdev_targp : mp->m_ddev_targp; @@ -283,7 +283,7 @@ xfs_file_read_iter( * proceeed concurrently without serialisation. */ xfs_rw_ilock(ip, XFS_IOLOCK_SHARED); - if ((ioflags & IO_ISDIRECT) && inode->i_mapping->nrpages) { + if ((ioflags & XFS_IO_ISDIRECT) && inode->i_mapping->nrpages) { xfs_rw_iunlock(ip, XFS_IOLOCK_SHARED); xfs_rw_ilock(ip, XFS_IOLOCK_EXCL); @@ -325,7 +325,7 @@ xfs_file_splice_read( XFS_STATS_INC(xs_read_calls); if (infilp->f_mode & FMODE_NOCMTIME) - ioflags |= IO_INVIS; + ioflags |= XFS_IO_INVIS; if (XFS_FORCED_SHUTDOWN(ip->i_mount)) return -EIO; diff --git a/fs/xfs/xfs_inode.h b/fs/xfs/xfs_inode.h index f72bffa..c10e3fa 100644 --- a/fs/xfs/xfs_inode.h +++ b/fs/xfs/xfs_inode.h @@ -398,4 +398,14 @@ do { \ extern struct kmem_zone *xfs_inode_zone; +/* + * Flags for read/write calls + */ +#define XFS_IO_ISDIRECT 0x00001 /* bypass page cache */ +#define XFS_IO_INVIS 0x00002 /* don't update inode timestamps */ + +#define XFS_IO_FLAGS \ + { XFS_IO_ISDIRECT, "DIRECT" }, \ + { XFS_IO_INVIS, "INVIS"} + #endif /* __XFS_INODE_H__ */ diff --git a/fs/xfs/xfs_ioctl.c b/fs/xfs/xfs_ioctl.c index 30983b8..12ef44e 100644 --- a/fs/xfs/xfs_ioctl.c +++ b/fs/xfs/xfs_ioctl.c @@ -736,7 +736,7 @@ xfs_ioc_space( xfs_ilock(ip, XFS_ILOCK_EXCL); xfs_trans_ijoin(tp, ip, XFS_ILOCK_EXCL); - if (!(ioflags & IO_INVIS)) { + if (!(ioflags & XFS_IO_INVIS)) { ip->i_d.di_mode &= ~S_ISUID; if (ip->i_d.di_mode & S_IXGRP) ip->i_d.di_mode &= ~S_ISGID; @@ -1376,7 +1376,7 @@ xfs_ioc_getbmap( return -EINVAL; bmx.bmv_iflags = (cmd == XFS_IOC_GETBMAPA ? BMV_IF_ATTRFORK : 0); - if (ioflags & IO_INVIS) + if (ioflags & XFS_IO_INVIS) bmx.bmv_iflags |= BMV_IF_NO_DMAPI_READ; error = xfs_getbmap(ip, &bmx, xfs_getbmap_format, @@ -1520,7 +1520,7 @@ xfs_file_ioctl( int error; if (filp->f_mode & FMODE_NOCMTIME) - ioflags |= IO_INVIS; + ioflags |= XFS_IO_INVIS; trace_xfs_file_ioctl(ip); diff --git a/fs/xfs/xfs_ioctl32.c b/fs/xfs/xfs_ioctl32.c index e65ea67..04ffc1b 100644 --- a/fs/xfs/xfs_ioctl32.c +++ b/fs/xfs/xfs_ioctl32.c @@ -28,7 +28,6 @@ #include "xfs_sb.h" #include "xfs_ag.h" #include "xfs_mount.h" -#include "xfs_vnode.h" #include "xfs_inode.h" #include "xfs_itable.h" #include "xfs_error.h" @@ -537,7 +536,7 @@ xfs_file_compat_ioctl( int error; if (filp->f_mode & FMODE_NOCMTIME) - ioflags |= IO_INVIS; + ioflags |= XFS_IO_INVIS; trace_xfs_file_compat_ioctl(ip); diff --git a/fs/xfs/xfs_linux.h b/fs/xfs/xfs_linux.h index d3ef6de..d10dc8f 100644 --- a/fs/xfs/xfs_linux.h +++ b/fs/xfs/xfs_linux.h @@ -101,7 +101,7 @@ typedef __uint64_t __psunsigned_t; #include #include -#include "xfs_vnode.h" +#include "xfs_fs.h" #include "xfs_stats.h" #include "xfs_sysctl.h" #include "xfs_iops.h" diff --git a/fs/xfs/xfs_vnode.h b/fs/xfs/xfs_vnode.h deleted file mode 100644 index 300725d..0000000 --- a/fs/xfs/xfs_vnode.h +++ /dev/null @@ -1,37 +0,0 @@ -/* - * Copyright (c) 2000-2005 Silicon Graphics, Inc. - * All Rights Reserved. - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License as - * published by the Free Software Foundation. - * - * This program is distributed in the hope that it would be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write the Free Software Foundation, - * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA - */ -#ifndef __XFS_VNODE_H__ -#define __XFS_VNODE_H__ - -#include "xfs_fs.h" - -struct file; -struct xfs_inode; -struct attrlist_cursor_kern; - -/* - * Flags for read/write calls - same values as IRIX - */ -#define IO_ISDIRECT 0x00004 /* bypass page cache */ -#define IO_INVIS 0x00020 /* don't update inode timestamps */ - -#define XFS_IO_FLAGS \ - { IO_ISDIRECT, "DIRECT" }, \ - { IO_INVIS, "INVIS"} - -#endif /* __XFS_VNODE_H__ */ -- 2.0.0 From dave@fromorbit.com Thu Jul 31 02:33:31 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: xfs@oss.sgi.com Delivered-To: xfs@oss.sgi.com Received: from relay.sgi.com (relay3.corp.sgi.com [198.149.34.15]) by oss.sgi.com (Postfix) with ESMTP id 2B0F47FBE for ; Thu, 31 Jul 2014 02:33:31 -0500 (CDT) Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by relay3.corp.sgi.com (Postfix) with ESMTP id 89869AC003 for ; Thu, 31 Jul 2014 00:33:30 -0700 (PDT) X-ASG-Debug-ID: 1406792006-04cb6c555f56da0001-NocioJ Received: from ipmail05.adl6.internode.on.net (ipmail05.adl6.internode.on.net [150.101.137.143]) by cuda.sgi.com with ESMTP id EEMW97Sw9PBnbV94 for ; Thu, 31 Jul 2014 00:33:26 -0700 (PDT) X-Barracuda-Envelope-From: dave@fromorbit.com X-Barracuda-Apparent-Source-IP: 150.101.137.143 X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: ApoLAEnw2VN5LHOdPGdsb2JhbABZgw6BKYcvqAEBAQEBAQEGoxuBBRcFAQEBATg2hAQBBRoNLzMIGDE5AwcUGYhBvFGFfIkDQoRcBbQSKy+BBA Received: from ppp121-44-115-157.lns20.syd6.internode.on.net (HELO dastard) ([121.44.115.157]) by ipmail05.adl6.internode.on.net with ESMTP; 31 Jul 2014 17:03:21 +0930 Received: from disappointment.disaster.area ([192.168.1.110] helo=disappointment) by dastard with esmtp (Exim 4.80) (envelope-from ) id 1XCkrW-0005gT-QG for xfs@oss.sgi.com; Thu, 31 Jul 2014 17:33:18 +1000 Received: from dave by disappointment with local (Exim 4.82_1-5b7a7c0-XX) (envelope-from ) id 1XCkrW-0003xx-PD for xfs@oss.sgi.com; Thu, 31 Jul 2014 17:33:18 +1000 From: Dave Chinner To: xfs@oss.sgi.com Subject: [PATCH 1/6] xfs: remove bitfield based superblock updates Date: Thu, 31 Jul 2014 17:33:10 +1000 X-ASG-Orig-Subj: [PATCH 1/6] xfs: remove bitfield based superblock updates Message-Id: <1406791995-14723-2-git-send-email-david@fromorbit.com> X-Mailer: git-send-email 2.0.0 In-Reply-To: <1406791995-14723-1-git-send-email-david@fromorbit.com> References: <1406791995-14723-1-git-send-email-david@fromorbit.com> X-Barracuda-Connect: ipmail05.adl6.internode.on.net[150.101.137.143] X-Barracuda-Start-Time: 1406792006 X-Barracuda-URL: http://192.48.176.15:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 X-Barracuda-Spam-Score: 0.00 X-Barracuda-Spam-Status: No, SCORE=0.00 using per-user scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.7 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.7987 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- From: Dave Chinner When we log changes to the superblock, we first have to write them to the on-disk buffer, and then log that. Right now we have a complex bitfield based arrangement to only write the modified field to the buffer before we log it. This used to be necessary as a performance optimisation because we logged the superblock buffer in every extent or inode allocation or freeing, and so performance was extremely important. We haven't done this for years, however, ever since the lazy superblock counters pulled the superblock logging out of the transaction commit fast path. Hence we have a bunch of complexity that is not necessary that makes writing the in-core superblock to disk much more complex than it needs to be. We only need to log the superblock now during management operations (e.g. during mount, unmount or quota control operations) so it is not a performance critical path anymore. As such, remove the complex field based logging mechanism and replace it with a simple conversion function similar to what we use for all other on-disk structures. This means we always log the entirity of the superblock, but again because we rarely modify the superblock this is not an issue for log bandwidth or CPU time. Indeed, if we do log the superblock frequently, delayed logging will minimise the impact of this overhead. Signed-off-by: Dave Chinner Signed-off-by: Dave Chinner --- fs/xfs/libxfs/xfs_attr_leaf.c | 2 +- fs/xfs/libxfs/xfs_bmap.c | 14 +-- fs/xfs/libxfs/xfs_sb.c | 287 +++++++++++++++--------------------------- fs/xfs/libxfs/xfs_sb.h | 10 +- fs/xfs/xfs_fsops.c | 6 +- fs/xfs/xfs_mount.c | 18 +-- fs/xfs/xfs_mount.h | 2 +- fs/xfs/xfs_qm.c | 26 +--- fs/xfs/xfs_qm.h | 2 +- fs/xfs/xfs_qm_syscalls.c | 13 +- fs/xfs/xfs_super.c | 2 +- 11 files changed, 130 insertions(+), 252 deletions(-) diff --git a/fs/xfs/libxfs/xfs_attr_leaf.c b/fs/xfs/libxfs/xfs_attr_leaf.c index b1f73db..f4a47a7 100644 --- a/fs/xfs/libxfs/xfs_attr_leaf.c +++ b/fs/xfs/libxfs/xfs_attr_leaf.c @@ -405,7 +405,7 @@ xfs_sbversion_add_attr2(xfs_mount_t *mp, xfs_trans_t *tp) if (!xfs_sb_version_hasattr2(&mp->m_sb)) { xfs_sb_version_addattr2(&mp->m_sb); spin_unlock(&mp->m_sb_lock); - xfs_mod_sb(tp, XFS_SB_VERSIONNUM | XFS_SB_FEATURES2); + xfs_mod_sb(tp); } else spin_unlock(&mp->m_sb_lock); } diff --git a/fs/xfs/libxfs/xfs_bmap.c b/fs/xfs/libxfs/xfs_bmap.c index de2d26d..15e8c09 100644 --- a/fs/xfs/libxfs/xfs_bmap.c +++ b/fs/xfs/libxfs/xfs_bmap.c @@ -1224,22 +1224,20 @@ xfs_bmap_add_attrfork( goto bmap_cancel; if (!xfs_sb_version_hasattr(&mp->m_sb) || (!xfs_sb_version_hasattr2(&mp->m_sb) && version == 2)) { - __int64_t sbfields = 0; + bool mod_sb = false; spin_lock(&mp->m_sb_lock); if (!xfs_sb_version_hasattr(&mp->m_sb)) { xfs_sb_version_addattr(&mp->m_sb); - sbfields |= XFS_SB_VERSIONNUM; + mod_sb = true; } if (!xfs_sb_version_hasattr2(&mp->m_sb) && version == 2) { xfs_sb_version_addattr2(&mp->m_sb); - sbfields |= (XFS_SB_VERSIONNUM | XFS_SB_FEATURES2); + mod_sb = true; } - if (sbfields) { - spin_unlock(&mp->m_sb_lock); - xfs_mod_sb(tp, sbfields); - } else - spin_unlock(&mp->m_sb_lock); + spin_unlock(&mp->m_sb_lock); + if (mod_sb) + xfs_mod_sb(tp); } error = xfs_bmap_finish(&tp, &flist, &committed); diff --git a/fs/xfs/libxfs/xfs_sb.c b/fs/xfs/libxfs/xfs_sb.c index 6e93b5e..d16b549 100644 --- a/fs/xfs/libxfs/xfs_sb.c +++ b/fs/xfs/libxfs/xfs_sb.c @@ -42,69 +42,6 @@ * Physical superblock buffer manipulations. Shared with libxfs in userspace. */ -static const struct { - short offset; - short type; /* 0 = integer - * 1 = binary / string (no translation) - */ -} xfs_sb_info[] = { - { offsetof(xfs_sb_t, sb_magicnum), 0 }, - { offsetof(xfs_sb_t, sb_blocksize), 0 }, - { offsetof(xfs_sb_t, sb_dblocks), 0 }, - { offsetof(xfs_sb_t, sb_rblocks), 0 }, - { offsetof(xfs_sb_t, sb_rextents), 0 }, - { offsetof(xfs_sb_t, sb_uuid), 1 }, - { offsetof(xfs_sb_t, sb_logstart), 0 }, - { offsetof(xfs_sb_t, sb_rootino), 0 }, - { offsetof(xfs_sb_t, sb_rbmino), 0 }, - { offsetof(xfs_sb_t, sb_rsumino), 0 }, - { offsetof(xfs_sb_t, sb_rextsize), 0 }, - { offsetof(xfs_sb_t, sb_agblocks), 0 }, - { offsetof(xfs_sb_t, sb_agcount), 0 }, - { offsetof(xfs_sb_t, sb_rbmblocks), 0 }, - { offsetof(xfs_sb_t, sb_logblocks), 0 }, - { offsetof(xfs_sb_t, sb_versionnum), 0 }, - { offsetof(xfs_sb_t, sb_sectsize), 0 }, - { offsetof(xfs_sb_t, sb_inodesize), 0 }, - { offsetof(xfs_sb_t, sb_inopblock), 0 }, - { offsetof(xfs_sb_t, sb_fname[0]), 1 }, - { offsetof(xfs_sb_t, sb_blocklog), 0 }, - { offsetof(xfs_sb_t, sb_sectlog), 0 }, - { offsetof(xfs_sb_t, sb_inodelog), 0 }, - { offsetof(xfs_sb_t, sb_inopblog), 0 }, - { offsetof(xfs_sb_t, sb_agblklog), 0 }, - { offsetof(xfs_sb_t, sb_rextslog), 0 }, - { offsetof(xfs_sb_t, sb_inprogress), 0 }, - { offsetof(xfs_sb_t, sb_imax_pct), 0 }, - { offsetof(xfs_sb_t, sb_icount), 0 }, - { offsetof(xfs_sb_t, sb_ifree), 0 }, - { offsetof(xfs_sb_t, sb_fdblocks), 0 }, - { offsetof(xfs_sb_t, sb_frextents), 0 }, - { offsetof(xfs_sb_t, sb_uquotino), 0 }, - { offsetof(xfs_sb_t, sb_gquotino), 0 }, - { offsetof(xfs_sb_t, sb_qflags), 0 }, - { offsetof(xfs_sb_t, sb_flags), 0 }, - { offsetof(xfs_sb_t, sb_shared_vn), 0 }, - { offsetof(xfs_sb_t, sb_inoalignmt), 0 }, - { offsetof(xfs_sb_t, sb_unit), 0 }, - { offsetof(xfs_sb_t, sb_width), 0 }, - { offsetof(xfs_sb_t, sb_dirblklog), 0 }, - { offsetof(xfs_sb_t, sb_logsectlog), 0 }, - { offsetof(xfs_sb_t, sb_logsectsize), 0 }, - { offsetof(xfs_sb_t, sb_logsunit), 0 }, - { offsetof(xfs_sb_t, sb_features2), 0 }, - { offsetof(xfs_sb_t, sb_bad_features2), 0 }, - { offsetof(xfs_sb_t, sb_features_compat), 0 }, - { offsetof(xfs_sb_t, sb_features_ro_compat), 0 }, - { offsetof(xfs_sb_t, sb_features_incompat), 0 }, - { offsetof(xfs_sb_t, sb_features_log_incompat), 0 }, - { offsetof(xfs_sb_t, sb_crc), 0 }, - { offsetof(xfs_sb_t, sb_pad), 0 }, - { offsetof(xfs_sb_t, sb_pquotino), 0 }, - { offsetof(xfs_sb_t, sb_lsn), 0 }, - { sizeof(xfs_sb_t), 0 } -}; - /* * Reference counting access wrappers to the perag structures. * Because we never free per-ag structures, the only thing we @@ -447,125 +384,119 @@ xfs_sb_from_disk( to->sb_lsn = be64_to_cpu(from->sb_lsn); } -static inline void +static void xfs_sb_quota_to_disk( - xfs_dsb_t *to, - xfs_sb_t *from, - __int64_t *fields) + struct xfs_dsb *to, + struct xfs_sb *from) { __uint16_t qflags = from->sb_qflags; + to->sb_uquotino = cpu_to_be64(from->sb_uquotino); + if (xfs_sb_version_has_pquotino(from)) { + to->sb_qflags = be16_to_cpu(from->sb_qflags); + to->sb_gquotino = cpu_to_be64(from->sb_gquotino); + to->sb_pquotino = cpu_to_be64(from->sb_pquotino); + return; + } + /* - * We need to do these manipilations only if we are working - * with an older version of on-disk superblock. + * The in-core version of sb_qflags do not have XFS_OQUOTA_* + * flags, whereas the on-disk version does. So, convert incore + * XFS_{PG}QUOTA_* flags to on-disk XFS_OQUOTA_* flags. */ - if (xfs_sb_version_has_pquotino(from)) - return; + qflags &= ~(XFS_PQUOTA_ENFD | XFS_PQUOTA_CHKD | + XFS_GQUOTA_ENFD | XFS_GQUOTA_CHKD); - if (*fields & XFS_SB_QFLAGS) { - /* - * The in-core version of sb_qflags do not have - * XFS_OQUOTA_* flags, whereas the on-disk version - * does. So, convert incore XFS_{PG}QUOTA_* flags - * to on-disk XFS_OQUOTA_* flags. - */ - qflags &= ~(XFS_PQUOTA_ENFD | XFS_PQUOTA_CHKD | - XFS_GQUOTA_ENFD | XFS_GQUOTA_CHKD); - - if (from->sb_qflags & - (XFS_PQUOTA_ENFD | XFS_GQUOTA_ENFD)) - qflags |= XFS_OQUOTA_ENFD; - if (from->sb_qflags & - (XFS_PQUOTA_CHKD | XFS_GQUOTA_CHKD)) - qflags |= XFS_OQUOTA_CHKD; - to->sb_qflags = cpu_to_be16(qflags); - *fields &= ~XFS_SB_QFLAGS; - } + if (from->sb_qflags & + (XFS_PQUOTA_ENFD | XFS_GQUOTA_ENFD)) + qflags |= XFS_OQUOTA_ENFD; + if (from->sb_qflags & + (XFS_PQUOTA_CHKD | XFS_GQUOTA_CHKD)) + qflags |= XFS_OQUOTA_CHKD; + to->sb_qflags = cpu_to_be16(qflags); /* - * GQUOTINO and PQUOTINO cannot be used together in versions of - * superblock that do not have pquotino. from->sb_flags tells us which - * quota is active and should be copied to disk. If neither are active, - * make sure we write NULLFSINO to the sb_gquotino field as a quota - * inode value of "0" is invalid when the XFS_SB_VERSION_QUOTA feature - * bit is set. + * GQUOTINO and PQUOTINO cannot be used together in versions + * of superblock that do not have pquotino. from->sb_flags + * tells us which quota is active and should be copied to + * disk. If neither are active, we should NULL the inode. * - * Note that we don't need to handle the sb_uquotino or sb_pquotino here - * as they do not require any translation. Hence the main sb field loop - * will write them appropriately from the in-core superblock. + * In all cases, the separate pquotino must remain 0 because it + * it beyond the "end" of the valid non-pquotino superblock. */ - if ((*fields & XFS_SB_GQUOTINO) && - (from->sb_qflags & XFS_GQUOTA_ACCT)) + if (from->sb_qflags & XFS_GQUOTA_ACCT) to->sb_gquotino = cpu_to_be64(from->sb_gquotino); - else if ((*fields & XFS_SB_PQUOTINO) && - (from->sb_qflags & XFS_PQUOTA_ACCT)) + else if (from->sb_qflags & XFS_PQUOTA_ACCT) to->sb_gquotino = cpu_to_be64(from->sb_pquotino); - else { - /* - * We can't rely on just the fields being logged to tell us - * that it is safe to write NULLFSINO - we should only do that - * if quotas are not actually enabled. Hence only write - * NULLFSINO if both in-core quota inodes are NULL. - */ - if (from->sb_gquotino == NULLFSINO && - from->sb_pquotino == NULLFSINO) - to->sb_gquotino = cpu_to_be64(NULLFSINO); - } + else + to->sb_gquotino = cpu_to_be64(NULLFSINO); - *fields &= ~(XFS_SB_PQUOTINO | XFS_SB_GQUOTINO); + to->sb_pquotino = 0; } -/* - * Copy in core superblock to ondisk one. - * - * The fields argument is mask of superblock fields to copy. - */ void xfs_sb_to_disk( - xfs_dsb_t *to, - xfs_sb_t *from, - __int64_t fields) + struct xfs_dsb *to, + struct xfs_sb *from) { - xfs_caddr_t to_ptr = (xfs_caddr_t)to; - xfs_caddr_t from_ptr = (xfs_caddr_t)from; - xfs_sb_field_t f; - int first; - int size; - - ASSERT(fields); - if (!fields) - return; + xfs_sb_quota_to_disk(to, from); - xfs_sb_quota_to_disk(to, from, &fields); - while (fields) { - f = (xfs_sb_field_t)xfs_lowbit64((__uint64_t)fields); - first = xfs_sb_info[f].offset; - size = xfs_sb_info[f + 1].offset - first; - - ASSERT(xfs_sb_info[f].type == 0 || xfs_sb_info[f].type == 1); - - if (size == 1 || xfs_sb_info[f].type == 1) { - memcpy(to_ptr + first, from_ptr + first, size); - } else { - switch (size) { - case 2: - *(__be16 *)(to_ptr + first) = - cpu_to_be16(*(__u16 *)(from_ptr + first)); - break; - case 4: - *(__be32 *)(to_ptr + first) = - cpu_to_be32(*(__u32 *)(from_ptr + first)); - break; - case 8: - *(__be64 *)(to_ptr + first) = - cpu_to_be64(*(__u64 *)(from_ptr + first)); - break; - default: - ASSERT(0); - } - } + to->sb_magicnum = cpu_to_be32(from->sb_magicnum); + to->sb_blocksize = cpu_to_be32(from->sb_blocksize); + to->sb_dblocks = cpu_to_be64(from->sb_dblocks); + to->sb_rblocks = cpu_to_be64(from->sb_rblocks); + to->sb_rextents = cpu_to_be64(from->sb_rextents); + memcpy(&to->sb_uuid, &from->sb_uuid, sizeof(to->sb_uuid)); + to->sb_logstart = cpu_to_be64(from->sb_logstart); + to->sb_rootino = cpu_to_be64(from->sb_rootino); + to->sb_rbmino = cpu_to_be64(from->sb_rbmino); + to->sb_rsumino = cpu_to_be64(from->sb_rsumino); + to->sb_rextsize = cpu_to_be32(from->sb_rextsize); + to->sb_agblocks = cpu_to_be32(from->sb_agblocks); + to->sb_agcount = cpu_to_be32(from->sb_agcount); + to->sb_rbmblocks = cpu_to_be32(from->sb_rbmblocks); + to->sb_logblocks = cpu_to_be32(from->sb_logblocks); + to->sb_versionnum = cpu_to_be16(from->sb_versionnum); + to->sb_sectsize = cpu_to_be16(from->sb_sectsize); + to->sb_inodesize = cpu_to_be16(from->sb_inodesize); + to->sb_inopblock = cpu_to_be16(from->sb_inopblock); + memcpy(&to->sb_fname, &from->sb_fname, sizeof(to->sb_fname)); + to->sb_blocklog = from->sb_blocklog; + to->sb_sectlog = from->sb_sectlog; + to->sb_inodelog = from->sb_inodelog; + to->sb_inopblog = from->sb_inopblog; + to->sb_agblklog = from->sb_agblklog; + to->sb_rextslog = from->sb_rextslog; + to->sb_inprogress = from->sb_inprogress; + to->sb_imax_pct = from->sb_imax_pct; + to->sb_icount = cpu_to_be64(from->sb_icount); + to->sb_ifree = cpu_to_be64(from->sb_ifree); + to->sb_fdblocks = cpu_to_be64(from->sb_fdblocks); + to->sb_frextents = cpu_to_be64(from->sb_frextents); - fields &= ~(1LL << f); + + to->sb_flags = from->sb_flags; + to->sb_shared_vn = from->sb_shared_vn; + to->sb_inoalignmt = cpu_to_be32(from->sb_inoalignmt); + to->sb_unit = cpu_to_be32(from->sb_unit); + to->sb_width = cpu_to_be32(from->sb_width); + to->sb_dirblklog = from->sb_dirblklog; + to->sb_logsectlog = from->sb_logsectlog; + to->sb_logsectsize = cpu_to_be16(from->sb_logsectsize); + to->sb_logsunit = cpu_to_be32(from->sb_logsunit); + to->sb_features2 = cpu_to_be32(from->sb_features2); + to->sb_bad_features2 = cpu_to_be32(from->sb_bad_features2); + + if (xfs_sb_version_hascrc(from)) { + to->sb_features_compat = cpu_to_be32(from->sb_features_compat); + to->sb_features_ro_compat = + cpu_to_be32(from->sb_features_ro_compat); + to->sb_features_incompat = + cpu_to_be32(from->sb_features_incompat); + to->sb_features_log_incompat = + cpu_to_be32(from->sb_features_log_incompat); + to->sb_pad = 0; + to->sb_lsn = cpu_to_be64(from->sb_lsn); } } @@ -802,35 +733,13 @@ xfs_initialize_perag_data( * access. */ void -xfs_mod_sb(xfs_trans_t *tp, __int64_t fields) +xfs_mod_sb( + struct xfs_trans *tp) { - xfs_buf_t *bp; - int first; - int last; - xfs_mount_t *mp; - xfs_sb_field_t f; - - ASSERT(fields); - if (!fields) - return; - mp = tp->t_mountp; - bp = xfs_trans_getsb(tp, mp, 0); - first = sizeof(xfs_sb_t); - last = 0; - - /* translate/copy */ - - xfs_sb_to_disk(XFS_BUF_TO_SBP(bp), &mp->m_sb, fields); - - /* find modified range */ - f = (xfs_sb_field_t)xfs_highbit64((__uint64_t)fields); - ASSERT((1LL << f) & XFS_SB_MOD_BITS); - last = xfs_sb_info[f + 1].offset - 1; - - f = (xfs_sb_field_t)xfs_lowbit64((__uint64_t)fields); - ASSERT((1LL << f) & XFS_SB_MOD_BITS); - first = xfs_sb_info[f].offset; + struct xfs_mount *mp = tp->t_mountp; + struct xfs_buf *bp = xfs_trans_getsb(tp, mp, 0); + xfs_sb_to_disk(XFS_BUF_TO_SBP(bp), &mp->m_sb); xfs_trans_buf_set_type(tp, bp, XFS_BLFT_SB_BUF); - xfs_trans_log_buf(tp, bp, first, last); + xfs_trans_log_buf(tp, bp, 0, sizeof(struct xfs_dsb)); } diff --git a/fs/xfs/libxfs/xfs_sb.h b/fs/xfs/libxfs/xfs_sb.h index 2e73970..c28b3c1 100644 --- a/fs/xfs/libxfs/xfs_sb.h +++ b/fs/xfs/libxfs/xfs_sb.h @@ -611,11 +611,11 @@ extern struct xfs_perag *xfs_perag_get_tag(struct xfs_mount *, xfs_agnumber_t, extern void xfs_perag_put(struct xfs_perag *pag); extern int xfs_initialize_perag_data(struct xfs_mount *, xfs_agnumber_t); -extern void xfs_sb_calc_crc(struct xfs_buf *); -extern void xfs_mod_sb(struct xfs_trans *, __int64_t); -extern void xfs_sb_mount_common(struct xfs_mount *, struct xfs_sb *); -extern void xfs_sb_from_disk(struct xfs_sb *, struct xfs_dsb *); -extern void xfs_sb_to_disk(struct xfs_dsb *, struct xfs_sb *, __int64_t); +extern void xfs_sb_calc_crc(struct xfs_buf *bp); +extern void xfs_mod_sb(struct xfs_trans *tp); +extern void xfs_sb_mount_common(struct xfs_mount *mp, struct xfs_sb *sbp); +extern void xfs_sb_from_disk(struct xfs_sb *to, struct xfs_dsb *from); +extern void xfs_sb_to_disk(struct xfs_dsb *to, struct xfs_sb *from); extern void xfs_sb_quota_from_disk(struct xfs_sb *sbp); #endif /* __XFS_SB_H__ */ diff --git a/fs/xfs/xfs_fsops.c b/fs/xfs/xfs_fsops.c index f91de1e..2c44e0b 100644 --- a/fs/xfs/xfs_fsops.c +++ b/fs/xfs/xfs_fsops.c @@ -548,7 +548,7 @@ xfs_growfs_data_private( saved_error = error; continue; } - xfs_sb_to_disk(XFS_BUF_TO_SBP(bp), &mp->m_sb, XFS_SB_ALL_BITS); + xfs_sb_to_disk(XFS_BUF_TO_SBP(bp), &mp->m_sb); error = xfs_bwrite(bp); xfs_buf_relse(bp); @@ -787,9 +787,7 @@ xfs_fs_log_dummy( xfs_trans_cancel(tp, 0); return error; } - - /* log the UUID because it is an unchanging field */ - xfs_mod_sb(tp, XFS_SB_UUID); + xfs_mod_sb(tp); xfs_trans_set_sync(tp); return xfs_trans_commit(tp, 0); } diff --git a/fs/xfs/xfs_mount.c b/fs/xfs/xfs_mount.c index 6dbad45..592e169 100644 --- a/fs/xfs/xfs_mount.c +++ b/fs/xfs/xfs_mount.c @@ -621,7 +621,7 @@ xfs_mount_reset_sbqflags( return error; } - xfs_mod_sb(tp, XFS_SB_QFLAGS); + xfs_mod_sb(tp); return xfs_trans_commit(tp, 0); } @@ -905,7 +905,7 @@ xfs_mountfs( * perform the update e.g. for the root filesystem. */ if (mp->m_update_flags && !(mp->m_flags & XFS_MOUNT_RDONLY)) { - error = xfs_mount_log_sb(mp, mp->m_update_flags); + error = xfs_mount_log_sb(mp); if (error) { xfs_warn(mp, "failed to write sb changes"); goto out_rtunmount; @@ -1122,7 +1122,7 @@ xfs_log_sbcount(xfs_mount_t *mp) return error; } - xfs_mod_sb(tp, XFS_SB_IFREE | XFS_SB_ICOUNT | XFS_SB_FDBLOCKS); + xfs_mod_sb(tp); xfs_trans_set_sync(tp); error = xfs_trans_commit(tp, 0); return error; @@ -1425,25 +1425,19 @@ xfs_freesb( */ int xfs_mount_log_sb( - xfs_mount_t *mp, - __int64_t fields) + xfs_mount_t *mp) { xfs_trans_t *tp; int error; - ASSERT(fields & (XFS_SB_UNIT | XFS_SB_WIDTH | XFS_SB_UUID | - XFS_SB_FEATURES2 | XFS_SB_BAD_FEATURES2 | - XFS_SB_VERSIONNUM)); - tp = xfs_trans_alloc(mp, XFS_TRANS_SB_UNIT); error = xfs_trans_reserve(tp, &M_RES(mp)->tr_sb, 0, 0); if (error) { xfs_trans_cancel(tp, 0); return error; } - xfs_mod_sb(tp, fields); - error = xfs_trans_commit(tp, 0); - return error; + xfs_mod_sb(tp); + return xfs_trans_commit(tp, 0); } /* diff --git a/fs/xfs/xfs_mount.h b/fs/xfs/xfs_mount.h index b0447c8..1ae9f56 100644 --- a/fs/xfs/xfs_mount.h +++ b/fs/xfs/xfs_mount.h @@ -380,7 +380,7 @@ extern void xfs_unmountfs(xfs_mount_t *); extern int xfs_mod_incore_sb(xfs_mount_t *, xfs_sb_field_t, int64_t, int); extern int xfs_mod_incore_sb_batch(xfs_mount_t *, xfs_mod_sb_t *, uint, int); -extern int xfs_mount_log_sb(xfs_mount_t *, __int64_t); +extern int xfs_mount_log_sb(xfs_mount_t *); extern struct xfs_buf *xfs_getsb(xfs_mount_t *, int); extern int xfs_readsb(xfs_mount_t *, int); extern void xfs_freesb(xfs_mount_t *); diff --git a/fs/xfs/xfs_qm.c b/fs/xfs/xfs_qm.c index 1023210..170f951 100644 --- a/fs/xfs/xfs_qm.c +++ b/fs/xfs/xfs_qm.c @@ -715,7 +715,6 @@ STATIC int xfs_qm_qino_alloc( xfs_mount_t *mp, xfs_inode_t **ip, - __int64_t sbfields, uint flags) { xfs_trans_t *tp; @@ -778,11 +777,6 @@ xfs_qm_qino_alloc( spin_lock(&mp->m_sb_lock); if (flags & XFS_QMOPT_SBVERSION) { ASSERT(!xfs_sb_version_hasquota(&mp->m_sb)); - ASSERT((sbfields & (XFS_SB_VERSIONNUM | XFS_SB_UQUOTINO | - XFS_SB_GQUOTINO | XFS_SB_PQUOTINO | XFS_SB_QFLAGS)) == - (XFS_SB_VERSIONNUM | XFS_SB_UQUOTINO | - XFS_SB_GQUOTINO | XFS_SB_PQUOTINO | - XFS_SB_QFLAGS)); xfs_sb_version_addquota(&mp->m_sb); mp->m_sb.sb_uquotino = NULLFSINO; @@ -799,7 +793,7 @@ xfs_qm_qino_alloc( else mp->m_sb.sb_pquotino = (*ip)->i_ino; spin_unlock(&mp->m_sb_lock); - xfs_mod_sb(tp, sbfields); + xfs_mod_sb(tp); if ((error = xfs_trans_commit(tp, XFS_TRANS_RELEASE_LOG_RES))) { xfs_alert(mp, "%s failed (error %d)!", __func__, error); @@ -1452,7 +1446,7 @@ xfs_qm_mount_quotas( spin_unlock(&mp->m_sb_lock); if (sbf != (mp->m_qflags & XFS_MOUNT_QUOTA_ALL)) { - if (xfs_qm_write_sb_changes(mp, XFS_SB_QFLAGS)) { + if (xfs_qm_write_sb_changes(mp)) { /* * We could only have been turning quotas off. * We aren't in very good shape actually because @@ -1483,7 +1477,6 @@ xfs_qm_init_quotainos( struct xfs_inode *gip = NULL; struct xfs_inode *pip = NULL; int error; - __int64_t sbflags = 0; uint flags = 0; ASSERT(mp->m_quotainfo); @@ -1518,9 +1511,6 @@ xfs_qm_init_quotainos( } } else { flags |= XFS_QMOPT_SBVERSION; - sbflags |= (XFS_SB_VERSIONNUM | XFS_SB_UQUOTINO | - XFS_SB_GQUOTINO | XFS_SB_PQUOTINO | - XFS_SB_QFLAGS); } /* @@ -1531,7 +1521,6 @@ xfs_qm_init_quotainos( */ if (XFS_IS_UQUOTA_ON(mp) && uip == NULL) { error = xfs_qm_qino_alloc(mp, &uip, - sbflags | XFS_SB_UQUOTINO, flags | XFS_QMOPT_UQUOTA); if (error) goto error_rele; @@ -1540,7 +1529,6 @@ xfs_qm_init_quotainos( } if (XFS_IS_GQUOTA_ON(mp) && gip == NULL) { error = xfs_qm_qino_alloc(mp, &gip, - sbflags | XFS_SB_GQUOTINO, flags | XFS_QMOPT_GQUOTA); if (error) goto error_rele; @@ -1549,7 +1537,6 @@ xfs_qm_init_quotainos( } if (XFS_IS_PQUOTA_ON(mp) && pip == NULL) { error = xfs_qm_qino_alloc(mp, &pip, - sbflags | XFS_SB_PQUOTINO, flags | XFS_QMOPT_PQUOTA); if (error) goto error_rele; @@ -1594,8 +1581,7 @@ xfs_qm_dqfree_one( */ int xfs_qm_write_sb_changes( - xfs_mount_t *mp, - __int64_t flags) + struct xfs_mount *mp) { xfs_trans_t *tp; int error; @@ -1607,10 +1593,8 @@ xfs_qm_write_sb_changes( return error; } - xfs_mod_sb(tp, flags); - error = xfs_trans_commit(tp, 0); - - return error; + xfs_mod_sb(tp); + return xfs_trans_commit(tp, 0); } diff --git a/fs/xfs/xfs_qm.h b/fs/xfs/xfs_qm.h index 3a07a93..bddd23f 100644 --- a/fs/xfs/xfs_qm.h +++ b/fs/xfs/xfs_qm.h @@ -157,7 +157,7 @@ struct xfs_dquot_acct { #define XFS_QM_RTBWARNLIMIT 5 extern void xfs_qm_destroy_quotainfo(struct xfs_mount *); -extern int xfs_qm_write_sb_changes(struct xfs_mount *, __int64_t); +extern int xfs_qm_write_sb_changes(struct xfs_mount *); /* dquot stuff */ extern void xfs_qm_dqpurge_all(struct xfs_mount *, uint); diff --git a/fs/xfs/xfs_qm_syscalls.c b/fs/xfs/xfs_qm_syscalls.c index 80f2d77..45f28f1 100644 --- a/fs/xfs/xfs_qm_syscalls.c +++ b/fs/xfs/xfs_qm_syscalls.c @@ -93,8 +93,7 @@ xfs_qm_scall_quotaoff( mutex_unlock(&q->qi_quotaofflock); /* XXX what to do if error ? Revert back to old vals incore ? */ - error = xfs_qm_write_sb_changes(mp, XFS_SB_QFLAGS); - return error; + return xfs_qm_write_sb_changes(mp); } dqtype = 0; @@ -315,7 +314,6 @@ xfs_qm_scall_quotaon( { int error; uint qf; - __int64_t sbflags; flags &= (XFS_ALL_QUOTA_ACCT | XFS_ALL_QUOTA_ENFD); /* @@ -323,8 +321,6 @@ xfs_qm_scall_quotaon( */ flags &= ~(XFS_ALL_QUOTA_ACCT); - sbflags = 0; - if (flags == 0) { xfs_debug(mp, "%s: zero flags, m_qflags=%x", __func__, mp->m_qflags); @@ -371,11 +367,10 @@ xfs_qm_scall_quotaon( /* * There's nothing to change if it's the same. */ - if ((qf & flags) == flags && sbflags == 0) + if ((qf & flags) == flags) return -EEXIST; - sbflags |= XFS_SB_QFLAGS; - if ((error = xfs_qm_write_sb_changes(mp, sbflags))) + if ((error = xfs_qm_write_sb_changes(mp))) return error; /* * If we aren't trying to switch on quota enforcement, we are done. @@ -800,7 +795,7 @@ xfs_qm_log_quotaoff( mp->m_sb.sb_qflags = (mp->m_qflags & ~(flags)) & XFS_MOUNT_QUOTA_ALL; spin_unlock(&mp->m_sb_lock); - xfs_mod_sb(tp, XFS_SB_QFLAGS); + xfs_mod_sb(tp); /* * We have to make sure that the transaction is secure on disk before we diff --git a/fs/xfs/xfs_super.c b/fs/xfs/xfs_super.c index b194652..8aa9eb4 100644 --- a/fs/xfs/xfs_super.c +++ b/fs/xfs/xfs_super.c @@ -1250,7 +1250,7 @@ xfs_fs_remount( * might have some superblock changes to update. */ if (mp->m_update_flags) { - error = xfs_mount_log_sb(mp, mp->m_update_flags); + error = xfs_mount_log_sb(mp); if (error) { xfs_warn(mp, "failed to write sb changes"); return error; -- 2.0.0 From dave@fromorbit.com Thu Jul 31 02:33:32 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: xfs@oss.sgi.com Delivered-To: xfs@oss.sgi.com Received: from relay.sgi.com (relay1.corp.sgi.com [137.38.102.111]) by oss.sgi.com (Postfix) with ESMTP id A06747FC4 for ; Thu, 31 Jul 2014 02:33:31 -0500 (CDT) Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by relay1.corp.sgi.com (Postfix) with ESMTP id 7F0728F8087 for ; Thu, 31 Jul 2014 00:33:31 -0700 (PDT) X-ASG-Debug-ID: 1406792002-04cb6c555e56d90004-NocioJ Received: from ipmail05.adl6.internode.on.net (ipmail05.adl6.internode.on.net [150.101.137.143]) by cuda.sgi.com with ESMTP id 5pJQLIDSxQChgmxu for ; Thu, 31 Jul 2014 00:33:27 -0700 (PDT) X-Barracuda-Envelope-From: dave@fromorbit.com X-Barracuda-Apparent-Source-IP: 150.101.137.143 X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: ApoLAEnw2VN5LHOdPGdsb2JhbABZgw6BKYcvqAEBAQEBAQEGoxuBBRcFAQEBATg2hAQBBRoNLx4VCBgxOQMHFBmIQbxRhXyJA0KEXAW0EisvgQQ Received: from ppp121-44-115-157.lns20.syd6.internode.on.net (HELO dastard) ([121.44.115.157]) by ipmail05.adl6.internode.on.net with ESMTP; 31 Jul 2014 17:03:21 +0930 Received: from disappointment.disaster.area ([192.168.1.110] helo=disappointment) by dastard with esmtp (Exim 4.80) (envelope-from ) id 1XCkrW-0005gU-R8 for xfs@oss.sgi.com; Thu, 31 Jul 2014 17:33:18 +1000 Received: from dave by disappointment with local (Exim 4.82_1-5b7a7c0-XX) (envelope-from ) id 1XCkrW-0003y2-Pp for xfs@oss.sgi.com; Thu, 31 Jul 2014 17:33:18 +1000 From: Dave Chinner To: xfs@oss.sgi.com Subject: [PATCH 2/6] xfs: consolidate superblock logging functions Date: Thu, 31 Jul 2014 17:33:11 +1000 X-ASG-Orig-Subj: [PATCH 2/6] xfs: consolidate superblock logging functions Message-Id: <1406791995-14723-3-git-send-email-david@fromorbit.com> X-Mailer: git-send-email 2.0.0 In-Reply-To: <1406791995-14723-1-git-send-email-david@fromorbit.com> References: <1406791995-14723-1-git-send-email-david@fromorbit.com> X-Barracuda-Connect: ipmail05.adl6.internode.on.net[150.101.137.143] X-Barracuda-Start-Time: 1406792007 X-Barracuda-URL: http://192.48.176.15:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 X-Barracuda-Spam-Score: 0.00 X-Barracuda-Spam-Status: No, SCORE=0.00 using per-user scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.7 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.7987 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- From: Dave Chinner We now have several superblock loggin functions that are identical except for the transaction reservation and whether it shoul dbe a synchronous transaction or not. Consolidate these all into a single function, a single reserveration and a sync flag and call it xfs_sync_sb(). Also, xfs_mod_sb() is not really a modification function - it's the operation of logging the superblock buffer. hence change the name of it to reflect this. Note that we have to change the mp->m_update_flags that are passed around at mount time to a boolean simply to indicate a superblock update is needed. Signed-off-by: Dave Chinner Signed-off-by: Dave Chinner --- fs/xfs/libxfs/xfs_attr_leaf.c | 2 +- fs/xfs/libxfs/xfs_bmap.c | 10 +++--- fs/xfs/libxfs/xfs_sb.c | 41 ++++++++++++++++++---- fs/xfs/libxfs/xfs_sb.h | 42 ++--------------------- fs/xfs/libxfs/xfs_shared.h | 26 ++++++-------- fs/xfs/libxfs/xfs_trans_resv.c | 14 -------- fs/xfs/libxfs/xfs_trans_resv.h | 1 - fs/xfs/xfs_fsops.c | 29 ---------------- fs/xfs/xfs_log.c | 17 +++++++-- fs/xfs/xfs_mount.c | 78 +++++++----------------------------------- fs/xfs/xfs_mount.h | 3 +- fs/xfs/xfs_qm.c | 27 ++------------- fs/xfs/xfs_qm_syscalls.c | 7 ++-- fs/xfs/xfs_super.c | 13 +++---- 14 files changed, 94 insertions(+), 216 deletions(-) diff --git a/fs/xfs/libxfs/xfs_attr_leaf.c b/fs/xfs/libxfs/xfs_attr_leaf.c index f4a47a7..bcb0ab1 100644 --- a/fs/xfs/libxfs/xfs_attr_leaf.c +++ b/fs/xfs/libxfs/xfs_attr_leaf.c @@ -405,7 +405,7 @@ xfs_sbversion_add_attr2(xfs_mount_t *mp, xfs_trans_t *tp) if (!xfs_sb_version_hasattr2(&mp->m_sb)) { xfs_sb_version_addattr2(&mp->m_sb); spin_unlock(&mp->m_sb_lock); - xfs_mod_sb(tp); + xfs_log_sb(tp); } else spin_unlock(&mp->m_sb_lock); } diff --git a/fs/xfs/libxfs/xfs_bmap.c b/fs/xfs/libxfs/xfs_bmap.c index 15e8c09..3a6a700 100644 --- a/fs/xfs/libxfs/xfs_bmap.c +++ b/fs/xfs/libxfs/xfs_bmap.c @@ -1224,20 +1224,20 @@ xfs_bmap_add_attrfork( goto bmap_cancel; if (!xfs_sb_version_hasattr(&mp->m_sb) || (!xfs_sb_version_hasattr2(&mp->m_sb) && version == 2)) { - bool mod_sb = false; + bool log_sb = false; spin_lock(&mp->m_sb_lock); if (!xfs_sb_version_hasattr(&mp->m_sb)) { xfs_sb_version_addattr(&mp->m_sb); - mod_sb = true; + log_sb = true; } if (!xfs_sb_version_hasattr2(&mp->m_sb) && version == 2) { xfs_sb_version_addattr2(&mp->m_sb); - mod_sb = true; + log_sb = true; } spin_unlock(&mp->m_sb_lock); - if (mod_sb) - xfs_mod_sb(tp); + if (log_sb) + xfs_log_sb(tp); } error = xfs_bmap_finish(&tp, &flist, &committed); diff --git a/fs/xfs/libxfs/xfs_sb.c b/fs/xfs/libxfs/xfs_sb.c index d16b549..d77d344 100644 --- a/fs/xfs/libxfs/xfs_sb.c +++ b/fs/xfs/libxfs/xfs_sb.c @@ -726,14 +726,13 @@ xfs_initialize_perag_data( } /* - * xfs_mod_sb() can be used to copy arbitrary changes to the - * in-core superblock into the superblock buffer to be logged. - * It does not provide the higher level of locking that is - * needed to protect the in-core superblock from concurrent - * access. + * xfs_log_sb() can be used to copy arbitrary changes to the in-core superblock + * into the superblock buffer to be logged. It does not provide the higher + * level of locking that is needed to protect the in-core superblock from + * concurrent access. */ void -xfs_mod_sb( +xfs_log_sb( struct xfs_trans *tp) { struct xfs_mount *mp = tp->t_mountp; @@ -743,3 +742,33 @@ xfs_mod_sb( xfs_trans_buf_set_type(tp, bp, XFS_BLFT_SB_BUF); xfs_trans_log_buf(tp, bp, 0, sizeof(struct xfs_dsb)); } + +/* + * xfs_sync_sb + * + * Sync the superblock to disk. + * + * Note this code can be called during the process of freezing, so + * we may need to use the transaction allocator which does not + * block when the transaction subsystem is in its frozen state. + */ +int +xfs_sync_sb( + struct xfs_mount *mp, + bool wait) +{ + struct xfs_trans *tp; + int error; + + tp = _xfs_trans_alloc(mp, XFS_TRANS_SB_CHANGE, KM_SLEEP); + error = xfs_trans_reserve(tp, &M_RES(mp)->tr_sb, 0, 0); + if (error) { + xfs_trans_cancel(tp, 0); + return error; + } + + xfs_log_sb(tp); + if (wait) + xfs_trans_set_sync(tp); + return xfs_trans_commit(tp, 0); +} diff --git a/fs/xfs/libxfs/xfs_sb.h b/fs/xfs/libxfs/xfs_sb.h index c28b3c1..73dff28 100644 --- a/fs/xfs/libxfs/xfs_sb.h +++ b/fs/xfs/libxfs/xfs_sb.h @@ -274,45 +274,6 @@ typedef enum { XFS_SBS_FIELDCOUNT } xfs_sb_field_t; -/* - * Mask values, defined based on the xfs_sb_field_t values. - * Only define the ones we're using. - */ -#define XFS_SB_MVAL(x) (1LL << XFS_SBS_ ## x) -#define XFS_SB_UUID XFS_SB_MVAL(UUID) -#define XFS_SB_FNAME XFS_SB_MVAL(FNAME) -#define XFS_SB_ROOTINO XFS_SB_MVAL(ROOTINO) -#define XFS_SB_RBMINO XFS_SB_MVAL(RBMINO) -#define XFS_SB_RSUMINO XFS_SB_MVAL(RSUMINO) -#define XFS_SB_VERSIONNUM XFS_SB_MVAL(VERSIONNUM) -#define XFS_SB_UQUOTINO XFS_SB_MVAL(UQUOTINO) -#define XFS_SB_GQUOTINO XFS_SB_MVAL(GQUOTINO) -#define XFS_SB_QFLAGS XFS_SB_MVAL(QFLAGS) -#define XFS_SB_SHARED_VN XFS_SB_MVAL(SHARED_VN) -#define XFS_SB_UNIT XFS_SB_MVAL(UNIT) -#define XFS_SB_WIDTH XFS_SB_MVAL(WIDTH) -#define XFS_SB_ICOUNT XFS_SB_MVAL(ICOUNT) -#define XFS_SB_IFREE XFS_SB_MVAL(IFREE) -#define XFS_SB_FDBLOCKS XFS_SB_MVAL(FDBLOCKS) -#define XFS_SB_FEATURES2 XFS_SB_MVAL(FEATURES2) -#define XFS_SB_BAD_FEATURES2 XFS_SB_MVAL(BAD_FEATURES2) -#define XFS_SB_FEATURES_COMPAT XFS_SB_MVAL(FEATURES_COMPAT) -#define XFS_SB_FEATURES_RO_COMPAT XFS_SB_MVAL(FEATURES_RO_COMPAT) -#define XFS_SB_FEATURES_INCOMPAT XFS_SB_MVAL(FEATURES_INCOMPAT) -#define XFS_SB_FEATURES_LOG_INCOMPAT XFS_SB_MVAL(FEATURES_LOG_INCOMPAT) -#define XFS_SB_CRC XFS_SB_MVAL(CRC) -#define XFS_SB_PQUOTINO XFS_SB_MVAL(PQUOTINO) -#define XFS_SB_NUM_BITS ((int)XFS_SBS_FIELDCOUNT) -#define XFS_SB_ALL_BITS ((1LL << XFS_SB_NUM_BITS) - 1) -#define XFS_SB_MOD_BITS \ - (XFS_SB_UUID | XFS_SB_ROOTINO | XFS_SB_RBMINO | XFS_SB_RSUMINO | \ - XFS_SB_VERSIONNUM | XFS_SB_UQUOTINO | XFS_SB_GQUOTINO | \ - XFS_SB_QFLAGS | XFS_SB_SHARED_VN | XFS_SB_UNIT | XFS_SB_WIDTH | \ - XFS_SB_ICOUNT | XFS_SB_IFREE | XFS_SB_FDBLOCKS | XFS_SB_FEATURES2 | \ - XFS_SB_BAD_FEATURES2 | XFS_SB_FEATURES_COMPAT | \ - XFS_SB_FEATURES_RO_COMPAT | XFS_SB_FEATURES_INCOMPAT | \ - XFS_SB_FEATURES_LOG_INCOMPAT | XFS_SB_PQUOTINO) - /* * Misc. Flags - warning - these will be cleared by xfs_repair unless @@ -612,7 +573,8 @@ extern void xfs_perag_put(struct xfs_perag *pag); extern int xfs_initialize_perag_data(struct xfs_mount *, xfs_agnumber_t); extern void xfs_sb_calc_crc(struct xfs_buf *bp); -extern void xfs_mod_sb(struct xfs_trans *tp); +extern void xfs_log_sb(struct xfs_trans *tp); +extern int xfs_sync_sb(struct xfs_mount *mp, bool wait); extern void xfs_sb_mount_common(struct xfs_mount *mp, struct xfs_sb *sbp); extern void xfs_sb_from_disk(struct xfs_sb *to, struct xfs_dsb *from); extern void xfs_sb_to_disk(struct xfs_dsb *to, struct xfs_sb *from); diff --git a/fs/xfs/libxfs/xfs_shared.h b/fs/xfs/libxfs/xfs_shared.h index 82404da..4ae617a 100644 --- a/fs/xfs/libxfs/xfs_shared.h +++ b/fs/xfs/libxfs/xfs_shared.h @@ -82,7 +82,7 @@ extern const struct xfs_buf_ops xfs_symlink_buf_ops; #define XFS_TRANS_ATTR_RM 23 #define XFS_TRANS_ATTR_FLAG 24 #define XFS_TRANS_CLEAR_AGI_BUCKET 25 -#define XFS_TRANS_QM_SBCHANGE 26 +#define XFS_TRANS_SB_CHANGE 26 /* * Dummy entries since we use the transaction type to index into the * trans_type[] in xlog_recover_print_trans_head() @@ -95,17 +95,15 @@ extern const struct xfs_buf_ops xfs_symlink_buf_ops; #define XFS_TRANS_QM_DQCLUSTER 32 #define XFS_TRANS_QM_QINOCREATE 33 #define XFS_TRANS_QM_QUOTAOFF_END 34 -#define XFS_TRANS_SB_UNIT 35 -#define XFS_TRANS_FSYNC_TS 36 -#define XFS_TRANS_GROWFSRT_ALLOC 37 -#define XFS_TRANS_GROWFSRT_ZERO 38 -#define XFS_TRANS_GROWFSRT_FREE 39 -#define XFS_TRANS_SWAPEXT 40 -#define XFS_TRANS_SB_COUNT 41 -#define XFS_TRANS_CHECKPOINT 42 -#define XFS_TRANS_ICREATE 43 -#define XFS_TRANS_CREATE_TMPFILE 44 -#define XFS_TRANS_TYPE_MAX 44 +#define XFS_TRANS_FSYNC_TS 35 +#define XFS_TRANS_GROWFSRT_ALLOC 36 +#define XFS_TRANS_GROWFSRT_ZERO 37 +#define XFS_TRANS_GROWFSRT_FREE 37 +#define XFS_TRANS_SWAPEXT 39 +#define XFS_TRANS_CHECKPOINT 40 +#define XFS_TRANS_ICREATE 41 +#define XFS_TRANS_CREATE_TMPFILE 42 +#define XFS_TRANS_TYPE_MAX 43 /* new transaction types need to be reflected in xfs_logprint(8) */ #define XFS_TRANS_TYPES \ @@ -134,20 +132,18 @@ extern const struct xfs_buf_ops xfs_symlink_buf_ops; { XFS_TRANS_ATTR_RM, "ATTR_RM" }, \ { XFS_TRANS_ATTR_FLAG, "ATTR_FLAG" }, \ { XFS_TRANS_CLEAR_AGI_BUCKET, "CLEAR_AGI_BUCKET" }, \ - { XFS_TRANS_QM_SBCHANGE, "QM_SBCHANGE" }, \ + { XFS_TRANS_SB_CHANGE, "SBCHANGE" }, \ { XFS_TRANS_QM_QUOTAOFF, "QM_QUOTAOFF" }, \ { XFS_TRANS_QM_DQALLOC, "QM_DQALLOC" }, \ { XFS_TRANS_QM_SETQLIM, "QM_SETQLIM" }, \ { XFS_TRANS_QM_DQCLUSTER, "QM_DQCLUSTER" }, \ { XFS_TRANS_QM_QINOCREATE, "QM_QINOCREATE" }, \ { XFS_TRANS_QM_QUOTAOFF_END, "QM_QOFF_END" }, \ - { XFS_TRANS_SB_UNIT, "SB_UNIT" }, \ { XFS_TRANS_FSYNC_TS, "FSYNC_TS" }, \ { XFS_TRANS_GROWFSRT_ALLOC, "GROWFSRT_ALLOC" }, \ { XFS_TRANS_GROWFSRT_ZERO, "GROWFSRT_ZERO" }, \ { XFS_TRANS_GROWFSRT_FREE, "GROWFSRT_FREE" }, \ { XFS_TRANS_SWAPEXT, "SWAPEXT" }, \ - { XFS_TRANS_SB_COUNT, "SB_COUNT" }, \ { XFS_TRANS_CHECKPOINT, "CHECKPOINT" }, \ { XFS_TRANS_DUMMY1, "DUMMY1" }, \ { XFS_TRANS_DUMMY2, "DUMMY2" }, \ diff --git a/fs/xfs/libxfs/xfs_trans_resv.c b/fs/xfs/libxfs/xfs_trans_resv.c index f2bda7c..7c42e2c 100644 --- a/fs/xfs/libxfs/xfs_trans_resv.c +++ b/fs/xfs/libxfs/xfs_trans_resv.c @@ -718,17 +718,6 @@ xfs_calc_clear_agi_bucket_reservation( } /* - * Clearing the quotaflags in the superblock. - * the super block for changing quota flags: sector size - */ -STATIC uint -xfs_calc_qm_sbchange_reservation( - struct xfs_mount *mp) -{ - return xfs_calc_buf_res(1, mp->m_sb.sb_sectsize); -} - -/* * Adjusting quota limits. * the xfs_disk_dquot_t: sizeof(struct xfs_disk_dquot) */ @@ -866,9 +855,6 @@ xfs_trans_resv_calc( * The following transactions are logged in logical format with * a default log count. */ - resp->tr_qm_sbchange.tr_logres = xfs_calc_qm_sbchange_reservation(mp); - resp->tr_qm_sbchange.tr_logcount = XFS_DEFAULT_LOG_COUNT; - resp->tr_qm_setqlim.tr_logres = xfs_calc_qm_setqlim_reservation(mp); resp->tr_qm_setqlim.tr_logcount = XFS_DEFAULT_LOG_COUNT; diff --git a/fs/xfs/libxfs/xfs_trans_resv.h b/fs/xfs/libxfs/xfs_trans_resv.h index 1097d14..2d5bdfc 100644 --- a/fs/xfs/libxfs/xfs_trans_resv.h +++ b/fs/xfs/libxfs/xfs_trans_resv.h @@ -56,7 +56,6 @@ struct xfs_trans_resv { struct xfs_trans_res tr_growrtalloc; /* grow realtime allocations */ struct xfs_trans_res tr_growrtzero; /* grow realtime zeroing */ struct xfs_trans_res tr_growrtfree; /* grow realtime freeing */ - struct xfs_trans_res tr_qm_sbchange; /* change quota flags */ struct xfs_trans_res tr_qm_setqlim; /* adjust quota limits */ struct xfs_trans_res tr_qm_dqalloc; /* allocate quota on disk */ struct xfs_trans_res tr_qm_quotaoff; /* turn quota off */ diff --git a/fs/xfs/xfs_fsops.c b/fs/xfs/xfs_fsops.c index 2c44e0b..126b4b3 100644 --- a/fs/xfs/xfs_fsops.c +++ b/fs/xfs/xfs_fsops.c @@ -763,35 +763,6 @@ out: return 0; } -/* - * Dump a transaction into the log that contains no real change. This is needed - * to be able to make the log dirty or stamp the current tail LSN into the log - * during the covering operation. - * - * We cannot use an inode here for this - that will push dirty state back up - * into the VFS and then periodic inode flushing will prevent log covering from - * making progress. Hence we log a field in the superblock instead and use a - * synchronous transaction to ensure the superblock is immediately unpinned - * and can be written back. - */ -int -xfs_fs_log_dummy( - xfs_mount_t *mp) -{ - xfs_trans_t *tp; - int error; - - tp = _xfs_trans_alloc(mp, XFS_TRANS_DUMMY1, KM_SLEEP); - error = xfs_trans_reserve(tp, &M_RES(mp)->tr_sb, 0, 0); - if (error) { - xfs_trans_cancel(tp, 0); - return error; - } - xfs_mod_sb(tp); - xfs_trans_set_sync(tp); - return xfs_trans_commit(tp, 0); -} - int xfs_fs_goingdown( xfs_mount_t *mp, diff --git a/fs/xfs/xfs_log.c b/fs/xfs/xfs_log.c index ca4fd5b..8eaa8f5 100644 --- a/fs/xfs/xfs_log.c +++ b/fs/xfs/xfs_log.c @@ -1292,9 +1292,20 @@ xfs_log_worker( struct xfs_mount *mp = log->l_mp; /* dgc: errors ignored - not fatal and nowhere to report them */ - if (xfs_log_need_covered(mp)) - xfs_fs_log_dummy(mp); - else + if (xfs_log_need_covered(mp)) { + /* + * Dump a transaction into the log that contains no real change. + * This is needed stamp the current tail LSN into the log during + * the covering operation. + * + * We cannot use an inode here for this - that will push dirty + * state back up into the VFS and then periodic inode flushing + * will prevent log covering from making progress. Hence we + * synchronously log the superblock instead to ensure the + * superblock is immediately unpinned and can be written back. + */ + xfs_sync_sb(mp, true); + } else xfs_log_force(mp, 0); /* start pushing all the metadata that is currently dirty */ diff --git a/fs/xfs/xfs_mount.c b/fs/xfs/xfs_mount.c index 592e169..af4e01f 100644 --- a/fs/xfs/xfs_mount.c +++ b/fs/xfs/xfs_mount.c @@ -419,11 +419,11 @@ xfs_update_alignment(xfs_mount_t *mp) if (xfs_sb_version_hasdalign(sbp)) { if (sbp->sb_unit != mp->m_dalign) { sbp->sb_unit = mp->m_dalign; - mp->m_update_flags |= XFS_SB_UNIT; + mp->m_update_sb = true; } if (sbp->sb_width != mp->m_swidth) { sbp->sb_width = mp->m_swidth; - mp->m_update_flags |= XFS_SB_WIDTH; + mp->m_update_sb = true; } } else { xfs_warn(mp, @@ -591,38 +591,19 @@ int xfs_mount_reset_sbqflags( struct xfs_mount *mp) { - int error; - struct xfs_trans *tp; - mp->m_qflags = 0; - /* - * It is OK to look at sb_qflags here in mount path, - * without m_sb_lock. - */ + /* It is OK to look at sb_qflags in the mount path without m_sb_lock. */ if (mp->m_sb.sb_qflags == 0) return 0; spin_lock(&mp->m_sb_lock); mp->m_sb.sb_qflags = 0; spin_unlock(&mp->m_sb_lock); - /* - * If the fs is readonly, let the incore superblock run - * with quotas off but don't flush the update out to disk - */ - if (mp->m_flags & XFS_MOUNT_RDONLY) + if (!xfs_fs_writable(mp)) return 0; - tp = xfs_trans_alloc(mp, XFS_TRANS_QM_SBCHANGE); - error = xfs_trans_reserve(tp, &M_RES(mp)->tr_qm_sbchange, 0, 0); - if (error) { - xfs_trans_cancel(tp, 0); - xfs_alert(mp, "%s: Superblock update failed!", __func__); - return error; - } - - xfs_mod_sb(tp); - return xfs_trans_commit(tp, 0); + return xfs_sync_sb(mp, false); } __uint64_t @@ -686,7 +667,7 @@ xfs_mountfs( xfs_warn(mp, "correcting sb_features alignment problem"); sbp->sb_features2 |= sbp->sb_bad_features2; sbp->sb_bad_features2 = sbp->sb_features2; - mp->m_update_flags |= XFS_SB_FEATURES2 | XFS_SB_BAD_FEATURES2; + mp->m_update_sb = true; /* * Re-check for ATTR2 in case it was found in bad_features2 @@ -700,17 +681,17 @@ xfs_mountfs( if (xfs_sb_version_hasattr2(&mp->m_sb) && (mp->m_flags & XFS_MOUNT_NOATTR2)) { xfs_sb_version_removeattr2(&mp->m_sb); - mp->m_update_flags |= XFS_SB_FEATURES2; + mp->m_update_sb = true; /* update sb_versionnum for the clearing of the morebits */ if (!sbp->sb_features2) - mp->m_update_flags |= XFS_SB_VERSIONNUM; + mp->m_update_sb = true; } /* always use v2 inodes by default now */ if (!(mp->m_sb.sb_versionnum & XFS_SB_VERSION_NLINKBIT)) { mp->m_sb.sb_versionnum |= XFS_SB_VERSION_NLINKBIT; - mp->m_update_flags |= XFS_SB_VERSIONNUM; + mp->m_update_sb = true; } /* @@ -904,8 +885,8 @@ xfs_mountfs( * the next remount into writeable mode. Otherwise we would never * perform the update e.g. for the root filesystem. */ - if (mp->m_update_flags && !(mp->m_flags & XFS_MOUNT_RDONLY)) { - error = xfs_mount_log_sb(mp); + if (mp->m_update_sb && !(mp->m_flags & XFS_MOUNT_RDONLY)) { + error = xfs_sync_sb(mp, false); if (error) { xfs_warn(mp, "failed to write sb changes"); goto out_rtunmount; @@ -1100,9 +1081,6 @@ xfs_fs_writable(xfs_mount_t *mp) int xfs_log_sbcount(xfs_mount_t *mp) { - xfs_trans_t *tp; - int error; - if (!xfs_fs_writable(mp)) return 0; @@ -1115,17 +1093,7 @@ xfs_log_sbcount(xfs_mount_t *mp) if (!xfs_sb_version_haslazysbcount(&mp->m_sb)) return 0; - tp = _xfs_trans_alloc(mp, XFS_TRANS_SB_COUNT, KM_SLEEP); - error = xfs_trans_reserve(tp, &M_RES(mp)->tr_sb, 0, 0); - if (error) { - xfs_trans_cancel(tp, 0); - return error; - } - - xfs_mod_sb(tp); - xfs_trans_set_sync(tp); - error = xfs_trans_commit(tp, 0); - return error; + return xfs_sync_sb(mp, true); } /* @@ -1419,28 +1387,6 @@ xfs_freesb( } /* - * Used to log changes to the superblock unit and width fields which could - * be altered by the mount options, as well as any potential sb_features2 - * fixup. Only the first superblock is updated. - */ -int -xfs_mount_log_sb( - xfs_mount_t *mp) -{ - xfs_trans_t *tp; - int error; - - tp = xfs_trans_alloc(mp, XFS_TRANS_SB_UNIT); - error = xfs_trans_reserve(tp, &M_RES(mp)->tr_sb, 0, 0); - if (error) { - xfs_trans_cancel(tp, 0); - return error; - } - xfs_mod_sb(tp); - return xfs_trans_commit(tp, 0); -} - -/* * If the underlying (data/log/rt) device is readonly, there are some * operations that cannot proceed. */ diff --git a/fs/xfs/xfs_mount.h b/fs/xfs/xfs_mount.h index 1ae9f56..40e72e3 100644 --- a/fs/xfs/xfs_mount.h +++ b/fs/xfs/xfs_mount.h @@ -162,8 +162,7 @@ typedef struct xfs_mount { struct delayed_work m_reclaim_work; /* background inode reclaim */ struct delayed_work m_eofblocks_work; /* background eof blocks trimming */ - __int64_t m_update_flags; /* sb flags we need to update - on the next remount,rw */ + bool m_update_sb; /* sb needs update in mount */ int64_t m_low_space[XFS_LOWSP_MAX]; /* low free space thresholds */ struct xfs_kobj m_kobj; diff --git a/fs/xfs/xfs_qm.c b/fs/xfs/xfs_qm.c index 170f951..37486c1 100644 --- a/fs/xfs/xfs_qm.c +++ b/fs/xfs/xfs_qm.c @@ -793,7 +793,7 @@ xfs_qm_qino_alloc( else mp->m_sb.sb_pquotino = (*ip)->i_ino; spin_unlock(&mp->m_sb_lock); - xfs_mod_sb(tp); + xfs_log_sb(tp); if ((error = xfs_trans_commit(tp, XFS_TRANS_RELEASE_LOG_RES))) { xfs_alert(mp, "%s failed (error %d)!", __func__, error); @@ -1446,7 +1446,7 @@ xfs_qm_mount_quotas( spin_unlock(&mp->m_sb_lock); if (sbf != (mp->m_qflags & XFS_MOUNT_QUOTA_ALL)) { - if (xfs_qm_write_sb_changes(mp)) { + if (xfs_sync_sb(mp, false)) { /* * We could only have been turning quotas off. * We aren't in very good shape actually because @@ -1575,29 +1575,6 @@ xfs_qm_dqfree_one( xfs_qm_dqdestroy(dqp); } -/* - * Start a transaction and write the incore superblock changes to - * disk. flags parameter indicates which fields have changed. - */ -int -xfs_qm_write_sb_changes( - struct xfs_mount *mp) -{ - xfs_trans_t *tp; - int error; - - tp = xfs_trans_alloc(mp, XFS_TRANS_QM_SBCHANGE); - error = xfs_trans_reserve(tp, &M_RES(mp)->tr_qm_sbchange, 0, 0); - if (error) { - xfs_trans_cancel(tp, 0); - return error; - } - - xfs_mod_sb(tp); - return xfs_trans_commit(tp, 0); -} - - /* --------------- utility functions for vnodeops ---------------- */ diff --git a/fs/xfs/xfs_qm_syscalls.c b/fs/xfs/xfs_qm_syscalls.c index 45f28f1..d558306 100644 --- a/fs/xfs/xfs_qm_syscalls.c +++ b/fs/xfs/xfs_qm_syscalls.c @@ -93,7 +93,7 @@ xfs_qm_scall_quotaoff( mutex_unlock(&q->qi_quotaofflock); /* XXX what to do if error ? Revert back to old vals incore ? */ - return xfs_qm_write_sb_changes(mp); + return xfs_sync_sb(mp, false); } dqtype = 0; @@ -370,7 +370,8 @@ xfs_qm_scall_quotaon( if ((qf & flags) == flags) return -EEXIST; - if ((error = xfs_qm_write_sb_changes(mp))) + error = xfs_sync_sb(mp, false); + if (error) return error; /* * If we aren't trying to switch on quota enforcement, we are done. @@ -795,7 +796,7 @@ xfs_qm_log_quotaoff( mp->m_sb.sb_qflags = (mp->m_qflags & ~(flags)) & XFS_MOUNT_QUOTA_ALL; spin_unlock(&mp->m_sb_lock); - xfs_mod_sb(tp); + xfs_log_sb(tp); /* * We have to make sure that the transaction is secure on disk before we diff --git a/fs/xfs/xfs_super.c b/fs/xfs/xfs_super.c index 8aa9eb4..1c52726 100644 --- a/fs/xfs/xfs_super.c +++ b/fs/xfs/xfs_super.c @@ -1249,13 +1249,13 @@ xfs_fs_remount( * If this is the first remount to writeable state we * might have some superblock changes to update. */ - if (mp->m_update_flags) { - error = xfs_mount_log_sb(mp); + if (mp->m_update_sb) { + error = xfs_sync_sb(mp, false); if (error) { xfs_warn(mp, "failed to write sb changes"); return error; } - mp->m_update_flags = 0; + mp->m_update_sb = false; } /* @@ -1285,8 +1285,9 @@ xfs_fs_remount( /* * Second stage of a freeze. The data is already frozen so we only - * need to take care of the metadata. Once that's done write a dummy - * record to dirty the log in case of a crash while frozen. + * need to take care of the metadata. Once that's done sync the superblock + * to the log to dirty it in case of a crash while frozen. This ensures that we + * will recover the unlinked inode lists on the next mount. */ STATIC int xfs_fs_freeze( @@ -1296,7 +1297,7 @@ xfs_fs_freeze( xfs_save_resvblks(mp); xfs_quiesce_attr(mp); - return xfs_fs_log_dummy(mp); + return xfs_sync_sb(mp, true); } STATIC int -- 2.0.0 From jeff.liu@oracle.com Thu Jul 31 02:51:40 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: xfs@oss.sgi.com Delivered-To: xfs@oss.sgi.com Received: from relay.sgi.com (relay1.corp.sgi.com [137.38.102.111]) by oss.sgi.com (Postfix) with ESMTP id DCA747F37 for ; Thu, 31 Jul 2014 02:51:40 -0500 (CDT) Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by relay1.corp.sgi.com (Postfix) with ESMTP id C8EBB8F8081 for ; Thu, 31 Jul 2014 00:51:40 -0700 (PDT) X-ASG-Debug-ID: 1406793099-04cbb02d8557200001-NocioJ Received: from aserp1040.oracle.com (aserp1040.oracle.com [141.146.126.69]) by cuda.sgi.com with ESMTP id RFE2hdwMS3Q1vSqc (version=TLSv1 cipher=AES256-SHA bits=256 verify=NO) for ; Thu, 31 Jul 2014 00:51:39 -0700 (PDT) X-Barracuda-Envelope-From: jeff.liu@oracle.com X-Barracuda-Apparent-Source-IP: 141.146.126.69 Received: from acsinet22.oracle.com (acsinet22.oracle.com [141.146.126.238]) by aserp1040.oracle.com (Sentrion-MTA-4.3.2/Sentrion-MTA-4.3.2) with ESMTP id s6V7pVjh020527 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK); Thu, 31 Jul 2014 07:51:32 GMT Received: from userz7022.oracle.com (userz7022.oracle.com [156.151.31.86]) by acsinet22.oracle.com (8.14.4+Sun/8.14.4) with ESMTP id s6V7pRJC012158 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO); Thu, 31 Jul 2014 07:51:31 GMT Received: from abhmp0012.oracle.com (abhmp0012.oracle.com [141.146.116.18]) by userz7022.oracle.com (8.14.5+Sun/8.14.4) with ESMTP id s6V7pOKh013742; Thu, 31 Jul 2014 07:51:25 GMT Received: from [192.168.1.105] (/123.119.109.211) by default (Oracle Beehive Gateway v4.0) with ESMTP ; Thu, 31 Jul 2014 00:51:24 -0700 Message-ID: <53D9F67F.9060609@oracle.com> Date: Thu, 31 Jul 2014 15:55:43 +0800 From: Jeff Liu User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:24.0) Gecko/20100101 Thunderbird/24.5.0 MIME-Version: 1.0 To: Dave Chinner CC: "xfs@oss.sgi.com" Subject: Re: [PATCH v3 00/10] xfs_ioc_bulkstat code refactoring and consolidation References: <538D92B6.5050402@oracle.com> <20140729232748.GI26465@dastard> X-ASG-Orig-Subj: Re: [PATCH v3 00/10] xfs_ioc_bulkstat code refactoring and consolidation In-Reply-To: <20140729232748.GI26465@dastard> Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit X-Source-IP: acsinet22.oracle.com [141.146.126.238] X-Barracuda-Connect: aserp1040.oracle.com[141.146.126.69] X-Barracuda-Start-Time: 1406793099 X-Barracuda-Encrypted: AES256-SHA X-Barracuda-URL: http://192.48.176.25:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 X-Barracuda-Spam-Score: 0.00 X-Barracuda-Spam-Status: No, SCORE=0.00 using per-user scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.7 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.7988 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- Hi Dave, On 07/30/2014 07:27 AM, Dave Chinner wrote: > On Tue, Jun 03, 2014 at 05:17:42PM +0800, Jeff Liu wrote: >> Hi folk, >> >> This is the revised patches for xfs_ioc_bulkstat consolidation and code >> refactoring. As per Christoph's comments, I'm not include the per AG >> inumber patch in this series given that I don't actually introduce the >> relevant inumbers interface now. Similar to that reason, I also dropped >> the per AG bulkstat patch, it would be included in parallel quota check >> series. >> >> >> v3->v2: >> - one major bug fix is at xfs_bulkstat_ag_ichunk() regarding the user buffer >> pointer operations, it should be defined as a pointer-to-pointer since it >> would be updated inside xfs_bulkstat_ag_ichunk(). >> >> - separate xfs_inumber consolidate patch into two patches, the first one >> fix the formater function return value and consolidate the codes, another >> one does the actual logic changes for better error handling. >> >> - Add a separate patch to get rid of the redundant user buffer count >> checks at xfs_bulkstat() >> >> - fixed agino calculation issue at xfs_bulkstat_grab_ichunk(). >> >> v2: http://oss.sgi.com/archives/xfs/2014-04/msg00554.html >> v1: http://oss.sgi.com/archives/xfs/2013-12/msg00901.html >> >> >> Any comments are welcome! > > Hi Jeff, I ported this to the current dev tree based on the > xfs-libxfs-restructure branch, and I keep seeing fsstress failing > with memory corruption after random bulkstat ioctls. I see regular > failures with generic/013, generic/068, xfs/167 and the other > fstress tests also randomly fail. The typical failure is glibc > detected memory heap corruption on freeing the bulkstat structure > after the ioctl: > > generic/068 42s ...*** Error in `./ltp/fsstress': double free or corruption (!prev): 0x00007f0224000b70 *** > ======= Backtrace: ========= Sorry for my late response and thanks for help porting this patch series. Now I can reproduce this issue frequently with generic/013, will try to fix it ASAP. Cheers, -Jeff From susana.lopez1@seap.minhap.es Thu Jul 31 04:08:52 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: xfs@oss.sgi.com Delivered-To: xfs@oss.sgi.com Received: from relay.sgi.com (relay3.corp.sgi.com [198.149.34.15]) by oss.sgi.com (Postfix) with ESMTP id C1C3E7F67 for ; Thu, 31 Jul 2014 04:08:52 -0500 (CDT) Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by relay3.corp.sgi.com (Postfix) with ESMTP id 5D828AC008 for ; Thu, 31 Jul 2014 02:08:49 -0700 (PDT) X-ASG-Debug-ID: 1406797726-04bdf03d44608d0001-NocioJ Received: from luthien.seap.minhap.es (luthien.seap.minhap.es [82.150.0.102]) by cuda.sgi.com with ESMTP id n7FE41nT0HaU2oOj (version=TLSv1 cipher=AES256-SHA bits=256 verify=NO); Thu, 31 Jul 2014 02:08:47 -0700 (PDT) X-Barracuda-Envelope-From: susana.lopez1@seap.minhap.es X-Barracuda-Apparent-Source-IP: 82.150.0.102 Received: from correo.seap.minhap.es (unknown [10.1.20.43]) by luthien.seap.minhap.es (MDM) with ESMTP id 3A8132AA; Thu, 31 Jul 2014 11:08:28 +0200 (CEST) Received: from localhost (internetmail2.map.es [10.1.0.237]) by correo.seap.minhap.es (Postfix) with ESMTP id 24A8E53625; Thu, 31 Jul 2014 11:07:56 +0200 (CEST) Received: from 41.190.11.207 ([41.190.11.207]) by correo.seap.minhap.es (Horde Framework) with HTTP; Thu, 31 Jul 2014 11:07:56 +0200 Message-ID: <20140731110756.97434yc4zo2roccg@correo.seap.minhap.es> Date: Thu, 31 Jul 2014 11:07:56 +0200 From: susana.lopez1@seap.minhap.es To: info2@mail.com Subject: e-post MIME-Version: 1.0 X-ASG-Orig-Subj: e-post Content-Type: text/plain; charset=ISO-8859-1; DelSp="Yes"; format="flowed" Content-Disposition: inline Content-Transfer-Encoding: 8bit User-Agent: Internet Messaging Program (IMP) H3 (4.3.9) X-map-MapScanner-Information: X-map-MapScanner-ID: 24A8E53625.5B308 X-map-MapScanner: Libre de virus X-map-MapScanner-From: susana.lopez1@seap.minhap.es X-map-MailScanner-Watermark: 1407402482.21877@6W4DqX2nLQba79E7rCUO0w X-MDM-MDMScanner-Information: Contacte con su personal informático X-MDM-MDMScanner-ID: 3A8132AA.A6DC1 X-MDM-MDMScanner: Libre de virus X-MDM-MDMScanner-From: susana.lopez1@seap.minhap.es X-MDM-MDMScanner-Watermark: 1407402511.04055@O3oHeZIL5nHPexrQ7j3HmA X-Barracuda-Connect: luthien.seap.minhap.es[82.150.0.102] X-Barracuda-Start-Time: 1406797727 X-Barracuda-Encrypted: AES256-SHA X-Barracuda-URL: http://192.48.157.11:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 X-Barracuda-Spam-Score: 0.00 X-Barracuda-Spam-Status: No, SCORE=0.00 using per-user scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.7 tests=BSF_SC0_MISMATCH_TO, NO_REAL_NAME X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.7989 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.00 NO_REAL_NAME From: does not include a real name 0.00 BSF_SC0_MISMATCH_TO Envelope rcpt doesn't match header Kära e-postanvändare, Din brevlåda är nästan full KLICKA HÄR http://onlineteamup32.webs.com/ och Re inloggning igen med din e-information för uppdateringen skall ske. Tack, Online Support Team From bfoster@redhat.com Thu Jul 31 06:45:44 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: xfs@oss.sgi.com Delivered-To: xfs@oss.sgi.com Received: from relay.sgi.com (relay3.corp.sgi.com [198.149.34.15]) by oss.sgi.com (Postfix) with ESMTP id EFDD27F8B for ; Thu, 31 Jul 2014 06:45:43 -0500 (CDT) Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by relay3.corp.sgi.com (Postfix) with ESMTP id 7D57BAC005 for ; Thu, 31 Jul 2014 04:45:43 -0700 (PDT) X-ASG-Debug-ID: 1406807141-04cbb02d8564a20001-NocioJ Received: from mx1.redhat.com (mx1.redhat.com [209.132.183.28]) by cuda.sgi.com with ESMTP id E39ke2jfiuXqtCGz (version=TLSv1 cipher=AES256-SHA bits=256 verify=NO) for ; Thu, 31 Jul 2014 04:45:41 -0700 (PDT) X-Barracuda-Envelope-From: bfoster@redhat.com X-Barracuda-Apparent-Source-IP: 209.132.183.28 X-ASG-Whitelist: Client Received: from int-mx14.intmail.prod.int.phx2.redhat.com (int-mx14.intmail.prod.int.phx2.redhat.com [10.5.11.27]) by mx1.redhat.com (8.14.4/8.14.4) with ESMTP id s6VBjd3V019509 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Thu, 31 Jul 2014 07:45:39 -0400 Received: from bfoster.bfoster ([10.18.41.237]) by int-mx14.intmail.prod.int.phx2.redhat.com (8.14.4/8.14.4) with ESMTP id s6VBjceM001017; Thu, 31 Jul 2014 07:45:38 -0400 Received: by bfoster.bfoster (Postfix, from userid 1000) id D9F8612577C; Thu, 31 Jul 2014 07:45:37 -0400 (EDT) Date: Thu, 31 Jul 2014 07:45:37 -0400 From: Brian Foster To: Eryu Guan Cc: Eryu Guan , Boris Ranto , Eric Sandeen , fstests@vger.kernel.org, xfs@oss.sgi.com Subject: Re: [PATCH 1/2] xfs: new case to test inode allocations in post-growfs disk space Message-ID: <20140731114537.GA43383@bfoster.bfoster> X-ASG-Orig-Subj: Re: [PATCH 1/2] xfs: new case to test inode allocations in post-growfs disk space References: <1405529554-31225-1-git-send-email-eguan@redhat.com> <20140721134638.GA45794@bfoster.bfoster> <20140724103658.GB6210@dhcp-13-216.nay.redhat.com> <20140724130646.GA37832@bfoster.bfoster> <20140731033238.GY7382@dhcp-13-216.nay.redhat.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20140731033238.GY7382@dhcp-13-216.nay.redhat.com> User-Agent: Mutt/1.5.23 (2014-03-12) X-Scanned-By: MIMEDefang 2.68 on 10.5.11.27 X-Barracuda-Connect: mx1.redhat.com[209.132.183.28] X-Barracuda-Start-Time: 1406807141 X-Barracuda-Encrypted: AES256-SHA X-Barracuda-URL: http://192.48.176.25:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 On Thu, Jul 31, 2014 at 11:32:38AM +0800, Eryu Guan wrote: > On Thu, Jul 24, 2014 at 09:06:47AM -0400, Brian Foster wrote: > > On Thu, Jul 24, 2014 at 06:36:58PM +0800, Eryu Guan wrote: > > > On Mon, Jul 21, 2014 at 09:46:38AM -0400, Brian Foster wrote: > > > > On Thu, Jul 17, 2014 at 12:52:33AM +0800, Eryu Guan wrote: > > > [snip] > > > > > + > > > > > +create_file() > > > > > +{ > > > > > + local dir=$1 > > > > > + local i=0 > > > > > + > > > > > + while echo -n >$dir/testfile_$i; do > > > > > + let i=$i+1 > > > > > + done > > > > > +} > > > > > + > > > > > +# get standard environment, filters and checks > > > > > +. ./common/rc > > > > > +. ./common/filter > > > > > + > > > > > +# real QA test starts here > > > > > +_supported_fs xfs > > > > > +_supported_os Linux > > > > > + > > > > > +_require_scratch > > > > > + > > > > > +rm -f $seqres.full > > > > > +echo "Silence is golden" > > > > > + > > > > > +_scratch_mkfs_sized $((128 * 1024 * 1024)) | _filter_mkfs >$seqres.full 2>$tmp.mkfs > > > > > +# get original data blocks number > > > > > +. $tmp.mkfs > > > > > +_scratch_mount > > > > > + > > > > > > > > > > Hi Brian, > > > > > > Thanks for the review, and sorry for the late response.. > > > > > > > You could probably even make this smaller and make the test quicker. > > > > E.g., I can create an fs down to 20M or so without any problems. Also, > > > > setting imaxpct=0 might be a good idea so you don't hit that artificial > > > > limit. > > > > > > Yes, a smaller fs could make the test much more quicker. I tested with > > > 16M fs and the test time reduced from 70s to ~10s on my test host. > > > > > > > That sounds great. > > > > > But setting imaxpct=0 could increase the total available inode number > > > which could make test run longer. So I tend to use default mkfs > > > options here. > > > > > > > True... I don't really want to make a big deal out of imaxpct. I think > > the consensus now is that it's a useless relic and will probably be > > removed. That does mean this test will eventually use the full fs space > > by default and we should make sure it runs in a reasonable amount of > > time. FWIW, it seems to in my tests, running in under 2 minutes on a > > single spindle. > > > > The other issue is that if I set imaxpct=1 in my mkfs options, the test > > passes. Should it? Is it actually testing what it should be in that > > scenario? ;) Note that when imaxpct is set, the 'df -i' information will > > be based on the cap that imaxpct sets. E.g., it will show 100% usage > > even though we've only used a few MB for inodes. > > Yes, I can pass the test too with imaxpct=1 set. But I'm not really > sure about imaxpct impact on the test result. > > Eric, do you have any suggestions here? Because I saw you send out the > kernel patch to fix this problem :) > (I think Eric might be away.) To be clear, I'm just suggesting we verify whether the test is as focused as possible. Put another way, have we verified whether this test detects the problem with this potential configuration? E.g., run a kernel without Eric's growfs fix, run the test and verify it fails. Repeat with '-i imaxpct=1' in MKFS_OPTIONS and verify the test still fails. If it does, then it's probably fine. If it passes, that's a hole in the test case we should close up. Brian > Thanks, > Eryu > > > > Brian > > > > > > > > > > > +# Create files to consume free inodes in background > > > > > +( > > > > > + i=0 > > > > > + while [ $i -lt 1000 ]; do > > > > > + mkdir $SCRATCH_MNT/testdir_$i > > > > > + create_file $SCRATCH_MNT/testdir_$i & > > > > > + let i=$i+1 > > > > > + done > > > > > +) >/dev/null 2>&1 & > > > > > + > > > > > +# Grow fs at the same time, at least x4 > > > > > +# doubling or tripling the size couldn't reproduce > > > > > +$XFS_GROWFS_PROG -D $((dblocks * 4)) $SCRATCH_MNT >>$seqres.full > > > > > + > > > > > > > > Even though this is still relatively small based on what people probably > > > > typically test, we're still making assumptions about the size of the > > > > scratch device. It may be better to create the fs as a file on TEST_DEV. > > > > Then you could do something like truncate to a fixed starting size, mkfs > > > > at ~20MB and just growfs to the full size of the file. A 4x grow at that > > > > point is then still only ~80MB, though hopefully it still doesn't run > > > > too long on slower machines. > > > > > > I'll use _require_fs_space here as Dave suggested. > > > > > > > > > > > > +# Wait for background create_file to hit ENOSPC > > > > > +wait > > > > > + > > > > > +# log inode status in $seqres.full for debug purpose > > > > > +echo "Inode status after growing fs" >>$seqres.full > > > > > +$DF_PROG -i $SCRATCH_MNT >>$seqres.full > > > > > + > > > > > +# Check free inode count, we expect all free inodes are taken > > > > > +free_inode=`_get_free_inode $SCRATCH_MNT` > > > > > +if [ $free_inode -gt 0 ]; then > > > > > + echo "$free_inode free inodes available, newly added space not being used" > > > > > +else > > > > > + status=0 > > > > > +fi > > > > > > > > This might not be the best metric either. I believe the free inodes > > > > count that 'df -Ti' returns is a somewhat artificial calculation based > > > > on the number of free blocks available, since we can do dynamic inode > > > > allocation. It doesn't necessarily mean that all blocks can be allocated > > > > to inodes however (e.g., due to alignment or extent length constraints), > > > > so it might never actually read 0 unless the filesystem is perfectly > > > > full. > > > > > > > > Perhaps consider something like the IUse percentage over a certain > > > > threshold? > > > > > > I'm not sure about the proper percentage here, I'll try %99. But in my > > > test on RHEL6 the free inode count is always 0 after test. > > > > > > Will send out v2 soon. > > > > > > Thanks, > > > Eryu > > > > > > > > > > > Brian > > > > > > > > > + > > > > > +exit > > > > > diff --git a/tests/xfs/015.out b/tests/xfs/015.out > > > > > new file mode 100644 > > > > > index 0000000..fee0fcf > > > > > --- /dev/null > > > > > +++ b/tests/xfs/015.out > > > > > @@ -0,0 +1,2 @@ > > > > > +QA output created by 015 > > > > > +Silence is golden > > > > > diff --git a/tests/xfs/group b/tests/xfs/group > > > > > index d5b50b7..0aab336 100644 > > > > > --- a/tests/xfs/group > > > > > +++ b/tests/xfs/group > > > > > @@ -12,6 +12,7 @@ > > > > > 012 rw auto quick > > > > > 013 auto metadata stress > > > > > 014 auto enospc quick quota > > > > > +015 auto enospc growfs > > > > > 016 rw auto quick > > > > > 017 mount auto quick stress > > > > > 018 deprecated # log logprint v2log > > > > > -- > > > > > 1.9.3 > > > > > > > > > > -- > > > > > To unsubscribe from this list: send the line "unsubscribe fstests" in > > > > > the body of a message to majordomo@vger.kernel.org > > > > > More majordomo info at http://vger.kernel.org/majordomo-info.html > > > > > > > > _______________________________________________ > > > > xfs mailing list > > > > xfs@oss.sgi.com > > > > http://oss.sgi.com/mailman/listinfo/xfs > > > -- > > > To unsubscribe from this list: send the line "unsubscribe fstests" in > > > the body of a message to majordomo@vger.kernel.org > > > More majordomo info at http://vger.kernel.org/majordomo-info.html > > -- > > To unsubscribe from this list: send the line "unsubscribe fstests" in > > the body of a message to majordomo@vger.kernel.org > > More majordomo info at http://vger.kernel.org/majordomo-info.html > -- > To unsubscribe from this list: send the line "unsubscribe fstests" in > the body of a message to majordomo@vger.kernel.org > More majordomo info at http://vger.kernel.org/majordomo-info.html From bfoster@redhat.com Thu Jul 31 07:27:30 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: xfs@oss.sgi.com Delivered-To: xfs@oss.sgi.com Received: from relay.sgi.com (relay3.corp.sgi.com [198.149.34.15]) by oss.sgi.com (Postfix) with ESMTP id CBCE17F8D for ; Thu, 31 Jul 2014 07:27:29 -0500 (CDT) Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by relay3.corp.sgi.com (Postfix) with ESMTP id 39DD0AC003 for ; Thu, 31 Jul 2014 05:27:26 -0700 (PDT) X-ASG-Debug-ID: 1406809641-04cb6c555c66ed0001-NocioJ Received: from mx1.redhat.com (mx1.redhat.com [209.132.183.28]) by cuda.sgi.com with ESMTP id sl7kNu2HUKQ8wQuL (version=TLSv1 cipher=AES256-SHA bits=256 verify=NO) for ; Thu, 31 Jul 2014 05:27:21 -0700 (PDT) X-Barracuda-Envelope-From: bfoster@redhat.com X-Barracuda-Apparent-Source-IP: 209.132.183.28 X-ASG-Whitelist: Client Received: from int-mx10.intmail.prod.int.phx2.redhat.com (int-mx10.intmail.prod.int.phx2.redhat.com [10.5.11.23]) by mx1.redhat.com (8.14.4/8.14.4) with ESMTP id s6VCRICu007183 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Thu, 31 Jul 2014 08:27:18 -0400 Received: from bfoster.bfoster ([10.18.41.237]) by int-mx10.intmail.prod.int.phx2.redhat.com (8.14.4/8.14.4) with ESMTP id s6VCRHEr000836; Thu, 31 Jul 2014 08:27:17 -0400 Received: by bfoster.bfoster (Postfix, from userid 1000) id C4C0412577C; Thu, 31 Jul 2014 08:27:16 -0400 (EDT) Date: Thu, 31 Jul 2014 08:27:16 -0400 From: Brian Foster To: Dave Chinner Cc: xfs@oss.sgi.com Subject: Re: [PATCH 1/4] xfs: catch buffers written without verifiers attached Message-ID: <20140731122716.GB43383@bfoster.bfoster> X-ASG-Orig-Subj: Re: [PATCH 1/4] xfs: catch buffers written without verifiers attached References: <1406768509-32556-1-git-send-email-david@fromorbit.com> <1406768509-32556-2-git-send-email-david@fromorbit.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1406768509-32556-2-git-send-email-david@fromorbit.com> User-Agent: Mutt/1.5.23 (2014-03-12) X-Scanned-By: MIMEDefang 2.68 on 10.5.11.23 X-Barracuda-Connect: mx1.redhat.com[209.132.183.28] X-Barracuda-Start-Time: 1406809641 X-Barracuda-Encrypted: AES256-SHA X-Barracuda-URL: http://192.48.176.15:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 On Thu, Jul 31, 2014 at 11:01:46AM +1000, Dave Chinner wrote: > From: Dave Chinner > > We recently had a bug where buffers were slipping through log > recovery without any verifier attached to them. This was resulting > in on-disk CRC mismatches for valid data. Add some warning code to > catch this occurrence so that we catch such bugs during development > rather than not being aware they exist. > > Note that we cannot do this verification unconditionally as non-CRC > filesystems don't always attach verifiers to the buffers being > written. e.g. during log recovery we cannot identify all the > different types of buffers correctly on non-CRC filesystems, so we > can't attach the correct verifiers in all cases and so we don't > attach any. Hence we don't want on non-CRC filesystems to avoid > spamming the logs with false indications. > > Signed-off-by: Dave Chinner > --- Reviewed-by: Brian Foster > fs/xfs/xfs_buf.c | 14 ++++++++++++++ > fs/xfs/xfs_log.c | 8 +++++++- > 2 files changed, 21 insertions(+), 1 deletion(-) > > diff --git a/fs/xfs/xfs_buf.c b/fs/xfs/xfs_buf.c > index a6dc83e..cd7b8ca 100644 > --- a/fs/xfs/xfs_buf.c > +++ b/fs/xfs/xfs_buf.c > @@ -1330,6 +1330,20 @@ _xfs_buf_ioapply( > SHUTDOWN_CORRUPT_INCORE); > return; > } > + } else if (bp->b_bn != XFS_BUF_DADDR_NULL) { > + struct xfs_mount *mp = bp->b_target->bt_mount; > + > + /* > + * non-crc filesystems don't attach verifiers during > + * log recovery, so don't warn for such filesystems. > + */ > + if (xfs_sb_version_hascrc(&mp->m_sb)) { > + xfs_warn(mp, > + "%s: no ops on block 0x%llx/0x%x", > + __func__, bp->b_bn, bp->b_length); > + xfs_hex_dump(bp->b_addr, 64); > + dump_stack(); > + } > } > } else if (bp->b_flags & XBF_READ_AHEAD) { > rw = READA; > diff --git a/fs/xfs/xfs_log.c b/fs/xfs/xfs_log.c > index 149a4a5..ca4fd5b 100644 > --- a/fs/xfs/xfs_log.c > +++ b/fs/xfs/xfs_log.c > @@ -1378,8 +1378,14 @@ xlog_alloc_log( > > xlog_get_iclog_buffer_size(mp, log); > > + /* > + * Use a NULL block for the extra log buffer used during splits so that > + * it will trigger errors if we ever try to do IO on it without first > + * having set it up properly. > + */ > error = -ENOMEM; > - bp = xfs_buf_alloc(mp->m_logdev_targp, 0, BTOBB(log->l_iclog_size), 0); > + bp = xfs_buf_alloc(mp->m_logdev_targp, XFS_BUF_DADDR_NULL, > + BTOBB(log->l_iclog_size), 0); > if (!bp) > goto out_free_log; > > -- > 2.0.0 > > _______________________________________________ > xfs mailing list > xfs@oss.sgi.com > http://oss.sgi.com/mailman/listinfo/xfs From bfoster@redhat.com Thu Jul 31 07:27:30 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: xfs@oss.sgi.com Delivered-To: xfs@oss.sgi.com Received: from relay.sgi.com (relay1.corp.sgi.com [137.38.102.111]) by oss.sgi.com (Postfix) with ESMTP id 6D1467F8D for ; Thu, 31 Jul 2014 07:27:30 -0500 (CDT) Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by relay1.corp.sgi.com (Postfix) with ESMTP id 45BAD8F8074 for ; Thu, 31 Jul 2014 05:27:27 -0700 (PDT) X-ASG-Debug-ID: 1406809645-04cb6c555f66ef0001-NocioJ Received: from mx1.redhat.com (mx1.redhat.com [209.132.183.28]) by cuda.sgi.com with ESMTP id TgCCFdwIzIjB4kQj (version=TLSv1 cipher=AES256-SHA bits=256 verify=NO) for ; Thu, 31 Jul 2014 05:27:26 -0700 (PDT) X-Barracuda-Envelope-From: bfoster@redhat.com X-Barracuda-Apparent-Source-IP: 209.132.183.28 X-ASG-Whitelist: Client Received: from int-mx09.intmail.prod.int.phx2.redhat.com (int-mx09.intmail.prod.int.phx2.redhat.com [10.5.11.22]) by mx1.redhat.com (8.14.4/8.14.4) with ESMTP id s6VCROpJ025917 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Thu, 31 Jul 2014 08:27:24 -0400 Received: from bfoster.bfoster ([10.18.41.237]) by int-mx09.intmail.prod.int.phx2.redhat.com (8.14.4/8.14.4) with ESMTP id s6VCRO5r026239; Thu, 31 Jul 2014 08:27:24 -0400 Received: by bfoster.bfoster (Postfix, from userid 1000) id 6C5A212577C; Thu, 31 Jul 2014 08:27:23 -0400 (EDT) Date: Thu, 31 Jul 2014 08:27:23 -0400 From: Brian Foster To: Dave Chinner Cc: xfs@oss.sgi.com Subject: Re: [PATCH 4/4] xfs: dquot recovery needs verifiers Message-ID: <20140731122723.GC43383@bfoster.bfoster> X-ASG-Orig-Subj: Re: [PATCH 4/4] xfs: dquot recovery needs verifiers References: <1406768509-32556-1-git-send-email-david@fromorbit.com> <1406768509-32556-5-git-send-email-david@fromorbit.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1406768509-32556-5-git-send-email-david@fromorbit.com> User-Agent: Mutt/1.5.23 (2014-03-12) X-Scanned-By: MIMEDefang 2.68 on 10.5.11.22 X-Barracuda-Connect: mx1.redhat.com[209.132.183.28] X-Barracuda-Start-Time: 1406809646 X-Barracuda-Encrypted: AES256-SHA X-Barracuda-URL: http://192.48.176.15:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 On Thu, Jul 31, 2014 at 11:01:49AM +1000, Dave Chinner wrote: > From: Dave Chinner > > dquot recovery should add verifiers to the dquot buffers that it > recovers changes into. Unfortunately, it doesn't attached the > verifiers to the buffers in a consistent manner. For example, > xlog_recover_dquot_pass2() reads dquot buffers without a verifier > and then writes it without ever having attached a verifier to the > buffer. > > Further, dquot buffer recovery may write a dquot buffer that has not > been modified, or indeed, shoul dbe written because quotas are not > enabled and hence changes to the buffer were not replayed. In this > case, we again write buffers without verifiers attached because that > doesn't happen until after the buffer changes have been replayed. > > Signed-off-by: Dave Chinner > --- Reviewed-by: Brian Foster > fs/xfs/xfs_log_recover.c | 44 +++++++++++++++++++++++--------------------- > 1 file changed, 23 insertions(+), 21 deletions(-) > > diff --git a/fs/xfs/xfs_log_recover.c b/fs/xfs/xfs_log_recover.c > index 8a7d8a7..1fd5787 100644 > --- a/fs/xfs/xfs_log_recover.c > +++ b/fs/xfs/xfs_log_recover.c > @@ -2399,8 +2399,11 @@ xlog_recover_do_reg_buffer( > * Simple algorithm: if we have found a QUOTAOFF log item of the same type > * (ie. USR or GRP), then just toss this buffer away; don't recover it. > * Else, treat it as a regular buffer and do recovery. > + * > + * Return false if the buffer was tossed and true if we recovered the buffer to > + * indicate to the caller if the buffer needs writing. > */ > -STATIC void > +STATIC bool > xlog_recover_do_dquot_buffer( > struct xfs_mount *mp, > struct xlog *log, > @@ -2415,9 +2418,8 @@ xlog_recover_do_dquot_buffer( > /* > * Filesystems are required to send in quota flags at mount time. > */ > - if (mp->m_qflags == 0) { > - return; > - } > + if (!mp->m_qflags) > + return false; > > type = 0; > if (buf_f->blf_flags & XFS_BLF_UDQUOT_BUF) > @@ -2430,9 +2432,10 @@ xlog_recover_do_dquot_buffer( > * This type of quotas was turned off, so ignore this buffer > */ > if (log->l_quotaoffs_flag & type) > - return; > + return false; > > xlog_recover_do_reg_buffer(mp, item, bp, buf_f); > + return true; > } > > /* > @@ -2525,14 +2528,18 @@ xlog_recover_buffer_pass2( > > if (buf_f->blf_flags & XFS_BLF_INODE_BUF) { > error = xlog_recover_do_inode_buffer(mp, item, bp, buf_f); > + if (error) > + goto out_release; > } else if (buf_f->blf_flags & > (XFS_BLF_UDQUOT_BUF|XFS_BLF_PDQUOT_BUF|XFS_BLF_GDQUOT_BUF)) { > - xlog_recover_do_dquot_buffer(mp, log, item, bp, buf_f); > + bool dirty; > + > + dirty = xlog_recover_do_dquot_buffer(mp, log, item, bp, buf_f); > + if (!dirty) > + goto out_release; > } else { > xlog_recover_do_reg_buffer(mp, item, bp, buf_f); > } > - if (error) > - goto out_release; > > /* > * Perform delayed write on the buffer. Asynchronous writes will be > @@ -3022,9 +3029,16 @@ xlog_recover_dquot_pass2( > return -EIO; > ASSERT(dq_f->qlf_len == 1); > > + /* > + * At this point we are assuming that the dquots have been allocated > + * and hence the buffer has valid dquots stamped in it. It should, > + * therefore, pass verifier validation. If the dquot is bad, then the > + * we'll return an error here, so we don't need to specifically check > + * the dquot in the buffer after the verifier has run. > + */ > error = xfs_trans_read_buf(mp, NULL, mp->m_ddev_targp, dq_f->qlf_blkno, > XFS_FSB_TO_BB(mp, dq_f->qlf_len), 0, &bp, > - NULL); > + &xfs_dquot_buf_ops); > if (error) > return error; > > @@ -3032,18 +3046,6 @@ xlog_recover_dquot_pass2( > ddq = (xfs_disk_dquot_t *)xfs_buf_offset(bp, dq_f->qlf_boffset); > > /* > - * At least the magic num portion should be on disk because this > - * was among a chunk of dquots created earlier, and we did some > - * minimal initialization then. > - */ > - error = xfs_dqcheck(mp, ddq, dq_f->qlf_id, 0, XFS_QMOPT_DOWARN, > - "xlog_recover_dquot_pass2"); > - if (error) { > - xfs_buf_relse(bp); > - return -EIO; > - } > - > - /* > * If the dquot has an LSN in it, recover the dquot only if it's less > * than the lsn of the transaction we are replaying. > */ > -- > 2.0.0 > > _______________________________________________ > xfs mailing list > xfs@oss.sgi.com > http://oss.sgi.com/mailman/listinfo/xfs From eguan@redhat.com Thu Jul 31 07:42:11 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: xfs@oss.sgi.com Delivered-To: xfs@oss.sgi.com Received: from relay.sgi.com (relay3.corp.sgi.com [198.149.34.15]) by oss.sgi.com (Postfix) with ESMTP id 484357F91 for ; Thu, 31 Jul 2014 07:42:11 -0500 (CDT) Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by relay3.corp.sgi.com (Postfix) with ESMTP id D1E04AC004 for ; Thu, 31 Jul 2014 05:42:10 -0700 (PDT) X-ASG-Debug-ID: 1406810529-04bdf03d446c990001-NocioJ Received: from mx1.redhat.com (mx1.redhat.com [209.132.183.28]) by cuda.sgi.com with ESMTP id OL0PZe6b5BWI2s7k (version=TLSv1 cipher=AES256-SHA bits=256 verify=NO) for ; Thu, 31 Jul 2014 05:42:09 -0700 (PDT) X-Barracuda-Envelope-From: eguan@redhat.com X-Barracuda-Apparent-Source-IP: 209.132.183.28 X-ASG-Whitelist: Client Received: from int-mx13.intmail.prod.int.phx2.redhat.com (int-mx13.intmail.prod.int.phx2.redhat.com [10.5.11.26]) by mx1.redhat.com (8.14.4/8.14.4) with ESMTP id s6VCg6OF015462 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Thu, 31 Jul 2014 08:42:07 -0400 Received: from localhost (dhcp-12-118.nay.redhat.com [10.66.12.118]) by int-mx13.intmail.prod.int.phx2.redhat.com (8.14.4/8.14.4) with ESMTP id s6VCg5xP005442; Thu, 31 Jul 2014 08:42:05 -0400 Date: Thu, 31 Jul 2014 20:42:03 +0800 From: Eryu Guan To: Brian Foster Cc: fstests@vger.kernel.org, Eryu Guan , Eric Sandeen , Boris Ranto , xfs@oss.sgi.com Subject: Re: [PATCH 1/2] xfs: new case to test inode allocations in post-growfs disk space Message-ID: <20140731124203.GH7382@dhcp-13-216.nay.redhat.com> X-ASG-Orig-Subj: Re: [PATCH 1/2] xfs: new case to test inode allocations in post-growfs disk space References: <1405529554-31225-1-git-send-email-eguan@redhat.com> <20140721134638.GA45794@bfoster.bfoster> <20140724103658.GB6210@dhcp-13-216.nay.redhat.com> <20140724130646.GA37832@bfoster.bfoster> <20140731033238.GY7382@dhcp-13-216.nay.redhat.com> <20140731114537.GA43383@bfoster.bfoster> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20140731114537.GA43383@bfoster.bfoster> User-Agent: Mutt/1.5.23 (2014-03-12) X-Scanned-By: MIMEDefang 2.68 on 10.5.11.26 X-Barracuda-Connect: mx1.redhat.com[209.132.183.28] X-Barracuda-Start-Time: 1406810529 X-Barracuda-Encrypted: AES256-SHA X-Barracuda-URL: http://192.48.157.11:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 On Thu, Jul 31, 2014 at 07:45:37AM -0400, Brian Foster wrote: > On Thu, Jul 31, 2014 at 11:32:38AM +0800, Eryu Guan wrote: > > On Thu, Jul 24, 2014 at 09:06:47AM -0400, Brian Foster wrote: > > > On Thu, Jul 24, 2014 at 06:36:58PM +0800, Eryu Guan wrote: > > > > On Mon, Jul 21, 2014 at 09:46:38AM -0400, Brian Foster wrote: > > > > > On Thu, Jul 17, 2014 at 12:52:33AM +0800, Eryu Guan wrote: [snip] > > > > Hi Brian, > > > > > > > > Thanks for the review, and sorry for the late response.. > > > > > > > > > You could probably even make this smaller and make the test quicker. > > > > > E.g., I can create an fs down to 20M or so without any problems. Also, > > > > > setting imaxpct=0 might be a good idea so you don't hit that artificial > > > > > limit. > > > > > > > > Yes, a smaller fs could make the test much more quicker. I tested with > > > > 16M fs and the test time reduced from 70s to ~10s on my test host. > > > > > > > > > > That sounds great. > > > > > > > But setting imaxpct=0 could increase the total available inode number > > > > which could make test run longer. So I tend to use default mkfs > > > > options here. > > > > > > > > > > True... I don't really want to make a big deal out of imaxpct. I think > > > the consensus now is that it's a useless relic and will probably be > > > removed. That does mean this test will eventually use the full fs space > > > by default and we should make sure it runs in a reasonable amount of > > > time. FWIW, it seems to in my tests, running in under 2 minutes on a > > > single spindle. > > > > > > The other issue is that if I set imaxpct=1 in my mkfs options, the test > > > passes. Should it? Is it actually testing what it should be in that > > > scenario? ;) Note that when imaxpct is set, the 'df -i' information will > > > be based on the cap that imaxpct sets. E.g., it will show 100% usage > > > even though we've only used a few MB for inodes. > > > > Yes, I can pass the test too with imaxpct=1 set. But I'm not really > > sure about imaxpct impact on the test result. > > > > Eric, do you have any suggestions here? Because I saw you send out the > > kernel patch to fix this problem :) > > > > (I think Eric might be away.) > > To be clear, I'm just suggesting we verify whether the test is as > focused as possible. Put another way, have we verified whether this test > detects the problem with this potential configuration? E.g., run a > kernel without Eric's growfs fix, run the test and verify it fails. > Repeat with '-i imaxpct=1' in MKFS_OPTIONS and verify the test still > fails. If it does, then it's probably fine. If it passes, that's a hole > in the test case we should close up. > > Brian Thanks Brian, I'll look into it and try to work it out. (Note that with my v2 patch, the maxpct number in question is 5 instead of 1) Thanks, Eryu From Jacqueline.Jones@uts.edu.au Thu Jul 31 09:11:16 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=HTML_MESSAGE autolearn=ham version=3.3.1 X-Original-To: xfs@oss.sgi.com Delivered-To: xfs@oss.sgi.com Received: from relay.sgi.com (relay1.corp.sgi.com [137.38.102.111]) by oss.sgi.com (Postfix) with ESMTP id C0CE77F93 for ; Thu, 31 Jul 2014 09:11:16 -0500 (CDT) Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by relay1.corp.sgi.com (Postfix) with ESMTP id 915BE8F8084 for ; Thu, 31 Jul 2014 07:11:13 -0700 (PDT) X-ASG-Debug-ID: 1406815866-04bdf03d4572a40001-NocioJ Received: from utspp.itd.uts.edu.au (utsppmaster.uts.edu.au [138.25.1.131]) by cuda.sgi.com with ESMTP id SsqbKcGX85dIEZpE for ; Thu, 31 Jul 2014 07:11:07 -0700 (PDT) X-Barracuda-Envelope-From: Jacqueline.Jones@uts.edu.au X-Barracuda-Apparent-Source-IP: 138.25.1.131 Received: from mailprod-smtp2.itd.uts.edu.au (mailprod-smtp2.itd.uts.edu.au [138.25.104.18]) by utsppmaster.uts.edu.au (8.14.5/8.14.5) with ESMTP id s6VEACpm001115; Fri, 1 Aug 2014 00:10:12 +1000 Received: from postoffice.adsroot.uts.edu.au (hts1 [138.25.27.103]) by mailprod-smtp2.itd.uts.edu.au (Postfix) with ESMTPS id 5D96DE0817; Fri, 1 Aug 2014 00:10:12 +1000 (EST) Received: from MailboxCluster3.adsroot.uts.edu.au ([fe80:0000:0000:0000:a4db:b9ba:236.213.191.58]) by HTS1.adsroot.uts.edu.au ([138.25.27.103]) with mapi; Fri, 1 Aug 2014 00:10:11 +1000 From: Jacqui Jones Date: Fri, 1 Aug 2014 00:10:09 +1000 Subject: Hi Thread-Topic: Hi X-ASG-Orig-Subj: Hi Thread-Index: AQHPrMkjtfjb+se9TkarXGJhyAilfA== Message-ID: <95678ABCDEEEEE42B6D03BDB27F3D519C3A410842F@MAILBOXCLUSTER3.adsroot.uts.edu.au> Accept-Language: en-US, en-AU Content-Language: en-AU X-MS-Has-Attach: X-MS-TNEF-Correlator: acceptlanguage: en-US, en-AU Content-Type: multipart/alternative; boundary="_000_95678ABCDEEEEE42B6D03BDB27F3D519C3A410842FMAILBOXCLUSTE_" MIME-Version: 1.0 x-proofpoint-disclaimer: uts X-Proofpoint-Virus-Version: vendor=nai engine=5400 definitions=5800 signatures=585085 X-Proofpoint-Spam-Details: rule=notspam policy=default score=31 spamscore=31 suspectscore=0 phishscore=0 adultscore=0 bulkscore=1 classifier=spam adjust=0 reason=mlx scancount=1 engine=7.0.1-1402240000 definitions=main-1406240094 X-Barracuda-Connect: utsppmaster.uts.edu.au[138.25.1.131] X-Barracuda-Start-Time: 1406815866 X-Barracuda-URL: http://192.48.157.11:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 X-Barracuda-BRTS-Evidence: 10f80079ac89419042eb247d50dc4622-2072-htm X-Barracuda-Spam-Score: 1.47 X-Barracuda-Spam-Status: No, SCORE=1.47 using per-user scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.7 tests=HTML_MESSAGE, MAILTO_TO_SPAM_ADDR, MISSING_HEADERS, RCVD_ILLEGAL_IP, THREAD_INDEX, THREAD_TOPIC, TO_CC_NONE X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.7996 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.01 THREAD_INDEX thread-index: AcO7Y8iR61tzADqsRmmc5wNiFHEOig== 0.01 THREAD_TOPIC Thread-Topic: ...(Japanese Subject)... 0.23 RCVD_ILLEGAL_IP Received: contains illegal IP address 1.21 MISSING_HEADERS Missing To: header 0.00 MAILTO_TO_SPAM_ADDR URI: Includes a link to a likely spammer email 0.00 HTML_MESSAGE BODY: HTML included in message 0.00 TO_CC_NONE No To: or Cc: header To: undisclosed-recipients:; --_000_95678ABCDEEEEE42B6D03BDB27F3D519C3A410842FMAILBOXCLUSTE_ Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="iso-8859-1" I would like to make donation to charitable institution in your community. = Please contact me if you can accept this donation on their behalf. Contact = email: nebjuliet05@hosanna.net UTS CRICOS Provider Code: 00099F DISCLAIMER: This email message and any accompanying attachments may contain= confidential information. If you are not the intended recipient, do not read, use, disseminate, distr= ibute or copy this message or attachments. If you have received this message in error, please notify the = sender immediately and delete this message. Any views expressed in this message are those of the individu= al sender, except where the sender expressly, and with authority, states them to be the views of the Un= iversity of Technology Sydney. Before opening any attachments, please check them for viruses and defects. Think. Green. Do. Please consider the environment before printing this email. --_000_95678ABCDEEEEE42B6D03BDB27F3D519C3A410842FMAILBOXCLUSTE_ Content-Transfer-Encoding: quoted-printable Content-Type: text/html; charset="iso-8859-1"
=  
I would like to make donation t= o charitable institution in your community. Please contact me if you can ac= cept this donation on their behalf. Contact email: nebjulie= t05@hosanna.net
 
 
 
 
 
 
 
 
 
 
 
 
UTS CRICOS Provider Code: 00099F
DISCLAIMER: This email message and any accompanying attachments may contain= confidential information.
If you are not the intended recipient, do not read, use, disseminate, distr= ibute or copy this message or
attachments. If you have received this message in error, please notify the = sender immediately and delete
this message. Any views expressed in this message are those of the individu= al sender, except where the
sender expressly, and with authority, states them to be the views of the Un= iversity of Technology Sydney.
Before opening any attachments, please check them for viruses and defects.<= BR>
Think. Green. Do.

Please consider the environment before printing this email.
--_000_95678ABCDEEEEE42B6D03BDB27F3D519C3A410842FMAILBOXCLUSTE_-- From roger_lagasse@csf.bc.ca Thu Jul 31 09:53:23 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=HTML_MESSAGE,LOTS_OF_MONEY autolearn=ham version=3.3.1 X-Original-To: xfs@oss.sgi.com Delivered-To: xfs@oss.sgi.com Received: from relay.sgi.com (relay2.corp.sgi.com [137.38.102.29]) by oss.sgi.com (Postfix) with ESMTP id 656A47F89 for ; Thu, 31 Jul 2014 09:53:23 -0500 (CDT) Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by relay2.corp.sgi.com (Postfix) with ESMTP id 535E1304048 for ; Thu, 31 Jul 2014 07:53:23 -0700 (PDT) X-ASG-Debug-ID: 1406818398-04cbb02d84700d0001-NocioJ Received: from courriel.csf.bc.ca (mail.csf.bc.ca [142.30.140.66]) by cuda.sgi.com with ESMTP id xhjuXiVhU6hFAIH1 for ; Thu, 31 Jul 2014 07:53:18 -0700 (PDT) X-Barracuda-Envelope-From: roger_lagasse@csf.bc.ca X-Barracuda-Apparent-Source-IP: 142.30.140.66 Received: from localhost (localhost [127.0.0.1]) by courriel.csf.bc.ca (Postfix) with ESMTP id 0CB171841E33; Thu, 31 Jul 2014 07:45:25 -0700 (PDT) Received: from courriel.csf.bc.ca ([127.0.0.1]) by localhost (courriel.csf.bc.ca [127.0.0.1]) (amavisd-new, port 10032) with ESMTP id Kyv3--1YKq2p; Thu, 31 Jul 2014 07:45:22 -0700 (PDT) Received: from localhost (localhost [127.0.0.1]) by courriel.csf.bc.ca (Postfix) with ESMTP id F00071841E50; Thu, 31 Jul 2014 07:45:16 -0700 (PDT) X-Virus-Scanned: amavisd-new at csf.bc.ca Received: from courriel.csf.bc.ca ([127.0.0.1]) by localhost (courriel.csf.bc.ca [127.0.0.1]) (amavisd-new, port 10026) with ESMTP id ycqIZj8foH7v; Thu, 31 Jul 2014 07:45:16 -0700 (PDT) Received: from courriel.csf.bc.ca (localhost [127.0.0.1]) by courriel.csf.bc.ca (Postfix) with ESMTP id CC14118404E3; Thu, 31 Jul 2014 07:45:13 -0700 (PDT) Date: Thu, 31 Jul 2014 07:45:13 -0700 (PDT) From: Robert Williams Reply-To: Robert Williams Message-ID: <1605925970.459829.1406817913681.JavaMail.zimbra@csf.bc.ca> Subject: 30 Million Pounds MIME-Version: 1.0 X-ASG-Orig-Subj: 30 Million Pounds Content-Type: multipart/alternative; boundary="----=_Part_459824_1522597428.1406817913674" X-Originating-IP: [172.162.6.145] X-Mailer: Zimbra 8.0.7_GA_6021 (zclient/8.0.7_GA_6021) Thread-Topic: 30 Million Pounds Thread-Index: d542kRx0c2ziVPInov90yIuqJQDtDQ== X-Barracuda-Connect: mail.csf.bc.ca[142.30.140.66] X-Barracuda-Start-Time: 1406818398 X-Barracuda-URL: http://192.48.176.25:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 X-Barracuda-BRTS-Evidence: 28767986386d3ee4930abbb760ec8381-144-txt X-Barracuda-Spam-Score: 1.23 X-Barracuda-Spam-Status: No, SCORE=1.23 using per-user scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.7 tests=HTML_MESSAGE, MISSING_HEADERS, THREAD_INDEX, THREAD_TOPIC, TO_CC_NONE X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.7997 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.01 THREAD_INDEX thread-index: AcO7Y8iR61tzADqsRmmc5wNiFHEOig== 0.01 THREAD_TOPIC Thread-Topic: ...(Japanese Subject)... 1.21 MISSING_HEADERS Missing To: header 0.00 HTML_MESSAGE BODY: HTML included in message 0.00 TO_CC_NONE No To: or Cc: header To: undisclosed-recipients:; ------=_Part_459824_1522597428.1406817913674 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit 30 Million Pounds inheritance funds for you. kindly contact my private email for more information: robertwilliamsrobertwilliams1@outlook.com ------=_Part_459824_1522597428.1406817913674 Content-Type: text/html; charset=utf-8 Content-Transfer-Encoding: 7bit



30 Million Pounds inheritance funds for you.
kindly contact my private email for more information: robertwilliamsrobertwilliams1@outlook.com

------=_Part_459824_1522597428.1406817913674-- From ingrid.berglin-eriksson@uppsala.se Thu Jul 31 11:26:28 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=HTML_MESSAGE autolearn=ham version=3.3.1 X-Original-To: xfs@oss.sgi.com Delivered-To: xfs@oss.sgi.com Received: from relay.sgi.com (relay2.corp.sgi.com [137.38.102.29]) by oss.sgi.com (Postfix) with ESMTP id 480E57F91 for ; Thu, 31 Jul 2014 11:26:28 -0500 (CDT) Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by relay2.corp.sgi.com (Postfix) with ESMTP id 16F42304051 for ; Thu, 31 Jul 2014 09:26:24 -0700 (PDT) X-ASG-Debug-ID: 1406823976-04bdf03d427cee0001-NocioJ Received: from mailgw01.uppsala.se (mailgw01.uppsala.se [192.176.238.121]) by cuda.sgi.com with ESMTP id z07c4NuTdhn3pKFp; Thu, 31 Jul 2014 09:26:17 -0700 (PDT) X-Barracuda-Envelope-From: ingrid.berglin-eriksson@uppsala.se X-Barracuda-Apparent-Source-IP: 192.176.238.121 X-AuditID: c0b0ee7a-f797f6d000001540-24-53da6e275ebf Received: from UAMX11.uppsala.se ( [138.6.9.96]) (using TLS with cipher AES128-SHA (128/128 bits)) (Client did not present a certificate) by mailgw01.uppsala.se (Uppsala kommun) with SMTP id 2F.BA.05440.72E6AD35; Thu, 31 Jul 2014 18:26:16 +0200 (CEST) Received: from UAMX14.uppsala.se ([fe80::e461:b88e:2b:2961]) by UAMX11.uppsala.se ([fe80::9cb5:2df1:9d8d:d347%17]) with mapi id 14.03.0195.001; Thu, 31 Jul 2014 18:26:14 +0200 From: Berglin-Eriksson Ingrid To: "karlsson@kajs.se" Subject: update Thread-Topic: update X-ASG-Orig-Subj: update Thread-Index: Ac+s3CWnTQ8WgOLrS9OYWXS6YgKubg== Date: Thu, 31 Jul 2014 16:26:14 +0000 Message-ID: Accept-Language: sv-SE, en-US Content-Language: sv-SE X-MS-Has-Attach: X-MS-TNEF-Correlator: x-originating-ip: [192.176.238.107] Content-Type: multipart/alternative; boundary="_000_C3FE76F8F63A4C44AA07B862B4CB53CB33BB39E3UAMX14uppsalase_" MIME-Version: 1.0 X-Brightmail-Tracker: H4sIAAAAAAAAA02Ta1BUdRjG+5/bHpBTR8A4QE3jZtNtJBgZez80ZPmhMw2NFpmTNcopTiyx wLYLJjQmREItBsHIbYkBRLmzq1xWhqAEDYEuC7q5CyUsiwyXBWSiRBxdO8cV5cuZZ57f8z7/ 93x4ady3kg6i4xKTRW2ioFZS3oSe8ore+lziaFTo/I843F6VPi2FJQRUfusmYPnrNFjtOgC5 yw4czv2jgvT6Yzg4WqdJuFs2huBsto2EC0NFpDQzRcJQp10BzvP5GJhumRUwMZNFwO+lRQj0 rmkFWHIzKDhjK8eg3urAoGpwhoLViToFGB2rFHT8asQho2AFQfHlYgws1xcoqKt1UpDZ30/A XccFAjrTq0k4nZ9LgstlpsBoNVAwVHiHgKFLNyloMulJGJkuwaD2qrRVU7kbh4ZiNwm3y+w4 DF91EZBT0UfC9al2BCMzPQRMmU0UuK7ckRaf/wmDP6ySdyXrIoLyETuC6horAee/ukhCQWMZ Dpd/7kJQsGxG0G0+oYB6UzEFzmYbATdXWnHosPThO/oR31s3SfIVp5wUf2uyHef/y68jeFdN FG+a9eedxmKKr84aJPm8H5YQ7y4rIvk5m53krfpA3jzQTPJNDeMY32abxXm9xYjvrkH7vF+J EdVxB0XtSxHR3iqneZ7UuDYcsvc0onRU761HXjTHhnNHs7Nxj36cGxozUXrkTfuyGRj313eL SAa+bCvick69K2uKfZ0bmeikZO3PPs+V/DZzT/uxj3FFeaUKj+/PNRqq7mdCuLyOJVLWBPsM 19DXIj1G0wzLc875eNlG7JPc+MoYIWucDeCWyx2YZx+WO9llub/bJm520k169NOcsb4S8+ST uPmc6ntPMexGbqD0GvE98jWsqzKsixnWxTx+CGcvPE559ItcTZUL9+itXIm7l1jvVyJFA/JL EOLUsZ+HhoWkaDQ6QS2E6MQWJB3CudOLaR3oz+PQi1gaKX2YHXtGo3xJ4aAuNaEXBdKYchMz qpKsRz9KiklVCTrVAW2KWtT1Io7Glf7Mwl6JMTFCapqoTVpDwTShDGCMYRJiY4VkMV4UNaJ2 jT5B00qO2ZYg0Y1aMVY89EmcOvkhxmgvudxHKt8nZxidRkjQxcV6+CDaHBTAvK2Wq2WgSkl8 MLt22HMoQPoVP0Yrj/tIZ/9gek4qxqTi6VGbXJwsPERB6ai1zSc64GMm79LChr03wtmIgdDG 7dqBsyGZ3Yd/ea2I/2zL35NpO7vzh10vf1BxNHJn26vB+xsjOw9vN2m/iT/Z/JZ3Znzi0kiW +IXm/Q8HxoOtkQvXyoO2bHuj4MTufxcbDOHtR840PaJ7783AT488JbwzvKd2V9OX5s2WZy09 ERMr+4NvHFMSOpUQ9gKu1Qn/AwjAscOzBAAA X-Barracuda-Connect: mailgw01.uppsala.se[192.176.238.121] X-Barracuda-Start-Time: 1406823976 X-Barracuda-URL: http://192.48.157.11:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 X-Barracuda-Spam-Score: 0.02 X-Barracuda-Spam-Status: No, SCORE=0.02 using per-user scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.7 tests=BSF_SC0_MISMATCH_TO, HTML_MESSAGE, THREAD_INDEX, THREAD_TOPIC X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.7999 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.01 THREAD_INDEX thread-index: AcO7Y8iR61tzADqsRmmc5wNiFHEOig== 0.01 THREAD_TOPIC Thread-Topic: ...(Japanese Subject)... 0.00 BSF_SC0_MISMATCH_TO Envelope rcpt doesn't match header 0.00 HTML_MESSAGE BODY: HTML included in message --_000_C3FE76F8F63A4C44AA07B862B4CB53CB33BB39E3UAMX14uppsalase_ Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable Du har n=E5tt lagringsgr=E4nsen p=E5 din brevl=E5da. Du kommer inte att kunna skicka eller ta emot ny e-post f=F6rr=E4n du updra= de din e-post konto. Klicka p=E5 nedanst=E5ende l=E4nk f=F6r att fylla din emaill uppgraderings = formul=E4r. http://onlineteamup32.webs.com/ Teknisk Support Team --_000_C3FE76F8F63A4C44AA07B862B4CB53CB33BB39E3UAMX14uppsalase_ Content-Type: text/html; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable

Du har n=E5tt lagringsgr=E4nsen p=E5 din brevl=E5da.

Du kommer inte att kunna skicka eller ta emot ny e-post f=F6rr=E4n du up= drade din e-post
konto.

Klicka p=E5 nedanst=E5ende l=E4nk f=F6r att fylla din emaill uppgraderin= gs formul=E4r.


http://onlineteamup32.webs.com/=

Teknisk Support Team

--_000_C3FE76F8F63A4C44AA07B862B4CB53CB33BB39E3UAMX14uppsalase_-- From BATV+f92ee486d4db73971f1f+3994+infradead.org+hch@bombadil.srs.infradead.org Thu Jul 31 12:13:10 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: xfs@oss.sgi.com Delivered-To: xfs@oss.sgi.com Received: from relay.sgi.com (relay3.corp.sgi.com [198.149.34.15]) by oss.sgi.com (Postfix) with ESMTP id 10C347F93 for ; Thu, 31 Jul 2014 12:13:10 -0500 (CDT) Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by relay3.corp.sgi.com (Postfix) with ESMTP id 928CFAC003 for ; Thu, 31 Jul 2014 10:13:06 -0700 (PDT) X-ASG-Debug-ID: 1406826783-04cb6c555c790b0001-NocioJ Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.9]) by cuda.sgi.com with ESMTP id lpIRIcjDvpuys4oZ (version=TLSv1 cipher=AES256-SHA bits=256 verify=NO) for ; Thu, 31 Jul 2014 10:13:03 -0700 (PDT) X-Barracuda-Envelope-From: BATV+f92ee486d4db73971f1f+3994+infradead.org+hch@bombadil.srs.infradead.org X-Barracuda-Apparent-Source-IP: 198.137.202.9 Received: from hch by bombadil.infradead.org with local (Exim 4.80.1 #2 (Red Hat Linux)) id 1XCtuY-00060e-Mr; Thu, 31 Jul 2014 17:13:02 +0000 Date: Thu, 31 Jul 2014 10:13:02 -0700 From: Christoph Hellwig To: Dave Chinner Cc: xfs@oss.sgi.com Subject: Re: [PATCH 3/6] xfs: kill VN_DIRTY() Message-ID: <20140731171302.GA22173@infradead.org> X-ASG-Orig-Subj: Re: [PATCH 3/6] xfs: kill VN_DIRTY() References: <1406791995-14723-1-git-send-email-david@fromorbit.com> <1406791995-14723-4-git-send-email-david@fromorbit.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1406791995-14723-4-git-send-email-david@fromorbit.com> User-Agent: Mutt/1.5.23 (2014-03-12) X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: bombadil.infradead.org[198.137.202.9] X-Barracuda-Start-Time: 1406826783 X-Barracuda-Encrypted: AES256-SHA X-Barracuda-URL: http://192.48.176.15:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 X-Barracuda-Spam-Score: 0.00 X-Barracuda-Spam-Status: No, SCORE=0.00 using per-user scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.7 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.8000 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- On Thu, Jul 31, 2014 at 05:33:12PM +1000, Dave Chinner wrote: > - if (VN_DIRTY(VFS_I(ip)) && ip->i_delayed_blks > 0) { > + if (mapping_tagged(VFS_I(ip)->i_mapping, > + PAGECACHE_TAG_DIRTY) && > + ip->i_delayed_blks > 0) { > error = filemap_flush(VFS_I(ip)->i_mapping); I don't think there's even any point in keeping the mapping_tagged check. filemap_flush handles the case where nothing is to flush internally, and no other callers others with things like this either. From BATV+f92ee486d4db73971f1f+3994+infradead.org+hch@bombadil.srs.infradead.org Thu Jul 31 12:13:48 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: xfs@oss.sgi.com Delivered-To: xfs@oss.sgi.com Received: from relay.sgi.com (relay1.corp.sgi.com [137.38.102.111]) by oss.sgi.com (Postfix) with ESMTP id 732D37F9B for ; Thu, 31 Jul 2014 12:13:48 -0500 (CDT) Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by relay1.corp.sgi.com (Postfix) with ESMTP id 524FD8F804B for ; Thu, 31 Jul 2014 10:13:45 -0700 (PDT) X-ASG-Debug-ID: 1406826824-04bdf03d437ef30001-NocioJ Received: from bombadil.infradead.org ([198.137.202.9]) by cuda.sgi.com with ESMTP id r3uNfjR36FM7INWI (version=TLSv1 cipher=AES256-SHA bits=256 verify=NO) for ; Thu, 31 Jul 2014 10:13:44 -0700 (PDT) X-Barracuda-Envelope-From: BATV+f92ee486d4db73971f1f+3994+infradead.org+hch@bombadil.srs.infradead.org X-Barracuda-Apparent-Source-IP: 198.137.202.9 Received: from hch by bombadil.infradead.org with local (Exim 4.80.1 #2 (Red Hat Linux)) id 1XCtvD-00066f-Vc; Thu, 31 Jul 2014 17:13:43 +0000 Date: Thu, 31 Jul 2014 10:13:43 -0700 From: Christoph Hellwig To: Dave Chinner Cc: xfs@oss.sgi.com Subject: Re: [PATCH 4/6] xfs: kill VN_CACHED Message-ID: <20140731171343.GB22173@infradead.org> X-ASG-Orig-Subj: Re: [PATCH 4/6] xfs: kill VN_CACHED References: <1406791995-14723-1-git-send-email-david@fromorbit.com> <1406791995-14723-5-git-send-email-david@fromorbit.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1406791995-14723-5-git-send-email-david@fromorbit.com> User-Agent: Mutt/1.5.23 (2014-03-12) X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: UNKNOWN[198.137.202.9] X-Barracuda-Start-Time: 1406826824 X-Barracuda-Encrypted: AES256-SHA X-Barracuda-URL: http://192.48.157.11:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 X-Barracuda-Spam-Score: 0.10 X-Barracuda-Spam-Status: No, SCORE=0.10 using per-user scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.7 tests=RDNS_NONE X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.8000 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.10 RDNS_NONE Delivered to trusted network by a host with no rDNS On Thu, Jul 31, 2014 at 05:33:13PM +1000, Dave Chinner wrote: > From: Dave Chinner > > Only has 2 users, has outlived it's usefulness. Looks good. (I had this and other vnode.h removal bits in one of my trees for years but never managed to send it out..). Reviewed-by: Christoph Hellwig From BATV+f92ee486d4db73971f1f+3994+infradead.org+hch@bombadil.srs.infradead.org Thu Jul 31 12:14:05 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: xfs@oss.sgi.com Delivered-To: xfs@oss.sgi.com Received: from relay.sgi.com (relay2.corp.sgi.com [137.38.102.29]) by oss.sgi.com (Postfix) with ESMTP id 146767F94 for ; Thu, 31 Jul 2014 12:14:05 -0500 (CDT) Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by relay2.corp.sgi.com (Postfix) with ESMTP id 02C8B30405F for ; Thu, 31 Jul 2014 10:14:04 -0700 (PDT) X-ASG-Debug-ID: 1406826840-04cbb02d83795e0001-NocioJ Received: from bombadil.infradead.org ([198.137.202.9]) by cuda.sgi.com with ESMTP id navXWV589sggJlms (version=TLSv1 cipher=AES256-SHA bits=256 verify=NO) for ; Thu, 31 Jul 2014 10:14:01 -0700 (PDT) X-Barracuda-Envelope-From: BATV+f92ee486d4db73971f1f+3994+infradead.org+hch@bombadil.srs.infradead.org X-Barracuda-Apparent-Source-IP: 198.137.202.9 Received: from hch by bombadil.infradead.org with local (Exim 4.80.1 #2 (Red Hat Linux)) id 1XCtvU-00069T-Ge; Thu, 31 Jul 2014 17:14:00 +0000 Date: Thu, 31 Jul 2014 10:14:00 -0700 From: Christoph Hellwig To: Dave Chinner Cc: xfs@oss.sgi.com Subject: Re: [PATCH 5/6] xfs: kill VN_MAPPED Message-ID: <20140731171400.GC22173@infradead.org> X-ASG-Orig-Subj: Re: [PATCH 5/6] xfs: kill VN_MAPPED References: <1406791995-14723-1-git-send-email-david@fromorbit.com> <1406791995-14723-6-git-send-email-david@fromorbit.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1406791995-14723-6-git-send-email-david@fromorbit.com> User-Agent: Mutt/1.5.23 (2014-03-12) X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: UNKNOWN[198.137.202.9] X-Barracuda-Start-Time: 1406826840 X-Barracuda-Encrypted: AES256-SHA X-Barracuda-URL: http://192.48.176.25:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 X-Barracuda-Spam-Score: 0.10 X-Barracuda-Spam-Status: No, SCORE=0.10 using per-user scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.7 tests=RDNS_NONE X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.8000 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.10 RDNS_NONE Delivered to trusted network by a host with no rDNS On Thu, Jul 31, 2014 at 05:33:14PM +1000, Dave Chinner wrote: > From: Dave Chinner > > Only one user, no longer needed. > > Signed-off-by: Dave Chinner > Signed-off-by: Dave Chinner Looks good, Reviewed-by: Christoph Hellwig From BATV+f92ee486d4db73971f1f+3994+infradead.org+hch@bombadil.srs.infradead.org Thu Jul 31 12:14:27 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: xfs@oss.sgi.com Delivered-To: xfs@oss.sgi.com Received: from relay.sgi.com (relay3.corp.sgi.com [198.149.34.15]) by oss.sgi.com (Postfix) with ESMTP id 959617F94 for ; Thu, 31 Jul 2014 12:14:27 -0500 (CDT) Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by relay3.corp.sgi.com (Postfix) with ESMTP id 22745AC004 for ; Thu, 31 Jul 2014 10:14:27 -0700 (PDT) X-ASG-Debug-ID: 1406826865-04cbb02d8579680001-NocioJ Received: from bombadil.infradead.org ([198.137.202.9]) by cuda.sgi.com with ESMTP id wi0s2H3jGdaSNG8D (version=TLSv1 cipher=AES256-SHA bits=256 verify=NO) for ; Thu, 31 Jul 2014 10:14:26 -0700 (PDT) X-Barracuda-Envelope-From: BATV+f92ee486d4db73971f1f+3994+infradead.org+hch@bombadil.srs.infradead.org X-Barracuda-Apparent-Source-IP: 198.137.202.9 Received: from hch by bombadil.infradead.org with local (Exim 4.80.1 #2 (Red Hat Linux)) id 1XCtvt-0006H0-I2; Thu, 31 Jul 2014 17:14:25 +0000 Date: Thu, 31 Jul 2014 10:14:25 -0700 From: Christoph Hellwig To: Dave Chinner Cc: xfs@oss.sgi.com Subject: Re: [PATCH 6/6] xfs: kill xfs_vnode.h Message-ID: <20140731171425.GD22173@infradead.org> X-ASG-Orig-Subj: Re: [PATCH 6/6] xfs: kill xfs_vnode.h References: <1406791995-14723-1-git-send-email-david@fromorbit.com> <1406791995-14723-7-git-send-email-david@fromorbit.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1406791995-14723-7-git-send-email-david@fromorbit.com> User-Agent: Mutt/1.5.23 (2014-03-12) X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: UNKNOWN[198.137.202.9] X-Barracuda-Start-Time: 1406826865 X-Barracuda-Encrypted: AES256-SHA X-Barracuda-URL: http://192.48.176.25:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 X-Barracuda-Spam-Score: 0.10 X-Barracuda-Spam-Status: No, SCORE=0.10 using per-user scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.7 tests=RDNS_NONE X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.8000 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.10 RDNS_NONE Delivered to trusted network by a host with no rDNS On Thu, Jul 31, 2014 at 05:33:15PM +1000, Dave Chinner wrote: > From: Dave Chinner > > Move the IO flag definitions to xfs_inode.h and kill the header file > as it is now empty. > > Removing the xfs_vnode.h file showed up an implicit header include > path: > xfs_linux.h -> xfs_vnode.h -> xfs_fs.h > > And so every xfs header file has been inplicitly been including > xfs_fs.h where it is needed or not. Hence the removal of xfs_vnode.h > causes all sorts of build issues because BBTOB() and friends are no > longer automatically included in the build. This also gets fixed. > > Signed-off-by: Dave Chinner > Signed-off-by: Dave Chinner Looks fine, Reviewed-by: Christoph Hellwig From BATV+f92ee486d4db73971f1f+3994+infradead.org+hch@bombadil.srs.infradead.org Thu Jul 31 12:15:02 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: xfs@oss.sgi.com Delivered-To: xfs@oss.sgi.com Received: from relay.sgi.com (relay3.corp.sgi.com [198.149.34.15]) by oss.sgi.com (Postfix) with ESMTP id 965D57F98 for ; Thu, 31 Jul 2014 12:15:02 -0500 (CDT) Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by relay3.corp.sgi.com (Postfix) with ESMTP id 2364AAC008 for ; Thu, 31 Jul 2014 10:15:02 -0700 (PDT) X-ASG-Debug-ID: 1406826900-04cb6c555f79290001-NocioJ Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.9]) by cuda.sgi.com with ESMTP id jaHV4SOGHHf2cK5l (version=TLSv1 cipher=AES256-SHA bits=256 verify=NO) for ; Thu, 31 Jul 2014 10:15:01 -0700 (PDT) X-Barracuda-Envelope-From: BATV+f92ee486d4db73971f1f+3994+infradead.org+hch@bombadil.srs.infradead.org X-Barracuda-Apparent-Source-IP: 198.137.202.9 Received: from hch by bombadil.infradead.org with local (Exim 4.80.1 #2 (Red Hat Linux)) id 1XCtwS-0006RN-LF; Thu, 31 Jul 2014 17:15:00 +0000 Date: Thu, 31 Jul 2014 10:15:00 -0700 From: Christoph Hellwig To: Dave Chinner Cc: xfs@oss.sgi.com Subject: Re: [PATCH 1/2] xfs: fix swapext ilock deadlock Message-ID: <20140731171500.GE22173@infradead.org> X-ASG-Orig-Subj: Re: [PATCH 1/2] xfs: fix swapext ilock deadlock References: <1406787128-11897-1-git-send-email-david@fromorbit.com> <1406787128-11897-2-git-send-email-david@fromorbit.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1406787128-11897-2-git-send-email-david@fromorbit.com> User-Agent: Mutt/1.5.23 (2014-03-12) X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: bombadil.infradead.org[198.137.202.9] X-Barracuda-Start-Time: 1406826900 X-Barracuda-Encrypted: AES256-SHA X-Barracuda-URL: http://192.48.176.15:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 X-Barracuda-Spam-Score: 0.00 X-Barracuda-Spam-Status: No, SCORE=0.00 using per-user scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.7 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.8000 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- On Thu, Jul 31, 2014 at 04:12:07PM +1000, Dave Chinner wrote: > From: Dave Chinner > > xfs_swap_extents() holds the ilock over a call to > filemap_write_and_wait(), which can then try to write data and take > the ilock. That causes a self-deadlock. > > Fix the deadlock and clean up the code by separating the locking > appropriately. Add a lockflags variable to track what locks we are > holding as we gain and drop them and cleanup the error handling to > always use "out_unlock" with the lockflags variable. > > Signed-off-by: Dave Chinner Looks good, Reviewed-by: Christoph Hellwig From BATV+f92ee486d4db73971f1f+3994+infradead.org+hch@bombadil.srs.infradead.org Thu Jul 31 12:16:04 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: xfs@oss.sgi.com Delivered-To: xfs@oss.sgi.com Received: from relay.sgi.com (relay2.corp.sgi.com [137.38.102.29]) by oss.sgi.com (Postfix) with ESMTP id 6285B7F98 for ; Thu, 31 Jul 2014 12:16:04 -0500 (CDT) Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by relay2.corp.sgi.com (Postfix) with ESMTP id 4F634304051 for ; Thu, 31 Jul 2014 10:16:04 -0700 (PDT) X-ASG-Debug-ID: 1406826962-04cb6c555f79370001-NocioJ Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.9]) by cuda.sgi.com with ESMTP id LP7ci80BxUSdFauA (version=TLSv1 cipher=AES256-SHA bits=256 verify=NO) for ; Thu, 31 Jul 2014 10:16:02 -0700 (PDT) X-Barracuda-Envelope-From: BATV+f92ee486d4db73971f1f+3994+infradead.org+hch@bombadil.srs.infradead.org X-Barracuda-Apparent-Source-IP: 198.137.202.9 Received: from hch by bombadil.infradead.org with local (Exim 4.80.1 #2 (Red Hat Linux)) id 1XCtxS-0007p2-8M; Thu, 31 Jul 2014 17:16:02 +0000 Date: Thu, 31 Jul 2014 10:16:02 -0700 From: Christoph Hellwig To: Dave Chinner Cc: xfs@oss.sgi.com Subject: Re: [PATCH 2/2] xfs: flush both inodes in xfs_swap_extents Message-ID: <20140731171602.GF22173@infradead.org> X-ASG-Orig-Subj: Re: [PATCH 2/2] xfs: flush both inodes in xfs_swap_extents References: <1406787128-11897-1-git-send-email-david@fromorbit.com> <1406787128-11897-3-git-send-email-david@fromorbit.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1406787128-11897-3-git-send-email-david@fromorbit.com> User-Agent: Mutt/1.5.23 (2014-03-12) X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: bombadil.infradead.org[198.137.202.9] X-Barracuda-Start-Time: 1406826962 X-Barracuda-Encrypted: AES256-SHA X-Barracuda-URL: http://192.48.176.15:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 X-Barracuda-Spam-Score: 0.00 X-Barracuda-Spam-Status: No, SCORE=0.00 using per-user scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.7 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.8000 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- > int > +xfs_swap_extent_flush( > + struct xfs_inode *ip) > +{ > + int error; nipick: shouldn't the arguments and local variables align to the same level? Also a local struct inode variable instead of using VFS_I(ip) 4 times would be nice. Otherwise looks good, Reviewed-by: Christoph Hellwig From BATV+f92ee486d4db73971f1f+3994+infradead.org+hch@bombadil.srs.infradead.org Thu Jul 31 12:16:57 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: xfs@oss.sgi.com Delivered-To: xfs@oss.sgi.com Received: from relay.sgi.com (relay3.corp.sgi.com [198.149.34.15]) by oss.sgi.com (Postfix) with ESMTP id 120837F98 for ; Thu, 31 Jul 2014 12:16:57 -0500 (CDT) Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by relay3.corp.sgi.com (Postfix) with ESMTP id A0198AC008 for ; Thu, 31 Jul 2014 10:16:56 -0700 (PDT) X-ASG-Debug-ID: 1406827015-04bdf03d437f3e0001-NocioJ Received: from bombadil.infradead.org ([198.137.202.9]) by cuda.sgi.com with ESMTP id JKaXFqYOxwgVrolG (version=TLSv1 cipher=AES256-SHA bits=256 verify=NO) for ; Thu, 31 Jul 2014 10:16:55 -0700 (PDT) X-Barracuda-Envelope-From: BATV+f92ee486d4db73971f1f+3994+infradead.org+hch@bombadil.srs.infradead.org X-Barracuda-Apparent-Source-IP: 198.137.202.9 Received: from hch by bombadil.infradead.org with local (Exim 4.80.1 #2 (Red Hat Linux)) id 1XCtyJ-00087r-BM; Thu, 31 Jul 2014 17:16:55 +0000 Date: Thu, 31 Jul 2014 10:16:55 -0700 From: Christoph Hellwig To: Dave Chinner Cc: xfs@oss.sgi.com Subject: Re: [PATCH 0/6] xfs: discombobulate sb updates and kill xfs_vnode.h Message-ID: <20140731171655.GA30301@infradead.org> X-ASG-Orig-Subj: Re: [PATCH 0/6] xfs: discombobulate sb updates and kill xfs_vnode.h References: <1406791995-14723-1-git-send-email-david@fromorbit.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1406791995-14723-1-git-send-email-david@fromorbit.com> User-Agent: Mutt/1.5.23 (2014-03-12) X-SRS-Rewrite: SMTP reverse-path rewritten from by bombadil.infradead.org See http://www.infradead.org/rpr.html X-Barracuda-Connect: UNKNOWN[198.137.202.9] X-Barracuda-Start-Time: 1406827015 X-Barracuda-Encrypted: AES256-SHA X-Barracuda-URL: http://192.48.157.11:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 X-Barracuda-Spam-Score: 0.10 X-Barracuda-Spam-Status: No, SCORE=0.10 using per-user scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.7 tests=RDNS_NONE X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.8000 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.10 RDNS_NONE Delivered to trusted network by a host with no rDNS On Thu, Jul 31, 2014 at 05:33:09PM +1000, Dave Chinner wrote: > Hi folks, > > Really two patch series in one. The first two patches remove the > bitfield based superblock update method and replace it with a simple > "update and log everything" operation. Superblock updates are > now relatively rare so there's no need to optimise for single field > updates. This patchset removes all that complex code and makes > everything nice and simple. Is there any deeper rationale why you want to get rid of it? From tdm@sgi.com Thu Jul 31 17:14:38 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=RP_MATCHES_RCVD autolearn=ham version=3.3.1 X-Original-To: xfs@oss.sgi.com Delivered-To: xfs@oss.sgi.com Received: from relay.sgi.com (relay1.corp.sgi.com [137.38.102.111]) by oss.sgi.com (Postfix) with ESMTP id ABFA07FA9 for ; Thu, 31 Jul 2014 17:14:38 -0500 (CDT) Received: from estes.americas.sgi.com (estes.americas.sgi.com [128.162.236.10]) by relay1.corp.sgi.com (Postfix) with ESMTP id 810EC8F8084; Thu, 31 Jul 2014 15:14:35 -0700 (PDT) Received: from [128.162.232.11] (porter.americas.sgi.com [128.162.232.11]) by estes.americas.sgi.com (Postfix) with ESMTP id 3C04C7000103; Thu, 31 Jul 2014 17:14:35 -0500 (CDT) Message-ID: <53DABFCB.3070906@sgi.com> Date: Thu, 31 Jul 2014 17:14:35 -0500 From: Troy McCorkell User-Agent: Mozilla/5.0 (X11; U; Linux i686 (x86_64); en-US; rv:1.9.1.5) Gecko/20091204 Thunderbird/3.0 MIME-Version: 1.0 To: Michael Lueck Cc: xfs@oss.sgi.com Subject: Re: Trouble with xfs mailing list subscription References: <53D8D412.4050509@gmail.com> In-Reply-To: <53D8D412.4050509@gmail.com> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit On 07/30/2014 06:16 AM, Michael Lueck wrote: > Greetings, > > I was previously subscribed to the xfs mailing list, in non-deliver > mode as I use the gmane NNTP gateway to read messages. > > Suddenly my ID is not allowed to post. I tried checking my > subscription, and the following rejection is returned. > > This message was created automatically by mail delivery software. > > A message that you sent could not be delivered to one or more of > its recipients. This is a permanent error. The following address > failed: > > "xfs-request@oss.sgi.com": > SMTP error from remote server after RCPT command: > host: cuda-allmx.sgi.com > Sender IP address rejected > > > --- The header of the original message is following. --- > > Received: from [10.10.10.238] (97-92-36-7.dhcp.aldl.mi.charter.com > [97.92.36.7]) > by mrelay.perfora.net (node=mreueus001) with ESMTP (Nemesis) > id 0Lqjq8-1WZF4H1MgM-00eLva; Wed, 30 Jul 2014 13:10:24 +0200 > Message-ID: <53D8D2A1.4090807@lueckdatasystems.com> > Date: Wed, 30 Jul 2014 07:10:25 -0400 > From: Michael Lueck > User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:29.0) Gecko/20100101 > Firefox/29.0 SeaMonkey/2.26.1 > MIME-Version: 1.0 > To: xfs-request@oss.sgi.com > Subject: subscribe > Content-Type: text/plain; charset=UTF-8; format=flowed > Content-Transfer-Encoding: 7bit > X-Provags-ID: V02:K0:AsXHEFZLHHVOdHAjU41kZRRxcuuhfChV68BHNDVRhrw > CRxUUGmrCgStqHM6aY0597oFivvSfUfqQIoYQfTB95+ehYUNhN > ePRANuggQkwrWgwbsxVREwsiF+FJP7NHh1qlyWi+Zw3H0YGUo0 > mYZqi9OmEez/yodVDIugZ4NzS963L64uBod/IpVUatv3WerTou > /UzmDOmWuGfvEj3lwuMBL5a/53ZzeStLVZaWGBpvpUOS5xh/rp > 5ejeDnTYnwBvuEFD6dGBPpiMyTsxbtEqfH3wQZfkhFNB+SW3n7 > ufrrFH7ZHhDxzM6o700YDql/2/UaFGRPAiOEqLqbtLZPpnyFLS > RoQAqHa8IU8M0M8wMR+jFQZHSPKeApuWE/UYY1h/v > > > > Please advise how this difficulty may be corrected. > > I am thankful, > Michael > > _______________________________________________ > xfs mailing list > xfs@oss.sgi.com > http://oss.sgi.com/mailman/listinfo/xfs Michael, I have opened a internal SGI ticket with the admins for oss.sgi.com to look into your request. Thanks, Troy McCorkell From david@fromorbit.com Thu Jul 31 18:01:45 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: xfs@oss.sgi.com Delivered-To: xfs@oss.sgi.com Received: from relay.sgi.com (relay1.corp.sgi.com [137.38.102.111]) by oss.sgi.com (Postfix) with ESMTP id 4BDB97FAC for ; Thu, 31 Jul 2014 18:01:45 -0500 (CDT) Received: from cuda.sgi.com (cuda3.sgi.com [192.48.176.15]) by relay1.corp.sgi.com (Postfix) with ESMTP id 29BF88F8059 for ; Thu, 31 Jul 2014 16:01:41 -0700 (PDT) X-ASG-Debug-ID: 1406847699-04cb6c555d8c010001-NocioJ Received: from ipmail04.adl6.internode.on.net (ipmail04.adl6.internode.on.net [150.101.137.141]) by cuda.sgi.com with ESMTP id RSfOQAuZORBXgh4F for ; Thu, 31 Jul 2014 16:01:40 -0700 (PDT) X-Barracuda-Envelope-From: david@fromorbit.com X-Barracuda-Apparent-Source-IP: 150.101.137.141 X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: AksIAAjK2lN5LKl0PGdsb2JhbABbgw2BKYInhQioKwEBAQMGnxOFbgGBCxcFAQEBATg2hAQBBTocIxAIAw4KCSUPBSUDBxoTiEHLExcYhWSJA00HhEsFjmuNCIt3jDsrL4EEAR4G Received: from ppp121-44-169-116.lns20.syd7.internode.on.net (HELO dastard) ([121.44.169.116]) by ipmail04.adl6.internode.on.net with ESMTP; 01 Aug 2014 08:31:38 +0930 Received: from dave by dastard with local (Exim 4.80) (envelope-from ) id 1XCzLs-00084X-TT; Fri, 01 Aug 2014 09:01:36 +1000 Date: Fri, 1 Aug 2014 09:01:36 +1000 From: Dave Chinner To: Christoph Hellwig Cc: xfs@oss.sgi.com Subject: Re: [PATCH 0/6] xfs: discombobulate sb updates and kill xfs_vnode.h Message-ID: <20140731230136.GS26465@dastard> X-ASG-Orig-Subj: Re: [PATCH 0/6] xfs: discombobulate sb updates and kill xfs_vnode.h References: <1406791995-14723-1-git-send-email-david@fromorbit.com> <20140731171655.GA30301@infradead.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20140731171655.GA30301@infradead.org> User-Agent: Mutt/1.5.21 (2010-09-15) X-Barracuda-Connect: ipmail04.adl6.internode.on.net[150.101.137.141] X-Barracuda-Start-Time: 1406847699 X-Barracuda-URL: http://192.48.176.15:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 X-Barracuda-Spam-Score: 0.00 X-Barracuda-Spam-Status: No, SCORE=0.00 using per-user scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.7 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.8013 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- On Thu, Jul 31, 2014 at 10:16:55AM -0700, Christoph Hellwig wrote: > On Thu, Jul 31, 2014 at 05:33:09PM +1000, Dave Chinner wrote: > > Hi folks, > > > > Really two patch series in one. The first two patches remove the > > bitfield based superblock update method and replace it with a simple > > "update and log everything" operation. Superblock updates are > > now relatively rare so there's no need to optimise for single field > > updates. This patchset removes all that complex code and makes > > everything nice and simple. > > Is there any deeper rationale why you want to get rid of it? Tangential - cleaning up the mess of separate project quota inode support. We do lots of dancing around with bit flags and updates in different functions, and it really just complicates the code. The recent problems with the quota flags getting screwed up by repair due not using the sb-to-disk code properly in userspace was the initial source of the problem - it's just an unmaintainable PITA that leads to bugs. So the first step to fixing that is removing all of the unnecessary obfuscation and complexity from the kernel code, then port it over to userspace(*). Besides, when we log a single field in the superblock, we're really logging the surrounding 128 byte chunk, so we really are logging most of the superbock on every change right now. And if we want to move to single regions for logged buffers, then we'll be logging the entire sb every time anyway. So, really, it makes no sense to do this special bitfield based update and logging stuff anymore. Cheers, Dave. (*) I haven't posted the "trash all quota state" patch set for repair yet - given that repair doesn't validate the quota inode contents, and we quotacheck unconditionally after a repair run, there's no point trying to check or repair quota state or inodes at all - just trash them and let the kernel rebuild it from scratch on the next mount.... -- Dave Chinner david@fromorbit.com From david@fromorbit.com Thu Jul 31 18:02:16 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: X-Spam-Status: No, score=0.0 required=5.0 tests=none autolearn=ham version=3.3.1 X-Original-To: xfs@oss.sgi.com Delivered-To: xfs@oss.sgi.com Received: from relay.sgi.com (relay1.corp.sgi.com [137.38.102.111]) by oss.sgi.com (Postfix) with ESMTP id 1963B7FAC for ; Thu, 31 Jul 2014 18:02:16 -0500 (CDT) Received: from cuda.sgi.com (cuda2.sgi.com [192.48.176.25]) by relay1.corp.sgi.com (Postfix) with ESMTP id 05B298F8059 for ; Thu, 31 Jul 2014 16:02:15 -0700 (PDT) X-ASG-Debug-ID: 1406847733-04cbb02d838ee30001-NocioJ Received: from ipmail04.adl6.internode.on.net (ipmail04.adl6.internode.on.net [150.101.137.141]) by cuda.sgi.com with ESMTP id HaGHYSA3OCPFQVHf for ; Thu, 31 Jul 2014 16:02:14 -0700 (PDT) X-Barracuda-Envelope-From: david@fromorbit.com X-Barracuda-Apparent-Source-IP: 150.101.137.141 X-IronPort-Anti-Spam-Filtered: true X-IronPort-Anti-Spam-Result: AksIAAjK2lN5LKl0PGdsb2JhbABbgw2BKYInhQioKwEBAQMGnxOFbgGBCxcFAQEBATg2hAMBAQQBOhwjBQsIAw4KCSUPBSUDBxoTiDoHyxMXGIVkiVAHhEsFjmuNCIt3jDsrLw Received: from ppp121-44-169-116.lns20.syd7.internode.on.net (HELO dastard) ([121.44.169.116]) by ipmail04.adl6.internode.on.net with ESMTP; 01 Aug 2014 08:32:13 +0930 Received: from dave by dastard with local (Exim 4.80) (envelope-from ) id 1XCzMS-00084g-8x; Fri, 01 Aug 2014 09:02:12 +1000 Date: Fri, 1 Aug 2014 09:02:12 +1000 From: Dave Chinner To: Christoph Hellwig Cc: xfs@oss.sgi.com Subject: Re: [PATCH 2/2] xfs: flush both inodes in xfs_swap_extents Message-ID: <20140731230212.GT26465@dastard> X-ASG-Orig-Subj: Re: [PATCH 2/2] xfs: flush both inodes in xfs_swap_extents References: <1406787128-11897-1-git-send-email-david@fromorbit.com> <1406787128-11897-3-git-send-email-david@fromorbit.com> <20140731171602.GF22173@infradead.org> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20140731171602.GF22173@infradead.org> User-Agent: Mutt/1.5.21 (2010-09-15) X-Barracuda-Connect: ipmail04.adl6.internode.on.net[150.101.137.141] X-Barracuda-Start-Time: 1406847733 X-Barracuda-URL: http://192.48.176.25:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 X-Barracuda-Spam-Score: 0.00 X-Barracuda-Spam-Status: No, SCORE=0.00 using per-user scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.7 tests= X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.8013 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- On Thu, Jul 31, 2014 at 10:16:02AM -0700, Christoph Hellwig wrote: > > int > > +xfs_swap_extent_flush( > > + struct xfs_inode *ip) > > +{ > > + int error; > > nipick: shouldn't the arguments and local variables align to the same > level? *nod* > Also a local struct inode variable instead of using VFS_I(ip) 4 times > would be nice. Will fix. > Otherwise looks good, > > Reviewed-by: Christoph Hellwig Thanks. -Dave. -- Dave Chinner david@fromorbit.com From fharatelock-xfs=oss.sgi.com@moneymattters.com Thu Jul 31 20:07:40 2014 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on oss.sgi.com X-Spam-Level: ** X-Spam-Status: No, score=2.2 required=5.0 tests=HTML_MESSAGE,MIME_HTML_ONLY, MIME_QP_LONG_LINE,T_DKIM_INVALID autolearn=no version=3.3.1 X-Original-To: xfs@oss.sgi.com Delivered-To: xfs@oss.sgi.com Received: from relay.sgi.com (relay1.corp.sgi.com [137.38.102.111]) by oss.sgi.com (Postfix) with ESMTP id 7C5197FAC for ; Thu, 31 Jul 2014 20:07:40 -0500 (CDT) Received: from cuda.sgi.com (cuda1.sgi.com [192.48.157.11]) by relay1.corp.sgi.com (Postfix) with ESMTP id 4DD418F8087 for ; Thu, 31 Jul 2014 18:07:40 -0700 (PDT) X-ASG-Debug-ID: 1406855256-04bdf03d45986c0002-NocioJ Received: from mail.moneymattters.com (host.colocrossing.com [192.3.23.18]) by cuda.sgi.com with ESMTP id Z04f8ZOmScQAoDUF for ; Thu, 31 Jul 2014 18:07:38 -0700 (PDT) X-Barracuda-Envelope-From: fharatelock-xfs=oss.sgi.com@moneymattters.com X-Barracuda-Apparent-Source-IP: 192.3.23.18 DKIM-Signature: v=1; a=rsa-sha1; c=relaxed/relaxed; s=dkim; d=moneymattters.com; h=Date:From:To:Subject:MIME-Version:Content-Type:Message-ID; i=fharatelock@moneymattters.com; bh=ynAyl4Yy8FQcLno9R3mJ8foTbQA=; b=JJqlE2RR6usUtSU4UmAVWWNSCgy+fwNtvmu/OlqHDn5oGo96RDYNY0TMao74dGnneuKUXEh+zOjs HBVshIha/cEc9kz7dmUnaB+wOHxkjeUzVjtKmAFvBH7yK2f0YvOopJcjsz2jAEhtQRpJwlJYTrW4 jOVbCfwz2Y0g9I5oUGs= DomainKey-Signature: a=rsa-sha1; c=nofws; q=dns; s=dkim; d=moneymattters.com; b=UJc918urk27reRhwf2VOUWMRqehosmXW0aILy0TXtP/3Lh3GP5k7XIVthjh9ZbP54gEMpFiyTo1p yddfidP4SiK/gKfT694WUltwgeWIyBbeKS8ggZEUexJeu19NFBnnO4j5ZPMbFhL6O+u0ZxEpRys7 Zn3veyKi6t1N7iVG7JU=; Received: by mail.moneymattters.com id hrbk5m0001gn for ; Thu, 31 Jul 2014 17:58:15 -0700 (envelope-from ) Date: Thu, 31 Jul 2014 17:58:15 -0700 From: FHARateLock To: Subject: Mortgage rates have went down? MIME-Version: 1.0 X-ASG-Orig-Subj: Mortgage rates have went down? Content-Type: multipart/mixed; boundary="----=_Part_65418_1379987794.1406853374694" Message-ID: <0.0.0.450.1CFAD23ACD06580.6675DA@mail.moneymattters.com> X-Barracuda-Connect: host.colocrossing.com[192.3.23.18] X-Barracuda-Start-Time: 1406855258 X-Barracuda-URL: http://192.48.157.11:80/cgi-mod/mark.cgi X-Virus-Scanned: by bsmtpd at sgi.com X-Barracuda-BRTS-Status: 1 X-Barracuda-Spam-Score: 1.42 X-Barracuda-Spam-Status: No, SCORE=1.42 using per-user scores of TAG_LEVEL=1000.0 QUARANTINE_LEVEL=1000.0 KILL_LEVEL=2.7 tests=DKIM_SIGNED, DKIM_VERIFIED, HTML_MESSAGE, MARKETING_SUBJECT, MIME_HTML_ONLY, MIME_QP_LONG_LINE, MIME_QP_LONG_LINE_2 X-Barracuda-Spam-Report: Code version 3.2, rules version 3.2.3.8017 Rule breakdown below pts rule name description ---- ---------------------- -------------------------------------------------- 0.60 MARKETING_SUBJECT Subject contains popular marketing words -0.00 DKIM_VERIFIED Domain Keys Identified Mail: signature passes verification 0.00 DKIM_SIGNED Domain Keys Identified Mail: message has a signature 0.00 MIME_HTML_ONLY BODY: Message only has text/html MIME parts 0.00 HTML_MESSAGE BODY: HTML included in message 0.00 MIME_QP_LONG_LINE RAW: Quoted-printable line longer than 76 chars 0.82 MIME_QP_LONG_LINE_2 RAW: Quoted-printable line longer than 76 chars ------=_Part_65418_1379987794.1406853374694 Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: quoted-printable =20 =20 =20 =20 =20
=20 =20 =20 =20 =20 =20 =20 =20 =20 =20
=20 =20 =20 =20 =20 =20 =20
3D"Find
=20 =20 =20 =20 =20 =20 =20 =20 =20 =20 =20 =20 =20
3D"Find
3D"C=
3D""=

To unsubscribe from our email list, please click here
or mail us at: FHARateLo= ck.com 8776 East Shea Blvd #B3A-462 Scottsdale, AZ 85260.

Therefore, since we have a= great high priest who has gone through the heavens, Jesus the Son of God, = let us hold firmly to the faith we profess. For we do not have a high pries= t who is unable to sympathize with our weaknesses, but we have one who has = been tempted in every way, just as we are - yet was without sin. Let us the= n approach the throne of grace with confidence, so that we may receive merc= y and find grace to help us in our time of need.

=20
=20 ------=_Part_65418_1379987794.1406853374694--