08 Dec, 2014

1 commit


17 Oct, 2014

2 commits

  • This is a bigger patch, but its size is mostly due to
    a single change for how we check for remapping illegal characters
    in file names - a lot of repeated, small changes to
    the way callers request converting file names.

    The final patch in the series does the following:

    1) changes default behavior for cifs to be more intuitive.
    Currently we do not map by default to seven reserved characters,
    ie those valid in POSIX but not in NTFS/CIFS/SMB3/Windows,
    unless a mount option (mapchars) is specified. Change this
    to by default always map and map using the SFM maping
    (like the Mac uses) unless the server negotiates the CIFS Unix
    Extensions (like Samba does when mounting with the cifs protocol)
    when the remapping of the characters is unnecessary. This should
    help SMB3 mounts in particular since Samba will likely be
    able to implement this mapping with its new "vfs_fruit" module
    as it will be doing for the Mac.
    2) if the user specifies the existing "mapchars" mount option then
    use the "SFU" (Microsoft Services for Unix, SUA) style mapping of
    the seven characters instead.
    3) if the user specifies "nomapposix" then disable SFM/MAC style mapping
    (so no character remapping would be used unless the user specifies
    "mapchars" on mount as well, as above).
    4) change all the places in the code that check for the superblock
    flag on the mount which is set by mapchars and passed in on all
    path based operation and change it to use a small function call
    instead to set the mapping type properly (and check for the
    mapping type in the cifs unicode functions)

    Signed-off-by: Steve French

    Steve French
     
  • The "sfu" mount option did not work on SMB2/SMB3 mounts.
    With these changes when the "sfu" mount option is passed in
    on an smb2/smb2.1/smb3 mount the client can emulate (and
    recognize) fifo and device (character and device files).

    In addition the "sfu" mount option should not conflict
    with "mfsymlinks" (symlink emulation) as we will never
    create "sfu" style symlinks, but using "sfu" mount option
    will allow us to recognize existing symlinks, created with
    Microsoft "Services for Unix" (SFU and SUA).

    To enable the "sfu" mount option for SMB2/SMB3 the calling
    syntax of the generic cifs/smb2/smb3 sync_read and sync_write
    protocol dependent function needed to be changed (we
    don't have a file struct in all cases), but this actually
    ended up simplifying the code a little.

    Signed-off-by: Steve French

    Steve French
     

14 Oct, 2014

1 commit

  • The kernel used to contain two functions for length-delimited,
    case-insensitive string comparison, strnicmp with correct semantics and
    a slightly buggy strncasecmp. The latter is the POSIX name, so strnicmp
    was renamed to strncasecmp, and strnicmp made into a wrapper for the new
    strncasecmp to avoid breaking existing users.

    To allow the compat wrapper strnicmp to be removed at some point in the
    future, and to avoid the extra indirection cost, do
    s/strnicmp/strncasecmp/g.

    Signed-off-by: Rasmus Villemoes
    Cc: Steve French
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Rasmus Villemoes
     

16 Sep, 2014

1 commit


22 Aug, 2014

2 commits


10 Aug, 2014

1 commit

  • Pull CIFS updates from Steve French:
    "The most visible change in this set is the additional of multi-credit
    support for SMB2/SMB3 which dramatically improves the large file i/o
    performance for these dialects and significantly increases the maximum
    i/o size used on the wire for SMB2/SMB3.

    Also reconnection behavior after network failure is improved"

    * 'for-next' of git://git.samba.org/sfrench/cifs-2.6: (35 commits)
    Add worker function to set allocation size
    [CIFS] Fix incorrect hex vs. decimal in some debug print statements
    update CIFS TODO list
    Add Pavel to contributor list in cifs AUTHORS file
    Update cifs version
    CIFS: Fix STATUS_CANNOT_DELETE error mapping for SMB2
    CIFS: Optimize readpages in a short read case on reconnects
    CIFS: Optimize cifs_user_read() in a short read case on reconnects
    CIFS: Improve indentation in cifs_user_read()
    CIFS: Fix possible buffer corruption in cifs_user_read()
    CIFS: Count got bytes in read_into_pages()
    CIFS: Use separate var for the number of bytes got in async read
    CIFS: Indicate reconnect with ECONNABORTED error code
    CIFS: Use multicredits for SMB 2.1/3 reads
    CIFS: Fix rsize usage for sync read
    CIFS: Fix rsize usage in user read
    CIFS: Separate page reading from user read
    CIFS: Fix rsize usage in readpages
    CIFS: Separate page search from readpages
    CIFS: Use multicredits for SMB 2.1/3 writes
    ...

    Linus Torvalds
     

02 Aug, 2014

1 commit


16 Jul, 2014

1 commit

  • The current "wait_on_bit" interface requires an 'action'
    function to be provided which does the actual waiting.
    There are over 20 such functions, many of them identical.
    Most cases can be satisfied by one of just two functions, one
    which uses io_schedule() and one which just uses schedule().

    So:
    Rename wait_on_bit and wait_on_bit_lock to
    wait_on_bit_action and wait_on_bit_lock_action
    to make it explicit that they need an action function.

    Introduce new wait_on_bit{,_lock} and wait_on_bit{,_lock}_io
    which are *not* given an action function but implicitly use
    a standard one.
    The decision to error-out if a signal is pending is now made
    based on the 'mode' argument rather than being encoded in the action
    function.

    All instances of the old wait_on_bit and wait_on_bit_lock which
    can use the new version have been changed accordingly and their
    action functions have been discarded.
    wait_on_bit{_lock} does not return any specific error code in the
    event of a signal so the caller must check for non-zero and
    interpolate their own error code as appropriate.

    The wait_on_bit() call in __fscache_wait_on_invalidate() was
    ambiguous as it specified TASK_UNINTERRUPTIBLE but used
    fscache_wait_bit_interruptible as an action function.
    David Howells confirms this should be uniformly
    "uninterruptible"

    The main remaining user of wait_on_bit{,_lock}_action is NFS
    which needs to use a freezer-aware schedule() call.

    A comment in fs/gfs2/glock.c notes that having multiple 'action'
    functions is useful as they display differently in the 'wchan'
    field of 'ps'. (and /proc/$PID/wchan).
    As the new bit_wait{,_io} functions are tagged "__sched", they
    will not show up at all, but something higher in the stack. So
    the distinction will still be visible, only with different
    function names (gds2_glock_wait versus gfs2_glock_dq_wait in the
    gfs2/glock.c case).

    Since first version of this patch (against 3.15) two new action
    functions appeared, on in NFS and one in CIFS. CIFS also now
    uses an action function that makes the same freezer aware
    schedule call as NFS.

    Signed-off-by: NeilBrown
    Acked-by: David Howells (fscache, keys)
    Acked-by: Steven Whitehouse (gfs2)
    Acked-by: Peter Zijlstra
    Cc: Oleg Nesterov
    Cc: Steve French
    Cc: Linus Torvalds
    Link: http://lkml.kernel.org/r/20140707051603.28027.72349.stgit@notabene.brown
    Signed-off-by: Ingo Molnar

    NeilBrown
     

22 May, 2014

2 commits

  • Dan Carpenter says:

    The patch 04febabcf55b: "cifs: sanitize username handling" from Jan
    17, 2012, leads to the following static checker warning:

    fs/cifs/connect.c:2231 match_session()
    error: we previously assumed 'vol->username' could be null (see line 2228)

    fs/cifs/connect.c
    2219 /* NULL username means anonymous session */
    2220 if (ses->user_name == NULL) {
    2221 if (!vol->nullauth)
    2222 return 0;
    2223 break;
    2224 }
    2225
    2226 /* anything else takes username/password */
    2227 if (strncmp(ses->user_name,
    2228 vol->username ? vol->username : "",
    ^^^^^^^^^^^^^
    We added this check for vol->username here.

    2229 CIFS_MAX_USERNAME_LEN))
    2230 return 0;
    2231 if (strlen(vol->username) != 0 &&
    ^^^^^^^^^^^^^
    But this dereference is not checked.

    2232 ses->password != NULL &&
    2233 strncmp(ses->password,
    2234 vol->password ? vol->password : "",
    2235 CIFS_MAX_PASSWORD_LEN))
    2236 return 0;

    ...fix this by ensuring that vol->username is not NULL before running
    strlen on it.

    Signed-off-by: Jeff Layton
    Reported-by: Dan Carpenter
    Signed-off-by: Steve French

    Jeff Layton
     
  • When mounting from a Windows 2012R2 server, we hit the following
    problem:
    1) Mount with any of the following versions - 2.0, 2.1 or 3.0
    2) unmount
    3) Attempt a mount again using a different SMB version >= 2.0.

    You end up with the following failure:
    Status code returned 0xc0000203 STATUS_USER_SESSION_DELETED
    CIFS VFS: Send error in SessSetup = -5
    CIFS VFS: cifs_mount failed w/return code = -5

    I cannot reproduce this issue using a Windows 2008 R2 server.

    This appears to be caused because we use the same client guid for the
    connection on first mount which we then disconnect and attempt to mount
    again using a different protocol version. By generating a new guid each
    time a new connection is Negotiated, we avoid hitting this problem.

    Signed-off-by: Sachin Prabhu
    Signed-off-by: Steve French

    Sachin Prabhu
     

