12 Aug, 2010

1 commit


11 Aug, 2010

1 commit

  • * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs-2.6: (96 commits)
    no need for list_for_each_entry_safe()/resetting with superblock list
    Fix sget() race with failing mount
    vfs: don't hold s_umount over close_bdev_exclusive() call
    sysv: do not mark superblock dirty on remount
    sysv: do not mark superblock dirty on mount
    btrfs: remove junk sb_dirt change
    BFS: clean up the superblock usage
    AFFS: wait for sb synchronization when needed
    AFFS: clean up dirty flag usage
    cifs: truncate fallout
    mbcache: fix shrinker function return value
    mbcache: Remove unused features
    add f_flags to struct statfs(64)
    pass a struct path to vfs_statfs
    update VFS documentation for method changes.
    All filesystems that need invalidate_inode_buffers() are doing that explicitly
    convert remaining ->clear_inode() to ->evict_inode()
    Make ->drop_inode() just return whether inode needs to be dropped
    fs/inode.c:clear_inode() is gone
    fs/inode.c:evict() doesn't care about delete vs. non-delete paths now
    ...

    Fix up trivial conflicts in fs/nilfs2/super.c

    Linus Torvalds
     

10 Aug, 2010

5 commits

  • Remove the calls to inode_newsize_ok given that we already did it as
    part of inode_change_ok in the beginning of cifs_setattr_(no)unix.

    No need to call ->truncate if cifs doesn't have one, so remove the
    explicit call in cifs_vmtruncate, and replace the calls to vmtruncate
    with truncate_setsize which is vmtruncate minus inode_newsize_ok
    and the call to ->truncate.

    Rename cifs_vmtruncate to cifs_setsize to match the new calling conventions.

    Question 1: why does cifs do the pagecache munging and i_size update twice
    for each setattr call, once opencoded in cifs_vmtruncate, and once
    using the VFS helpers?
    Question 2: what is supposed to be protected by i_lock in cifs_vmtruncate?
    Do we need it around the call to inode_change_ok?

    [AV: fixed build breakage]

    Signed-off-by: Christoph Hellwig
    Signed-off-by: Al Viro

    Christoph Hellwig
     
  • Signed-off-by: Al Viro

    Al Viro
     
  • ... and let iput_final() do the actual eviction or retention

    Signed-off-by: Al Viro

    Al Viro
     
  • Make sure we call inode_change_ok before doing any changes in ->setattr,
    and make sure to call it even if our fs wants to ignore normal UNIX
    permissions, but use the ATTR_FORCE to skip those.

    Signed-off-by: Christoph Hellwig
    Signed-off-by: Al Viro

    Christoph Hellwig
     
  • Replace inode_setattr with opencoded variants of it in all callers. This
    moves the remaining call to vmtruncate into the filesystem methods where it
    can be replaced with the proper truncate sequence.

    In a few cases it was obvious that we would never end up calling vmtruncate
    so it was left out in the opencoded variant:

    spufs: explicitly checks for ATTR_SIZE earlier
    btrfs,hugetlbfs,logfs,dlmfs: explicitly clears ATTR_SIZE earlier
    ufs: contains an opencoded simple_seattr + truncate that sets the filesize just above

    In addition to that ncpfs called inode_setattr with handcrafted iattrs,
    which allowed to trim down the opencoded variant.

    Signed-off-by: Christoph Hellwig
    Signed-off-by: Al Viro

    Christoph Hellwig
     

08 Aug, 2010

