public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
* [PATCH 00/10] Catchup lustre fixes
@ 2014-08-15 16:48 Oleg Drokin
  2014-08-15 16:48 ` [PATCH 01/10] staging/lustre/llite: check for integer overflow in hsm user request Oleg Drokin
                   ` (9 more replies)
  0 siblings, 10 replies; 18+ messages in thread
From: Oleg Drokin @ 2014-08-15 16:48 UTC (permalink / raw)
  To: Greg Kroah-Hartman, linux-kernel, devel; +Cc: Oleg Drokin

In this batch there are eight recent bugfixes to lustre client,
also adds Lustre MAINTAINERS entry and a bit of documention
in Documentation.filesystems with some basic info.

Patch #4 generates checkpatch warning about to long split message,
but it is genuinely long and won't fit into 80 columns considering indenting
and such.

Please consider.

Fan Yong (1):
  staging/lustre/ldlm: drop redundant ibits lock interoperability check

Frank Zago (1):
  staging/lustre/llite: optimize ll_fid2path()

John L. Hammond (3):
  staging/lustre/mdc: cleanup intent if mdc_finish_enqueue() fails
  staging/lustre/clio: reorder initialization in cl_req_alloc()
  staging/lustre/llite: hold inode mutex around ll_setattr_raw()

Nathaniel Clark (1):
  staging/lustre/llite: check for integer overflow in hsm user request

Oleg Drokin (3):
  staging/lustre/llite: Fix integer overflow in ll_fid2path
  lustre: Add MAINTAINERS entry
  lustre: Add some basic documentation

Paul Cassella (1):
  staging/lustre/llite: Make sure ft_flags is valid

 Documentation/filesystems/lustre.txt               | 87 ++++++++++++++++++++++
 MAINTAINERS                                        |  8 ++
 .../lustre/lustre/include/lustre/lustre_user.h     | 23 ++++--
 .../staging/lustre/lustre/include/obd_support.h    |  1 +
 drivers/staging/lustre/lustre/ldlm/ldlm_lock.c     | 50 ++-----------
 drivers/staging/lustre/lustre/ldlm/ldlm_request.c  | 15 +---
 drivers/staging/lustre/lustre/llite/dir.c          |  4 +-
 drivers/staging/lustre/lustre/llite/file.c         | 41 +++++-----
 .../staging/lustre/lustre/llite/llite_internal.h   |  6 +-
 drivers/staging/lustre/lustre/llite/llite_mmap.c   |  8 +-
 drivers/staging/lustre/lustre/llite/vvp_io.c       |  1 +
 drivers/staging/lustre/lustre/mdc/mdc_locks.c      |  5 ++
 drivers/staging/lustre/lustre/obdclass/cl_io.c     |  7 +-
 drivers/staging/lustre/lustre/ptlrpc/import.c      | 15 +++-
 14 files changed, 180 insertions(+), 91 deletions(-)
 create mode 100644 Documentation/filesystems/lustre.txt

-- 
1.9.3


^ permalink raw reply	[flat|nested] 18+ messages in thread

* [PATCH 01/10] staging/lustre/llite: check for integer overflow in hsm user request
  2014-08-15 16:48 [PATCH 00/10] Catchup lustre fixes Oleg Drokin
@ 2014-08-15 16:48 ` Oleg Drokin
  2014-08-15 16:48 ` [PATCH 02/10] staging/lustre/mdc: cleanup intent if mdc_finish_enqueue() fails Oleg Drokin
                   ` (8 subsequent siblings)
  9 siblings, 0 replies; 18+ messages in thread
From: Oleg Drokin @ 2014-08-15 16:48 UTC (permalink / raw)
  To: Greg Kroah-Hartman, linux-kernel, devel; +Cc: Nathaniel Clark, Oleg Drokin

From: Nathaniel Clark <nathaniel.l.clark@intel.com>

Check to make sure total size of request does not overflow when
calculated.  Return -1 from hur_len() if it does overflow.

Signed-off-by: Nathaniel Clark <nathaniel.l.clark@intel.com>
Reviewed-on: http://review.whamcloud.com/10615
Intel-bug-id: https://jira.hpdd.intel.com/browse/LU-4984
Reviewed-by: Andreas Dilger <andreas.dilger@intel.com>
Reviewed-by: John L. Hammond <john.hammond@intel.com>
Signed-off-by: Oleg Drokin <oleg.drokin@intel.com>
---
 .../lustre/lustre/include/lustre/lustre_user.h     | 23 +++++++++++++++++-----
 drivers/staging/lustre/lustre/llite/dir.c          |  4 +++-
 2 files changed, 21 insertions(+), 6 deletions(-)

diff --git a/drivers/staging/lustre/lustre/include/lustre/lustre_user.h b/drivers/staging/lustre/lustre/include/lustre/lustre_user.h
index a69b27a..4c1b3cb 100644
--- a/drivers/staging/lustre/lustre/include/lustre/lustre_user.h
+++ b/drivers/staging/lustre/lustre/include/lustre/lustre_user.h
@@ -997,12 +997,25 @@ static inline void *hur_data(struct hsm_user_request *hur)
 	return &(hur->hur_user_item[hur->hur_request.hr_itemcount]);
 }
 
-/** Compute the current length of the provided hsm_user_request. */
-static inline int hur_len(struct hsm_user_request *hur)
+/**
+ * Compute the current length of the provided hsm_user_request.  This returns -1
+ * instead of an errno because ssize_t is defined to be only [ -1, SSIZE_MAX ]
+ *
+ * return -1 on bounds check error.
+ */
+static inline ssize_t hur_len(struct hsm_user_request *hur)
 {
-	return offsetof(struct hsm_user_request,
-			hur_user_item[hur->hur_request.hr_itemcount]) +
-		hur->hur_request.hr_data_len;
+	__u64	size;
+
+	/* can't overflow a __u64 since hr_itemcount is only __u32 */
+	size = offsetof(struct hsm_user_request, hur_user_item[0]) +
+		(__u64)hur->hur_request.hr_itemcount *
+		sizeof(hur->hur_user_item[0]) + hur->hur_request.hr_data_len;
+
+	if (size != (ssize_t)size)
+		return -1;
+
+	return size;
 }
 
 /****** HSM RPCs to copytool *****/
diff --git a/drivers/staging/lustre/lustre/llite/dir.c b/drivers/staging/lustre/lustre/llite/dir.c
index efa2faf..de5892c 100644
--- a/drivers/staging/lustre/lustre/llite/dir.c
+++ b/drivers/staging/lustre/lustre/llite/dir.c
@@ -1787,7 +1787,7 @@ out_quotactl:
 		return ll_fid2path(inode, (void *)arg);
 	case LL_IOC_HSM_REQUEST: {
 		struct hsm_user_request	*hur;
-		int			 totalsize;
+		ssize_t			 totalsize;
 
 		OBD_ALLOC_PTR(hur);
 		if (hur == NULL)
@@ -1802,6 +1802,8 @@ out_quotactl:
 		/* Compute the whole struct size */
 		totalsize = hur_len(hur);
 		OBD_FREE_PTR(hur);
+		if (totalsize < 0)
+			return -E2BIG;
 
 		/* Final size will be more than double totalsize */
 		if (totalsize >= MDS_MAXREQSIZE / 3)
-- 
1.9.3


^ permalink raw reply related	[flat|nested] 18+ messages in thread

* [PATCH 02/10] staging/lustre/mdc: cleanup intent if mdc_finish_enqueue() fails
  2014-08-15 16:48 [PATCH 00/10] Catchup lustre fixes Oleg Drokin
  2014-08-15 16:48 ` [PATCH 01/10] staging/lustre/llite: check for integer overflow in hsm user request Oleg Drokin