13 Nov, 2013

1 commit

  • Pull vfs updates from Al Viro:
    "All kinds of stuff this time around; some more notable parts:

    - RCU'd vfsmounts handling
    - new primitives for coredump handling
    - files_lock is gone
    - Bruce's delegations handling series
    - exportfs fixes

    plus misc stuff all over the place"

    * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/vfs: (101 commits)
    ecryptfs: ->f_op is never NULL
    locks: break delegations on any attribute modification
    locks: break delegations on link
    locks: break delegations on rename
    locks: helper functions for delegation breaking
    locks: break delegations on unlink
    namei: minor vfs_unlink cleanup
    locks: implement delegations
    locks: introduce new FL_DELEG lock flag
    vfs: take i_mutex on renamed file
    vfs: rename I_MUTEX_QUOTA now that it's not used for quotas
    vfs: don't use PARENT/CHILD lock classes for non-directories
    vfs: pull ext4's double-i_mutex-locking into common code
    exportfs: fix quadratic behavior in filehandle lookup
    exportfs: better variable name
    exportfs: move most of reconnect_path to helper function
    exportfs: eliminate unused "noprogress" counter
    exportfs: stop retrying once we race with rename/remove
    exportfs: clear DISCONNECTED on all parents sooner
    exportfs: more detailed comment for path_reconnect
    ...

    Linus Torvalds
     

