14 Jan, 2012

1 commit

  • * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/sage/ceph-client:
    ceph: ensure prealloc_blob is in place when removing xattr
    rbd: initialize snap_rwsem in rbd_add()
    ceph: enable/disable dentry complete flags via mount option
    vfs: export symbol d_find_any_alias()
    ceph: always initialize the dentry in open_root_dentry()
    libceph: remove useless return value for osd_client __send_request()
    ceph: avoid iput() while holding spinlock in ceph_dir_fsync
    ceph: avoid useless dget/dput in encode_fh
    ceph: dereference pointer after checking for NULL
    crush: fix force for non-root TAKE
    ceph: remove unnecessary d_fsdata conditional checks
    ceph: Use kmemdup rather than duplicating its implementation

    Fix up conflicts in fs/ceph/super.c (d_alloc_root() failure handling vs
    always initialize the dentry in open_root_dentry)

    Linus Torvalds
     

13 Jan, 2012

1 commit

  • Enable/disable use of the dentry dir 'complete' flag via a mount option.
    This lets the admin control whether ceph uses the dcache to satisfy
    negative lookups or readdir when it has the entire directory contents in
    its cache.

    This is purely a performance optimization; correctness is guaranteed
    whether it is enabled or not.

    Reviewed-by: Christoph Hellwig
    Signed-off-by: Sage Weil

    Sage Weil
     

12 Jan, 2012

1 commit

  • When open_root_dentry() gets a dentry via d_obtain_alias() it does
    not get initialized. If the dentry obtained came from the cache,
    this is OK. But if not, the result is an improperly initialized
    dentry.

    To fix this, call ceph_init_dentry() regardless of which path
    produced the dentry. That function returns immediately for a dentry
    that is already initialized, it is safe to use either way.

    (Credit to Sage, who suggested this fix.)

    Signed-off-by: Alex Elder

    Alex Elder
     

10 Jan, 2012

1 commit


07 Jan, 2012

1 commit


03 Dec, 2011

1 commit


12 Nov, 2011

1 commit

  • Set up d_fsdata on the root dentry. This fixes a NULL pointer dereference
    in ceph_d_prune on umount. It also means we can eventually strip out all
    of the conditional checks on d_fsdata because it is now set unconditionally
    (prior to setting up the d_ops).

    Fix the ceph_d_prune debug print while we're here.

    Signed-off-by: Sage Weil

    Sage Weil
     

06 Nov, 2011

1 commit

  • Quiet the sparse noise:

    warning: symbol 'create_fs_client' was not declared. Should it be static?
    warning: symbol 'destroy_fs_client' was not declared. Should it be static?

    Signed-off-by: H Hartley Sweeten
    Cc: Sage Weil
    ceph-devel@vger.kernel.org
    Signed-off-by: Sage Weil

    H Hartley Sweeten
     

26 Oct, 2011

3 commits


23 Aug, 2011

1 commit


27 Jul, 2011

2 commits


30 Mar, 2011

1 commit


22 Mar, 2011

2 commits


20 Jan, 2011

1 commit


13 Jan, 2011

2 commits

  • fsc->*_wq's aren't depended upon during memory reclaim. Convert to
    alloc_workqueue() w/o WQ_MEM_RECLAIM.

    Signed-off-by: Tejun Heo
    Cc: Sage Weil
    Cc: ceph-devel@vger.kernel.org
    Signed-off-by: Sage Weil

    Tejun Heo
     
  • This implements the DIRLAYOUTHASH protocol feature, which passes the dir
    layout over the wire from the MDS. This gives the client knowledge
    of the correct hash function to use for mapping dentries among dir
    fragments.

    Note that if this feature is _not_ present on the client but is on the
    MDS, the client may misdirect requests. This will result in a forward
    and degrade performance. It may also result in inaccurate NFS filehandle
    generation, which will prevent fh resolution when the inode is not present
    in the client cache and the parent directories have been fragmented.

    Signed-off-by: Sage Weil

    Sage Weil
     

29 Oct, 2010

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
     

04 Aug, 2010

1 commit


02 Aug, 2010

5 commits


11 Jun, 2010

1 commit


02 Jun, 2010

1 commit

  • We were setting f_namelen in kstatfs to PATH_MAX instead of NAME_MAX.
    That disagrees with ceph_lookup behavior (which checks against NAME_MAX),
    and also makes the pjd posix test suite spit out ugly errors because with
    can't clean up its temporary files.

    Signed-off-by: Sage Weil

    Sage Weil
     

30 May, 2010

3 commits

  • * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/sage/ceph-client:
    ceph: clean up on forwarded aborted mds request
    ceph: fix leak of osd authorizer
    ceph: close out mds, osd connections before stopping auth
    ceph: make lease code DN specific
    fs/ceph: Use ERR_CAST
    ceph: renew auth tickets before they expire
    ceph: do not resend mon requests on auth ticket renewal
    ceph: removed duplicated #includes
    ceph: avoid possible null dereference
    ceph: make mds requests killable, not interruptible
    sched: add wait_for_completion_killable_timeout

    Linus Torvalds
     
  • The auth module (part of the mon_client) is needed to free any
    ceph_authorizer(s) used by the mds and osd connections. Flush the msgr
    workqueue before stopping monc to ensure that the destroy_authorizer
    auth op is available when those connections are closed out.

    Signed-off-by: Sage Weil

    Sage Weil
     
  • Use ERR_CAST(x) rather than ERR_PTR(PTR_ERR(x)). The former makes more
    clear what is the purpose of the operation, which otherwise looks like a
    no-op.

    In the case of fs/ceph/inode.c, ERR_CAST is not needed, because the type of
    the returned value is the same as the type of the enclosing function.

    The semantic patch that makes this change is as follows:
    (http://coccinelle.lip6.fr/)

    //
    @@
    type T;
    T x;
    identifier f;
    @@

    T f (...) { }

    @@
    expression x;
    @@

    - ERR_PTR(PTR_ERR(x))
    + ERR_CAST(x)
    //

    Signed-off-by: Julia Lawall
    Signed-off-by: Sage Weil

    Julia Lawall
     

24 May, 2010

1 commit

  • * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/sage/ceph-client: (59 commits)
    ceph: reuse mon subscribe message instead of allocated anew
    ceph: avoid resending queued message to monitor
    ceph: Storage class should be before const qualifier
    ceph: all allocation functions should get gfp_mask
    ceph: specify max_bytes on readdir replies
    ceph: cleanup pool op strings
    ceph: Use kzalloc
    ceph: use common helper for aborted dir request invalidation
    ceph: cope with out of order (unsafe after safe) mds reply
    ceph: save peer feature bits in connection structure
    ceph: resync headers with userland
    ceph: use ceph. prefix for virtual xattrs
    ceph: throw out dirty caps metadata, data on session teardown
    ceph: attempt mds reconnect if mds closes our session
    ceph: clean up send_mds_reconnect interface
    ceph: wait for mds OPEN reply to indicate reconnect success
    ceph: only send cap releases when mds is OPEN|HUNG
    ceph: dicard cap releases on mds restart
    ceph: make mon client statfs handling more generic
    ceph: drop src address(es) from message header [new protocol feature]
    ...

    Linus Torvalds
     

22 May, 2010

1 commit


18 May, 2010

5 commits