<?xml version="1.0" encoding="UTF-8"?>
<rdf:RDF xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns="http://purl.org/rss/1.0/" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:syn="http://purl.org/rss/1.0/modules/syndication/" xmlns:admin="http://webns.net/mvcb/">
  <channel rdf:about="http://blog.gmane.org/gmane.comp.file-systems.xfs.general">
    <title>gmane.comp.file-systems.xfs.general</title>
    <link>http://blog.gmane.org/gmane.comp.file-systems.xfs.general</link>
    <description/>
    <syn:updatePeriod>hourly</syn:updatePeriod>
    <syn:updateFrequency>1</syn:updateFrequency>
    <syn:updateBase>1901-01-01T00:00+00:00</syn:updateBase>
    <items>
      <rdf:Seq>
        <rdf:li rdf:resource="http://comments.gmane.org/gmane.comp.file-systems.xfs.general/52712"/>
        <rdf:li rdf:resource="http://comments.gmane.org/gmane.comp.file-systems.xfs.general/52709"/>
        <rdf:li rdf:resource="http://comments.gmane.org/gmane.comp.file-systems.xfs.general/52695"/>
        <rdf:li rdf:resource="http://comments.gmane.org/gmane.comp.file-systems.xfs.general/52691"/>
        <rdf:li rdf:resource="http://comments.gmane.org/gmane.comp.file-systems.xfs.general/52684"/>
        <rdf:li rdf:resource="http://comments.gmane.org/gmane.comp.file-systems.xfs.general/52651"/>
        <rdf:li rdf:resource="http://comments.gmane.org/gmane.comp.file-systems.xfs.general/52648"/>
        <rdf:li rdf:resource="http://comments.gmane.org/gmane.comp.file-systems.xfs.general/52642"/>
        <rdf:li rdf:resource="http://comments.gmane.org/gmane.comp.file-systems.xfs.general/52637"/>
        <rdf:li rdf:resource="http://comments.gmane.org/gmane.comp.file-systems.xfs.general/52636"/>
        <rdf:li rdf:resource="http://comments.gmane.org/gmane.comp.file-systems.xfs.general/52635"/>
        <rdf:li rdf:resource="http://comments.gmane.org/gmane.comp.file-systems.xfs.general/52634"/>
        <rdf:li rdf:resource="http://comments.gmane.org/gmane.comp.file-systems.xfs.general/52633"/>
        <rdf:li rdf:resource="http://comments.gmane.org/gmane.comp.file-systems.xfs.general/52632"/>
        <rdf:li rdf:resource="http://comments.gmane.org/gmane.comp.file-systems.xfs.general/52631"/>
        <rdf:li rdf:resource="http://comments.gmane.org/gmane.comp.file-systems.xfs.general/52630"/>
        <rdf:li rdf:resource="http://comments.gmane.org/gmane.comp.file-systems.xfs.general/52629"/>
        <rdf:li rdf:resource="http://comments.gmane.org/gmane.comp.file-systems.xfs.general/52617"/>
        <rdf:li rdf:resource="http://comments.gmane.org/gmane.comp.file-systems.xfs.general/52612"/>
        <rdf:li rdf:resource="http://comments.gmane.org/gmane.comp.file-systems.xfs.general/52607"/>
      </rdf:Seq>
    </items>
    <image rdf:resource="http://gmane.org/img/gmane-25t.png"/>
    <textinput rdf:resource=""/>
  </channel>
  <image rdf:about="http://gmane.org/img/gmane-25t.png">
    <title>Gmane</title>
    <url>http://gmane.org/img/gmane-25t.png</url>
    <link>http://gmane.org</link>
  </image>
  <item rdf:about="http://comments.gmane.org/gmane.comp.file-systems.xfs.general/52712">
    <title>XFS hangup - Failed to recover EFIs</title>
    <link>http://comments.gmane.org/gmane.comp.file-systems.xfs.general/52712</link>
    <description>&lt;pre&gt;Hello

After upgrading my laptop from Ubuntu 12.04 LTS to Ubuntu 13.04 Raring i noticed that my Linux would not boot again. 
So after inserting Ubuntu 13.04 boot disk , this is what i've found out:

ubuntu&amp;lt; at &amp;gt;ubuntu:~$ uname -a
Linux ubuntu 3.8.0-19-generic #29-Ubuntu SMP Wed Apr 17 18:16:28 UTC 2013 x86_64 x86_64 x86_64 GNU/Linux

ubuntu&amp;lt; at &amp;gt;ubuntu:~$ sudo xfs_repair -v /dev/sda3
Phase 1 - find and verify superblock...
 - block cache size set to 363760 entries
Phase 2 - using internal log
 - zero log...
zero_log: head block 32468 tail block 31799
ERROR: The filesystem has valuable metadata changes in a log which needs to
be replayed. Mount the filesystem to replay the log, and unmount it before
re-running xfs_repair. If you are unable to mount the filesystem, then use
the -L option to destroy the log and attempt a repair.
Note that destroying the log may cause corruption -- please attempt a mount
of the filesystem before doing this.
ubuntu&amp;lt; at &amp;gt;ubuntu:~$ ls /mnt/
ubuntu&amp;lt; at &amp;gt;ubuntu:~$ sudo mount /dev/sda3 /mnt
 ^C^C -&amp;gt; mount command hang indefinetely

On other terminal (output from dmeg):

[ 418.414325] SGI XFS with ACLs, security attributes, realtime, large block/inode numbers, no debug enabled
[ 418.428026] XFS (sda3): Mounting Filesystem
[ 418.511943] XFS (sda3): Starting recovery (logdev: internal)
[ 425.070536] XFS: Internal error XFS_WANT_CORRUPTED_GOTO at line 1557 of file /build/buildd/linux-3.8.0/fs/xfs/xfs_alloc.c. Caller 0xffffffffa06dae36
[ 425.070536]
[ 425.070552] Pid: 5671, comm: mount Tainted: GF 3.8.0-19-generic #29-Ubuntu
[ 425.070556] Call Trace:
[ 425.070605] [&amp;lt;ffffffffa06c311c&amp;gt;] xfs_error_report+0x3c/0x40 [xfs]
[ 425.070646] [&amp;lt;ffffffffa06dae36&amp;gt;] ? xfs_free_extent+0xd6/0x120 [xfs]
[ 425.070682] [&amp;lt;ffffffffa06d8556&amp;gt;] xfs_free_ag_extent+0x2d6/0x740 [xfs]
[ 425.070717] [&amp;lt;ffffffffa06dae36&amp;gt;] xfs_free_extent+0xd6/0x120 [xfs]
[ 425.070751] [&amp;lt;ffffffffa06d7137&amp;gt;] ? kmem_zone_alloc+0x67/0xe0 [xfs]
[ 425.070797] [&amp;lt;ffffffffa0709b50&amp;gt;] xlog_recover_process_efi+0x170/0x1b0 [xfs]
[ 425.070830] [&amp;lt;ffffffffa06c904f&amp;gt;] ? xfs_iget+0x36f/0x690 [xfs]
[ 425.070869] [&amp;lt;ffffffffa070b376&amp;gt;] xlog_recover_process_efis.isra.8+0x66/0xc0 [xfs]
[ 425.070908] [&amp;lt;ffffffffa070e91a&amp;gt;] xlog_recover_finish+0x2a/0xd0 [xfs]
[ 425.070951] [&amp;lt;ffffffffa0715e54&amp;gt;] xfs_log_mount_finish+0x34/0x50 [xfs]
[ 425.070991] [&amp;lt;ffffffffa071145d&amp;gt;] xfs_mountfs+0x42d/0x690 [xfs]
[ 425.071026] [&amp;lt;ffffffffa06d2c6f&amp;gt;] xfs_fs_fill_super+0x2bf/0x340 [xfs]
[ 425.071037] [&amp;lt;ffffffff81196ebd&amp;gt;] mount_bdev+0x1cd/0x210
[ 425.071070] [&amp;lt;ffffffffa06d29b0&amp;gt;] ? xfs_parseargs+0xc10/0xc10 [xfs]
[ 425.071103] [&amp;lt;ffffffffa06d0ec5&amp;gt;] xfs_fs_mount+0x15/0x20 [xfs]
[ 425.071110] [&amp;lt;ffffffff81197bf3&amp;gt;] mount_fs+0x43/0x1b0
[ 425.071119] [&amp;lt;ffffffff811b2407&amp;gt;] ? alloc_vfsmnt+0xd7/0x1b0
[ 425.071127] [&amp;lt;ffffffff811b2594&amp;gt;] vfs_kern_mount+0x74/0x110
[ 425.071135] [&amp;lt;ffffffff811b490f&amp;gt;] do_mount+0x21f/0xac0
[ 425.071145] [&amp;lt;ffffffff8114a41b&amp;gt;] ? strndup_user+0x5b/0x80
[ 425.071153] [&amp;lt;ffffffff811b523e&amp;gt;] sys_mount+0x8e/0xe0
[ 425.071165] [&amp;lt;ffffffff816d379d&amp;gt;] system_call_fastpath+0x1a/0x1f
[ 425.071189] XFS (sda3): Failed to recover EFIs
[ 425.071194] XFS (sda3): log mount finish failed

Before attempting mounting with -L flag , do you want me to do other things to assist in tracking this bug down?

I've attached dmesg output.
If there is anything else i can help with,please let me know.

Best regards
Victor
[    0.000000] Initializing cgroup subsys cpuset
[    0.000000] Initializing cgroup subsys cpu
[    0.000000] Linux version 3.8.0-19-generic (buildd&amp;lt; at &amp;gt;allspice) (gcc version 4.7.3 (Ubuntu/Linaro 4.7.3-1ubuntu1) ) #29-Ubuntu SMP Wed Apr 17 18:16:28 UTC 2013 (Ubuntu 3.8.0-19.29-generic 3.8.8)
[    0.000000] Command line: file=/cdrom/preseed/ubuntu.seed boot=casper initrd=/casper/initrd.lz quiet splash -- maybe-ubiquity
[    0.000000] KERNEL supported cpus:
[    0.000000]   Intel GenuineIntel
[    0.000000]   AMD AuthenticAMD
[    0.000000]   Centaur CentaurHauls
[    0.000000] e820: BIOS-provided physical RAM map:
[    0.000000] BIOS-e820: [mem 0x0000000000000000-0x000000000009e7ff] usable
[    0.000000] BIOS-e820: [mem 0x000000000009e800-0x000000000009ffff] reserved
[    0.000000] BIOS-e820: [mem 0x00000000000e0000-0x00000000000fffff] reserved
[    0.000000] BIOS-e820: [mem 0x0000000000100000-0x000000001fffffff] usable
[    0.000000] BIOS-e820: [mem 0x0000000020000000-0x00000000201fffff] reserved
[    0.000000] BIOS-e820: [mem 0x0000000020200000-0x000000003fffffff] usable
[    0.000000] BIOS-e820: [mem 0x0000000040000000-0x00000000401fffff] reserved
[    0.000000] BIOS-e820: [mem 0x0000000040200000-0x00000000aad1ffff] usable
[    0.000000] BIOS-e820: [mem 0x00000000aad20000-0x00000000aad8dfff] reserved
[    0.000000] BIOS-e820: [mem 0x00000000aad8e000-0x00000000aad94fff] usable
[    0.000000] BIOS-e820: [mem 0x00000000aad95000-0x00000000aad95fff] reserved
[    0.000000] BIOS-e820: [mem 0x00000000aad96000-0x00000000aad96fff] usable
[    0.000000] BIOS-e820: [mem 0x00000000aad97000-0x00000000aadb7fff] reserved
[    0.000000] BIOS-e820: [mem 0x00000000aadb8000-0x00000000aadc5fff] usable
[    0.000000] BIOS-e820: [mem 0x00000000aadc6000-0x00000000aade7fff] reserved
[    0.000000] BIOS-e820: [mem 0x00000000aade8000-0x00000000aaf21fff] usable
[    0.000000] BIOS-e820: [mem 0x00000000aaf22000-0x00000000aaf86fff] ACPI NVS
[    0.000000] BIOS-e820: [mem 0x00000000aaf87000-0x00000000aaf89fff] usable
[    0.000000] BIOS-e820: [mem 0x00000000aaf8a000-0x00000000aafe7fff] ACPI NVS
[    0.000000] BIOS-e820: [mem 0x00000000aafe8000-0x00000000aaffcfff] usable
[    0.000000] BIOS-e820: [mem 0x00000000aaffd000-0x00000000aaffffff] ACPI data
[    0.000000] BIOS-e820: [mem 0x00000000ab000000-0x00000000af9fffff] reserved
[    0.000000] BIOS-e820: [mem 0x00000000e0000000-0x00000000e3ffffff] reserved
[    0.000000] BIOS-e820: [mem 0x00000000fec00000-0x00000000fec00fff] reserved
[    0.000000] BIOS-e820: [mem 0x00000000fed10000-0x00000000fed13fff] reserved
[    0.000000] BIOS-e820: [mem 0x00000000fed18000-0x00000000fed19fff] reserved
[    0.000000] BIOS-e820: [mem 0x00000000fed1c000-0x00000000fed1ffff] reserved
[    0.000000] BIOS-e820: [mem 0x00000000fee00000-0x00000000fee00fff] reserved
[    0.000000] BIOS-e820: [mem 0x00000000ff980000-0x00000000ffbfffff] reserved
[    0.000000] BIOS-e820: [mem 0x00000000ffd80000-0x00000000ffffffff] reserved
[    0.000000] BIOS-e820: [mem 0x0000000100000000-0x000000014fdfffff] usable
[    0.000000] NX (Execute Disable) protection: active
[    0.000000] SMBIOS 2.6 present.
[    0.000000] DMI: ASUSTeK Computer Inc. K73SV/K73SV, BIOS K73SV.209 08/16/2011
[    0.000000] e820: update [mem 0x00000000-0x0000ffff] usable ==&amp;gt; reserved
[    0.000000] e820: remove [mem 0x000a0000-0x000fffff] usable
[    0.000000] No AGP bridge found
[    0.000000] e820: last_pfn = 0x14fe00 max_arch_pfn = 0x400000000
[    0.000000] MTRR default type: uncachable
[    0.000000] MTRR fixed ranges enabled:
[    0.000000]   00000-9FFFF write-back
[    0.000000]   A0000-BFFFF uncachable
[    0.000000]   C0000-CFFFF write-protect
[    0.000000]   D0000-E7FFF uncachable
[    0.000000]   E8000-FFFFF write-protect
[    0.000000] MTRR variable ranges enabled:
[    0.000000]   0 base 000000000 mask F80000000 write-back
[    0.000000]   1 base 080000000 mask FE0000000 write-back
[    0.000000]   2 base 0A0000000 mask FF8000000 write-back
[    0.000000]   3 base 0A8000000 mask FFC000000 write-back
[    0.000000]   4 base 0AB000000 mask FFF000000 uncachable
[    0.000000]   5 base 100000000 mask FC0000000 write-back
[    0.000000]   6 base 140000000 mask FF0000000 write-back
[    0.000000]   7 base 14FE00000 mask FFFE00000 uncachable
[    0.000000]   8 disabled
[    0.000000]   9 disabled
[    0.000000] x86 PAT enabled: cpu 0, old 0x7040600070406, new 0x7010600070106
[    0.000000] original variable MTRRs
[    0.000000] reg 0, base: 0GB, range: 2GB, type WB
[    0.000000] reg 1, base: 2GB, range: 512MB, type WB
[    0.000000] reg 2, base: 2560MB, range: 128MB, type WB
[    0.000000] reg 3, base: 2688MB, range: 64MB, type WB
[    0.000000] reg 4, base: 2736MB, range: 16MB, type UC
[    0.000000] reg 5, base: 4GB, range: 1GB, type WB
[    0.000000] reg 6, base: 5GB, range: 256MB, type WB
[    0.000000] reg 7, base: 5374MB, range: 2MB, type UC
[    0.000000] total RAM covered: 4014M
[    0.000000] Found optimal setting for mtrr clean up
[    0.000000]  gran_size: 64K chunk_size: 4M num_reg: 8  lose cover RAM: 0G
[    0.000000] New variable MTRRs
[    0.000000] reg 0, base: 0GB, range: 2GB, type WB
[    0.000000] reg 1, base: 2GB, range: 512MB, type WB
[    0.000000] reg 2, base: 2560MB, range: 128MB, type WB
[    0.000000] reg 3, base: 2688MB, range: 32MB, type WB
[    0.000000] reg 4, base: 2720MB, range: 16MB, type WB
[    0.000000] reg 5, base: 4GB, range: 1GB, type WB
[    0.000000] reg 6, base: 5GB, range: 256MB, type WB
[    0.000000] reg 7, base: 5374MB, range: 2MB, type UC
[    0.000000] e820: update [mem 0xab000000-0xffffffff] usable ==&amp;gt; reserved
[    0.000000] e820: last_pfn = 0xaaffd max_arch_pfn = 0x400000000
[    0.000000] found SMP MP-table at [mem 0x000fcc40-0x000fcc4f] mapped at [ffff8800000fcc40]
[    0.000000] initial memory mapped: [mem 0x00000000-0x1fffffff]
[    0.000000] Base memory trampoline at [ffff880000098000] 98000 size 24576
[    0.000000] reserving inaccessible SNB gfx pages
[    0.000000] init_memory_mapping: [mem 0x00000000-0xaaffcfff]
[    0.000000]  [mem 0x00000000-0xaadfffff] page 2M
[    0.000000]  [mem 0xaae00000-0xaaffcfff] page 4k
[    0.000000] kernel direct mapping tables up to 0xaaffcfff &amp;lt; at &amp;gt; [mem 0x1fffb000-0x1fffffff]
[    0.000000] init_memory_mapping: [mem 0x100000000-0x14fdfffff]
[    0.000000]  [mem 0x100000000-0x14fdfffff] page 2M
[    0.000000] kernel direct mapping tables up to 0x14fdfffff &amp;lt; at &amp;gt; [mem 0xaaffa000-0xaaffcfff]
[    0.000000] RAMDISK: [mem 0x7eac7000-0x7fffffff]
[    0.000000] ACPI: RSDP 00000000000f0430 00024 (v02 _ASUS_)
[    0.000000] ACPI: XSDT 00000000aaffee18 0006C (v01 _ASUS_ Notebook 06222004 MSFT 00010013)
[    0.000000] ACPI: FACP 00000000aaf9ad98 000F4 (v04 _ASUS_ Notebook 06222004 MSFT 00010013)
[    0.000000] ACPI Warning: 32/64 FACS address mismatch in FADT - two FACS tables! (20121018/tbfadt-394)
[    0.000000] ACPI BIOS Bug: Warning: 32/64X FACS address mismatch in FADT - 0xAAFE4E40/0x00000000AAFE4D40, using 32 (20121018/tbfadt-521)
[    0.000000] ACPI: DSDT 00000000aaf67018 12DFA (v01 _ASUS_ Notebook 00000000 INTL 20091112)
[    0.000000] ACPI: FACS 00000000aafe4e40 00040
[    0.000000] ACPI: APIC 00000000aaffdf18 000CC (v02 _ASUS_ Notebook 06222004 MSFT 00010013)
[    0.000000] ACPI: DBGP 00000000aaffff18 00034 (v01 _ASUS_ Notebook 06222004 MSFT 00010013)
[    0.000000] ACPI: ECDT 00000000aafe4b18 000C1 (v01 _ASUS_ Notebook 06222004 AMI. 00000003)
[    0.000000] ACPI: HPET 00000000aafe5d18 00038 (v01 _ASUS_ Notebook 06222004 AMI. 00000003)
[    0.000000] ACPI: MCFG 00000000aafe5c98 0003C (v01 _ASUS_ Notebook 06222004 MSFT 00000097)
[    0.000000] ACPI: SSDT 00000000aaf86018 00913 (v01  PmRef  Cpu0Ist 00003000 INTL 20091112)
[    0.000000] ACPI: SSDT 00000000aaf85018 00996 (v01  PmRef    CpuPm 00003000 INTL 20091112)
[    0.000000] ACPI: ASF! 00000000aafe4a18 000A0 (v32 INTEL       HCG 00000001 TFSM 000F4240)
[    0.000000] ACPI: Local APIC address 0xfee00000
[    0.000000] No NUMA configuration found
[    0.000000] Faking a node at [mem 0x0000000000000000-0x000000014fdfffff]
[    0.000000] Initmem setup node 0 [mem 0x00000000-0x14fdfffff]
[    0.000000]   NODE_DATA [mem 0x14fdfb000-0x14fdfffff]
[    0.000000]  [ffffea0000000000-ffffea00053fffff] PMD -&amp;gt; [ffff88014b400000-ffff88014f3fffff] on node 0
[    0.000000] Zone ranges:
[    0.000000]   DMA      [mem 0x00010000-0x00ffffff]
[    0.000000]   DMA32    [mem 0x01000000-0xffffffff]
[    0.000000]   Normal   [mem 0x100000000-0x14fdfffff]
[    0.000000] Movable zone start for each node
[    0.000000] Early memory node ranges
[    0.000000]   node   0: [mem 0x00010000-0x0009dfff]
[    0.000000]   node   0: [mem 0x00100000-0x1fffffff]
[    0.000000]   node   0: [mem 0x20200000-0x3fffffff]
[    0.000000]   node   0: [mem 0x40200000-0xaad1ffff]
[    0.000000]   node   0: [mem 0xaad8e000-0xaad94fff]
[    0.000000]   node   0: [mem 0xaad96000-0xaad96fff]
[    0.000000]   node   0: [mem 0xaadb8000-0xaadc5fff]
[    0.000000]   node   0: [mem 0xaade8000-0xaaf21fff]
[    0.000000]   node   0: [mem 0xaaf87000-0xaaf89fff]
[    0.000000]   node   0: [mem 0xaafe8000-0xaaffcfff]
[    0.000000]   node   0: [mem 0x100000000-0x14fdfffff]
[    0.000000] On node 0 totalpages: 1026070
[    0.000000]   DMA zone: 64 pages used for memmap
[    0.000000]   DMA zone: 142 pages reserved
[    0.000000]   DMA zone: 3776 pages, LIFO batch:0
[    0.000000]   DMA32 zone: 10859 pages used for memmap
[    0.000000]   DMA32 zone: 684061 pages, LIFO batch:31
[    0.000000]   Normal zone: 5112 pages used for memmap
[    0.000000]   Normal zone: 322056 pages, LIFO batch:31
[    0.000000] ACPI: PM-Timer IO Port: 0x408
[    0.000000] ACPI: Local APIC address 0xfee00000
[    0.000000] ACPI: LAPIC (acpi_id[0x01] lapic_id[0x00] enabled)
[    0.000000] ACPI: LAPIC (acpi_id[0x02] lapic_id[0x02] enabled)
[    0.000000] ACPI: LAPIC (acpi_id[0x03] lapic_id[0x01] enabled)
[    0.000000] ACPI: LAPIC (acpi_id[0x04] lapic_id[0x03] enabled)
[    0.000000] ACPI: LAPIC (acpi_id[0x05] lapic_id[0x04] disabled)
[    0.000000] ACPI: LAPIC (acpi_id[0x06] lapic_id[0x05] disabled)
[    0.000000] ACPI: LAPIC (acpi_id[0x07] lapic_id[0x06] disabled)
[    0.000000] ACPI: LAPIC (acpi_id[0x08] lapic_id[0x07] disabled)
[    0.000000] ACPI: LAPIC (acpi_id[0x09] lapic_id[0x08] disabled)
[    0.000000] ACPI: LAPIC (acpi_id[0x0a] lapic_id[0x09] disabled)
[    0.000000] ACPI: LAPIC (acpi_id[0x0b] lapic_id[0x0a] disabled)
[    0.000000] ACPI: LAPIC (acpi_id[0x0c] lapic_id[0x0b] disabled)
[    0.000000] ACPI: LAPIC (acpi_id[0x0d] lapic_id[0x0c] disabled)
[    0.000000] ACPI: LAPIC (acpi_id[0x0e] lapic_id[0x0d] disabled)
[    0.000000] ACPI: LAPIC (acpi_id[0x0f] lapic_id[0x0e] disabled)
[    0.000000] ACPI: LAPIC (acpi_id[0x10] lapic_id[0x0f] disabled)
[    0.000000] ACPI: IOAPIC (id[0x02] address[0xfec00000] gsi_base[0])
[    0.000000] IOAPIC[0]: apic_id 2, version 32, address 0xfec00000, GSI 0-23
[    0.000000] ACPI: INT_SRC_OVR (bus 0 bus_irq 0 global_irq 2 dfl dfl)
[    0.000000] ACPI: INT_SRC_OVR (bus 0 bus_irq 9 global_irq 9 high level)
[    0.000000] ACPI: IRQ0 used by override.
[    0.000000] ACPI: IRQ2 used by override.
[    0.000000] ACPI: IRQ9 used by override.
[    0.000000] Using ACPI (MADT) for SMP configuration information
[    0.000000] ACPI: HPET id: 0x8086a701 base: 0xfed00000
[    0.000000] smpboot: Allowing 16 CPUs, 12 hotplug CPUs
[    0.000000] nr_irqs_gsi: 40
[    0.000000] PM: Registered nosave memory: 000000000009e000 - 000000000009f000
[    0.000000] PM: Registered nosave memory: 000000000009f000 - 00000000000a0000
[    0.000000] PM: Registered nosave memory: 00000000000a0000 - 00000000000e0000
[    0.000000] PM: Registered nosave memory: 00000000000e0000 - 0000000000100000
[    0.000000] PM: Registered nosave memory: 0000000020000000 - 0000000020200000
[    0.000000] PM: Registered nosave memory: 0000000040000000 - 0000000040200000
[    0.000000] PM: Registered nosave memory: 00000000aad20000 - 00000000aad8e000
[    0.000000] PM: Registered nosave memory: 00000000aad95000 - 00000000aad96000
[    0.000000] PM: Registered nosave memory: 00000000aad97000 - 00000000aadb8000
[    0.000000] PM: Registered nosave memory: 00000000aadc6000 - 00000000aade8000
[    0.000000] PM: Registered nosave memory: 00000000aaf22000 - 00000000aaf87000
[    0.000000] PM: Registered nosave memory: 00000000aaf8a000 - 00000000aafe8000
[    0.000000] PM: Registered nosave memory: 00000000aaffd000 - 00000000ab000000
[    0.000000] PM: Registered nosave memory: 00000000ab000000 - 00000000afa00000
[    0.000000] PM: Registered nosave memory: 00000000afa00000 - 00000000e0000000
[    0.000000] PM: Registered nosave memory: 00000000e0000000 - 00000000e4000000
[    0.000000] PM: Registered nosave memory: 00000000e4000000 - 00000000fec00000
[    0.000000] PM: Registered nosave memory: 00000000fec00000 - 00000000fec01000
[    0.000000] PM: Registered nosave memory: 00000000fec01000 - 00000000fed10000
[    0.000000] PM: Registered nosave memory: 00000000fed10000 - 00000000fed14000
[    0.000000] PM: Registered nosave memory: 00000000fed14000 - 00000000fed18000
[    0.000000] PM: Registered nosave memory: 00000000fed18000 - 00000000fed1a000
[    0.000000] PM: Registered nosave memory: 00000000fed1a000 - 00000000fed1c000
[    0.000000] PM: Registered nosave memory: 00000000fed1c000 - 00000000fed20000
[    0.000000] PM: Registered nosave memory: 00000000fed20000 - 00000000fee00000
[    0.000000] PM: Registered nosave memory: 00000000fee00000 - 00000000fee01000
[    0.000000] PM: Registered nosave memory: 00000000fee01000 - 00000000ff980000
[    0.000000] PM: Registered nosave memory: 00000000ff980000 - 00000000ffc00000
[    0.000000] PM: Registered nosave memory: 00000000ffc00000 - 00000000ffd80000
[    0.000000] PM: Registered nosave memory: 00000000ffd80000 - 0000000100000000
[    0.000000] e820: [mem 0xafa00000-0xdfffffff] available for PCI devices
[    0.000000] Booting paravirtualized kernel on bare hardware
[    0.000000] setup_percpu: NR_CPUS:256 nr_cpumask_bits:256 nr_cpu_ids:16 nr_node_ids:1
[    0.000000] PERCPU: Embedded 28 pages/cpu &amp;lt; at &amp;gt;ffff88014fa00000 s85056 r8192 d21440 u131072
[    0.000000] pcpu-alloc: s85056 r8192 d21440 u131072 alloc=1*2097152
[    0.000000] pcpu-alloc: [0] 00 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 
[    0.000000] Built 1 zonelists in Node order, mobility grouping on.  Total pages: 1009893
[    0.000000] Policy zone: Normal
[    0.000000] Kernel command line: file=/cdrom/preseed/ubuntu.seed boot=casper initrd=/casper/initrd.lz quiet splash -- maybe-ubiquity
[    0.000000] PID hash table entries: 4096 (order: 3, 32768 bytes)
[    0.000000] __ex_table already sorted, skipping sort
[    0.000000] xsave: enabled xstate_bv 0x7, cntxt size 0x340
[    0.000000] Checking aperture...
[    0.000000] No AGP bridge found
[    0.000000] Calgary: detecting Calgary via BIOS EBDA area
[    0.000000] Calgary: Unable to locate Rio Grande table in EBDA - bailing!
[    0.000000] Memory: 3932780k/5502976k available (7006k kernel code, 1398696k absent, 171500k reserved, 6238k data, 992k init)
[    0.000000] SLUB: Genslabs=15, HWalign=64, Order=0-3, MinObjects=0, CPUs=16, Nodes=1
[    0.000000] Hierarchical RCU implementation.
[    0.000000] RCU dyntick-idle grace-period acceleration is enabled.
[    0.000000] RCU restricting CPUs from NR_CPUS=256 to nr_cpu_ids=16.
[    0.000000] NR_IRQS:16640 nr_irqs:808 16
[    0.000000] Extended CMOS year: 2000
[    0.000000] Console: colour VGA+ 80x25
[    0.000000] console [tty0] enabled
[    0.000000] allocated 16777216 bytes of page_cgroup
[    0.000000] please try 'cgroup_disable=memory' option if you don't want memory cgroups
[    0.000000] hpet clockevent registered
[    0.000000] tsc: Fast TSC calibration using PIT
[    0.004000] tsc: Detected 2095.371 MHz processor
[    0.000004] Calibrating delay loop (skipped), value calculated using timer frequency.. 4190.74 BogoMIPS (lpj=8381484)
[    0.000006] pid_max: default: 32768 minimum: 301
[    0.000035] Security Framework initialized
[    0.000047] AppArmor: AppArmor initialized
[    0.000048] Yama: becoming mindful.
[    0.000378] Dentry cache hash table entries: 524288 (order: 10, 4194304 bytes)
[    0.001408] Inode-cache hash table entries: 262144 (order: 9, 2097152 bytes)
[    0.001851] Mount-cache hash table entries: 256
[    0.002039] Initializing cgroup subsys cpuacct
[    0.002041] Initializing cgroup subsys memory
[    0.002048] Initializing cgroup subsys devices
[    0.002050] Initializing cgroup subsys freezer
[    0.002052] Initializing cgroup subsys blkio
[    0.002053] Initializing cgroup subsys perf_event
[    0.002056] Initializing cgroup subsys hugetlb
[    0.002081] CPU: Physical Processor ID: 0
[    0.002082] CPU: Processor Core ID: 0
[    0.002087] ENERGY_PERF_BIAS: Set to 'normal', was 'performance'
[    0.002087] ENERGY_PERF_BIAS: View and update with x86_energy_perf_policy(8)
[    0.002090] mce: CPU supports 7 MCE banks
[    0.002103] CPU0: Thermal monitoring enabled (TM1)
[    0.002111] process: using mwait in idle threads
[    0.002115] Last level iTLB entries: 4KB 512, 2MB 0, 4MB 0
[    0.002115] Last level dTLB entries: 4KB 512, 2MB 32, 4MB 32
[    0.002115] tlb_flushall_shift: 5
[    0.002275] Freeing SMP alternatives: 24k freed
[    0.005155] ACPI: Core revision 20121018
[    0.038646] ftrace: allocating 26689 entries in 105 pages
[    0.054076] Switched APIC routing to physical flat.
[    0.054493] ..TIMER: vector=0x30 apic1=0 pin1=2 apic2=-1 pin2=-1
[    0.094121] smpboot: CPU0: Intel(R) Core(TM) i3-2310M CPU &amp;lt; at &amp;gt; 2.10GHz (fam: 06, model: 2a, stepping: 07)
[    0.094130] TSC deadline timer enabled
[    0.094134] Performance Events: PEBS fmt1+, 16-deep LBR, SandyBridge events, Intel PMU driver.
[    0.094141] perf_event_intel: PEBS disabled due to CPU errata, please upgrade microcode
[    0.094143] ... version:                3
[    0.094144] ... bit width:              48
[    0.094145] ... generic registers:      4
[    0.094147] ... value mask:             0000ffffffffffff
[    0.094148] ... max period:             000000007fffffff
[    0.094149] ... fixed-purpose events:   3
[    0.094150] ... event mask:             000000070000000f
[    0.108388] NMI watchdog: enabled on all CPUs, permanently consumes one hw-PMU counter.
[    0.095231] smpboot: Booting Node   0, Processors  #1 #2 #3
[    0.134827] Brought up 4 CPUs
[    0.134831] smpboot: Total of 4 processors activated (16762.96 BogoMIPS)
[    0.138512] devtmpfs: initialized
[    0.139377] EVM: security.selinux
[    0.139379] EVM: security.SMACK64
[    0.139380] EVM: security.capability
[    0.139430] PM: Registering ACPI NVS region [mem 0xaaf22000-0xaaf86fff] (413696 bytes)
[    0.139440] PM: Registering ACPI NVS region [mem 0xaaf8a000-0xaafe7fff] (385024 bytes)
[    0.140251] regulator-dummy: no parameters
[    0.140302] NET: Registered protocol family 16
[    0.140452] ACPI FADT declares the system doesn't support PCIe ASPM, so disable it
[    0.140455] ACPI: bus type pci registered
[    0.140520] PCI: MMCONFIG for domain 0000 [bus 00-3f] at [mem 0xe0000000-0xe3ffffff] (base 0xe0000000)
[    0.140523] PCI: MMCONFIG at [mem 0xe0000000-0xe3ffffff] reserved in E820
[    0.150982] PCI: Using configuration type 1 for base access
[    0.151843] bio: create slab &amp;lt;bio-0&amp;gt; at 0
[    0.151934] ACPI: Added _OSI(Module Device)
[    0.151936] ACPI: Added _OSI(Processor Device)
[    0.151938] ACPI: Added _OSI(3.0 _SCP Extensions)
[    0.151939] ACPI: Added _OSI(Processor Aggregator Device)
[    0.154467] ACPI: EC: EC description table is found, configuring boot EC
[    0.154472] ACPI: EC: Look up EC in DSDT
[    0.157184] ACPI: Executed 1 blocks of module-level executable AML code
[    0.160826] [Firmware Bug]: ACPI: BIOS _OSI(Linux) query ignored
[    0.266886] ACPI: SSDT 00000000aadca718 00694 (v01  PmRef  Cpu0Cst 00003001 INTL 20091112)
[    0.267521] ACPI: Dynamic OEM Table Load:
[    0.267523] ACPI: SSDT           (null) 00694 (v01  PmRef  Cpu0Cst 00003001 INTL 20091112)
[    0.267802] ACPI: SSDT 00000000aadcba98 00303 (v01  PmRef    ApIst 00003000 INTL 20091112)
[    0.268464] ACPI: Dynamic OEM Table Load:
[    0.268466] ACPI: SSDT           (null) 00303 (v01  PmRef    ApIst 00003000 INTL 20091112)
[    0.268594] ACPI: SSDT 00000000aadc9d98 00119 (v01  PmRef    ApCst 00003000 INTL 20091112)
[    0.269221] ACPI: Dynamic OEM Table Load:
[    0.269223] ACPI: SSDT           (null) 00119 (v01  PmRef    ApCst 00003000 INTL 20091112)
[    0.269817] ACPI: Interpreter enabled
[    0.269822] ACPI: (supports S0 S3 S4 S5)
[    0.269842] ACPI: Using IOAPIC for interrupt routing
[    0.376282] ACPI: EC: GPE = 0x1b, I/O: command/status = 0x66, data = 0x62
[    0.376445] ACPI: No dock devices found.
[    0.376450] PCI: Using host bridge windows from ACPI; if necessary, use "pci=nocrs" and report a bug
[    0.376673] ACPI: PCI Root Bridge [PCI0] (domain 0000 [bus 00-3e])
[    0.376676] ACPI: PCI Interrupt Routing Table [\_SB_.PCI0._PRT]
[    0.376809] \_SB_.PCI0:_OSC invalid UUID
[    0.376811] _OSC request data:1 8 1f 
[    0.377226] PCI host bridge to bus 0000:00
[    0.377229] pci_bus 0000:00: root bus resource [bus 00-3e]
[    0.377231] pci_bus 0000:00: root bus resource [io  0x0000-0x0cf7]
[    0.377233] pci_bus 0000:00: root bus resource [io  0x0d00-0xffff]
[    0.377236] pci_bus 0000:00: root bus resource [mem 0x000a0000-0x000bffff]
[    0.377237] pci_bus 0000:00: root bus resource [mem 0x000d0000-0x000d3fff]
[    0.377239] pci_bus 0000:00: root bus resource [mem 0x000d4000-0x000d7fff]
[    0.377241] pci_bus 0000:00: root bus resource [mem 0x000d8000-0x000dbfff]
[    0.377243] pci_bus 0000:00: root bus resource [mem 0x000dc000-0x000dffff]
[    0.377245] pci_bus 0000:00: root bus resource [mem 0x000e0000-0x000e3fff]
[    0.377247] pci_bus 0000:00: root bus resource [mem 0x000e4000-0x000e7fff]
[    0.377249] pci_bus 0000:00: root bus resource [mem 0xafa00000-0xfeafffff]
[    0.377251] pci_bus 0000:00: root bus resource [mem 0xfed40000-0xfed44fff]
[    0.377261] pci 0000:00:00.0: [8086:0104] type 00 class 0x060000
[    0.377301] pci 0000:00:01.0: [8086:0101] type 01 class 0x060400
[    0.377336] pci 0000:00:01.0: PME# supported from D0 D3hot D3cold
[    0.377358] pci 0000:00:02.0: [8086:0116] type 00 class 0x030000
[    0.377370] pci 0000:00:02.0: reg 10: [mem 0xdd400000-0xdd7fffff 64bit]
[    0.377377] pci 0000:00:02.0: reg 18: [mem 0xb0000000-0xbfffffff 64bit pref]
[    0.377382] pci 0000:00:02.0: reg 20: [io  0xe000-0xe03f]
[    0.377440] pci 0000:00:16.0: [8086:1c3a] type 00 class 0x078000
[    0.377466] pci 0000:00:16.0: reg 10: [mem 0xdf60b000-0xdf60b00f 64bit]
[    0.377547] pci 0000:00:16.0: PME# supported from D0 D3hot D3cold
[    0.377584] pci 0000:00:1a.0: [8086:1c2d] type 00 class 0x0c0320
[    0.377607] pci 0000:00:1a.0: reg 10: [mem 0xdf608000-0xdf6083ff]
[    0.377704] pci 0000:00:1a.0: PME# supported from D0 D3hot D3cold
[    0.377733] pci 0000:00:1b.0: [8086:1c20] type 00 class 0x040300
[    0.377750] pci 0000:00:1b.0: reg 10: [mem 0xdf600000-0xdf603fff 64bit]
[    0.377823] pci 0000:00:1b.0: PME# supported from D0 D3hot D3cold
[    0.377849] pci 0000:00:1c.0: [8086:1c10] type 01 class 0x060400
[    0.377933] pci 0000:00:1c.0: PME# supported from D0 D3hot D3cold
[    0.377961] pci 0000:00:1c.1: [8086:1c12] type 01 class 0x060400
[    0.378052] pci 0000:00:1c.1: PME# supported from D0 D3hot D3cold
[    0.378086] pci 0000:00:1c.5: [8086:1c1a] type 01 class 0x060400
[    0.378172] pci 0000:00:1c.5: PME# supported from D0 D3hot D3cold
[    0.378208] pci 0000:00:1d.0: [8086:1c26] type 00 class 0x0c0320
[    0.378231] pci 0000:00:1d.0: reg 10: [mem 0xdf607000-0xdf6073ff]
[    0.378328] pci 0000:00:1d.0: PME# supported from D0 D3hot D3cold
[    0.378357] pci 0000:00:1f.0: [8086:1c49] type 00 class 0x060100
[    0.378489] pci 0000:00:1f.2: [8086:1c03] type 00 class 0x010601
[    0.378510] pci 0000:00:1f.2: reg 10: [io  0xe0b0-0xe0b7]
[    0.378519] pci 0000:00:1f.2: reg 14: [io  0xe0a0-0xe0a3]
[    0.378528] pci 0000:00:1f.2: reg 18: [io  0xe090-0xe097]
[    0.378537] pci 0000:00:1f.2: reg 1c: [io  0xe080-0xe083]
[    0.378546] pci 0000:00:1f.2: reg 20: [io  0xe060-0xe07f]
[    0.378555] pci 0000:00:1f.2: reg 24: [mem 0xdf606000-0xdf6067ff]
[    0.378605] pci 0000:00:1f.2: PME# supported from D3hot
[    0.378630] pci 0000:00:1f.3: [8086:1c22] type 00 class 0x0c0500
[    0.378647] pci 0000:00:1f.3: reg 10: [mem 0xdf605000-0xdf6050ff 64bit]
[    0.378670] pci 0000:00:1f.3: reg 20: [io  0xe040-0xe05f]
[    0.378735] pci 0000:01:00.0: [10de:0df4] type 00 class 0x030000
[    0.378744] pci 0000:01:00.0: reg 10: [mem 0xdc000000-0xdcffffff]
[    0.378754] pci 0000:01:00.0: reg 14: [mem 0xc0000000-0xcfffffff 64bit pref]
[    0.378763] pci 0000:01:00.0: reg 1c: [mem 0xd0000000-0xd1ffffff 64bit pref]
[    0.378770] pci 0000:01:00.0: reg 24: [io  0xd000-0xd07f]
[    0.378777] pci 0000:01:00.0: reg 30: [mem 0xdd000000-0xdd07ffff pref]
[    0.390045] pci 0000:00:01.0: PCI bridge to [bus 01]
[    0.390054] pci 0000:00:01.0:   bridge window [io  0xd000-0xdfff]
[    0.390061] pci 0000:00:01.0:   bridge window [mem 0xdc000000-0xdd0fffff]
[    0.390071] pci 0000:00:01.0:   bridge window [mem 0xc0000000-0xd1ffffff 64bit pref]
[    0.390172] pci 0000:00:1c.0: PCI bridge to [bus 02]
[    0.390177] pci 0000:00:1c.0:   bridge window [io  0xc000-0xcfff]
[    0.390181] pci 0000:00:1c.0:   bridge window [mem 0xdec00000-0xdf5fffff]
[    0.390188] pci 0000:00:1c.0:   bridge window [mem 0xd3700000-0xd40fffff 64bit pref]
[    0.390258] pci 0000:03:00.0: [168c:002b] type 00 class 0x028000
[    0.390287] pci 0000:03:00.0: reg 10: [mem 0xde200000-0xde20ffff 64bit]
[    0.390423] pci 0000:03:00.0: supports D1
[    0.390425] pci 0000:03:00.0: PME# supported from D0 D1 D3hot D3cold
[    0.398045] pci 0000:00:1c.1: PCI bridge to [bus 03]
[    0.398055] pci 0000:00:1c.1:   bridge window [io  0xb000-0xbfff]
[    0.398064] pci 0000:00:1c.1:   bridge window [mem 0xde200000-0xdebfffff]
[    0.398079] pci 0000:00:1c.1:   bridge window [mem 0xd2c00000-0xd35fffff 64bit pref]
[    0.398195] pci 0000:04:00.0: [1969:1083] type 00 class 0x020000
[    0.398225] pci 0000:04:00.0: reg 10: [mem 0xdd800000-0xdd83ffff 64bit]
[    0.398242] pci 0000:04:00.0: reg 18: [io  0xa000-0xa07f]
[    0.398375] pci 0000:04:00.0: PME# supported from D0 D1 D2 D3hot D3cold
[    0.406042] pci 0000:00:1c.5: PCI bridge to [bus 04]
[    0.406052] pci 0000:00:1c.5:   bridge window [io  0xa000-0xafff]
[    0.406062] pci 0000:00:1c.5:   bridge window [mem 0xdd800000-0xde1fffff]
[    0.406076] pci 0000:00:1c.5:   bridge window [mem 0xd2100000-0xd2afffff 64bit pref]
[    0.406133] ACPI: PCI Interrupt Routing Table [\_SB_.PCI0.PEG0._PRT]
[    0.406226] ACPI: PCI Interrupt Routing Table [\_SB_.PCI0.RP01._PRT]
[    0.406255] ACPI: PCI Interrupt Routing Table [\_SB_.PCI0.RP02._PRT]
[    0.406295] ACPI: PCI Interrupt Routing Table [\_SB_.PCI0.RP06._PRT]
[    0.406368] \_SB_.PCI0:_OSC invalid UUID
[    0.406369] _OSC request data:1 1f 1f 
[    0.406373]  pci0000:00: ACPI _OSC support notification failed, disabling PCIe ASPM
[    0.406375]  pci0000:00: Unable to request _OSC control (_OSC support mask: 0x08)
[    0.407067] ACPI: PCI Interrupt Link [LNKA] (IRQs 3 4 5 6 7 10 *11 12)
[    0.407113] ACPI: PCI Interrupt Link [LNKB] (IRQs 3 4 5 6 7 *10 12)
[    0.407156] ACPI: PCI Interrupt Link [LNKC] (IRQs 3 4 *5 6 7 10 12)
[    0.407198] ACPI: PCI Interrupt Link [LNKD] (IRQs 3 4 *5 6 7 10 12)
[    0.407240] ACPI: PCI Interrupt Link [LNKE] (IRQs 3 4 5 6 7 10 12) *0, disabled.
[    0.407282] ACPI: PCI Interrupt Link [LNKF] (IRQs 3 4 5 6 7 10 12) *0, disabled.
[    0.407326] ACPI: PCI Interrupt Link [LNKG] (IRQs 3 4 *5 6 7 10 12)
[    0.407367] ACPI: PCI Interrupt Link [LNKH] (IRQs *3 4 5 6 7 10 12)
[    0.407461] vgaarb: device added: PCI:0000:00:02.0,decodes=io+mem,owns=io+mem,locks=none
[    0.407466] vgaarb: device added: PCI:0000:01:00.0,decodes=io+mem,owns=none,locks=none
[    0.407468] vgaarb: loaded
[    0.407469] vgaarb: bridge control possible 0000:01:00.0
[    0.407470] vgaarb: no bridge control possible 0000:00:02.0
[    0.407629] SCSI subsystem initialized
[    0.407631] ACPI: bus type scsi registered
[    0.407678] libata version 3.00 loaded.
[    0.407696] ACPI: bus type usb registered
[    0.407718] usbcore: registered new interface driver usbfs
[    0.407726] usbcore: registered new interface driver hub
[    0.407747] usbcore: registered new device driver usb
[    0.407825] PCI: Using ACPI for IRQ routing
[    0.409459] PCI: pci_cache_line_size set to 64 bytes
[    0.409526] e820: reserve RAM buffer [mem 0x0009e800-0x0009ffff]
[    0.409528] e820: reserve RAM buffer [mem 0xaad20000-0xabffffff]
[    0.409530] e820: reserve RAM buffer [mem 0xaad95000-0xabffffff]
[    0.409533] e820: reserve RAM buffer [mem 0xaad97000-0xabffffff]
[    0.409535] e820: reserve RAM buffer [mem 0xaadc6000-0xabffffff]
[    0.409537] e820: reserve RAM buffer [mem 0xaaf22000-0xabffffff]
[    0.409539] e820: reserve RAM buffer [mem 0xaaf8a000-0xabffffff]
[    0.409541] e820: reserve RAM buffer [mem 0xaaffd000-0xabffffff]
[    0.409542] e820: reserve RAM buffer [mem 0x14fe00000-0x14fffffff]
[    0.409621] NetLabel: Initializing
[    0.409623] NetLabel:  domain hash size = 128
[    0.409624] NetLabel:  protocols = UNLABELED CIPSOv4
[    0.409634] NetLabel:  unlabeled traffic allowed by default
[    0.409688] hpet0: at MMIO 0xfed00000, IRQs 2, 8, 0, 0, 0, 0, 0, 0
[    0.409694] hpet0: 8 comparators, 64-bit 14.318180 MHz counter
[    0.411705] Switching to clocksource hpet
[    0.416872] AppArmor: AppArmor Filesystem Enabled
[    0.416897] pnp: PnP ACPI init
[    0.416909] ACPI: bus type pnp registered
[    0.467778] pnp 00:00: [dma 4]
[    0.467801] pnp 00:00: Plug and Play ACPI device, IDs PNP0200 (active)
[    0.467821] pnp 00:01: Plug and Play ACPI device, IDs INT0800 (active)
[    0.467919] pnp 00:02: Plug and Play ACPI device, IDs PNP0103 (active)
[    0.467951] pnp 00:03: Plug and Play ACPI device, IDs PNP0c04 (active)
[    0.467997] system 00:04: [io  0x0680-0x069f] has been reserved
[    0.467999] system 00:04: [io  0x1000-0x100f] has been reserved
[    0.468002] system 00:04: [io  0xffff] has been reserved
[    0.468004] system 00:04: [io  0xffff] has been reserved
[    0.468006] system 00:04: [io  0x0400-0x0453] has been reserved
[    0.468008] system 00:04: [io  0x0458-0x047f] has been reserved
[    0.468010] system 00:04: [io  0x0500-0x057f] has been reserved
[    0.468012] system 00:04: [io  0x164e-0x164f] has been reserved
[    0.468015] system 00:04: Plug and Play ACPI device, IDs PNP0c02 (active)
[    0.468038] pnp 00:05: Plug and Play ACPI device, IDs PNP0b00 (active)
[    0.468074] system 00:06: [io  0x0454-0x0457] has been reserved
[    0.468077] system 00:06: Plug and Play ACPI device, IDs INT3f0d PNP0c02 (active)
[    0.468106] system 00:07: [io  0x0240-0x0259] has been reserved
[    0.468109] system 00:07: Plug and Play ACPI device, IDs PNP0c02 (active)
[    0.468156] pnp 00:08: Plug and Play ACPI device, IDs SYN0a17 SYN0a00 SYN0002 PNP0f13 (active)
[    0.468189] pnp 00:09: Plug and Play ACPI device, IDs PNP0303 PNP030b (active)
[    0.468425] system 00:0a: [mem 0xfed1c000-0xfed1ffff] has been reserved
[    0.468428] system 00:0a: [mem 0xfed10000-0xfed17fff] could not be reserved
[    0.468430] system 00:0a: [mem 0xfed18000-0xfed18fff] has been reserved
[    0.468432] system 00:0a: [mem 0xfed19000-0xfed19fff] has been reserved
[    0.468435] system 00:0a: [mem 0xe0000000-0xe3ffffff] has been reserved
[    0.468437] system 00:0a: [mem 0xfed20000-0xfed3ffff] has been reserved
[    0.468439] system 00:0a: [mem 0xfed90000-0xfed93fff] has been reserved
[    0.468441] system 00:0a: [mem 0xfed45000-0xfed8ffff] has been reserved
[    0.468443] system 00:0a: [mem 0xff000000-0xffffffff] could not be reserved
[    0.468446] system 00:0a: [mem 0xfee00000-0xfeefffff] could not be reserved
[    0.468448] system 00:0a: Plug and Play ACPI device, IDs PNP0c02 (active)
[    0.468518] system 00:0b: [mem 0xafa00000-0xafa00fff] has been reserved
[    0.468521] system 00:0b: Plug and Play ACPI device, IDs PNP0c02 (active)
[    0.468652] system 00:0c: [mem 0x20000000-0x201fffff] has been reserved
[    0.468654] system 00:0c: [mem 0x40000000-0x401fffff] has been reserved
[    0.468657] system 00:0c: Plug and Play ACPI device, IDs PNP0c01 (active)
[    0.468679] pnp: PnP ACPI: found 13 devices
[    0.468681] ACPI: ACPI bus type pnp unregistered
[    0.474807] pci 0000:00:01.0: PCI bridge to [bus 01]
[    0.474811] pci 0000:00:01.0:   bridge window [io  0xd000-0xdfff]
[    0.474814] pci 0000:00:01.0:   bridge window [mem 0xdc000000-0xdd0fffff]
[    0.474817] pci 0000:00:01.0:   bridge window [mem 0xc0000000-0xd1ffffff 64bit pref]
[    0.474821] pci 0000:00:1c.0: PCI bridge to [bus 02]
[    0.474825] pci 0000:00:1c.0:   bridge window [io  0xc000-0xcfff]
[    0.474831] pci 0000:00:1c.0:   bridge window [mem 0xdec00000-0xdf5fffff]
[    0.474835] pci 0000:00:1c.0:   bridge window [mem 0xd3700000-0xd40fffff 64bit pref]
[    0.474843] pci 0000:00:1c.1: PCI bridge to [bus 03]
[    0.474847] pci 0000:00:1c.1:   bridge window [io  0xb000-0xbfff]
[    0.474852] pci 0000:00:1c.1:   bridge window [mem 0xde200000-0xdebfffff]
[    0.474857] pci 0000:00:1c.1:   bridge window [mem 0xd2c00000-0xd35fffff 64bit pref]
[    0.474864] pci 0000:00:1c.5: PCI bridge to [bus 04]
[    0.474868] pci 0000:00:1c.5:   bridge window [io  0xa000-0xafff]
[    0.474874] pci 0000:00:1c.5:   bridge window [mem 0xdd800000-0xde1fffff]
[    0.474878] pci 0000:00:1c.5:   bridge window [mem 0xd2100000-0xd2afffff 64bit pref]
[    0.474914] pci_bus 0000:00: resource 4 [io  0x0000-0x0cf7]
[    0.474917] pci_bus 0000:00: resource 5 [io  0x0d00-0xffff]
[    0.474919] pci_bus 0000:00: resource 6 [mem 0x000a0000-0x000bffff]
[    0.474921] pci_bus 0000:00: resource 7 [mem 0x000d0000-0x000d3fff]
[    0.474923] pci_bus 0000:00: resource 8 [mem 0x000d4000-0x000d7fff]
[    0.474925] pci_bus 0000:00: resource 9 [mem 0x000d8000-0x000dbfff]
[    0.474926] pci_bus 0000:00: resource 10 [mem 0x000dc000-0x000dffff]
[    0.474928] pci_bus 0000:00: resource 11 [mem 0x000e0000-0x000e3fff]
[    0.474930] pci_bus 0000:00: resource 12 [mem 0x000e4000-0x000e7fff]
[    0.474932] pci_bus 0000:00: resource 13 [mem 0xafa00000-0xfeafffff]
[    0.474934] pci_bus 0000:00: resource 14 [mem 0xfed40000-0xfed44fff]
[    0.474936] pci_bus 0000:01: resource 0 [io  0xd000-0xdfff]
[    0.474938] pci_bus 0000:01: resource 1 [mem 0xdc000000-0xdd0fffff]
[    0.474940] pci_bus 0000:01: resource 2 [mem 0xc0000000-0xd1ffffff 64bit pref]
[    0.474942] pci_bus 0000:02: resource 0 [io  0xc000-0xcfff]
[    0.474944] pci_bus 0000:02: resource 1 [mem 0xdec00000-0xdf5fffff]
[    0.474946] pci_bus 0000:02: resource 2 [mem 0xd3700000-0xd40fffff 64bit pref]
[    0.474948] pci_bus 0000:03: resource 0 [io  0xb000-0xbfff]
[    0.474950] pci_bus 0000:03: resource 1 [mem 0xde200000-0xdebfffff]
[    0.474952] pci_bus 0000:03: resource 2 [mem 0xd2c00000-0xd35fffff 64bit pref]
[    0.474954] pci_bus 0000:04: resource 0 [io  0xa000-0xafff]
[    0.474956] pci_bus 0000:04: resource 1 [mem 0xdd800000-0xde1fffff]
[    0.474958] pci_bus 0000:04: resource 2 [mem 0xd2100000-0xd2afffff 64bit pref]
[    0.474991] NET: Registered protocol family 2
[    0.475151] TCP established hash table entries: 32768 (order: 7, 524288 bytes)
[    0.475290] TCP bind hash table entries: 32768 (order: 7, 524288 bytes)
[    0.475388] TCP: Hash tables configured (established 32768 bind 32768)
[    0.475408] TCP: reno registered
[    0.475417] UDP hash table entries: 2048 (order: 4, 65536 bytes)
[    0.475435] UDP-Lite hash table entries: 2048 (order: 4, 65536 bytes)
[    0.475505] NET: Registered protocol family 1
[    0.475518] pci 0000:00:02.0: Boot video device
[    0.727330] PCI: CLS 64 bytes, default 64
[    0.727402] Trying to unpack rootfs image as initramfs...
[    5.864036] Freeing initrd memory: 21732k freed
[    5.867193] PCI-DMA: Using software bounce buffering for IO (SWIOTLB)
[    5.867199] software IO TLB [mem 0xa6d20000-0xaad20000] (64MB) mapped at [ffff8800a6d20000-ffff8800aad1ffff]
[    5.867664] Initialise module verification
[    5.867707] audit: initializing netlink socket (disabled)
[    5.867723] type=2000 audit(1368744181.852:1): initialized
[    5.897250] HugeTLB registered 2 MB page size, pre-allocated 0 pages
[    5.898574] VFS: Disk quotas dquot_6.5.2
[    5.898619] Dquot-cache hash table entries: 512 (order 0, 4096 bytes)
[    5.899063] fuse init (API version 7.20)
[    5.899132] msgmni has been set to 7723
[    5.899647] Key type asymmetric registered
[    5.899649] Asymmetric key parser 'x509' registered
[    5.899687] Block layer SCSI generic (bsg) driver version 0.4 loaded (major 252)
[    5.899718] io scheduler noop registered
[    5.899721] io scheduler deadline registered (default)
[    5.899728] io scheduler cfq registered
[    5.899825] pcieport 0000:00:01.0: irq 40 for MSI/MSI-X
[    5.899996] pci_hotplug: PCI Hot Plug PCI Core version: 0.5
[    5.900009] pciehp: PCI Express Hot Plug Controller Driver version: 0.4
[    5.900045] intel_idle: MWAIT substates: 0x21120
[    5.900046] intel_idle: v0.4 model 0x2A
[    5.900048] intel_idle: lapic_timer_reliable_states 0xffffffff
[    5.900224] ACPI: AC Adapter [AC0] (on-line)
[    5.900314] input: Lid Switch as /devices/LNXSYSTM:00/LNXSYBUS:00/PNP0C0D:00/input/input0
[    5.915727] ACPI: Lid Switch [LID]
[    5.915762] input: Sleep Button as /devices/LNXSYSTM:00/LNXSYBUS:00/PNP0C0E:00/input/input1
[    5.915767] ACPI: Sleep Button [SLPB]
[    5.915795] input: Power Button as /devices/LNXSYSTM:00/LNXPWRBN:00/input/input2
[    5.915797] ACPI: Power Button [PWRF]
[    5.915864] ACPI: Requesting acpi_cpufreq
[    6.021054] thermal LNXTHERM:00: registered as thermal_zone0
[    6.021057] ACPI: Thermal Zone [THRM] (60 C)
[    6.021083] GHES: HEST is not enabled!
[    6.021153] Serial: 8250/16550 driver, 32 ports, IRQ sharing enabled
[    6.022496] Linux agpgart interface v0.103
[    6.023722] brd: module loaded
[    6.024345] loop: module loaded
[    6.024621] libphy: Fixed MDIO Bus: probed
[    6.024671] tun: Universal TUN/TAP device driver, 1.6
[    6.024672] tun: (C) 1999-2004 Max Krasnyansky &amp;lt;maxk&amp;lt; at &amp;gt;qualcomm.com&amp;gt;
[    6.024707] PPP generic driver version 2.4.2
[    6.024752] ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver
[    6.024753] ehci-pci: EHCI PCI platform driver
[    6.024791] ehci-pci 0000:00:1a.0: setting latency timer to 64
[    6.024794] ehci-pci 0000:00:1a.0: EHCI Host Controller
[    6.024800] ehci-pci 0000:00:1a.0: new USB bus registered, assigned bus number 1
[    6.024815] ehci-pci 0000:00:1a.0: debug port 2
[    6.028712] ehci-pci 0000:00:1a.0: cache line size of 64 is not supported
[    6.028728] ehci-pci 0000:00:1a.0: irq 16, io mem 0xdf608000
[    6.033796] ACPI: Battery Slot [BAT0] (battery present)
[    6.039371] ehci-pci 0000:00:1a.0: USB 2.0 started, EHCI 1.00
[    6.039422] usb usb1: New USB device found, idVendor=1d6b, idProduct=0002
[    6.039428] usb usb1: New USB device strings: Mfr=3, Product=2, SerialNumber=1
[    6.039433] usb usb1: Product: EHCI Host Controller
[    6.039438] usb usb1: Manufacturer: Linux 3.8.0-19-generic ehci_hcd
[    6.039443] usb usb1: SerialNumber: 0000:00:1a.0
[    6.039558] hub 1-0:1.0: USB hub found
[    6.039562] hub 1-0:1.0: 2 ports detected
[    6.039644] ehci-pci 0000:00:1d.0: setting latency timer to 64
[    6.039648] ehci-pci 0000:00:1d.0: EHCI Host Controller
[    6.039655] ehci-pci 0000:00:1d.0: new USB bus registered, assigned bus number 2
[    6.039668] ehci-pci 0000:00:1d.0: debug port 2
[    6.043548] ehci-pci 0000:00:1d.0: cache line size of 64 is not supported
[    6.043562] ehci-pci 0000:00:1d.0: irq 23, io mem 0xdf607000
[    6.055341] ehci-pci 0000:00:1d.0: USB 2.0 started, EHCI 1.00
[    6.055373] usb usb2: New USB device found, idVendor=1d6b, idProduct=0002
[    6.055378] usb usb2: New USB device strings: Mfr=3, Product=2, SerialNumber=1
[    6.055383] usb usb2: Product: EHCI Host Controller
[    6.055388] usb usb2: Manufacturer: Linux 3.8.0-19-generic ehci_hcd
[    6.055393] usb usb2: SerialNumber: 0000:00:1d.0
[    6.055509] hub 2-0:1.0: USB hub found
[    6.055513] hub 2-0:1.0: 2 ports detected
[    6.055571] ehci-platform: EHCI generic platform driver
[    6.055577] ohci_hcd: USB 1.1 'Open' Host Controller (OHCI) Driver
[    6.055588] uhci_hcd: USB Universal Host Controller Interface driver
[    6.055641] i8042: PNP: PS/2 Controller [PNP0303:PS2K,PNP0f13:PS2M] at 0x60,0x64 irq 1,12
[    6.057308] i8042: Detected active multiplexing controller, rev 1.1
[    6.058091] serio: i8042 KBD port at 0x60,0x64 irq 1
[    6.058096] serio: i8042 AUX0 port at 0x60,0x64 irq 12
[    6.058115] serio: i8042 AUX1 port at 0x60,0x64 irq 12
[    6.058131] serio: i8042 AUX2 port at 0x60,0x64 irq 12
[    6.058144] serio: i8042 AUX3 port at 0x60,0x64 irq 12
[    6.058224] mousedev: PS/2 mouse device common for all mice
[    6.058351] rtc_cmos 00:05: RTC can wake from S4
[    6.058469] rtc_cmos 00:05: rtc core: registered rtc_cmos as rtc0
[    6.058497] rtc0: alarms up to one year, y3k, 242 bytes nvram, hpet irqs
[    6.058575] device-mapper: uevent: version 1.0.3
[    6.058625] device-mapper: ioctl: 4.23.1-ioctl (2012-12-18) initialised: dm-devel&amp;lt; at &amp;gt;redhat.com
[    6.058695] cpuidle: using governor ladder
[    6.058783] cpuidle: using governor menu
[    6.058792] ledtrig-cpu: registered to indicate activity on CPUs
[    6.058793] EFI Variables Facility v0.08 2004-May-17
[    6.058946] ashmem: initialized
[    6.059056] TCP: cubic registered
[    6.059143] NET: Registered protocol family 10
[    6.059315] NET: Registered protocol family 17
[    6.059327] Key type dns_resolver registered
[    6.059535] Loading module verification certificates
[    6.060530] MODSIGN: Loaded cert 'Magrathea: Glacier signing key: d490763cc418e29de79f40a5aa7d97747ec8882c'
[    6.060540] registered taskstats version 1
[    6.062792] Key type trusted registered
[    6.064799] Key type encrypted registered
[    6.067121] rtc_cmos 00:05: setting system clock to 2013-05-16 22:43:02 UTC (1368744182)
[    6.067894] BIOS EDD facility v0.16 2004-Jun-25, 0 devices found
[    6.067897] EDD information not available.
[    6.069594] Freeing unused kernel memory: 992k freed
[    6.069716] Write protecting the kernel read-only data: 12288k
[    6.073219] Freeing unused kernel memory: 1176k freed
[    6.076377] Freeing unused kernel memory: 1080k freed
[    6.089612] udevd[111]: starting version 175
[    6.103352] input: AT Translated Set 2 keyboard as /devices/platform/i8042/serio0/input/input3
[    6.135981] Disabling lock debugging due to kernel taint
[    6.139841] ahci 0000:00:1f.2: version 3.0
[    6.139936] ahci 0000:00:1f.2: irq 41 for MSI/MSI-X
[    6.144855] [drm] Initialized drm 1.1.0 20060810
[    6.145223] wmi: Mapper loaded
[    6.155238] ahci 0000:00:1f.2: AHCI 0001.0300 32 slots 6 ports 6 Gbps 0x5 impl SATA mode
[    6.155245] ahci 0000:00:1f.2: flags: 64bit ncq sntf pm led clo pio slum part ems apst 
[    6.155253] ahci 0000:00:1f.2: setting latency timer to 64
[    6.164043] scsi0 : ahci
[    6.164145] scsi1 : ahci
[    6.164218] scsi2 : ahci
[    6.164286] scsi3 : ahci
[    6.164356] scsi4 : ahci
[    6.164424] scsi5 : ahci
[    6.164474] ata1: SATA max UDMA/133 abar m2048&amp;lt; at &amp;gt;0xdf606000 port 0xdf606100 irq 41
[    6.164477] ata2: DUMMY
[    6.164481] ata3: SATA max UDMA/133 abar m2048&amp;lt; at &amp;gt;0xdf606000 port 0xdf606200 irq 41
[    6.164483] ata4: DUMMY
[    6.164485] ata5: DUMMY
[    6.164487] ata6: DUMMY
[    6.176384] atl1c 0000:04:00.0: version 1.0.1.1-NAPI
[    6.180506] MXM: GUID detected in BIOS
[    6.180550] ACPI Error: Needed [Buffer/String/Package], found [Integer] ffff880141cd0090 (20121018/exresop-590)
[    6.180555] ACPI Exception: AE_AML_OPERAND_TYPE, While resolving operands for [OpcodeName unavailable] (20121018/dswexec-460)
[    6.180560] ACPI Error: Method parse/execution failed [\_SB_.PCI0.GFX0._DSM] (Node ffff880149a4abb8), AE_AML_OPERAND_TYPE (20121018/psparse-537)
[    6.180571] failed to evaluate _DSM: 12291
[    6.180659] ACPI Error: Needed [Buffer/String/Package], found [Integer] ffff880141cd0090 (20121018/exresop-590)
[    6.180662] ACPI Exception: AE_AML_OPERAND_TYPE, While resolving operands for [OpcodeName unavailable] (20121018/dswexec-460)
[    6.180666] ACPI Error: Method parse/execution failed [\_SB_.PCI0.GFX0._DSM] (Node ffff880149a4abb8), AE_AML_OPERAND_TYPE (20121018/psparse-537)
[    6.180672] ACPI Error: Method parse/execution failed [\_SB_.PCI0.PEG0.GFX0._DSM] (Node ffff880149a77230), AE_AML_OPERAND_TYPE (20121018/psparse-537)
[    6.180678] failed to evaluate _DSM: 12291
[    6.180742] VGA switcheroo: detected Optimus DSM method \_SB_.PCI0.PEG0.GFX0 handle
[    6.180766] nouveau 0000:01:00.0: enabling device (0004 -&amp;gt; 0007)
[    6.181194] nouveau  [  DEVICE][0000:01:00.0] BOOT0  : 0x0c1a00a1
[    6.181197] nouveau  [  DEVICE][0000:01:00.0] Chipset: GF108 (NVC1)
[    6.181199] nouveau  [  DEVICE][0000:01:00.0] Family : NVC0
[    6.184431] nouveau  [   VBIOS][0000:01:00.0] checking PRAMIN for image...
[    6.194149] nouveau  [   VBIOS][0000:01:00.0] ... signature not found
[    6.194152] nouveau  [   VBIOS][0000:01:00.0] checking PROM for image...
[    6.194224] nouveau  [   VBIOS][0000:01:00.0] ... signature not found
[    6.194228] nouveau  [   VBIOS][0000:01:00.0] checking ACPI for image...
[    6.320233] nouveau  [   VBIOS][0000:01:00.0] ... appears to be valid
[    6.320237] nouveau  [   VBIOS][0000:01:00.0] using image from ACPI
[    6.320367] nouveau  [   VBIOS][0000:01:00.0] BIT signature found
[    6.320371] nouveau  [   VBIOS][0000:01:00.0] version 70.08.4c.00.a5
[    6.320601] nouveau  [ DEVINIT][0000:01:00.0] adaptor not initialised
[    6.320603] nouveau  [   VBIOS][0000:01:00.0] running init tables
[    6.350916] usb 1-1: new high-speed USB device number 2 using ehci-pci
[    6.434873] nouveau  [     PFB][0000:01:00.0] RAM type: DDR3
[    6.434875] nouveau  [     PFB][0000:01:00.0] RAM size: 512 MiB
[    6.434877] nouveau  [     PFB][0000:01:00.0]    ZCOMP: 0 tags
[    6.467236] [TTM] Zone  kernel: Available graphics memory: 1978892 kiB
[    6.467239] [TTM] Initializing pool allocator
[    6.467243] [TTM] Initializing DMA pool allocator
[    6.469646] nouveau  [     DRM] VRAM: 512 MiB
[    6.469650] nouveau  [     DRM] GART: 512 MiB
[    6.469654] nouveau  [     DRM] BIT BIOS found
[    6.469657] nouveau  [     DRM] Bios version 70.08.4c.00
[    6.469660] nouveau  [     DRM] TMDS table version 2.0
[    6.469662] nouveau  [     DRM] DCB version 4.0
[    6.469664] nouveau  [     DRM] DCB outp 00: 02010300 00000000
[    6.469666] nouveau  [     DRM] DCB conn 00: 00000000
[    6.470527] [drm] Supports vblank timestamp caching Rev 1 (10.10.2010).
[    6.470528] [drm] No driver support for vblank timestamp query.
[    6.470651] nouveau  [     DRM] ACPI backlight interface available, not registering our own
[    6.470886] nouveau  [     DRM] 3 available performance level(s)
[    6.470890] nouveau  [     DRM] 0: core 50MHz shader 101MHz memory 135MHz voltage 830mV
[    6.470893] nouveau  [     DRM] 1: core 202MHz shader 405MHz memory 324MHz voltage 830mV
[    6.470895] nouveau  [     DRM] 3: core 672MHz shader 1344MHz memory 900MHz voltage 980mV
[    6.470898] nouveau  [     DRM] c: core 202MHz shader 405MHz memory 324MHz voltage 1000mV
[    6.476537] nouveau  [     DRM] MM: using COPY1 for buffer copies
[    6.477594] nouveau 0000:01:00.0: No connectors reported connected with modes
[    6.477596] [drm] Cannot find any crtc or sizes - going 1024x768
[    6.482710] ata3: SATA link up 1.5 Gbps (SStatus 113 SControl 300)
[    6.483123] usb 1-1: New USB device found, idVendor=8087, idProduct=0024
[    6.483126] usb 1-1: New USB device strings: Mfr=0, Product=0, SerialNumber=0
[    6.483386] hub 1-1:1.0: USB hub found
[    6.483468] hub 1-1:1.0: 6 ports detected
[    6.484120] ata3.00: ACPI cmd ef/10:06:00:00:00:a0 (SET FEATURES) succeeded
[    6.484123] ata3.00: ACPI cmd ef/10:03:00:00:00:a0 (SET FEATURES) filtered out
[    6.484519] ata3.00: ATAPI: SlimtypeDVD A  DS8A5SH, XAA2, max UDMA/100
[    6.486916] ata3.00: ACPI cmd ef/10:06:00:00:00:a0 (SET FEATURES) succeeded
[    6.486919] ata3.00: ACPI cmd ef/10:03:00:00:00:a0 (SET FEATURES) filtered out
[    6.487313] ata3.00: configured for UDMA/100
[    6.490721] ata1: SATA link up 3.0 Gbps (SStatus 123 SControl 300)
[    6.502227] ata1.00: ACPI cmd f5/00:00:00:00:00:a0 (SECURITY FREEZE LOCK) filtered out
[    6.511796] ata1.00: ACPI cmd ef/10:06:00:00:00:a0 (SET FEATURES) succeeded
[    6.511800] ata1.00: ACPI cmd ef/10:03:00:00:00:a0 (SET FEATURES) filtered out
[    6.514236] nouveau  [     DRM] allocated 1024x768 fb: 0x60000, bo ffff880148ddb400
[    6.516936] Console: switching to colour frame buffer device 128x48
[    6.518891] nouveau 0000:01:00.0: fb0: nouveaufb frame buffer device
[    6.518893] nouveau 0000:01:00.0: registered panic notifier
[    6.518898] [drm] Initialized nouveau 1.1.0 20120801 for 0000:01:00.0 on minor 0
[    6.519819] [drm] Memory usable by graphics device = 2048M
[    6.519828] i915 0000:00:02.0: setting latency timer to 64
[    6.570046] i915 0000:00:02.0: irq 42 for MSI/MSI-X
[    6.570056] [drm] Supports vblank timestamp caching Rev 1 (10.10.2010).
[    6.570057] [drm] Driver supports precise vblank timestamp query.
[    6.570239] vga_switcheroo: enabled
[    6.570266] vgaarb: device changed decodes: PCI:0000:01:00.0,olddecodes=io+mem,decodes=none:owns=none
[    6.570269] vgaarb: device changed decodes: PCI:0000:00:02.0,olddecodes=io+mem,decodes=none:owns=io+mem
[    6.594631] usb 2-1: new high-speed USB device number 2 using ehci-pci
[    6.726765] usb 2-1: New USB device found, idVendor=8087, idProduct=0024
[    6.726770] usb 2-1: New USB device strings: Mfr=0, Product=0, SerialNumber=0
[    6.727037] hub 2-1:1.0: USB hub found
[    6.727105] hub 2-1:1.0: 6 ports detected
[    6.792089] fbcon: inteldrmfb (fb1) is primary device
[    6.792090] fbcon: Remapping primary device, fb1, to tty 1-63
[    6.798401] usb 1-1.2: new high-speed USB device number 3 using ehci-pci
[    6.818369] ata1.00: ATA-8: ST9750423AS, 0001SDM1, max UDMA/133
[    6.818373] ata1.00: 1465149168 sectors, multi 16: LBA48 NCQ (depth 31/32)
[    6.819572] ata1.00: ACPI cmd f5/00:00:00:00:00:a0 (SECURITY FREEZE LOCK) filtered out
[    6.819824] ata1.00: ACPI cmd ef/10:06:00:00:00:a0 (SET FEATURES) succeeded
[    6.819829] ata1.00: ACPI cmd ef/10:03:00:00:00:a0 (SET FEATURES) filtered out
[    6.820679] ata1.00: configured for UDMA/133
[    6.820993] scsi 0:0:0:0: Direct-Access     ATA      ST9750423AS      0001 PQ: 0 ANSI: 5
[    6.821156] sd 0:0:0:0: [sda] 1465149168 512-byte logical blocks: (750 GB/698 GiB)
[    6.821158] sd 0:0:0:0: [sda] 4096-byte physical blocks
[    6.821162] sd 0:0:0:0: Attached scsi generic sg0 type 0
[    6.821282] sd 0:0:0:0: [sda] Write Protect is off
[    6.821284] sd 0:0:0:0: [sda] Mode Sense: 00 3a 00 00
[    6.821322] sd 0:0:0:0: [sda] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA
[    6.823860] scsi 2:0:0:0: CD-ROM            Slimtype DVD A  DS8A5SH   XAA2 PQ: 0 ANSI: 5
[    6.830287] sr0: scsi3-mmc drive: 31x/62x writer dvd-ram cd/rw xa/form2 cdda tray
[    6.830290] cdrom: Uniform CD-ROM driver Revision: 3.20
[    6.830505] sr 2:0:0:0: Attached scsi CD-ROM sr0
[    6.830600] sr 2:0:0:0: Attached scsi generic sg1 type 5
[    6.852380]  sda: sda1 sda2 sda3
[    6.852963] sd 0:0:0:0: [sda] Attached SCSI disk
[    6.862173] tsc: Refined TSC clocksource calibration: 2095.240 MHz
[    6.862181] Switching to clocksource tsc
[    7.022048] usb 1-1.2: New USB device found, idVendor=058f, idProduct=a014
[    7.022050] usb 1-1.2: New USB device strings: Mfr=3, Product=1, SerialNumber=0
[    7.022052] usb 1-1.2: Product: ASUS USB2.0 WebCam
[    7.022053] usb 1-1.2: Manufacturer: 04G6200086K1AN1A40008M0
[    7.735507] i915 0000:00:02.0: fb1: inteldrmfb frame buffer device
[    7.736462] ACPI Warning: _BQC returned an invalid level (20121018/video-494)
[    7.736765] acpi device:03: registered as cooling_device4
[    7.736787] ACPI: Video Device [GFX0] (multi-head: yes  rom: yes  post: no)
[    7.736830] input: Video Bus as /devices/LNXSYSTM:00/LNXSYBUS:00/PNP0A08:00/device:00/LNXVIDEO:00/input/input4
[    7.742032] ACPI Warning: _BQC returned an invalid level (20121018/video-494)
[    7.742327] acpi device:44: registered as cooling_device5
[    7.742706] ACPI: Video Device [GFX0] (multi-head: yes  rom: no  post: no)
[    7.742747] input: Video Bus as /devices/LNXSYSTM:00/LNXSYBUS:00/PNP0A08:00/LNXVIDEO:01/input/input5
[    7.742817] [drm] Initialized i915 1.6.0 20080730 for 0000:00:02.0 on minor 1
[    7.793000] [drm] Enabling RC6 states: RC6 on, RC6p off, RC6pp off
[    8.011990] xor: automatically using best checksumming function:
[    8.048347]    avx       : 15775.000 MB/sec
[    8.050625] device-mapper: dm-raid45: initialized v0.2594b
[    9.403999] ISO 9660 Extensions: Microsoft Joliet Level 3
[    9.409216] ISO 9660 Extensions: RRIP_1991A
[    9.676345] squashfs: version 4.0 (2009/01/31) Phillip Lougher
[   49.366426] IPv6: ADDRCONF(NETDEV_UP): eth0: link is not ready
[   49.798331] udevd[1283]: starting version 175
[   53.984677] init: avahi-cups-reload main process (1519) terminated with status 1
[   54.200269] init: failsafe main process (1500) killed by TERM signal
[   55.119955] device-mapper: multipath: version 1.5.1 loaded
[   55.247997] Bluetooth: Core ver 2.16
[   55.248021] NET: Registered protocol family 31
[   55.248022] Bluetooth: HCI device and connection manager initialized
[   55.248030] Bluetooth: HCI socket layer initialized
[   55.248032] Bluetooth: L2CAP socket layer initialized
[   55.248037] Bluetooth: SCO socket layer initialized
[   55.693037] microcode: CPU0 sig=0x206a7, pf=0x10, revision=0x14
[   55.777994] mei 0000:00:16.0: setting latency timer to 64
[   55.778078] mei 0000:00:16.0: irq 43 for MSI/MSI-X
[   56.104311] Bluetooth: RFCOMM TTY layer initialized
[   56.104325] Bluetooth: RFCOMM socket layer initialized
[   56.104328] Bluetooth: RFCOMM ver 1.11
[   56.433927] Linux video capture interface: v2.00
[   57.066565] ACPI Warning: 0x0000000000000428-0x000000000000042f SystemIO conflicts with Region \GPIS 1 (20121018/utaddress-251)
[   57.066574] ACPI Warning: 0x0000000000000428-0x000000000000042f SystemIO conflicts with Region \PMIO 2 (20121018/utaddress-251)
[   57.066580] ACPI: If an ACPI driver is available for this device, you should use it instead of the native driver
[   57.066586] ACPI Warning: 0x0000000000000540-0x000000000000054f SystemIO conflicts with Region \GPIO 1 (20121018/utaddress-251)
[   57.066590] ACPI Warning: 0x0000000000000540-0x000000000000054f SystemIO conflicts with Region \GP01 2 (20121018/utaddress-251)
[   57.066595] ACPI: If an ACPI driver is available for this device, you should use it instead of the native driver
[   57.066597] ACPI Warning: 0x0000000000000530-0x000000000000053f SystemIO conflicts with Region \GPIO 1 (20121018/utaddress-251)
[   57.066602] ACPI Warning: 0x0000000000000530-0x000000000000053f SystemIO conflicts with Region \GP01 2 (20121018/utaddress-251)
[   57.066607] ACPI: If an ACPI driver is available for this device, you should use it instead of the native driver
[   57.066609] ACPI Warning: 0x0000000000000500-0x000000000000052f SystemIO conflicts with Region \GPIO 1 (20121018/utaddress-251)
[   57.066614] ACPI Warning: 0x0000000000000500-0x000000000000052f SystemIO conflicts with Region \GP01 2 (20121018/utaddress-251)
[   57.066619] ACPI: If an ACPI driver is available for this device, you should use it instead of the native driver
[   57.066621] lpc_ich: Resource conflict(s) found affecting gpio_ich
[   57.287822] microcode: CPU1 sig=0x206a7, pf=0x10, revision=0x14
[   57.290514] microcode: CPU2 sig=0x206a7, pf=0x10, revision=0x14
[   57.292074] microcode: CPU3 sig=0x206a7, pf=0x10, revision=0x14
[   57.293558] microcode: Microcode Update Driver: v2.00 &amp;lt;tigran&amp;lt; at &amp;gt;aivazian.fsnet.co.uk&amp;gt;, Peter Oruba
[   57.280755] asus_wmi: ASUS WMI generic driver loaded
[   57.487374] asus_wmi: Initialization: 0x1asus_wmi: BIOS WMI version: 7.6
[   57.487482] asus_wmi: SFUN value: 0x1a0877&amp;lt;6&amp;gt;[   57.488365] input: Asus WMI hotkeys as /devices/platform/asus-nb-wmi/input/input6
[   57.591637] asus_wmi: Backlight controlled by ACPI video driver
[   57.779843] cfg80211: Calling CRDA to update world regulatory domain
[   57.881483] Bluetooth: BNEP (Ethernet Emulation) ver 1.3
[   57.881488] Bluetooth: BNEP filters: protocol multicast
[   57.881499] Bluetooth: BNEP socket layer initialized
[   57.882492] lp: driver loaded but no devices found
[   58.279383] psmouse serio4: synaptics: Touchpad model: 1, fw: 7.5, id: 0x1e0b1, caps: 0xd00073/0x240000/0xa0400, board id: 1704, fw id: 705499
[   58.311662] input: SynPS/2 Synaptics TouchPad as /devices/platform/i8042/serio4/input/input7
[   58.697198] uvcvideo: Found UVC 1.00 device ASUS USB2.0 WebCam (058f:a014)
[   58.700056] input: ASUS USB2.0 WebCam as /devices/pci0000:00/0000:00:1a.0/usb1/1-1/1-1.2/1-1.2:1.0/input/input8
[   58.700148] usbcore: registered new interface driver uvcvideo
[   58.700151] USB Video Class driver (1.1.1)
[   59.813411] ppdev: user-space parallel port driver
[   60.549062] cfg80211: World regulatory domain updated:
[   60.549068] cfg80211:   (start_freq - end_freq &amp;lt; at &amp;gt; bandwidth), (max_antenna_gain, max_eirp)
[   60.549072] cfg80211:   (2402000 KHz - 2472000 KHz &amp;lt; at &amp;gt; 40000 KHz), (300 mBi, 2000 mBm)
[   60.549075] cfg80211:   (2457000 KHz - 2482000 KHz &amp;lt; at &amp;gt; 20000 KHz), (300 mBi, 2000 mBm)
[   60.549078] cfg80211:   (2474000 KHz - 2494000 KHz &amp;lt; at &amp;gt; 20000 KHz), (300 mBi, 2000 mBm)
[   60.549081] cfg80211:   (5170000 KHz - 5250000 KHz &amp;lt; at &amp;gt; 40000 KHz), (300 mBi, 2000 mBm)
[   60.549083] cfg80211:   (5735000 KHz - 5835000 KHz &amp;lt; at &amp;gt; 40000 KHz), (300 mBi, 2000 mBm)
[   61.368598] ath: phy0: ASPM enabled: 0x42
[   61.368602] ath: EEPROM regdomain: 0x60
[   61.368604] ath: EEPROM indicates we should expect a direct regpair map
[   61.368607] ath: Country alpha2 being used: 00
[   61.368608] ath: Regpair used: 0x60
[   62.333171] ieee80211 phy0: Selected rate control algorithm 'ath9k_rate_control'
[   62.333635] ieee80211 phy0: Atheros AR9285 Rev:2 mem=0xffffc90004aa0000, irq=17
[   64.761201] snd_hda_intel 0000:00:1b.0: irq 44 for MSI/MSI-X
[   66.292782] input: HDA Intel PCH HDMI/DP,pcm=3 as /devices/pci0000:00/0000:00:1b.0/sound/card0/input9
[   66.292966] input: HDA Intel PCH Mic as /devices/pci0000:00/0000:00:1b.0/sound/card0/input10
[   66.293049] input: HDA Intel PCH Headphone as /devices/pci0000:00/0000:00:1b.0/sound/card0/input11
[   69.995290] IPv6: ADDRCONF(NETDEV_UP): wlan0: link is not ready
[   70.000862] IPv6: ADDRCONF(NETDEV_UP): wlan0: link is not ready
[   70.011610] atl1c 0000:04:00.0: irq 45 for MSI/MSI-X
[   70.033677] IPv6: ADDRCONF(NETDEV_UP): eth0: link is not ready
[   70.053422] IPv6: ADDRCONF(NETDEV_UP): eth0: link is not ready
[  418.414325] SGI XFS with ACLs, security attributes, realtime, large block/inode numbers, no debug enabled
[  418.428026] XFS (sda3): Mounting Filesystem
[  418.511943] XFS (sda3): Starting recovery (logdev: internal)
[  425.070536] XFS: Internal error XFS_WANT_CORRUPTED_GOTO at line 1557 of file /build/buildd/linux-3.8.0/fs/xfs/xfs_alloc.c.  Caller 0xffffffffa06dae36
[  425.070536] 
[  425.070552] Pid: 5671, comm: mount Tainted: GF            3.8.0-19-generic #29-Ubuntu
[  425.070556] Call Trace:
[  425.070605]  [&amp;lt;ffffffffa06c311c&amp;gt;] xfs_error_report+0x3c/0x40 [xfs]
[  425.070646]  [&amp;lt;ffffffffa06dae36&amp;gt;] ? xfs_free_extent+0xd6/0x120 [xfs]
[  425.070682]  [&amp;lt;ffffffffa06d8556&amp;gt;] xfs_free_ag_extent+0x2d6/0x740 [xfs]
[  425.070717]  [&amp;lt;ffffffffa06dae36&amp;gt;] xfs_free_extent+0xd6/0x120 [xfs]
[  425.070751]  [&amp;lt;ffffffffa06d7137&amp;gt;] ? kmem_zone_alloc+0x67/0xe0 [xfs]
[  425.070797]  [&amp;lt;ffffffffa0709b50&amp;gt;] xlog_recover_process_efi+0x170/0x1b0 [xfs]
[  425.070830]  [&amp;lt;ffffffffa06c904f&amp;gt;] ? xfs_iget+0x36f/0x690 [xfs]
[  425.070869]  [&amp;lt;ffffffffa070b376&amp;gt;] xlog_recover_process_efis.isra.8+0x66/0xc0 [xfs]
[  425.070908]  [&amp;lt;ffffffffa070e91a&amp;gt;] xlog_recover_finish+0x2a/0xd0 [xfs]
[  425.070951]  [&amp;lt;ffffffffa0715e54&amp;gt;] xfs_log_mount_finish+0x34/0x50 [xfs]
[  425.070991]  [&amp;lt;ffffffffa071145d&amp;gt;] xfs_mountfs+0x42d/0x690 [xfs]
[  425.071026]  [&amp;lt;ffffffffa06d2c6f&amp;gt;] xfs_fs_fill_super+0x2bf/0x340 [xfs]
[  425.071037]  [&amp;lt;ffffffff81196ebd&amp;gt;] mount_bdev+0x1cd/0x210
[  425.071070]  [&amp;lt;ffffffffa06d29b0&amp;gt;] ? xfs_parseargs+0xc10/0xc10 [xfs]
[  425.071103]  [&amp;lt;ffffffffa06d0ec5&amp;gt;] xfs_fs_mount+0x15/0x20 [xfs]
[  425.071110]  [&amp;lt;ffffffff81197bf3&amp;gt;] mount_fs+0x43/0x1b0
[  425.071119]  [&amp;lt;ffffffff811b2407&amp;gt;] ? alloc_vfsmnt+0xd7/0x1b0
[  425.071127]  [&amp;lt;ffffffff811b2594&amp;gt;] vfs_kern_mount+0x74/0x110
[  425.071135]  [&amp;lt;ffffffff811b490f&amp;gt;] do_mount+0x21f/0xac0
[  425.071145]  [&amp;lt;ffffffff8114a41b&amp;gt;] ? strndup_user+0x5b/0x80
[  425.071153]  [&amp;lt;ffffffff811b523e&amp;gt;] sys_mount+0x8e/0xe0
[  425.071165]  [&amp;lt;ffffffff816d379d&amp;gt;] system_call_fastpath+0x1a/0x1f
[  425.071189] XFS (sda3): Failed to recover EFIs
[  425.071194] XFS (sda3): log mount finish failed
[  605.003453] INFO: task mount:5671 blocked for more than 120 seconds.
[  605.003463] "echo 0 &amp;gt; /proc/sys/kernel/hung_task_timeout_secs" disables this message.
[  605.003467] mount           D ffff88014fa53f40     0  5671   5670 0x00000000
[  605.003477]  ffff88007f931c80 0000000000000082 ffff880146265d00 ffff88007f931fd8
[  605.003486]  ffff88007f931fd8 ffff88007f931fd8 ffff880149b5ae80 ffff880146265d00
[  605.003493]  ffff88007fa336c0 ffff88007fa33680 ffff88007fa33690 ffff88007fa336e8
[  605.003501] Call Trace:
[  605.003518]  [&amp;lt;ffffffff816c9fd9&amp;gt;] schedule+0x29/0x70
[  605.003577]  [&amp;lt;ffffffffa071be0d&amp;gt;] xfs_ail_push_all_sync+0xbd/0x100 [xfs]
[  605.003587]  [&amp;lt;ffffffff8107dbf0&amp;gt;] ? finish_wait+0x80/0x80
[  605.003634]  [&amp;lt;ffffffffa0717e43&amp;gt;] xfs_log_quiesce+0x33/0x70 [xfs]
[  605.003673]  [&amp;lt;ffffffffa0717e92&amp;gt;] xfs_log_unmount+0x12/0x30 [xfs]
[  605.003714]  [&amp;lt;ffffffffa0711543&amp;gt;] xfs_mountfs+0x513/0x690 [xfs]
[  605.003747]  [&amp;lt;ffffffffa06d2c6f&amp;gt;] xfs_fs_fill_super+0x2bf/0x340 [xfs]
[  605.003756]  [&amp;lt;ffffffff81196ebd&amp;gt;] mount_bdev+0x1cd/0x210
[  605.003788]  [&amp;lt;ffffffffa06d29b0&amp;gt;] ? xfs_parseargs+0xc10/0xc10 [xfs]
[  605.003820]  [&amp;lt;ffffffffa06d0ec5&amp;gt;] xfs_fs_mount+0x15/0x20 [xfs]
[  605.003827]  [&amp;lt;ffffffff81197bf3&amp;gt;] mount_fs+0x43/0x1b0
[  605.003835]  [&amp;lt;ffffffff811b2407&amp;gt;] ? alloc_vfsmnt+0xd7/0x1b0
[  605.003843]  [&amp;lt;ffffffff811b2594&amp;gt;] vfs_kern_mount+0x74/0x110
[  605.003851]  [&amp;lt;ffffffff811b490f&amp;gt;] do_mount+0x21f/0xac0
[  605.003861]  [&amp;lt;ffffffff8114a41b&amp;gt;] ? strndup_user+0x5b/0x80
[  605.003869]  [&amp;lt;ffffffff811b523e&amp;gt;] sys_mount+0x8e/0xe0
[  605.003879]  [&amp;lt;ffffffff816d379d&amp;gt;] system_call_fastpath+0x1a/0x1f
[  620.277373] wlan0: authenticate with f8:d1:11:2e:02:64
[  620.289655] wlan0: send auth to f8:d1:11:2e:02:64 (try 1/3)
[  620.291516] wlan0: authenticated
[  620.292526] wlan0: associate with f8:d1:11:2e:02:64 (try 1/3)
[  620.296584] wlan0: RX AssocResp from f8:d1:11:2e:02:64 (capab=0x431 status=0 aid=2)
[  620.296635] wlan0: associated
[  620.296642] IPv6: ADDRCONF(NETDEV_CHANGE): wlan0: link becomes ready
[  724.824941] INFO: task mount:5671 blocked for more than 120 seconds.
[  724.824951] "echo 0 &amp;gt; /proc/sys/kernel/hung_task_timeout_secs" disables this message.
[  724.824955] mount           D ffff88014fa53f40     0  5671   5670 0x00000000
[  724.824965]  ffff88007f931c80 0000000000000082 ffff880146265d00 ffff88007f931fd8
[  724.824975]  ffff88007f931fd8 ffff88007f931fd8 ffff880149b5ae80 ffff880146265d00
[  724.824982]  ffff88007fa336c0 ffff88007fa33680 ffff88007fa33690 ffff88007fa336e8
[  724.824990] Call Trace:
[  724.825009]  [&amp;lt;ffffffff816c9fd9&amp;gt;] schedule+0x29/0x70
[  724.825070]  [&amp;lt;ffffffffa071be0d&amp;gt;] xfs_ail_push_all_sync+0xbd/0x100 [xfs]
[  724.825078]  [&amp;lt;ffffffff8107dbf0&amp;gt;] ? finish_wait+0x80/0x80
[  724.825124]  [&amp;lt;ffffffffa0717e43&amp;gt;] xfs_log_quiesce+0x33/0x70 [xfs]
[  724.825163]  [&amp;lt;ffffffffa0717e92&amp;gt;] xfs_log_unmount+0x12/0x30 [xfs]
[  724.825203]  [&amp;lt;ffffffffa0711543&amp;gt;] xfs_mountfs+0x513/0x690 [xfs]
[  724.825237]  [&amp;lt;ffffffffa06d2c6f&amp;gt;] xfs_fs_fill_super+0x2bf/0x340 [xfs]
[  724.825246]  [&amp;lt;ffffffff81196ebd&amp;gt;] mount_bdev+0x1cd/0x210
[  724.825278]  [&amp;lt;ffffffffa06d29b0&amp;gt;] ? xfs_parseargs+0xc10/0xc10 [xfs]
[  724.825309]  [&amp;lt;ffffffffa06d0ec5&amp;gt;] xfs_fs_mount+0x15/0x20 [xfs]
[  724.825316]  [&amp;lt;ffffffff81197bf3&amp;gt;] mount_fs+0x43/0x1b0
[  724.825325]  [&amp;lt;ffffffff811b2407&amp;gt;] ? alloc_vfsmnt+0xd7/0x1b0
[  724.825332]  [&amp;lt;ffffffff811b2594&amp;gt;] vfs_kern_mount+0x74/0x110
[  724.825340]  [&amp;lt;ffffffff811b490f&amp;gt;] do_mount+0x21f/0xac0
[  724.825351]  [&amp;lt;ffffffff8114a41b&amp;gt;] ? strndup_user+0x5b/0x80
[  724.825359]  [&amp;lt;ffffffff811b523e&amp;gt;] sys_mount+0x8e/0xe0
[  724.825368]  [&amp;lt;ffffffff816d379d&amp;gt;] system_call_fastpath+0x1a/0x1f
[  844.646553] INFO: task mount:5671 blocked for more than 120 seconds.
[  844.646562] "echo 0 &amp;gt; /proc/sys/kernel/hung_task_timeout_secs" disables this message.
[  844.646567] mount           D ffff88014fa53f40     0  5671   5670 0x00000000
[  844.646577]  ffff88007f931c80 0000000000000082 ffff880146265d00 ffff88007f931fd8
[  844.646587]  ffff88007f931fd8 ffff88007f931fd8 ffff880149b5ae80 ffff880146265d00
[  844.646594]  ffff88007fa336c0 ffff88007fa33680 ffff88007fa33690 ffff88007fa336e8
[  844.646602] Call Trace:
[  844.646620]  [&amp;lt;ffffffff816c9fd9&amp;gt;] schedule+0x29/0x70
[  844.646680]  [&amp;lt;ffffffffa071be0d&amp;gt;] xfs_ail_push_all_sync+0xbd/0x100 [xfs]
[  844.646689]  [&amp;lt;ffffffff8107dbf0&amp;gt;] ? finish_wait+0x80/0x80
[  844.646735]  [&amp;lt;ffffffffa0717e43&amp;gt;] xfs_log_quiesce+0x33/0x70 [xfs]
[  844.646775]  [&amp;lt;ffffffffa0717e92&amp;gt;] xfs_log_unmount+0x12/0x30 [xfs]
[  844.646816]  [&amp;lt;ffffffffa0711543&amp;gt;] xfs_mountfs+0x513/0x690 [xfs]
[  844.646850]  [&amp;lt;ffffffffa06d2c6f&amp;gt;] xfs_fs_fill_super+0x2bf/0x340 [xfs]
[  844.646858]  [&amp;lt;ffffffff81196ebd&amp;gt;] mount_bdev+0x1cd/0x210
[  844.646890]  [&amp;lt;ffffffffa06d29b0&amp;gt;] ? xfs_parseargs+0xc10/0xc10 [xfs]
[  844.646921]  [&amp;lt;ffffffffa06d0ec5&amp;gt;] xfs_fs_mount+0x15/0x20 [xfs]
[  844.646928]  [&amp;lt;ffffffff81197bf3&amp;gt;] mount_fs+0x43/0x1b0
[  844.646936]  [&amp;lt;ffffffff811b2407&amp;gt;] ? alloc_vfsmnt+0xd7/0x1b0
[  844.646944]  [&amp;lt;ffffffff811b2594&amp;gt;] vfs_kern_mount+0x74/0x110
[  844.646952]  [&amp;lt;ffffffff811b490f&amp;gt;] do_mount+0x21f/0xac0
[  844.646962]  [&amp;lt;ffffffff8114a41b&amp;gt;] ? strndup_user+0x5b/0x80
[  844.646970]  [&amp;lt;ffffffff811b523e&amp;gt;] sys_mount+0x8e/0xe0
[  844.646981]  [&amp;lt;ffffffff816d379d&amp;gt;] system_call_fastpath+0x1a/0x1f
[  964.468089] INFO: task mount:5671 blocked for more than 120 seconds.
[  964.468098] "echo 0 &amp;gt; /proc/sys/kernel/hung_task_timeout_secs" disables this message.
[  964.468102] mount           D ffff88014fa53f40     0  5671   5670 0x00000000
[  964.468112]  ffff88007f931c80 0000000000000082 ffff880146265d00 ffff88007f931fd8
[  964.468121]  ffff88007f931fd8 ffff88007f931fd8 ffff880149b5ae80 ffff880146265d00
[  964.468129]  ffff88007fa336c0 ffff88007fa33680 ffff88007fa33690 ffff88007fa336e8
[  964.468136] Call Trace:
[  964.468153]  [&amp;lt;ffffffff816c9fd9&amp;gt;] schedule+0x29/0x70
[  964.468213]  [&amp;lt;ffffffffa071be0d&amp;gt;] xfs_ail_push_all_sync+0xbd/0x100 [xfs]
[  964.468222]  [&amp;lt;ffffffff8107dbf0&amp;gt;] ? finish_wait+0x80/0x80
[  964.468269]  [&amp;lt;ffffffffa0717e43&amp;gt;] xfs_log_quiesce+0x33/0x70 [xfs]
[  964.468308]  [&amp;lt;ffffffffa0717e92&amp;gt;] xfs_log_unmount+0x12/0x30 [xfs]
[  964.468349]  [&amp;lt;ffffffffa0711543&amp;gt;] xfs_mountfs+0x513/0x690 [xfs]
[  964.468382]  [&amp;lt;ffffffffa06d2c6f&amp;gt;] xfs_fs_fill_super+0x2bf/0x340 [xfs]
[  964.468392]  [&amp;lt;ffffffff81196ebd&amp;gt;] mount_bdev+0x1cd/0x210
[  964.468424]  [&amp;lt;ffffffffa06d29b0&amp;gt;] ? xfs_parseargs+0xc10/0xc10 [xfs]
[  964.468455]  [&amp;lt;ffffffffa06d0ec5&amp;gt;] xfs_fs_mount+0x15/0x20 [xfs]
[  964.468463]  [&amp;lt;ffffffff81197bf3&amp;gt;] mount_fs+0x43/0x1b0
[  964.468471]  [&amp;lt;ffffffff811b2407&amp;gt;] ? alloc_vfsmnt+0xd7/0x1b0
[  964.468479]  [&amp;lt;ffffffff811b2594&amp;gt;] vfs_kern_mount+0x74/0x110
[  964.468486]  [&amp;lt;ffffffff811b490f&amp;gt;] do_mount+0x21f/0xac0
[  964.468496]  [&amp;lt;ffffffff8114a41b&amp;gt;] ? strndup_user+0x5b/0x80
[  964.468504]  [&amp;lt;ffffffff811b523e&amp;gt;] sys_mount+0x8e/0xe0
[  964.468514]  [&amp;lt;ffffffff816d379d&amp;gt;] system_call_fastpath+0x1a/0x1f
[ 1084.289636] INFO: task mount:5671 blocked for more than 120 seconds.
[ 1084.289652] "echo 0 &amp;gt; /proc/sys/kernel/hung_task_timeout_secs" disables this message.
[ 1084.289660] mount           D ffff88014fa53f40     0  5671   5670 0x00000000
[ 1084.289673]  ffff88007f931c80 0000000000000082 ffff880146265d00 ffff88007f931fd8
[ 1084.289687]  ffff88007f931fd8 ffff88007f931fd8 ffff880149b5ae80 ffff880146265d00
[ 1084.289699]  ffff88007fa336c0 ffff88007fa33680 ffff88007fa33690 ffff88007fa336e8
[ 1084.289712] Call Trace:
[ 1084.289736]  [&amp;lt;ffffffff816c9fd9&amp;gt;] schedule+0x29/0x70
[ 1084.289796]  [&amp;lt;ffffffffa071be0d&amp;gt;] xfs_ail_push_all_sync+0xbd/0x100 [xfs]
[ 1084.289805]  [&amp;lt;ffffffff8107dbf0&amp;gt;] ? finish_wait+0x80/0x80
[ 1084.289854]  [&amp;lt;ffffffffa0717e43&amp;gt;] xfs_log_quiesce+0x33/0x70 [xfs]
[ 1084.289896]  [&amp;lt;ffffffffa0717e92&amp;gt;] xfs_log_unmount+0x12/0x30 [xfs]
[ 1084.289937]  [&amp;lt;ffffffffa0711543&amp;gt;] xfs_mountfs+0x513/0x690 [xfs]
[ 1084.289971]  [&amp;lt;ffffffffa06d2c6f&amp;gt;] xfs_fs_fill_super+0x2bf/0x340 [xfs]
[ 1084.289982]  [&amp;lt;ffffffff81196ebd&amp;gt;] mount_bdev+0x1cd/0x210
[ 1084.290019]  [&amp;lt;ffffffffa06d29b0&amp;gt;] ? xfs_parseargs+0xc10/0xc10 [xfs]
[ 1084.290050]  [&amp;lt;ffffffffa06d0ec5&amp;gt;] xfs_fs_mount+0x15/0x20 [xfs]
[ 1084.290058]  [&amp;lt;ffffffff81197bf3&amp;gt;] mount_fs+0x43/0x1b0
[ 1084.290066]  [&amp;lt;ffffffff811b2407&amp;gt;] ? alloc_vfsmnt+0xd7/0x1b0
[ 1084.290074]  [&amp;lt;ffffffff811b2594&amp;gt;] vfs_kern_mount+0x74/0x110
[ 1084.290082]  [&amp;lt;ffffffff811b490f&amp;gt;] do_mount+0x21f/0xac0
[ 1084.290093]  [&amp;lt;ffffffff8114a41b&amp;gt;] ? strndup_user+0x5b/0x80
[ 1084.290101]  [&amp;lt;ffffffff811b523e&amp;gt;] sys_mount+0x8e/0xe0
[ 1084.290111]  [&amp;lt;ffffffff816d379d&amp;gt;] system_call_fastpath+0x1a/0x1f
[ 1204.111179] INFO: task mount:5671 blocked for more than 120 seconds.
[ 1204.111188] "echo 0 &amp;gt; /proc/sys/kernel/hung_task_timeout_secs" disables this message.
[ 1204.111193] mount           D ffff88014fa53f40     0  5671   5670 0x00000000
[ 1204.111203]  ffff88007f931c80 0000000000000082 ffff880146265d00 ffff88007f931fd8
[ 1204.111212]  ffff88007f931fd8 ffff88007f931fd8 ffff880149b5ae80 ffff880146265d00
[ 1204.111219]  ffff88007fa336c0 ffff88007fa33680 ffff88007fa33690 ffff88007fa336e8
[ 1204.111226] Call Trace:
[ 1204.111244]  [&amp;lt;ffffffff816c9fd9&amp;gt;] schedule+0x29/0x70
[ 1204.111303]  [&amp;lt;ffffffffa071be0d&amp;gt;] xfs_ail_push_all_sync+0xbd/0x100 [xfs]
[ 1204.111312]  [&amp;lt;ffffffff8107dbf0&amp;gt;] ? finish_wait+0x80/0x80
[ 1204.111358]  [&amp;lt;ffffffffa0717e43&amp;gt;] xfs_log_quiesce+0x33/0x70 [xfs]
[ 1204.111398]  [&amp;lt;ffffffffa0717e92&amp;gt;] xfs_log_unmount+0x12/0x30 [xfs]
[ 1204.111439]  [&amp;lt;ffffffffa0711543&amp;gt;] xfs_mountfs+0x513/0x690 [xfs]
[ 1204.111472]  [&amp;lt;ffffffffa06d2c6f&amp;gt;] xfs_fs_fill_super+0x2bf/0x340 [xfs]
[ 1204.111482]  [&amp;lt;ffffffff81196ebd&amp;gt;] mount_bdev+0x1cd/0x210
[ 1204.111514]  [&amp;lt;ffffffffa06d29b0&amp;gt;] ? xfs_parseargs+0xc10/0xc10 [xfs]
[ 1204.111545]  [&amp;lt;ffffffffa06d0ec5&amp;gt;] xfs_fs_mount+0x15/0x20 [xfs]
[ 1204.111553]  [&amp;lt;ffffffff81197bf3&amp;gt;] mount_fs+0x43/0x1b0
[ 1204.111561]  [&amp;lt;ffffffff811b2407&amp;gt;] ? alloc_vfsmnt+0xd7/0x1b0
[ 1204.111569]  [&amp;lt;ffffffff811b2594&amp;gt;] vfs_kern_mount+0x74/0x110
[ 1204.111577]  [&amp;lt;ffffffff811b490f&amp;gt;] do_mount+0x21f/0xac0
[ 1204.111587]  [&amp;lt;ffffffff8114a41b&amp;gt;] ? strndup_user+0x5b/0x80
[ 1204.111594]  [&amp;lt;ffffffff811b523e&amp;gt;] sys_mount+0x8e/0xe0
[ 1204.111604]  [&amp;lt;ffffffff816d379d&amp;gt;] system_call_fastpath+0x1a/0x1f
[ 1323.932739] INFO: task mount:5671 blocked for more than 120 seconds.
[ 1323.932748] "echo 0 &amp;gt; /proc/sys/kernel/hung_task_timeout_secs" disables this message.
[ 1323.932753] mount           D ffff88014fa53f40     0  5671   5670 0x00000000
[ 1323.932763]  ffff88007f931c80 0000000000000082 ffff880146265d00 ffff88007f931fd8
[ 1323.932772]  ffff88007f931fd8 ffff88007f931fd8 ffff880149b5ae80 ffff880146265d00
[ 1323.932779]  ffff88007fa336c0 ffff88007fa33680 ffff88007fa33690 ffff88007fa336e8
[ 1323.932787] Call Trace:
[ 1323.932805]  [&amp;lt;ffffffff816c9fd9&amp;gt;] schedule+0x29/0x70
[ 1323.932865]  [&amp;lt;ffffffffa071be0d&amp;gt;] xfs_ail_push_all_sync+0xbd/0x100 [xfs]
[ 1323.932874]  [&amp;lt;ffffffff8107dbf0&amp;gt;] ? finish_wait+0x80/0x80
[ 1323.932920]  [&amp;lt;ffffffffa0717e43&amp;gt;] xfs_log_quiesce+0x33/0x70 [xfs]
[ 1323.932960]  [&amp;lt;ffffffffa0717e92&amp;gt;] xfs_log_unmount+0x12/0x30 [xfs]
[ 1323.933001]  [&amp;lt;ffffffffa0711543&amp;gt;] xfs_mountfs+0x513/0x690 [xfs]
[ 1323.933035]  [&amp;lt;ffffffffa06d2c6f&amp;gt;] xfs_fs_fill_super+0x2bf/0x340 [xfs]
[ 1323.933044]  [&amp;lt;ffffffff81196ebd&amp;gt;] mount_bdev+0x1cd/0x210
[ 1323.933075]  [&amp;lt;ffffffffa06d29b0&amp;gt;] ? xfs_parseargs+0xc10/0xc10 [xfs]
[ 1323.933107]  [&amp;lt;ffffffffa06d0ec5&amp;gt;] xfs_fs_mount+0x15/0x20 [xfs]
[ 1323.933114]  [&amp;lt;ffffffff81197bf3&amp;gt;] mount_fs+0x43/0x1b0
[ 1323.933122]  [&amp;lt;ffffffff811b2407&amp;gt;] ? alloc_vfsmnt+0xd7/0x1b0
[ 1323.933130]  [&amp;lt;ffffffff811b2594&amp;gt;] vfs_kern_mount+0x74/0x110
[ 1323.933138]  [&amp;lt;ffffffff811b490f&amp;gt;] do_mount+0x21f/0xac0
[ 1323.933148]  [&amp;lt;ffffffff8114a41b&amp;gt;] ? strndup_user+0x5b/0x80
[ 1323.933156]  [&amp;lt;ffffffff811b523e&amp;gt;] sys_mount+0x8e/0xe0
[ 1323.933166]  [&amp;lt;ffffffff816d379d&amp;gt;] system_call_fastpath+0x1a/0x1f
[ 1443.754237] INFO: task mount:5671 blocked for more than 120 seconds.
[ 1443.754246] "echo 0 &amp;gt; /proc/sys/kernel/hung_task_timeout_secs" disables this message.
[ 1443.754251] mount           D ffff88014fa53f40     0  5671   5670 0x00000000
[ 1443.754260]  ffff88007f931c80 0000000000000082 ffff880146265d00 ffff88007f931fd8
[ 1443.754269]  ffff88007f931fd8 ffff88007f931fd8 ffff880149b5ae80 ffff880146265d00
[ 1443.754277]  ffff88007fa336c0 ffff88007fa33680 ffff88007fa33690 ffff88007fa336e8
[ 1443.754284] Call Trace:
[ 1443.754302]  [&amp;lt;ffffffff816c9fd9&amp;gt;] schedule+0x29/0x70
[ 1443.754365]  [&amp;lt;ffffffffa071be0d&amp;gt;] xfs_ail_push_all_sync+0xbd/0x100 [xfs]
[ 1443.754374]  [&amp;lt;ffffffff8107dbf0&amp;gt;] ? finish_wait+0x80/0x80
[ 1443.754422]  [&amp;lt;ffffffffa0717e43&amp;gt;] xfs_log_quiesce+0x33/0x70 [xfs]
[ 1443.754462]  [&amp;lt;ffffffffa0717e92&amp;gt;] xfs_log_unmount+0x12/0x30 [xfs]
[ 1443.754503]  [&amp;lt;ffffffffa0711543&amp;gt;] xfs_mountfs+0x513/0x690 [xfs]
[ 1443.754537]  [&amp;lt;ffffffffa06d2c6f&amp;gt;] xfs_fs_fill_super+0x2bf/0x340 [xfs]
[ 1443.754546]  [&amp;lt;ffffffff81196ebd&amp;gt;] mount_bdev+0x1cd/0x210
[ 1443.754578]  [&amp;lt;ffffffffa06d29b0&amp;gt;] ? xfs_parseargs+0xc10/0xc10 [xfs]
[ 1443.754610]  [&amp;lt;ffffffffa06d0ec5&amp;gt;] xfs_fs_mount+0x15/0x20 [xfs]
[ 1443.754617]  [&amp;lt;ffffffff81197bf3&amp;gt;] mount_fs+0x43/0x1b0
[ 1443.754626]  [&amp;lt;ffffffff811b2407&amp;gt;] ? alloc_vfsmnt+0xd7/0x1b0
[ 1443.754633]  [&amp;lt;ffffffff811b2594&amp;gt;] vfs_kern_mount+0x74/0x110
[ 1443.754642]  [&amp;lt;ffffffff811b490f&amp;gt;] do_mount+0x21f/0xac0
[ 1443.754652]  [&amp;lt;ffffffff8114a41b&amp;gt;] ? strndup_user+0x5b/0x80
[ 1443.754660]  [&amp;lt;ffffffff811b523e&amp;gt;] sys_mount+0x8e/0xe0
[ 1443.754670]  [&amp;lt;ffffffff816d379d&amp;gt;] system_call_fastpath+0x1a/0x1f
[ 1563.575803] INFO: task mount:5671 blocked for more than 120 seconds.
[ 1563.575812] "echo 0 &amp;gt; /proc/sys/kernel/hung_task_timeout_secs" disables this message.
[ 1563.575817] mount           D ffff88014fa53f40     0  5671   5670 0x00000000
[ 1563.575827]  ffff88007f931c80 0000000000000082 ffff880146265d00 ffff88007f931fd8
[ 1563.575836]  ffff88007f931fd8 ffff88007f931fd8 ffff880149b5ae80 ffff880146265d00
[ 1563.575844]  ffff88007fa336c0 ffff88007fa33680 ffff88007fa33690 ffff88007fa336e8
[ 1563.575851] Call Trace:
[ 1563.575869]  [&amp;lt;ffffffff816c9fd9&amp;gt;] schedule+0x29/0x70
[ 1563.575927]  [&amp;lt;ffffffffa071be0d&amp;gt;] xfs_ail_push_all_sync+0xbd/0x100 [xfs]
[ 1563.575935]  [&amp;lt;ffffffff8107dbf0&amp;gt;] ? finish_wait+0x80/0x80
[ 1563.575981]  [&amp;lt;ffffffffa0717e43&amp;gt;] xfs_log_quiesce+0x33/0x70 [xfs]
[ 1563.576021]  [&amp;lt;ffffffffa0717e92&amp;gt;] xfs_log_unmount+0x12/0x30 [xfs]
[ 1563.576062]  [&amp;lt;ffffffffa0711543&amp;gt;] xfs_mountfs+0x513/0x690 [xfs]
[ 1563.576096]  [&amp;lt;ffffffffa06d2c6f&amp;gt;] xfs_fs_fill_super+0x2bf/0x340 [xfs]
[ 1563.576105]  [&amp;lt;ffffffff81196ebd&amp;gt;] mount_bdev+0x1cd/0x210
[ 1563.576137]  [&amp;lt;ffffffffa06d29b0&amp;gt;] ? xfs_parseargs+0xc10/0xc10 [xfs]
[ 1563.576169]  [&amp;lt;ffffffffa06d0ec5&amp;gt;] xfs_fs_mount+0x15/0x20 [xfs]
[ 1563.576176]  [&amp;lt;ffffffff81197bf3&amp;gt;] mount_fs+0x43/0x1b0
[ 1563.576184]  [&amp;lt;ffffffff811b2407&amp;gt;] ? alloc_vfsmnt+0xd7/0x1b0
[ 1563.576192]  [&amp;lt;ffffffff811b2594&amp;gt;] vfs_kern_mount+0x74/0x110
[ 1563.576200]  [&amp;lt;ffffffff811b490f&amp;gt;] do_mount+0x21f/0xac0
[ 1563.576210]  [&amp;lt;ffffffff8114a41b&amp;gt;] ? strndup_user+0x5b/0x80
[ 1563.576218]  [&amp;lt;ffffffff811b523e&amp;gt;] sys_mount+0x8e/0xe0
[ 1563.576228]  [&amp;lt;ffffffff816d379d&amp;gt;] system_call_fastpath+0x1a/0x1f
[ 1683.397332] INFO: task mount:5671 blocked for more than 120 seconds.
[ 1683.397342] "echo 0 &amp;gt; /proc/sys/kernel/hung_task_timeout_secs" disables this message.
[ 1683.397346] mount           D ffff88014fa53f40     0  5671   5670 0x00000000
[ 1683.397356]  ffff88007f931c80 0000000000000082 ffff880146265d00 ffff88007f931fd8
[ 1683.397366]  ffff88007f931fd8 ffff88007f931fd8 ffff880149b5ae80 ffff880146265d00
[ 1683.397373]  ffff88007fa336c0 ffff88007fa33680 ffff88007fa33690 ffff88007fa336e8
[ 1683.397381] Call Trace:
[ 1683.397398]  [&amp;lt;ffffffff816c9fd9&amp;gt;] schedule+0x29/0x70
[ 1683.397459]  [&amp;lt;ffffffffa071be0d&amp;gt;] xfs_ail_push_all_sync+0xbd/0x100 [xfs]
[ 1683.397468]  [&amp;lt;ffffffff8107dbf0&amp;gt;] ? finish_wait+0x80/0x80
[ 1683.397514]  [&amp;lt;ffffffffa0717e43&amp;gt;] xfs_log_quiesce+0x33/0x70 [xfs]
[ 1683.397554]  [&amp;lt;ffffffffa0717e92&amp;gt;] xfs_log_unmount+0x12/0x30 [xfs]
[ 1683.397594]  [&amp;lt;ffffffffa0711543&amp;gt;] xfs_mountfs+0x513/0x690 [xfs]
[ 1683.397628]  [&amp;lt;ffffffffa06d2c6f&amp;gt;] xfs_fs_fill_super+0x2bf/0x340 [xfs]
[ 1683.397637]  [&amp;lt;ffffffff81196ebd&amp;gt;] mount_bdev+0x1cd/0x210
[ 1683.397668]  [&amp;lt;ffffffffa06d29b0&amp;gt;] ? xfs_parseargs+0xc10/0xc10 [xfs]
[ 1683.397699]  [&amp;lt;ffffffffa06d0ec5&amp;gt;] xfs_fs_mount+0x15/0x20 [xfs]
[ 1683.397707]  [&amp;lt;ffffffff81197bf3&amp;gt;] mount_fs+0x43/0x1b0
[ 1683.397715]  [&amp;lt;ffffffff811b2407&amp;gt;] ? alloc_vfsmnt+0xd7/0x1b0
[ 1683.397723]  [&amp;lt;ffffffff811b2594&amp;gt;] vfs_kern_mount+0x74/0x110
[ 1683.397731]  [&amp;lt;ffffffff811b490f&amp;gt;] do_mount+0x21f/0xac0
[ 1683.397741]  [&amp;lt;ffffffff8114a41b&amp;gt;] ? strndup_user+0x5b/0x80
[ 1683.397749]  [&amp;lt;ffffffff811b523e&amp;gt;] sys_mount+0x8e/0xe0
[ 1683.397759]  [&amp;lt;ffffffff816d379d&amp;gt;] system_call_fastpath+0x1a/0x1f
_______________________________________________
xfs mailing list
xfs&amp;lt; at &amp;gt;oss.sgi.com
http://oss.sgi.com/mailman/listinfo/xfs
&lt;/pre&gt;</description>
    <dc:creator>Punk Rider</dc:creator>
    <dc:date>2013-05-18T18:39:19</dc:date>
  </item>
  <item rdf:about="http://comments.gmane.org/gmane.comp.file-systems.xfs.general/52709">
    <title>Crie seu Site na Internet</title>
    <link>http://comments.gmane.org/gmane.comp.file-systems.xfs.general/52709</link>
    <description>&lt;pre&gt;
 Olá, 

Gostaríamos de convidar-lhe a conhecer o nosso trabalho. A Agência
Triskel oferece serviço de criação de um site moderno para você ou
para sua empresa.

Pedimos que visite o nosso portfólio em nosso web site:

http://www.triskelwebdesign.com &amp;lt;http://www.triskelwebdesign.com/&amp;gt;

Poderá com isto verificar a qualidade do nosso trabalho.

Criamos sites gerenciáveis, que você mesmo poderá administrar,
atualizando e modificando as informações com grande facilidade.

Criamos sites com a sua cara, o design é personalizado, sempre
moderno e elegante, único, buscando atender e satisfazer os seus
interesses.

Por que a criação de um site é algo importante para você? 

Já passou o tempo em que web sites eram complicados e parte pequena
do marketing de uma empresa. Com o crescimento substancial da
internet, o marketing virtual tem se tornado imprescindível. Aumente
suas chances de crescimento pessoal e profissional, invista em si
mesmo e nos seus empreendimentos!

Apresentamos algumas propostas como exemplificação de nossos
serviços.

Proposta 1

- Site gerenciável, com painel de controle para fácil
administração. (Wordpress ou Joomla)

- Design único e personalizado

- Otimização para os sites de busca (SEO)

- Integração com as redes sociais

- Ferramenta de monitoramento de visitantes

Valor: 1.250 reais

Proposta 2

- Site gerenciável, com painel de controle para fácil
administração (Wordpress ou Joomla)

- Visual com template escolhido pelo cliente, ao qual realizamos
alterações

- Otimização para os sites de busca (SEO)

- Integração com as redes sociais

- Ferramenta de monitoramento de visitantes

Valor: 950 reais 

Aceitamos pagamento por cartão de crédito em até 12x através do
intermediário PagSeguro.

Utilizando os gerenciadores mais modernos (Wordpress e Joomla), você
terá todos os recursos para aumentar efetivamente seu marketing na
web, com total controle sobre o seu site e dispondo de estatísticas
complexas sobre seu desempenho.

Oferecemos nossos serviços a todas as regiões.

Temos ainda soluções de E-Commerce para a criação de lojas

virtuais.

Para solicitar um orçamento específico, basta responder a este
email.

Agradecemos a atenção, esperamos que possa contar com nossos
serviços para a criação de um belo web site,



Att,

Juliana Conceicao.
Agencia Triskel.
www.triskelwebdesign.com


--
powered by phpList, www.phplist.com --


_______________________________________________
xfs mailing list
xfs&amp;lt; at &amp;gt;oss.sgi.com
http://oss.sgi.com/mailman/listinfo/xfs
&lt;/pre&gt;</description>
    <dc:creator>Juliana</dc:creator>
    <dc:date>2013-05-18T10:17:46</dc:date>
  </item>
  <item rdf:about="http://comments.gmane.org/gmane.comp.file-systems.xfs.general/52695">
    <title>hallo</title>
    <link>http://comments.gmane.org/gmane.comp.file-systems.xfs.general/52695</link>
    <description>&lt;pre&gt; Wenn Sie sich nicht an den http://opportunities7.webnode.com/ , sparen Sie 70 Dollar! Aber verlieren Sie die Chance, das beste Projekt des Net kommen. Jede Einladung zu der Gold Line International System ist wie immer eine Tute mit Geld als Geschenk. Dies ist ein globales virtuelles Spiel, das nicht irgendwelche Analoga. Amerika, England, Russland, Malaysia, Brasilien, Usbekistan, Kasachstan und der Ukraine haben bereits mit uns! Es ist nicht eine finanzielle Pyramide! Es gibt keine "Zinsen", superior "Manager" oder "golden Chefs". Es ist allerdings in keiner Relation fur jedes Unternehmen - nur eine gegenseitige finanzielle Unterstutzung! Registriert die schonsten finanziellen Spiel des 21. Jahrhunderts schon heute!
_______________________________________________
xfs mailing list
xfs&amp;lt; at &amp;gt;oss.sgi.com
http://oss.sgi.com/mailman/listinfo/xfs
&lt;/pre&gt;</description>
    <dc:creator>alexss</dc:creator>
    <dc:date>2013-05-17T20:33:30</dc:date>
  </item>
  <item rdf:about="http://comments.gmane.org/gmane.comp.file-systems.xfs.general/52691">
    <title>Kernel 3.3 XFS: Assertion failed: xfs_trans_get_block_res(tp) &gt; 0</title>
    <link>http://comments.gmane.org/gmane.comp.file-systems.xfs.general/52691</link>
    <description>&lt;pre&gt;Hi,

obsering kernel 3.3. instability with

When writing  3 realtime and 1 regular file on disk simultaneously
(sync is blocking function). the rcu stall detection kicks in every
time when 3rd-4th attempt.

Just wanted understand the  root cause of the problem

This ithe info on the stack dumps without xfs debug and with cxfs
debug enabled repectively.


/dev/sda1 is XFS real time partition
/dev/sda2 is XFS non-real time partition.

count=1;
while [ 1 ];do
    #create file on disk /dev/sda1 (-R realtime)
    xfs_io -c open -f -R "/opt/corefiles/$count" -c "pwrite 0
20000000" -c close &amp;gt;&amp;gt; /dev/null &amp;amp;
    let a=$count%3;
    if [ $a -eq 0 ]; then
      let count+=1;
      #create file on disk /dev/sda2
      xfs_io -c open -f "/opt/corefiles/$count" -c "pwrite 0 200000"
-c close &amp;gt;&amp;gt; /dev/null &amp;amp;
      echo "sync";
      sync /opt;
    fi;
    let count+=1;
done

Oops Log:

# ./xfs.sh
sync
INFO: rcu_sched detected stall on CPU 0 (t=60000 jiffies)
Call Trace:
[&amp;lt;805d3814&amp;gt;] dump_stack+0x8/0x34
[&amp;lt;80084398&amp;gt;] __rcu_pending+0x260/0x4c4
[&amp;lt;80084f00&amp;gt;] rcu_check_callbacks+0x118/0x180
[&amp;lt;80034ea0&amp;gt;] update_process_times+0x40/0x6c
[&amp;lt;8006e324&amp;gt;] tick_sched_timer+0x74/0xe4
[&amp;lt;8004cc50&amp;gt;] __run_hrtimer.clone.30+0x64/0x140
[&amp;lt;8004dc20&amp;gt;] hrtimer_interrupt+0x19c/0x4bc
[&amp;lt;8000bff8&amp;gt;] c0_compare_interrupt+0x50/0x88
[&amp;lt;8007c678&amp;gt;] handle_irq_event_percpu+0x5c/0x234
[&amp;lt;80080a74&amp;gt;] handle_percpu_irq+0x8c/0xc0
[&amp;lt;8007bd14&amp;gt;] generic_handle_irq+0x34/0x54
[&amp;lt;80006084&amp;gt;] do_IRQ+0x18/0x24
[&amp;lt;800034a4&amp;gt;] plat_irq_dispatch+0xd0/0x128
[&amp;lt;80004364&amp;gt;] ret_from_irq+0x0/0x4
[&amp;lt;8028b1c0&amp;gt;] xfs_inode_item_format_extents+0x1c/0xf0
[&amp;lt;8028b5a0&amp;gt;] xfs_inode_item_format+0x30c/0x320
[&amp;lt;80288fcc&amp;gt;] xfs_log_commit_cil+0xe0/0x564
[&amp;lt;8028346c&amp;gt;] xfs_trans_commit+0x148/0x2d0
[&amp;lt;8022ad40&amp;gt;] xfs_iomap_write_allocate+0x1b0/0x560
[&amp;lt;8021c12c&amp;gt;] xfs_map_blocks+0x224/0x278
[&amp;lt;8021d3d8&amp;gt;] xfs_vm_writepage+0x240/0x6ec
[&amp;lt;80092690&amp;gt;] __writepage+0x18/0xc8
[&amp;lt;80092ae0&amp;gt;] write_cache_pages+0x264/0x4c0
[&amp;lt;80092d84&amp;gt;] generic_writepages+0x48/0x84
[&amp;lt;800f0234&amp;gt;] writeback_single_inode+0x160/0x390
[&amp;lt;800f08c4&amp;gt;] writeback_sb_inodes+0x1c0/0x2a4
[&amp;lt;800f0f08&amp;gt;] __writeback_inodes_wb+0xbc/0x114
[&amp;lt;800f132c&amp;gt;] wb_writeback+0x204/0x20c
[&amp;lt;800f1cb4&amp;gt;] wb_do_writeback+0x29c/0x2a4
[&amp;lt;800f1d64&amp;gt;] bdi_writeback_thread+0xa8/0x1ac
[&amp;lt;80047d0c&amp;gt;] kthread+0x90/0x98
[&amp;lt;8000636c&amp;gt;] kernel_thread_helper+0x10/0x18

INFO: rcu_sched detected stall on CPU 0 (t=240030 jiffies)
Call Trace:
[&amp;lt;805d3814&amp;gt;] dump_stack+0x8/0x34
[&amp;lt;80084398&amp;gt;] __rcu_pending+0x260/0x4c4
[&amp;lt;80084f00&amp;gt;] rcu_check_callbacks+0x118/0x180
[&amp;lt;80034ea0&amp;gt;] update_process_times+0x40/0x6c
[&amp;lt;8006e324&amp;gt;] tick_sched_timer+0x74/0xe4
[&amp;lt;8004cc50&amp;gt;] __run_hrtimer.clone.30+0x64/0x140
[&amp;lt;8004dc20&amp;gt;] hrtimer_interrupt+0x19c/0x4bc
[&amp;lt;8000bff8&amp;gt;] c0_compare_interrupt+0x50/0x88
[&amp;lt;8007c678&amp;gt;] handle_irq_event_percpu+0x5c/0x234
[&amp;lt;80080a74&amp;gt;] handle_percpu_irq+0x8c/0xc0
[&amp;lt;8007bd14&amp;gt;] generic_handle_irq+0x34/0x54
[&amp;lt;80006084&amp;gt;] do_IRQ+0x18/0x24
[&amp;lt;800034a4&amp;gt;] plat_irq_dispatch+0xd0/0x128
[&amp;lt;80004364&amp;gt;] ret_from_irq+0x0/0x4
[&amp;lt;802c7c88&amp;gt;] arch_local_irq_restore+0x18/0x30
[&amp;lt;800c2b7c&amp;gt;] kmem_cache_alloc+0x78/0xd0
[&amp;lt;80238a40&amp;gt;] kmem_zone_alloc+0xa4/0x130
[&amp;lt;80238ae4&amp;gt;] kmem_zone_zalloc+0x18/0x54
[&amp;lt;80282f08&amp;gt;] xfs_trans_add_item+0x28/0x64
[&amp;lt;8028c98c&amp;gt;] _xfs_trans_bjoin+0x6c/0xcc
[&amp;lt;8028cddc&amp;gt;] xfs_trans_read_buf+0x234/0x304
[&amp;lt;8028d638&amp;gt;] xfs_rtbuf_get+0x148/0x168
[&amp;lt;8028df10&amp;gt;] xfs_rtmodify_summary+0x94/0x124
[&amp;lt;8028ed28&amp;gt;] xfs_rtallocate_range+0x180/0x328
[&amp;lt;8028f748&amp;gt;] xfs_rtallocate_extent_exact+0xc4/0x158
[&amp;lt;80290054&amp;gt;] xfs_rtallocate_extent_near+0xb0/0x448
[&amp;lt;80290ce4&amp;gt;] xfs_rtallocate_extent+0x1c8/0x1fc
[&amp;lt;8024a9fc&amp;gt;] xfs_bmap_rtalloc+0x1bc/0x3f8
[&amp;lt;8024df20&amp;gt;] xfs_bmapi_allocate+0xec/0x354
[&amp;lt;8025139c&amp;gt;] xfs_bmapi_write+0x264/0x82c
[&amp;lt;8022ad18&amp;gt;] xfs_iomap_write_allocate+0x188/0x560
[&amp;lt;8021c12c&amp;gt;] xfs_map_blocks+0x224/0x278
[&amp;lt;8021d3d8&amp;gt;] xfs_vm_writepage+0x240/0x6ec
[&amp;lt;80092690&amp;gt;] __writepage+0x18/0xc8
[&amp;lt;80092ae0&amp;gt;] write_cache_pages+0x264/0x4c0
[&amp;lt;80092d84&amp;gt;] generic_writepages+0x48/0x84
[&amp;lt;800f0234&amp;gt;] writeback_single_inode+0x160/0x390
[&amp;lt;800f08c4&amp;gt;] writeback_sb_inodes+0x1c0/0x2a4
[&amp;lt;800f0f08&amp;gt;] __writeback_inodes_wb+0xbc/0x114
[&amp;lt;800f132c&amp;gt;] wb_writeback+0x204/0x20c
[&amp;lt;800f1cb4&amp;gt;] wb_do_writeback+0x29c/0x2a4
[&amp;lt;800f1d64&amp;gt;] bdi_writeback_thread+0xa8/0x1ac
[&amp;lt;80047d0c&amp;gt;] kthread+0x90/0x98
[&amp;lt;8000636c&amp;gt;] kernel_thread_helper+0x10/0x18


With the xfs debug enabled this is the assert I  get :

XFS: Assertion failed: xfs_trans_get_block_res(tp) &amp;gt; 0, file: fs/xfs/xfs_bmap.c,
 line: 5203
Kernel bug detected[#1]:
Cpu 0
$ 0 : 00000000 30008700 00000062 806b9dc4
$ 4 : 30008701 30008701 00000266 8032b24c
$ 8 : 00000010 00000002 00000001 00000000
$12 : 00000102 000003ff 00000000 00000000
$16 : 00000000 00000000 00001fff cf9b1300
$20 : 00001313 cf7dc000 cf76e420 00000002
$24 : 00000010 8032a9d0
$28 : cf672000 cf673c50 806416c8 80230718
Hi : 00000000
Lo : b0f9b000
epc : 80230718 assfail+0x28/0x2c
    Not tainted
ra : 80230718 assfail+0x28/0x2c
Status: 30008703 KERNEL EXL IE
Cause : 00800024
PrId : 00025a11 (Broadcom BMIPS5000)
Modules linked in:
Process xfs_io (pid: 602, threadinfo=cf672000, task=cfcba9d8, tls=7729f460)
Stack : 817bc3a0 00000000 80642b64 806416c8 00001453 00000000 00000000 8025ab7c
        00000d00 00000d00 cf76e400 00000000 00000000 cf673c9c cf673ca0 cf673cd8
        cf673cf8 cf673d6c 00000000 00000001 00000002 00000000 cf673d98 80250778
        ffffff83 000003ff 00001313 00000000 fffe0015 000fffff 00000ced 00000000
        00000000 8023b9c4 00001000 00000000 fffe0015 000fffff 00001000 00000000
        ...
Call Trace:
[&amp;lt;80230718&amp;gt;] assfail+0x28/0x2c
[&amp;lt;8025ab7c&amp;gt;] xfs_bunmapi+0xcb8/0x12f8
[&amp;lt;80285144&amp;gt;] xfs_itruncate_extents+0x290/0x488
[&amp;lt;80237200&amp;gt;] xfs_free_eofblocks+0x2d4/0x354
[&amp;lt;80237c50&amp;gt;] xfs_release+0x1b8/0x294
[&amp;lt;80222fb0&amp;gt;] xfs_file_release+0x10/0x20
[&amp;lt;800c8978&amp;gt;] fput+0x104/0x288
[&amp;lt;800c3a50&amp;gt;] filp_close+0x6c/0xa0
[&amp;lt;800c3b50&amp;gt;] sys_close+0xcc/0x12c
[&amp;lt;8000db5c&amp;gt;] stack_done+0x20/0x40


Code: afbf001c 0c08c0f6 00403021 &amp;lt;0200000d&amp;gt; 27bdffd8 afa40014 afa50018 3c04
8064 3c058062
---[ end trace 8e5cc13475cfce38 ]---



Thank You
Kamal

_______________________________________________
xfs mailing list
xfs&amp;lt; at &amp;gt;oss.sgi.com
http://oss.sgi.com/mailman/listinfo/xfs

&lt;/pre&gt;</description>
    <dc:creator>Kamal Dasu</dc:creator>
    <dc:date>2013-05-17T16:17:00</dc:date>
  </item>
  <item rdf:about="http://comments.gmane.org/gmane.comp.file-systems.xfs.general/52684">
    <title>xattr performance</title>
    <link>http://comments.gmane.org/gmane.comp.file-systems.xfs.general/52684</link>
    <description>&lt;pre&gt;Hi,

a while ago I was setting &amp;amp; reading extended attributes to ~25000 files 
in a directory structure on an XFS filesystem. The files were usually a 
few MB in size, but some where up to 2GB in size.

Anyway, I *felt* that setting or reading these xattrs was going very
slowly. While the storage may be not the fastest, stat()'ing these
files was fine, but getfattr/setfattr took very long.

I got curious and while it turned out that the slowness was related to the 
wrapper script I used to read/set those values, I created a little test 
suite to 1) create a few thousand files and 2) do xattr operations on 
them and see if xattr performance was filesystem specific:

   http://nerdbynature.de/bits/xattr/

Not very sophisticated, true. But it was interesting to see that 
ext3/ext4/xfs behaved kinda well for all these tests; btrfs/jfs/reiserfs
sometimes took way longer than the others.

Christian.
&lt;/pre&gt;</description>
    <dc:creator>Christian Kujau</dc:creator>
    <dc:date>2013-05-17T12:02:21</dc:date>
  </item>
  <item rdf:about="http://comments.gmane.org/gmane.comp.file-systems.xfs.general/52651">
    <title>[PATCH 00/30] xfsprogs: Initial CRC support</title>
    <link>http://comments.gmane.org/gmane.comp.file-systems.xfs.general/52651</link>
    <description>&lt;pre&gt;Hi Folks,

This is the first real "works ok" CRC patchset for xfsprogs. It
provides full support for mkfs.xfs and xfs_repair, and partial
read-only support for xfs_db.

For mkfs.xfs, it does everything properly, and filesystems that are
freshly made also run cleanly through xfs_repair and mount and run
just fine.

For xfs_repair, it reads and writes all metadata with CRC checks,
calculations and validation just like the kernel code does, but it
currently silently ignores the validation done in the IO layer.
Enabling that is future work - it involves adding buffer error checking to
every libxfs_readbuf() call that is made, and we do none of that
right now. It does, however, fully validate all the non-CRC format
metadata just as it does for non-CRC filesystems, and so the
coverage it has is the same for both CRC and non-CRC filesystems.

For xfs_db, there is read-only support for looking at the filesystem
as the xfs_db IO stack does not support CRCs at all. We need to
convert xfs_db to use the libxfs infrastructure to enable that.
Apart from that, xfs_db has partial support for the extended
metadata fields - the directory/attribute blocks don't have extended
support yet, but everything else does.

xfs_check is made special. It currently detects a version 5
superblock, and immediately exits with success. Hence it always says
CRC enabled filesystems are OK. This is a temporary change that
enables running xfstests without full support in xfs_db for all the
new metadata structures (like headers in remote symlink and
attribute blocks). Depending on if we want to keep xfs-check useful
for xfstests, we can revisit this bypass hack once xfs_db has been
converted to use the libxfs IO engine.

Overall, xfstests is now running enough to start to find bugs in the
kernel CRC code - I'm mainly hitting remote attribute block bugs
right now (generic/117!) but there's certainly less problems being
reported than I expected.

Oh, and I've tested it with external log devices and real time
devices, too.

Comments, thoughts, flames, and testing all welcome!

Cheers,

Dave.

$ git diff --minimal --stat --summary 8e78288..
 copy/xfs_copy.c            |    4 +-
 db/agf.c                   |    3 +
 db/agfl.c                  |   16 +
 db/agfl.h                  |    2 +
 db/agi.c                   |    3 +
 db/attr.c                  |   20 +-
 db/btblock.c               |  145 +++++
 db/btblock.h               |   10 +
 db/check.c                 |   34 +-
 db/dir2.c                  |   10 +-
 db/dir2sf.c                |    9 +-
 db/field.c                 |   16 +
 db/field.h                 |    8 +
 db/freesp.c                |   13 +-
 db/init.c                  |   19 +
 db/inode.c                 |   27 +
 db/inode.h                 |    3 +
 db/metadump.c              |    4 +-
 db/sb.c                    |   54 +-
 db/type.c                  |   34 +-
 db/type.h                  |    3 +-
 include/Makefile           |    4 +-
 include/libxfs.h           |  118 ++--
 include/libxlog.h          |    2 +-
 include/xfs_ag.h           |   54 +-
 include/xfs_alloc_btree.h  |   13 +-
 include/xfs_attr_leaf.h    |  124 +++-
 include/xfs_attr_remote.h  |   52 ++
 include/xfs_bmap_btree.h   |   20 +-
 include/xfs_btree.h        |   63 +-
 include/xfs_buf_item.h     |   64 +-
 include/xfs_da_btree.h     |  130 +++-
 include/xfs_dinode.h       |   37 +-
 include/xfs_dir2.h         |    7 +
 include/xfs_dir2_format.h  |  293 ++++++++-
 include/xfs_ialloc_btree.h |   10 +-
 include/xfs_inode.h        |   26 +
 include/xfs_mount.h        |    1 +
 include/xfs_quota.h        |   11 +-
 include/xfs_sb.h           |  166 ++++-
 include/xfs_symlink.h      |   45 ++
 libxfs/Makefile            |    4 +-
 libxfs/init.c              |   84 ++-
 libxfs/logitem.c           |    4 +-
 libxfs/rdwr.c              |  236 ++++---
 libxfs/trans.c             |   17 +-
 libxfs/util.c              |   29 +-
 libxfs/xfs.h               |   37 +-
 libxfs/xfs_alloc.c         |  202 ++++--
 libxfs/xfs_alloc_btree.c   |   99 ++-
 libxfs/xfs_attr.c          |  386 ++----------
 libxfs/xfs_attr_leaf.c     | 1553 ++++++++++++++++++++++++++--------------------
 libxfs/xfs_attr_remote.c   |  527 ++++++++++++++++
 libxfs/xfs_bmap.c          |   49 +-
 libxfs/xfs_bmap_btree.c    |  107 +++-
 libxfs/xfs_btree.c         |  255 ++++++--
 libxfs/xfs_da_btree.c      | 1499 +++++++++++++++++++++++++++-----------------
 libxfs/xfs_dir2_block.c    |  171 +++--
 libxfs/xfs_dir2_data.c     |  266 +++++---
 libxfs/xfs_dir2_leaf.c     |  880 ++++++++++++++++----------
 libxfs/xfs_dir2_node.c     | 1007 +++++++++++++++++++-----------
 libxfs/xfs_dir2_priv.h     |   46 +-
 libxfs/xfs_dir2_sf.c       |    8 +-
 libxfs/xfs_ialloc.c        |   78 ++-
 libxfs/xfs_ialloc_btree.c  |   80 ++-
 libxfs/xfs_inode.c         |  124 +++-
 libxfs/xfs_mount.c         |  137 +++-
 libxfs/xfs_symlink.c       |  154 +++++
 logprint/log_misc.c        |   51 +-
 logprint/log_print_all.c   |    3 +-
 logprint/log_print_trans.c |   18 +
 logprint/logprint.c        |    4 +-
 mdrestore/Makefile         |    2 +-
 mkfs/maxtrres.c            |    4 +-
 mkfs/proto.c               |    6 +-
 mkfs/xfs_mkfs.c            |  170 +++--
 mkfs/xfs_mkfs.h            |   12 +-
 repair/agheader.c          |   36 +-
 repair/attr_repair.c       |  173 +++---
 repair/dino_chunks.c       |   13 +-
 repair/dinode.c            |  200 +++---
 repair/dir2.c              |  167 ++---
 repair/dir2.h              |    6 +-
 repair/phase2.c            |    8 +-
 repair/phase3.c            |    2 +-
 repair/phase5.c            |  156 +++--
 repair/phase6.c            |  172 +++--
 repair/prefetch.c          |    9 +-
 repair/rt.c                |    4 +-
 repair/scan.c              |  169 ++---
 repair/scan.h              |   12 +-
 repair/versions.c          |    2 +-
 repair/xfs_repair.c        |    8 +-
 93 files changed, 7559 insertions(+), 3564 deletions(-)
 create mode 100644 include/xfs_attr_remote.h
 create mode 100644 include/xfs_symlink.h
 create mode 100644 libxfs/xfs_attr_remote.c
 create mode 100644 libxfs/xfs_symlink.c

_______________________________________________
xfs mailing list
xfs&amp;lt; at &amp;gt;oss.sgi.com
http://oss.sgi.com/mailman/listinfo/xfs

&lt;/pre&gt;</description>
    <dc:creator>Dave Chinner</dc:creator>
    <dc:date>2013-05-17T11:12:55</dc:date>
  </item>
  <item rdf:about="http://comments.gmane.org/gmane.comp.file-systems.xfs.general/52648">
    <title>3.5+, xfs and 32bit armhf - xfs_buf_get: failed to map pages</title>
    <link>http://comments.gmane.org/gmane.comp.file-systems.xfs.general/52648</link>
    <description>&lt;pre&gt;While exercising swift on a single node 32bit armhf system running a 3.5 kernel,
i got this when i hit ~25% of fs space usage:

dmesg:
...
[ 3037.399406] vmap allocation for size 2097152 failed: use vmalloc=&amp;lt;size&amp;gt; to increase size.
[ 3037.399442] vmap allocation for size 2097152 failed: use vmalloc=&amp;lt;size&amp;gt; to increase size.
[ 3037.399469] vmap allocation for size 2097152 failed: use vmalloc=&amp;lt;size&amp;gt; to increase size.
[ 3037.399485] XFS (sda5): xfs_buf_get: failed to map pages
[ 3037.399485]
[ 3037.399501] XFS (sda5): Internal error xfs_trans_cancel at line 1466 of file /build/buildd/linux-3.5.0/fs/xfs/xfs_trans.c. Caller 0xbf0235e0
[ 3037.399501]
[ 3037.413789] [&amp;lt;c00164cc&amp;gt;] (unwind_backtrace+0x0/0x104) from [&amp;lt;c04ed624&amp;gt;] (dump_stack+0x20/0x24)
[ 3037.413985] [&amp;lt;c04ed624&amp;gt;] (dump_stack+0x20/0x24) from [&amp;lt;bf01091c&amp;gt;] (xfs_error_report+0x60/0x6c [xfs])
[ 3037.414321] [&amp;lt;bf01091c&amp;gt;] (xfs_error_report+0x60/0x6c [xfs]) from [&amp;lt;bf0633f8&amp;gt;] (xfs_trans_cancel+0xfc/0x11c [xfs])
[ 3037.414654] [&amp;lt;bf0633f8&amp;gt;] (xfs_trans_cancel+0xfc/0x11c [xfs]) from [&amp;lt;bf0235e0&amp;gt;] (xfs_create+0x228/0x558 [xfs])
[ 3037.414953] [&amp;lt;bf0235e0&amp;gt;] (xfs_create+0x228/0x558 [xfs]) from [&amp;lt;bf01a7cc&amp;gt;] (xfs_vn_mknod+0x9c/0x180 [xfs])
[ 3037.415239] [&amp;lt;bf01a7cc&amp;gt;] (xfs_vn_mknod+0x9c/0x180 [xfs]) from [&amp;lt;bf01a8d0&amp;gt;] (xfs_vn_mkdir+0x20/0x24 [xfs])
[ 3037.415393] [&amp;lt;bf01a8d0&amp;gt;] (xfs_vn_mkdir+0x20/0x24 [xfs]) from [&amp;lt;c0135758&amp;gt;] (vfs_mkdir+0xc4/0x13c)
[ 3037.415410] [&amp;lt;c0135758&amp;gt;] (vfs_mkdir+0xc4/0x13c) from [&amp;lt;c013884c&amp;gt;] (sys_mkdirat+0xdc/0xe4)
[ 3037.415422] [&amp;lt;c013884c&amp;gt;] (sys_mkdirat+0xdc/0xe4) from [&amp;lt;c0138878&amp;gt;] (sys_mkdir+0x24/0x28)
[ 3037.415437] [&amp;lt;c0138878&amp;gt;] (sys_mkdir+0x24/0x28) from [&amp;lt;c000e320&amp;gt;] (ret_fast_syscall+0x0/0x30)
[ 3037.415452] XFS (sda5): xfs_do_force_shutdown(0x8) called from line 1467 of file /build/buildd/linux-3.5.0/fs/xfs/xfs_trans.c. Return address = 0xbf06340c
[ 3037.416892] XFS (sda5): Corruption of in-memory data detected. Shutting down filesystem
[ 3037.425008] XFS (sda5): Please umount the filesystem and rectify the problem(s)
[ 3047.912480] XFS (sda5): xfs_log_force: error 5 returned.

flag&amp;lt; at &amp;gt;c13:~$ df -h
Filesystem Size Used Avail Use% Mounted on
/dev/sda2 225G 2.1G 212G 1% /
none 4.0K 0 4.0K 0% /sys/fs/cgroup
udev 2.0G 4.0K 2.0G 1% /dev
tmpfs 405M 260K 404M 1% /run
none 5.0M 0 5.0M 0% /run/lock
none 2.0G 0 2.0G 0% /run/shm
none 100M 0 100M 0% /run/user
/dev/sda1 228M 30M 186M 14% /boot
/dev/sda5 2.0G 569M 1.5G 28% /mnt/sdb1

flag&amp;lt; at &amp;gt;c13:~$ df -i
Filesystem Inodes IUsed IFree IUse% Mounted on
/dev/sda2 14958592 74462 14884130 1% /
none 182027 1 182026 1% /sys/fs/cgroup
udev 177378 1361 176017 1% /dev
tmpfs 182027 807 181220 1% /run
none 182027 3 182024 1% /run/lock
none 182027 1 182026 1% /run/shm
none 182027 1 182026 1% /run/user
/dev/sda1 124496 35 124461 1% /boot
/dev/sda5 524288 237184 287104 46% /mnt/sdb1

the vmalloc space is ~256M usually on this box, so i enlarged it:

flag&amp;lt; at &amp;gt;c13:~$ dmesg | grep vmalloc                                                                                                                                                          
Kernel command line: console=ttyAMA0 nosplash vmalloc=512M                                                                                                                                
    vmalloc : 0xdf800000 - 0xff000000   ( 504 MB)

and while i didn't hit the warning above, still after ~25% of usage, the storage
node died with:

May 17 06:26:00 c13 container-server ERROR __call__ error with PUT /sdb1/123172/AUTH_test/3b3d078015304a41b76b0ab083b7863a_5 : [Errno 28] No space
left on device: '/srv/1/node/sdb1/containers/123172' (txn: tx8ea3ce392ee94df096b16-00519605b0)


flag&amp;lt; at &amp;gt;c13:~$ df -h
Filesystem      Size  Used Avail Use% Mounted on
/dev/sda2       225G  3.9G  210G   2% /
none            4.0K     0  4.0K   0% /sys/fs/cgroup
udev            2.0G  4.0K  2.0G   1% /dev
tmpfs           405M  260K  404M   1% /run
none            5.0M     0  5.0M   0% /run/lock
none            2.0G     0  2.0G   0% /run/shm
none            100M     0  100M   0% /run/user
/dev/sda1       228M   25M  192M  12% /boot
/dev/sda5       2.0G  564M  1.5G  28% /mnt/sdb1

flag&amp;lt; at &amp;gt;c13:~$ df -i
Filesystem       Inodes  IUsed    IFree IUse% Mounted on
/dev/sda2      14958592 124409 14834183    1% /
none             114542      1   114541    1% /sys/fs/cgroup
udev             103895   1361   102534    2% /dev
tmpfs            114542    806   113736    1% /run
none             114542      3   114539    1% /run/lock
none             114542      1   114541    1% /run/shm
none             114542      1   114541    1% /run/user
/dev/sda1        124496     33   124463    1% /boot
/dev/sda5        524288 234880   289408   45% /mnt/sdb1


any idea what else shall i tune to workaround this? or is it a know problem that
involves 32bit arch and xfs?
&lt;/pre&gt;</description>
    <dc:creator>Paolo Pisati</dc:creator>
    <dc:date>2013-05-17T10:45:29</dc:date>
  </item>
  <item rdf:about="http://comments.gmane.org/gmane.comp.file-systems.xfs.general/52642">
    <title>[PATCH] xfsprogs: code sync up for log space reservation</title>
    <link>http://comments.gmane.org/gmane.comp.file-systems.xfs.general/52642</link>
    <description>&lt;pre&gt;Hello,

Here is a patch to sync up the kernel code changes regarding log space reservation
to the xfsprogs.

There have a couple of differences between the kernel and the user space.
1) A few transaction reservation item related to dquot are not synced because they
   are not being used in xfsprogs.
2) In xfs_log_rlimit.c, the xfs_log_validate_logspace() is not copied and the xfs_mkfs.c
   still use the default validate_log_space() to check the given log size.

Thanks,
-Jeff


From: Jie Liu &amp;lt;jeff.liu&amp;lt; at &amp;gt;oracle.com&amp;gt;

Sync up the kernel space code changes to the user space
which are includes:
1) Sync up xfs_log_rlimit.[c|h] to libxfs and replaced two
   functions at mkfs/maxres.c for figuring out the max transaction
   reservation.
2) Add m_tresp() helper, libxfs_trans_reserve() interface refactor
   and propagate them to where they should be.

Signed-off-by: Jie Liu &amp;lt;jeff.liu&amp;lt; at &amp;gt;oracle.com&amp;gt;
---
 include/libxfs.h         |    9 ++-
 include/xfs_log_rlimit.h |   24 ++++++
 include/xfs_mount.h      |   72 ++++++++++-------
 libxfs/Makefile          |    2 +-
 libxfs/trans.c           |   10 +--
 libxfs/util.c            |   11 ++-
 libxfs/xfs_attr.c        |   44 +++++------
 libxfs/xfs_bmap.c        |    4 +-
 libxfs/xfs_log_rlimit.c  |   73 ++++++++++++++++++
 libxfs/xfs_trans.c       |  109 +++++++++++++++++++-------
 mkfs/maxtrres.c          |   68 ++++------------
 mkfs/proto.c             |   61 +++++++++------
 mkfs/xfs_mkfs.c          |    9 ++-
 repair/phase6.c          |  193 ++++++++++++++++++++++++----------------------
 repair/phase7.c          |    6 +-
 15 files changed, 424 insertions(+), 271 deletions(-)
 create mode 100644 include/xfs_log_rlimit.h
 create mode 100644 libxfs/xfs_log_rlimit.c

diff --git a/include/libxfs.h b/include/libxfs.h
index b6e83f4..9e2a603 100644
--- a/include/libxfs.h
+++ b/include/libxfs.h
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -55,6 +55,7 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt;
 #include &amp;lt;xfs/xfs_btree.h&amp;gt;
 #include &amp;lt;xfs/xfs_btree_trace.h&amp;gt;
 #include &amp;lt;xfs/xfs_bmap.h&amp;gt;
+#include &amp;lt;xfs/xfs_log_rlimit.h&amp;gt;
 #include &amp;lt;xfs/xfs_trace.h&amp;gt;
 
 #ifndef ARRAY_SIZE
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -197,6 +198,11 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; typedef struct xfs_mount {
 xfs_dablk_tm_dirfreeblk;/* blockno of dirfreeindex v2 */
 } xfs_mount_t;
 
+static inline struct xfs_trans_reservations *
+m_tresp(struct xfs_mount *mp)
+{
+return &amp;amp;mp-&amp;gt;m_reservations;
+}
 
 #define LIBXFS_MOUNT_ROOTINOS0x0001
 #define LIBXFS_MOUNT_DEBUGGER0x0002
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -429,7 +435,8 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; typedef struct xfs_trans {
 
 extern xfs_trans_t*libxfs_trans_alloc (xfs_mount_t *, int);
 extern xfs_trans_t*libxfs_trans_dup (xfs_trans_t *);
-extern intlibxfs_trans_reserve (xfs_trans_t *, uint,uint,uint,uint,uint);
+extern intlibxfs_trans_reserve(xfs_trans_t *, struct xfs_trans_res *,
+     uint, uint);
 extern intlibxfs_trans_commit (xfs_trans_t *, uint);
 extern voidlibxfs_trans_cancel (xfs_trans_t *, int);
 extern voidlibxfs_mod_sb (xfs_trans_t *, __int64_t);
diff --git a/include/xfs_log_rlimit.h b/include/xfs_log_rlimit.h
new file mode 100644
index 0000000..3dff6f7
--- /dev/null
+++ b/include/xfs_log_rlimit.h
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -0,0 +1,24 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt;
+/*
+ * Copyright (c) 2013 Jie Liu.
+ * 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_LOG_RLIMIT_H__
+#define __XFS_LOG_RLIMIT_H__
+
+void xfs_log_adjust_max_attrsetm_res(struct xfs_mount *);
+void xfs_log_get_max_trans_res(struct xfs_mount *, struct xfs_trans_res *);
+
+#endif/* __XFS_LOG_PRIV_H__ */
diff --git a/include/xfs_mount.h b/include/xfs_mount.h
index 28bbf46..ee8928f 100644
--- a/include/xfs_mount.h
+++ b/include/xfs_mount.h
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -18,37 +18,53 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt;
 #ifndef __XFS_MOUNT_H__
 #define__XFS_MOUNT_H__
 
+struct xfs_trans_res {
+uinttr_logres;/* log space unit in bytes per log ticket */
+inttr_logcount;/* number of log operations per log ticket */
+inttr_logflags;/* log flags, currently only used for indicating
+ * a reservation request is permanent or not */
+};
+
 typedef struct xfs_trans_reservations {
-uinttr_write;/* extent alloc trans */
-uinttr_itruncate;/* truncate trans */
-uinttr_rename;/* rename trans */
-uinttr_link;/* link trans */
-uinttr_remove;/* unlink trans */
-uinttr_symlink;/* symlink trans */
-uinttr_create;/* create trans */
-uinttr_mkdir;/* mkdir trans */
-uinttr_ifree;/* inode free trans */
-uinttr_ichange;/* inode update trans */
-uinttr_growdata;/* fs data section grow trans */
-uinttr_swrite;/* sync write inode trans */
-uinttr_addafork;/* cvt inode to attributed trans */
-uinttr_writeid;/* write setuid/setgid file */
-uinttr_attrinval;/* attr fork buffer invalidation */
-uinttr_attrsetm;    /* set/create an attribute at mount time */
-uinttr_attrsetrt;   /* set/create an attribute at runtime */
-uinttr_attrrm;/* remove an attribute */
-uinttr_clearagi;/* clear bad agi unlinked ino bucket */
-uinttr_growrtalloc;/* grow realtime allocations */
-uinttr_growrtzero;/* grow realtime zeroing */
-uinttr_growrtfree;/* grow realtime freeing */
-uinttr_qm_sbchange;/* change quota flags */
-uinttr_qm_setqlim;/* adjust quota limits */
-uinttr_qm_dqalloc;/* allocate quota on disk */
-uinttr_qm_quotaoff;/* turn quota off */
-uinttr_qm_equotaoff;/* end of turn quota off */
-uinttr_sb;/* modify superblock */
+struct xfs_trans_restr_write;/* extent alloc trans */
+struct xfs_trans_restr_itruncate;/* truncate trans */
+struct xfs_trans_restr_rename;/* rename trans */
+struct xfs_trans_restr_link;/* link trans */
+struct xfs_trans_restr_remove;/* unlink trans */
+struct xfs_trans_restr_symlink;/* symlink trans */
+struct xfs_trans_restr_create;/* create trans */
+struct xfs_trans_restr_mkdir;/* mkdir trans */
+struct xfs_trans_restr_ifree;/* inode free trans */
+struct xfs_trans_restr_ichange;/* inode update trans */
+struct xfs_trans_restr_growdata;/* fs data section grow trans */
+struct xfs_trans_restr_swrite;/* sync write inode trans */
+struct xfs_trans_restr_addafork;/* cvt inode to attributed
+ * trans */
+struct xfs_trans_restr_writeid;/* write setuid/setgid file */
+struct xfs_trans_restr_attrinval;/* attr fork buffer
+ * invalidation */
+struct xfs_trans_restr_attrsetm;/* set/create an attribute at
+ * mount time */
+struct xfs_trans_restr_attrsetrt;/* set/create an attribute at
+ * runtime */
+struct xfs_trans_restr_attrrm;/* remove an attribute */
+struct xfs_trans_restr_clearagi;/* clear bad agi unlinked ino
+ * bucket */
+struct xfs_trans_restr_growrtalloc;/* grow realtime allocations */
+struct xfs_trans_restr_growrtzero;/* grow realtime zeroing */
+struct xfs_trans_restr_growrtfree;/* grow realtime freeing */
+struct xfs_trans_restr_qm_sbchange;/* change quota flags */
+struct xfs_trans_restr_qm_setqlim;/* adjust quota limits */
+struct xfs_trans_restr_qm_dqalloc;/* allocate quota on disk */
+struct xfs_trans_restr_qm_quotaoff;/* turn quota off */
+struct xfs_trans_restr_qm_equotaoff;/* end of turn quota off */
+struct xfs_trans_restr_sb;/* modify superblock */
+struct xfs_trans_restr_fsyncts;/* update timestamps on fsync */
 } xfs_trans_reservations_t;
 
+#define XFS_TRANS_RES_NUM (sizeof(struct xfs_trans_reservations) / \
+  sizeof(struct xfs_trans_res))
+
 #ifndef __KERNEL__
 
 #define xfs_daddr_to_agno(mp,d) \
diff --git a/libxfs/Makefile b/libxfs/Makefile
index 28f71c8..53b48d1 100644
--- a/libxfs/Makefile
+++ b/libxfs/Makefile
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -16,7 +16,7 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; CFILES = cache.c init.c kmem.c logitem.c radix-tree.c rdwr.c trans.c util.c \
 xfs_ialloc_btree.c xfs_bmap_btree.c xfs_da_btree.c \
 xfs_dir2.c xfs_dir2_leaf.c xfs_attr_leaf.c xfs_dir2_block.c \
 xfs_dir2_node.c xfs_dir2_data.c xfs_dir2_sf.c xfs_bmap.c \
-xfs_mount.c xfs_rtalloc.c xfs_trans.c xfs_attr.c \
+xfs_mount.c xfs_rtalloc.c xfs_trans.c xfs_attr.c xfs_log_rlimit.c \
 crc32.c
 
 CFILES += $(PKG_PLATFORM).c
diff --git a/libxfs/trans.c b/libxfs/trans.c
index 7cb3c8c..d27553b 100644
--- a/libxfs/trans.c
+++ b/libxfs/trans.c
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -58,12 +58,10 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; libxfs_trans_dup(
 
 int
 libxfs_trans_reserve(
-xfs_trans_t*tp,
-uintblocks,
-uintlogspace,
-uintrtextents,
-uintflags,
-uintlogcount)
+xfs_trans_t*tp,
+struct xfs_trans_res*tres,
+uintblocks,
+uintrtextents)
 {
 xfs_sb_t*mpsb = &amp;amp;tp-&amp;gt;t_mountp-&amp;gt;m_sb;
 
diff --git a/libxfs/util.c b/libxfs/util.c
index 2ad4bfd..2ae66e0 100644
--- a/libxfs/util.c
+++ b/libxfs/util.c
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -442,11 +442,14 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; libxfs_alloc_file_space(
 
 /* allocate file space until done or until there is an error */
 while (allocatesize_fsb &amp;amp;&amp;amp; !error) {
+struct xfs_trans_restres;
+
 datablocks = allocatesize_fsb;
 
 tp = xfs_trans_alloc(mp, XFS_TRANS_DIOSTRAT);
 resblks = (uint)XFS_DIOSTRAT_SPACE_RES(mp, datablocks);
-error = xfs_trans_reserve(tp, resblks, 0, 0, 0, 0);
+memset(&amp;amp;tres, 0, sizeof(tres));
+error = xfs_trans_reserve(tp, &amp;amp;tres, resblks, 0);
 if (error)
 break;
 xfs_trans_ijoin(tp, ip, 0);
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -528,11 +531,15 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; libxfs_inode_alloc(
 }
 
 if (ialloc_context) {
+struct xfs_trans_restres;
+
 xfs_trans_bhold(*tp, ialloc_context);
 ntp = xfs_trans_dup(*tp);
 xfs_trans_commit(*tp, 0);
 *tp = ntp;
-if ((i = xfs_trans_reserve(*tp, 0, 0, 0, 0, 0))) {
+memset(&amp;amp;tres, 0, sizeof(tres));
+i = xfs_trans_reserve(*tp, &amp;amp;tres, 0, 0);
+if (i) {
 fprintf(stderr, _("%s: cannot reserve space: %s\n"),
 progname, strerror(i));
 exit(1);
diff --git a/libxfs/xfs_attr.c b/libxfs/xfs_attr.c
index 2adf92b..7a8e0ff 100644
--- a/libxfs/xfs_attr.c
+++ b/libxfs/xfs_attr.c
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -203,19 +203,20 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; xfs_attr_calc_size(
 
 STATIC int
 xfs_attr_set_int(
-struct xfs_inode *dp,
-struct xfs_name*name,
-unsigned char*value,
-intvaluelen,
-intflags)
+struct xfs_inode*dp,
+struct xfs_name*name,
+unsigned char*value,
+intvaluelen,
+intflags)
 {
-xfs_da_args_targs;
-xfs_fsblock_tfirstblock;
-xfs_bmap_free_t flist;
-interror, err2, committed;
-xfs_mount_t*mp = dp-&amp;gt;i_mount;
-int             rsvd = (flags &amp;amp; ATTR_ROOT) != 0;
-intlocal;
+xfs_da_args_targs;
+xfs_fsblock_tfirstblock;
+xfs_bmap_free_tflist;
+interror, err2, committed;
+struct xfs_mount*mp = dp-&amp;gt;i_mount;
+struct xfs_trans_restres;
+intrsvd = (flags &amp;amp; ATTR_ROOT) != 0;
+intlocal;
 
 /*
  * Attach the dquots to the inode.
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -275,12 +276,11 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; xfs_attr_set_int(
 if (rsvd)
 args.trans-&amp;gt;t_flags |= XFS_TRANS_RESERVE;
 
-
-error = xfs_trans_reserve(args.trans, args.total,
-  XFS_ATTRSETM_LOG_RES(mp) +
-  XFS_ATTRSETRT_LOG_RES(mp) * args.total,
-  0, XFS_TRANS_PERM_LOG_RES,
-  XFS_ATTRSET_LOG_COUNT);
+tres.tr_logres = m_tresp(mp)-&amp;gt;tr_attrsetm.tr_logres +
+ m_tresp(mp)-&amp;gt;tr_attrsetrt.tr_logres * args.total;
+tres.tr_logcount = XFS_ATTRSET_LOG_COUNT;
+tres.tr_logflags = XFS_TRANS_PERM_LOG_RES;
+error = xfs_trans_reserve(args.trans, &amp;amp;tres, args.total, 0);
 if (error) {
 xfs_trans_cancel(args.trans, 0);
 return(error);
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -500,11 +500,9 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; xfs_attr_remove_int(xfs_inode_t *dp, struct xfs_name *name, int flags)
 if (flags &amp;amp; ATTR_ROOT)
 args.trans-&amp;gt;t_flags |= XFS_TRANS_RESERVE;
 
-if ((error = xfs_trans_reserve(args.trans,
-      XFS_ATTRRM_SPACE_RES(mp),
-      XFS_ATTRRM_LOG_RES(mp),
-      0, XFS_TRANS_PERM_LOG_RES,
-      XFS_ATTRRM_LOG_COUNT))) {
+error = xfs_trans_reserve(args.trans, &amp;amp;m_tresp(mp)-&amp;gt;tr_attrrm,
+  XFS_ATTRRM_SPACE_RES(mp), 0);
+if (error) {
 xfs_trans_cancel(args.trans, 0);
 return(error);
 }
diff --git a/libxfs/xfs_bmap.c b/libxfs/xfs_bmap.c
index c8232a9..8b42453 100644
--- a/libxfs/xfs_bmap.c
+++ b/libxfs/xfs_bmap.c
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -1290,8 +1290,8 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; xfs_bmap_add_attrfork(
 blks = XFS_ADDAFORK_SPACE_RES(mp);
 if (rsvd)
 tp-&amp;gt;t_flags |= XFS_TRANS_RESERVE;
-if ((error = xfs_trans_reserve(tp, blks, XFS_ADDAFORK_LOG_RES(mp), 0,
-XFS_TRANS_PERM_LOG_RES, XFS_ADDAFORK_LOG_COUNT)))
+error = xfs_trans_reserve(tp, &amp;amp;m_tresp(mp)-&amp;gt;tr_addafork, blks, 0);
+if (error)
 goto error0;
 xfs_ilock(ip, XFS_ILOCK_EXCL);
 error = xfs_trans_reserve_quota_nblks(tp, ip, blks, 0, rsvd ?
diff --git a/libxfs/xfs_log_rlimit.c b/libxfs/xfs_log_rlimit.c
new file mode 100644
index 0000000..edf96a6
--- /dev/null
+++ b/libxfs/xfs_log_rlimit.c
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -0,0 +1,73 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt;
+/*
+ * Copyright (c) 2013 Jie Liu.
+ * 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
+ */
+#include &amp;lt;xfs.h&amp;gt;
+
+void
+xfs_log_adjust_max_attrsetm_res(
+struct xfs_mount*mp)
+{
+intsize;
+intnblks;
+intres;
+
+/*
+ * Calculate the maximum length in bytes that would be required
+ * for a local attribute value as large attributes out of line
+ * are not logged.
+ */
+size = xfs_attr_leaf_entsize_local_max(mp-&amp;gt;m_sb.sb_blocksize) - 1;
+nblks = XFS_DAENTER_SPACE_RES(mp, XFS_ATTR_FORK);
+nblks += XFS_B_TO_FSB(mp, size);
+nblks += XFS_NEXTENTADD_SPACE_RES(mp, size, XFS_ATTR_FORK);
+
+res = m_tresp(mp)-&amp;gt;tr_attrsetm.tr_logres +
+      m_tresp(mp)-&amp;gt;tr_attrsetrt.tr_logres * nblks;
+mp-&amp;gt;m_reservations.tr_attrsetm.tr_logres = res;
+}
+
+/*
+ * Iterate over the log space reservation table to figure out and return
+ * the maximum one in terms of the pre-calculated values which were done
+ * at mount time.
+ */
+void
+xfs_log_get_max_trans_res(
+struct xfs_mount*mp,
+struct xfs_trans_res*max_tresp)
+{
+struct xfs_trans_reservations*mtresp = m_tresp(mp);
+struct xfs_trans_restres_items[XFS_TRANS_RES_NUM];
+struct xfs_trans_res*tresp;
+inti, logspace  = 0;
+
+xfs_log_adjust_max_attrsetm_res(mp);
+
+memcpy(tres_items, mtresp, sizeof(*mtresp));
+for (i = 0; i &amp;lt; ARRAY_SIZE(tres_items); i++) {
+struct xfs_trans_res*p = &amp;amp;tres_items[i];
+inttmp = p-&amp;gt;tr_logcount &amp;gt; 1 ?
+      p-&amp;gt;tr_logres * p-&amp;gt;tr_logcount :
+      p-&amp;gt;tr_logres;
+if (logspace &amp;lt; tmp) {
+logspace = tmp;
+tresp = p;
+}
+}
+
+*max_tresp = *tresp;
+}
diff --git a/libxfs/xfs_trans.c b/libxfs/xfs_trans.c
index bdd0ebc..72d9e46 100644
--- a/libxfs/xfs_trans.c
+++ b/libxfs/xfs_trans.c
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -490,7 +490,8 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; xfs_calc_attrsetm_reservation(
  * Since the runtime attribute transaction space is dependent on the total
  * blocks needed for the 1st bmap, here we calculate out the space unit for
  * one block so that the caller could figure out the total space according
- * to the attibute extent length in blocks by: ext * XFS_ATTRSETRT_LOG_RES(mp).
+ * to the attibute extent length in blocks by:
+ *ext * m_tresp(mp)-&amp;gt;tr_attrsetrt.tr_logres
  */
 STATIC uint
 xfs_calc_attrsetrt_reservation(
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -545,30 +546,78 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; void
 xfs_trans_init(
 struct xfs_mount*mp)
 {
-struct xfs_trans_reservations *resp = &amp;amp;mp-&amp;gt;m_reservations;
-
-resp-&amp;gt;tr_write = xfs_calc_write_reservation(mp);
-resp-&amp;gt;tr_itruncate = xfs_calc_itruncate_reservation(mp);
-resp-&amp;gt;tr_rename = xfs_calc_rename_reservation(mp);
-resp-&amp;gt;tr_link = xfs_calc_link_reservation(mp);
-resp-&amp;gt;tr_remove = xfs_calc_remove_reservation(mp);
-resp-&amp;gt;tr_symlink = xfs_calc_symlink_reservation(mp);
-resp-&amp;gt;tr_create = xfs_calc_create_reservation(mp);
-resp-&amp;gt;tr_mkdir = xfs_calc_mkdir_reservation(mp);
-resp-&amp;gt;tr_ifree = xfs_calc_ifree_reservation(mp);
-resp-&amp;gt;tr_ichange = xfs_calc_ichange_reservation(mp);
-resp-&amp;gt;tr_growdata = xfs_calc_growdata_reservation(mp);
-resp-&amp;gt;tr_swrite = xfs_calc_swrite_reservation(mp);
-resp-&amp;gt;tr_writeid = xfs_calc_writeid_reservation(mp);
-resp-&amp;gt;tr_addafork = xfs_calc_addafork_reservation(mp);
-resp-&amp;gt;tr_attrinval = xfs_calc_attrinval_reservation(mp);
-resp-&amp;gt;tr_attrsetm = xfs_calc_attrsetm_reservation(mp);
-resp-&amp;gt;tr_attrsetrt = xfs_calc_attrsetrt_reservation(mp);
-resp-&amp;gt;tr_attrrm = xfs_calc_attrrm_reservation(mp);
-resp-&amp;gt;tr_clearagi = xfs_calc_clear_agi_bucket_reservation(mp);
-resp-&amp;gt;tr_growrtalloc = xfs_calc_growrtalloc_reservation(mp);
-resp-&amp;gt;tr_growrtzero = xfs_calc_growrtzero_reservation(mp);
-resp-&amp;gt;tr_growrtfree = xfs_calc_growrtfree_reservation(mp);
+struct xfs_trans_reservations *resp = m_tresp(mp);
+
+/*
+ * The following transactions are logged in physical format and
+ * require a permanent reservation on space.
+ */
+resp-&amp;gt;tr_write.tr_logres = xfs_calc_write_reservation(mp);
+resp-&amp;gt;tr_write.tr_logcount = XFS_WRITE_LOG_COUNT;
+resp-&amp;gt;tr_write.tr_logflags |= XFS_TRANS_PERM_LOG_RES;
+
+resp-&amp;gt;tr_itruncate.tr_logres = xfs_calc_itruncate_reservation(mp);
+resp-&amp;gt;tr_itruncate.tr_logcount = XFS_ITRUNCATE_LOG_COUNT;
+resp-&amp;gt;tr_itruncate.tr_logflags |= XFS_TRANS_PERM_LOG_RES;
+
+resp-&amp;gt;tr_rename.tr_logres = xfs_calc_rename_reservation(mp);
+resp-&amp;gt;tr_rename.tr_logcount = XFS_RENAME_LOG_COUNT;
+resp-&amp;gt;tr_rename.tr_logflags |= XFS_TRANS_PERM_LOG_RES;
+
+resp-&amp;gt;tr_link.tr_logres = xfs_calc_link_reservation(mp);
+resp-&amp;gt;tr_link.tr_logcount = XFS_LINK_LOG_COUNT;
+resp-&amp;gt;tr_link.tr_logflags |= XFS_TRANS_PERM_LOG_RES;
+
+resp-&amp;gt;tr_remove.tr_logres = xfs_calc_remove_reservation(mp);
+resp-&amp;gt;tr_remove.tr_logcount = XFS_REMOVE_LOG_COUNT;
+resp-&amp;gt;tr_remove.tr_logflags |= XFS_TRANS_PERM_LOG_RES;
+
+resp-&amp;gt;tr_symlink.tr_logres = xfs_calc_symlink_reservation(mp);
+resp-&amp;gt;tr_symlink.tr_logcount = XFS_SYMLINK_LOG_COUNT;
+resp-&amp;gt;tr_symlink.tr_logflags |= XFS_TRANS_PERM_LOG_RES;
+
+resp-&amp;gt;tr_create.tr_logres = xfs_calc_create_reservation(mp);
+resp-&amp;gt;tr_create.tr_logcount = XFS_CREATE_LOG_COUNT;
+resp-&amp;gt;tr_create.tr_logflags |= XFS_TRANS_PERM_LOG_RES;
+
+resp-&amp;gt;tr_mkdir.tr_logres = xfs_calc_mkdir_reservation(mp);
+resp-&amp;gt;tr_mkdir.tr_logcount = XFS_MKDIR_LOG_COUNT;
+resp-&amp;gt;tr_mkdir.tr_logflags |= XFS_TRANS_PERM_LOG_RES;
+
+resp-&amp;gt;tr_ifree.tr_logres = xfs_calc_ifree_reservation(mp);
+resp-&amp;gt;tr_ifree.tr_logcount = XFS_INACTIVE_LOG_COUNT;
+resp-&amp;gt;tr_ifree.tr_logflags |= XFS_TRANS_PERM_LOG_RES;
+
+resp-&amp;gt;tr_addafork.tr_logres = xfs_calc_addafork_reservation(mp);
+resp-&amp;gt;tr_addafork.tr_logcount = XFS_ADDAFORK_LOG_COUNT;
+resp-&amp;gt;tr_addafork.tr_logflags |= XFS_TRANS_PERM_LOG_RES;
+
+resp-&amp;gt;tr_attrinval.tr_logres = xfs_calc_attrinval_reservation(mp);
+resp-&amp;gt;tr_attrinval.tr_logcount = XFS_ATTRINVAL_LOG_COUNT;
+resp-&amp;gt;tr_attrinval.tr_logflags |= XFS_TRANS_PERM_LOG_RES;
+
+resp-&amp;gt;tr_attrsetm.tr_logres = xfs_calc_attrsetm_reservation(mp);
+resp-&amp;gt;tr_attrsetm.tr_logcount = XFS_ATTRSET_LOG_COUNT;
+resp-&amp;gt;tr_attrsetm.tr_logflags |= XFS_TRANS_PERM_LOG_RES;
+
+resp-&amp;gt;tr_attrrm.tr_logres = xfs_calc_attrrm_reservation(mp);
+resp-&amp;gt;tr_attrrm.tr_logcount = XFS_ATTRRM_LOG_COUNT;
+resp-&amp;gt;tr_attrrm.tr_logflags |= XFS_TRANS_PERM_LOG_RES;
+
+resp-&amp;gt;tr_growrtalloc.tr_logres = xfs_calc_growrtalloc_reservation(mp);
+resp-&amp;gt;tr_growrtalloc.tr_logcount = XFS_DEFAULT_PERM_LOG_COUNT;
+resp-&amp;gt;tr_growrtalloc.tr_logflags |= XFS_TRANS_PERM_LOG_RES;
+
+/* The following transaction are logged in logical format */
+resp-&amp;gt;tr_ichange.tr_logres = xfs_calc_ichange_reservation(mp);
+resp-&amp;gt;tr_growdata.tr_logres = xfs_calc_growdata_reservation(mp);
+resp-&amp;gt;tr_swrite.tr_logres = xfs_calc_swrite_reservation(mp);
+resp-&amp;gt;tr_fsyncts.tr_logres = xfs_calc_swrite_reservation(mp);
+resp-&amp;gt;tr_writeid.tr_logres = xfs_calc_writeid_reservation(mp);
+resp-&amp;gt;tr_attrsetrt.tr_logres = xfs_calc_attrsetrt_reservation(mp);
+resp-&amp;gt;tr_clearagi.tr_logres = xfs_calc_clear_agi_bucket_reservation(mp);
+resp-&amp;gt;tr_growrtzero.tr_logres = xfs_calc_growrtzero_reservation(mp);
+resp-&amp;gt;tr_growrtfree.tr_logres = xfs_calc_growrtfree_reservation(mp);
 }
 
 /*
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -627,7 +676,7 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; xfs_trans_roll(
 struct xfs_inode*dp)
 {
 struct xfs_trans*trans;
-unsigned intlogres, count;
+struct xfs_trans_restres;
 interror;
 
 /*
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -639,8 +688,9 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; xfs_trans_roll(
 /*
  * Copy the critical parameters from one trans to the next.
  */
-logres = trans-&amp;gt;t_log_res;
-count = trans-&amp;gt;t_log_count;
+tres.tr_logres = trans-&amp;gt;t_log_res;
+tres.tr_logcount = trans-&amp;gt;t_log_count;
+tres.tr_logflags = XFS_TRANS_PERM_LOG_RES;
 *tpp = xfs_trans_dup(trans);
 
 /*
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -664,8 +714,7 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; xfs_trans_roll(
  * across this call, or that anything that is locked be logged in
  * the prior and the next transactions.
  */
-error = xfs_trans_reserve(trans, 0, logres, 0,
-  XFS_TRANS_PERM_LOG_RES, count);
+error = xfs_trans_reserve(trans, &amp;amp;tres, 0, 0);
 /*
  *  Ensure that the inode is in the new transaction and locked.
  */
diff --git a/mkfs/maxtrres.c b/mkfs/maxtrres.c
index f12cc70..c16115c 100644
--- a/mkfs/maxtrres.c
+++ b/mkfs/maxtrres.c
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -27,55 +27,18 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt;
 #include &amp;lt;xfs/libxfs.h&amp;gt;
 #include "xfs_mkfs.h"
 
-static void
-max_attrsetm_trans_res_adjust(
-xfs_mount_t*mp)
-{
-intlocal;
-intsize;
-intnblks;
-intres;
-
-/*
- * Determine space the maximal sized attribute will use,
- * to calculate the largest reservation size needed.
- */
-size = libxfs_attr_leaf_newentsize(MAXNAMELEN, 64 * 1024,
-mp-&amp;gt;m_sb.sb_blocksize, &amp;amp;local);
-ASSERT(!local);
-nblks = XFS_DAENTER_SPACE_RES(mp, XFS_ATTR_FORK);
-nblks += XFS_B_TO_FSB(mp, size);
-nblks += XFS_NEXTENTADD_SPACE_RES(mp, size, XFS_ATTR_FORK);
-res = XFS_ATTRSETM_LOG_RES(mp) + XFS_ATTRSETRT_LOG_RES(mp) * nblks;
-mp-&amp;gt;m_reservations.tr_attrsetm = res;
-}
-
-static int
-max_trans_res_by_mount(
-xfs_mount_t*mp)
-{
-uint*p;
-intrval;
-xfs_trans_reservations_t*tr = &amp;amp;mp-&amp;gt;m_reservations;
-
-for (rval = 0, p = (uint *)tr; p &amp;lt; (uint *)(tr + 1); p++) {
-if ((int)*p &amp;gt; rval)
-rval = (int)*p;
-}
-return rval;
-}
-
 int
 max_trans_res(
-intdirversion,
-intsectorlog,
-intblocklog,
-intinodelog,
-intdirblocklog)
+intdirversion,
+intsectorlog,
+intblocklog,
+intinodelog,
+intdirblocklog)
 {
-xfs_sb_t*sbp;
-xfs_mount_tmount;
-intmaxres, maxfsb;
+struct xfs_sb*sbp;
+struct xfs_mountmount;
+struct xfs_trans_restres;
+intmaxfsb;
 
 memset(&amp;amp;mount, 0, sizeof(mount));
 sbp = &amp;amp;mount.m_sb;
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -93,16 +56,11 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; max_trans_res(
 sbp-&amp;gt;sb_versionnum = XFS_SB_VERSION_4 |
 (dirversion == 2 ? XFS_SB_VERSION_DIRV2BIT : 0);
 
-libxfs_mount(&amp;amp;mount, sbp, 0,0,0,0);
-max_attrsetm_trans_res_adjust(&amp;amp;mount);
-maxres = max_trans_res_by_mount(&amp;amp;mount);
-maxfsb = XFS_B_TO_FSB(&amp;amp;mount, maxres);
+libxfs_mount(&amp;amp;mount, sbp, 0, 0, 0, 0);
+xfs_log_adjust_max_attrsetm_res(&amp;amp;mount);
+xfs_log_get_max_trans_res(&amp;amp;mount, &amp;amp;tres);
+maxfsb = XFS_B_TO_FSB(&amp;amp;mount, tres.tr_logres);
 libxfs_umount(&amp;amp;mount);
 
-#if 0
-printf("#define\tMAXTRRES_S%d_B%d_I%d_D%d_V%d\t%lld\n",
-sectorlog, blocklog, inodelog, dirblocklog, dirversion, maxfsb);
-#endif
-
 return maxfsb;
 }
diff --git a/mkfs/proto.c b/mkfs/proto.c
index 56eed31..6071acc 100644
--- a/mkfs/proto.c
+++ b/mkfs/proto.c
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -119,7 +119,10 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; getres(
 
 mp = tp-&amp;gt;t_mountp;
 for (i = 0, r = MKFS_BLOCKRES(blocks); r &amp;gt;= blocks; r--) {
-i = libxfs_trans_reserve(tp, r, 0, 0, 0, 0);
+struct xfs_trans_restres;
+
+memset(&amp;amp;tres, 0, sizeof(tres));
+i = libxfs_trans_reserve(tp, &amp;amp;tres, r, 0);
 if (i == 0)
 return;
 }
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -597,31 +600,36 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; parse_proto(
  */
 static void
 rtinit(
-xfs_mount_t*mp)
+xfs_mount_t*mp)
 {
-xfs_dfiloff_tbno;
-intcommitted;
-xfs_dfiloff_tebno;
-xfs_bmbt_irec_t*ep;
-interror;
-xfs_fsblock_tfirst;
-xfs_bmap_free_tflist;
-inti;
-xfs_bmbt_irec_tmap[XFS_BMAP_MAX_NMAP];
-xfs_extlen_tnsumblocks;
-intnmap;
-xfs_inode_t*rbmip;
-xfs_inode_t*rsumip;
-xfs_trans_t*tp;
-struct credcreds;
-struct fsxattrfsxattrs;
+xfs_dfiloff_tbno;
+intcommitted;
+xfs_dfiloff_tebno;
+xfs_bmbt_irec_t*ep;
+interror;
+xfs_fsblock_tfirst;
+xfs_bmap_free_tflist;
+inti;
+xfs_bmbt_irec_tmap[XFS_BMAP_MAX_NMAP];
+xfs_extlen_tnsumblocks;
+intnmap;
+xfs_inode_t*rbmip;
+xfs_inode_t*rsumip;
+xfs_trans_t*tp;
+struct credcreds;
+struct fsxattrfsxattrs;
+struct xfs_trans_restres;
+
+memset(&amp;amp;tres, 0, sizeof(tres));
 
 /*
  * First, allocate the inodes.
  */
 tp = libxfs_trans_alloc(mp, 0);
-if ((i = libxfs_trans_reserve(tp, MKFS_BLOCKRES_INODE, 0, 0, 0, 0)))
+i = libxfs_trans_reserve(tp, &amp;amp;tres, MKFS_BLOCKRES_INODE, 0);
+if (i)
 res_failed(i);
+
 memset(&amp;amp;creds, 0, sizeof(creds));
 memset(&amp;amp;fsxattrs, 0, sizeof(fsxattrs));
 error = libxfs_inode_alloc(&amp;amp;tp, NULL, S_IFREG, 1, 0,
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -658,9 +666,11 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; rtinit(
  * Next, give the bitmap file some zero-filled blocks.
  */
 tp = libxfs_trans_alloc(mp, 0);
-if ((i = libxfs_trans_reserve(tp, mp-&amp;gt;m_sb.sb_rbmblocks +
-(XFS_BM_MAXLEVELS(mp, XFS_DATA_FORK) - 1), 0, 0, 0, 0)))
+i = libxfs_trans_reserve(tp, &amp;amp;tres, mp-&amp;gt;m_sb.sb_rbmblocks +
+ (XFS_BM_MAXLEVELS(mp, XFS_DATA_FORK) - 1), 0);
+if (i)
 res_failed(i);
+
 libxfs_trans_ijoin(tp, rbmip, 0);
 libxfs_trans_ihold(tp, rbmip);
 bno = 0;
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -694,10 +704,12 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; rtinit(
  */
 tp = libxfs_trans_alloc(mp, 0);
 nsumblocks = mp-&amp;gt;m_rsumsize &amp;gt;&amp;gt; mp-&amp;gt;m_sb.sb_blocklog;
-if ((i = libxfs_trans_reserve(tp,
+i = libxfs_trans_reserve(tp, &amp;amp;tres,
 nsumblocks + (XFS_BM_MAXLEVELS(mp, XFS_DATA_FORK) - 1),
-0, 0, 0, 0)))
+0);
+if (i)
 res_failed(i);
+
 libxfs_trans_ijoin(tp, rsumip, 0);
 libxfs_trans_ihold(tp, rsumip);
 bno = 0;
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -731,7 +743,8 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; rtinit(
  */
 for (bno = 0; bno &amp;lt; mp-&amp;gt;m_sb.sb_rextents; bno = ebno) {
 tp = libxfs_trans_alloc(mp, 0);
-if ((i = libxfs_trans_reserve(tp, 0, 0, 0, 0, 0)))
+i = libxfs_trans_reserve(tp, &amp;amp;tres, 0, 0);
+if (i)
 res_failed(i);
 xfs_bmap_init(&amp;amp;flist, &amp;amp;first);
 ebno = XFS_RTMIN(mp-&amp;gt;m_sb.sb_rextents,
diff --git a/mkfs/xfs_mkfs.c b/mkfs/xfs_mkfs.c
index a393607..350e2cb 100644
--- a/mkfs/xfs_mkfs.c
+++ b/mkfs/xfs_mkfs.c
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -2685,8 +2685,9 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; an AG size that is one stripe unit smaller, for example %llu.\n"),
  * BNO, CNT free block list
  */
 for (agno = 0; agno &amp;lt; agcount; agno++) {
-xfs_alloc_arg_targs;
-xfs_trans_t*tp;
+struct xfs_alloc_argargs;
+struct xfs_trans*tp;
+struct xfs_trans_restres;
 
 memset(&amp;amp;args, 0, sizeof(args));
 args.tp = tp = libxfs_trans_alloc(mp, 0);
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -2694,7 +2695,9 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; an AG size that is one stripe unit smaller, for example %llu.\n"),
 args.agno = agno;
 args.alignment = 1;
 args.pag = xfs_perag_get(mp,agno);
-if ((c = libxfs_trans_reserve(tp, worst_freelist, 0, 0, 0, 0)))
+memset(&amp;amp;tres, 0, sizeof(tres));
+c = libxfs_trans_reserve(tp, &amp;amp;tres, worst_freelist, 0);
+if (c)
 res_failed(c);
 libxfs_alloc_fix_freelist(&amp;amp;args, 0);
 xfs_perag_put(args.pag);
diff --git a/repair/phase6.c b/repair/phase6.c
index 5c33797..af7fc94 100644
--- a/repair/phase6.c
+++ b/repair/phase6.c
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -414,26 +414,31 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; res_failed(
 }
 
 void
-mk_rbmino(xfs_mount_t *mp)
+mk_rbmino(
+struct xfs_mount*mp)
 {
-xfs_trans_t*tp;
-xfs_inode_t*ip;
-xfs_bmbt_irec_t*ep;
-xfs_fsblock_tfirst;
-inti;
-intnmap;
-intcommitted;
-interror;
-xfs_bmap_free_tflist;
-xfs_dfiloff_tbno;
-xfs_bmbt_irec_tmap[XFS_BMAP_MAX_NMAP];
+struct xfs_trans*tp;
+struct xfs_inode*ip;
+struct xfs_bmbt_irec*ep;
+xfs_fsblock_tfirst;
+inti;
+intnmap;
+intcommitted;
+interror;
+struct xfs_bmap_freeflist;
+xfs_dfiloff_tbno;
+struct xfs_bmbt_irecmap[XFS_BMAP_MAX_NMAP];
+struct xfs_trans_restres;
+
+memset(&amp;amp;tres, 0, sizeof(tres));
 
 /*
  * first set up inode
  */
 tp = libxfs_trans_alloc(mp, 0);
 
-if ((i = libxfs_trans_reserve(tp, 10, 0, 0, 0, 0)))
+i = libxfs_trans_reserve(tp, &amp;amp;tres, 10, 0);
+if (i)
 res_failed(i);
 
 error = libxfs_trans_iget(mp, tp, mp-&amp;gt;m_sb.sb_rbmino, 0, 0, &amp;amp;ip);
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -474,8 +479,9 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; mk_rbmino(xfs_mount_t *mp)
  * from mkfs)
  */
 tp = libxfs_trans_alloc(mp, 0);
-if ((error = libxfs_trans_reserve(tp, mp-&amp;gt;m_sb.sb_rbmblocks +
-(XFS_BM_MAXLEVELS(mp, XFS_DATA_FORK) - 1), 0, 0, 0, 0)))
+error = libxfs_trans_reserve(tp, &amp;amp;tres, mp-&amp;gt;m_sb.sb_rbmblocks +
+(XFS_BM_MAXLEVELS(mp, XFS_DATA_FORK) - 1), 0);
+if (error)
 res_failed(error);
 
 libxfs_trans_ijoin(tp, ip, 0);
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -509,24 +515,29 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; mk_rbmino(xfs_mount_t *mp)
 }
 
 static int
-fill_rbmino(xfs_mount_t *mp)
+fill_rbmino(
+struct xfs_mount*mp)
 {
-xfs_buf_t*bp;
-xfs_trans_t*tp;
-xfs_inode_t*ip;
-xfs_rtword_t*bmp;
-xfs_fsblock_tfirst;
-intnmap;
-interror;
-xfs_dfiloff_tbno;
-xfs_bmbt_irec_tmap;
+struct xfs_buf*bp;
+struct xfs_trans*tp;
+struct xfs_inode*ip;
+xfs_rtword_t*bmp;
+xfs_fsblock_tfirst;
+intnmap;
+interror;
+xfs_dfiloff_tbno;
+struct xfs_bmbt_irecmap;
+struct xfs_trans_restres;
+
+memset(&amp;amp;tres, 0, sizeof(tres));
 
 bmp = btmcompute;
 bno = 0;
 
 tp = libxfs_trans_alloc(mp, 0);
 
-if ((error = libxfs_trans_reserve(tp, 10, 0, 0, 0, 0)))
+error = libxfs_trans_reserve(tp, &amp;amp;tres, 10, 0);
+if (error)
 res_failed(error);
 
 error = libxfs_trans_iget(mp, tp, mp-&amp;gt;m_sb.sb_rbmino, 0, 0, &amp;amp;ip);
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -576,18 +587,22 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; _("can't access block %" PRIu64 " (fsbno %" PRIu64 ") of realtime bitmap inode %
 }
 
 static int
-fill_rsumino(xfs_mount_t *mp)
+fill_rsumino(
+struct xfs_mount*mp)
 {
-xfs_buf_t*bp;
-xfs_trans_t*tp;
-xfs_inode_t*ip;
-xfs_suminfo_t*smp;
-xfs_fsblock_tfirst;
-intnmap;
-interror;
-xfs_dfiloff_tbno;
-xfs_dfiloff_tend_bno;
-xfs_bmbt_irec_tmap;
+struct xfs_buf*bp;
+struct xfs_trans*tp;
+struct xfs_inode*ip;
+xfs_suminfo_t*smp;
+xfs_fsblock_tfirst;
+intnmap;
+interror;
+xfs_dfiloff_tbno;
+xfs_dfiloff_tend_bno;
+struct xfs_bmbt_irecmap;
+struct xfs_trans_restres;
+
+memset(&amp;amp;tres, 0, sizeof(tres));
 
 smp = sumcompute;
 bno = 0;
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -595,7 +610,8 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; fill_rsumino(xfs_mount_t *mp)
 
 tp = libxfs_trans_alloc(mp, 0);
 
-if ((error = libxfs_trans_reserve(tp, 10, 0, 0, 0, 0)))
+error = libxfs_trans_reserve(tp, &amp;amp;tres, 10, 0);
+if (error)
 res_failed(error);
 
 error = libxfs_trans_iget(mp, tp, mp-&amp;gt;m_sb.sb_rsumino, 0, 0, &amp;amp;ip);
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -645,28 +661,30 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; _("can't access block %" PRIu64 " (fsbno %" PRIu64 ") of realtime summary inode
 }
 
 static void
-mk_rsumino(xfs_mount_t *mp)
+mk_rsumino(
+struct xfs_mount*mp)
 {
-xfs_trans_t*tp;
-xfs_inode_t*ip;
-xfs_bmbt_irec_t*ep;
-xfs_fsblock_tfirst;
-inti;
-intnmap;
-intcommitted;
-interror;
-intnsumblocks;
-xfs_bmap_free_tflist;
-xfs_dfiloff_tbno;
-xfs_bmbt_irec_tmap[XFS_BMAP_MAX_NMAP];
+struct xfs_trans*tp;
+struct xfs_inode*ip;
+struct xfs_bmbt_irec*ep;
+xfs_fsblock_tfirst;
+inti;
+intnmap;
+intcommitted;
+interror;
+intnsumblocks;
+struct xfs_bmap_freeflist;
+xfs_dfiloff_tbno;
+struct xfs_bmbt_irecmap[XFS_BMAP_MAX_NMAP];
+struct xfs_trans_restres;
 
 /*
  * first set up inode
  */
 tp = libxfs_trans_alloc(mp, 0);
 
-if ((i = libxfs_trans_reserve(tp, 10, XFS_ICHANGE_LOG_RES(mp), 0,
-XFS_TRANS_PERM_LOG_RES, XFS_MKDIR_LOG_COUNT)))
+i = libxfs_trans_reserve(tp, &amp;amp;m_tresp(mp)-&amp;gt;tr_ichange, 10, 0);
+if (i)
 res_failed(i);
 
 error = libxfs_trans_iget(mp, tp, mp-&amp;gt;m_sb.sb_rsumino, 0, 0, &amp;amp;ip);
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -710,11 +728,13 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; mk_rsumino(xfs_mount_t *mp)
 xfs_bmap_init(&amp;amp;flist, &amp;amp;first);
 
 nsumblocks = mp-&amp;gt;m_rsumsize &amp;gt;&amp;gt; mp-&amp;gt;m_sb.sb_blocklog;
-if ((error = libxfs_trans_reserve(tp,
-  mp-&amp;gt;m_sb.sb_rbmblocks +
-      (XFS_BM_MAXLEVELS(mp, XFS_DATA_FORK) - 1),
-  BBTOB(128), 0, XFS_TRANS_PERM_LOG_RES,
-  XFS_DEFAULT_PERM_LOG_COUNT)))
+tres.tr_logres = BBTOB(128);
+tres.tr_logcount = XFS_DEFAULT_PERM_LOG_COUNT;
+tres.tr_logflags = XFS_TRANS_PERM_LOG_RES;
+error = libxfs_trans_reserve(tp, &amp;amp;tres, mp-&amp;gt;m_sb.sb_rbmblocks +
+     (XFS_BM_MAXLEVELS(mp, XFS_DATA_FORK) - 1),
+     0);
+if (error)
 res_failed(error);
 
 libxfs_trans_ijoin(tp, ip, 0);
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -764,8 +784,8 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; mk_root_dir(xfs_mount_t *mp)
 tp = libxfs_trans_alloc(mp, 0);
 ip = NULL;
 
-if ((i = libxfs_trans_reserve(tp, 10, XFS_ICHANGE_LOG_RES(mp), 0,
-XFS_TRANS_PERM_LOG_RES, XFS_MKDIR_LOG_COUNT)))
+i = libxfs_trans_reserve(tp, &amp;amp;m_tresp(mp)-&amp;gt;tr_ichange, 10, 0);
+if (i)
 res_failed(i);
 
 error = libxfs_trans_iget(mp, tp, mp-&amp;gt;m_sb.sb_rootino, 0, 0, &amp;amp;ip);
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -856,8 +876,8 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; mk_orphanage(xfs_mount_t *mp)
 xfs_bmap_init(&amp;amp;flist, &amp;amp;first);
 
 nres = XFS_MKDIR_SPACE_RES(mp, xname.len);
-if ((i = libxfs_trans_reserve(tp, nres, XFS_MKDIR_LOG_RES(mp), 0,
-XFS_TRANS_PERM_LOG_RES, XFS_MKDIR_LOG_COUNT)))
+i = libxfs_trans_reserve(tp, &amp;amp;m_tresp(mp)-&amp;gt;tr_mkdir, nres, 0);
+if (i)
 res_failed(i);
 
 /*
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -993,10 +1013,9 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; mv_orphanage(
 if (err) {
 ASSERT(err == ENOENT);
 
-if ((err = libxfs_trans_reserve(tp, nres,
-XFS_RENAME_LOG_RES(mp), 0,
-XFS_TRANS_PERM_LOG_RES,
-XFS_RENAME_LOG_COUNT)))
+err = libxfs_trans_reserve(tp, &amp;amp;m_tresp(mp)-&amp;gt;tr_rename,
+   nres, 0);
+if (err)
 do_error(
 _("space reservation failed (%d), filesystem may be out of space\n"),
 err);
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -1037,10 +1056,9 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; mv_orphanage(
 libxfs_trans_commit(tp,
 XFS_TRANS_RELEASE_LOG_RES|XFS_TRANS_SYNC);
 } else  {
-if ((err = libxfs_trans_reserve(tp, nres,
-XFS_RENAME_LOG_RES(mp), 0,
-XFS_TRANS_PERM_LOG_RES,
-XFS_RENAME_LOG_COUNT)))
+err = libxfs_trans_reserve(tp, &amp;amp;m_tresp(mp)-&amp;gt;tr_rename,
+   nres, 0);
+if (err)
 do_error(
 _("space reservation failed (%d), filesystem may be out of space\n"),
 err);
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -1095,8 +1113,8 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; mv_orphanage(
  * also accounted for in the create
  */
 nres = XFS_DIRENTER_SPACE_RES(mp, xname.len);
-err = libxfs_trans_reserve(tp, nres, XFS_REMOVE_LOG_RES(mp), 0,
-XFS_TRANS_PERM_LOG_RES, XFS_REMOVE_LOG_COUNT);
+err = libxfs_trans_reserve(tp, &amp;amp;m_tresp(mp)-&amp;gt;tr_remove,
+   nres, 0);
 if (err)
 do_error(
 _("space reservation failed (%d), filesystem may be out of space\n"),
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -1191,8 +1209,7 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; longform_dir2_rebuild(
 
 tp = libxfs_trans_alloc(mp, 0);
 nres = XFS_REMOVE_SPACE_RES(mp);
-error = libxfs_trans_reserve(tp, nres, XFS_REMOVE_LOG_RES(mp), 0,
-XFS_TRANS_PERM_LOG_RES, XFS_REMOVE_LOG_COUNT);
+error = libxfs_trans_reserve(tp, &amp;amp;m_tresp(mp)-&amp;gt;tr_remove, nres, 0);
 if (error)
 res_failed(error);
 libxfs_trans_ijoin(tp, ip, 0);
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -1232,8 +1249,8 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; longform_dir2_rebuild(
 
 tp = libxfs_trans_alloc(mp, 0);
 nres = XFS_CREATE_SPACE_RES(mp, p-&amp;gt;name.len);
-error = libxfs_trans_reserve(tp, nres, XFS_CREATE_LOG_RES(mp),
-0, XFS_TRANS_PERM_LOG_RES, XFS_CREATE_LOG_COUNT);
+error = libxfs_trans_reserve(tp, &amp;amp;m_tresp(mp)-&amp;gt;tr_create,
+     nres, 0);
 if (error) {
 do_warn(
 _("space reservation failed (%d), filesystem may be out of space\n"),
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -1294,8 +1311,7 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; dir2_kill_block(
 
 tp = libxfs_trans_alloc(mp, 0);
 nres = XFS_REMOVE_SPACE_RES(mp);
-error = libxfs_trans_reserve(tp, nres, XFS_REMOVE_LOG_RES(mp), 0,
-XFS_TRANS_PERM_LOG_RES, XFS_REMOVE_LOG_COUNT);
+error = libxfs_trans_reserve(tp, &amp;amp;m_tresp(mp)-&amp;gt;tr_remove, nres, 0);
 if (error)
 res_failed(error);
 libxfs_trans_ijoin(tp, ip, 0);
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -1476,8 +1492,7 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; longform_dir2_entry_check_data(
 freetab-&amp;gt;nents = db + 1;
 
 tp = libxfs_trans_alloc(mp, 0);
-error = libxfs_trans_reserve(tp, 0, XFS_REMOVE_LOG_RES(mp), 0,
-XFS_TRANS_PERM_LOG_RES, XFS_REMOVE_LOG_COUNT);
+error = libxfs_trans_reserve(tp, &amp;amp;m_tresp(mp)-&amp;gt;tr_remove, 0, 0);
 if (error)
 res_failed(error);
 libxfs_trans_ijoin(tp, ip, 0);
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -2525,10 +2540,8 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; process_dir_inode(
  * new define in ourselves.
  */
 nres = no_modify ? 0 : XFS_REMOVE_SPACE_RES(mp);
-error = libxfs_trans_reserve(tp, nres,
-XFS_REMOVE_LOG_RES(mp), 0,
-XFS_TRANS_PERM_LOG_RES,
-XFS_REMOVE_LOG_COUNT);
+error = libxfs_trans_reserve(tp,
+&amp;amp;m_tresp(mp)-&amp;gt;tr_remove, nres, 0);
 if (error)
 res_failed(error);
 
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -2576,8 +2589,8 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; process_dir_inode(
 ASSERT(tp != NULL);
 
 nres = XFS_MKDIR_SPACE_RES(mp, 2);
-error = libxfs_trans_reserve(tp, nres, XFS_MKDIR_LOG_RES(mp),
-0, XFS_TRANS_PERM_LOG_RES, XFS_MKDIR_LOG_COUNT);
+error = libxfs_trans_reserve(tp, &amp;amp;m_tresp(mp)-&amp;gt;tr_mkdir,
+     nres, 0);
 if (error)
 res_failed(error);
 
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -2638,12 +2651,8 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; process_dir_inode(
 ASSERT(tp != NULL);
 
 nres = XFS_MKDIR_SPACE_RES(mp, 1);
-error = libxfs_trans_reserve(tp, nres,
-XFS_MKDIR_LOG_RES(mp),
-0,
-XFS_TRANS_PERM_LOG_RES,
-XFS_MKDIR_LOG_COUNT);
-
+error = libxfs_trans_reserve(tp, &amp;amp;m_tresp(mp)-&amp;gt;tr_mkdir,
+     nres, 0);
 if (error)
 res_failed(error);
 
diff --git a/repair/phase7.c b/repair/phase7.c
index bd1668e..88f5345 100644
--- a/repair/phase7.c
+++ b/repair/phase7.c
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -71,10 +71,8 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; update_inode_nlinks(
 
 tp = libxfs_trans_alloc(mp, XFS_TRANS_REMOVE);
 
-error = libxfs_trans_reserve(tp, (no_modify ? 0 : 10),
-XFS_REMOVE_LOG_RES(mp), 0, XFS_TRANS_PERM_LOG_RES,
-XFS_REMOVE_LOG_COUNT);
-
+error = libxfs_trans_reserve(tp, &amp;amp;m_tresp(mp)-&amp;gt;tr_remove,
+     (no_modify ? 0 : 10), 0);
 ASSERT(error == 0);
 
 error = libxfs_trans_iget(mp, tp, ino, 0, 0, &amp;amp;ip);
&lt;/pre&gt;</description>
    <dc:creator>Jeff Liu</dc:creator>
    <dc:date>2013-05-17T09:21:03</dc:date>
  </item>
  <item rdf:about="http://comments.gmane.org/gmane.comp.file-systems.xfs.general/52637">
    <title>[PATCH v2 7/8] xfs: Add xfs_log_rlimit.[c|h]</title>
    <link>http://comments.gmane.org/gmane.comp.file-systems.xfs.general/52637</link>
    <description>&lt;pre&gt;From: Jie Liu &amp;lt;jeff.liu&amp;lt; at &amp;gt;oracle.com&amp;gt;

Add source files for xfs_log_rlimit.[c|h].
The new source would be used for the log space validation.

Signed-off-by: Jie Liu &amp;lt;jeff.liu&amp;lt; at &amp;gt;oracle.com&amp;gt;

---
 fs/xfs/Makefile         |    3 +-
 fs/xfs/xfs_log_rlimit.c |  148 +++++++++++++++++++++++++++++++++++++++++++++++
 fs/xfs/xfs_log_rlimit.h |   25 ++++++++
 fs/xfs/xfs_mount.h      |    3 +
 4 files changed, 178 insertions(+), 1 deletion(-)
 create mode 100644 fs/xfs/xfs_log_rlimit.c
 create mode 100644 fs/xfs/xfs_log_rlimit.h

diff --git a/fs/xfs/Makefile b/fs/xfs/Makefile
index 6313b69..7e7a49d 100644
--- a/fs/xfs/Makefile
+++ b/fs/xfs/Makefile
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -75,7 +75,8 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; xfs-y+= xfs_alloc.o \
    xfs_log_recover.o \
    xfs_mount.o \
    xfs_symlink.o \
-   xfs_trans.o
+   xfs_trans.o \
+   xfs_log_rlimit.o
 
 # low-level transaction/log code
 xfs-y+= xfs_log.o \
diff --git a/fs/xfs/xfs_log_rlimit.c b/fs/xfs/xfs_log_rlimit.c
new file mode 100644
index 0000000..3e84d46
--- /dev/null
+++ b/fs/xfs/xfs_log_rlimit.c
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -0,0 +1,148 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt;
+/*
+ * Copyright (c) 2013 Jie Liu.
+ * 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
+ */
+#include "xfs.h"
+#include "xfs_fs.h"
+#include "xfs_sb.h"
+#include "xfs_mount.h"
+#include "xfs_trans_space.h"
+#include "xfs_bmap_btree.h"
+#include "xfs_inode.h"
+#include "xfs_log.h"
+#include "xfs_log_priv.h"
+#include "xfs_da_btree.h"
+#include "xfs_attr_leaf.h"
+
+void
+xfs_log_adjust_max_attrsetm_res(
+struct xfs_mount*mp)
+{
+intsize;
+intnblks;
+intres;
+
+/*
+ * Calculate the maximum length in bytes that would be required
+ * for a local attribute value as large attributes out of line
+ * are not logged.
+ */
+size = xfs_attr_leaf_entsize_local_max(mp-&amp;gt;m_sb.sb_blocksize) -
+       MAXNAMELEN - 1;
+nblks = XFS_DAENTER_SPACE_RES(mp, XFS_ATTR_FORK);
+nblks += XFS_B_TO_FSB(mp, size);
+nblks += XFS_NEXTENTADD_SPACE_RES(mp, size, XFS_ATTR_FORK);
+
+res = m_tresp(mp)-&amp;gt;tr_attrsetm.tr_logres +
+      m_tresp(mp)-&amp;gt;tr_attrsetrt.tr_logres * nblks;
+mp-&amp;gt;m_reservations.tr_attrsetm.tr_logres = res;
+}
+
+/*
+ * Iterate over the log space reservation table to figure out and return
+ * the maximum one in terms of the pre-calculated values which were done
+ * at mount time.
+ */
+void
+xfs_log_get_max_trans_res(
+struct xfs_mount*mp,
+struct xfs_trans_res*max_tresp)
+{
+struct xfs_trans_reservations*mtresp = m_tresp(mp);
+struct xfs_trans_restres_items[XFS_TRANS_RES_NUM];
+struct xfs_trans_res*tresp;
+inti, logspace  = 0;
+
+xfs_log_adjust_max_attrsetm_res(mp);
+
+memcpy(tres_items, mtresp, sizeof(*mtresp));
+for (i = 0; i &amp;lt; ARRAY_SIZE(tres_items); i++) {
+struct xfs_trans_res*p = &amp;amp;tres_items[i];
+inttmp = p-&amp;gt;tr_logcount &amp;gt; 1 ?
+      p-&amp;gt;tr_logres * p-&amp;gt;tr_logcount :
+      p-&amp;gt;tr_logres;
+if (logspace &amp;lt; tmp) {
+logspace = tmp;
+tresp = p;
+}
+}
+
+*max_tresp = *tresp;
+}
+
+/*
+ * Verify if the configured log space is sufficient or not for the specified
+ * log stripe unit.
+ */
+void
+xfs_log_validate_logspace(
+struct xfs_mount*mp)
+{
+struct xlog*log = mp-&amp;gt;m_log;
+struct xfs_trans_restres;
+intmaxlres;
+intminlblks = 0, lsunit = 0;
+
+xfs_log_get_max_trans_res(mp, &amp;amp;tres);
+
+maxlres = xfs_log_calc_unit_res(mp, tres.tr_logres);
+maxlres = tres.tr_logcount &amp;gt; 1 ? maxlres * tres.tr_logcount : maxlres;
+
+if (xfs_sb_version_haslogv2(&amp;amp;log-&amp;gt;l_mp-&amp;gt;m_sb) &amp;amp;&amp;amp;
+    log-&amp;gt;l_mp-&amp;gt;m_sb.sb_logsunit &amp;gt; 1)
+lsunit = BTOBB(log-&amp;gt;l_mp-&amp;gt;m_sb.sb_logsunit);
+
+/*
+ * Two factors should be taken into account for calculating the minimum
+ * log space.
+ * 1) The fundamental limitation is that no single transaction can be
+ *    larger than half size of the log.
+ * 2) If the lsunit option is specified, a transaction requires 2 LSU
+ *    for the reservation because there are two log writes that can
+ *    require padding - the transaction data and the commit record which
+ *    are written separately and both can require padding to the LSU.
+ *    Consider that we can have an active CIL reservation holding 2*LSU,
+ *    but the CIL is not over a push threshold, in this case, if we
+ *    don't have enough log space for at one new transaction, which
+ *    includes another 2*LSU in the reservation, we will run into dead
+ *    loop situation in log space grant procedure. i.e.
+ *    xlog_grant_head_wait().
+ *
+ *    Hence the log size needs to be able to contain two maximally sized
+ *    and padded transactions, which is (2 * (2 * LSU + maxlres)).
+ *
+ * Also, the log size should be a multiple of the log stripe unit, round
+ * it up to lsunit boundary if lsunit is specified.
+ */
+minlblks = lsunit ? (roundup(BTOBB(maxlres), lsunit) + 2 * lsunit) * 2 :
+    BTOBB(maxlres) * 2;
+
+if (log-&amp;gt;l_logBBsize &amp;lt; minlblks) {
+xfs_crit(mp,
+"Log size %d blocks too small, minimu size is %d blocks",
+ log-&amp;gt;l_logBBsize, minlblks);
+}
+if (log-&amp;gt;l_logBBsize &amp;gt; XFS_MAX_LOG_BLOCKS) {
+xfs_crit(mp,
+"Log size %d blocks too large, maximum size is %lld blocks",
+ log-&amp;gt;l_logBBsize, XFS_MAX_LOG_BLOCKS);
+}
+if (log-&amp;gt;l_logsize &amp;gt; XFS_MAX_LOG_BYTES) {
+xfs_crit(mp,
+"log size %lld bytes too large, maximum size is %lld bytes",
+ (long long)(log-&amp;gt;l_logsize), XFS_MAX_LOG_BYTES);
+}
+}
diff --git a/fs/xfs/xfs_log_rlimit.h b/fs/xfs/xfs_log_rlimit.h
new file mode 100644
index 0000000..93d8a0e
--- /dev/null
+++ b/fs/xfs/xfs_log_rlimit.h
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -0,0 +1,25 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt;
+/*
+ * Copyright (c) 2013 Jie Liu.
+ * 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_LOG_RLIMIT_H__
+#define __XFS_LOG_RLIMIT_H__
+
+void xfs_log_adjust_max_attrsetm_res(struct xfs_mount *);
+void xfs_log_get_max_trans_res(struct xfs_mount *, struct xfs_trans_res *);
+void xfs_log_validate_logspace(struct xfs_mount *);
+
+#endif/* __XFS_LOG_PRIV_H__ */
diff --git a/fs/xfs/xfs_mount.h b/fs/xfs/xfs_mount.h
index 27ae8a9..2b469a5 100644
--- a/fs/xfs/xfs_mount.h
+++ b/fs/xfs/xfs_mount.h
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -62,6 +62,9 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; typedef struct xfs_trans_reservations {
 struct xfs_trans_restr_fsyncts;/* update timestamps on fsync */
 } xfs_trans_reservations_t;
 
+#define XFS_TRANS_RES_NUM (sizeof(struct xfs_trans_reservations) / \
+   sizeof(struct xfs_trans_res))
+
 #ifndef __KERNEL__
 
 #define xfs_daddr_to_agno(mp,d) \
&lt;/pre&gt;</description>
    <dc:creator>Jeff Liu</dc:creator>
    <dc:date>2013-05-17T05:39:05</dc:date>
  </item>
  <item rdf:about="http://comments.gmane.org/gmane.comp.file-systems.xfs.general/52636">
    <title>[PATCH v2 2/8] xfs: Introduce tr_fsyncts to m_reservation</title>
    <link>http://comments.gmane.org/gmane.comp.file-systems.xfs.general/52636</link>
    <description>&lt;pre&gt;From: Jie Liu &amp;lt;jeff.liu&amp;lt; at &amp;gt;oracle.com&amp;gt;

A preparation step.

For now fsync_ts transaction use the pre-calculated log reservation
size of tr_swrite.
This patch introduce a new item tr_fsyncts to mp-&amp;gt;m_reservations
structure so that we can fetch the log reservation value for it
in a same manner to others.

Signed-off-by: Jie Liu &amp;lt;jeff.liu&amp;lt; at &amp;gt;oracle.com&amp;gt;
---
 fs/xfs/xfs_mount.h |    1 +
 fs/xfs/xfs_trans.c |    1 +
 fs/xfs/xfs_trans.h |    2 +-
 3 files changed, 3 insertions(+), 1 deletion(-)

diff --git a/fs/xfs/xfs_mount.h b/fs/xfs/xfs_mount.h
index 474826e..00d33f6 100644
--- a/fs/xfs/xfs_mount.h
+++ b/fs/xfs/xfs_mount.h
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -59,6 +59,7 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; typedef struct xfs_trans_reservations {
 struct xfs_trans_restr_qm_quotaoff;/* turn quota off */
 struct xfs_trans_restr_qm_equotaoff;/* end of turn quota off */
 struct xfs_trans_restr_sb;/* modify superblock */
+struct xfs_trans_restr_fsyncts;/* update timestamps on fsync */
 } xfs_trans_reservations_t;
 
 #ifndef __KERNEL__
diff --git a/fs/xfs/xfs_trans.c b/fs/xfs/xfs_trans.c
index 8f38901..f1ccb2d 100644
--- a/fs/xfs/xfs_trans.c
+++ b/fs/xfs/xfs_trans.c
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -733,6 +733,7 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; xfs_trans_init(
 resp-&amp;gt;tr_ichange.tr_logres = xfs_calc_ichange_reservation(mp);
 resp-&amp;gt;tr_growdata.tr_logres = xfs_calc_growdata_reservation(mp);
 resp-&amp;gt;tr_swrite.tr_logres = xfs_calc_swrite_reservation(mp);
+resp-&amp;gt;tr_fsyncts.tr_logres = xfs_calc_swrite_reservation(mp);
 resp-&amp;gt;tr_writeid.tr_logres = xfs_calc_writeid_reservation(mp);
 resp-&amp;gt;tr_attrsetrt.tr_logres = xfs_calc_attrsetrt_reservation(mp);
 resp-&amp;gt;tr_clearagi.tr_logres = xfs_calc_clear_agi_bucket_reservation(mp);
diff --git a/fs/xfs/xfs_trans.h b/fs/xfs/xfs_trans.h
index 15a6031..509ad4d 100644
--- a/fs/xfs/xfs_trans.h
+++ b/fs/xfs/xfs_trans.h
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -254,7 +254,7 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; struct xfs_log_item_desc {
  * Logging the inode timestamps on an fsync -- same as SWRITE
  * as long as SWRITE logs the entire inode core
  */
-#define XFS_FSYNC_TS_LOG_RES(mp) ((mp)-&amp;gt;m_reservations.tr_swrite.tr_logres)
+#define XFS_FSYNC_TS_LOG_RES(mp) ((mp)-&amp;gt;m_reservations.tr_fsyncts.tr_logres)
 #defineXFS_WRITEID_LOG_RES(mp) ((mp)-&amp;gt;m_reservations.tr_swrite.tr_logres)
 #defineXFS_ADDAFORK_LOG_RES(mp) ((mp)-&amp;gt;m_reservations.tr_addafork.tr_logres)
 #defineXFS_ATTRSETM_LOG_RES(mp) ((mp)-&amp;gt;m_reservations.tr_attrsetm.tr_logres)
&lt;/pre&gt;</description>
    <dc:creator>Jeff Liu</dc:creator>
    <dc:date>2013-05-17T05:38:59</dc:date>
  </item>
  <item rdf:about="http://comments.gmane.org/gmane.comp.file-systems.xfs.general/52635">
    <title>[PATCH v2 8/8] xfs: Validate log space at mount time</title>
    <link>http://comments.gmane.org/gmane.comp.file-systems.xfs.general/52635</link>
    <description>&lt;pre&gt;From: Jie Liu &amp;lt;jeff.liu&amp;lt; at &amp;gt;oracle.com&amp;gt;

Validate log space during log mount stage, the underlying function will
drop a warning message via syslog in critical level if the log space is
too small or too large.

Signed-off-by: Jie Liu &amp;lt;jeff.liu&amp;lt; at &amp;gt;oracle.com&amp;gt;
---
 fs/xfs/xfs_log.c |   12 ++++++++++++
 1 file changed, 12 insertions(+)

diff --git a/fs/xfs/xfs_log.c b/fs/xfs/xfs_log.c
index 304b3d0..2a631d9 100644
--- a/fs/xfs/xfs_log.c
+++ b/fs/xfs/xfs_log.c
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -30,6 +30,7 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt;
 #include "xfs_alloc_btree.h"
 #include "xfs_ialloc_btree.h"
 #include "xfs_log_recover.h"
+#include "xfs_log_rlimit.h"
 #include "xfs_trans_priv.h"
 #include "xfs_dinode.h"
 #include "xfs_inode.h"
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -631,6 +632,17 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; xfs_log_mount(
 }
 
 /*
+ * Validate the given log space and drop a critical message via syslog
+ * if the log size is too small that would lead to some unexpected
+ * situations in transaction log space reservation stage.
+ * Note: we can't just reject the mount if the validation fails.  This
+ * would mean that people would have to downgrade their kernel just to
+ * remedy the situation as there is no way to grow the log (short of
+ * black magic surgery with xfs_db).
+ */
+xfs_log_validate_logspace(mp);
+
+/*
  * Initialize the AIL now we have a log.
  */
 error = xfs_trans_ail_init(mp);
&lt;/pre&gt;</description>
    <dc:creator>Jeff Liu</dc:creator>
    <dc:date>2013-05-17T05:38:52</dc:date>
  </item>
  <item rdf:about="http://comments.gmane.org/gmane.comp.file-systems.xfs.general/52634">
    <title>[PATCH v2 6/8] xfs: Refactor xfs_ticket_alloc() to extract a newhelper</title>
    <link>http://comments.gmane.org/gmane.comp.file-systems.xfs.general/52634</link>
    <description>&lt;pre&gt;From: Jie Liu &amp;lt;jeff.liu&amp;lt; at &amp;gt;oracle.com&amp;gt;

Refactor xfs_ticket_alloc() to extract a new helper, i.e.
xfs_log_calc_unit_res().

This helper would be used to calcaulation the total log reservation
size by adding extra log operation/transation headers for a new
log ticket.

Signed-off-by: Jie Liu &amp;lt;jeff.liu&amp;lt; at &amp;gt;oracle.com&amp;gt;
---
 fs/xfs/xfs_log.c |   53 +++++++++++++++++++++++++++++++++++------------------
 fs/xfs/xfs_log.h |    1 +
 2 files changed, 36 insertions(+), 18 deletions(-)

diff --git a/fs/xfs/xfs_log.c b/fs/xfs/xfs_log.c
index b345a7c..304b3d0 100644
--- a/fs/xfs/xfs_log.c
+++ b/fs/xfs/xfs_log.c
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -3377,24 +3377,17 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; xfs_log_ticket_get(
 }
 
 /*
- * Allocate and initialise a new log ticket.
+ * Figure out the total log space unit (in bytes) that would be
+ * required for a log ticket.
  */
-struct xlog_ticket *
-xlog_ticket_alloc(
-struct xlog*log,
-intunit_bytes,
-intcnt,
-charclient,
-boolpermanent,
-xfs_km_flags_talloc_flags)
+int
+xfs_log_calc_unit_res(
+struct xfs_mount*mp,
+intunit_bytes)
 {
-struct xlog_ticket *tic;
-uintnum_headers;
-inticlog_space;
-
-tic = kmem_zone_zalloc(xfs_log_ticket_zone, alloc_flags);
-if (!tic)
-return NULL;
+struct xlog*log = mp-&amp;gt;m_log;
+inticlog_space;
+uintnum_headers;
 
 /*
  * Permanent reservations have up to 'cnt'-1 active log operations
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -3478,11 +3471,35 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; xlog_ticket_alloc(
 unit_bytes += 2*BBSIZE;
         }
 
+return unit_bytes;
+}
+
+/*
+ * Allocate and initialise a new log ticket.
+ */
+struct xlog_ticket *
+xlog_ticket_alloc(
+struct xlog*log,
+intunit_bytes,
+intcnt,
+charclient,
+boolpermanent,
+xfs_km_flags_talloc_flags)
+{
+struct xlog_ticket*tic;
+intunit_res;
+
+unit_res = xfs_log_calc_unit_res(log-&amp;gt;l_mp, unit_bytes);
+
+tic = kmem_zone_zalloc(xfs_log_ticket_zone, alloc_flags);
+if (!tic)
+return NULL;
+
 atomic_set(&amp;amp;tic-&amp;gt;t_ref, 1);
 tic-&amp;gt;t_task= current;
 INIT_LIST_HEAD(&amp;amp;tic-&amp;gt;t_queue);
-tic-&amp;gt;t_unit_res= unit_bytes;
-tic-&amp;gt;t_curr_res= unit_bytes;
+tic-&amp;gt;t_unit_res= unit_res;
+tic-&amp;gt;t_curr_res= unit_res;
 tic-&amp;gt;t_cnt= cnt;
 tic-&amp;gt;t_ocnt= cnt;
 tic-&amp;gt;t_tid= prandom_u32();
diff --git a/fs/xfs/xfs_log.h b/fs/xfs/xfs_log.h
index 5caee96..8424291 100644
--- a/fs/xfs/xfs_log.h
+++ b/fs/xfs/xfs_log.h
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -184,6 +184,7 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; boolxfs_log_item_in_current_chkpt(struct xfs_log_item *lip);
 voidxfs_log_work_queue(struct xfs_mount *mp);
 voidxfs_log_worker(struct work_struct *work);
 voidxfs_log_quiesce(struct xfs_mount *mp);
+intxfs_log_calc_unit_res(struct xfs_mount *mp, int unit_bytes);
 
 #endif
 #endif/* __XFS_LOG_H__ */
&lt;/pre&gt;</description>
    <dc:creator>Jeff Liu</dc:creator>
    <dc:date>2013-05-17T05:38:39</dc:date>
  </item>
  <item rdf:about="http://comments.gmane.org/gmane.comp.file-systems.xfs.general/52633">
    <title>[PATCH v2 4/8] xfs: efactor xfs_trans_reserve() interface</title>
    <link>http://comments.gmane.org/gmane.comp.file-systems.xfs.general/52633</link>
    <description>&lt;pre&gt;From: Jie Liu &amp;lt;jeff.liu&amp;lt; at &amp;gt;oracle.com&amp;gt;

With the new xfs_trans_res structure has been introduced, the log
reservation size, log count as well as log flags are pre-initialized
at mount time.  So it's time to refine xfs_trans_reserve() interface
to be more neat.

Also, introduce a new inline helper m_tresp() to return a pointer
to the mp-&amp;gt;m_reservations structure to simplify the input.

Signed-off-by: Jie Liu &amp;lt;jeff.liu&amp;lt; at &amp;gt;oracle.com&amp;gt;
---
 fs/xfs/xfs_aops.c        |    2 +-
 fs/xfs/xfs_attr.c        |   38 ++++++++++----------
 fs/xfs/xfs_bmap.c        |   16 ++++-----
 fs/xfs/xfs_dfrag.c       |    5 ++-
 fs/xfs/xfs_dquot.c       |    6 ++--
 fs/xfs/xfs_fsops.c       |    8 ++---
 fs/xfs/xfs_inode.c       |    5 +--
 fs/xfs/xfs_ioctl.c       |    2 +-
 fs/xfs/xfs_iomap.c       |   18 ++++------
 fs/xfs/xfs_iops.c        |    8 ++---
 fs/xfs/xfs_log_recover.c |    5 ++-
 fs/xfs/xfs_mount.c       |    9 ++---
 fs/xfs/xfs_mount.h       |    6 ++++
 fs/xfs/xfs_qm.c          |   11 +++---
 fs/xfs/xfs_qm_syscalls.c |   13 +++----
 fs/xfs/xfs_rename.c      |    6 ++--
 fs/xfs/xfs_rtalloc.c     |   17 ++++-----
 fs/xfs/xfs_symlink.c     |   10 +++---
 fs/xfs/xfs_trans.c       |   58 +++++++++++++++---------------
 fs/xfs/xfs_trans.h       |    3 +-
 fs/xfs/xfs_utils.c       |   13 +++----
 fs/xfs/xfs_vnodeops.c    |   90 ++++++++++++++++++----------------------------
 22 files changed, 153 insertions(+), 196 deletions(-)

diff --git a/fs/xfs/xfs_aops.c b/fs/xfs/xfs_aops.c
index 3244c98..a68d4d4 100644
--- a/fs/xfs/xfs_aops.c
+++ b/fs/xfs/xfs_aops.c
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -115,7 +115,7 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; xfs_setfilesize_trans_alloc(
 
 tp = xfs_trans_alloc(mp, XFS_TRANS_FSYNC_TS);
 
-error = xfs_trans_reserve(tp, 0, XFS_FSYNC_TS_LOG_RES(mp), 0, 0, 0);
+error = xfs_trans_reserve(tp, &amp;amp;m_tresp(mp)-&amp;gt;tr_fsyncts, 0, 0);
 if (error) {
 xfs_trans_cancel(tp, 0);
 return error;
diff --git a/fs/xfs/xfs_attr.c b/fs/xfs/xfs_attr.c
index 20fe3fe..a89b339 100644
--- a/fs/xfs/xfs_attr.c
+++ b/fs/xfs/xfs_attr.c
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -227,13 +227,14 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; xfs_attr_set_int(
 intvaluelen,
 intflags)
 {
-xfs_da_args_targs;
-xfs_fsblock_tfirstblock;
-xfs_bmap_free_t flist;
-interror, err2, committed;
-xfs_mount_t*mp = dp-&amp;gt;i_mount;
-int             rsvd = (flags &amp;amp; ATTR_ROOT) != 0;
-intlocal;
+xfs_da_args_targs;
+xfs_fsblock_tfirstblock;
+xfs_bmap_free_tflist;
+interror, err2, committed;
+struct xfs_mount*mp = dp-&amp;gt;i_mount;
+struct xfs_trans_restres;
+intrsvd = (flags &amp;amp; ATTR_ROOT) != 0;
+intlocal;
 
 /*
  * Attach the dquots to the inode.
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -293,11 +294,11 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; xfs_attr_set_int(
 if (rsvd)
 args.trans-&amp;gt;t_flags |= XFS_TRANS_RESERVE;
 
-error = xfs_trans_reserve(args.trans, args.total,
-  XFS_ATTRSETM_LOG_RES(mp) +
-  XFS_ATTRSETRT_LOG_RES(mp) * args.total,
-  0, XFS_TRANS_PERM_LOG_RES,
-  XFS_ATTRSET_LOG_COUNT);
+tres.tr_logres = m_tresp(mp)-&amp;gt;tr_attrsetm.tr_logres +
+ m_tresp(mp)-&amp;gt;tr_attrsetrt.tr_logres * args.total;
+tres.tr_logcount = XFS_ATTRSET_LOG_COUNT;
+tres.tr_logflags = XFS_TRANS_PERM_LOG_RES;
+error = xfs_trans_reserve(args.trans, &amp;amp;tres, args.total, 0);
 if (error) {
 xfs_trans_cancel(args.trans, 0);
 return(error);
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -517,11 +518,9 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; xfs_attr_remove_int(xfs_inode_t *dp, struct xfs_name *name, int flags)
 if (flags &amp;amp; ATTR_ROOT)
 args.trans-&amp;gt;t_flags |= XFS_TRANS_RESERVE;
 
-if ((error = xfs_trans_reserve(args.trans,
-      XFS_ATTRRM_SPACE_RES(mp),
-      XFS_ATTRRM_LOG_RES(mp),
-      0, XFS_TRANS_PERM_LOG_RES,
-      XFS_ATTRRM_LOG_COUNT))) {
+error = xfs_trans_reserve(args.trans, &amp;amp;m_tresp(mp)-&amp;gt;tr_attrrm,
+  XFS_ATTRRM_SPACE_RES(mp), 0);
+if (error) {
 xfs_trans_cancel(args.trans, 0);
 return(error);
 }
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -791,9 +790,8 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; xfs_attr_inactive(xfs_inode_t *dp)
  * the log.
  */
 trans = xfs_trans_alloc(mp, XFS_TRANS_ATTRINVAL);
-if ((error = xfs_trans_reserve(trans, 0, XFS_ATTRINVAL_LOG_RES(mp), 0,
-      XFS_TRANS_PERM_LOG_RES,
-      XFS_ATTRINVAL_LOG_COUNT))) {
+error = xfs_trans_reserve(trans, &amp;amp;m_tresp(mp)-&amp;gt;tr_attrinval, 0, 0);
+if (error) {
 xfs_trans_cancel(trans, 0);
 return(error);
 }
diff --git a/fs/xfs/xfs_bmap.c b/fs/xfs/xfs_bmap.c
index 8904284..87c2af2 100644
--- a/fs/xfs/xfs_bmap.c
+++ b/fs/xfs/xfs_bmap.c
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -857,8 +857,7 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; xfs_bmap_finish(
 xfs_efi_log_item_t*efi;/* extent free intention */
 interror;/* error return value */
 xfs_bmap_free_item_t*free;/* free extent item */
-unsigned intlogres;/* new log reservation */
-unsigned intlogcount;/* new log count */
+struct xfs_trans_restres;/* 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 */
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -873,8 +872,9 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; xfs_bmap_finish(
 for (free = flist-&amp;gt;xbf_first; free; free = free-&amp;gt;xbfi_next)
 xfs_trans_log_efi_extent(ntp, efi, free-&amp;gt;xbfi_startblock,
 free-&amp;gt;xbfi_blockcount);
-logres = ntp-&amp;gt;t_log_res;
-logcount = ntp-&amp;gt;t_log_count;
+tres.tr_logres = ntp-&amp;gt;t_log_res;
+tres.tr_logcount = ntp-&amp;gt;t_log_count;
+tres.tr_logflags = XFS_TRANS_PERM_LOG_RES;
 ntp = xfs_trans_dup(*tp);
 error = xfs_trans_commit(*tp, 0);
 *tp = ntp;
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -892,8 +892,8 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; xfs_bmap_finish(
  */
 xfs_log_ticket_put(ntp-&amp;gt;t_ticket);
 
-if ((error = xfs_trans_reserve(ntp, 0, logres, 0, XFS_TRANS_PERM_LOG_RES,
-logcount)))
+error = xfs_trans_reserve(ntp, &amp;amp;tres, 0, 0);
+if (error)
 return error;
 efd = xfs_trans_get_efd(ntp, efi, flist-&amp;gt;xbf_count);
 for (free = flist-&amp;gt;xbf_first; free != NULL; free = next) {
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -1414,8 +1414,8 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; xfs_bmap_add_attrfork(
 blks = XFS_ADDAFORK_SPACE_RES(mp);
 if (rsvd)
 tp-&amp;gt;t_flags |= XFS_TRANS_RESERVE;
-if ((error = xfs_trans_reserve(tp, blks, XFS_ADDAFORK_LOG_RES(mp), 0,
-XFS_TRANS_PERM_LOG_RES, XFS_ADDAFORK_LOG_COUNT)))
+error = xfs_trans_reserve(tp, &amp;amp;m_tresp(mp)-&amp;gt;tr_addafork, blks, 0);
+if (error)
 goto error0;
 xfs_ilock(ip, XFS_ILOCK_EXCL);
 error = xfs_trans_reserve_quota_nblks(tp, ip, blks, 0, rsvd ?
diff --git a/fs/xfs/xfs_dfrag.c b/fs/xfs/xfs_dfrag.c
index f852b08..362e305 100644
--- a/fs/xfs/xfs_dfrag.c
+++ b/fs/xfs/xfs_dfrag.c
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -316,9 +316,8 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; xfs_swap_extents(
 truncate_pagecache_range(VFS_I(ip), 0, -1);
 
 tp = xfs_trans_alloc(mp, XFS_TRANS_SWAPEXT);
-if ((error = xfs_trans_reserve(tp, 0,
-     XFS_ICHANGE_LOG_RES(mp), 0,
-     0, 0))) {
+error = xfs_trans_reserve(tp, &amp;amp;m_tresp(mp)-&amp;gt;tr_ichange, 0, 0);
+if (error) {
 xfs_iunlock(ip,  XFS_IOLOCK_EXCL);
 xfs_iunlock(tip, XFS_IOLOCK_EXCL);
 xfs_trans_cancel(tp, 0);
diff --git a/fs/xfs/xfs_dquot.c b/fs/xfs/xfs_dquot.c
index a41f8bf..c3fafdb 100644
--- a/fs/xfs/xfs_dquot.c
+++ b/fs/xfs/xfs_dquot.c
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -721,10 +721,8 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; xfs_qm_dqread(
 
 if (flags &amp;amp; XFS_QMOPT_DQALLOC) {
 tp = xfs_trans_alloc(mp, XFS_TRANS_QM_DQALLOC);
-error = xfs_trans_reserve(tp, XFS_QM_DQALLOC_SPACE_RES(mp),
-  XFS_QM_DQALLOC_LOG_RES(mp), 0,
-  XFS_TRANS_PERM_LOG_RES,
-  XFS_WRITE_LOG_COUNT);
+error = xfs_trans_reserve(tp, &amp;amp;m_tresp(mp)-&amp;gt;tr_attrsetm,
+  XFS_QM_DQALLOC_SPACE_RES(mp), 0);
 if (error)
 goto error1;
 cancelflags = XFS_TRANS_RELEASE_LOG_RES;
diff --git a/fs/xfs/xfs_fsops.c b/fs/xfs/xfs_fsops.c
index 87595b2..effa652 100644
--- a/fs/xfs/xfs_fsops.c
+++ b/fs/xfs/xfs_fsops.c
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -201,8 +201,9 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; xfs_growfs_data_private(
 
 tp = xfs_trans_alloc(mp, XFS_TRANS_GROWFS);
 tp-&amp;gt;t_flags |= XFS_TRANS_RESERVE;
-if ((error = xfs_trans_reserve(tp, XFS_GROWFS_SPACE_RES(mp),
-XFS_GROWDATA_LOG_RES(mp), 0, 0, 0))) {
+error = xfs_trans_reserve(tp, &amp;amp;m_tresp(mp)-&amp;gt;tr_growdata,
+  XFS_GROWFS_SPACE_RES(mp), 0);
+if (error) {
 xfs_trans_cancel(tp, 0);
 return error;
 }
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -737,8 +738,7 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; xfs_fs_log_dummy(
 interror;
 
 tp = _xfs_trans_alloc(mp, XFS_TRANS_DUMMY1, KM_SLEEP);
-error = xfs_trans_reserve(tp, 0, XFS_SB_LOG_RES(mp), 0, 0,
-  XFS_DEFAULT_LOG_COUNT);
+error = xfs_trans_reserve(tp, &amp;amp;m_tresp(mp)-&amp;gt;tr_sb, 0, 0);
 if (error) {
 xfs_trans_cancel(tp, 0);
 return error;
diff --git a/fs/xfs/xfs_inode.c b/fs/xfs/xfs_inode.c
index efbe1ac..f1906bd 100644
--- a/fs/xfs/xfs_inode.c
+++ b/fs/xfs/xfs_inode.c
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -1549,10 +1549,7 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; xfs_itruncate_extents(
  * reference that we gained in xfs_trans_dup()
  */
 xfs_log_ticket_put(tp-&amp;gt;t_ticket);
-error = xfs_trans_reserve(tp, 0,
-XFS_ITRUNCATE_LOG_RES(mp), 0,
-XFS_TRANS_PERM_LOG_RES,
-XFS_ITRUNCATE_LOG_COUNT);
+error = xfs_trans_reserve(tp, &amp;amp;m_tresp(mp)-&amp;gt;tr_itruncate, 0, 0);
 if (error)
 goto out;
 }
diff --git a/fs/xfs/xfs_ioctl.c b/fs/xfs/xfs_ioctl.c
index 5e99968..49af42b 100644
--- a/fs/xfs/xfs_ioctl.c
+++ b/fs/xfs/xfs_ioctl.c
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -967,7 +967,7 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; xfs_ioctl_setattr(
  * first do an error checking pass.
  */
 tp = xfs_trans_alloc(mp, XFS_TRANS_SETATTR_NOT_SIZE);
-code = xfs_trans_reserve(tp, 0, XFS_ICHANGE_LOG_RES(mp), 0, 0, 0);
+code = xfs_trans_reserve(tp, &amp;amp;m_tresp(mp)-&amp;gt;tr_ichange, 0, 0);
 if (code)
 goto error_return;
 
diff --git a/fs/xfs/xfs_iomap.c b/fs/xfs/xfs_iomap.c
index 8f8aaee..2a5539d 100644
--- a/fs/xfs/xfs_iomap.c
+++ b/fs/xfs/xfs_iomap.c
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -187,10 +187,8 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; xfs_iomap_write_direct(
  * Allocate and setup the transaction
  */
 tp = xfs_trans_alloc(mp, XFS_TRANS_DIOSTRAT);
-error = xfs_trans_reserve(tp, resblks,
-XFS_WRITE_LOG_RES(mp), resrtextents,
-XFS_TRANS_PERM_LOG_RES,
-XFS_WRITE_LOG_COUNT);
+error = xfs_trans_reserve(tp, &amp;amp;m_tresp(mp)-&amp;gt;tr_write,
+  resblks, resrtextents);
 /*
  * Check for running out of space, note: need lock to return
  */
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -685,10 +683,8 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; xfs_iomap_write_allocate(
 tp = xfs_trans_alloc(mp, XFS_TRANS_STRAT_WRITE);
 tp-&amp;gt;t_flags |= XFS_TRANS_RESERVE;
 nres = XFS_EXTENTADD_SPACE_RES(mp, XFS_DATA_FORK);
-error = xfs_trans_reserve(tp, nres,
-XFS_WRITE_LOG_RES(mp),
-0, XFS_TRANS_PERM_LOG_RES,
-XFS_WRITE_LOG_COUNT);
+error = xfs_trans_reserve(tp, &amp;amp;m_tresp(mp)-&amp;gt;tr_write,
+  nres, 0);
 if (error) {
 xfs_trans_cancel(tp, 0);
 return XFS_ERROR(error);
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -851,10 +847,8 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; xfs_iomap_write_unwritten(
 sb_start_intwrite(mp-&amp;gt;m_super);
 tp = _xfs_trans_alloc(mp, XFS_TRANS_STRAT_WRITE, KM_NOFS);
 tp-&amp;gt;t_flags |= XFS_TRANS_RESERVE | XFS_TRANS_FREEZE_PROT;
-error = xfs_trans_reserve(tp, resblks,
-XFS_WRITE_LOG_RES(mp), 0,
-XFS_TRANS_PERM_LOG_RES,
-XFS_WRITE_LOG_COUNT);
+error = xfs_trans_reserve(tp, &amp;amp;m_tresp(mp)-&amp;gt;tr_write,
+  resblks, 0);
 if (error) {
 xfs_trans_cancel(tp, 0);
 return XFS_ERROR(error);
diff --git a/fs/xfs/xfs_iops.c b/fs/xfs/xfs_iops.c
index d82efaa..4f2e469 100644
--- a/fs/xfs/xfs_iops.c
+++ b/fs/xfs/xfs_iops.c
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -523,7 +523,7 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; xfs_setattr_nonsize(
 }
 
 tp = xfs_trans_alloc(mp, XFS_TRANS_SETATTR_NOT_SIZE);
-error = xfs_trans_reserve(tp, 0, XFS_ICHANGE_LOG_RES(mp), 0, 0, 0);
+error = xfs_trans_reserve(tp, &amp;amp;m_tresp(mp)-&amp;gt;tr_ichange, 0, 0);
 if (error)
 goto out_dqrele;
 
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -796,9 +796,7 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; xfs_setattr_size(
 goto out_unlock;
 
 tp = xfs_trans_alloc(mp, XFS_TRANS_SETATTR_SIZE);
-error = xfs_trans_reserve(tp, 0, XFS_ITRUNCATE_LOG_RES(mp), 0,
- XFS_TRANS_PERM_LOG_RES,
- XFS_ITRUNCATE_LOG_COUNT);
+error = xfs_trans_reserve(tp, &amp;amp;m_tresp(mp)-&amp;gt;tr_itruncate, 0, 0);
 if (error)
 goto out_trans_cancel;
 
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -915,7 +913,7 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; xfs_vn_update_time(
 trace_xfs_update_time(ip);
 
 tp = xfs_trans_alloc(mp, XFS_TRANS_FSYNC_TS);
-error = xfs_trans_reserve(tp, 0, XFS_FSYNC_TS_LOG_RES(mp), 0, 0, 0);
+error = xfs_trans_reserve(tp, &amp;amp;m_tresp(mp)-&amp;gt;tr_fsyncts, 0, 0);
 if (error) {
 xfs_trans_cancel(tp, 0);
 return -error;
diff --git a/fs/xfs/xfs_log_recover.c b/fs/xfs/xfs_log_recover.c
index 93f03ec..a37adeb 100644
--- a/fs/xfs/xfs_log_recover.c
+++ b/fs/xfs/xfs_log_recover.c
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -3167,7 +3167,7 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; xlog_recover_process_efi(
 }
 
 tp = xfs_trans_alloc(mp, 0);
-error = xfs_trans_reserve(tp, 0, XFS_ITRUNCATE_LOG_RES(mp), 0, 0, 0);
+error = xfs_trans_reserve(tp, &amp;amp;m_tresp(mp)-&amp;gt;tr_itruncate, 0, 0);
 if (error)
 goto abort_error;
 efdp = xfs_trans_get_efd(tp, efip, efip-&amp;gt;efi_format.efi_nextents);
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -3273,8 +3273,7 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; xlog_recover_clear_agi_bucket(
 interror;
 
 tp = xfs_trans_alloc(mp, XFS_TRANS_CLEAR_AGI_BUCKET);
-error = xfs_trans_reserve(tp, 0, XFS_CLEAR_AGI_BUCKET_LOG_RES(mp),
-  0, 0, 0);
+error = xfs_trans_reserve(tp, &amp;amp;m_tresp(mp)-&amp;gt;tr_clearagi, 0, 0);
 if (error)
 goto out_abort;
 
diff --git a/fs/xfs/xfs_mount.c b/fs/xfs/xfs_mount.c
index f6bfbd7..c29977c 100644
--- a/fs/xfs/xfs_mount.c
+++ b/fs/xfs/xfs_mount.c
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -1220,8 +1220,7 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; xfs_mount_reset_sbqflags(
 return 0;
 
 tp = xfs_trans_alloc(mp, XFS_TRANS_QM_SBCHANGE);
-error = xfs_trans_reserve(tp, 0, XFS_QM_SBCHANGE_LOG_RES(mp),
-  0, 0, XFS_DEFAULT_LOG_COUNT);
+error = xfs_trans_reserve(tp, &amp;amp;m_tresp(mp)-&amp;gt;tr_qm_sbchange, 0, 0);
 if (error) {
 xfs_trans_cancel(tp, 0);
 xfs_alert(mp, "%s: Superblock update failed!", __func__);
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -1694,8 +1693,7 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; xfs_log_sbcount(xfs_mount_t *mp)
 return 0;
 
 tp = _xfs_trans_alloc(mp, XFS_TRANS_SB_COUNT, KM_SLEEP);
-error = xfs_trans_reserve(tp, 0, XFS_SB_LOG_RES(mp), 0, 0,
-  XFS_DEFAULT_LOG_COUNT);
+error = xfs_trans_reserve(tp, &amp;amp;m_tresp(mp)-&amp;gt;tr_sb, 0, 0);
 if (error) {
 xfs_trans_cancel(tp, 0);
 return error;
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -2057,8 +2055,7 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; xfs_mount_log_sb(
  XFS_SB_VERSIONNUM));
 
 tp = xfs_trans_alloc(mp, XFS_TRANS_SB_UNIT);
-error = xfs_trans_reserve(tp, 0, XFS_SB_LOG_RES(mp), 0, 0,
-  XFS_DEFAULT_LOG_COUNT);
+error = xfs_trans_reserve(tp, &amp;amp;m_tresp(mp)-&amp;gt;tr_sb, 0, 0);
 if (error) {
 xfs_trans_cancel(tp, 0);
 return error;
diff --git a/fs/xfs/xfs_mount.h b/fs/xfs/xfs_mount.h
index 00d33f6..27ae8a9 100644
--- a/fs/xfs/xfs_mount.h
+++ b/fs/xfs/xfs_mount.h
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -231,6 +231,12 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; typedef struct xfs_mount {
 struct workqueue_struct *m_eofblocks_workqueue;
 } xfs_mount_t;
 
+static inline struct xfs_trans_reservations *
+m_tresp(struct xfs_mount *mp)
+{
+return &amp;amp;mp-&amp;gt;m_reservations;
+}
+
 /*
  * Flags for m_flags.
  */
diff --git a/fs/xfs/xfs_qm.c b/fs/xfs/xfs_qm.c
index f41702b..50fc798 100644
--- a/fs/xfs/xfs_qm.c
+++ b/fs/xfs/xfs_qm.c
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -781,11 +781,9 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; xfs_qm_qino_alloc(
 intcommitted;
 
 tp = xfs_trans_alloc(mp, XFS_TRANS_QM_QINOCREATE);
-if ((error = xfs_trans_reserve(tp,
-      XFS_QM_QINOCREATE_SPACE_RES(mp),
-      XFS_CREATE_LOG_RES(mp), 0,
-      XFS_TRANS_PERM_LOG_RES,
-      XFS_CREATE_LOG_COUNT))) {
+error = xfs_trans_reserve(tp, &amp;amp;m_tresp(mp)-&amp;gt;tr_create,
+  XFS_QM_QINOCREATE_SPACE_RES(mp), 0);
+if (error) {
 xfs_trans_cancel(tp, 0);
 return error;
 }
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -1601,8 +1599,7 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; xfs_qm_write_sb_changes(
 interror;
 
 tp = xfs_trans_alloc(mp, XFS_TRANS_QM_SBCHANGE);
-error = xfs_trans_reserve(tp, 0, XFS_QM_SBCHANGE_LOG_RES(mp),
-  0, 0, XFS_DEFAULT_LOG_COUNT);
+error = xfs_trans_reserve(tp, &amp;amp;m_tresp(mp)-&amp;gt;tr_qm_sbchange, 0, 0);
 if (error) {
 xfs_trans_cancel(tp, 0);
 return error;
diff --git a/fs/xfs/xfs_qm_syscalls.c b/fs/xfs/xfs_qm_syscalls.c
index c41190c..1ffa769 100644
--- a/fs/xfs/xfs_qm_syscalls.c
+++ b/fs/xfs/xfs_qm_syscalls.c
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -243,9 +243,7 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; xfs_qm_scall_trunc_qfile(
 xfs_ilock(ip, XFS_IOLOCK_EXCL);
 
 tp = xfs_trans_alloc(mp, XFS_TRANS_TRUNCATE_FILE);
-error = xfs_trans_reserve(tp, 0, XFS_ITRUNCATE_LOG_RES(mp), 0,
-  XFS_TRANS_PERM_LOG_RES,
-  XFS_ITRUNCATE_LOG_COUNT);
+error = xfs_trans_reserve(tp, &amp;amp;m_tresp(mp)-&amp;gt;tr_itruncate, 0, 0);
 if (error) {
 xfs_trans_cancel(tp, 0);
 xfs_iunlock(ip, XFS_IOLOCK_EXCL);
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -490,8 +488,7 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; xfs_qm_scall_setqlim(
 return 0;
 
 tp = xfs_trans_alloc(mp, XFS_TRANS_QM_SETQLIM);
-error = xfs_trans_reserve(tp, 0, XFS_QM_SETQLIM_LOG_RES(mp),
-  0, 0, XFS_DEFAULT_LOG_COUNT);
+error = xfs_trans_reserve(tp, &amp;amp;m_tresp(mp)-&amp;gt;tr_qm_setqlim, 0, 0);
 if (error) {
 xfs_trans_cancel(tp, 0);
 return (error);
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -640,8 +637,7 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; xfs_qm_log_quotaoff_end(
 
 tp = xfs_trans_alloc(mp, XFS_TRANS_QM_QUOTAOFF_END);
 
-error = xfs_trans_reserve(tp, 0, XFS_QM_QUOTAOFF_END_LOG_RES(mp),
-  0, 0, XFS_DEFAULT_LOG_COUNT);
+error = xfs_trans_reserve(tp, &amp;amp;m_tresp(mp)-&amp;gt;tr_qm_equotaoff, 0, 0);
 if (error) {
 xfs_trans_cancel(tp, 0);
 return (error);
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -674,8 +670,7 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; xfs_qm_log_quotaoff(
 uintoldsbqflag=0;
 
 tp = xfs_trans_alloc(mp, XFS_TRANS_QM_QUOTAOFF);
-error = xfs_trans_reserve(tp, 0, XFS_QM_QUOTAOFF_LOG_RES(mp),
-  0, 0, XFS_DEFAULT_LOG_COUNT);
+error = xfs_trans_reserve(tp, &amp;amp;m_tresp(mp)-&amp;gt;tr_qm_quotaoff, 0, 0);
 if (error)
 goto error0;
 
diff --git a/fs/xfs/xfs_rename.c b/fs/xfs/xfs_rename.c
index 30ff5f4..791e140 100644
--- a/fs/xfs/xfs_rename.c
+++ b/fs/xfs/xfs_rename.c
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -124,12 +124,10 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; xfs_rename(
 tp = xfs_trans_alloc(mp, XFS_TRANS_RENAME);
 cancel_flags = XFS_TRANS_RELEASE_LOG_RES;
 spaceres = XFS_RENAME_SPACE_RES(mp, target_name-&amp;gt;len);
-error = xfs_trans_reserve(tp, spaceres, XFS_RENAME_LOG_RES(mp), 0,
-XFS_TRANS_PERM_LOG_RES, XFS_RENAME_LOG_COUNT);
+error = xfs_trans_reserve(tp, &amp;amp;m_tresp(mp)-&amp;gt;tr_rename, spaceres, 0);
 if (error == ENOSPC) {
 spaceres = 0;
-error = xfs_trans_reserve(tp, 0, XFS_RENAME_LOG_RES(mp), 0,
-XFS_TRANS_PERM_LOG_RES, XFS_RENAME_LOG_COUNT);
+error = xfs_trans_reserve(tp, &amp;amp;m_tresp(mp)-&amp;gt;tr_rename, 0, 0);
 }
 if (error) {
 xfs_trans_cancel(tp, 0);
diff --git a/fs/xfs/xfs_rtalloc.c b/fs/xfs/xfs_rtalloc.c
index 98dc670..e1d2490 100644
--- a/fs/xfs/xfs_rtalloc.c
+++ b/fs/xfs/xfs_rtalloc.c
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -101,10 +101,9 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; xfs_growfs_rt_alloc(
 /*
  * Reserve space &amp;amp; log for one extent added to the file.
  */
-if ((error = xfs_trans_reserve(tp, resblks,
-XFS_GROWRTALLOC_LOG_RES(mp), 0,
-XFS_TRANS_PERM_LOG_RES,
-XFS_DEFAULT_PERM_LOG_COUNT)))
+error = xfs_trans_reserve(tp, &amp;amp;m_tresp(mp)-&amp;gt;tr_growdata,
+  resblks, 0);
+if (error)
 goto error_cancel;
 cancelflags = XFS_TRANS_RELEASE_LOG_RES;
 /*
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -147,8 +146,9 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; xfs_growfs_rt_alloc(
 /*
  * Reserve log for one block zeroing.
  */
-if ((error = xfs_trans_reserve(tp, 0,
-XFS_GROWRTZERO_LOG_RES(mp), 0, 0, 0)))
+error = xfs_trans_reserve(tp,
+  &amp;amp;m_tresp(mp)-&amp;gt;tr_growrtzero, 0, 0);
+if (error)
 goto error_cancel;
 /*
  * Lock the bitmap inode.
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -1958,8 +1958,9 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; xfs_growfs_rt(
  * Start a transaction, get the log reservation.
  */
 tp = xfs_trans_alloc(mp, XFS_TRANS_GROWFSRT_FREE);
-if ((error = xfs_trans_reserve(tp, 0,
-XFS_GROWRTFREE_LOG_RES(nmp), 0, 0, 0)))
+error = xfs_trans_reserve(tp, &amp;amp;m_tresp(mp)-&amp;gt;tr_growrtfree,
+  0, 0);
+if (error)
 goto error_cancel;
 /*
  * Lock out other callers by grabbing the bitmap inode lock.
diff --git a/fs/xfs/xfs_symlink.c b/fs/xfs/xfs_symlink.c
index 5f234389..02b4b85 100644
--- a/fs/xfs/xfs_symlink.c
+++ b/fs/xfs/xfs_symlink.c
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -407,12 +407,10 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; xfs_symlink(
 else
 fs_blocks = XFS_B_TO_FSB(mp, pathlen);
 resblks = XFS_SYMLINK_SPACE_RES(mp, link_name-&amp;gt;len, fs_blocks);
-error = xfs_trans_reserve(tp, resblks, XFS_SYMLINK_LOG_RES(mp), 0,
-XFS_TRANS_PERM_LOG_RES, XFS_SYMLINK_LOG_COUNT);
+error = xfs_trans_reserve(tp, &amp;amp;m_tresp(mp)-&amp;gt;tr_symlink, resblks, 0);
 if (error == ENOSPC &amp;amp;&amp;amp; fs_blocks == 0) {
 resblks = 0;
-error = xfs_trans_reserve(tp, 0, XFS_SYMLINK_LOG_RES(mp), 0,
-XFS_TRANS_PERM_LOG_RES, XFS_SYMLINK_LOG_COUNT);
+error = xfs_trans_reserve(tp, &amp;amp;m_tresp(mp)-&amp;gt;tr_symlink, 0, 0);
 }
 if (error) {
 cancel_flags = 0;
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -713,8 +711,8 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; xfs_inactive_symlink_rmt(
  * Put an itruncate log reservation in the new transaction
  * for our caller.
  */
-if ((error = xfs_trans_reserve(tp, 0, XFS_ITRUNCATE_LOG_RES(mp), 0,
-XFS_TRANS_PERM_LOG_RES, XFS_ITRUNCATE_LOG_COUNT))) {
+error = xfs_trans_reserve(tp, &amp;amp;m_tresp(mp)-&amp;gt;tr_itruncate, 0, 0);
+if (error) {
 ASSERT(XFS_FORCED_SHUTDOWN(mp));
 goto error0;
 }
diff --git a/fs/xfs/xfs_trans.c b/fs/xfs/xfs_trans.c
index f1ccb2d..bc6f8c5 100644
--- a/fs/xfs/xfs_trans.c
+++ b/fs/xfs/xfs_trans.c
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -516,7 +516,8 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; xfs_calc_attrsetm_reservation(
  * Since the runtime attribute transaction space is dependent on the total
  * blocks needed for the 1st bmap, here we calculate out the space unit for
  * one block so that the caller could figure out the total space according
- * to the attibute extent length in blocks by: ext * XFS_ATTRSETRT_LOG_RES(mp).
+ * to the attibute extent length in blocks by:
+ *ext * m_tresp(mp)-&amp;gt;tr_attrsetrt.tr_logres
  */
 STATIC uint
 xfs_calc_attrsetrt_reservation(
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -588,14 +589,14 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; xfs_calc_qm_setqlim_reservation(
 
 /*
  * Allocating quota on disk if needed.
- *the write transaction log space: XFS_WRITE_LOG_RES(mp)
+ *the write transaction log space: m_tresp(mp)-&amp;gt;tr_write.tr_logres
  *the unit of quota allocation: one system block size
  */
 STATIC uint
 xfs_calc_qm_dqalloc_reservation(
 struct xfs_mount*mp)
 {
-return XFS_WRITE_LOG_RES(mp) +
+return m_tresp(mp)-&amp;gt;tr_write.tr_logres +
 xfs_calc_buf_res(1,
 XFS_FSB_TO_B(mp, XFS_DQUOT_CLUSTER_SIZE_FSB) - 1);
 }
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -643,7 +644,7 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; void
 xfs_trans_init(
 struct xfs_mount*mp)
 {
-struct xfs_trans_reservations *resp = &amp;amp;mp-&amp;gt;m_reservations;
+struct xfs_trans_reservations *resp = m_tresp(mp);
 
 /*
  * The following transactions are logged in physical format and
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -862,12 +863,10 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; xfs_trans_dup(
  */
 int
 xfs_trans_reserve(
-xfs_trans_t*tp,
-uintblocks,
-uintlogspace,
-uintrtextents,
-uintflags,
-uintlogcount)
+struct xfs_trans*tp,
+struct xfs_trans_res*tresp,
+uintblocks,
+uintrtextents)
 {
 interror = 0;
 intrsvd = (tp-&amp;gt;t_flags &amp;amp; XFS_TRANS_RESERVE) != 0;
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -893,13 +892,15 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; xfs_trans_reserve(
 /*
  * Reserve the log space needed for this transaction.
  */
-if (logspace &amp;gt; 0) {
+if (tresp-&amp;gt;tr_logres &amp;gt; 0) {
 boolpermanent = false;
 
-ASSERT(tp-&amp;gt;t_log_res == 0 || tp-&amp;gt;t_log_res == logspace);
-ASSERT(tp-&amp;gt;t_log_count == 0 || tp-&amp;gt;t_log_count == logcount);
+ASSERT(tp-&amp;gt;t_log_res == 0 ||
+       tp-&amp;gt;t_log_res == tresp-&amp;gt;tr_logres);
+ASSERT(tp-&amp;gt;t_log_count == 0 ||
+       tp-&amp;gt;t_log_count == tresp-&amp;gt;tr_logcount);
 
-if (flags &amp;amp; XFS_TRANS_PERM_LOG_RES) {
+if (tresp-&amp;gt;tr_logflags &amp;amp; XFS_TRANS_PERM_LOG_RES) {
 tp-&amp;gt;t_flags |= XFS_TRANS_PERM_LOG_RES;
 permanent = true;
 } else {
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -908,20 +909,21 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; xfs_trans_reserve(
 }
 
 if (tp-&amp;gt;t_ticket != NULL) {
-ASSERT(flags &amp;amp; XFS_TRANS_PERM_LOG_RES);
+ASSERT(tresp-&amp;gt;tr_logflags &amp;amp; XFS_TRANS_PERM_LOG_RES);
 error = xfs_log_regrant(tp-&amp;gt;t_mountp, tp-&amp;gt;t_ticket);
 } else {
-error = xfs_log_reserve(tp-&amp;gt;t_mountp, logspace,
-logcount, &amp;amp;tp-&amp;gt;t_ticket,
-XFS_TRANSACTION, permanent,
-tp-&amp;gt;t_type);
+error = xfs_log_reserve(tp-&amp;gt;t_mountp,
+tresp-&amp;gt;tr_logres,
+tresp-&amp;gt;tr_logcount,
+&amp;amp;tp-&amp;gt;t_ticket, XFS_TRANSACTION,
+permanent, tp-&amp;gt;t_type);
 }
 
 if (error)
 goto undo_blocks;
 
-tp-&amp;gt;t_log_res = logspace;
-tp-&amp;gt;t_log_count = logcount;
+tp-&amp;gt;t_log_res = tresp-&amp;gt;tr_logres;
+tp-&amp;gt;t_log_count = tresp-&amp;gt;tr_logcount;
 }
 
 /*
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -946,10 +948,10 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; xfs_trans_reserve(
  * reservations which have already been performed.
  */
 undo_log:
-if (logspace &amp;gt; 0) {
+if (tresp-&amp;gt;tr_logres &amp;gt; 0) {
 intlog_flags;
 
-if (flags &amp;amp; XFS_TRANS_PERM_LOG_RES) {
+if (tresp-&amp;gt;tr_logflags &amp;amp; XFS_TRANS_PERM_LOG_RES) {
 log_flags = XFS_LOG_REL_PERM_RESERV;
 } else {
 log_flags = 0;
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -1696,7 +1698,7 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; xfs_trans_roll(
 struct xfs_inode*dp)
 {
 struct xfs_trans*trans;
-unsigned intlogres, count;
+struct xfs_trans_restres;
 interror;
 
 /*
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -1708,8 +1710,8 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; xfs_trans_roll(
 /*
  * Copy the critical parameters from one trans to the next.
  */
-logres = trans-&amp;gt;t_log_res;
-count = trans-&amp;gt;t_log_count;
+tres.tr_logres = trans-&amp;gt;t_log_res;
+tres.tr_logcount = trans-&amp;gt;t_log_count;
 *tpp = xfs_trans_dup(trans);
 
 /*
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -1740,8 +1742,8 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; xfs_trans_roll(
  * across this call, or that anything that is locked be logged in
  * the prior and the next transactions.
  */
-error = xfs_trans_reserve(trans, 0, logres, 0,
-  XFS_TRANS_PERM_LOG_RES, count);
+tres.tr_logflags = XFS_TRANS_PERM_LOG_RES;
+error = xfs_trans_reserve(trans, &amp;amp;tres, 0, 0);
 /*
  *  Ensure that the inode is in the new transaction and locked.
  */
diff --git a/fs/xfs/xfs_trans.h b/fs/xfs/xfs_trans.h
index 6177040..8049f55 100644
--- a/fs/xfs/xfs_trans.h
+++ b/fs/xfs/xfs_trans.h
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -322,6 +322,7 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; struct xfs_log_iovec;
 struct xfs_log_item_desc;
 struct xfs_mount;
 struct xfs_trans;
+struct xfs_trans_res;
 struct xfs_dquot_acct;
 struct xfs_busy_extent;
 
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -458,7 +459,7 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; typedef struct xfs_trans {
 xfs_trans_t*xfs_trans_alloc(struct xfs_mount *, uint);
 xfs_trans_t*_xfs_trans_alloc(struct xfs_mount *, uint, xfs_km_flags_t);
 xfs_trans_t*xfs_trans_dup(xfs_trans_t *);
-intxfs_trans_reserve(xfs_trans_t *, uint, uint, uint,
+intxfs_trans_reserve(struct xfs_trans *, struct xfs_trans_res *,
   uint, uint);
 voidxfs_trans_mod_sb(xfs_trans_t *, uint, int64_t);
 
diff --git a/fs/xfs/xfs_utils.c b/fs/xfs/xfs_utils.c
index 0025c78..5795ced 100644
--- a/fs/xfs/xfs_utils.c
+++ b/fs/xfs/xfs_utils.c
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -66,8 +66,6 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; xfs_dir_ialloc(
 xfs_inode_t*ip;
 xfs_buf_t*ialloc_context = NULL;
 intcode;
-uintlog_res;
-uintlog_count;
 void*dqinfo;
 uinttflags;
 
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -113,6 +111,8 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; xfs_dir_ialloc(
  * to succeed the second time.
  */
 if (ialloc_context) {
+struct xfs_trans_res tres;
+
 /*
  * Normally, xfs_trans_commit releases all the locks.
  * We call bhold to hang on to the ialloc_context across
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -125,8 +125,8 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; xfs_dir_ialloc(
  * Save the log reservation so we can use
  * them in the next transaction.
  */
-log_res = xfs_trans_get_log_res(tp);
-log_count = xfs_trans_get_log_count(tp);
+tres.tr_logres = xfs_trans_get_log_res(tp);
+tres.tr_logcount = xfs_trans_get_log_count(tp);
 
 /*
  * We want the quota changes to be associated with the next
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -169,8 +169,9 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; xfs_dir_ialloc(
  * reference that we gained in xfs_trans_dup()
  */
 xfs_log_ticket_put(tp-&amp;gt;t_ticket);
-code = xfs_trans_reserve(tp, 0, log_res, 0,
- XFS_TRANS_PERM_LOG_RES, log_count);
+tres.tr_logflags = XFS_TRANS_PERM_LOG_RES;
+code = xfs_trans_reserve(tp, &amp;amp;tres, 0, 0);
+
 /*
  * Re-attach the quota info that we detached from prev trx.
  */
diff --git a/fs/xfs/xfs_vnodeops.c b/fs/xfs/xfs_vnodeops.c
index 1501f4f..503193c 100644
--- a/fs/xfs/xfs_vnodeops.c
+++ b/fs/xfs/xfs_vnodeops.c
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -110,10 +110,7 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; xfs_free_eofblocks(
 }
 }
 
-error = xfs_trans_reserve(tp, 0,
-  XFS_ITRUNCATE_LOG_RES(mp),
-  0, XFS_TRANS_PERM_LOG_RES,
-  XFS_ITRUNCATE_LOG_COUNT);
+error = xfs_trans_reserve(tp, &amp;amp;m_tresp(mp)-&amp;gt;tr_itruncate, 0, 0);
 if (error) {
 ASSERT(XFS_FORCED_SHUTDOWN(mp));
 xfs_trans_cancel(tp, 0);
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -255,13 +252,14 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; int
 xfs_inactive(
 xfs_inode_t*ip)
 {
-xfs_bmap_free_tfree_list;
-xfs_fsblock_tfirst_block;
-intcommitted;
-xfs_trans_t*tp;
-xfs_mount_t*mp;
-interror;
-inttruncate = 0;
+xfs_bmap_free_tfree_list;
+xfs_fsblock_tfirst_block;
+intcommitted;
+struct xfs_trans*tp;
+struct xfs_mount*mp;
+struct xfs_trans_res*tresp;
+interror;
+inttruncate = 0;
 
 /*
  * If the inode is already free, then there can be nothing
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -305,13 +303,10 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; xfs_inactive(
 return VN_INACTIVE_CACHE;
 
 tp = xfs_trans_alloc(mp, XFS_TRANS_INACTIVE);
-error = xfs_trans_reserve(tp, 0,
-(truncate || S_ISLNK(ip-&amp;gt;i_d.di_mode)) ?
-XFS_ITRUNCATE_LOG_RES(mp) :
-XFS_IFREE_LOG_RES(mp),
-0,
-XFS_TRANS_PERM_LOG_RES,
-XFS_ITRUNCATE_LOG_COUNT);
+tresp = (truncate || S_ISLNK(ip-&amp;gt;i_d.di_mode)) ?
+&amp;amp;m_tresp(mp)-&amp;gt;tr_itruncate : &amp;amp;m_tresp(mp)-&amp;gt;tr_ifree;
+
+error = xfs_trans_reserve(tp, tresp, 0, 0);
 if (error) {
 ASSERT(XFS_FORCED_SHUTDOWN(mp));
 xfs_trans_cancel(tp, 0);
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -365,10 +360,7 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; xfs_inactive(
 goto out;
 
 tp = xfs_trans_alloc(mp, XFS_TRANS_INACTIVE);
-error = xfs_trans_reserve(tp, 0,
-  XFS_IFREE_LOG_RES(mp),
-  0, XFS_TRANS_PERM_LOG_RES,
-  XFS_INACTIVE_LOG_COUNT);
+error = xfs_trans_reserve(tp, &amp;amp;m_tresp(mp)-&amp;gt;tr_ifree, 0, 0);
 if (error) {
 xfs_trans_cancel(tp, 0);
 goto out;
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -498,9 +490,8 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; xfs_create(
 prid_tprid;
 struct xfs_dquot*udqp = NULL;
 struct xfs_dquot*gdqp = NULL;
+struct xfs_trans_restres;
 uintresblks;
-uintlog_res;
-uintlog_count;
 
 trace_xfs_create(dp, name);
 
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -523,13 +514,13 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; xfs_create(
 if (is_dir) {
 rdev = 0;
 resblks = XFS_MKDIR_SPACE_RES(mp, name-&amp;gt;len);
-log_res = XFS_MKDIR_LOG_RES(mp);
-log_count = XFS_MKDIR_LOG_COUNT;
+tres.tr_logres = m_tresp(mp)-&amp;gt;tr_mkdir.tr_logres;
+tres.tr_logcount = XFS_MKDIR_LOG_COUNT;
 tp = xfs_trans_alloc(mp, XFS_TRANS_MKDIR);
 } else {
 resblks = XFS_CREATE_SPACE_RES(mp, name-&amp;gt;len);
-log_res = XFS_CREATE_LOG_RES(mp);
-log_count = XFS_CREATE_LOG_COUNT;
+tres.tr_logres = m_tresp(mp)-&amp;gt;tr_create.tr_logres;
+tres.tr_logcount = XFS_CREATE_LOG_COUNT;
 tp = xfs_trans_alloc(mp, XFS_TRANS_CREATE);
 }
 
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -541,19 +532,17 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; xfs_create(
  * the case we'll drop the one we have and get a more
  * appropriate transaction later.
  */
-error = xfs_trans_reserve(tp, resblks, log_res, 0,
-XFS_TRANS_PERM_LOG_RES, log_count);
+tres.tr_logflags = XFS_TRANS_PERM_LOG_RES;
+error = xfs_trans_reserve(tp, &amp;amp;tres, resblks, 0);
 if (error == ENOSPC) {
 /* flush outstanding delalloc blocks and retry */
 xfs_flush_inodes(mp);
-error = xfs_trans_reserve(tp, resblks, log_res, 0,
-XFS_TRANS_PERM_LOG_RES, log_count);
+error = xfs_trans_reserve(tp, &amp;amp;tres, resblks, 0);
 }
 if (error == ENOSPC) {
 /* No space at all so try a "no-allocation" reservation */
 resblks = 0;
-error = xfs_trans_reserve(tp, 0, log_res, 0,
-XFS_TRANS_PERM_LOG_RES, log_count);
+error = xfs_trans_reserve(tp, &amp;amp;tres, 0, 0);
 }
 if (error) {
 cancel_flags = 0;
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -902,12 +891,10 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; xfs_remove(
  * block from the directory.
  */
 resblks = XFS_REMOVE_SPACE_RES(mp);
-error = xfs_trans_reserve(tp, resblks, XFS_REMOVE_LOG_RES(mp), 0,
-  XFS_TRANS_PERM_LOG_RES, log_count);
+error = xfs_trans_reserve(tp, &amp;amp;m_tresp(mp)-&amp;gt;tr_remove, resblks, 0);
 if (error == ENOSPC) {
 resblks = 0;
-error = xfs_trans_reserve(tp, 0, XFS_REMOVE_LOG_RES(mp), 0,
-  XFS_TRANS_PERM_LOG_RES, log_count);
+error = xfs_trans_reserve(tp, &amp;amp;m_tresp(mp)-&amp;gt;tr_remove, 0, 0);
 }
 if (error) {
 ASSERT(error != ENOSPC);
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -1049,12 +1036,10 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; xfs_link(
 tp = xfs_trans_alloc(mp, XFS_TRANS_LINK);
 cancel_flags = XFS_TRANS_RELEASE_LOG_RES;
 resblks = XFS_LINK_SPACE_RES(mp, target_name-&amp;gt;len);
-error = xfs_trans_reserve(tp, resblks, XFS_LINK_LOG_RES(mp), 0,
-XFS_TRANS_PERM_LOG_RES, XFS_LINK_LOG_COUNT);
+error = xfs_trans_reserve(tp, &amp;amp;m_tresp(mp)-&amp;gt;tr_link, resblks, 0);
 if (error == ENOSPC) {
 resblks = 0;
-error = xfs_trans_reserve(tp, 0, XFS_LINK_LOG_RES(mp), 0,
-XFS_TRANS_PERM_LOG_RES, XFS_LINK_LOG_COUNT);
+error = xfs_trans_reserve(tp, &amp;amp;m_tresp(mp)-&amp;gt;tr_link, 0, 0);
 }
 if (error) {
 cancel_flags = 0;
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -1136,7 +1121,7 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; xfs_set_dmattrs(
 return XFS_ERROR(EIO);
 
 tp = xfs_trans_alloc(mp, XFS_TRANS_SET_DMATTRS);
-error = xfs_trans_reserve(tp, 0, XFS_ICHANGE_LOG_RES (mp), 0, 0, 0);
+error = xfs_trans_reserve(tp, &amp;amp;m_tresp(mp)-&amp;gt;tr_ichange, 0, 0);
 if (error) {
 xfs_trans_cancel(tp, 0);
 return error;
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -1264,10 +1249,8 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; xfs_alloc_file_space(
  * Allocate and setup the transaction.
  */
 tp = xfs_trans_alloc(mp, XFS_TRANS_DIOSTRAT);
-error = xfs_trans_reserve(tp, resblks,
-  XFS_WRITE_LOG_RES(mp), resrtextents,
-  XFS_TRANS_PERM_LOG_RES,
-  XFS_WRITE_LOG_COUNT);
+error = xfs_trans_reserve(tp, &amp;amp;m_tresp(mp)-&amp;gt;tr_write,
+  resblks, resrtextents);
 /*
  * Check for running out of space
  */
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -1557,13 +1540,8 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; xfs_free_file_space(
  */
 tp = xfs_trans_alloc(mp, XFS_TRANS_DIOSTRAT);
 tp-&amp;gt;t_flags |= XFS_TRANS_RESERVE;
-error = xfs_trans_reserve(tp,
-  resblks,
-  XFS_WRITE_LOG_RES(mp),
-  0,
-  XFS_TRANS_PERM_LOG_RES,
-  XFS_WRITE_LOG_COUNT);
-
+error = xfs_trans_reserve(tp, &amp;amp;m_tresp(mp)-&amp;gt;tr_write,
+  resblks, 0);
 /*
  * check for running out of space
  */
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -1837,8 +1815,8 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; xfs_change_file_space(
  */
 tp = xfs_trans_alloc(mp, XFS_TRANS_WRITEID);
 
-if ((error = xfs_trans_reserve(tp, 0, XFS_WRITEID_LOG_RES(mp),
-      0, 0, 0))) {
+error = xfs_trans_reserve(tp, &amp;amp;m_tresp(mp)-&amp;gt;tr_writeid, 0, 0);
+if (error) {
 /* ASSERT(0); */
 xfs_trans_cancel(tp, 0);
 return error;
&lt;/pre&gt;</description>
    <dc:creator>Jeff Liu</dc:creator>
    <dc:date>2013-05-17T05:38:27</dc:date>
  </item>
  <item rdf:about="http://comments.gmane.org/gmane.comp.file-systems.xfs.general/52632">
    <title>[PATCH v2 5/8] xfs: Get rid of all XFS_XXX_LOG_RES() macro</title>
    <link>http://comments.gmane.org/gmane.comp.file-systems.xfs.general/52632</link>
    <description>&lt;pre&gt;From: Jie Liu &amp;lt;jeff.liu&amp;lt; at &amp;gt;oracle.com&amp;gt;

Get rid of all XFS_XXX_LOG_RES() macros since they are obsoleted now.

Signed-off-by: Jie Liu &amp;lt;jeff.liu&amp;lt; at &amp;gt;oracle.com&amp;gt;
---
 fs/xfs/xfs_trans.h |   44 --------------------------------------------
 1 file changed, 44 deletions(-)

diff --git a/fs/xfs/xfs_trans.h b/fs/xfs/xfs_trans.h
index 8049f55..a1a1835 100644
--- a/fs/xfs/xfs_trans.h
+++ b/fs/xfs/xfs_trans.h
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -231,50 +231,6 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; struct xfs_log_item_desc {
 (XFS_DAENTER_BLOCKS(mp, XFS_DATA_FORK) + \
  XFS_DAENTER_BMAPS(mp, XFS_DATA_FORK) + 1)
 
-
-#defineXFS_WRITE_LOG_RES(mp)((mp)-&amp;gt;m_reservations.tr_write.tr_logres)
-#defineXFS_RENAME_LOG_RES(mp)((mp)-&amp;gt;m_reservations.tr_rename.tr_logres)
-#defineXFS_LINK_LOG_RES(mp)((mp)-&amp;gt;m_reservations.tr_link.tr_logres)
-#defineXFS_REMOVE_LOG_RES(mp)((mp)-&amp;gt;m_reservations.tr_remove.tr_logres)
-#defineXFS_SYMLINK_LOG_RES(mp)((mp)-&amp;gt;m_reservations.tr_symlink.tr_logres)
-#defineXFS_CREATE_LOG_RES(mp)((mp)-&amp;gt;m_reservations.tr_create.tr_logres)
-#defineXFS_MKDIR_LOG_RES(mp)((mp)-&amp;gt;m_reservations.tr_mkdir.tr_logres)
-#defineXFS_IFREE_LOG_RES(mp)((mp)-&amp;gt;m_reservations.tr_ifree.tr_logres)
-#defineXFS_ICHANGE_LOG_RES(mp)((mp)-&amp;gt;m_reservations.tr_ichange.tr_logres)
-#defineXFS_GROWDATA_LOG_RES(mp)  ((mp)-&amp;gt;m_reservations.tr_growdata.tr_logres)
-#defineXFS_ITRUNCATE_LOG_RES(mp) ((mp)-&amp;gt;m_reservations.tr_itruncate.tr_logres)
-#defineXFS_GROWRTALLOC_LOG_RES(mp)\
-((mp)-&amp;gt;m_reservations.tr_growrtalloc.tr_logres)
-#defineXFS_GROWRTZERO_LOG_RES(mp)\
-((mp)-&amp;gt;m_reservations.tr_growrtzero.tr_logres)
-#defineXFS_GROWRTFREE_LOG_RES(mp)\
-((mp)-&amp;gt;m_reservations.tr_growrtfree.tr_logres)
-#defineXFS_SWRITE_LOG_RES(mp)((mp)-&amp;gt;m_reservations.tr_swrite.tr_logres)
-/*
- * Logging the inode timestamps on an fsync -- same as SWRITE
- * as long as SWRITE logs the entire inode core
- */
-#define XFS_FSYNC_TS_LOG_RES(mp) ((mp)-&amp;gt;m_reservations.tr_fsyncts.tr_logres)
-#defineXFS_WRITEID_LOG_RES(mp) ((mp)-&amp;gt;m_reservations.tr_writeid.tr_logres)
-#defineXFS_ADDAFORK_LOG_RES(mp) ((mp)-&amp;gt;m_reservations.tr_addafork.tr_logres)
-#defineXFS_ATTRSETM_LOG_RES(mp) ((mp)-&amp;gt;m_reservations.tr_attrsetm.tr_logres)
-#defineXFS_ATTRINVAL_LOG_RES(mp) ((mp)-&amp;gt;m_reservations.tr_attrinval.tr_logres)
-#define XFS_ATTRSETRT_LOG_RES(mp) ((mp)-&amp;gt;m_reservations.tr_attrsetrt.tr_logres)
-#defineXFS_ATTRRM_LOG_RES(mp)  ((mp)-&amp;gt;m_reservations.tr_attrrm.tr_logres)
-#define XFS_SB_LOG_RES(mp)  ((mp)-&amp;gt;m_reservations.tr_sb.tr_logres)
-#defineXFS_CLEAR_AGI_BUCKET_LOG_RES(mp)\
-((mp)-&amp;gt;m_reservations.tr_clearagi.tr_logres)
-#define XFS_QM_SBCHANGE_LOG_RES(mp)\
-((mp)-&amp;gt;m_reservations.tr_qm_sbchange.tr_logres)
-#define XFS_QM_SETQLIM_LOG_RES(mp)\
-((mp)-&amp;gt;m_reservations.tr_qm_setqlim.tr_logres)
-#define XFS_QM_DQALLOC_LOG_RES(mp)\
-((mp)-&amp;gt;m_reservations.tr_qm_dqalloc.tr_logres)
-#define XFS_QM_QUOTAOFF_LOG_RES(mp)\
-((mp)-&amp;gt;m_reservations.tr_qm_quotaoff.tr_logres)
-#define XFS_QM_QUOTAOFF_END_LOG_RES(mp)\
-((mp)-&amp;gt;m_reservations.tr_qm_equotaoff.tr_logres)
-
 /*
  * Various log count values.
  */
&lt;/pre&gt;</description>
    <dc:creator>Jeff Liu</dc:creator>
    <dc:date>2013-05-17T05:38:32</dc:date>
  </item>
  <item rdf:about="http://comments.gmane.org/gmane.comp.file-systems.xfs.general/52631">
    <title>[PATCH v2 3/8] xfs: Make writeid transaction use tr_writeid</title>
    <link>http://comments.gmane.org/gmane.comp.file-systems.xfs.general/52631</link>
    <description>&lt;pre&gt;From: Jie Liu &amp;lt;jeff.liu&amp;lt; at &amp;gt;oracle.com&amp;gt;

tr_writeid is defined at mp-&amp;gt;m_reservation structure, however,
it does not really being used.

This patch fix it to tr_writeid to fetch the log reservation size.

Signed-off-by: Jie Liu &amp;lt;jeff.liu&amp;lt; at &amp;gt;oracle.com&amp;gt;
---
 fs/xfs/xfs_trans.h |    2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/fs/xfs/xfs_trans.h b/fs/xfs/xfs_trans.h
index 509ad4d..6177040 100644
--- a/fs/xfs/xfs_trans.h
+++ b/fs/xfs/xfs_trans.h
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -255,7 +255,7 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; struct xfs_log_item_desc {
  * as long as SWRITE logs the entire inode core
  */
 #define XFS_FSYNC_TS_LOG_RES(mp) ((mp)-&amp;gt;m_reservations.tr_fsyncts.tr_logres)
-#defineXFS_WRITEID_LOG_RES(mp) ((mp)-&amp;gt;m_reservations.tr_swrite.tr_logres)
+#defineXFS_WRITEID_LOG_RES(mp) ((mp)-&amp;gt;m_reservations.tr_writeid.tr_logres)
 #defineXFS_ADDAFORK_LOG_RES(mp) ((mp)-&amp;gt;m_reservations.tr_addafork.tr_logres)
 #defineXFS_ATTRSETM_LOG_RES(mp) ((mp)-&amp;gt;m_reservations.tr_attrsetm.tr_logres)
 #defineXFS_ATTRINVAL_LOG_RES(mp) ((mp)-&amp;gt;m_reservations.tr_attrinval.tr_logres)
&lt;/pre&gt;</description>
    <dc:creator>Jeff Liu</dc:creator>
    <dc:date>2013-05-17T05:38:13</dc:date>
  </item>
  <item rdf:about="http://comments.gmane.org/gmane.comp.file-systems.xfs.general/52630">
    <title>[PATCH v2 1/8] xfs: Introduce a new structure to hold transactionreservation items</title>
    <link>http://comments.gmane.org/gmane.comp.file-systems.xfs.general/52630</link>
    <description>&lt;pre&gt;From: Jie Liu &amp;lt;jeff.liu&amp;lt; at &amp;gt;oracle.com&amp;gt;

Introduce a new structure xfs_trans_res to hold transaction reservation
item info per log ticket.

We also need to improve xfs_trans_init() by initializing the log count
as well as log flags for permanent log reservation.

Signed-off-by: Jie Liu &amp;lt;jeff.liu&amp;lt; at &amp;gt;oracle.com&amp;gt;

---
 fs/xfs/xfs_mount.h |   68 +++++++++++++++++------------
 fs/xfs/xfs_trans.c |  121 ++++++++++++++++++++++++++++++++++++++++------------
 fs/xfs/xfs_trans.h |   67 ++++++++++++++++-------------
 3 files changed, 171 insertions(+), 85 deletions(-)

diff --git a/fs/xfs/xfs_mount.h b/fs/xfs/xfs_mount.h
index b004cec..474826e 100644
--- a/fs/xfs/xfs_mount.h
+++ b/fs/xfs/xfs_mount.h
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -18,35 +18,47 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt;
 #ifndef __XFS_MOUNT_H__
 #define__XFS_MOUNT_H__
 
+struct xfs_trans_res {
+uinttr_logres;/* log space unit in bytes per log ticket */
+inttr_logcount;/* number of log operations per log ticket */
+inttr_logflags;/* log flags, currently only used for indicating
+ * a reservation request is permanent or not */
+};
+
 typedef struct xfs_trans_reservations {
-uinttr_write;/* extent alloc trans */
-uinttr_itruncate;/* truncate trans */
-uinttr_rename;/* rename trans */
-uinttr_link;/* link trans */
-uinttr_remove;/* unlink trans */
-uinttr_symlink;/* symlink trans */
-uinttr_create;/* create trans */
-uinttr_mkdir;/* mkdir trans */
-uinttr_ifree;/* inode free trans */
-uinttr_ichange;/* inode update trans */
-uinttr_growdata;/* fs data section grow trans */
-uinttr_swrite;/* sync write inode trans */
-uinttr_addafork;/* cvt inode to attributed trans */
-uinttr_writeid;/* write setuid/setgid file */
-uinttr_attrinval;/* attr fork buffer invalidation */
-uinttr_attrsetm;/* set/create an attribute at mount time */
-uinttr_attrsetrt;/* set/create an attribute at runtime */
-uinttr_attrrm;/* remove an attribute */
-uinttr_clearagi;/* clear bad agi unlinked ino bucket */
-uinttr_growrtalloc;/* grow realtime allocations */
-uinttr_growrtzero;/* grow realtime zeroing */
-uinttr_growrtfree;/* grow realtime freeing */
-uinttr_qm_sbchange;/* change quota flags */
-uinttr_qm_setqlim;/* adjust quota limits */
-uinttr_qm_dqalloc;/* allocate quota on disk */
-uinttr_qm_quotaoff;/* turn quota off */
-uinttr_qm_equotaoff;/* end of turn quota off */
-uinttr_sb;/* modify superblock */
+struct xfs_trans_restr_write;/* extent alloc trans */
+struct xfs_trans_restr_itruncate;/* truncate trans */
+struct xfs_trans_restr_rename;/* rename trans */
+struct xfs_trans_restr_link;/* link trans */
+struct xfs_trans_restr_remove;/* unlink trans */
+struct xfs_trans_restr_symlink;/* symlink trans */
+struct xfs_trans_restr_create;/* create trans */
+struct xfs_trans_restr_mkdir;/* mkdir trans */
+struct xfs_trans_restr_ifree;/* inode free trans */
+struct xfs_trans_restr_ichange;/* inode update trans */
+struct xfs_trans_restr_growdata;/* fs data section grow trans */
+struct xfs_trans_restr_swrite;/* sync write inode trans */
+struct xfs_trans_restr_addafork;/* cvt inode to attributed
+ * trans */
+struct xfs_trans_restr_writeid;/* write setuid/setgid file */
+struct xfs_trans_restr_attrinval;/* attr fork buffer
+ * invalidation */
+struct xfs_trans_restr_attrsetm;/* set/create an attribute at
+ * mount time */
+struct xfs_trans_restr_attrsetrt;/* set/create an attribute at
+ * runtime */
+struct xfs_trans_restr_attrrm;/* remove an attribute */
+struct xfs_trans_restr_clearagi;/* clear bad agi unlinked ino
+ * bucket */
+struct xfs_trans_restr_growrtalloc;/* grow realtime allocations */
+struct xfs_trans_restr_growrtzero;/* grow realtime zeroing */
+struct xfs_trans_restr_growrtfree;/* grow realtime freeing */
+struct xfs_trans_restr_qm_sbchange;/* change quota flags */
+struct xfs_trans_restr_qm_setqlim;/* adjust quota limits */
+struct xfs_trans_restr_qm_dqalloc;/* allocate quota on disk */
+struct xfs_trans_restr_qm_quotaoff;/* turn quota off */
+struct xfs_trans_restr_qm_equotaoff;/* end of turn quota off */
+struct xfs_trans_restr_sb;/* modify superblock */
 } xfs_trans_reservations_t;
 
 #ifndef __KERNEL__
diff --git a/fs/xfs/xfs_trans.c b/fs/xfs/xfs_trans.c
index 2fd7c1f..8f38901 100644
--- a/fs/xfs/xfs_trans.c
+++ b/fs/xfs/xfs_trans.c
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -645,34 +645,99 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; xfs_trans_init(
 {
 struct xfs_trans_reservations *resp = &amp;amp;mp-&amp;gt;m_reservations;
 
-resp-&amp;gt;tr_write = xfs_calc_write_reservation(mp);
-resp-&amp;gt;tr_itruncate = xfs_calc_itruncate_reservation(mp);
-resp-&amp;gt;tr_rename = xfs_calc_rename_reservation(mp);
-resp-&amp;gt;tr_link = xfs_calc_link_reservation(mp);
-resp-&amp;gt;tr_remove = xfs_calc_remove_reservation(mp);
-resp-&amp;gt;tr_symlink = xfs_calc_symlink_reservation(mp);
-resp-&amp;gt;tr_create = xfs_calc_create_reservation(mp);
-resp-&amp;gt;tr_mkdir = xfs_calc_mkdir_reservation(mp);
-resp-&amp;gt;tr_ifree = xfs_calc_ifree_reservation(mp);
-resp-&amp;gt;tr_ichange = xfs_calc_ichange_reservation(mp);
-resp-&amp;gt;tr_growdata = xfs_calc_growdata_reservation(mp);
-resp-&amp;gt;tr_swrite = xfs_calc_swrite_reservation(mp);
-resp-&amp;gt;tr_writeid = xfs_calc_writeid_reservation(mp);
-resp-&amp;gt;tr_addafork = xfs_calc_addafork_reservation(mp);
-resp-&amp;gt;tr_attrinval = xfs_calc_attrinval_reservation(mp);
-resp-&amp;gt;tr_attrsetm = xfs_calc_attrsetm_reservation(mp);
-resp-&amp;gt;tr_attrsetrt = xfs_calc_attrsetrt_reservation(mp);
-resp-&amp;gt;tr_attrrm = xfs_calc_attrrm_reservation(mp);
-resp-&amp;gt;tr_clearagi = xfs_calc_clear_agi_bucket_reservation(mp);
-resp-&amp;gt;tr_growrtalloc = xfs_calc_growrtalloc_reservation(mp);
-resp-&amp;gt;tr_growrtzero = xfs_calc_growrtzero_reservation(mp);
-resp-&amp;gt;tr_growrtfree = xfs_calc_growrtfree_reservation(mp);
-resp-&amp;gt;tr_qm_sbchange = xfs_calc_qm_sbchange_reservation(mp);
-resp-&amp;gt;tr_qm_setqlim = xfs_calc_qm_setqlim_reservation(mp);
-resp-&amp;gt;tr_qm_dqalloc = xfs_calc_qm_dqalloc_reservation(mp);
-resp-&amp;gt;tr_qm_quotaoff = xfs_calc_qm_quotaoff_reservation(mp);
-resp-&amp;gt;tr_qm_equotaoff = xfs_calc_qm_quotaoff_end_reservation(mp);
-resp-&amp;gt;tr_sb = xfs_calc_sb_reservation(mp);
+/*
+ * The following transactions are logged in physical format and
+ * require a permanent reservation on space.
+ */
+resp-&amp;gt;tr_write.tr_logres = xfs_calc_write_reservation(mp);
+resp-&amp;gt;tr_write.tr_logcount = XFS_WRITE_LOG_COUNT;
+resp-&amp;gt;tr_write.tr_logflags |= XFS_TRANS_PERM_LOG_RES;
+
+resp-&amp;gt;tr_itruncate.tr_logres = xfs_calc_itruncate_reservation(mp);
+resp-&amp;gt;tr_itruncate.tr_logcount = XFS_ITRUNCATE_LOG_COUNT;
+resp-&amp;gt;tr_itruncate.tr_logflags |= XFS_TRANS_PERM_LOG_RES;
+
+resp-&amp;gt;tr_rename.tr_logres = xfs_calc_rename_reservation(mp);
+resp-&amp;gt;tr_rename.tr_logcount = XFS_RENAME_LOG_COUNT;
+resp-&amp;gt;tr_rename.tr_logflags |= XFS_TRANS_PERM_LOG_RES;
+
+resp-&amp;gt;tr_link.tr_logres = xfs_calc_link_reservation(mp);
+resp-&amp;gt;tr_link.tr_logcount = XFS_LINK_LOG_COUNT;
+resp-&amp;gt;tr_link.tr_logflags |= XFS_TRANS_PERM_LOG_RES;
+
+resp-&amp;gt;tr_remove.tr_logres = xfs_calc_remove_reservation(mp);
+resp-&amp;gt;tr_remove.tr_logcount = XFS_REMOVE_LOG_COUNT;
+resp-&amp;gt;tr_remove.tr_logflags |= XFS_TRANS_PERM_LOG_RES;
+
+resp-&amp;gt;tr_symlink.tr_logres = xfs_calc_symlink_reservation(mp);
+resp-&amp;gt;tr_symlink.tr_logcount = XFS_SYMLINK_LOG_COUNT;
+resp-&amp;gt;tr_symlink.tr_logflags |= XFS_TRANS_PERM_LOG_RES;
+
+resp-&amp;gt;tr_create.tr_logres = xfs_calc_create_reservation(mp);
+resp-&amp;gt;tr_create.tr_logcount = XFS_CREATE_LOG_COUNT;
+resp-&amp;gt;tr_create.tr_logflags |= XFS_TRANS_PERM_LOG_RES;
+
+resp-&amp;gt;tr_mkdir.tr_logres = xfs_calc_mkdir_reservation(mp);
+resp-&amp;gt;tr_mkdir.tr_logcount = XFS_MKDIR_LOG_COUNT;
+resp-&amp;gt;tr_mkdir.tr_logflags |= XFS_TRANS_PERM_LOG_RES;
+
+resp-&amp;gt;tr_ifree.tr_logres = xfs_calc_ifree_reservation(mp);
+resp-&amp;gt;tr_ifree.tr_logcount = XFS_INACTIVE_LOG_COUNT;
+resp-&amp;gt;tr_ifree.tr_logflags |= XFS_TRANS_PERM_LOG_RES;
+
+resp-&amp;gt;tr_addafork.tr_logres = xfs_calc_addafork_reservation(mp);
+resp-&amp;gt;tr_addafork.tr_logcount = XFS_ADDAFORK_LOG_COUNT;
+resp-&amp;gt;tr_addafork.tr_logflags |= XFS_TRANS_PERM_LOG_RES;
+
+resp-&amp;gt;tr_attrinval.tr_logres = xfs_calc_attrinval_reservation(mp);
+resp-&amp;gt;tr_attrinval.tr_logcount = XFS_ATTRINVAL_LOG_COUNT;
+resp-&amp;gt;tr_attrinval.tr_logflags |= XFS_TRANS_PERM_LOG_RES;
+
+resp-&amp;gt;tr_attrsetm.tr_logres = xfs_calc_attrsetm_reservation(mp);
+resp-&amp;gt;tr_attrsetm.tr_logcount = XFS_ATTRSET_LOG_COUNT;
+resp-&amp;gt;tr_attrsetm.tr_logflags |= XFS_TRANS_PERM_LOG_RES;
+
+resp-&amp;gt;tr_attrrm.tr_logres = xfs_calc_attrrm_reservation(mp);
+resp-&amp;gt;tr_attrrm.tr_logcount = XFS_ATTRRM_LOG_COUNT;
+resp-&amp;gt;tr_attrrm.tr_logflags |= XFS_TRANS_PERM_LOG_RES;
+
+resp-&amp;gt;tr_growrtalloc.tr_logres = xfs_calc_growrtalloc_reservation(mp);
+resp-&amp;gt;tr_growrtalloc.tr_logcount = XFS_DEFAULT_PERM_LOG_COUNT;
+resp-&amp;gt;tr_growrtalloc.tr_logflags |= XFS_TRANS_PERM_LOG_RES;
+
+resp-&amp;gt;tr_qm_dqalloc.tr_logres = xfs_calc_qm_dqalloc_reservation(mp);
+resp-&amp;gt;tr_qm_dqalloc.tr_logcount = XFS_WRITE_LOG_COUNT;
+resp-&amp;gt;tr_qm_dqalloc.tr_logflags |= XFS_TRANS_PERM_LOG_RES;
+
+/*
+ * The following transactions are logged in logical format with
+ * a default log count.
+ */
+resp-&amp;gt;tr_qm_sbchange.tr_logres = xfs_calc_qm_sbchange_reservation(mp);
+resp-&amp;gt;tr_qm_sbchange.tr_logcount = XFS_DEFAULT_LOG_COUNT;
+
+resp-&amp;gt;tr_qm_setqlim.tr_logres = xfs_calc_qm_setqlim_reservation(mp);
+resp-&amp;gt;tr_qm_setqlim.tr_logcount = XFS_DEFAULT_LOG_COUNT;
+
+resp-&amp;gt;tr_qm_quotaoff.tr_logres = xfs_calc_qm_quotaoff_reservation(mp);
+resp-&amp;gt;tr_qm_quotaoff.tr_logcount = XFS_DEFAULT_LOG_COUNT;
+
+resp-&amp;gt;tr_qm_equotaoff.tr_logres =
+xfs_calc_qm_quotaoff_end_reservation(mp);
+resp-&amp;gt;tr_qm_equotaoff.tr_logcount = XFS_DEFAULT_LOG_COUNT;
+
+resp-&amp;gt;tr_sb.tr_logres = xfs_calc_sb_reservation(mp);
+resp-&amp;gt;tr_sb.tr_logcount = XFS_DEFAULT_LOG_COUNT;
+
+/* The following transaction are logged in logical format */
+resp-&amp;gt;tr_ichange.tr_logres = xfs_calc_ichange_reservation(mp);
+resp-&amp;gt;tr_growdata.tr_logres = xfs_calc_growdata_reservation(mp);
+resp-&amp;gt;tr_swrite.tr_logres = xfs_calc_swrite_reservation(mp);
+resp-&amp;gt;tr_writeid.tr_logres = xfs_calc_writeid_reservation(mp);
+resp-&amp;gt;tr_attrsetrt.tr_logres = xfs_calc_attrsetrt_reservation(mp);
+resp-&amp;gt;tr_clearagi.tr_logres = xfs_calc_clear_agi_bucket_reservation(mp);
+resp-&amp;gt;tr_growrtzero.tr_logres = xfs_calc_growrtzero_reservation(mp);
+resp-&amp;gt;tr_growrtfree.tr_logres = xfs_calc_growrtfree_reservation(mp);
 }
 
 /*
diff --git a/fs/xfs/xfs_trans.h b/fs/xfs/xfs_trans.h
index a44dba5..15a6031 100644
--- a/fs/xfs/xfs_trans.h
+++ b/fs/xfs/xfs_trans.h
&amp;lt; at &amp;gt;&amp;lt; at &amp;gt; -232,39 +232,48 &amp;lt; at &amp;gt;&amp;lt; at &amp;gt; struct xfs_log_item_desc {
  XFS_DAENTER_BMAPS(mp, XFS_DATA_FORK) + 1)
 
 
-#defineXFS_WRITE_LOG_RES(mp)((mp)-&amp;gt;m_reservations.tr_write)
-#defineXFS_ITRUNCATE_LOG_RES(mp)   ((mp)-&amp;gt;m_reservations.tr_itruncate)
-#defineXFS_RENAME_LOG_RES(mp)((mp)-&amp;gt;m_reservations.tr_rename)
-#defineXFS_LINK_LOG_RES(mp)((mp)-&amp;gt;m_reservations.tr_link)
-#defineXFS_REMOVE_LOG_RES(mp)((mp)-&amp;gt;m_reservations.tr_remove)
-#defineXFS_SYMLINK_LOG_RES(mp)((mp)-&amp;gt;m_reservations.tr_symlink)
-#defineXFS_CREATE_LOG_RES(mp)((mp)-&amp;gt;m_reservations.tr_create)
-#defineXFS_MKDIR_LOG_RES(mp)((mp)-&amp;gt;m_reservations.tr_mkdir)
-#defineXFS_IFREE_LOG_RES(mp)((mp)-&amp;gt;m_reservations.tr_ifree)
-#defineXFS_ICHANGE_LOG_RES(mp)((mp)-&amp;gt;m_reservations.tr_ichange)
-#defineXFS_GROWDATA_LOG_RES(mp)    ((mp)-&amp;gt;m_reservations.tr_growdata)
-#defineXFS_GROWRTALLOC_LOG_RES(mp)((mp)-&amp;gt;m_reservations.tr_growrtalloc)
-#defineXFS_GROWRTZERO_LOG_RES(mp)((mp)-&amp;gt;m_reservations.tr_growrtzero)
-#defineXFS_GROWRTFREE_LOG_RES(mp)((mp)-&amp;gt;m_reservations.tr_growrtfree)
-#defineXFS_SWRITE_LOG_RES(mp)((mp)-&amp;gt;m_reservations.tr_swrite)
+#defineXFS_WRITE_LOG_RES(mp)((mp)-&amp;gt;m_reservations.tr_write.tr_logres)
+#defineXFS_RENAME_LOG_RES(mp)((mp)-&amp;gt;m_reservations.tr_rename.tr_logres)
+#defineXFS_LINK_LOG_RES(mp)((mp)-&amp;gt;m_reservations.tr_link.tr_logres)
+#defineXFS_REMOVE_LOG_RES(mp)((mp)-&amp;gt;m_reservations.tr_remove.tr_logres)
+#defineXFS_SYMLINK_LOG_RES(mp)((mp)-&amp;gt;m_reservations.tr_symlink.tr_logres)
+#defineXFS_CREATE_LOG_RES(mp)((mp)-&amp;gt;m_reservations.tr_create.tr_logres)
+#defineXFS_MKDIR_LOG_RES(mp)((mp)-&amp;gt;m_reservations.tr_mkdir.tr_logres)
+#defineXFS_IFREE_LOG_RES(mp)((mp)-&amp;gt;m_reservations.tr_ifree.tr_logres)
+#defineXFS_ICHANGE_LOG_RES(mp)((mp)-&amp;gt;m_reservations.tr_ichange.tr_logres)
+#defineXFS_GROWDATA_LOG_RES(mp)  ((mp)-&amp;gt;m_reservations.tr_growdata.tr_logres)
+#defineXFS_ITRUNCATE_LOG_RES(mp) ((mp)-&amp;gt;m_reservations.tr_itruncate.tr_logres)
+#defineXFS_GROWRTALLOC_LOG_RES(mp)\
+((mp)-&amp;gt;m_reservations.tr_growrtalloc.tr_logres)
+#defineXFS_GROWRTZERO_LOG_RES(mp)\
+((mp)-&amp;gt;m_reservations.tr_growrtzero.tr_logres)
+#defineXFS_GROWRTFREE_LOG_RES(mp)\
+((mp)-&amp;gt;m_reservations.tr_growrtfree.tr_logres)
+#defineXFS_SWRITE_LOG_RES(mp)((mp)-&amp;gt;m_reservations.tr_swrite.tr_logres)
 /*
  * Logging the inode timestamps on an fsync -- same as SWRITE
  * as long as SWRITE logs the entire inode core
  */
-#define XFS_FSYNC_TS_LOG_RES(mp)        ((mp)-&amp;gt;m_reservations.tr_swrite)
-#defineXFS_WRITEID_LOG_RES(mp)((mp)-&amp;gt;m_reservations.tr_swrite)
-#defineXFS_ADDAFORK_LOG_RES(mp)((mp)-&amp;gt;m_reservations.tr_addafork)
-#defineXFS_ATTRINVAL_LOG_RES(mp)((mp)-&amp;gt;m_reservations.tr_attrinval)
-#defineXFS_ATTRSETM_LOG_RES(mp)((mp)-&amp;gt;m_reservations.tr_attrsetm)
-#define XFS_ATTRSETRT_LOG_RES(mp)((mp)-&amp;gt;m_reservations.tr_attrsetrt)
-#defineXFS_ATTRRM_LOG_RES(mp)((mp)-&amp;gt;m_reservations.tr_attrrm)
-#defineXFS_CLEAR_AGI_BUCKET_LOG_RES(mp)  ((mp)-&amp;gt;m_reservations.tr_clearagi)
-#define XFS_QM_SBCHANGE_LOG_RES(mp)((mp)-&amp;gt;m_reservations.tr_qm_sbchange)
-#define XFS_QM_SETQLIM_LOG_RES(mp)((mp)-&amp;gt;m_reservations.tr_qm_setqlim)
-#define XFS_QM_DQALLOC_LOG_RES(mp)((mp)-&amp;gt;m_reservations.tr_qm_dqalloc)
-#define XFS_QM_QUOTAOFF_LOG_RES(mp)((mp)-&amp;gt;m_reservations.tr_qm_quotaoff)
-#define XFS_QM_QUOTAOFF_END_LOG_RES(mp)((mp)-&amp;gt;m_reservations.tr_qm_equotaoff)
-#define XFS_SB_LOG_RES(mp)((mp)-&amp;gt;m_reservations.tr_sb)
+#define XFS_FSYNC_TS_LOG_RES(mp) ((mp)-&amp;gt;m_reservations.tr_swrite.tr_logres)
+#defineXFS_WRITEID_LOG_RES(mp) ((mp)-&amp;gt;m_reservations.tr_swrite.tr_logres)
+#defineXFS_ADDAFORK_LOG_RES(mp) ((mp)-&amp;gt;m_reservations.tr_addafork.tr_logres)
+#defineXFS_ATTRSETM_LOG_RES(mp) ((mp)-&amp;gt;m_reservations.tr_attrsetm.tr_logres)
+#defineXFS_ATTRINVAL_LOG_RES(mp) ((mp)-&amp;gt;m_reservations.tr_attrinval.tr_logres)
+#define XFS_ATTRSETRT_LOG_RES(mp) ((mp)-&amp;gt;m_reservations.tr_attrsetrt.tr_logres)
+#defineXFS_ATTRRM_LOG_RES(mp)  ((mp)-&amp;gt;m_reservations.tr_attrrm.tr_logres)
+#define XFS_SB_LOG_RES(mp)  ((mp)-&amp;gt;m_reservations.tr_sb.tr_logres)
+#defineXFS_CLEAR_AGI_BUCKET_LOG_RES(mp)\
+((mp)-&amp;gt;m_reservations.tr_clearagi.tr_logres)
+#define XFS_QM_SBCHANGE_LOG_RES(mp)\
+((mp)-&amp;gt;m_reservations.tr_qm_sbchange.tr_logres)
+#define XFS_QM_SETQLIM_LOG_RES(mp)\
+((mp)-&amp;gt;m_reservations.tr_qm_setqlim.tr_logres)
+#define XFS_QM_DQALLOC_LOG_RES(mp)\
+((mp)-&amp;gt;m_reservations.tr_qm_dqalloc.tr_logres)
+#define XFS_QM_QUOTAOFF_LOG_RES(mp)\
+((mp)-&amp;gt;m_reservations.tr_qm_quotaoff.tr_logres)
+#define XFS_QM_QUOTAOFF_END_LOG_RES(mp)\
+((mp)-&amp;gt;m_reservations.tr_qm_equotaoff.tr_logres)
 
 /*
  * Various log count values.
&lt;/pre&gt;</description>
    <dc:creator>Jeff Liu</dc:creator>
    <dc:date>2013-05-17T05:38:07</dc:date>
  </item>
  <item rdf:about="http://comments.gmane.org/gmane.comp.file-systems.xfs.general/52629">
    <title>[PATCH v2 0/8] xfs: log space validation</title>
    <link>http://comments.gmane.org/gmane.comp.file-systems.xfs.general/52629</link>
    <description>&lt;pre&gt;Hello,

This is version 2 of fix log space calculation if the log stripe unit is specified.

I changed the subject in this round since there are many changes belong to the log
space reservation interface adjustment.

Major changes of v2-&amp;gt;v1:
- The interface of xfs_trans_reserve() has been changed to:
  xfs_trans_reserve(struct xfs_trans *tp, xfs_trans_res *tres, int blocks, int rtextents);

- Introduce a new inline helper m_tresp() to fetch pointer of mp-&amp;gt;m_reservations structure,
  so that we don't need a big code change if someday we rename m_reservations to another
  name.

- Introduce xfs_log_rlimit.[c|h] to isolate the maximum transaction log space validation
  related routines.  There are two functions can be shared with the user space which are:
  void xfs_log_adjust_max_attrsetm_res();
  void xfs_log_get_max_trans_res();

- Calculate the maximum length in bytes that would be required for a local attribute value
  as large attributes out of line are not logged according to Dave's advise.

- Don't return if the given log space at mount time is too small, drop a message via syslog
  in critical level instead.

Testing:
xfstests/generic and xfs specified test cases(except a dozens of cases need a tap device or
xfsdump) works without panic.

[PATCH 1/8] xfs: Introduce a new structure to hold transaction reservation items
[PATCH 2/8] xfs: Introduce tr_fsyncts to m_reservation
[PATCH 3/8] xfs: Make writeid transaction use tr_writeid
[PATCH 4/8] xfs: Refactor xfs_trans_reserve() interface
[PATCH 5/8] xfs: Get rid of all XFS_XXX_LOG_RES() macros
[PATCH 6/8] xfs: Refactor xfs_ticket_alloc() to extract a new helper
[PATCH 7/8] xfs: Add xfs_log_rlimit.[c|h]
[PATCH 8/8] xfs: Validate log space at mount time

The patches of user space sync up with those kernel space change will be sent out later as I
have to go out to deal with a urgent thing right now.

v1:
http://comments.gmane.org/gmane.comp.file-systems.xfs.general/52201

Thanks,
-Jeff

_______________________________________________
xfs mailing list
xfs&amp;lt; at &amp;gt;oss.sgi.com
http://oss.sgi.com/mailman/listinfo/xfs

&lt;/pre&gt;</description>
    <dc:creator>Jeff Liu</dc:creator>
    <dc:date>2013-05-17T05:38:01</dc:date>
  </item>
  <item rdf:about="http://comments.gmane.org/gmane.comp.file-systems.xfs.general/52617">
    <title>[PATCH 0/5] xfs: fixes for 3.10-rc2</title>
    <link>http://comments.gmane.org/gmane.comp.file-systems.xfs.general/52617</link>
    <description>&lt;pre&gt;Hi Ben,

The following patches are fixing regressions, data integrity
problems  and lockdep reports. They are all candidates for 3.10-rc2.
Please consider them for 3.10-rc2.

Cheers,

Dave.

_______________________________________________
xfs mailing list
xfs&amp;lt; at &amp;gt;oss.sgi.com
http://oss.sgi.com/mailman/listinfo/xfs

&lt;/pre&gt;</description>
    <dc:creator>Dave Chinner</dc:creator>
    <dc:date>2013-05-17T01:10:24</dc:date>
  </item>
  <item rdf:about="http://comments.gmane.org/gmane.comp.file-systems.xfs.general/52612">
    <title>Интернет-реклама для Вашего успешного бизнеса!</title>
    <link>http://comments.gmane.org/gmane.comp.file-systems.xfs.general/52612</link>
    <description>&lt;pre&gt; Рассылки для бизнеса- 
недорогой и надежный вид рекламы Ваших товаров и услуг.
Краткий прайс-лист на услуги:
База корпоратив - Москва (2.5 млн. адресов) - 4 000 руб.
База физ. лица - Москва (10 млн. адресов) - 12 000 руб.

От 500руб/млн. при больших заказах.

 Акция- при заказе 2х баз одновременно, 3ю рассылаем бонусом!

Консультации по рассылкам и прием заказов: 8(926) 1~ 888~ 017

vzgol
_______________________________________________
xfs mailing list
xfs&amp;lt; at &amp;gt;oss.sgi.com
http://oss.sgi.com/mailman/listinfo/xfs
&lt;/pre&gt;</description>
    <dc:creator>Дарья Крылова</dc:creator>
    <dc:date>2013-05-16T23:16:36</dc:date>
  </item>
  <item rdf:about="http://comments.gmane.org/gmane.comp.file-systems.xfs.general/52607">
    <title>xfsprogs 3.1.9 MIGRATED to testing</title>
    <link>http://comments.gmane.org/gmane.comp.file-systems.xfs.general/52607</link>
    <description>&lt;pre&gt;FYI: The status of the xfsprogs source package
in Debian's testing distribution has changed.

  Previous version: 3.1.7
  Current version:  3.1.9

&lt;/pre&gt;</description>
    <dc:creator>Debian testing watch</dc:creator>
    <dc:date>2013-05-10T16:39:16</dc:date>
  </item>
  <item rdf:about="http://comments.gmane.org/gmane.comp.file-systems.xfs.general/52605">
    <title>see the file content by xfs_db</title>
    <link>http://comments.gmane.org/gmane.comp.file-systems.xfs.general/52605</link>
    <description>&lt;pre&gt;is it possible to see the file content by xfs_db? and how-to?

_______________________________________________
xfs mailing list
xfs&amp;lt; at &amp;gt;oss.sgi.com
http://oss.sgi.com/mailman/listinfo/xfs

&lt;/pre&gt;</description>
    <dc:creator>chen.szu.fan</dc:creator>
    <dc:date>2013-05-16T06:48:51</dc:date>
  </item>
  <textinput rdf:about="http://search.gmane.org/?group=$group=gmane.comp.file-systems.xfs.general">
    <title>Search Engine</title>
    <description>Search the mailing list at Gmane</description>
    <name>query</name>
    <link>http://search.gmane.org/?group=$group=gmane.comp.file-systems.xfs.general</link>
  </textinput>
</rdf:RDF>