03 Nov, 2013

1 commit

  • Send a smb session logoff request before removing smb session off of the list.
    On a signed smb session, remvoing a session off of the list before sending
    a logoff request results in server returning an error for lack of
    smb signature.

    Never seen an error during smb logoff, so as per MS-SMB2 3.2.5.1,
    not sure how an error during logoff should be retried. So for now,
    if a server returns an error to a logoff request, log the error and
    remove the session off of the list.

    Signed-off-by: Shirish Pargaonkar
    Reviewed-by: Jeff Layton
    Signed-off-by: Steve French

    Shirish Pargaonkar
     

25 Oct, 2013

1 commit


10 Sep, 2013

1 commit


09 Sep, 2013

3 commits

  • Move the post (successful) session setup code to respective dialect routines.

    For smb1, session key is per smb connection.
    For smb2/smb3, session key is per smb session.

    If client and server do not require signing, free session key for smb1/2/3.

    If client and server require signing
    smb1 - Copy (kmemdup) session key for the first session to connection.
    Free session key of that and subsequent sessions on this connection.
    smb2 - For every session, keep the session key and free it when the
    session is being shutdown.
    smb3 - For every session, generate the smb3 signing key using the session key
    and then free the session key.

    There are two unrelated line formatting changes as well.

    Reviewed-by: Jeff Layton
    Signed-off-by: Shirish Pargaonkar
    Signed-off-by: Steve French

    Shirish Pargaonkar
     
  • The max string length definitions for user name, domain name, password,
    and share name have been moved into their own header file in uapi so the
    mount helper can use autoconf to define them instead of keeping the
    kernel side and userland side definitions in sync manually. The names
    have also been standardized with a "CIFS" prefix and "LEN" suffix.

    Signed-off-by: Scott Lovenberg
    Reviewed-by: Chen Gang
    Signed-off-by: Steve French

    Scott Lovenberg
     
  • Oleksii reported that he had seen an oops similar to this:

    BUG: unable to handle kernel NULL pointer dereference at 0000000000000088
    IP: [] sock_sendmsg+0x93/0xd0
    PGD 0
    Oops: 0000 [#1] PREEMPT SMP
    Modules linked in: ipt_MASQUERADE xt_REDIRECT xt_tcpudp iptable_nat nf_conntrack_ipv4 nf_defrag_ipv4 nf_nat_ipv4 nf_nat nf_conntrack ip_tables x_tables carl9170 ath usb_storage f2fs nfnetlink_log nfnetlink md4 cifs dns_resolver hid_generic usbhid hid af_packet uvcvideo videobuf2_vmalloc videobuf2_memops videobuf2_core videodev rfcomm btusb bnep bluetooth qmi_wwan qcserial cdc_wdm usb_wwan usbnet usbserial mii snd_hda_codec_hdmi snd_hda_codec_realtek iwldvm mac80211 coretemp intel_powerclamp kvm_intel kvm iwlwifi snd_hda_intel cfg80211 snd_hda_codec xhci_hcd e1000e ehci_pci snd_hwdep sdhci_pci snd_pcm ehci_hcd microcode psmouse sdhci thinkpad_acpi mmc_core i2c_i801 pcspkr usbcore hwmon snd_timer snd_page_alloc snd ptp rfkill pps_core soundcore evdev usb_common vboxnetflt(O) vboxdrv(O)Oops#2 Part8
    loop tun binfmt_misc fuse msr acpi_call(O) ipv6 autofs4
    CPU: 0 PID: 21612 Comm: kworker/0:1 Tainted: G W O 3.10.1SIGN #28
    Hardware name: LENOVO 2306CTO/2306CTO, BIOS G2ET92WW (2.52 ) 02/22/2013
    Workqueue: cifsiod cifs_echo_request [cifs]
    task: ffff8801e1f416f0 ti: ffff880148744000 task.ti: ffff880148744000
    RIP: 0010:[] [] sock_sendmsg+0x93/0xd0
    RSP: 0000:ffff880148745b00 EFLAGS: 00010246
    RAX: 0000000000000000 RBX: ffff880148745b78 RCX: 0000000000000048
    RDX: ffff880148745c90 RSI: ffff880181864a00 RDI: ffff880148745b78
    RBP: ffff880148745c48 R08: 0000000000000048 R09: 0000000000000000
    R10: 0000000000000000 R11: 0000000000000000 R12: ffff880181864a00
    R13: ffff880148745c90 R14: 0000000000000048 R15: 0000000000000048
    FS: 0000000000000000(0000) GS:ffff88021e200000(0000) knlGS:0000000000000000
    CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033
    CR2: 0000000000000088 CR3: 000000020c42c000 CR4: 00000000001407b0
    Oops#2 Part7
    DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
    DR3: 0000000000000000 DR6: 00000000ffff0ff0 DR7: 0000000000000400
    Stack:
    ffff880148745b30 ffffffff810c4af9 0000004848745b30 ffff880181864a00
    ffffffff81ffbc40 0000000000000000 ffff880148745c90 ffffffff810a5aab
    ffff880148745bc0 ffffffff81ffbc40 ffff880148745b60 ffffffff815a9fb8
    Call Trace:
    [] ? finish_task_switch+0x49/0xe0
    [] ? lock_timer_base.isra.36+0x2b/0x50
    [] ? _raw_spin_unlock_irqrestore+0x18/0x40
    [] ? try_to_del_timer_sync+0x4f/0x70
    [] ? _raw_spin_unlock_bh+0x1f/0x30
    [] kernel_sendmsg+0x37/0x50
    [] smb_send_kvec+0xd0/0x1d0 [cifs]
    [] smb_send_rqst+0x83/0x1f0 [cifs]
    [] cifs_call_async+0xec/0x1b0 [cifs]
    [] ? free_rsp_buf+0x40/0x40 [cifs]
    Oops#2 Part6
    [] SMB2_echo+0x8e/0xb0 [cifs]
    [] cifs_echo_request+0x79/0xa0 [cifs]
    [] process_one_work+0x173/0x4a0
    [] worker_thread+0x121/0x3a0
    [] ? manage_workers.isra.27+0x2b0/0x2b0
    [] kthread+0xc0/0xd0
    [] ? kthread_create_on_node+0x120/0x120
    [] ret_from_fork+0x7c/0xb0
    [] ? kthread_create_on_node+0x120/0x120
    Code: 84 24 b8 00 00 00 4c 89 f1 4c 89 ea 4c 89 e6 48 89 df 4c 89 60 18 48 c7 40 28 00 00 00 00 4c 89 68 30 44 89 70 14 49 8b 44 24 28 90 88 00 00 00 3d ef fd ff ff 74 10 48 8d 65 e0 5b 41 5c 41
    RIP [] sock_sendmsg+0x93/0xd0
    RSP
    CR2: 0000000000000088

    The client was in the middle of trying to send a frame when the
    server->ssocket pointer got zeroed out. In most places, that we access
    that pointer, the srv_mutex is held. There's only one spot that I see
    that the server->ssocket pointer gets set and the srv_mutex isn't held.
    This patch corrects that.

    The upstream bug report was here:

    https://bugzilla.kernel.org/show_bug.cgi?id=60557

    Cc:
    Reported-by: Oleksii Shevchuk
    Signed-off-by: Jeff Layton
    Signed-off-by: Steve French

    Jeff Layton
     

31 Jul, 2013

1 commit

  • For cifs_set_cifscreds() in "fs/cifs/connect.c", 'desc' buffer length
    is 'CIFSCREDS_DESC_SIZE' (56 is less than 256), and 'ses->domainName'
    length may be "255 + '\0'".

    The related sprintf() may cause memory overflow, so need extend related
    buffer enough to hold all things.

    It is also necessary to be sure of 'ses->domainName' must be less than
    256, and define the related macro instead of hard code number '256'.

    Signed-off-by: Chen Gang
    Reviewed-by: Jeff Layton
    Reviewed-by: Shirish Pargaonkar
    Reviewed-by: Scott Lovenberg
    CC:
    Signed-off-by: Steve French

    Chen Gang
     

05 Jul, 2013

1 commit

  • Updated patch to try to prevent allocation of cifs, smb2 or smb3 crypto
    secmech structures unless needed. Currently cifs allocates all crypto
    mechanisms when the first session is established (4 functions and
    4 contexts), rather than only allocating these when needed (smb3 needs
    two, the rest of the dialects only need one).

    Acked-by: Jeff Layton
    Reviewed-by: Shirish Pargaonkar
    Signed-off-by: Steve French

    Steve French
     

27 Jun, 2013

3 commits

  • Fix build warning in Shirish's recent SMB3 signing patch
    which occurs when SMB2 support is disabled in Kconfig.

    fs/built-in.o: In function `cifs_setup_session':
    >> (.text+0xa1767): undefined reference to `generate_smb3signingkey'

    Pointed out by: automated 0-DAY kernel build testing backend
    Intel Open Source Technology Center

    CC: Shirish Pargaonkar
    Signed-off-by: Steve French

    Steve French
     
  • SMB3 uses a much faster method of signing (which is also better in other ways),
    AES-CMAC. With the kernel now supporting AES-CMAC since last release, we
    are overdue to allow SMB3 signing (today only CIFS and SMB2 and SMB2.1,
    but not SMB3 and SMB3.1 can sign) - and we need this also for checking
    secure negotation and also per-share encryption (two other new SMB3 features
    which we need to implement).

    This patch needs some work in a few areas - for example we need to
    move signing for SMB2/SMB3 from per-socket to per-user (we may be able to
    use the "nosharesock" mount option in the interim for the multiuser case),
    and Shirish found a bug in the earlier authentication overhaul
    (setting signing flags properly) - but those can be done in followon
    patches.

    Signed-off-by: Shirish Pargaonkar
    Signed-off-by: Steve French

    Steve French
     
  • for NUL terminated string, need alway set '\0' in the end.

    Signed-off-by: Zhao Hongjiang
    Signed-off-by: Steve French

    Zhao Hongjiang
     

24 Jun, 2013

7 commits

  • The new Windows update supports SMB3.02 dialect, a minor update to SMB3.
    This patch adds support for mounting with vers=3.02

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

    Steve French
     
  • Now that we track what sort of NEGOTIATE response was received, stop
    mandating that every session on a socket use the same type of auth.

    Push that decision out into the session setup code, and make the sectype
    a per-session property. This should allow us to mix multiple sectypes on
    a socket as long as they are compatible with the NEGOTIATE response.

    With this too, we can now eliminate the ses->secFlg field since that
    info is redundant and harder to work with than a securityEnum.

    Signed-off-by: Jeff Layton
    Acked-by: Pavel Shilovsky
    Signed-off-by: Steve French

    Jeff Layton
     
  • Currently, we determine this according to flags in the sec_mode, flags
    in the global_secflags and via other methods. That makes the semantics
    very hard to follow and there are corner cases where we don't handle
    this correctly.

    Add a new bool to the TCP_Server_Info that acts as a simple flag to tell
    us whether signing is enabled on this connection or not, and fix up the
    places that need to determine this to use that flag.

    This is a bit weird for the SMB2 case, where signing is per-session.
    SMB2 needs work in this area already though. The existing SMB2 code has
    similar logic to what we're using here, so there should be no real
    change in behavior. These changes should make it easier to implement
    per-session signing in the future though.

    Signed-off-by: Jeff Layton
    Reviewed-by: Pavel Shilovsky
    Signed-off-by: Steve French

    Jeff Layton
     
  • We have this to some degree already in secFlgs, but those get "or'ed" so
    there's no way to know what the last option requested was. Add new fields
    that will eventually supercede the secFlgs field in the cifs_ses.

    Signed-off-by: Jeff Layton
    Reviewed-by: Pavel Shilovsky
    Signed-off-by: Steve French

    Jeff Layton
     
  • Currently we have the overrideSecFlg field, but it's quite cumbersome
    to work with. Add some new fields that will eventually supercede it.

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

    Jeff Layton
     
  • This field is completely unused:

    CIFS_SES_W9X is completely unused. CIFS_SES_LANMAN and CIFS_SES_OS2
    are set but never checked. CIFS_SES_NT4 is checked, but never set.

    Signed-off-by: Jeff Layton
    Acked-by: Pavel Shilovsky
    Signed-off-by: Steve French

    Jeff Layton
     
  • Some servers set max_vcs to 1 and actually do enforce that limit. Add a
    new mount option to work around this behavior that forces a mount
    request to open a new socket to the server instead of reusing an
    existing one.

    I'd prefer to come up with a solution that doesn't require this, so
    consider this a debug patch that you can use to determine whether this
    is the real problem.

    Cc: Jim McDonough
    Cc: Steve French
    Signed-off-by: Jeff Layton
    Signed-off-by: Steve French

    Jeff Layton
     

01 Jun, 2013

1 commit

  • commit 839db3d10a (cifs: fix up handling of prefixpath= option) changed
    the code such that the vol->prepath no longer contained a leading
    delimiter and then fixed up the places that accessed that field to
    account for that change.

    One spot in build_unc_path_to_root was missed however. When doing the
    pointer addition on pos, that patch failed to account for the fact that
    we had already incremented "pos" by one when adding the length of the
    prepath. This caused a buffer overrun by one byte.

    This patch fixes the problem by correcting the handling of "pos".

    Cc: # v3.8+
    Reported-by: Marcus Moeller
    Reported-by: Ken Fallon
    Signed-off-by: Jeff Layton
    Signed-off-by: Steve French

    Jeff Layton
     

25 May, 2013

2 commits


05 May, 2013

3 commits

  • server and ses->server are the same, but it's a little bit ugly that we
    lock &ses->server->srv_mutex and unlock &server->srv_mutex. It causes
    a false positive in Smatch about inconsistent locking.

    Signed-off-by: Dan Carpenter
    Signed-off-by: Steve French
    Signed-off-by: Steve French

    Dan Carpenter
     
  • It's not obvious from reading the macro names that these macros
    are for debugging. Convert the names to a single more typical
    kernel style cifs_dbg macro.

    cERROR(1, ...) -> cifs_dbg(VFS, ...)
    cFYI(1, ...) -> cifs_dbg(FYI, ...)
    cFYI(DBG2, ...) -> cifs_dbg(NOISY, ...)

    Move the terminating format newline from the macro to the call site.

    Add CONFIG_CIFS_DEBUG function cifs_vfs_err to emit the
    "CIFS VFS: " prefix for VFS messages.

    Size is reduced ~ 1% when CONFIG_CIFS_DEBUG is set (default y)

    $ size fs/cifs/cifs.ko*
    text data bss dec hex filename
    265245 2525 132 267902 4167e fs/cifs/cifs.ko.new
    268359 2525 132 271016 422a8 fs/cifs/cifs.ko.old

    Other miscellaneous changes around these conversions:

    o Miscellaneous typo fixes
    o Add terminating \n's to almost all formats and remove them
    from the macros to be more kernel style like. A few formats
    previously had defective \n's
    o Remove unnecessary OOM messages as kmalloc() calls dump_stack
    o Coalesce formats to make grep easier,
    added missing spaces when coalescing formats
    o Use %s, __func__ instead of embedded function name
    o Removed unnecessary "cifs: " prefixes
    o Convert kzalloc with multiply to kcalloc
    o Remove unused cifswarn macro

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

    Joe Perches
     
  • ...as advertised for 3.10.

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

    Jeff Layton
     

11 Apr, 2013

1 commit


07 Mar, 2013

1 commit


28 Feb, 2013

1 commit