* [PATCH 00/40] staging/lustre: patch bomb 1 @ 2013-11-14 16:02 Peng Tao 2013-11-14 16:02 ` [PATCH 01/40] staging/lustre/llite: restore ll_fiemap Peng Tao ` (3 more replies) 0 siblings, 4 replies; 6+ messages in thread From: Peng Tao @ 2013-11-14 16:02 UTC (permalink / raw) To: Greg Kroah-Hartman; +Cc: linux-kernel, Peng Tao, Andreas Dilger Hi Greg, Here are 40 patches. Three cleanup patches and 37 patches ported from Lustre master to commit LU-2940 llite: Fix for oops in vvp_pgcache_show() There are two more patchsets that I will send out following up. Thanks, Tao Cc: Andreas Dilger <andreas.dilger@intel.com> Amir Shehata (2): staging/lustre/lnet: Fix assert on empty group in selftest module staging/lustre/ptlrpc: Fix a crash when dereferencing NULL pointer Andreas Dilger (2): staging/lustre/ldlm: fix resource/fid check, use DLDLMRES staging/lustre/idl: remove LASSERT/CLASSERT from lustre_idl.h Andrew Perepechko (1): staging/lustre/llite: extended attribute cache Andriy Skulysh (2): staging/lustre/ptlrpc: Fix race during exp_flock_hash creation staging/lustre/ptlrpc: flock deadlock detection does not work Artem Blagodarenko (1): staging/lustre/mgs: set_param -P option that sets value permanently Dmitry Eremin (2): staging/lustre/build: clean up unused variables and dead code staging/lustre/build: fix compilation issue with is_compat_task Doug Oucharek (1): staging/lustre/lnet: Add LNet Router Priority parameter Fan Yong (2): staging/lustre/scrub: OI scrub on OST staging/lustre/scrub: control OI scrub on OST from user space JC Lafoucriere (5): staging/lustre/llite: Access to released file trigs a restore staging/lustre/mdt: HSM coordinator client interface staging/lustre/mdt: HSM coordinator agent interface staging/lustre/api: HSM import uses new released pattern staging/lustre/utils: HSM Posix CopyTool James Simmons (2): staging/lustre/autoconf: remove vectored fops tests staging/lustre/autoconf: remove LIBCFS_HAVE_IS_COMPAT_TASK test Jinshan Xiong (2): staging/lustre/hsm: Implementation of exclusive open staging/lustre/hsm: Add hsm_release feature. John L. Hammond (7): staging/lustre: validate open handle cookies staging/lustre/llite: use correct FID in ll_och_fill() staging/lustre/lov: convert magic to host-endian in lov_dump_lmm() staging/lustre/mdc: prevent fall through in mdc_iocontrol() staging/lustre/lu: shrink lu_object by 8 bytes on x86_64 staging/lustre/llite: don't check for O_CREAT in it_create_mode staging/lustre/llite: pass correct pointer to obd_iocontrol() Lai Siyao (1): staging/lustre/llite: remove ll_d_root_ops Li Xi (1): staging/lustre/llog: fix return value of llog_alloc_handle Mikhail Pershin (4): staging/lustre/server: use unified request handler for MGS staging/lustre/llog: MGC to use OSD API for backup logs staging/lustre/target: move OUT to the unified target code staging/lustre/seq: unified SEQ handler Nathaniel Clark (1): staging/lustre/xattr: separate ACL and XATTR caches Patrick Farrell (1): staging/lustre/nfs: writing to new files will return ENOENT Peng Tao (3): staging/lustre/llite: restore ll_fiemap staging/lustre: remove lu_target.h staging/lustre: remove llog_server.c .../staging/lustre/include/linux/libcfs/curproc.h | 1 - .../staging/lustre/include/linux/libcfs/libcfs.h | 2 - .../lustre/include/linux/libcfs/libcfs_ioctl.h | 1 + .../staging/lustre/include/linux/lnet/lib-lnet.h | 5 +- .../staging/lustre/include/linux/lnet/lib-types.h | 2 +- drivers/staging/lustre/lnet/lnet/api-ni.c | 5 +- drivers/staging/lustre/lnet/lnet/config.c | 39 +- drivers/staging/lustre/lnet/lnet/lib-move.c | 6 + drivers/staging/lustre/lnet/lnet/router.c | 19 +- drivers/staging/lustre/lnet/lnet/router_proc.c | 16 +- drivers/staging/lustre/lnet/selftest/conctl.c | 56 +- drivers/staging/lustre/lnet/selftest/conrpc.c | 2 +- drivers/staging/lustre/lnet/selftest/console.c | 105 ++-- drivers/staging/lustre/lnet/selftest/console.h | 6 +- drivers/staging/lustre/lnet/selftest/rpc.c | 2 - drivers/staging/lustre/lnet/selftest/selftest.h | 3 - drivers/staging/lustre/lnet/selftest/timer.c | 6 +- drivers/staging/lustre/lustre/include/cl_object.h | 6 +- drivers/staging/lustre/lustre/include/dt_object.h | 2 +- .../lustre/lustre/include/linux/lustre_compat25.h | 4 +- .../lustre/lustre/include/linux/lustre_intent.h | 2 +- .../lustre/lustre/include/linux/lustre_lite.h | 1 + drivers/staging/lustre/lustre/include/lu_object.h | 19 - drivers/staging/lustre/lustre/include/lu_target.h | 91 --- .../lustre/lustre/include/lustre/lustre_idl.h | 111 ++-- .../lustre/lustre/include/lustre/lustre_user.h | 63 +- .../lustre/lustre/include/lustre/lustreapi.h | 208 ++++--- drivers/staging/lustre/lustre/include/lustre_cfg.h | 2 + .../staging/lustre/lustre/include/lustre_disk.h | 2 + .../lustre/lustre/include/lustre_dlm_flags.h | 24 +- drivers/staging/lustre/lustre/include/lustre_fid.h | 6 - drivers/staging/lustre/lustre/include/lustre_ha.h | 3 - .../staging/lustre/lustre/include/lustre_handles.h | 5 +- drivers/staging/lustre/lustre/include/lustre_lib.h | 11 +- drivers/staging/lustre/lustre/include/lustre_log.h | 13 +- drivers/staging/lustre/lustre/include/lustre_net.h | 19 +- .../lustre/lustre/include/lustre_req_layout.h | 7 + drivers/staging/lustre/lustre/include/md_object.h | 4 +- drivers/staging/lustre/lustre/include/obd.h | 15 +- drivers/staging/lustre/lustre/include/obd_class.h | 9 +- .../staging/lustre/lustre/include/obd_support.h | 10 + drivers/staging/lustre/lustre/lclient/lcommon_cl.c | 6 + .../staging/lustre/lustre/lclient/lcommon_misc.c | 4 +- drivers/staging/lustre/lustre/ldlm/ldlm_flock.c | 69 ++- drivers/staging/lustre/lustre/ldlm/ldlm_lock.c | 7 +- drivers/staging/lustre/lustre/ldlm/ldlm_lockd.c | 47 +- drivers/staging/lustre/lustre/ldlm/ldlm_request.c | 39 +- drivers/staging/lustre/lustre/ldlm/ldlm_resource.c | 19 +- .../lustre/lustre/libcfs/linux/linux-curproc.c | 13 - drivers/staging/lustre/lustre/libcfs/workitem.c | 55 +- drivers/staging/lustre/lustre/llite/Makefile | 2 +- drivers/staging/lustre/lustre/llite/dcache.c | 77 +-- drivers/staging/lustre/lustre/llite/dir.c | 47 +- drivers/staging/lustre/lustre/llite/file.c | 622 ++++++++++++++++++-- .../staging/lustre/lustre/llite/llite_internal.h | 59 +- drivers/staging/lustre/lustre/llite/llite_lib.c | 91 ++- drivers/staging/lustre/lustre/llite/llite_nfs.c | 6 +- drivers/staging/lustre/lustre/llite/lproc_llite.c | 36 ++ drivers/staging/lustre/lustre/llite/namei.c | 53 +- drivers/staging/lustre/lustre/llite/statahead.c | 7 +- drivers/staging/lustre/lustre/llite/super25.c | 4 + drivers/staging/lustre/lustre/llite/vvp_io.c | 54 +- drivers/staging/lustre/lustre/llite/vvp_object.c | 2 +- drivers/staging/lustre/lustre/llite/xattr.c | 105 ++-- drivers/staging/lustre/lustre/llite/xattr_cache.c | 559 ++++++++++++++++++ .../staging/lustre/lustre/lov/lov_cl_internal.h | 16 + drivers/staging/lustre/lustre/lov/lov_internal.h | 4 +- drivers/staging/lustre/lustre/lov/lov_io.c | 15 +- drivers/staging/lustre/lustre/lov/lov_object.c | 35 +- drivers/staging/lustre/lustre/lov/lov_pack.c | 20 +- drivers/staging/lustre/lustre/mdc/mdc_internal.h | 5 +- drivers/staging/lustre/lustre/mdc/mdc_lib.c | 31 +- drivers/staging/lustre/lustre/mdc/mdc_locks.c | 104 +++- drivers/staging/lustre/lustre/mdc/mdc_reint.c | 2 +- drivers/staging/lustre/lustre/mdc/mdc_request.c | 116 ++-- drivers/staging/lustre/lustre/mgc/libmgc.c | 3 - drivers/staging/lustre/lustre/mgc/mgc_request.c | 492 ++++++++++------ drivers/staging/lustre/lustre/obdclass/genops.c | 2 +- drivers/staging/lustre/lustre/obdclass/llog.c | 214 ++++--- .../staging/lustre/lustre/obdclass/local_storage.c | 9 +- .../staging/lustre/lustre/obdclass/local_storage.h | 3 + .../lustre/lustre/obdclass/lprocfs_status.c | 5 +- drivers/staging/lustre/lustre/obdclass/lu_object.c | 26 +- .../lustre/lustre/obdclass/lustre_handles.c | 4 +- drivers/staging/lustre/lustre/obdclass/md_attrs.c | 4 +- .../staging/lustre/lustre/obdclass/obd_config.c | 50 +- drivers/staging/lustre/lustre/obdclass/obd_mount.c | 3 + .../staging/lustre/lustre/obdecho/echo_client.c | 2 +- drivers/staging/lustre/lustre/ptlrpc/Makefile | 2 +- drivers/staging/lustre/lustre/ptlrpc/client.c | 10 +- drivers/staging/lustre/lustre/ptlrpc/import.c | 2 - drivers/staging/lustre/lustre/ptlrpc/layout.c | 63 +- drivers/staging/lustre/lustre/ptlrpc/llog_server.c | 450 -------------- .../staging/lustre/lustre/ptlrpc/lproc_ptlrpc.c | 4 +- drivers/staging/lustre/lustre/ptlrpc/niobuf.c | 16 +- .../staging/lustre/lustre/ptlrpc/pack_generic.c | 59 +- drivers/staging/lustre/lustre/ptlrpc/pinger.c | 65 -- drivers/staging/lustre/lustre/ptlrpc/ptlrpcd.c | 44 +- drivers/staging/lustre/lustre/ptlrpc/wiretest.c | 60 +- 99 files changed, 3043 insertions(+), 1793 deletions(-) delete mode 100644 drivers/staging/lustre/lustre/include/lu_target.h create mode 100644 drivers/staging/lustre/lustre/llite/xattr_cache.c delete mode 100644 drivers/staging/lustre/lustre/ptlrpc/llog_server.c -- 1.7.9.5 ^ permalink raw reply [flat|nested] 6+ messages in thread
* [PATCH 01/40] staging/lustre/llite: restore ll_fiemap 2013-11-14 16:02 [PATCH 00/40] staging/lustre: patch bomb 1 Peng Tao @ 2013-11-14 16:02 ` Peng Tao 2013-11-14 16:02 ` [PATCH 02/40] staging/lustre: remove lu_target.h Peng Tao ` (2 subsequent siblings) 3 siblings, 0 replies; 6+ messages in thread From: Peng Tao @ 2013-11-14 16:02 UTC (permalink / raw) To: Greg Kroah-Hartman; +Cc: linux-kernel, Peng Tao, Peng Tao, Andreas Dilger From: Peng Tao <tao.peng@emc.com> It was removed by coan by mistake when first porting the code. Signed-off-by: Peng Tao <bergwolf@gmail.com> Signed-off-by: Andreas Dilger <andreas.dilger@intel.com> --- drivers/staging/lustre/lustre/llite/file.c | 33 ++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) diff --git a/drivers/staging/lustre/lustre/llite/file.c b/drivers/staging/lustre/lustre/llite/file.c index fb85a58..c5b721c 100644 --- a/drivers/staging/lustre/lustre/llite/file.c +++ b/drivers/staging/lustre/lustre/llite/file.c @@ -2628,6 +2628,38 @@ int ll_getattr(struct vfsmount *mnt, struct dentry *de, struct kstat *stat) return ll_getattr_it(mnt, de, &it, stat); } +int ll_fiemap(struct inode *inode, struct fiemap_extent_info *fieinfo, + __u64 start, __u64 len) +{ + int rc; + size_t num_bytes; + struct ll_user_fiemap *fiemap; + unsigned int extent_count = fieinfo->fi_extents_max; + + num_bytes = sizeof(*fiemap) + (extent_count * + sizeof(struct ll_fiemap_extent)); + OBD_ALLOC_LARGE(fiemap, num_bytes); + + if (fiemap == NULL) + return -ENOMEM; + + fiemap->fm_flags = fieinfo->fi_flags; + fiemap->fm_extent_count = fieinfo->fi_extents_max; + fiemap->fm_start = start; + fiemap->fm_length = len; + memcpy(&fiemap->fm_extents[0], fieinfo->fi_extents_start, + sizeof(struct ll_fiemap_extent)); + + rc = ll_do_fiemap(inode, fiemap, num_bytes); + + fieinfo->fi_flags = fiemap->fm_flags; + fieinfo->fi_extents_mapped = fiemap->fm_mapped_extents; + memcpy(fieinfo->fi_extents_start, &fiemap->fm_extents[0], + fiemap->fm_mapped_extents * sizeof(struct ll_fiemap_extent)); + + OBD_FREE_LARGE(fiemap, num_bytes); + return rc; +} struct posix_acl * ll_get_acl(struct inode *inode, int type) { @@ -2740,6 +2772,7 @@ struct inode_operations ll_file_inode_operations = { .getxattr = ll_getxattr, .listxattr = ll_listxattr, .removexattr = ll_removexattr, + .fiemap = ll_fiemap, .get_acl = ll_get_acl, }; -- 1.7.9.5 ^ permalink raw reply related [flat|nested] 6+ messages in thread
* [PATCH 02/40] staging/lustre: remove lu_target.h 2013-11-14 16:02 [PATCH 00/40] staging/lustre: patch bomb 1 Peng Tao 2013-11-14 16:02 ` [PATCH 01/40] staging/lustre/llite: restore ll_fiemap Peng Tao @ 2013-11-14 16:02 ` Peng Tao 2013-11-14 16:02 ` [PATCH 03/40] staging/lustre: remove llog_server.c Peng Tao 2013-11-14 16:12 ` [PATCH 00/40] staging/lustre: patch bomb 1 Peng Tao 3 siblings, 0 replies; 6+ messages in thread From: Peng Tao @ 2013-11-14 16:02 UTC (permalink / raw) To: Greg Kroah-Hartman; +Cc: linux-kernel, Peng Tao, Peng Tao, Andreas Dilger From: Peng Tao <tao.peng@emc.com> It is only needed by server code. Signed-off-by: Peng Tao <bergwolf@gmail.com> Signed-off-by: Andreas Dilger <andreas.dilger@intel.com> --- drivers/staging/lustre/lustre/include/lu_target.h | 91 --------------------- 1 file changed, 91 deletions(-) delete mode 100644 drivers/staging/lustre/lustre/include/lu_target.h diff --git a/drivers/staging/lustre/lustre/include/lu_target.h b/drivers/staging/lustre/lustre/include/lu_target.h deleted file mode 100644 index 8d48cf4..0000000 --- a/drivers/staging/lustre/lustre/include/lu_target.h +++ /dev/null @@ -1,91 +0,0 @@ -/* - * GPL HEADER START - * - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License version 2 only, - * as published by the Free Software Foundation. - * - * This program is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * General Public License version 2 for more details (a copy is included - * in the LICENSE file that accompanied this code). - * - * You should have received a copy of the GNU General Public License - * version 2 along with this program; If not, see - * http://www.sun.com/software/products/lustre/docs/GPLv2.pdf - * - * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara, - * CA 95054 USA or visit www.sun.com if you need additional information or - * have any questions. - * - * GPL HEADER END - */ -/* - * Copyright (c) 2009, 2010, Oracle and/or its affiliates. All rights reserved. - * Use is subject to license terms. - * - * Copyright (c) 2011, 2012, Intel Corporation. - */ -/* - * This file is part of Lustre, http://www.lustre.org/ - * Lustre is a trademark of Sun Microsystems, Inc. - */ - -#ifndef _LUSTRE_LU_TARGET_H -#define _LUSTRE_LU_TARGET_H - -#include <dt_object.h> -#include <lustre_disk.h> - -struct lu_target { - struct obd_device *lut_obd; - struct dt_device *lut_bottom; - /** last_rcvd file */ - struct dt_object *lut_last_rcvd; - /* transaction callbacks */ - struct dt_txn_callback lut_txn_cb; - /** server data in last_rcvd file */ - struct lr_server_data lut_lsd; - /** Server last transaction number */ - __u64 lut_last_transno; - /** Lock protecting last transaction number */ - spinlock_t lut_translock; - /** Lock protecting client bitmap */ - spinlock_t lut_client_bitmap_lock; - /** Bitmap of known clients */ - unsigned long *lut_client_bitmap; -}; - -typedef void (*tgt_cb_t)(struct lu_target *lut, __u64 transno, - void *data, int err); -struct tgt_commit_cb { - tgt_cb_t tgt_cb_func; - void *tgt_cb_data; -}; - -void tgt_boot_epoch_update(struct lu_target *lut); -int tgt_last_commit_cb_add(struct thandle *th, struct lu_target *lut, - struct obd_export *exp, __u64 transno); -int tgt_new_client_cb_add(struct thandle *th, struct obd_export *exp); -int tgt_init(const struct lu_env *env, struct lu_target *lut, - struct obd_device *obd, struct dt_device *dt); -void tgt_fini(const struct lu_env *env, struct lu_target *lut); -int tgt_client_alloc(struct obd_export *exp); -void tgt_client_free(struct obd_export *exp); -int tgt_client_del(const struct lu_env *env, struct obd_export *exp); -int tgt_client_add(const struct lu_env *env, struct obd_export *exp, int); -int tgt_client_new(const struct lu_env *env, struct obd_export *exp); -int tgt_client_data_read(const struct lu_env *env, struct lu_target *tg, - struct lsd_client_data *lcd, loff_t *off, int index); -int tgt_client_data_write(const struct lu_env *env, struct lu_target *tg, - struct lsd_client_data *lcd, loff_t *off, struct thandle *th); -int tgt_server_data_read(const struct lu_env *env, struct lu_target *tg); -int tgt_server_data_write(const struct lu_env *env, struct lu_target *tg, - struct thandle *th); -int tgt_server_data_update(const struct lu_env *env, struct lu_target *tg, int sync); -int tgt_truncate_last_rcvd(const struct lu_env *env, struct lu_target *tg, loff_t off); - -#endif /* __LUSTRE_LU_TARGET_H */ -- 1.7.9.5 ^ permalink raw reply related [flat|nested] 6+ messages in thread
* [PATCH 03/40] staging/lustre: remove llog_server.c 2013-11-14 16:02 [PATCH 00/40] staging/lustre: patch bomb 1 Peng Tao 2013-11-14 16:02 ` [PATCH 01/40] staging/lustre/llite: restore ll_fiemap Peng Tao 2013-11-14 16:02 ` [PATCH 02/40] staging/lustre: remove lu_target.h Peng Tao @ 2013-11-14 16:02 ` Peng Tao 2013-11-14 16:12 ` [PATCH 00/40] staging/lustre: patch bomb 1 Peng Tao 3 siblings, 0 replies; 6+ messages in thread From: Peng Tao @ 2013-11-14 16:02 UTC (permalink / raw) To: Greg Kroah-Hartman; +Cc: linux-kernel, Peng Tao, Peng Tao, Andreas Dilger From: Peng Tao <tao.peng@emc.com> It is only used by server. Signed-off-by: Peng Tao <bergwolf@gmail.com> Signed-off-by: Andreas Dilger <andreas.dilger@intel.com> --- drivers/staging/lustre/lustre/include/lustre_net.h | 9 - drivers/staging/lustre/lustre/ldlm/ldlm_lockd.c | 39 -- drivers/staging/lustre/lustre/ptlrpc/Makefile | 2 +- drivers/staging/lustre/lustre/ptlrpc/llog_server.c | 450 -------------------- 4 files changed, 1 insertion(+), 499 deletions(-) delete mode 100644 drivers/staging/lustre/lustre/ptlrpc/llog_server.c diff --git a/drivers/staging/lustre/lustre/include/lustre_net.h b/drivers/staging/lustre/lustre/include/lustre_net.h index 72edf01..91f28e3 100644 --- a/drivers/staging/lustre/lustre/include/lustre_net.h +++ b/drivers/staging/lustre/lustre/include/lustre_net.h @@ -3470,15 +3470,6 @@ static inline void ptlrpc_lprocfs_brw(struct ptlrpc_request *req, int bytes) {} #endif /** @} */ -/* ptlrpc/llog_server.c */ -int llog_origin_handle_open(struct ptlrpc_request *req); -int llog_origin_handle_destroy(struct ptlrpc_request *req); -int llog_origin_handle_prev_block(struct ptlrpc_request *req); -int llog_origin_handle_next_block(struct ptlrpc_request *req); -int llog_origin_handle_read_header(struct ptlrpc_request *req); -int llog_origin_handle_close(struct ptlrpc_request *req); -int llog_origin_handle_cancel(struct ptlrpc_request *req); - /* ptlrpc/llog_client.c */ extern struct llog_operations llog_client_ops; diff --git a/drivers/staging/lustre/lustre/ldlm/ldlm_lockd.c b/drivers/staging/lustre/lustre/ldlm/ldlm_lockd.c index fde9bcd..40c58b7 100644 --- a/drivers/staging/lustre/lustre/ldlm/ldlm_lockd.c +++ b/drivers/staging/lustre/lustre/ldlm/ldlm_lockd.c @@ -597,45 +597,6 @@ static int ldlm_callback_handler(struct ptlrpc_request *req) rc = ldlm_handle_setinfo(req); ldlm_callback_reply(req, rc); return 0; - case OBD_LOG_CANCEL: /* remove this eventually - for 1.4.0 compat */ - CERROR("shouldn't be handling OBD_LOG_CANCEL on DLM thread\n"); - req_capsule_set(&req->rq_pill, &RQF_LOG_CANCEL); - if (OBD_FAIL_CHECK(OBD_FAIL_OBD_LOG_CANCEL_NET)) - return 0; - rc = llog_origin_handle_cancel(req); - if (OBD_FAIL_CHECK(OBD_FAIL_OBD_LOG_CANCEL_REP)) - return 0; - ldlm_callback_reply(req, rc); - return 0; - case LLOG_ORIGIN_HANDLE_CREATE: - req_capsule_set(&req->rq_pill, &RQF_LLOG_ORIGIN_HANDLE_CREATE); - if (OBD_FAIL_CHECK(OBD_FAIL_OBD_LOGD_NET)) - return 0; - rc = llog_origin_handle_open(req); - ldlm_callback_reply(req, rc); - return 0; - case LLOG_ORIGIN_HANDLE_NEXT_BLOCK: - req_capsule_set(&req->rq_pill, - &RQF_LLOG_ORIGIN_HANDLE_NEXT_BLOCK); - if (OBD_FAIL_CHECK(OBD_FAIL_OBD_LOGD_NET)) - return 0; - rc = llog_origin_handle_next_block(req); - ldlm_callback_reply(req, rc); - return 0; - case LLOG_ORIGIN_HANDLE_READ_HEADER: - req_capsule_set(&req->rq_pill, - &RQF_LLOG_ORIGIN_HANDLE_READ_HEADER); - if (OBD_FAIL_CHECK(OBD_FAIL_OBD_LOGD_NET)) - return 0; - rc = llog_origin_handle_read_header(req); - ldlm_callback_reply(req, rc); - return 0; - case LLOG_ORIGIN_HANDLE_CLOSE: - if (OBD_FAIL_CHECK(OBD_FAIL_OBD_LOGD_NET)) - return 0; - rc = llog_origin_handle_close(req); - ldlm_callback_reply(req, rc); - return 0; case OBD_QC_CALLBACK: req_capsule_set(&req->rq_pill, &RQF_QC_CALLBACK); if (OBD_FAIL_CHECK(OBD_FAIL_OBD_QC_CALLBACK_NET)) diff --git a/drivers/staging/lustre/lustre/ptlrpc/Makefile b/drivers/staging/lustre/lustre/ptlrpc/Makefile index 6d78b80..2ec0c24 100644 --- a/drivers/staging/lustre/lustre/ptlrpc/Makefile +++ b/drivers/staging/lustre/lustre/ptlrpc/Makefile @@ -10,7 +10,7 @@ ldlm_objs += $(LDLM)ldlm_pool.o ldlm_objs += $(LDLM)interval_tree.o ptlrpc_objs := client.o recover.o connection.o niobuf.o pack_generic.o ptlrpc_objs += events.o ptlrpc_module.o service.o pinger.o -ptlrpc_objs += llog_net.o llog_client.o llog_server.o import.o ptlrpcd.o +ptlrpc_objs += llog_net.o llog_client.o import.o ptlrpcd.o ptlrpc_objs += pers.o lproc_ptlrpc.o wiretest.o layout.o ptlrpc_objs += sec.o sec_bulk.o sec_gc.o sec_config.o sec_lproc.o ptlrpc_objs += sec_null.o sec_plain.o nrs.o nrs_fifo.o diff --git a/drivers/staging/lustre/lustre/ptlrpc/llog_server.c b/drivers/staging/lustre/lustre/ptlrpc/llog_server.c deleted file mode 100644 index af9d2ac..0000000 --- a/drivers/staging/lustre/lustre/ptlrpc/llog_server.c +++ /dev/null @@ -1,450 +0,0 @@ -/* - * GPL HEADER START - * - * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License version 2 only, - * as published by the Free Software Foundation. - * - * This program is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * General Public License version 2 for more details (a copy is included - * in the LICENSE file that accompanied this code). - * - * You should have received a copy of the GNU General Public License - * version 2 along with this program; If not, see - * http://www.sun.com/software/products/lustre/docs/GPLv2.pdf - * - * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara, - * CA 95054 USA or visit www.sun.com if you need additional information or - * have any questions. - * - * GPL HEADER END - */ -/* - * Copyright (c) 2003, 2010, Oracle and/or its affiliates. All rights reserved. - * Use is subject to license terms. - * - * Copyright (c) 2011, 2012, Intel Corporation. - */ -/* - * This file is part of Lustre, http://www.lustre.org/ - * Lustre is a trademark of Sun Microsystems, Inc. - * - * lustre/ptlrpc/llog_server.c - * - * remote api for llog - server side - * - * Author: Andreas Dilger <adilger@clusterfs.com> - */ - -#define DEBUG_SUBSYSTEM S_LOG - - -#include <obd_class.h> -#include <lustre_log.h> -#include <lustre_net.h> -#include <lustre_fsfilt.h> - -#if defined(LUSTRE_LOG_SERVER) -static int llog_origin_close(const struct lu_env *env, struct llog_handle *lgh) -{ - if (lgh->lgh_hdr != NULL && lgh->lgh_hdr->llh_flags & LLOG_F_IS_CAT) - return llog_cat_close(env, lgh); - else - return llog_close(env, lgh); -} - -/* Only open is supported, no new llog can be created remotely */ -int llog_origin_handle_open(struct ptlrpc_request *req) -{ - struct obd_export *exp = req->rq_export; - struct obd_device *obd = exp->exp_obd; - struct obd_device *disk_obd; - struct lvfs_run_ctxt saved; - struct llog_handle *loghandle; - struct llogd_body *body; - struct llog_logid *logid = NULL; - struct llog_ctxt *ctxt; - char *name = NULL; - int rc; - - body = req_capsule_client_get(&req->rq_pill, &RMF_LLOGD_BODY); - if (body == NULL) - return -EFAULT; - - if (ostid_id(&body->lgd_logid.lgl_oi) > 0) - logid = &body->lgd_logid; - - if (req_capsule_field_present(&req->rq_pill, &RMF_NAME, RCL_CLIENT)) { - name = req_capsule_client_get(&req->rq_pill, &RMF_NAME); - if (name == NULL) - return -EFAULT; - CDEBUG(D_INFO, "%s: opening log %s\n", obd->obd_name, name); - } - - ctxt = llog_get_context(obd, body->lgd_ctxt_idx); - if (ctxt == NULL) { - CDEBUG(D_WARNING, "%s: no ctxt. group=%p idx=%d name=%s\n", - obd->obd_name, &obd->obd_olg, body->lgd_ctxt_idx, name); - return -ENODEV; - } - disk_obd = ctxt->loc_exp->exp_obd; - push_ctxt(&saved, &disk_obd->obd_lvfs_ctxt, NULL); - - rc = llog_open(req->rq_svc_thread->t_env, ctxt, &loghandle, logid, - name, LLOG_OPEN_EXISTS); - if (rc) - GOTO(out_pop, rc); - - rc = req_capsule_server_pack(&req->rq_pill); - if (rc) - GOTO(out_close, rc = -ENOMEM); - - body = req_capsule_server_get(&req->rq_pill, &RMF_LLOGD_BODY); - body->lgd_logid = loghandle->lgh_id; - -out_close: - llog_origin_close(req->rq_svc_thread->t_env, loghandle); -out_pop: - pop_ctxt(&saved, &disk_obd->obd_lvfs_ctxt, NULL); - llog_ctxt_put(ctxt); - return rc; -} -EXPORT_SYMBOL(llog_origin_handle_open); - -int llog_origin_handle_destroy(struct ptlrpc_request *req) -{ - struct obd_device *disk_obd; - struct lvfs_run_ctxt saved; - struct llogd_body *body; - struct llog_logid *logid = NULL; - struct llog_ctxt *ctxt; - int rc; - - body = req_capsule_client_get(&req->rq_pill, &RMF_LLOGD_BODY); - if (body == NULL) - return -EFAULT; - - if (ostid_id(&body->lgd_logid.lgl_oi) > 0) - logid = &body->lgd_logid; - - if (!(body->lgd_llh_flags & LLOG_F_IS_PLAIN)) - CERROR("%s: wrong llog flags %x\n", - req->rq_export->exp_obd->obd_name, body->lgd_llh_flags); - - ctxt = llog_get_context(req->rq_export->exp_obd, body->lgd_ctxt_idx); - if (ctxt == NULL) - return -ENODEV; - - disk_obd = ctxt->loc_exp->exp_obd; - push_ctxt(&saved, &disk_obd->obd_lvfs_ctxt, NULL); - - rc = req_capsule_server_pack(&req->rq_pill); - /* erase only if no error and logid is valid */ - if (rc == 0) - rc = llog_erase(req->rq_svc_thread->t_env, ctxt, logid, NULL); - pop_ctxt(&saved, &disk_obd->obd_lvfs_ctxt, NULL); - llog_ctxt_put(ctxt); - return rc; -} -EXPORT_SYMBOL(llog_origin_handle_destroy); - -int llog_origin_handle_next_block(struct ptlrpc_request *req) -{ - struct obd_device *disk_obd; - struct llog_handle *loghandle; - struct llogd_body *body; - struct llogd_body *repbody; - struct lvfs_run_ctxt saved; - struct llog_ctxt *ctxt; - __u32 flags; - void *ptr; - int rc; - - body = req_capsule_client_get(&req->rq_pill, &RMF_LLOGD_BODY); - if (body == NULL) - return -EFAULT; - - ctxt = llog_get_context(req->rq_export->exp_obd, body->lgd_ctxt_idx); - if (ctxt == NULL) - return -ENODEV; - - disk_obd = ctxt->loc_exp->exp_obd; - push_ctxt(&saved, &disk_obd->obd_lvfs_ctxt, NULL); - - rc = llog_open(req->rq_svc_thread->t_env, ctxt, &loghandle, - &body->lgd_logid, NULL, LLOG_OPEN_EXISTS); - if (rc) - GOTO(out_pop, rc); - - flags = body->lgd_llh_flags; - rc = llog_init_handle(req->rq_svc_thread->t_env, loghandle, flags, - NULL); - if (rc) - GOTO(out_close, rc); - - req_capsule_set_size(&req->rq_pill, &RMF_EADATA, RCL_SERVER, - LLOG_CHUNK_SIZE); - rc = req_capsule_server_pack(&req->rq_pill); - if (rc) - GOTO(out_close, rc = -ENOMEM); - - repbody = req_capsule_server_get(&req->rq_pill, &RMF_LLOGD_BODY); - *repbody = *body; - - ptr = req_capsule_server_get(&req->rq_pill, &RMF_EADATA); - rc = llog_next_block(req->rq_svc_thread->t_env, loghandle, - &repbody->lgd_saved_index, repbody->lgd_index, - &repbody->lgd_cur_offset, ptr, LLOG_CHUNK_SIZE); - if (rc) - GOTO(out_close, rc); -out_close: - llog_origin_close(req->rq_svc_thread->t_env, loghandle); -out_pop: - pop_ctxt(&saved, &disk_obd->obd_lvfs_ctxt, NULL); - llog_ctxt_put(ctxt); - return rc; -} -EXPORT_SYMBOL(llog_origin_handle_next_block); - -int llog_origin_handle_prev_block(struct ptlrpc_request *req) -{ - struct llog_handle *loghandle; - struct llogd_body *body; - struct llogd_body *repbody; - struct obd_device *disk_obd; - struct lvfs_run_ctxt saved; - struct llog_ctxt *ctxt; - __u32 flags; - void *ptr; - int rc; - - body = req_capsule_client_get(&req->rq_pill, &RMF_LLOGD_BODY); - if (body == NULL) - return -EFAULT; - - ctxt = llog_get_context(req->rq_export->exp_obd, body->lgd_ctxt_idx); - if (ctxt == NULL) - return -ENODEV; - - disk_obd = ctxt->loc_exp->exp_obd; - push_ctxt(&saved, &disk_obd->obd_lvfs_ctxt, NULL); - - rc = llog_open(req->rq_svc_thread->t_env, ctxt, &loghandle, - &body->lgd_logid, NULL, LLOG_OPEN_EXISTS); - if (rc) - GOTO(out_pop, rc); - - flags = body->lgd_llh_flags; - rc = llog_init_handle(req->rq_svc_thread->t_env, loghandle, flags, - NULL); - if (rc) - GOTO(out_close, rc); - - req_capsule_set_size(&req->rq_pill, &RMF_EADATA, RCL_SERVER, - LLOG_CHUNK_SIZE); - rc = req_capsule_server_pack(&req->rq_pill); - if (rc) - GOTO(out_close, rc = -ENOMEM); - - repbody = req_capsule_server_get(&req->rq_pill, &RMF_LLOGD_BODY); - *repbody = *body; - - ptr = req_capsule_server_get(&req->rq_pill, &RMF_EADATA); - rc = llog_prev_block(req->rq_svc_thread->t_env, loghandle, - body->lgd_index, ptr, LLOG_CHUNK_SIZE); - if (rc) - GOTO(out_close, rc); - -out_close: - llog_origin_close(req->rq_svc_thread->t_env, loghandle); -out_pop: - pop_ctxt(&saved, &disk_obd->obd_lvfs_ctxt, NULL); - llog_ctxt_put(ctxt); - return rc; -} -EXPORT_SYMBOL(llog_origin_handle_prev_block); - -int llog_origin_handle_read_header(struct ptlrpc_request *req) -{ - struct obd_device *disk_obd; - struct llog_handle *loghandle; - struct llogd_body *body; - struct llog_log_hdr *hdr; - struct lvfs_run_ctxt saved; - struct llog_ctxt *ctxt; - __u32 flags; - int rc; - - body = req_capsule_client_get(&req->rq_pill, &RMF_LLOGD_BODY); - if (body == NULL) - return -EFAULT; - - ctxt = llog_get_context(req->rq_export->exp_obd, body->lgd_ctxt_idx); - if (ctxt == NULL) - return -ENODEV; - - disk_obd = ctxt->loc_exp->exp_obd; - push_ctxt(&saved, &disk_obd->obd_lvfs_ctxt, NULL); - - rc = llog_open(req->rq_svc_thread->t_env, ctxt, &loghandle, - &body->lgd_logid, NULL, LLOG_OPEN_EXISTS); - if (rc) - GOTO(out_pop, rc); - - /* - * llog_init_handle() reads the llog header - */ - flags = body->lgd_llh_flags; - rc = llog_init_handle(req->rq_svc_thread->t_env, loghandle, flags, - NULL); - if (rc) - GOTO(out_close, rc); - flags = loghandle->lgh_hdr->llh_flags; - - rc = req_capsule_server_pack(&req->rq_pill); - if (rc) - GOTO(out_close, rc = -ENOMEM); - - hdr = req_capsule_server_get(&req->rq_pill, &RMF_LLOG_LOG_HDR); - *hdr = *loghandle->lgh_hdr; -out_close: - llog_origin_close(req->rq_svc_thread->t_env, loghandle); -out_pop: - pop_ctxt(&saved, &disk_obd->obd_lvfs_ctxt, NULL); - llog_ctxt_put(ctxt); - return rc; -} -EXPORT_SYMBOL(llog_origin_handle_read_header); - -int llog_origin_handle_close(struct ptlrpc_request *req) -{ - /* Nothing to do */ - return 0; -} -EXPORT_SYMBOL(llog_origin_handle_close); - -int llog_origin_handle_cancel(struct ptlrpc_request *req) -{ - int num_cookies, rc = 0, err, i, failed = 0; - struct obd_device *disk_obd; - struct llog_cookie *logcookies; - struct llog_ctxt *ctxt = NULL; - struct lvfs_run_ctxt saved; - struct llog_handle *cathandle; - struct inode *inode; - void *handle; - - logcookies = req_capsule_client_get(&req->rq_pill, &RMF_LOGCOOKIES); - num_cookies = req_capsule_get_size(&req->rq_pill, &RMF_LOGCOOKIES, - RCL_CLIENT) / sizeof(*logcookies); - if (logcookies == NULL || num_cookies == 0) { - DEBUG_REQ(D_HA, req, "No llog cookies sent"); - return -EFAULT; - } - - ctxt = llog_get_context(req->rq_export->exp_obd, - logcookies->lgc_subsys); - if (ctxt == NULL) - return -ENODEV; - - disk_obd = ctxt->loc_exp->exp_obd; - push_ctxt(&saved, &disk_obd->obd_lvfs_ctxt, NULL); - for (i = 0; i < num_cookies; i++, logcookies++) { - cathandle = ctxt->loc_handle; - LASSERT(cathandle != NULL); - inode = cathandle->lgh_file->f_dentry->d_inode; - - handle = fsfilt_start_log(disk_obd, inode, - FSFILT_OP_CANCEL_UNLINK, NULL, 1); - if (IS_ERR(handle)) { - CERROR("fsfilt_start_log() failed: %ld\n", - PTR_ERR(handle)); - GOTO(pop_ctxt, rc = PTR_ERR(handle)); - } - - rc = llog_cat_cancel_records(req->rq_svc_thread->t_env, - cathandle, 1, logcookies); - - /* - * Do not raise -ENOENT errors for resent rpcs. This rec already - * might be killed. - */ - if (rc == -ENOENT && - (lustre_msg_get_flags(req->rq_reqmsg) & MSG_RESENT)) { - /* - * Do not change this message, reply-single.sh test_59b - * expects to find this in log. - */ - CDEBUG(D_RPCTRACE, "RESENT cancel req %p - ignored\n", - req); - rc = 0; - } else if (rc == 0) { - CDEBUG(D_RPCTRACE, "Canceled %d llog-records\n", - num_cookies); - } - - err = fsfilt_commit(disk_obd, inode, handle, 0); - if (err) { - CERROR("Error committing transaction: %d\n", err); - if (!rc) - rc = err; - failed++; - GOTO(pop_ctxt, rc); - } else if (rc) - failed++; - } - GOTO(pop_ctxt, rc); -pop_ctxt: - pop_ctxt(&saved, &disk_obd->obd_lvfs_ctxt, NULL); - if (rc) - CERROR("Cancel %d of %d llog-records failed: %d\n", - failed, num_cookies, rc); - - llog_ctxt_put(ctxt); - return rc; -} -EXPORT_SYMBOL(llog_origin_handle_cancel); - -#else /* !__KERNEL__ */ -int llog_origin_handle_open(struct ptlrpc_request *req) -{ - LBUG(); - return 0; -} - -int llog_origin_handle_destroy(struct ptlrpc_request *req) -{ - LBUG(); - return 0; -} - -int llog_origin_handle_next_block(struct ptlrpc_request *req) -{ - LBUG(); - return 0; -} -int llog_origin_handle_prev_block(struct ptlrpc_request *req) -{ - LBUG(); - return 0; -} -int llog_origin_handle_read_header(struct ptlrpc_request *req) -{ - LBUG(); - return 0; -} -int llog_origin_handle_close(struct ptlrpc_request *req) -{ - LBUG(); - return 0; -} -int llog_origin_handle_cancel(struct ptlrpc_request *req) -{ - LBUG(); - return 0; -} -#endif -- 1.7.9.5 ^ permalink raw reply related [flat|nested] 6+ messages in thread
* Re: [PATCH 00/40] staging/lustre: patch bomb 1 2013-11-14 16:02 [PATCH 00/40] staging/lustre: patch bomb 1 Peng Tao ` (2 preceding siblings ...) 2013-11-14 16:02 ` [PATCH 03/40] staging/lustre: remove llog_server.c Peng Tao @ 2013-11-14 16:12 ` Peng Tao 3 siblings, 0 replies; 6+ messages in thread From: Peng Tao @ 2013-11-14 16:12 UTC (permalink / raw) To: Greg Kroah-Hartman; +Cc: Linux Kernel Mailing List, Peng Tao, Andreas Dilger On Fri, Nov 15, 2013 at 12:02 AM, Peng Tao <bergwolf@gmail.com> wrote: > Hi Greg, > > Here are 40 patches. Three cleanup patches and 37 patches ported > from Lustre master to commit > LU-2940 llite: Fix for oops in vvp_pgcache_show() > > There are two more patchsets that I will send out following up. > oops, my git-send-email died after sending out the first four emails. I'll resend. Thanks, Tao ^ permalink raw reply [flat|nested] 6+ messages in thread
* [PATCH 00/40] staging/lustre: patch bomb 1 @ 2013-11-14 16:13 Peng Tao 2013-11-14 16:13 ` [PATCH 01/40] staging/lustre/llite: restore ll_fiemap Peng Tao 0 siblings, 1 reply; 6+ messages in thread From: Peng Tao @ 2013-11-14 16:13 UTC (permalink / raw) To: Greg Kroah-Hartman; +Cc: linux-kernel, Peng Tao, Andreas Dilger [sadly git-send-email died sending the patchset... so resending] Hi Greg, Here are 40 patches. Three cleanup patches and 37 patches ported from Lustre master to commit LU-2940 llite: Fix for oops in vvp_pgcache_show() There are two more patchsets that I will send out following up. Thanks, Tao Cc: Andreas Dilger <andreas.dilger@intel.com> Amir Shehata (2): staging/lustre/lnet: Fix assert on empty group in selftest module staging/lustre/ptlrpc: Fix a crash when dereferencing NULL pointer Andreas Dilger (2): staging/lustre/ldlm: fix resource/fid check, use DLDLMRES staging/lustre/idl: remove LASSERT/CLASSERT from lustre_idl.h Andrew Perepechko (1): staging/lustre/llite: extended attribute cache Andriy Skulysh (2): staging/lustre/ptlrpc: Fix race during exp_flock_hash creation staging/lustre/ptlrpc: flock deadlock detection does not work Artem Blagodarenko (1): staging/lustre/mgs: set_param -P option that sets value permanently Dmitry Eremin (2): staging/lustre/build: clean up unused variables and dead code staging/lustre/build: fix compilation issue with is_compat_task Doug Oucharek (1): staging/lustre/lnet: Add LNet Router Priority parameter Fan Yong (2): staging/lustre/scrub: OI scrub on OST staging/lustre/scrub: control OI scrub on OST from user space JC Lafoucriere (5): staging/lustre/llite: Access to released file trigs a restore staging/lustre/mdt: HSM coordinator client interface staging/lustre/mdt: HSM coordinator agent interface staging/lustre/api: HSM import uses new released pattern staging/lustre/utils: HSM Posix CopyTool James Simmons (2): staging/lustre/autoconf: remove vectored fops tests staging/lustre/autoconf: remove LIBCFS_HAVE_IS_COMPAT_TASK test Jinshan Xiong (2): staging/lustre/hsm: Implementation of exclusive open staging/lustre/hsm: Add hsm_release feature. John L. Hammond (7): staging/lustre: validate open handle cookies staging/lustre/llite: use correct FID in ll_och_fill() staging/lustre/lov: convert magic to host-endian in lov_dump_lmm() staging/lustre/mdc: prevent fall through in mdc_iocontrol() staging/lustre/lu: shrink lu_object by 8 bytes on x86_64 staging/lustre/llite: don't check for O_CREAT in it_create_mode staging/lustre/llite: pass correct pointer to obd_iocontrol() Lai Siyao (1): staging/lustre/llite: remove ll_d_root_ops Li Xi (1): staging/lustre/llog: fix return value of llog_alloc_handle Mikhail Pershin (4): staging/lustre/server: use unified request handler for MGS staging/lustre/llog: MGC to use OSD API for backup logs staging/lustre/target: move OUT to the unified target code staging/lustre/seq: unified SEQ handler Nathaniel Clark (1): staging/lustre/xattr: separate ACL and XATTR caches Patrick Farrell (1): staging/lustre/nfs: writing to new files will return ENOENT Peng Tao (3): staging/lustre/llite: restore ll_fiemap staging/lustre: remove lu_target.h staging/lustre: remove llog_server.c .../staging/lustre/include/linux/libcfs/curproc.h | 1 - .../staging/lustre/include/linux/libcfs/libcfs.h | 2 - .../lustre/include/linux/libcfs/libcfs_ioctl.h | 1 + .../staging/lustre/include/linux/lnet/lib-lnet.h | 5 +- .../staging/lustre/include/linux/lnet/lib-types.h | 2 +- drivers/staging/lustre/lnet/lnet/api-ni.c | 5 +- drivers/staging/lustre/lnet/lnet/config.c | 39 +- drivers/staging/lustre/lnet/lnet/lib-move.c | 6 + drivers/staging/lustre/lnet/lnet/router.c | 19 +- drivers/staging/lustre/lnet/lnet/router_proc.c | 16 +- drivers/staging/lustre/lnet/selftest/conctl.c | 56 +- drivers/staging/lustre/lnet/selftest/conrpc.c | 2 +- drivers/staging/lustre/lnet/selftest/console.c | 105 ++-- drivers/staging/lustre/lnet/selftest/console.h | 6 +- drivers/staging/lustre/lnet/selftest/rpc.c | 2 - drivers/staging/lustre/lnet/selftest/selftest.h | 3 - drivers/staging/lustre/lnet/selftest/timer.c | 6 +- drivers/staging/lustre/lustre/include/cl_object.h | 6 +- drivers/staging/lustre/lustre/include/dt_object.h | 2 +- .../lustre/lustre/include/linux/lustre_compat25.h | 4 +- .../lustre/lustre/include/linux/lustre_intent.h | 2 +- .../lustre/lustre/include/linux/lustre_lite.h | 1 + drivers/staging/lustre/lustre/include/lu_object.h | 19 - drivers/staging/lustre/lustre/include/lu_target.h | 91 --- .../lustre/lustre/include/lustre/lustre_idl.h | 111 ++-- .../lustre/lustre/include/lustre/lustre_user.h | 63 +- .../lustre/lustre/include/lustre/lustreapi.h | 208 ++++--- drivers/staging/lustre/lustre/include/lustre_cfg.h | 2 + .../staging/lustre/lustre/include/lustre_disk.h | 2 + .../lustre/lustre/include/lustre_dlm_flags.h | 24 +- drivers/staging/lustre/lustre/include/lustre_fid.h | 6 - drivers/staging/lustre/lustre/include/lustre_ha.h | 3 - .../staging/lustre/lustre/include/lustre_handles.h | 5 +- drivers/staging/lustre/lustre/include/lustre_lib.h | 11 +- drivers/staging/lustre/lustre/include/lustre_log.h | 13 +- drivers/staging/lustre/lustre/include/lustre_net.h | 19 +- .../lustre/lustre/include/lustre_req_layout.h | 7 + drivers/staging/lustre/lustre/include/md_object.h | 4 +- drivers/staging/lustre/lustre/include/obd.h | 15 +- drivers/staging/lustre/lustre/include/obd_class.h | 9 +- .../staging/lustre/lustre/include/obd_support.h | 10 + drivers/staging/lustre/lustre/lclient/lcommon_cl.c | 6 + .../staging/lustre/lustre/lclient/lcommon_misc.c | 4 +- drivers/staging/lustre/lustre/ldlm/ldlm_flock.c | 69 ++- drivers/staging/lustre/lustre/ldlm/ldlm_lock.c | 7 +- drivers/staging/lustre/lustre/ldlm/ldlm_lockd.c | 47 +- drivers/staging/lustre/lustre/ldlm/ldlm_request.c | 39 +- drivers/staging/lustre/lustre/ldlm/ldlm_resource.c | 19 +- .../lustre/lustre/libcfs/linux/linux-curproc.c | 13 - drivers/staging/lustre/lustre/libcfs/workitem.c | 55 +- drivers/staging/lustre/lustre/llite/Makefile | 2 +- drivers/staging/lustre/lustre/llite/dcache.c | 77 +-- drivers/staging/lustre/lustre/llite/dir.c | 47 +- drivers/staging/lustre/lustre/llite/file.c | 622 ++++++++++++++++++-- .../staging/lustre/lustre/llite/llite_internal.h | 59 +- drivers/staging/lustre/lustre/llite/llite_lib.c | 91 ++- drivers/staging/lustre/lustre/llite/llite_nfs.c | 6 +- drivers/staging/lustre/lustre/llite/lproc_llite.c | 36 ++ drivers/staging/lustre/lustre/llite/namei.c | 53 +- drivers/staging/lustre/lustre/llite/statahead.c | 7 +- drivers/staging/lustre/lustre/llite/super25.c | 4 + drivers/staging/lustre/lustre/llite/vvp_io.c | 54 +- drivers/staging/lustre/lustre/llite/vvp_object.c | 2 +- drivers/staging/lustre/lustre/llite/xattr.c | 105 ++-- drivers/staging/lustre/lustre/llite/xattr_cache.c | 559 ++++++++++++++++++ .../staging/lustre/lustre/lov/lov_cl_internal.h | 16 + drivers/staging/lustre/lustre/lov/lov_internal.h | 4 +- drivers/staging/lustre/lustre/lov/lov_io.c | 15 +- drivers/staging/lustre/lustre/lov/lov_object.c | 35 +- drivers/staging/lustre/lustre/lov/lov_pack.c | 20 +- drivers/staging/lustre/lustre/mdc/mdc_internal.h | 5 +- drivers/staging/lustre/lustre/mdc/mdc_lib.c | 31 +- drivers/staging/lustre/lustre/mdc/mdc_locks.c | 104 +++- drivers/staging/lustre/lustre/mdc/mdc_reint.c | 2 +- drivers/staging/lustre/lustre/mdc/mdc_request.c | 116 ++-- drivers/staging/lustre/lustre/mgc/libmgc.c | 3 - drivers/staging/lustre/lustre/mgc/mgc_request.c | 492 ++++++++++------ drivers/staging/lustre/lustre/obdclass/genops.c | 2 +- drivers/staging/lustre/lustre/obdclass/llog.c | 214 ++++--- .../staging/lustre/lustre/obdclass/local_storage.c | 9 +- .../staging/lustre/lustre/obdclass/local_storage.h | 3 + .../lustre/lustre/obdclass/lprocfs_status.c | 5 +- drivers/staging/lustre/lustre/obdclass/lu_object.c | 26 +- .../lustre/lustre/obdclass/lustre_handles.c | 4 +- drivers/staging/lustre/lustre/obdclass/md_attrs.c | 4 +- .../staging/lustre/lustre/obdclass/obd_config.c | 50 +- drivers/staging/lustre/lustre/obdclass/obd_mount.c | 3 + .../staging/lustre/lustre/obdecho/echo_client.c | 2 +- drivers/staging/lustre/lustre/ptlrpc/Makefile | 2 +- drivers/staging/lustre/lustre/ptlrpc/client.c | 10 +- drivers/staging/lustre/lustre/ptlrpc/import.c | 2 - drivers/staging/lustre/lustre/ptlrpc/layout.c | 63 +- drivers/staging/lustre/lustre/ptlrpc/llog_server.c | 450 -------------- .../staging/lustre/lustre/ptlrpc/lproc_ptlrpc.c | 4 +- drivers/staging/lustre/lustre/ptlrpc/niobuf.c | 16 +- .../staging/lustre/lustre/ptlrpc/pack_generic.c | 59 +- drivers/staging/lustre/lustre/ptlrpc/pinger.c | 65 -- drivers/staging/lustre/lustre/ptlrpc/ptlrpcd.c | 44 +- drivers/staging/lustre/lustre/ptlrpc/wiretest.c | 60 +- 99 files changed, 3043 insertions(+), 1793 deletions(-) delete mode 100644 drivers/staging/lustre/lustre/include/lu_target.h create mode 100644 drivers/staging/lustre/lustre/llite/xattr_cache.c delete mode 100644 drivers/staging/lustre/lustre/ptlrpc/llog_server.c -- 1.7.9.5 ^ permalink raw reply [flat|nested] 6+ messages in thread
* [PATCH 01/40] staging/lustre/llite: restore ll_fiemap 2013-11-14 16:13 Peng Tao @ 2013-11-14 16:13 ` Peng Tao 0 siblings, 0 replies; 6+ messages in thread From: Peng Tao @ 2013-11-14 16:13 UTC (permalink / raw) To: Greg Kroah-Hartman; +Cc: linux-kernel, Peng Tao, Peng Tao, Andreas Dilger From: Peng Tao <tao.peng@emc.com> It was removed by coan by mistake when first porting the code. Signed-off-by: Peng Tao <bergwolf@gmail.com> Signed-off-by: Andreas Dilger <andreas.dilger@intel.com> --- drivers/staging/lustre/lustre/llite/file.c | 33 ++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) diff --git a/drivers/staging/lustre/lustre/llite/file.c b/drivers/staging/lustre/lustre/llite/file.c index fb85a58..c5b721c 100644 --- a/drivers/staging/lustre/lustre/llite/file.c +++ b/drivers/staging/lustre/lustre/llite/file.c @@ -2628,6 +2628,38 @@ int ll_getattr(struct vfsmount *mnt, struct dentry *de, struct kstat *stat) return ll_getattr_it(mnt, de, &it, stat); } +int ll_fiemap(struct inode *inode, struct fiemap_extent_info *fieinfo, + __u64 start, __u64 len) +{ + int rc; + size_t num_bytes; + struct ll_user_fiemap *fiemap; + unsigned int extent_count = fieinfo->fi_extents_max; + + num_bytes = sizeof(*fiemap) + (extent_count * + sizeof(struct ll_fiemap_extent)); + OBD_ALLOC_LARGE(fiemap, num_bytes); + + if (fiemap == NULL) + return -ENOMEM; + + fiemap->fm_flags = fieinfo->fi_flags; + fiemap->fm_extent_count = fieinfo->fi_extents_max; + fiemap->fm_start = start; + fiemap->fm_length = len; + memcpy(&fiemap->fm_extents[0], fieinfo->fi_extents_start, + sizeof(struct ll_fiemap_extent)); + + rc = ll_do_fiemap(inode, fiemap, num_bytes); + + fieinfo->fi_flags = fiemap->fm_flags; + fieinfo->fi_extents_mapped = fiemap->fm_mapped_extents; + memcpy(fieinfo->fi_extents_start, &fiemap->fm_extents[0], + fiemap->fm_mapped_extents * sizeof(struct ll_fiemap_extent)); + + OBD_FREE_LARGE(fiemap, num_bytes); + return rc; +} struct posix_acl * ll_get_acl(struct inode *inode, int type) { @@ -2740,6 +2772,7 @@ struct inode_operations ll_file_inode_operations = { .getxattr = ll_getxattr, .listxattr = ll_listxattr, .removexattr = ll_removexattr, + .fiemap = ll_fiemap, .get_acl = ll_get_acl, }; -- 1.7.9.5 ^ permalink raw reply related [flat|nested] 6+ messages in thread
end of thread, other threads:[~2013-11-14 16:14 UTC | newest] Thread overview: 6+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2013-11-14 16:02 [PATCH 00/40] staging/lustre: patch bomb 1 Peng Tao 2013-11-14 16:02 ` [PATCH 01/40] staging/lustre/llite: restore ll_fiemap Peng Tao 2013-11-14 16:02 ` [PATCH 02/40] staging/lustre: remove lu_target.h Peng Tao 2013-11-14 16:02 ` [PATCH 03/40] staging/lustre: remove llog_server.c Peng Tao 2013-11-14 16:12 ` [PATCH 00/40] staging/lustre: patch bomb 1 Peng Tao -- strict thread matches above, loose matches on Subject: below -- 2013-11-14 16:13 Peng Tao 2013-11-14 16:13 ` [PATCH 01/40] staging/lustre/llite: restore ll_fiemap Peng Tao
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).