]> git.pld-linux.org Git - packages/kernel.git/blob - kernel-small_fixes.patch
- up to 3.14.23; xfs: avoid false quotacheck after unclean shutdown
[packages/kernel.git] / kernel-small_fixes.patch
1 --- linux-2.6.33/scripts/mod/modpost.c~ 2010-02-24 19:52:17.000000000 +0100
2 +++ linux-2.6.33/scripts/mod/modpost.c  2010-03-07 14:26:47.242168558 +0100
3 @@ -15,7 +15,8 @@
4  #include <stdio.h>
5  #include <ctype.h>
6  #include "modpost.h"
7 -#include "../../include/generated/autoconf.h"
8 +// PLD architectures don't use CONFIG_SYMBOL_PREFIX
9 +//#include "../../include/generated/autoconf.h"
10  #include "../../include/linux/license.h"
11  
12  /* Some toolchains use a `_' prefix for all user symbols. */
13
14 --- linux-3.0/scripts/kconfig/lxdialog/check-lxdialog.sh~       2011-07-22 04:17:23.000000000 +0200
15 +++ linux-3.0/scripts/kconfig/lxdialog/check-lxdialog.sh        2011-08-25 21:26:04.799150642 +0200
16 @@ -9,6 +9,12 @@
17                         $cc -print-file-name=lib${lib}.${ext} | grep -q /
18                         if [ $? -eq 0 ]; then
19                                 echo "-l${lib}"
20 +                               for libt in tinfow tinfo ; do
21 +                                       $cc -print-file-name=lib${libt}.${ext} | grep -q /
22 +                                       if [ $? -eq 0 ]; then
23 +                                               echo "-l${libt}"
24 +                                       fi
25 +                               done
26                                 exit
27                         fi
28                 done
29
30 diff --git a/drivers/net/ethernet/realtek/r8169.c b/drivers/net/ethernet/realtek/r8169.c
31 index 7a0c800..ec5ebbb 100644
32 --- a/drivers/net/ethernet/realtek/r8169.c
33 +++ b/drivers/net/ethernet/realtek/r8169.c
34 @@ -6927,6 +6927,14 @@ rtl_init_one(struct pci_dev *pdev, const
35         for (i = 0; i < ETH_ALEN; i++)
36                 dev->dev_addr[i] = RTL_R8(MAC0 + i);
37  
38 +       if (!is_valid_ether_addr(dev->dev_addr)) {
39 +               /* Report it and use a random ethernet address instead */
40 +               netdev_err(dev, "Invalid MAC address: %pM\n", dev->dev_addr);
41 +               random_ether_addr(dev->dev_addr);
42 +               netdev_info(dev, "Using random MAC address: %pM\n",
43 +                               dev->dev_addr);
44 +       }
45 +
46         SET_ETHTOOL_OPS(dev, &rtl8169_ethtool_ops);
47         dev->watchdog_timeo = RTL8169_TX_TIMEOUT;
48  
49 [PATCH] SCSI: Don't attempt to send extended INQUIRY command if skip_vpd_pages is set
50
51 If a device has the skip_vpd_pages flag set we should simply fail the
52 scsi_get_vpd_page() call.
53
54 Signed-off-by: Martin K. Petersen <martin.petersen@oracle.com>
55 Acked-by: Alan Stern <stern@rowland.harvard.edu>
56 Tested-by: Stuart Foster <smf.linux@ntlworld.com>
57 Cc: stable@vger.kernel.org
58
59 diff --git a/drivers/scsi/scsi.c b/drivers/scsi/scsi.c
60 index 3b1ea34..eaa808e 100644
61 --- a/drivers/scsi/scsi.c
62 +++ b/drivers/scsi/scsi.c
63 @@ -1031,6 +1031,9 @@
64  {
65         int i, result;
66  
67 +       if (sdev->skip_vpd_pages)
68 +           goto fail;
69 +
70         /* Ask for all the pages supported by this device */
71         result = scsi_vpd_inquiry(sdev, buf, 0, buf_len);
72         if (result)
73
74 From 1e2ee49f7f1b79f0b14884fe6a602f0411b39552 Mon Sep 17 00:00:00 2001
75 From: Will Woods <wwoods@redhat.com>
76 Date: Tue, 6 May 2014 12:50:10 -0700
77 Subject: fanotify: fix -EOVERFLOW with large files on 64-bit
78
79 On 64-bit systems, O_LARGEFILE is automatically added to flags inside
80 the open() syscall (also openat(), blkdev_open(), etc).  Userspace
81 therefore defines O_LARGEFILE to be 0 - you can use it, but it's a
82 no-op.  Everything should be O_LARGEFILE by default.
83
84 But: when fanotify does create_fd() it uses dentry_open(), which skips
85 all that.  And userspace can't set O_LARGEFILE in fanotify_init()
86 because it's defined to 0.  So if fanotify gets an event regarding a
87 large file, the read() will just fail with -EOVERFLOW.
88
89 This patch adds O_LARGEFILE to fanotify_init()'s event_f_flags on 64-bit
90 systems, using the same test as open()/openat()/etc.
91
92 Addresses https://bugzilla.redhat.com/show_bug.cgi?id=696821
93
94 Signed-off-by: Will Woods <wwoods@redhat.com>
95 Acked-by: Eric Paris <eparis@redhat.com>
96 Reviewed-by: Jan Kara <jack@suse.cz>
97 Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
98 Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
99
100 diff --git a/fs/notify/fanotify/fanotify_user.c b/fs/notify/fanotify/fanotify_user.c
101 index 4e565c8..732648b 100644
102 --- a/fs/notify/fanotify/fanotify_user.c
103 +++ b/fs/notify/fanotify/fanotify_user.c
104 @@ -698,6 +698,8 @@ SYSCALL_DEFINE2(fanotify_init, unsigned int, flags, unsigned int, event_f_flags)
105         }
106         group->overflow_event = &oevent->fse;
107  
108 +       if (force_o_largefile())
109 +               event_f_flags |= O_LARGEFILE;
110         group->fanotify_data.f_flags = event_f_flags;
111  #ifdef CONFIG_FANOTIFY_ACCESS_PERMISSIONS
112         spin_lock_init(&group->fanotify_data.access_lock);
113 -- 
114 cgit v0.10.1
115 commit 5ef828c4152726f56751c78ea844f08d2b2a4fa3
116 Author: Eric Sandeen <sandeen@sandeen.net>
117 Date:   Mon Aug 4 11:35:44 2014 +1000
118
119     xfs: avoid false quotacheck after unclean shutdown
120     
121     The commit
122     
123     83e782e xfs: Remove incore use of XFS_OQUOTA_ENFD and XFS_OQUOTA_CHKD
124     
125     added a new function xfs_sb_quota_from_disk() which swaps
126     on-disk XFS_OQUOTA_* flags for in-core XFS_GQUOTA_* and XFS_PQUOTA_*
127     flags after the superblock is read.
128     
129     However, if log recovery is required, the superblock is read again,
130     and the modified in-core flags are re-read from disk, so we have
131     XFS_OQUOTA_* flags in memory again.  This causes the
132     XFS_QM_NEED_QUOTACHECK() test to be true, because the XFS_OQUOTA_CHKD
133     is still set, and not XFS_GQUOTA_CHKD or XFS_PQUOTA_CHKD.
134     
135     Change xfs_sb_from_disk to call xfs_sb_quota_from disk and always
136     convert the disk flags to in-memory flags.
137     
138     Add a lower-level function which can be called with "false" to
139     not convert the flags, so that the sb verifier can verify
140     exactly what was on disk, per Brian Foster's suggestion.
141     
142     Reported-by: Cyril B. <cbay@excellency.fr>
143     Signed-off-by: Eric Sandeen <sandeen@redhat.com>
144
145 diff --git a/fs/xfs/xfs_sb.c b/fs/xfs/xfs_sb.c
146 index f5ca028..8db9e92 100644
147 --- a/fs/xfs/xfs_sb.c
148 +++ b/fs/xfs//xfs_sb.c
149 @@ -386,10 +386,11 @@ xfs_sb_quota_from_disk(struct xfs_sb *sbp)
150         }
151  }
152  
153 -void
154 -xfs_sb_from_disk(
155 +static void
156 +__xfs_sb_from_disk(
157         struct xfs_sb   *to,
158 -       xfs_dsb_t       *from)
159 +       xfs_dsb_t       *from,
160 +       bool            convert_xquota)
161  {
162         to->sb_magicnum = be32_to_cpu(from->sb_magicnum);
163         to->sb_blocksize = be32_to_cpu(from->sb_blocksize);
164 @@ -445,6 +446,17 @@ xfs_sb_from_disk(
165         to->sb_pad = 0;
166         to->sb_pquotino = be64_to_cpu(from->sb_pquotino);
167         to->sb_lsn = be64_to_cpu(from->sb_lsn);
168 +       /* Convert on-disk flags to in-memory flags? */
169 +       if (convert_xquota)
170 +               xfs_sb_quota_from_disk(to);
171 +}
172 +
173 +void
174 +xfs_sb_from_disk(
175 +       struct xfs_sb   *to,
176 +       xfs_dsb_t       *from)
177 +{
178 +       __xfs_sb_from_disk(to, from, true);
179  }
180  
181  static inline void
182 @@ -560,7 +572,11 @@ xfs_sb_verify(
183         struct xfs_mount *mp = bp->b_target->bt_mount;
184         struct xfs_sb   sb;
185  
186 -       xfs_sb_from_disk(&sb, XFS_BUF_TO_SBP(bp));
187 +       /*
188 +        * Use call variant which doesn't convert quota flags from disk 
189 +        * format, because xfs_mount_validate_sb checks the on-disk flags.
190 +        */
191 +       __xfs_sb_from_disk(&sb, XFS_BUF_TO_SBP(bp), false);
192  
193         /*
194          * Only check the in progress field for the primary superblock as
195 diff --git a/fs/xfs/xfs_mount.c b/fs/xfs/xfs_mount.c
196 index d5c44a6..5612aa8 100644
197 --- a/fs/xfs/xfs_mount.c
198 +++ b/fs/xfs/xfs_mount.c
199 @@ -324,7 +324,6 @@ reread:
200          * Initialize the mount structure from the superblock.
201          */
202         xfs_sb_from_disk(sbp, XFS_BUF_TO_SBP(bp));
203 -       xfs_sb_quota_from_disk(sbp);
204  
205         /*
206          * If we haven't validated the superblock, do so now before we try
This page took 0.046933 seconds and 4 git commands to generate.