31 May, 2012

1 commit

  • Pull ceph updates from Sage Weil:
    "There are some updates and cleanups to the CRUSH placement code, a bug
    fix with incremental maps, several cleanups and fixes from Josh Durgin
    in the RBD block device code, a series of cleanups and bug fixes from
    Alex Elder in the messenger code, and some miscellaneous bounds
    checking and gfp cleanups/fixes."

    Fix up trivial conflicts in net/ceph/{messenger.c,osdmap.c} due to the
    networking people preferring "unsigned int" over just "unsigned".

    * git://git.kernel.org/pub/scm/linux/kernel/git/sage/ceph-client: (45 commits)
    libceph: fix pg_temp updates
    libceph: avoid unregistering osd request when not registered
    ceph: add auth buf in prepare_write_connect()
    ceph: rename prepare_connect_authorizer()
    ceph: return pointer from prepare_connect_authorizer()
    ceph: use info returned by get_authorizer
    ceph: have get_authorizer methods return pointers
    ceph: ensure auth ops are defined before use
    ceph: messenger: reduce args to create_authorizer
    ceph: define ceph_auth_handshake type
    ceph: messenger: check return from get_authorizer
    ceph: messenger: rework prepare_connect_authorizer()
    ceph: messenger: check prepare_write_connect() result
    ceph: don't set WRITE_PENDING too early
    ceph: drop msgr argument from prepare_write_connect()
    ceph: messenger: send banner in process_connect()
    ceph: messenger: reset connection kvec caller
    libceph: don't reset kvec in prepare_write_banner()
    ceph: ignore preferred_osd field
    ceph: fully initialize new layout
    ...

    Linus Torvalds
     

22 May, 2012

1 commit

  • Usually, we are adding pg_temp entries or removing them. Occasionally they
    update. In that case, osdmap_apply_incremental() was failing because the
    rbtree entry already exists.

    Fix by removing the existing entry before inserting a new one.

    Fixes http://tracker.newdream.net/issues/2446

    Signed-off-by: Sage Weil
    Reviewed-by: Alex Elder

    Sage Weil
     

08 May, 2012

4 commits

  • If we get an error code from crush_do_rule(), print an error to the
    console.

    Reviewed-by: Alex Elder
    Signed-off-by: Sage Weil

    Sage Weil
     
  • These were used for the ill-fated forcefeed feature. Remove them.

    Reflects ceph.git commit ebdf80edfecfbd5a842b71fbe5732857994380c1.

    Reviewed-by: Alex Elder
    Signed-off-by: Sage Weil

    Sage Weil
     
  • Remove forcefeed functionality from CRUSH. This is an ugly misfeature that
    is mostly useless and unused. Remove it.

    Reflects ceph.git commit ed974b5000f2851207d860a651809af4a1867942.

    Reviewed-by: Alex Elder
    Signed-off-by: Sage Weil

    Conflicts:

    net/ceph/crush/mapper.c

    Sage Weil
     
  • This was an ill-conceived feature that has been removed from Ceph. Do
    this gracefully:

    - reject attempts to specify a preferred_osd via the ioctl
    - stop exposing this information via virtual xattrs
    - always fill in -1 for requests, in case we talk to an older server
    - don't calculate preferred_osd placements/pgids

    Reviewed-by: Alex Elder
    Signed-off-by: Sage Weil

    Sage Weil
     

16 Apr, 2012

1 commit


22 Mar, 2012

1 commit

  • The existing overflow check (n > ULONG_MAX / b) didn't work, because
    n = ULONG_MAX / b would both bypass the check and still overflow the
    allocation size a + n * b.

    The correct check should be (n > (ULONG_MAX - a) / b).

    Signed-off-by: Xi Wang
    Signed-off-by: Sage Weil

    Xi Wang
     

29 Sep, 2011

2 commits

  • The incremental map updates have a record for each pg_temp mapping that is
    to be add/updated (len > 0) or removed (len == 0). The old code was
    written as if the updates were a complete enumeration; that was just wrong.
    Update the code to remove 0-length entries and drop the rbtree traversal.

    This avoids misdirected (and hung) requests that manifest as server
    errors like

    [WRN] client4104 10.0.1.219:0/275025290 misdirected client4104.1:129 0.1 to osd0 not [1,0] in e11/11

    Signed-off-by: Sage Weil

    Sage Weil
     
  • We need to apply the modulo pg_num calculation before looking up a pgid in
    the pg_temp mapping rbtree. This fixes pg_temp mappings, and fixes
    (some) misdirected requests that result in messages like

    [WRN] client4104 10.0.1.219:0/275025290 misdirected client4104.1:129 0.1 to osd0 not [1,0] in e11/11

    on the server and stall make the client block without getting a reply (at
    least until the pg_temp mapping goes way, but that can take a long long
    time).

    Reorder calc_pg_raw() a bit to make more sense.

    Signed-off-by: Sage Weil

    Sage Weil
     

25 May, 2011

1 commit


20 May, 2011

1 commit


13 Jan, 2011

1 commit


21 Oct, 2010

1 commit

  • This factors out protocol and low-level storage parts of ceph into a
    separate libceph module living in net/ceph and include/linux/ceph. This
    is mostly a matter of moving files around. However, a few key pieces
    of the interface change as well:

    - ceph_client becomes ceph_fs_client and ceph_client, where the latter
    captures the mon and osd clients, and the fs_client gets the mds client
    and file system specific pieces.
    - Mount option parsing and debugfs setup is correspondingly broken into
    two pieces.
    - The mon client gets a generic handler callback for otherwise unknown
    messages (mds map, in this case).
    - The basic supported/required feature bits can be expanded (and are by
    ceph_fs_client).

    No functional change, aside from some subtle error handling cases that got
    cleaned up in the refactoring process.

    Signed-off-by: Sage Weil

    Yehuda Sadeh