← Back to team overview

kernel-packages team mailing list archive

[Bug 1222442] Re: Linux kernel regression: Links on CIFS shares

 

This bug was fixed in the package linux - 3.2.0-54.82

---------------
linux (3.2.0-54.82) precise; urgency=low

  [Steve Conklin]

  * Release Tracking Bug
    - LP: #1223490

  [ Upstream Kernel Changes ]

  * Revert "zram: use zram->lock to protect zram_free_page() in swap free
    notify path"
    - LP: #1215513
  * x86 thermal: Delete power-limit-notification console messages
    - LP: #1215748
  * x86 thermal: Disable power limit notification interrupt by default
    - LP: #1215748
  * ARM: 7810/1: perf: Fix array out of bounds access in
    armpmu_map_hw_event()
    - LP: #1216442
    - CVE-2013-4254
  * ARM: 7809/1: perf: fix event validation for software group leaders
    - LP: #1216442
    - CVE-2013-4254
  * xfs: fix _xfs_buf_find oops on blocks beyond the filesystem end
    - LP: #1151527
    - CVE-2013-1819
  * cifs: don't instantiate new dentries in readdir for inodes that need to
    be revalidated immediately
    - LP: #1222442
 -- Steve Conklin <sconklin@xxxxxxxxxxxxx>   Tue, 10 Sep 2013 12:54:53 -0500

** Changed in: linux (Ubuntu)
       Status: Fix Committed => Fix Released

** CVE added: http://www.cve.mitre.org/cgi-
bin/cvename.cgi?name=2013-1819

** CVE added: http://www.cve.mitre.org/cgi-
bin/cvename.cgi?name=2013-4254

-- 
You received this bug notification because you are a member of Kernel
Packages, which is subscribed to linux in Ubuntu.
https://bugs.launchpad.net/bugs/1222442

Title:
  Linux kernel regression: Links on CIFS shares

Status in “linux” package in Ubuntu:
  Fix Released

Bug description:
  After upgrading from (Ubuntu) kernel version 3.2.0-45-generic to
  3.2.0-48-generic on Ubuntu Precise (x86_64), links on CIFS shares are
  broken. The used setup is the following:

  Clients running Ubuntu Precise mount a CIFS share with

      mount -t cifs -o
  sec=krb5,multiuser,cifsacl,serverino,nobrl,nounix,cruid=xyz,mfsymlinks
  //srv.example.com /mnt/cifs

  Issuing the following commands

      touch hello
      ln -s hello hello2
      ls -l

  on the mounted CIFS share results in the output

      ls: cannot read symbolic link hello2: Invalid argument
      total 1024
      -rwxr-xr-x 0 user group 0 Sep  8 16:36 hello
      lrwxrwxrwx 1 user group 5 Sep  8 16:36 hello2

  for kernel versions >= 3.2.0-48-generic. Running "less hello2" yields:

      hello2 is not a regular file (use -f to see it)

  Using "less -f hello2" changes the error message to

      hello2: Too many levels of symbolic links

  Some of our users only see this problem if there is at least one
  reboot of the client between link creation and link access.

  The problem can be traced back to the following kernel code change:
  -------------------------------------------------------------------------------------------------------
  diff --git a/fs/cifs/inode.c b/fs/cifs/inode.c
  index e851d5b..20431b4 100644
  --- a/fs/cifs/inode.c
  +++ b/fs/cifs/inode.c
  @@ -173,7 +173,8 @@ cifs_fattr_to_inode(struct inode *inode, struct cifs_fattr *fattr)
   
          if (fattr->cf_flags & CIFS_FATTR_DFS_REFERRAL)
                  inode->i_flags |= S_AUTOMOUNT;
  -       cifs_set_ops(inode);
  +       if (inode->i_state & I_NEW)
  +               cifs_set_ops(inode);
   }
   
   void
  -------------------------------------------------------------------------------------------------------
  Reverting this change fixes the problem.

  Another way to get rid of the error is to remove the "nounix" and
  "mksymlinks" mount options but this slows down the setup such that it
  becomes practically useless.

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1222442/+subscriptions


References