@ 2014-08-15 16:48 ` Oleg Drokin
  2014-08-15 16:48 ` [PATCH 03/10] staging/lustre/llite: Make sure ft_flags is valid Oleg Drokin
                   ` (7 subsequent siblings)
  9 siblings, 0 replies; 18+ messages in thread
From: Oleg Drokin @ 2014-08-15 16:48 UTC (permalink / raw)
  To: Greg Kroah-Hartman, linux-kernel, devel; +Cc: John L. Hammond, Oleg Drokin

From: "John L. Hammond" <john.hammond@intel.com>

In mdc_enqueue() clear the lock handle, lock mode, and request stored
in the lookup intent if mdc_finish_enqueue() fails.

Signed-off-by: John L. Hammond <john.hammond@intel.com>
Reviewed-on: http://review.whamcloud.com/10963
Intel-bug-id: https://jira.hpdd.intel.com/browse/LU-5289
Reviewed-by: Lai Siyao <lai.siyao@intel.com>
Signed-off-by: Oleg Drokin <oleg.drokin@intel.com>
---
 drivers/staging/lustre/lustre/mdc/mdc_locks.c | 5 +++++
 1 file changed, 5 insertions(+)

diff --git a/drivers/staging/lustre/lustre/mdc/mdc_locks.c b/drivers/staging/lustre/lustre/mdc/mdc_locks.c
index c64a38e..d02bf31 100644
--- a/drivers/staging/lustre/lustre/mdc/mdc_locks.c
+++ b/drivers/staging/lustre/lustre/mdc/mdc_locks.c
@@ -944,7 +944,12 @@ resend:
 			memset(lockh, 0, sizeof(*lockh));
 		}
 		ptlrpc_req_finished(req);
+
+		it->d.lustre.it_lock_handle = 0;
+		it->d.lustre.it_lock_mode = 0;
+		it->d.lustre.it_data = NULL;
 	}
+
 	return rc;
 }
 
-- 
1.9.3


^ permalink raw reply related	[flat|nested] 18+ messages in thread

* [PATCH 03/10] staging/lustre/llite: Make sure ft_flags is valid
  2014-08-15 16:48 [PATCH 00/10] Catchup lustre fixes Oleg Drokin
  2014-08-15 16:48 ` [PATCH 01/10] staging/lustre/llite: check for integer overflow in hsm user request Oleg Drokin
  2014-08-15 16:48 ` [PATCH 02/10] staging/lustre/mdc: cleanup intent if mdc_finish_enqueue() fails Oleg Drokin
@ 2014-08-15 16:48 ` Oleg Drokin
  2014-08-15 16:48 ` [PATCH 04/10] staging/lustre/ldlm: drop redundant ibits lock interoperability check Oleg Drokin
                   ` (6 subsequent siblings)
  9 siblings, 0 replies; 18+ messages in thread
From: Oleg Drokin @ 2014-08-15 16:48 UTC (permalink / raw)
  To: Greg Kroah-Hartman, linux-kernel, devel
  Cc: Paul Cassella, Patrick Farrell, Oleg Drokin

From: Paul Cassella <cassella@cray.com>

In ll_fault0, the 'fault' struct is mostly cleared before the call to
cl_io_loop, but ft_flags is not reset. It is ordinarily set by
the call to filemap_fault in vvp_io_kernel_fault, but if Lustre
returns before calling filemap_fault, it still has the old value of
ft_flags.

ll_fault0 will then consume the ft_flags field. If it has the
VM_FAULT_RETRY bit set, it will be used as ll_fault0() and
ll_fault()'s return value.

This is a problem when VM_FAULT_RETRY is in ft_flags:
When fault/filemap_fault return with that flag set, they have already
released the mmap semaphore, and do_page_fault does not need to
release it.
Incorrectly returning this flag from ll_fault means mmap_sem
is not upped in the kernel's do_page_fault().

In addition to clearing ft_flags, this patch does not use it unless
it is valid.  It's potentially misleading to return ft_flags in
"fault_ret" if ft_flags has not been set by filemap_fault.

This adds clarity, but does not change the current behavior:
When not valid, ft_flags is replaced by fault_ret, which is zero,
as is ft_flags when not set by filemap_fault.

Signed-off-by: Patrick Farrell <paf@cray.com>
Reviewed-on: http://review.whamcloud.com/10956
Intel-bug-id: https://jira.hpdd.intel.com/browse/LU-5291
Reviewed-by: Bobi Jam <bobijam@gmail.com>
Reviewed-by: Jinshan Xiong <jinshan.xiong@intel.com>
Signed-off-by: Oleg Drokin <oleg.drokin@intel.com>
---
 drivers/staging/lustre/lustre/llite/llite_internal.h | 4 ++++
 drivers/staging/lustre/lustre/llite/llite_mmap.c     | 8 +++++++-
 drivers/staging/lustre/lustre/llite/vvp_io.c         | 1 +
 3 files changed, 12 insertions(+), 1 deletion(-)

diff --git a/drivers/staging/lustre/lustre/llite/llite_internal.h b/drivers/staging/lustre/lustre/llite/llite_internal.h
index 634ffa6..684405e 100644
--- a/drivers/staging/lustre/lustre/llite/llite_internal.h
+++ b/drivers/staging/lustre/lustre/llite/llite_internal.h
@@ -894,6 +894,10 @@ struct vvp_io {
 				 * fault API used bitflags for return code.
 				 */
 				unsigned int    ft_flags;
+				/**
+				 * check that flags are from filemap_fault
+				 */
+				bool		ft_flags_valid;
 			} fault;
 		} fault;
 	} u;
diff --git a/drivers/staging/lustre/lustre/llite/llite_mmap.c b/drivers/staging/lustre/lustre/llite/llite_mmap.c
index 7dae610..5916648 100644
--- a/drivers/staging/lustre/lustre/llite/llite_mmap.c
+++ b/drivers/staging/lustre/lustre/llite/llite_mmap.c
@@ -310,10 +310,16 @@ static int ll_fault0(struct vm_area_struct *vma, struct vm_fault *vmf)
 		vio->u.fault.ft_vma       = vma;
 		vio->u.fault.ft_vmpage    = NULL;
 		vio->u.fault.fault.ft_vmf = vmf;
+		vio->u.fault.fault.ft_flags = 0;
+		vio->u.fault.fault.ft_flags_valid = 0;
 
 		result = cl_io_loop(env, io);
 
