27 Oct, 2010

2 commits

  • * 'for-2.6.37' of git://linux-nfs.org/~bfields/linux: (99 commits)
    svcrpc: svc_tcp_sendto XPT_DEAD check is redundant
    svcrpc: no need for XPT_DEAD check in svc_xprt_enqueue
    svcrpc: assume svc_delete_xprt() called only once
    svcrpc: never clear XPT_BUSY on dead xprt
    nfsd4: fix connection allocation in sequence()
    nfsd4: only require krb5 principal for NFSv4.0 callbacks
    nfsd4: move minorversion to client
    nfsd4: delay session removal till free_client
    nfsd4: separate callback change and callback probe
    nfsd4: callback program number is per-session
    nfsd4: track backchannel connections
    nfsd4: confirm only on succesful create_session
    nfsd4: make backchannel sequence number per-session
    nfsd4: use client pointer to backchannel session
    nfsd4: move callback setup into session init code
    nfsd4: don't cache seq_misordered replies
    SUNRPC: Properly initialize sock_xprt.srcaddr in all cases
    SUNRPC: Use conventional switch statement when reclassifying sockets
    sunrpc/xprtrdma: clean up workqueue usage
    sunrpc: Turn list_for_each-s into the ..._entry-s
    ...

    Fix up trivial conflicts (two different deprecation notices added in
    separate branches) in Documentation/feature-removal-schedule.txt

    Linus Torvalds
     
  • * 'nfs-for-2.6.37' of git://git.linux-nfs.org/projects/trondmy/nfs-2.6:
    net/sunrpc: Use static const char arrays
    nfs4: fix channel attribute sanity-checks
    NFSv4.1: Use more sensible names for 'initialize_mountpoint'
    NFSv4.1: pnfs: filelayout: add driver's LAYOUTGET and GETDEVICEINFO infrastructure
    NFSv4.1: pnfs: add LAYOUTGET and GETDEVICEINFO infrastructure
    NFS: client needs to maintain list of inodes with active layouts
    NFS: create and destroy inode's layout cache
    NFSv4.1: pnfs: filelayout: introduce minimal file layout driver
    NFSv4.1: pnfs: full mount/umount infrastructure
    NFS: set layout driver
    NFS: ask for layouttypes during v4 fsinfo call
    NFS: change stateid to be a union
    NFSv4.1: pnfsd, pnfs: protocol level pnfs constants
    SUNRPC: define xdr_decode_opaque_fixed
    NFSD: remove duplicate NFS4_STATEID_SIZE

    Linus Torvalds
     

26 Oct, 2010

6 commits

  • Signed-off-by: Joe Perches
    Signed-off-by: Trond Myklebust

    Joe Perches
     
  • The only caller (svc_send) has already checked XPT_DEAD.

    Signed-off-by: J. Bruce Fields

    J. Bruce Fields
     
  • If any xprt marked DEAD is also left BUSY for the rest of its life, then
    the XPT_DEAD check here is superfluous--we'll get the same result from
    the XPT_BUSY check just after.

    Signed-off-by: J. Bruce Fields

    J. Bruce Fields
     
  • As long as DEAD exports are left BUSY, and svc_delete_xprt is called
    only with BUSY held, then svc_delete_xprt() will never be called on an
    xprt that is already DEAD.

    Signed-off-by: J. Bruce Fields

    J. Bruce Fields
     
  • Once an xprt has been deleted, there's no reason to allow it to be
    enqueued--at worst, that might cause the xprt to be re-added to some
    global list, resulting in later corruption.

    Also, note this leaves us with no need for the reference-count
    manipulation here.

    Reviewed-by: NeilBrown
    Signed-off-by: J. Bruce Fields

    J. Bruce Fields
     
  • * 'nfs-for-2.6.37' of git://git.linux-nfs.org/projects/trondmy/nfs-2.6: (67 commits)
    SUNRPC: Cleanup duplicate assignment in rpcauth_refreshcred
    nfs: fix unchecked value
    Ask for time_delta during fsinfo probe
    Revalidate caches on lock
    SUNRPC: After calling xprt_release(), we must restart from call_reserve
    NFSv4: Fix up the 'dircount' hint in encode_readdir
    NFSv4: Clean up nfs4_decode_dirent
    NFSv4: nfs4_decode_dirent must clear entry->fattr->valid
    NFSv4: Fix a regression in decode_getfattr
    NFSv4: Fix up decode_attr_filehandle() to handle the case of empty fh pointer
    NFS: Ensure we check all allocation return values in new readdir code
    NFS: Readdir plus in v4
    NFS: introduce generic decode_getattr function
    NFS: check xdr_decode for errors
    NFS: nfs_readdir_filler catch all errors
    NFS: readdir with vmapped pages
    NFS: remove page size checking code
    NFS: decode_dirent should use an xdr_stream
    SUNRPC: Add a helper function xdr_inline_peek
    NFS: remove readdir plus limit
    ...

    Linus Torvalds
     

25 Oct, 2010

4 commits

  • Read external interrupts parameters from the lowcore in the first
    level interrupt handler in entry[64].S.

    Signed-off-by: Martin Schwidefsky

    Martin Schwidefsky
     
  • Signed-off-by: Trond Myklebust

    Trond Myklebust
     
  • Rob Leslie reports seeing the following Oops after his Kerberos session
    expired.

    BUG: unable to handle kernel NULL pointer dereference at 00000058
    IP: [] rpcauth_refreshcred+0x11/0x12c [sunrpc]
    *pde = 00000000
    Oops: 0000 [#1]
    last sysfs file: /sys/devices/platform/pc87360.26144/temp3_input
    Modules linked in: autofs4 authenc esp4 xfrm4_mode_transport ipt_LOG ipt_REJECT xt_limit xt_state ipt_REDIRECT xt_owner xt_HL xt_hl xt_tcpudp xt_mark cls_u32 cls_tcindex sch_sfq sch_htb sch_dsmark geodewdt deflate ctr twofish_generic twofish_i586 twofish_common camellia serpent blowfish cast5 cbc xcbc rmd160 sha512_generic sha1_generic hmac crypto_null af_key rpcsec_gss_krb5 nfsd exportfs nfs lockd fscache nfs_acl auth_rpcgss sunrpc ip_gre sit tunnel4 dummy ext3 jbd nf_nat_irc nf_conntrack_irc nf_nat_ftp nf_conntrack_ftp iptable_mangle iptable_nat nf_nat nf_conntrack_ipv4 nf_conntrack nf_defrag_ipv4 iptable_filter ip_tables x_tables pc8736x_gpio nsc_gpio pc87360 hwmon_vid loop aes_i586 aes_generic sha256_generic dm_crypt cs5535_gpio serio_raw cs5535_mfgpt hifn_795x des_generic geode_rng rng_core led_class ext4 mbcache jbd2 crc16 dm_mirror dm_region_hash dm_log dm_snapshot dm_mod sd_mod crc_t10dif ide_pci_generic cs5536 amd74xx ide_core pata_cs5536 ata_generic libata usb_storage via_rhine mii scsi_mod btrfs zlib_deflate crc32c libcrc32c [last unloaded: scsi_wait_scan]

    Pid: 12875, comm: sudo Not tainted 2.6.36-net5501 #1 /
    EIP: 0060:[] EFLAGS: 00010292 CPU: 0
    EIP is at rpcauth_refreshcred+0x11/0x12c [sunrpc]
    EAX: 00000000 EBX: defb13a0 ECX: 00000006 EDX: e18683b8
    ESI: defb13a0 EDI: 00000000 EBP: 00000000 ESP: de571d58
    DS: 007b ES: 007b FS: 0000 GS: 0033 SS: 0068
    Process sudo (pid: 12875, ti=de570000 task=decd1430 task.ti=de570000)
    Stack:
    e186e008 00000000 defb13a0 0000000d deda6000 e1868f22 e196f12b defb13a0
    defb13d8 00000000 00000000 e186e0aa 00000000 defb13a0 de571dac 00000000
    e186956c de571e34 debea5c0 de571dc8 e186967a 00000000 debea5c0 de571e34
    Call Trace:
    [] ? rpc_wake_up_next+0x114/0x11b [sunrpc]
    [] ? call_decode+0x24a/0x5af [sunrpc]
    [] ? nfs4_xdr_dec_access+0x0/0xa2 [nfs]
    [] ? __rpc_execute+0x62/0x17b [sunrpc]
    [] ? rpc_run_task+0x91/0x97 [sunrpc]
    [] ? rpc_call_sync+0x40/0x5b [sunrpc]
    [] ? nfs4_proc_access+0x10a/0x176 [nfs]
    [] ? nfs_do_access+0x2b1/0x2c0 [nfs]
    [] ? rpcauth_lookupcred+0x62/0x84 [sunrpc]
    [] ? nfs_permission+0xad/0x13b [nfs]
    [] ? exec_permission+0x15/0x4b
    [] ? link_path_walk+0x4f/0x456
    [] ? path_walk+0x4c/0xa8
    [] ? do_path_lookup+0x1f/0x68
    [] ? user_path_at+0x37/0x5f
    [] ? handle_mm_fault+0x229/0x55b
    [] ? sys_faccessat+0x93/0x146
    [] ? sys_access+0xf/0x13
    [] ? syscall_call+0x7/0xb
    Code: 0f 94 c2 84 d2 74 09 8b 44 24 0c e8 6a e9 8b de 83 c4 14 89 d8 5b 5e 5f 5d c3 55 57 56 53 83 ec 1c fc 89 c6 8b 40 10 89 44 24 04 58 58 85 db 0f 85 d4 00 00 00 0f b7 46 70 8b 56 20 89 c5 83
    EIP: [] rpcauth_refreshcred+0x11/0x12c [sunrpc] SS:ESP 0068:de571d58
    CR2: 0000000000000058

    This appears to be caused by the function rpc_verify_header() first
    calling xprt_release(), then doing a call_refresh. If we release the
    transport slot, we should _always_ jump back to call_reserve before
    calling anything else.

    Signed-off-by: Trond Myklebust
    Cc: stable@kernel.org

    Trond Myklebust
     
  • * 'for-next' of git://git.kernel.org/pub/scm/linux/kernel/git/jikos/trivial: (39 commits)
    Update broken web addresses in arch directory.
    Update broken web addresses in the kernel.
    Revert "drivers/usb: Remove unnecessary return's from void functions" for musb gadget
    Revert "Fix typo: configuation => configuration" partially
    ida: document IDA_BITMAP_LONGS calculation
    ext2: fix a typo on comment in ext2/inode.c
    drivers/scsi: Remove unnecessary casts of private_data
    drivers/s390: Remove unnecessary casts of private_data
    net/sunrpc/rpc_pipe.c: Remove unnecessary casts of private_data
    drivers/infiniband: Remove unnecessary casts of private_data
    drivers/gpu/drm: Remove unnecessary casts of private_data
    kernel/pm_qos_params.c: Remove unnecessary casts of private_data
    fs/ecryptfs: Remove unnecessary casts of private_data
    fs/seq_file.c: Remove unnecessary casts of private_data
    arm: uengine.c: remove C99 comments
    arm: scoop.c: remove C99 comments
    Fix typo configue => configure in comments
    Fix typo: configuation => configuration
    Fix typo interrest[ing|ed] => interest[ing|ed]
    Fix various typos of valid in comments
    ...

    Fix up trivial conflicts in:
    drivers/char/ipmi/ipmi_si_intf.c
    drivers/usb/gadget/rndis.c
    net/irda/irnet/irnet_ppp.c

    Linus Torvalds
     

24 Oct, 2010

2 commits

  • We sometimes need to be able to read ahead in an xdr_stream without
    incrementing the current pointer position.

    Signed-off-by: Trond Myklebust

    Trond Myklebust
     
  • * git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next-2.6: (1699 commits)
    bnx2/bnx2x: Unsupported Ethtool operations should return -EINVAL.
    vlan: Calling vlan_hwaccel_do_receive() is always valid.
    tproxy: use the interface primary IP address as a default value for --on-ip
    tproxy: added IPv6 support to the socket match
    cxgb3: function namespace cleanup
    tproxy: added IPv6 support to the TPROXY target
    tproxy: added IPv6 socket lookup function to nf_tproxy_core
    be2net: Changes to use only priority codes allowed by f/w
    tproxy: allow non-local binds of IPv6 sockets if IP_TRANSPARENT is enabled
    tproxy: added tproxy sockopt interface in the IPV6 layer
    tproxy: added udp6_lib_lookup function
    tproxy: added const specifiers to udp lookup functions
    tproxy: split off ipv6 defragmentation to a separate module
    l2tp: small cleanup
    nf_nat: restrict ICMP translation for embedded header
    can: mcp251x: fix generation of error frames
    can: mcp251x: fix endless loop in interrupt handler if CANINTF_MERRF is set
    can-raw: add msg_flags to distinguish local traffic
    9p: client code cleanup
    rds: make local functions/variables static
    ...

    Fix up conflicts in net/core/dev.c, drivers/net/pcmcia/smc91c92_cs.c and
    drivers/net/wireless/ath/ath9k/debug.c as per David

    Linus Torvalds
     

23 Oct, 2010

4 commits

  • * git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/tty-2.6: (49 commits)
    serial8250: ratelimit "too much work" error
    serial: bfin_sport_uart: speed up sport RX sample rate to be 3% faster
    serial: abstraction for 8250 legacy ports
    serial/imx: check that the buffer is non-empty before sending it out
    serial: mfd: add more baud rates support
    jsm: Remove the uart port on errors
    Alchemy: Add UART PM methods.
    8250: allow platforms to override PM hook.
    altera_uart: Don't use plain integer as NULL pointer
    altera_uart: Fix missing prototype for registering an early console
    altera_uart: Fixup type usage of port flags
    altera_uart: Make it possible to use Altera UART and 8250 ports together
    altera_uart: Add support for different address strides
    altera_uart: Add support for getting mapbase and IRQ from resources
    altera_uart: Add support for polling mode (IRQ-less)
    serial: Factor out uart_poll_timeout() from 8250 driver
    serial: mark the 8250 driver as maintained
    serial: 8250: Don't delay after transmitter is ready.
    tty: MAINTAINERS: add drivers/serial/jsm/ as maintained driver
    vcs: invoke the vt update callback when /dev/vcs* is written to
    ...

    Linus Torvalds
     
  • * 'llseek' of git://git.kernel.org/pub/scm/linux/kernel/git/arnd/bkl:
    vfs: make no_llseek the default
    vfs: don't use BKL in default_llseek
    llseek: automatically add .llseek fop
    libfs: use generic_file_llseek for simple_attr
    mac80211: disallow seeks in minstrel debug code
    lirc: make chardev nonseekable
    viotape: use noop_llseek
    raw: use explicit llseek file operations
    ibmasmfs: use generic_file_llseek
    spufs: use llseek in all file operations
    arm/omap: use generic_file_llseek in iommu_debug
    lkdtm: use generic_file_llseek in debugfs
    net/wireless: use generic_file_llseek in debugfs
    drm: use noop_llseek

    Linus Torvalds
     
  • * 'config' of git://git.kernel.org/pub/scm/linux/kernel/git/arnd/bkl:
    BKL: introduce CONFIG_BKL.
    dabusb: remove the BKL
    sunrpc: remove the big kernel lock
    init/main.c: remove BKL notations
    blktrace: remove the big kernel lock
    rtmutex-tester: make it build without BKL
    dvb-core: kill the big kernel lock
    dvb/bt8xx: kill the big kernel lock
    tlclk: remove big kernel lock
    fix rawctl compat ioctls breakage on amd64 and itanic
    uml: kill big kernel lock
    parisc: remove big kernel lock
    cris: autoconvert trivial BKL users
    alpha: kill big kernel lock
    isapnp: BKL removal
    s390/block: kill the big kernel lock
    hpet: kill BKL, add compat_ioctl

    Linus Torvalds
     
  • Again basically cut and paste

    Convert the main driver set to use the hooks for GICOUNT

    Signed-off-by: Alan Cox
    Signed-off-by: Greg Kroah-Hartman

    Alan Cox
     

22 Oct, 2010

5 commits

  • …/git/tip/linux-2.6-tip

    * 'sched-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip: (29 commits)
    sched: Export account_system_vtime()
    sched: Call tick_check_idle before __irq_enter
    sched: Remove irq time from available CPU power
    sched: Do not account irq time to current task
    x86: Add IRQ_TIME_ACCOUNTING
    sched: Add IRQ_TIME_ACCOUNTING, finer accounting of irq time
    sched: Add a PF flag for ksoftirqd identification
    sched: Consolidate account_system_vtime extern declaration
    sched: Fix softirq time accounting
    sched: Drop group_capacity to 1 only if local group has extra capacity
    sched: Force balancing on newidle balance if local group has capacity
    sched: Set group_imb only a task can be pulled from the busiest cpu
    sched: Do not consider SCHED_IDLE tasks to be cache hot
    sched: Drop all load weight manipulation for RT tasks
    sched: Create special class for stop/migrate work
    sched: Unindent labels
    sched: Comment updates: fix default latency and granularity numbers
    tracing/sched: Add sched_pi_setprio tracepoint
    sched: Give CPU bound RT tasks preference
    sched: Try not to migrate higher priority RT tasks
    ...

    Linus Torvalds
     
  • …git/tip/linux-2.6-tip

    * 'perf-core-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip: (163 commits)
    tracing: Fix compile issue for trace_sched_wakeup.c
    [S390] hardirq: remove pointless header file includes
    [IA64] Move local_softirq_pending() definition
    perf, powerpc: Fix power_pmu_event_init to not use event->ctx
    ftrace: Remove recursion between recordmcount and scripts/mod/empty
    jump_label: Add COND_STMT(), reducer wrappery
    perf: Optimize sw events
    perf: Use jump_labels to optimize the scheduler hooks
    jump_label: Add atomic_t interface
    jump_label: Use more consistent naming
    perf, hw_breakpoint: Fix crash in hw_breakpoint creation
    perf: Find task before event alloc
    perf: Fix task refcount bugs
    perf: Fix group moving
    irq_work: Add generic hardirq context callbacks
    perf_events: Fix transaction recovery in group_sched_in()
    perf_events: Fix bogus AMD64 generic TLB events
    perf_events: Fix bogus context time tracking
    tracing: Remove parent recording in latency tracer graph options
    tracing: Use one prologue for the preempt irqs off tracer function tracers
    ...

    Linus Torvalds
     
  • * 'core-rcu-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip: (52 commits)
    sched: fix RCU lockdep splat from task_group()
    rcu: using ACCESS_ONCE() to observe the jiffies_stall/rnp->qsmask value
    sched: suppress RCU lockdep splat in task_fork_fair
    net: suppress RCU lockdep false positive in sock_update_classid
    rcu: move check from rcu_dereference_bh to rcu_read_lock_bh_held
    rcu: Add advice to PROVE_RCU_REPEATEDLY kernel config parameter
    rcu: Add tracing data to support queueing models
    rcu: fix sparse errors in rcutorture.c
    rcu: only one evaluation of arg in rcu_dereference_check() unless sparse
    kernel: Remove undead ifdef CONFIG_DEBUG_LOCK_ALLOC
    rcu: fix _oddness handling of verbose stall warnings
    rcu: performance fixes to TINY_PREEMPT_RCU callback checking
    rcu: upgrade stallwarn.txt documentation for CPU-bound RT processes
    vhost: add __rcu annotations
    rcu: add comment stating that list_empty() applies to RCU-protected lists
    rcu: apply TINY_PREEMPT_RCU read-side speedup to TREE_PREEMPT_RCU
    rcu: combine duplicate code, courtesy of CONFIG_PREEMPT_RCU
    rcu: Upgrade srcu_read_lock() docbook about SRCU grace periods
    rcu: document ways of stalling updates in low-memory situations
    rcu: repair code-duplication FIXMEs
    ...

    Linus Torvalds
     
  • …s/security-testing-2.6

    * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jmorris/security-testing-2.6: (26 commits)
    selinux: include vmalloc.h for vmalloc_user
    secmark: fix config problem when CONFIG_NF_CONNTRACK_SECMARK is not set
    selinux: implement mmap on /selinux/policy
    SELinux: allow userspace to read policy back out of the kernel
    SELinux: drop useless (and incorrect) AVTAB_MAX_SIZE
    SELinux: deterministic ordering of range transition rules
    kernel: roundup should only reference arguments once
    kernel: rounddown helper function
    secmark: export secctx, drop secmark in procfs
    conntrack: export lsm context rather than internal secid via netlink
    security: secid_to_secctx returns len when data is NULL
    secmark: make secmark object handling generic
    secmark: do not return early if there was no error
    AppArmor: Ensure the size of the copy is < the buffer allocated to hold it
    TOMOYO: Print URL information before panic().
    security: remove unused parameter from security_task_setscheduler()
    tpm: change 'tpm_suspend_pcr' to be module parameter
    selinux: fix up style problem on /selinux/status
    selinux: change to new flag variable
    selinux: really fix dependency causing parallel compile failure.
    ...

    Linus Torvalds
     
  • * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/sage/ceph-client: (22 commits)
    ceph: do not carry i_lock for readdir from dcache
    fs/ceph/xattr.c: Use kmemdup
    rbd: passing wrong variable to bvec_kunmap_irq()
    rbd: null vs ERR_PTR
    ceph: fix num_pages_free accounting in pagelist
    ceph: add CEPH_MDS_OP_SETDIRLAYOUT and associated ioctl.
    ceph: don't crash when passed bad mount options
    ceph: fix debugfs warnings
    block: rbd: removing unnecessary test
    block: rbd: fixed may leaks
    ceph: switch from BKL to lock_flocks()
    ceph: preallocate flock state without locks held
    ceph: add pagelist_reserve, pagelist_truncate, pagelist_set_cursor
    ceph: use mapping->nrpages to determine if mapping is empty
    ceph: only invalidate on check_caps if we actually have pages
    ceph: do not hide .snap in root directory
    rbd: introduce rados block device (rbd), based on libceph
    ceph: factor out libceph from Ceph file system
    ceph-rbd: osdc support for osd call and rollback operations
    ceph: messenger and osdc changes for rbd
    ...

    Linus Torvalds
     

21 Oct, 2010

17 commits

  • Conflicts:
    net/core/dev.c

    David S. Miller
     
  • David S. Miller
     
  • Patrick McHardy
     
  • The REDIRECT target and the older TProxy versions used the primary address
    of the incoming interface as the default value of the --on-ip parameter.
    This was unintentionally changed during the initial TProxy submission and
    caused confusion among users.

    Since IPv6 has no notion of primary address, we just select the first address
    on the list: this way the socket lookup finds wildcard bound sockets
    properly and we cannot really do better without the user telling us the
    IPv6 address of the proxy.

    This is implemented for both IPv4 and IPv6.

    Signed-off-by: Balazs Scheidler
    Signed-off-by: KOVACS Krisztian
    Signed-off-by: Patrick McHardy

    Balazs Scheidler
     
  • The ICMP extraction bits were contributed by Harry Mason.

    Signed-off-by: Balazs Scheidler
    Signed-off-by: KOVACS Krisztian
    Signed-off-by: Patrick McHardy

    Balazs Scheidler
     
  • This requires a new revision as the old target structure was
    IPv4 specific.

    Signed-off-by: Balazs Scheidler
    Signed-off-by: KOVACS Krisztian
    Signed-off-by: Patrick McHardy

    Balazs Scheidler
     
  • The source address field in the transport's sock_xprt is initialized
    ONLY IF the RPC application passed a pointer to a source address
    during the call to rpc_create(). However, xs_bind() subsequently uses
    the value of this field without regard to whether the source address
    was initialized during transport creation or not.

    So far we've been lucky: the uninitialized value of this field is
    zeroes. xs_bind(), until recently, used only the sin[6]_addr field in
    this sockaddr, and all zeroes is a valid value for this: it means
    ANYADDR. This is a happy coincidence.

    However, xs_bind() now wants to use the sa_family field as well, and
    expects it to be initialized to something other than zero.

    Therefore, the source address sockaddr field should be fully
    initialized at transport create time in _every_ case, not just when
    the RPC application wants to use a specific bind address.

    Bruce added a workaround for this missing initialization by adjusting
    commit 6bc9638a, but the "right" way to do this is to ensure that the
    source address sockaddr is always correctly initialized from the
    get-go.

    This patch doesn't introduce a behavior change. It's simply a
    clean-up of Bruce's fix, to prevent future problems of this kind. It
    may look like overkill, but

    a) it clearly documents the default initial value of this field,

    b) it doesn't assume that the sockaddr_storage memory is first
    initialized to any particular value, and

    c) it will fail verbosely if some unknown address family is passed
    in

    Originally introduced by commit d3bc9a1d.

    Signed-off-by: Chuck Lever
    Signed-off-by: J. Bruce Fields

    Chuck Lever
     
  • Clean up.

    Defensive coding: If "family" is ever something that is neither
    AF_INET nor AF_INET6, xs_reclassify_socket6() is not the appropriate
    default action. Choose to do nothing in that case.

    Introduced by commit 6bc9638a.

    Signed-off-by: Chuck Lever
    Signed-off-by: J. Bruce Fields

    Chuck Lever
     
  • * Create and use svc_rdma_wq instead of using the system workqueue and
    flush_scheduled_work(). This workqueue is necessary to serve as
    flushing domain for rdma->sc_work which is used to destroy itself
    and thus can't be flushed explicitly.

    * Replace cancel_delayed_work() + flush_scheduled_work() with
    cancel_delayed_work_sync().

    * Implement synchronous connect in xprt_rdma_connect() using
    flush_delayed_work() on the rdma_connect work instead of using
    flush_scheduled_work().

    This is to prepare for the deprecation and removal of
    flush_scheduled_work().

    Signed-off-by: Tejun Heo
    Signed-off-by: J. Bruce Fields

    Tejun Heo
     
  • Signed-off-by: Balazs Scheidler
    Signed-off-by: KOVACS Krisztian
    Signed-off-by: Patrick McHardy

    Balazs Scheidler
     
  • Support for IPV6_RECVORIGDSTADDR sockopt for UDP sockets were contributed by
    Harry Mason.

    Signed-off-by: Balazs Scheidler
    Signed-off-by: KOVACS Krisztian
    Signed-off-by: Patrick McHardy

    Balazs Scheidler
     
  • Just like with IPv4, we need access to the UDP hash table to look up local
    sockets, but instead of exporting the global udp_table, export a lookup
    function.

    Signed-off-by: Balazs Scheidler
    Signed-off-by: KOVACS Krisztian
    Signed-off-by: Patrick McHardy

    Balazs Scheidler
     
  • The parameters for various UDP lookup functions were non-const, even though
    they could be const. TProxy has some const references and instead of
    downcasting it, I added const specifiers along the path.

    Signed-off-by: Balazs Scheidler
    Signed-off-by: KOVACS Krisztian
    Signed-off-by: Patrick McHardy

    Balazs Scheidler
     
  • Like with IPv4, TProxy needs IPv6 defragmentation but does not
    require connection tracking. Since defragmentation was coupled
    with conntrack, I split off the two, creating an nf_defrag_ipv6 module,
    similar to the already existing nf_defrag_ipv4.

    Signed-off-by: Balazs Scheidler
    Signed-off-by: KOVACS Krisztian
    Signed-off-by: Patrick McHardy

    Balazs Scheidler
     
  • With all the patches we have queued in the BKL removal tree, only a
    few dozen modules are left that actually rely on the BKL, and even
    there are lots of low-hanging fruit. We need to decide what to do
    about them, this patch illustrates one of the options:

    Every user of the BKL is marked as 'depends on BKL' in Kconfig,
    and the CONFIG_BKL becomes a user-visible option. If it gets
    disabled, no BKL using module can be built any more and the BKL
    code itself is compiled out.

    The one exception is file locking, which is practically always
    enabled and does a 'select BKL' instead. This effectively forces
    CONFIG_BKL to be enabled until we have solved the fs/lockd
    mess and can apply the patch that removes the BKL from fs/locks.c.

    Signed-off-by: Arnd Bergmann

    Arnd Bergmann
     
  • Signed-off-by: Eric Dumazet
    Signed-off-by: David S. Miller

    Eric Dumazet
     
  • Skip ICMP translation of embedded protocol header
    if NAT bits are not set. Needed for IPVS to see the original
    embedded addresses because for IPVS traffic the IPS_SRC_NAT_BIT
    and IPS_DST_NAT_BIT bits are not set. It happens when IPVS performs
    DNAT for client packets after using nf_conntrack_alter_reply
    to expect replies from real server.

    Signed-off-by: Julian Anastasov
    Signed-off-by: Simon Horman

    Julian Anastasov