2 commits

  • * git://git.kernel.org/pub/scm/linux/kernel/git/sfrench/cifs-2.6:
    [DNS RESOLVER] Minor typo correction
    DNS: Fixes for the DNS query module
    cifs: Include linux/err.h for IS_ERR and PTR_ERR
    DNS: Make AFS go to the DNS for AFSDB records for unknown cells
    DNS: Separate out CIFS DNS Resolver code
    cifs: account for new creduid=0x%x parameter in spnego upcall string
    cifs: reduce false positives with inode aliasing serverino autodisable
    CIFS: Make cifs_convert_address() take a const src pointer and a length
    cifs: show features compiled in as part of DebugData
    cifs: update README

    Fix up trivial conflicts in fs/cifs/cifsfs.c due to workqueue changes

    Linus Torvalds
     
  • * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tj/wq: (55 commits)
    workqueue: mark init_workqueues() as early_initcall()
    workqueue: explain for_each_*cwq_cpu() iterators
    fscache: fix build on !CONFIG_SYSCTL
    slow-work: kill it
    gfs2: use workqueue instead of slow-work
    drm: use workqueue instead of slow-work
    cifs: use workqueue instead of slow-work
    fscache: drop references to slow-work
    fscache: convert operation to use workqueue instead of slow-work
    fscache: convert object to use workqueue instead of slow-work
    workqueue: fix how cpu number is stored in work->data
    workqueue: fix mayday_mask handling on UP
    workqueue: fix build problem on !CONFIG_SMP
    workqueue: fix locking in retry path of maybe_create_worker()
    async: use workqueue for worker pool
    workqueue: remove WQ_SINGLE_CPU and use WQ_UNBOUND instead
    workqueue: implement unbound workqueue
    workqueue: prepare for WQ_UNBOUND implementation
    libata: take advantage of cmwq and remove concurrency limitations
    workqueue: fix worker management invocation without pending works
    ...

    Fixed up conflicts in fs/cifs/* as per Tejun. Other trivial conflicts in
    include/linux/workqueue.h, kernel/trace/Kconfig and kernel/workqueue.c

    Linus Torvalds
     

06 Aug, 2010

6 commits

  • Separate out the DNS resolver key type from the CIFS filesystem into its own
    module so that it can be made available for general use, including the AFS
    filesystem module.

    This facility makes it possible for the kernel to upcall to userspace to have
    it issue DNS requests, package up the replies and present them to the kernel
    in a useful form. The kernel is then able to cache the DNS replies as keys
    can be retained in keyrings.

    Resolver keys are of type "dns_resolver" and have a case-insensitive
    description that is of the form "[:]". The optional
    indicates the particular DNS lookup and packaging that's required. The
    is the query to be made.

    If isn't given, a basic hostname to IP address lookup is made, and the
    result is stored in the key in the form of a printable string consisting of a
    comma-separated list of IPv4 and IPv6 addresses.

    This key type is supported by userspace helpers driven from /sbin/request-key
    and configured through /etc/request-key.conf. The cifs.upcall utility is
    invoked for UNC path server name to IP address resolution.

    The CIFS functionality is encapsulated by the dns_resolve_unc_to_ip() function,
    which is used to resolve a UNC path to an IP address for CIFS filesystem. This
    part remains in the CIFS module for now.

    See the added Documentation/networking/dns_resolver.txt for more information.

    Signed-off-by: Wang Lei
    Signed-off-by: David Howells
    Acked-by: Jeff Layton
    Signed-off-by: Steve French

    Wang Lei
     
  • The commit that added the creduid=0x%x parameter failed to increase the
    buffer allocation to account for it.

    Reported-by: J. Bruce Fields
    Signed-off-by: Jeff Layton
    Signed-off-by: Steve French

    Jeff Layton
     
  • It turns out that not all directory inodes with dentries on the
    i_dentry list are unusable here. We only consider them unusable if they
    are still hashed or if they have a root dentry attached.

    Full disclosure -- this check is inherently racy. There's nothing that
    stops someone from slapping a new dentry onto this inode just after
    this check, or hashing an existing one that's already attached. So,
    this is really a "best effort" thing to work around misbehaving servers.

    Signed-off-by: Jeff Layton
    Signed-off-by: Steve French

    Jeff Layton
     
  • Make cifs_convert_address() take a const src pointer and a length so that all
    the strlen() calls in their can be cut out and to make it unnecessary to modify
    the src string.

    Also return the data length from dns_resolve_server_name_to_ip() so that a
    strlen() can be cut out of cifs_compose_mount_options() too.

    Acked-by: Jeff Layton
    Signed-off-by: David Howells
    Signed-off-by: Steve French

    David Howells
     
  • Fixed the nit pointed out by Jeff.

    From: Suresh Jayaraman
    Subject: [PATCH 1/2] cifs: show features compiled in as part of DebugData

    This patch adds the features that are compiled in to the CIFS debugging data
    as shown below:

    $cat /proc/fs/cifs/DebugData
    Display Internal CIFS Data Structures for Debugging
    ---------------------------------------------------
    CIFS Version 1.64
    Features: dfs fscache posix spnego xattr
    Active VFS Requests: 0
    ...

    This patch provides a definitive way to tell what features are currently
    enabled in the running kernel. This could also help debugging.

    Signed-off-by: Suresh Jayaraman
    Cc: Jeff Layton
    Signed-off-by: Steve French

    Suresh Jayaraman
     
  • Update the README file to reflect that now DebugData shows all
    the features enabled.

    Signed-off-by: Suresh Jayaraman
    Cc: Jeff Layton
    --
    fs/cifs/README | 5 +++--
    1 files changed, 3 insertions(+), 2 deletions(-)
    Signed-off-by: Steve French

    Suresh Jayaraman
     

02 Aug, 2010

25 commits