-		fault_ret = vio->u.fault.fault.ft_flags;
+		/* ft_flags are only valid if we reached
+		 * the call to filemap_fault */
+		if (vio->u.fault.fault.ft_flags_valid)
+			fault_ret = vio->u.fault.fault.ft_flags;
+
 		vmpage = vio->u.fault.ft_vmpage;
 		if (result != 0 && vmpage != NULL) {
 			page_cache_release(vmpage);
diff --git a/drivers/staging/lustre/lustre/llite/vvp_io.c b/drivers/staging/lustre/lustre/llite/vvp_io.c
index a4117d6..fd24874 100644
--- a/drivers/staging/lustre/lustre/llite/vvp_io.c
+++ b/drivers/staging/lustre/lustre/llite/vvp_io.c
@@ -615,6 +615,7 @@ static int vvp_io_kernel_fault(struct vvp_fault_io *cfio)
 	struct vm_fault *vmf = cfio->fault.ft_vmf;
 
 	cfio->fault.ft_flags = filemap_fault(cfio->ft_vma, vmf);
+	cfio->fault.ft_flags_valid = 1;
 
 	if (vmf->page) {
 		CDEBUG(D_PAGE,
-- 
1.9.3


^ permalink raw reply related	[flat|nested] 18+ messages in thread

* [PATCH 04/10] staging/lustre/ldlm: drop redundant ibits lock interoperability check
  2014-08-15 16:48 [PATCH 00/10] Catchup lustre fixes Oleg Drokin
                   ` (2 preceding siblings ...)
  2014-08-15 16:48 ` [PATCH 03/10] staging/lustre/llite: Make sure ft_flags is valid Oleg Drokin
@ 2014-08-15 16:48 ` Oleg Drokin
  2014-08-15 16:48 ` [PATCH 05/10] staging/lustre/clio: reorder initialization in cl_req_alloc() Oleg Drokin
                   ` (5 subsequent siblings)
  9 siblings, 0 replies; 18+ messages in thread
From: Oleg Drokin @ 2014-08-15 16:48 UTC (permalink / raw)
  To: Greg Kroah-Hartman, linux-kernel, devel; +Cc: Fan Yong, Oleg Drokin

From: Fan Yong <fan.yong@intel.com>

In very old release (older than Lustre-1.8), if the client talks with
the server that does not support ibits lock, then the client needs to
convert it as plain lock. Such interoperability check and convertion
is out of date for a long time. Drop it.

Signed-off-by: Fan Yong <fan.yong@intel.com>
Reviewed-on: http://review.whamcloud.com/11004
Intel-bug-id: https://jira.hpdd.intel.com/browse/LU-4971
Reviewed-by: Andreas Dilger <andreas.dilger@intel.com>
Reviewed-by: wangdi <di.wang@intel.com>
Signed-off-by: Oleg Drokin <oleg.drokin@intel.com>
---
 .../staging/lustre/lustre/include/obd_support.h    |  1 +
 drivers/staging/lustre/lustre/ldlm/ldlm_lock.c     | 50 +++-------------------
 drivers/staging/lustre/lustre/ldlm/ldlm_request.c  | 15 +------
 drivers/staging/lustre/lustre/ptlrpc/import.c      | 15 +++++--
 4 files changed, 19 insertions(+), 62 deletions(-)

diff --git a/drivers/staging/lustre/lustre/include/obd_support.h b/drivers/staging/lustre/lustre/include/obd_support.h
index 92c8992..874606a 100644
--- a/drivers/staging/lustre/lustre/include/obd_support.h
+++ b/drivers/staging/lustre/lustre/include/obd_support.h
@@ -402,6 +402,7 @@ int obd_alloc_fail(const void *ptr, const char *name, const char *type,
 #define OBD_FAIL_TGT_LAST_REPLAY	 0x710
 #define OBD_FAIL_TGT_CLIENT_ADD	  0x711
 #define OBD_FAIL_TGT_RCVG_FLAG	   0x712
+#define OBD_FAIL_TGT_DELAY_CONDITIONAL	 0x713
 
 #define OBD_FAIL_MDC_REVALIDATE_PAUSE    0x800
 #define OBD_FAIL_MDC_ENQUEUE_PAUSE       0x801
diff --git a/drivers/staging/lustre/lustre/ldlm/ldlm_lock.c b/drivers/staging/lustre/lustre/ldlm/ldlm_lock.c
index d022666..3143222 100644
--- a/drivers/staging/lustre/lustre/ldlm/ldlm_lock.c
+++ b/drivers/staging/lustre/lustre/ldlm/ldlm_lock.c
@@ -613,50 +613,12 @@ EXPORT_SYMBOL(__ldlm_handle2lock);
  */
 void ldlm_lock2desc(struct ldlm_lock *lock, struct ldlm_lock_desc *desc)
 {
-	struct obd_export *exp = lock->l_export ?: lock->l_conn_export;
-
-	/* INODEBITS_INTEROP: If the other side does not support
-	 * inodebits, reply with a plain lock descriptor. */
-	if ((lock->l_resource->lr_type == LDLM_IBITS) &&
-	    (exp && !(exp_connect_flags(exp) & OBD_CONNECT_IBITS))) {
-		/* Make sure all the right bits are set in this lock we
-		   are going to pass to client */
-		LASSERTF(lock->l_policy_data.l_inodebits.bits ==
-			 (MDS_INODELOCK_LOOKUP | MDS_INODELOCK_UPDATE |
-			  MDS_INODELOCK_LAYOUT),
-			 "Inappropriate inode lock bits during conversion %llu\n",
-			 lock->l_policy_data.l_inodebits.bits);
-
-		ldlm_res2desc(lock->l_resource, &desc->l_resource);
-		desc->l_resource.lr_type = LDLM_PLAIN;
-
-		/* Convert "new" lock mode to something old client can
-		   understand */
-		if ((lock->l_req_mode == LCK_CR) ||
-		    (lock->l_req_mode == LCK_CW))
-			desc->l_req_mode = LCK_PR;
-		else
-			desc->l_req_mode = lock->l_req_mode;
-		if ((lock->l_granted_mode == LCK_CR) ||
-		    (lock->l_granted_mode == LCK_CW)) {
-			desc->l_granted_mode = LCK_PR;
-		} else {
-			/* We never grant PW/EX locks to clients */
-			LASSERT((lock->l_granted_mode != LCK_PW) &&
-				(lock->l_granted_mode != LCK_EX));
-			desc->l_granted_mode = lock->l_granted_mode;
-		}
-
-		/* We do not copy policy here, because there is no
-		   policy for plain locks */
-	} else {
-		ldlm_res2desc(lock->l_resource, &desc->l_resource);
-		desc->l_req_mode = lock->l_req_mode;
-		desc->l_granted_mode = lock->l_granted_mode;
-		ldlm_convert_policy_to_wire(lock->l_resource->lr_type,
-					    &lock->l_policy_data,
-					    &desc->l_policy_data);
-	}
+	ldlm_res2desc(lock->l_resource, &desc->l_resource);
+	desc->l_req_mode = lock->l_req_mode;
+	desc->l_granted_mode = lock->l_granted_mode;
+	ldlm_convert_policy_to_wire(lock->l_resource->lr_type,
+				    &lock->l_policy_data,
+				    &desc->l_policy_data);
 }
 EXPORT_SYMBOL(ldlm_lock2desc);
 
diff --git a/drivers/staging/lustre/lustre/ldlm/ldlm_request.c b/drivers/staging/lustre/lustre/ldlm/ldlm_request.c
index 8867dc1..37b8608 100644
--- a/drivers/staging/lustre/lustre/ldlm/ldlm_request.c
+++ b/drivers/staging/lustre/lustre/ldlm/ldlm_request.c
@@ -876,21 +876,8 @@ int ldlm_cli_enqueue(struct obd_export *exp, struct ptlrpc_request **reqp,
 		/* for the local lock, add the reference */
 		ldlm_lock_addref_internal(lock, einfo->ei_mode);
 		ldlm_lock2handle(lock, lockh);
-		if (policy != NULL) {
-			/* INODEBITS_INTEROP: If the server does not support
-			 * inodebits, we will request a plain lock in the
-			 * descriptor (ldlm_lock2desc() below) but use an
-			 * inodebits lock internally with both bits set.
-			 */
-			if (einfo->ei_type == LDLM_IBITS &&
-			    !(exp_connect_flags(exp) &
-			      OBD_CONNECT_IBITS))
-				lock->l_policy_data.l_inodebits.bits =
-					MDS_INODELOCK_LOOKUP |
-					MDS_INODELOCK_UPDATE;
-			else
+		if (policy != NULL)
 				lock->l_policy_data = *policy;
-		}
 
 		if (einfo->ei_type == LDLM_EXTENT)
 			lock->l_req_extent = policy->l_extent;
diff --git a/drivers/staging/lustre/lustre/ptlrpc/import.c b/drivers/staging/lustre/lustre/ptlrpc/import.c
index f522fc5..771b213 100644
--- a/drivers/staging/lustre/lustre/ptlrpc/import.c
+++ b/drivers/staging/lustre/lustre/ptlrpc/import.c
@@ -1024,10 +1024,17 @@ finish:
 
 		spin_unlock(&imp->imp_lock);
 
-		if (!ocd->ocd_ibits_known &&
-		    ocd->ocd_connect_flags & OBD_CONNECT_IBITS)
-			CERROR("Inodebits aware server returned zero compatible"
-			       " bits?\n");
+		if ((imp->imp_connect_flags_orig & OBD_CONNECT_IBITS) &&
+		    !(ocd->ocd_connect_flags & OBD_CONNECT_IBITS)) {
+			LCONSOLE_WARN("%s: MDS %s does not support ibits "
+				      "lock, either very old or invalid: "
+				      "requested %llx, replied %llx\n",
+				      imp->imp_obd->obd_name,
+				      imp->imp_connection->c_remote_uuid.uuid,
+				      imp->imp_connect_flags_orig,
+				      ocd->ocd_connect_flags);
+			GOTO(out, rc = -EPROTO);
+		}
 
 		if ((ocd->ocd_connect_flags & OBD_CONNECT_VERSION) &&
 		    (ocd->ocd_version > LUSTRE_VERSION_CODE +
-- 
1.9.3


^ permalink raw reply related	[flat|nested] 18+ messages in thread

* [PATCH 05/10] staging/lustre/clio: reorder initialization in cl_req_alloc()
  2014-08-15 16:48 [PATCH 00/10] Catchup lustre fixes Oleg Drokin
                   ` (3 preceding siblings ...)
  2014-08-15 16:48 ` [PATCH 04/10] staging/lustre/ldlm: drop redundant ibits lock interoperability check Oleg Drokin
@ 2014-08-15 16:48 ` Oleg Drokin
  2014-08-15 16:48 ` [PATCH 06/10] staging/lustre/llite: hold inode mutex around ll_setattr_raw() Oleg Drokin
                   ` (4 subsequent siblings)
  9 siblings, 0 replies; 18+ messages in thread
From: Oleg Drokin @ 2014-08-15 16:48 UTC (permalink / raw)
  To: Greg Kroah-Hartman, linux-kernel, devel; +Cc: John L. Hammond, Oleg Drokin

From: "John L. Hammond" <john.hammond@intel.com>

In cl_req_alloc() ensure that the list heads crq_pages and crq_layers
have been initialized before passing the request to
cl_req_completion(). This fixes an oops in the error path.

Signed-off-by: John L. Hammond <john.hammond@intel.com>
Reviewed-on: http://review.whamcloud.com/11009
Intel-bug-id: https://jira.hpdd.intel.com/browse/LU-5290
Reviewed-by: Bobi Jam <bobijam@gmail.com>
Reviewed-by: Jinshan Xiong <jinshan.xiong@intel.com>
Signed-off-by: Oleg Drokin <oleg.drokin@intel.com>
---
 drivers/staging/lustre/lustre/obdclass/cl_io.c | 7 ++++---
 1 file changed, 4 insertions(+), 3 deletions(-)

diff --git a/drivers/staging/lustre/lustre/obdclass/cl_io.c b/drivers/staging/lustre/lustre/obdclass/cl_io.c
index 6870ee8..4265821 100644
--- a/drivers/staging/lustre/lustre/obdclass/cl_io.c
+++ b/drivers/staging/lustre/lustre/obdclass/cl_io.c
@@ -1452,12 +1452,13 @@ struct cl_req *cl_req_alloc(const struct lu_env *env, struct cl_page *page,
 	if (req != NULL) {
 		int result;
 
+		req->crq_type = crt;
+		INIT_LIST_HEAD(&req->crq_pages);
+		INIT_LIST_HEAD(&req->crq_layers);
+
 		OBD_ALLOC(req->crq_o, nr_objects * sizeof(req->crq_o[0]));
 		if (req->crq_o != NULL) {
 			req->crq_nrobjs = nr_objects;
-			req->crq_type = crt;
-			INIT_LIST_HEAD(&req->crq_pages);
-			INIT_LIST_HEAD(&req->crq_layers);
 			result = cl_req_init(env, req, page);
 		} else
 			result = -ENOMEM;
-- 
1.9.3


^ permalink raw reply related	[flat|nested] 18+ messages in thread

* [PATCH 06/10] staging/lustre/llite: hold inode mutex around ll_setattr_raw()
  2014-08-15 16:48 [PATCH 00/10] Catchup lustre fixes Oleg Drokin
                   ` (4 preceding siblings ...)
  2014-08-15 16:48 ` [PATCH 05/10] staging/lustre/clio: reorder initialization in cl_req_alloc() Oleg Drokin
@ 2014-08-15 16:48 ` Oleg Drokin
  2014-08-15 16:48 ` [PATCH 07/10] staging/lustre/llite: optimize ll_fid2path() Oleg Drokin
                   ` (3 subsequent siblings)
  9 siblings, 0 replies; 18+ messages in thread
From: Oleg Drokin @ 2014-08-15 16:48 UTC (permalink / raw)
  To: Greg Kroah-Hartman, linux-kernel, devel; +Cc: John L. Hammond, Oleg Drokin

From: "John L. Hammond" <john.hammond@intel.com>

ll_setattr_raw() expects to be called with the inode mutex held so do
when calling it from ll_hsm_import().

Signed-off-by: John L. Hammond <john.hammond@intel.com>
Reviewed-on: http://review.whamcloud.com/11349
Intel-bug-id: https://jira.hpdd.intel.com/browse/LU-5456
Reviewed-by: Jinshan Xiong <jinshan.xiong@intel.com>
Reviewed-by: Faccini Bruno <bruno.faccini@intel.com>
Signed-off-by: Oleg Drokin <oleg.drokin@intel.com>
---
 drivers/staging/lustre/lustre/llite/file.c | 4 ++++
 1 file changed, 4 insertions(+)

diff --git a/drivers/staging/lustre/lustre/llite/file.c b/drivers/staging/lustre/lustre/llite/file.c
index fd1b75a3..084fb92 100644
--- a/drivers/staging/lustre/lustre/llite/file.c
+++ b/drivers/staging/lustre/lustre/llite/file.c
@@ -2116,10 +2116,14 @@ static int ll_hsm_import(struct inode *inode, struct file *file,
 			 ATTR_MTIME | ATTR_MTIME_SET |
 			 ATTR_ATIME | ATTR_ATIME_SET;
 
+	mutex_lock(&inode->i_mutex);
+
 	rc = ll_setattr_raw(file->f_dentry, attr, true);
 	if (rc == -ENODATA)
 		rc = 0;
 
+	mutex_unlock(&inode->i_mutex);
+
 out:
 	if (hss != NULL)
 		OBD_FREE_PTR(hss);
-- 
1.9.3


^ permalink raw reply related	[flat|nested] 18+ messages in thread

* [PATCH 07/10] staging/lustre/llite: optimize ll_fid2path()
  2014-08-15 16:48 [PATCH 00/10] Catchup lustre fixes Oleg Drokin
                   ` (5 preceding siblings ...)
  2014-08-15 16:48 ` [PATCH 06/10] staging/lustre/llite: hold inode mutex around ll_setattr_raw() Oleg Drokin
@ 2014-08-15 16:48 ` Oleg Drokin
  2014-08-15 16:48 ` [PATCH 08/10] staging/lustre/llite: Fix integer overflow in ll_fid2path Oleg Drokin
                   ` (2 subsequent siblings)
  9 siblings, 0 replies; 18+ messages in thread
From: Oleg Drokin @ 2014-08-15 16:48 UTC (permalink / raw)
  To: Greg Kroah-Hartman, linux-kernel, devel; +Cc: Frank Zago, Oleg Drokin

From: Frank Zago <fzago@cray.com>

The only parameter from userspace that matters is the length of the
buffer. We don't need to allocate then import the whole structure. By
importing only that length, we can save a memory allocation.

Add sparse annotations to that function.

Signed-off-by: frank zago <fzago@cray.com>
Reviewed-on: http://review.whamcloud.com/11167
Intel-bug-id: https://jira.hpdd.intel.com/browse/LU-5389
Reviewed-by: John L. Hammond <john.hammond@intel.com>
Reviewed-by: Andreas Dilger <andreas.dilger@intel.com>
Signed-off-by: Oleg Drokin <oleg.drokin@intel.com>
---
 drivers/staging/lustre/lustre/llite/file.c         | 34 ++++++++++------------
 .../staging/lustre/lustre/llite/llite_internal.h   |  2 +-
 2 files changed, 17 insertions(+), 19 deletions(-)

diff --git a/drivers/staging/lustre/lustre/llite/file.c b/drivers/staging/lustre/lustre/llite/file.c
index 084fb92..d3874e1 100644
--- a/drivers/staging/lustre/lustre/llite/file.c
+++ b/drivers/staging/lustre/lustre/llite/file.c
@@ -1702,37 +1702,35 @@ out:
 	return rc;
 }
 
-int ll_fid2path(struct inode *inode, void *arg)
+int ll_fid2path(struct inode *inode, void __user *arg)
 {
-	struct obd_export	*exp = ll_i2mdexp(inode);
-	struct getinfo_fid2path	*gfout, *gfin;
-	int			 outsize, rc;
+	struct obd_export *exp = ll_i2mdexp(inode);
+	const struct getinfo_fid2path __user *gfin = arg;
+	struct getinfo_fid2path *gfout;
+	u32 pathlen;
+	size_t outsize;
+	int rc;
 
 	if (!capable(CFS_CAP_DAC_READ_SEARCH) &&
 	    !(ll_i2sbi(inode)->ll_flags & LL_SBI_USER_FID2PATH))
 		return -EPERM;
 
-	/* Need to get the buflen */
-	OBD_ALLOC_PTR(gfin);
-	if (gfin == NULL)
-		return -ENOMEM;
-	if (copy_from_user(gfin, arg, sizeof(*gfin))) {
-		OBD_FREE_PTR(gfin);
+	/* Only need to get the buflen */
+	if (get_user(pathlen, &gfin->gf_pathlen))
 		return -EFAULT;
-	}
 
-	outsize = sizeof(*gfout) + gfin->gf_pathlen;
+	outsize = sizeof(*gfout) + pathlen;
+
 	OBD_ALLOC(gfout, outsize);
-	if (gfout == NULL) {
-		OBD_FREE_PTR(gfin);
+	if (gfout == NULL)
 		return -ENOMEM;
-	}
-	memcpy(gfout, gfin, sizeof(*gfout));
-	OBD_FREE_PTR(gfin);
+
+	if (copy_from_user(gfout, arg, sizeof(*gfout)))
+		GOTO(gf_free, rc = -EFAULT);
 
 	/* Call mdc_iocontrol */
 	rc = obd_iocontrol(OBD_IOC_FID2PATH, exp, outsize, gfout, NULL);
-	if (rc)
+	if (rc != 0)
 		GOTO(gf_free, rc);
 
 	if (copy_to_user(arg, gfout, outsize))
diff --git a/drivers/staging/lustre/lustre/llite/llite_internal.h b/drivers/staging/lustre/lustre/llite/llite_internal.h
index 684405e..b42d879 100644
--- a/drivers/staging/lustre/lustre/llite/llite_internal.h
+++ b/drivers/staging/lustre/lustre/llite/llite_internal.h
@@ -775,7 +775,7 @@ int ll_dir_getstripe(struct inode *inode, struct lov_mds_md **lmmp,
 		     int *lmm_size, struct ptlrpc_request **request);
 int ll_fsync(struct file *file, loff_t start, loff_t end, int data);
 int ll_merge_lvb(const struct lu_env *env, struct inode *inode);
-int ll_fid2path(struct inode *inode, void *arg);
+int ll_fid2path(struct inode *inode, void __user *arg);
 int ll_data_version(struct inode *inode, __u64 *data_version, int extent_lock);
 int ll_hsm_release(struct inode *inode);
 
-- 
1.9.3


^ permalink raw reply related	[flat|nested] 18+ messages in thread

* [PATCH 08/10] staging/lustre/llite: Fix integer overflow in ll_fid2path
  2014-08-15 16:48 [PATCH 00/10] Catchup lustre fixes Oleg Drokin
                   ` (6 preceding siblings ...)
  2014-08-15 16:48 ` [PATCH 07/10] staging/lustre/llite: optimize ll_fid2path() Oleg Drokin
@ 2014-08-15 16:48 ` Oleg Drokin
  2014-08-15 16:48 ` [PATCH 09/10] lustre: Add MAINTAINERS entry Oleg Drokin
  2014-08-15 16:48 ` [PATCH 10/10] lustre: Add some basic documentation Oleg Drokin
  9 siblings, 0 replies; 18+ messages in thread
From: Oleg Drokin @ 2014-08-15 16:48 UTC (permalink / raw)
  To: Greg Kroah-Hartman, linux-kernel, devel; +Cc: Oleg Drokin, Oleg Drokin

Reported by Dan Carpenter <dan.carpenter@oracle.com>

outsize = sizeof(*gfout) + gfin->gf_pathlen;

Where outsize is int and gf_pathlen is u32 from userspace
can lead to integer overflowwhere outsize is some small number
less than sizeof(*gfout)

Add a check for pathlen to be of sensical size.

Signed-off-by: Oleg Drokin <oleg.drokin@intel.com>
Reviewed-on: http://review.whamcloud.com/11412
Intel-bug-id: https://jira.hpdd.intel.com/browse/LU-5476
Reviewed-by: Dmitry Eremin <dmitry.eremin@intel.com>
Reviewed-by: John L. Hammond <john.hammond@intel.com>
---
 drivers/staging/lustre/lustre/llite/file.c | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/drivers/staging/lustre/lustre/llite/file.c b/drivers/staging/lustre/lustre/llite/file.c
index d3874e1..4a33638 100644
--- a/drivers/staging/lustre/lustre/llite/file.c
+++ b/drivers/staging/lustre/lustre/llite/file.c
@@ -1719,6 +1719,9 @@ int ll_fid2path(struct inode *inode, void __user *arg)
 	if (get_user(pathlen, &gfin->gf_pathlen))
 		return -EFAULT;
 
+	if (pathlen > PATH_MAX)
+		return -EINVAL;
+
 	outsize = sizeof(*gfout) + pathlen;
 
 	OBD_ALLOC(gfout, outsize);
-- 
1.9.3


^ permalink raw reply related	[flat|nested] 18+ messages in thread

* [PATCH 09/10] lustre: Add MAINTAINERS entry
  2014-08-15 16:48 [PATCH 00/10] Catchup lustre fixes Oleg Drokin
                   ` (7 preceding siblings ...)
  2014-08-15 16:48 ` [PATCH 08/10] staging/lustre/llite: Fix integer overflow in ll_fid2path Oleg Drokin
@ 2014-08-15 16:48 ` Oleg Drokin
  2014-08-17 16:37   ` Greg Kroah-Hartman
  2014-08-15 16:48 ` [PATCH 10/10] lustre: Add some basic documentation Oleg Drokin
  9 siblings, 1 reply; 18+ messages in thread
From: Oleg Drokin @ 2014-08-15 16:48 UTC (permalink / raw)
  To: Greg Kroah-Hartman, linux-kernel, devel; +Cc: Oleg Drokin

Just add the entry with some info.

Signed-off-by: Oleg Drokin <green@linuxhacker.ru>
---
 MAINTAINERS | 8 ++++++++
 1 file changed, 8 insertions(+)

diff --git a/MAINTAINERS b/MAINTAINERS
index 7e2eb4c..369183b 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -8646,6 +8646,14 @@ W:	http://www.lirc.org/
 S:	Odd Fixes
 F:	drivers/staging/media/lirc/
 
+STAGING - LUSTRE PARALLEL FILESYSTEM
+M:	Oleg Drokin <oleg.drokin@intel.com>
+M:	Andreas Dilger <andreas.dilger@intel.com>
+L:	HPDD-discuss@lists.01.org (moderated for non-subscribers)
+W:	http://lustre.opensfs.org/
+S:	Maintained
+F:	drivers/staging/lustre
+
 STAGING - NVIDIA COMPLIANT EMBEDDED CONTROLLER INTERFACE (nvec)
 M:	Julian Andres Klode <jak@jak-linux.org>
 M:	Marc Dietrich <marvin24@gmx.de>
-- 
1.9.3


^ permalink raw reply related	[flat|nested] 18+ messages in thread

* [PATCH 10/10] lustre: Add some basic documentation
  2014-08-15 16:48 [PATCH 00/10] Catchup lustre fixes Oleg Drokin
                   ` (8 preceding siblings ...)
  2014-08-15 16:48 ` [PATCH 09/10] lustre: Add MAINTAINERS entry Oleg Drokin
@ 2014-08-15 16:48 ` Oleg Drokin
  2014-08-17 16:37   ` Greg Kroah-Hartman
  9 siblings, 1 reply; 18+ messages in thread
From: Oleg Drokin @ 2014-08-15 16:48 UTC (permalink / raw)
  To: Greg Kroah-Hartman, linux-kernel, devel; +Cc: Oleg Drokin

This adds Documentation/filesystems/lustre.txt with some
basic information about Lustre and how to use it.

Signed-off-by: Oleg Drokin <green@linuxhacker.ru>
---
 Documentation/filesystems/lustre.txt | 87 ++++++++++++++++++++++++++++++++++++
 1 file changed, 87 insertions(+)
 create mode 100644 Documentation/filesystems/lustre.txt

diff --git a/Documentation/filesystems/lustre.txt b/Documentation/filesystems/lustre.txt
new file mode 100644
index 0000000..cf0ca50
--- /dev/null
+++ b/Documentation/filesystems/lustre.txt
@@ -0,0 +1,87 @@
+Lustre Parallel Filesystem Client
+=================================
+
+The Lustre file system is an open-source, parallel file system
+that supports many requirements of leadership class HPC simulation
+environments.
+Born from from a research project at Carnegie Mellon University,
+the Lustre file system is a widely-used option in HPC.
+The Lustre file system provides a POSIX compliant file system interface,
+can scale to thousands of clients, petabytes of storage and
+hundreds of gigabytes per second of I/O bandwidth.
+
+Unlike shared disk storage cluster filesystems (e.g. OCFS2, GFS, GPFS),
+Lustre has independent Metadata and Data servers that clients can access
+in parallel to maximize performance.
+
+In order to use Lustre client you will need to download lustre client
+tools from
+https://downloads.hpdd.intel.com/public/lustre/latest-feature-release/
+the package name is lustre-client.
+
+You will need to install and configure your Lustre servers separately.
+
+Mount Syntax
+============
+After you installed the lustre-client tools including mount.lustre binary
+you can mount your Lustre filesystem with:
+
+mount -t lustre mgs:/fsname mnt
+
+where mgs is the host name or ip address of your Lustre MGS(management service)
+fsname is the name of the filesystem you would like to mount.
+
+
+Mount Options
+=============
+
+  noflock
+	Disable posix file locking (Applications trying to use
+	the functionality will get ENOSYS)
+
+  localflock
+	Enable local flock support, using only client-local flock
+	(faster, for applications that require flock but do not run
+	 on multiple nodes).
+
+  flock
+	Enable cluster-global posix file locking coherent across all
+	client nodes.
+
+  user_xattr, nouser_xattr
+	Support "user." extended attributes (or not)
+
+  user_fid2path, nouser_fid2path
+	Enable FID to path translation by regular users (or not)
+
+  checksum, nochecksum
+	Verify data consistency on the wire and in memory as it passes
+	between the layers (or not).
+
+  lruresize, nolruresize
+	Allow lock LRU to be controlled by memory pressure on the server
+	(or only 100 (default, controlled by lru_size proc parameter) locks
+	 per CPU per server on this client).
+
+  lazystatfs, nolazystatfs
+	Do not block in statfs() if some of the servers are down.
+
+  32bitapi
+	Shrink inode numbers to fit into 32 bits. This is necessary
+	if you plan to reexport Lustre filesystem from this client via
+	NFSv4.
+
+  verbose, noverbose
+	Enable mount/umount console messages (or not)
+
+More Information
+================
+You can get more information at
+OpenSFS website: http://lustre.opensfs.org/about/
+Intel HPDD wiki: https://wiki.hpdd.intel.com
+
+Out of tree Lustre client and server code is available at:
+http://git.whamcloud.com/fs/lustre-release.git
+
+Latest binary packages:
+http://lustre.opensfs.org/download-lustre/
-- 
1.9.3


^ permalink raw reply related	[flat|nested] 18+ messages in thread

* Re: [PATCH 09/10] lustre: Add MAINTAINERS entry
  2014-08-15 16:48 ` [PATCH 09/10] lustre: Add MAINTAINERS entry Oleg Drokin
@ 2014-08-17 16:37   ` Greg Kroah-Hartman
  2014-08-17 16:47     ` Oleg Drokin
  0 siblings, 1 reply; 18+ messages in thread
From: Greg Kroah-Hartman @ 2014-08-17 16:37 UTC (permalink / raw)
  To: Oleg Drokin; +Cc: linux-kernel, devel

On Fri, Aug 15, 2014 at 12:48:14PM -0400, Oleg Drokin wrote:
> Just add the entry with some info.
> 
> Signed-off-by: Oleg Drokin <green@linuxhacker.ru>
> ---
>  MAINTAINERS | 8 ++++++++
>  1 file changed, 8 insertions(+)
> 
> diff --git a/MAINTAINERS b/MAINTAINERS
> index 7e2eb4c..369183b 100644
> --- a/MAINTAINERS
> +++ b/MAINTAINERS
> @@ -8646,6 +8646,14 @@ W:	http://www.lirc.org/
>  S:	Odd Fixes
>  F:	drivers/staging/media/lirc/
>  
> +STAGING - LUSTRE PARALLEL FILESYSTEM
> +M:	Oleg Drokin <oleg.drokin@intel.com>
> +M:	Andreas Dilger <andreas.dilger@intel.com>
> +L:	HPDD-discuss@lists.01.org (moderated for non-subscribers)

I _really_ hate moderated mailing lists for kernel development stuff.
Why not just use the driverdev mailing list instead?

I note that you didn't even cc: this patch series to that list...

thanks,

greg k-h

^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: [PATCH 10/10] lustre: Add some basic documentation
  2014-08-15 16:48 ` [PATCH 10/10] lustre: Add some basic documentation Oleg Drokin
@ 2014-08-17 16:37   ` Greg Kroah-Hartman
  2014-08-17 16:49     ` Oleg Drokin
  0 siblings, 1 reply; 18+ messages in thread
From: Greg Kroah-Hartman @ 2014-08-17 16:37 UTC (permalink / raw)
  To: Oleg Drokin; +Cc: linux-kernel, devel

On Fri, Aug 15, 2014 at 12:48:15PM -0400, Oleg Drokin wrote:
> This adds Documentation/filesystems/lustre.txt with some
> basic information about Lustre and how to use it.
> 
> Signed-off-by: Oleg Drokin <green@linuxhacker.ru>
> ---
>  Documentation/filesystems/lustre.txt | 87 ++++++++++++++++++++++++++++++++++++

No, don't break out of drivers/staging/lustre/ just yet please.

^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: [PATCH 09/10] lustre: Add MAINTAINERS entry
  2014-08-17 16:37   ` Greg Kroah-Hartman
@ 2014-08-17 16:47     ` Oleg Drokin
  2014-08-18 14:21       ` Dan Carpenter
  2014-08-30 18:51       ` Greg Kroah-Hartman
  0 siblings, 2 replies; 18+ messages in thread
From: Oleg Drokin @ 2014-08-17 16:47 UTC (permalink / raw)
  To: Greg Kroah-Hartman; +Cc: linux-kernel, devel


On Aug 17, 2014, at 12:37 PM, Greg Kroah-Hartman wrote:

> On Fri, Aug 15, 2014 at 12:48:14PM -0400, Oleg Drokin wrote:
>> Just add the entry with some info.
>> 
>> Signed-off-by: Oleg Drokin <green@linuxhacker.ru>
>> ---
>> MAINTAINERS | 8 ++++++++
>> 1 file changed, 8 insertions(+)
>> 
>> diff --git a/MAINTAINERS b/MAINTAINERS
>> index 7e2eb4c..369183b 100644
>> --- a/MAINTAINERS
>> +++ b/MAINTAINERS
>> @@ -8646,6 +8646,14 @@ W:	http://www.lirc.org/
>> S:	Odd Fixes
>> F:	drivers/staging/media/lirc/
>> 
>> +STAGING - LUSTRE PARALLEL FILESYSTEM
>> +M:	Oleg Drokin <oleg.drokin@intel.com>
>> +M:	Andreas Dilger <andreas.dilger@intel.com>
>> +L:	HPDD-discuss@lists.01.org (moderated for non-subscribers)
> 
> I _really_ hate moderated mailing lists for kernel development stuff.
> Why not just use the driverdev mailing list instead?

I guess this could be done if we really need to, but ...

> I note that you didn't even cc: this patch series to that list...

The instructions in the beginning of the file say:
"L: Mailing list that is relevant to this area"
This is the mailing list that is relevant to the area, but we don't really send patches in there,
and because it's premoderated it's not really convenient anyway as you rightly notice.
People can ask other questions they might have bout their problems there, though, and there's
a higher chance that somebody familiar with lustre will read and answer them.

the 'M:' is the send patches to according to the instructions?

The patches are CCed to linux-kernel by most everybody anyway, so do we really need to
spell this out explicitly with an 'L:' line or in some other way?

^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: [PATCH 10/10] lustre: Add some basic documentation
  2014-08-17 16:37   ` Greg Kroah-Hartman
@ 2014-08-17 16:49     ` Oleg Drokin
  2014-08-17 16:53       ` Greg Kroah-Hartman
  0 siblings, 1 reply; 18+ messages in thread
From: Oleg Drokin @ 2014-08-17 16:49 UTC (permalink / raw)
  To: Greg Kroah-Hartman; +Cc: linux-kernel, devel


On Aug 17, 2014, at 12:37 PM, Greg Kroah-Hartman wrote:

> On Fri, Aug 15, 2014 at 12:48:15PM -0400, Oleg Drokin wrote:
>> This adds Documentation/filesystems/lustre.txt with some
>> basic information about Lustre and how to use it.
>> 
>> Signed-off-by: Oleg Drokin <green@linuxhacker.ru>
>> ---
>> Documentation/filesystems/lustre.txt | 87 ++++++++++++++++++++++++++++++++++++
> 
> No, don't break out of drivers/staging/lustre/ just yet please.

Sure, should I just add this somewhere inside drivers/staging/lustre so that it's not lost
and people have some starting info?

^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: [PATCH 10/10] lustre: Add some basic documentation
  2014-08-17 16:49     ` Oleg Drokin
@ 2014-08-17 16:53       ` Greg Kroah-Hartman
  0 siblings, 0 replies; 18+ messages in thread
From: Greg Kroah-Hartman @ 2014-08-17 16:53 UTC (permalink / raw)
  To: Oleg Drokin; +Cc: devel, linux-kernel

On Sun, Aug 17, 2014 at 12:49:30PM -0400, Oleg Drokin wrote:
> 
> On Aug 17, 2014, at 12:37 PM, Greg Kroah-Hartman wrote:
> 
> > On Fri, Aug 15, 2014 at 12:48:15PM -0400, Oleg Drokin wrote:
> >> This adds Documentation/filesystems/lustre.txt with some
> >> basic information about Lustre and how to use it.
> >> 
> >> Signed-off-by: Oleg Drokin <green@linuxhacker.ru>
> >> ---
> >> Documentation/filesystems/lustre.txt | 87 ++++++++++++++++++++++++++++++++++++
> > 
> > No, don't break out of drivers/staging/lustre/ just yet please.
> 
> Sure, should I just add this somewhere inside drivers/staging/lustre so that it's not lost
> and people have some starting info?

That would be great.

thanks,

greg k-h

^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: [PATCH 09/10] lustre: Add MAINTAINERS entry
  2014-08-17 16:47     ` Oleg Drokin
@ 2014-08-18 14:21       ` Dan Carpenter
  2014-08-30 18:51       ` Greg Kroah-Hartman
  1 sibling, 0 replies; 18+ messages in thread
From: Dan Carpenter @ 2014-08-18 14:21 UTC (permalink / raw)
  To: Oleg Drokin; +Cc: Greg Kroah-Hartman, devel, linux-kernel

On Sun, Aug 17, 2014 at 12:47:57PM -0400, Oleg Drokin wrote:
> The patches are CCed to linux-kernel by most everybody anyway, so do we really need to
> spell this out explicitly with an 'L:' line or in some other way?

driver-devel and linux-kernel are CC'd already.  CC'ing linux-kernel is
useless anyway, also.

regards,
dan carpenter

^ permalink raw reply	[flat|nested] 18+ messages in thread

* Re: [PATCH 09/10] lustre: Add MAINTAINERS entry
  2014-08-17 16:47     ` Oleg Drokin
  2014-08-18 14:21       ` Dan Carpenter
@ 2014-08-30 18:51       ` Greg Kroah-Hartman
  1 sibling, 0 replies; 18+ messages in thread
From: Greg Kroah-Hartman @ 2014-08-30 18:51 UTC (permalink / raw)
  To: Oleg Drokin; +Cc: devel, linux-kernel

On Sun, Aug 17, 2014 at 12:47:57PM -0400, Oleg Drokin wrote:
> 
> On Aug 17, 2014, at 12:37 PM, Greg Kroah-Hartman wrote:
> 
> > On Fri, Aug 15, 2014 at 12:48:14PM -0400, Oleg Drokin wrote:
> >> Just add the entry with some info.
> >> 
> >> Signed-off-by: Oleg Drokin <green@linuxhacker.ru>
> >> ---
> >> MAINTAINERS | 8 ++++++++
> >> 1 file changed, 8 insertions(+)
> >> 
> >> diff --git a/MAINTAINERS b/MAINTAINERS
> >> index 7e2eb4c..369183b 100644
> >> --- a/MAINTAINERS
> >> +++ b/MAINTAINERS
> >> @@ -8646,6 +8646,14 @@ W:	http://www.lirc.org/
> >> S:	Odd Fixes
> >> F:	drivers/staging/media/lirc/
> >> 
> >> +STAGING - LUSTRE PARALLEL FILESYSTEM
> >> +M:	Oleg Drokin <oleg.drokin@intel.com>
> >> +M:	Andreas Dilger <andreas.dilger@intel.com>
> >> +L:	HPDD-discuss@lists.01.org (moderated for non-subscribers)
> > 
> > I _really_ hate moderated mailing lists for kernel development stuff.
> > Why not just use the driverdev mailing list instead?
> 
> I guess this could be done if we really need to, but ...
> 
> > I note that you didn't even cc: this patch series to that list...
> 
> The instructions in the beginning of the file say:
> "L: Mailing list that is relevant to this area"
> This is the mailing list that is relevant to the area, but we don't really send patches in there,
> and because it's premoderated it's not really convenient anyway as you rightly notice.
> People can ask other questions they might have bout their problems there, though, and there's
> a higher chance that somebody familiar with lustre will read and answer them.
> 
> the 'M:' is the send patches to according to the instructions?

Yes, this is correct, but watch out, this isn't going to keep patches
from being sent to the driverdevel mailing list and me applying them
directly.

Personally, I'll never cc: your hpdd mailing list, as I get bounces from
it, and don't feel that kernel mailing lists should ever be "closed"
(I run an open kernel mailing list, it can be done, and isn't all that
hard...)

So I'll go apply this, but don't really like it...

greg k-h

^ permalink raw reply	[flat|nested] 18+ messages in thread

end of thread, other threads:[~2014-08-30 18:51 UTC | newest]

Thread overview: 18+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2014-08-15 16:48 [PATCH 00/10] Catchup lustre fixes Oleg Drokin
2014-08-15 16:48 ` [PATCH 01/10] staging/lustre/llite: check for integer overflow in hsm user request Oleg Drokin
2014-08-15 16:48 ` [PATCH 02/10] staging/lustre/mdc: cleanup intent if mdc_finish_enqueue() fails Oleg Drokin
2014-08-15 16:48 ` [PATCH 03/10] staging/lustre/llite: Make sure ft_flags is valid Oleg Drokin
2014-08-15 16:48 ` [PATCH 04/10] staging/lustre/ldlm: drop redundant ibits lock interoperability check Oleg Drokin
2014-08-15 16:48 ` [PATCH 05/10] staging/lustre/clio: reorder initialization in cl_req_alloc() Oleg Drokin
2014-08-15 16:48 ` [PATCH 06/10] staging/lustre/llite: hold inode mutex around ll_setattr_raw() Oleg Drokin
2014-08-15 16:48 ` [PATCH 07/10] staging/lustre/llite: optimize ll_fid2path() Oleg Drokin
2014-08-15 16:48 ` [PATCH 08/10] staging/lustre/llite: Fix integer overflow in ll_fid2path Oleg Drokin
2014-08-15 16:48 ` [PATCH 09/10] lustre: Add MAINTAINERS entry Oleg Drokin
2014-08-17 16:37   ` Greg Kroah-Hartman
2014-08-17 16:47     ` Oleg Drokin
2014-08-18 14:21       ` Dan Carpenter
2014-08-30 18:51       ` Greg Kroah-Hartman
2014-08-15 16:48 ` [PATCH 10/10] lustre: Add some basic documentation Oleg Drokin
2014-08-17 16:37   ` Greg Kroah-Hartman
2014-08-17 16:49     ` Oleg Drokin
2014-08-17 16:53       ` Greg Kroah-Hartman

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox