linux-next.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* linux-next: manual merge of the ceph tree with Linus' tree
@ 2012-07-31  1:58 Stephen Rothwell
  0 siblings, 0 replies; 28+ messages in thread
From: Stephen Rothwell @ 2012-07-31  1:58 UTC (permalink / raw)
  To: Sage Weil; +Cc: linux-next, linux-kernel, Alex Elder

[-- Attachment #1: Type: text/plain, Size: 442 bytes --]

Hi Sage,

Today's linux-next merge of the ceph tree got a conflict in
net/ceph/messenger.c between commit 5bdca4e0768d ("libceph: fix messenger
retry") from Linus' tree and commit ab166d5aa3bc ("libceph: separate
banner and connect writes") from the ceph tree.

I fixed it up (removed the calls to ceph_con_out_kvec_reset()) and can
carry the fix as necessary.
-- 
Cheers,
Stephen Rothwell                    sfr@canb.auug.org.au

[-- Attachment #2: Type: application/pgp-signature, Size: 836 bytes --]

^ permalink raw reply	[flat|nested] 28+ messages in thread
* linux-next: manual merge of the ceph tree with Linus' tree
@ 2023-11-05 22:24 Stephen Rothwell
  0 siblings, 0 replies; 28+ messages in thread
From: Stephen Rothwell @ 2023-11-05 22:24 UTC (permalink / raw)
  To: Jeff Layton, Ilya Dryomov
  Cc: Christian Brauner, Linux Kernel Mailing List,
	Linux Next Mailing List, Xiubo Li

[-- Attachment #1: Type: text/plain, Size: 6972 bytes --]

Hi all,

Today's linux-next merge of the ceph tree got a conflict in:

  fs/ceph/inode.c

between commit:

  c453bdb53534 ("ceph: convert to new timestamp accessors")

from Linus' tree and commit:

  38d46409c463 ("ceph: print cluster fsid and client global_id in all debug logs")

from the ceph tree.

I fixed it up (see below) and can carry the fix as necessary. This
is now fixed as far as linux-next is concerned, but any non trivial
conflicts should be mentioned to your upstream maintainer when your tree
is submitted for merging.  You may also want to consider cooperating
with the maintainer of the conflicting tree to minimise any particularly
complex conflicts.

-- 
Cheers,
Stephen Rothwell

diff --cc fs/ceph/inode.c
index 2e2a303b9e64,b1b92a948a3b..000000000000
--- a/fs/ceph/inode.c
+++ b/fs/ceph/inode.c
@@@ -833,33 -847,29 +847,32 @@@ void ceph_fill_file_time(struct inode *
  		if (ci->i_version == 0 ||
  		    ceph_seq_cmp(time_warp_seq, ci->i_time_warp_seq) > 0) {
  			/* the MDS did a utimes() */
- 			dout("mtime %lld.%09ld -> %lld.%09ld "
- 			     "tw %d -> %d\n",
- 			     inode_get_mtime_sec(inode),
- 			     inode_get_mtime_nsec(inode),
- 			     mtime->tv_sec, mtime->tv_nsec,
- 			     ci->i_time_warp_seq, (int)time_warp_seq);
+ 			doutc(cl, "mtime %lld.%09ld -> %lld.%09ld tw %d -> %d\n",
 -			      inode->i_mtime.tv_sec, inode->i_mtime.tv_nsec,
++			      inode_get_mtime_sec(inode),
++			      inode_get_mtime_nsec(inode),
+ 			      mtime->tv_sec, mtime->tv_nsec,
+ 			      ci->i_time_warp_seq, (int)time_warp_seq);
  
 -			inode->i_mtime = *mtime;
 -			inode->i_atime = *atime;
 +			inode_set_mtime_to_ts(inode, *mtime);
 +			inode_set_atime_to_ts(inode, *atime);
  			ci->i_time_warp_seq = time_warp_seq;
  		} else if (time_warp_seq == ci->i_time_warp_seq) {
 +			struct timespec64	ts;
 +
  			/* nobody did utimes(); take the max */
 -			if (timespec64_compare(mtime, &inode->i_mtime) > 0) {
 +			ts = inode_get_mtime(inode);
 +			if (timespec64_compare(mtime, &ts) > 0) {
- 				dout("mtime %lld.%09ld -> %lld.%09ld inc\n",
- 				     ts.tv_sec, ts.tv_nsec,
- 				     mtime->tv_sec, mtime->tv_nsec);
+ 				doutc(cl, "mtime %lld.%09ld -> %lld.%09ld inc\n",
 -				      inode->i_mtime.tv_sec,
 -				      inode->i_mtime.tv_nsec,
++				      ts.tv_sec, ts.tv_nsec,
+ 				      mtime->tv_sec, mtime->tv_nsec);
 -				inode->i_mtime = *mtime;
 +				inode_set_mtime_to_ts(inode, *mtime);
  			}
 -			if (timespec64_compare(atime, &inode->i_atime) > 0) {
 +			ts = inode_get_atime(inode);
 +			if (timespec64_compare(atime, &ts) > 0) {
- 				dout("atime %lld.%09ld -> %lld.%09ld inc\n",
- 				     ts.tv_sec, ts.tv_nsec,
- 				     atime->tv_sec, atime->tv_nsec);
+ 				doutc(cl, "atime %lld.%09ld -> %lld.%09ld inc\n",
 -				      inode->i_atime.tv_sec,
 -				      inode->i_atime.tv_nsec,
++				      ts.tv_sec, ts.tv_nsec,
+ 				      atime->tv_sec, atime->tv_nsec);
 -				inode->i_atime = *atime;
 +				inode_set_atime_to_ts(inode, *atime);
  			}
  		} else if (issued & CEPH_CAP_FILE_EXCL) {
  			/* we did a utimes(); ignore mds values */
@@@ -2554,22 -2595,21 +2598,22 @@@ retry
  	}
  
  	if (ia_valid & ATTR_ATIME) {
 +		struct timespec64 atime = inode_get_atime(inode);
 +
- 		dout("setattr %p atime %lld.%ld -> %lld.%ld\n", inode,
- 		     atime.tv_sec, atime.tv_nsec,
- 		     attr->ia_atime.tv_sec, attr->ia_atime.tv_nsec);
+ 		doutc(cl, "%p %llx.%llx atime %lld.%ld -> %lld.%ld\n",
 -		      inode, ceph_vinop(inode), inode->i_atime.tv_sec,
 -		      inode->i_atime.tv_nsec, attr->ia_atime.tv_sec,
 -		      attr->ia_atime.tv_nsec);
++		      inode, ceph_vinop(inode), atime.tv_sec, atime.tv_nsec,
++		      attr->ia_atime.tv_sec, attr->ia_atime.tv_nsec);
  		if (issued & CEPH_CAP_FILE_EXCL) {
  			ci->i_time_warp_seq++;
 -			inode->i_atime = attr->ia_atime;
 +			inode_set_atime_to_ts(inode, attr->ia_atime);
  			dirtied |= CEPH_CAP_FILE_EXCL;
  		} else if ((issued & CEPH_CAP_FILE_WR) &&
 -			   timespec64_compare(&inode->i_atime,
 -					    &attr->ia_atime) < 0) {
 -			inode->i_atime = attr->ia_atime;
 +			   timespec64_compare(&atime,
 +					      &attr->ia_atime) < 0) {
 +			inode_set_atime_to_ts(inode, attr->ia_atime);
  			dirtied |= CEPH_CAP_FILE_WR;
  		} else if ((issued & CEPH_CAP_FILE_SHARED) == 0 ||
 -			   !timespec64_equal(&inode->i_atime, &attr->ia_atime)) {
 +			   !timespec64_equal(&atime, &attr->ia_atime)) {
  			ceph_encode_timespec64(&req->r_args.setattr.atime,
  					       &attr->ia_atime);
  			mask |= CEPH_SETATTR_ATIME;
@@@ -2629,21 -2670,21 +2674,21 @@@
  		}
  	}
  	if (ia_valid & ATTR_MTIME) {
 +		struct timespec64 mtime = inode_get_mtime(inode);
 +
- 		dout("setattr %p mtime %lld.%ld -> %lld.%ld\n", inode,
- 		     mtime.tv_sec, mtime.tv_nsec,
- 		     attr->ia_mtime.tv_sec, attr->ia_mtime.tv_nsec);
+ 		doutc(cl, "%p %llx.%llx mtime %lld.%ld -> %lld.%ld\n",
 -		      inode, ceph_vinop(inode), inode->i_mtime.tv_sec,
 -		      inode->i_mtime.tv_nsec, attr->ia_mtime.tv_sec,
 -		      attr->ia_mtime.tv_nsec);
++		      inode, ceph_vinop(inode), mtime.tv_sec, mtime.tv_nsec,
++		      attr->ia_mtime.tv_sec, attr->ia_mtime.tv_nsec);
  		if (issued & CEPH_CAP_FILE_EXCL) {
  			ci->i_time_warp_seq++;
 -			inode->i_mtime = attr->ia_mtime;
 +			inode_set_mtime_to_ts(inode, attr->ia_mtime);
  			dirtied |= CEPH_CAP_FILE_EXCL;
  		} else if ((issued & CEPH_CAP_FILE_WR) &&
 -			   timespec64_compare(&inode->i_mtime,
 -					    &attr->ia_mtime) < 0) {
 -			inode->i_mtime = attr->ia_mtime;
 +			   timespec64_compare(&mtime, &attr->ia_mtime) < 0) {
 +			inode_set_mtime_to_ts(inode, attr->ia_mtime);
  			dirtied |= CEPH_CAP_FILE_WR;
  		} else if ((issued & CEPH_CAP_FILE_SHARED) == 0 ||
 -			   !timespec64_equal(&inode->i_mtime, &attr->ia_mtime)) {
 +			   !timespec64_equal(&mtime, &attr->ia_mtime)) {
  			ceph_encode_timespec64(&req->r_args.setattr.mtime,
  					       &attr->ia_mtime);
  			mask |= CEPH_SETATTR_MTIME;
@@@ -2656,11 -2697,12 +2701,12 @@@
  	if (ia_valid & ATTR_CTIME) {
  		bool only = (ia_valid & (ATTR_SIZE|ATTR_MTIME|ATTR_ATIME|
  					 ATTR_MODE|ATTR_UID|ATTR_GID)) == 0;
- 		dout("setattr %p ctime %lld.%ld -> %lld.%ld (%s)\n", inode,
- 		     inode_get_ctime_sec(inode),
- 		     inode_get_ctime_nsec(inode),
- 		     attr->ia_ctime.tv_sec, attr->ia_ctime.tv_nsec,
- 		     only ? "ctime only" : "ignored");
+ 		doutc(cl, "%p %llx.%llx ctime %lld.%ld -> %lld.%ld (%s)\n",
 -		      inode, ceph_vinop(inode), inode_get_ctime(inode).tv_sec,
 -		      inode_get_ctime(inode).tv_nsec,
++		      inode, ceph_vinop(inode), inode_get_ctime_sec(inode),
++		      inode_get_ctime_nsec(inode),
+ 		      attr->ia_ctime.tv_sec, attr->ia_ctime.tv_nsec,
+ 		      only ? "ctime only" : "ignored");
+ 
  		if (only) {
  			/*
  			 * if kernel wants to dirty ctime but nothing else,

[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 488 bytes --]

^ permalink raw reply	[flat|nested] 28+ messages in thread
* linux-next: manual merge of the ceph tree with Linus' tree
@ 2013-07-10  1:24 Stephen Rothwell
  2013-07-10  3:57 ` Sage Weil
  0 siblings, 1 reply; 28+ messages in thread
From: Stephen Rothwell @ 2013-07-10  1:24 UTC (permalink / raw)
  To: Sage Weil; +Cc: linux-next, linux-kernel, Linus

[-- Attachment #1: Type: text/plain, Size: 403 bytes --]

Hi Sage,

Today's linux-next merge of the ceph tree got conflicts in
drivers/block/rbd.c and net/ceph/osd_client.c because the ceph tree was
rebased before being sent to Linus and it looks like one patch
was dropped and several more added.

I just used the upstream version of the cpeh tree for today - please
clean up.

-- 
Cheers,
Stephen Rothwell                    sfr@canb.auug.org.au

[-- Attachment #2: Type: application/pgp-signature, Size: 836 bytes --]

^ permalink raw reply	[flat|nested] 28+ messages in thread
* linux-next: manual merge of the ceph tree with Linus' tree
@ 2013-06-19  1:22 Stephen Rothwell
  0 siblings, 0 replies; 28+ messages in thread
From: Stephen Rothwell @ 2013-06-19  1:22 UTC (permalink / raw)
  To: Sage Weil; +Cc: linux-next, linux-kernel, Alex Elder, Al Viro

[-- Attachment #1: Type: text/plain, Size: 1058 bytes --]

Hi Sage,

Today's linux-next merge of the ceph tree got a conflict in
drivers/block/rbd.c between commit db2a144bedd5
("block_device_operations->release() should return void") from Linus'
tree and commit 87f11b7221f7 ("rbd: don't hold ctl_mutex to get/put
device") from the ceph tree.

I fixed it up (see below) and can carry the fix as necessary (no action
is required).

BTW, Sage, there is no Signed-off-by for you in the ceph tree commit (and
several others - even though you committed them).
-- 
Cheers,
Stephen Rothwell                    sfr@canb.auug.org.au

diff --cc drivers/block/rbd.c
index 3063452,f24e241..0000000
--- a/drivers/block/rbd.c
+++ b/drivers/block/rbd.c
@@@ -507,9 -505,9 +505,7 @@@ static void rbd_release(struct gendisk 
  	spin_unlock_irq(&rbd_dev->lock);
  	rbd_assert(open_count_before > 0);
  
- 	mutex_lock_nested(&ctl_mutex, SINGLE_DEPTH_NESTING);
  	put_device(&rbd_dev->dev);
- 	mutex_unlock(&ctl_mutex);
 -
 -	return 0;
  }
  
  static const struct block_device_operations rbd_bd_ops = {

[-- Attachment #2: Type: application/pgp-signature, Size: 836 bytes --]

^ permalink raw reply	[flat|nested] 28+ messages in thread
* linux-next: manual merge of the ceph tree with Linus' tree
@ 2013-04-18  1:34 Stephen Rothwell
  0 siblings, 0 replies; 28+ messages in thread
From: Stephen Rothwell @ 2013-04-18  1:34 UTC (permalink / raw)
  To: Sage Weil; +Cc: linux-next, linux-kernel, Al Viro, Alex Elder, Yan, Zheng

[-- Attachment #1: Type: text/plain, Size: 2146 bytes --]

Hi Sage,

Today's linux-next merge of the ceph tree got a conflict in
fs/ceph/addr.c between commit 496ad9aa8ef4 ("new helper: file_inode
(file)") from Linus' tree and commit 42f94fe2cf50 ("ceph: revert commit
22cddde104") from the ceph tree.

I fixed it up (see below) and can carry the fix as necessary (no action
is required).

-- 
Cheers,
Stephen Rothwell                    sfr@canb.auug.org.au

diff --cc fs/ceph/addr.c
index a60ea97,068d2c8..0000000
--- a/fs/ceph/addr.c
+++ b/fs/ceph/addr.c
@@@ -1066,29 -1104,10 +1104,10 @@@ static int ceph_write_begin(struct fil
  			    loff_t pos, unsigned len, unsigned flags,
  			    struct page **pagep, void **fsdata)
  {
 -	struct inode *inode = file->f_dentry->d_inode;
 +	struct inode *inode = file_inode(file);
- 	struct ceph_inode_info *ci = ceph_inode(inode);
- 	struct ceph_file_info *fi = file->private_data;
  	struct page *page;
  	pgoff_t index = pos >> PAGE_CACHE_SHIFT;
- 	int r, want, got = 0;
- 
- 	if (fi->fmode & CEPH_FILE_MODE_LAZY)
- 		want = CEPH_CAP_FILE_BUFFER | CEPH_CAP_FILE_LAZYIO;
- 	else
- 		want = CEPH_CAP_FILE_BUFFER;
- 
- 	dout("write_begin %p %llx.%llx %llu~%u getting caps. i_size %llu\n",
- 	     inode, ceph_vinop(inode), pos, len, inode->i_size);
- 	r = ceph_get_caps(ci, CEPH_CAP_FILE_WR, want, &got, pos+len);
- 	if (r < 0)
- 		return r;
- 	dout("write_begin %p %llx.%llx %llu~%u  got cap refs on %s\n",
- 	     inode, ceph_vinop(inode), pos, len, ceph_cap_string(got));
- 	if (!(got & (CEPH_CAP_FILE_BUFFER|CEPH_CAP_FILE_LAZYIO))) {
- 		ceph_put_cap_refs(ci, got);
- 		return -EAGAIN;
- 	}
+ 	int r;
  
  	do {
  		/* get a page */
@@@ -1124,8 -1134,7 +1134,7 @@@ static int ceph_write_end(struct file *
  			  loff_t pos, unsigned len, unsigned copied,
  			  struct page *page, void *fsdata)
  {
 -	struct inode *inode = file->f_dentry->d_inode;
 +	struct inode *inode = file_inode(file);
- 	struct ceph_inode_info *ci = ceph_inode(inode);
  	struct ceph_fs_client *fsc = ceph_inode_to_client(inode);
  	struct ceph_mds_client *mdsc = fsc->mdsc;
  	unsigned from = pos & (PAGE_CACHE_SIZE - 1);

[-- Attachment #2: Type: application/pgp-signature, Size: 836 bytes --]

^ permalink raw reply	[flat|nested] 28+ messages in thread
* linux-next: manual merge of the ceph tree with Linus' tree
@ 2012-07-21 23:16 Stephen Rothwell
  0 siblings, 0 replies; 28+ messages in thread
From: Stephen Rothwell @ 2012-07-21 23:16 UTC (permalink / raw)
  To: Sage Weil; +Cc: linux-next, linux-kernel, Alex Elder

[-- Attachment #1: Type: text/plain, Size: 1828 bytes --]

Hi Sage,

Today's linux-next merge of the ceph tree got a conflict in
net/ceph/messenger.c between commit 5bdca4e0768d ("libceph: fix messenger
retry") from Linus' tree and commit e22004235a90 ("libceph: rename
kvec_reset and kvec_add functions") from the ceph tree.

Just context changes.  I fixed it up (see below) and can carry the fix as
necessary.
-- 
Cheers,
Stephen Rothwell                    sfr@canb.auug.org.au

diff --cc net/ceph/messenger.c
index 10255e8,23073cf..0000000
--- a/net/ceph/messenger.c
+++ b/net/ceph/messenger.c
@@@ -1450,11 -1530,11 +1530,11 @@@ static int process_connect(struct ceph_
  		 * If we sent a smaller connect_seq than the peer has, try
  		 * again with a larger value.
  		 */
 -		dout("process_connect got RETRY my seq = %u, peer_seq = %u\n",
 +		dout("process_connect got RETRY_SESSION my seq %u, peer %u\n",
  		     le32_to_cpu(con->out_connect.connect_seq),
 -		     le32_to_cpu(con->in_connect.connect_seq));
 -		con->connect_seq = le32_to_cpu(con->in_connect.connect_seq);
 +		     le32_to_cpu(con->in_reply.connect_seq));
 +		con->connect_seq = le32_to_cpu(con->in_reply.connect_seq);
- 		ceph_con_out_kvec_reset(con);
+ 		con_out_kvec_reset(con);
  		ret = prepare_write_connect(con);
  		if (ret < 0)
  			return ret;
@@@ -1468,10 -1548,10 +1548,10 @@@
  		 */
  		dout("process_connect got RETRY_GLOBAL my %u peer_gseq %u\n",
  		     con->peer_global_seq,
 -		     le32_to_cpu(con->in_connect.global_seq));
 +		     le32_to_cpu(con->in_reply.global_seq));
  		get_global_seq(con->msgr,
 -			       le32_to_cpu(con->in_connect.global_seq));
 +			       le32_to_cpu(con->in_reply.global_seq));
- 		ceph_con_out_kvec_reset(con);
+ 		con_out_kvec_reset(con);
  		ret = prepare_write_connect(con);
  		if (ret < 0)
  			return ret;

[-- Attachment #2: Type: application/pgp-signature, Size: 836 bytes --]

^ permalink raw reply	[flat|nested] 28+ messages in thread
* linux-next: manual merge of the ceph tree with Linus' tree
@ 2012-05-22  1:45 Stephen Rothwell
  2012-05-22  3:58 ` Sage Weil
  0 siblings, 1 reply; 28+ messages in thread
From: Stephen Rothwell @ 2012-05-22  1:45 UTC (permalink / raw)
  To: Sage Weil; +Cc: linux-next, linux-kernel, Eric Dumazet, David S. Miller

[-- Attachment #1: Type: text/plain, Size: 1562 bytes --]

Hi Sage,

Today's linux-next merge of the ceph tree got a conflict in
net/ceph/messenger.c between commit 95c961747284 ("net: cleanup unsigned
to unsigned int") from Linus' tree and commit 57dac9d16209 ("ceph:
messenger: use read_partial() in read_partial_message()") from the ceph
tree.

Just context changes. I fixed it up (see below) and can carry the fix as
necessary.
-- 
Cheers,
Stephen Rothwell                    sfr@canb.auug.org.au

diff --cc net/ceph/messenger.c
index 36fa6bf,1a80907..0000000
--- a/net/ceph/messenger.c
+++ b/net/ceph/messenger.c
@@@ -695,12 -698,12 +698,12 @@@ static void prepare_write_banner(struc
  	set_bit(WRITE_PENDING, &con->state);
  }
  
- static int prepare_write_connect(struct ceph_messenger *msgr,
- 				 struct ceph_connection *con,
- 				 int include_banner)
+ static int prepare_write_connect(struct ceph_connection *con)
  {
 -	unsigned global_seq = get_global_seq(con->msgr, 0);
 +	unsigned int global_seq = get_global_seq(con->msgr, 0);
  	int proto;
+ 	int auth_proto;
+ 	struct ceph_auth_handshake *auth;
  
  	switch (con->peer_name.type) {
  	case CEPH_ENTITY_TYPE_MON:
@@@ -1627,9 -1663,10 +1663,10 @@@ static int read_partial_message_bio(str
  static int read_partial_message(struct ceph_connection *con)
  {
  	struct ceph_msg *m = con->in_msg;
+ 	int size;
+ 	int end;
  	int ret;
- 	int to, left;
 -	unsigned front_len, middle_len, data_len;
 +	unsigned int front_len, middle_len, data_len;
  	bool do_datacrc = !con->msgr->nocrc;
  	int skip;
  	u64 seq;

[-- Attachment #2: Type: application/pgp-signature, Size: 836 bytes --]

^ permalink raw reply	[flat|nested] 28+ messages in thread
* linux-next: manual merge of the ceph tree with Linus' tree
@ 2012-03-21  1:23 Stephen Rothwell
  0 siblings, 0 replies; 28+ messages in thread
From: Stephen Rothwell @ 2012-03-21  1:23 UTC (permalink / raw)
  To: Sage Weil; +Cc: linux-next, linux-kernel, Alex Elder

[-- Attachment #1: Type: text/plain, Size: 2497 bytes --]

Hi Sage,

Today's linux-next merge of the ceph tree got a conflict in
fs/ceph/xattr.c between commit 83eb26af0db7 ("ceph: ensure prealloc_blob
is in place when removing xattr") from Linus' tree and commit
15226d16c19c ("ceph: make ceph_setxattr() and ceph_removexattr() more
alike") from the ceph tree.

I used the resolution provided by Alex (thanks) (see below) and I can
carry the fix as necessary.
-- 
Cheers,
Stephen Rothwell                    sfr@canb.auug.org.au

diff --cc fs/ceph/xattr.c
index a76f697,a3c1f9b..0000000
--- a/fs/ceph/xattr.c
+++ b/fs/ceph/xattr.c
@@@ -816,11 -883,10 +883,11 @@@ static int ceph_send_removexattr(struc
  int ceph_removexattr(struct dentry *dentry, const char *name)
  {
  	struct inode *inode = dentry->d_inode;
+ 	struct ceph_vxattr *vxattr;
  	struct ceph_inode_info *ci = ceph_inode(inode);
- 	struct ceph_vxattr_cb *vxattrs = ceph_inode_vxattrs(inode);
  	int issued;
  	int err;
 +	int required_blob_size;
  	int dirty;
  
  	if (ceph_snap(inode) != CEPH_NOSNAP)
@@@ -829,42 -895,19 +896,39 @@@
  	if (!ceph_is_valid_xattr(name))
  		return -EOPNOTSUPP;
  
- 	if (vxattrs) {
- 		struct ceph_vxattr_cb *vxattr =
- 			ceph_match_vxattr(vxattrs, name);
- 		if (vxattr && vxattr->readonly)
- 			return -EOPNOTSUPP;
- 	}
+ 	vxattr = ceph_match_vxattr(inode, name);
+ 	if (vxattr && vxattr->readonly)
+ 		return -EOPNOTSUPP;
  
 +	err = -ENOMEM;
  	spin_lock(&ci->i_ceph_lock);
- 	__build_xattrs(inode);
 +retry:
  	issued = __ceph_caps_issued(ci, NULL);
  	dout("removexattr %p issued %s\n", inode, ceph_cap_string(issued));
- 
  	if (!(issued & CEPH_CAP_XATTR_EXCL))
  		goto do_sync;
+ 	__build_xattrs(inode);
  
 +	required_blob_size = __get_required_blob_size(ci, 0, 0);
 +
 +	if (!ci->i_xattrs.prealloc_blob ||
 +	    required_blob_size > ci->i_xattrs.prealloc_blob->alloc_len) {
 +		struct ceph_buffer *blob;
 +
 +		spin_unlock(&ci->i_ceph_lock);
 +		dout(" preaallocating new blob size=%d\n", required_blob_size);
 +		blob = ceph_buffer_new(required_blob_size, GFP_NOFS);
 +		if (!blob)
 +			goto out;
 +		spin_lock(&ci->i_ceph_lock);
 +		if (ci->i_xattrs.prealloc_blob)
 +			ceph_buffer_put(ci->i_xattrs.prealloc_blob);
 +		ci->i_xattrs.prealloc_blob = blob;
 +		goto retry;
 +	}
 +
  	err = __remove_xattr_by_name(ceph_inode(inode), name);
+ 
  	dirty = __ceph_mark_dirty_caps(ci, CEPH_CAP_XATTR_EXCL);
  	ci->i_xattrs.dirty = true;
  	inode->i_ctime = CURRENT_TIME;

[-- Attachment #2: Type: application/pgp-signature, Size: 836 bytes --]

^ permalink raw reply	[flat|nested] 28+ messages in thread
* linux-next: manual merge of the ceph tree with Linus' tree
@ 2012-01-11  1:27 Stephen Rothwell
  2012-01-11  1:31 ` Al Viro
  0 siblings, 1 reply; 28+ messages in thread
From: Stephen Rothwell @ 2012-01-11  1:27 UTC (permalink / raw)
  To: Sage Weil; +Cc: linux-next, linux-kernel, Alex Elder, Al Viro

[-- Attachment #1: Type: text/plain, Size: 1473 bytes --]

Hi Sage,

Today's linux-next merge of the ceph tree got a conflict in
fs/ceph/super.c between commit 3c5184ef1216 ("ceph: d_alloc_root() may
fail") from Linus' tree and commit 26d913cdd955 ("ceph: always initialize
the dentry in open_root_dentry()") from the ceph tree.

I fixed it up (see below) and can carry the fix as necessary.
-- 
Cheers,
Stephen Rothwell                    sfr@canb.auug.org.au

diff --cc fs/ceph/super.c
index 48f61a1,ec74313..0000000
--- a/fs/ceph/super.c
+++ b/fs/ceph/super.c
@@@ -636,21 -636,14 +636,21 @@@ static struct dentry *open_root_dentry(
  	req->r_num_caps = 2;
  	err = ceph_mdsc_do_request(mdsc, NULL, req);
  	if (err == 0) {
 +		struct inode *inode = req->r_target_inode;
 +		req->r_target_inode = NULL;
  		dout("open_root_inode success\n");
 -		if (ceph_ino(req->r_target_inode) == CEPH_INO_ROOT &&
 -		    fsc->sb->s_root == NULL)
 -			root = d_alloc_root(req->r_target_inode);
 -		else
 -			root = d_obtain_alias(req->r_target_inode);
 +		if (ceph_ino(inode) == CEPH_INO_ROOT &&
 +		    fsc->sb->s_root == NULL) {
 +			root = d_alloc_root(inode);
 +			if (!root) {
 +				iput(inode);
 +				root = ERR_PTR(-ENOMEM);
 +				goto out;
 +			}
- 			ceph_init_dentry(root);
 +		} else {
 +			root = d_obtain_alias(inode);
 +		}
+ 		ceph_init_dentry(root);
 -		req->r_target_inode = NULL;
  		dout("open_root_inode success, root dentry is %p\n", root);
  	} else {
  		root = ERR_PTR(err);

[-- Attachment #2: Type: application/pgp-signature, Size: 836 bytes --]

^ permalink raw reply	[flat|nested] 28+ messages in thread
* linux-next: manual merge of the ceph tree with Linus' tree
@ 2010-12-15  0:14 Stephen Rothwell
  0 siblings, 0 replies; 28+ messages in thread
From: Stephen Rothwell @ 2010-12-15  0:14 UTC (permalink / raw)
  To: Sage Weil; +Cc: linux-next, linux-kernel, Herb Shiu

Hi Sage,

Today's linux-next merge of the ceph tree got a conflict in
fs/ceph/mds_client.c between commit
25933abdd8c562182ca6dc9f8c4c2cc8265c3a80 ("ceph: Handle file locks in
replies from the MDS") from Linus' tree and commit
cba1a66d511d46c426ea02c322293b48f3b88cf2 ("ceph: implement DIRLAYOUTHASH
feature to get dir layout from MDS") from the ceph tree.

I fixed it up (hopefully correctly, see below) and can carry this fix as
necessary.
-- 
Cheers,
Stephen Rothwell                    sfr@canb.auug.org.au

diff --cc fs/ceph/mds_client.c
index 38800ea,bb9ff98..0000000
--- a/fs/ceph/mds_client.c
+++ b/fs/ceph/mds_client.c
@@@ -202,38 -212,6 +211,38 @@@ out_bad
  }
  
  /*
 + * parse fcntl F_GETLK results
 + */
 +static int parse_reply_info_filelock(void **p, void *end,
 +                struct ceph_mds_reply_info_parsed *info)
 +{
 +	if (*p + sizeof(*info->filelock_reply) > end)
 +		goto bad;
 +
 +	info->filelock_reply = *p;
 +	*p += sizeof(*info->filelock_reply);
 +
 +	if (unlikely(*p != end))
 +		goto bad;
 +	return 0;
 +
 +bad:
 +	return -EIO;
 +}
 +
 +/*
 + * parse extra results
 + */
 +static int parse_reply_info_extra(void **p, void *end,
-                 struct ceph_mds_reply_info_parsed *info)
++                struct ceph_mds_reply_info_parsed *info, int features)
 +{
 +	if (info->head->op == CEPH_MDS_OP_GETFILELOCK)
 +		return parse_reply_info_filelock(p, end, info);
 +	else
- 		return parse_reply_info_dir(p, end, info);
++		return parse_reply_info_dir(p, end, info, features);
 +}
 +
 +/*
   * parse entire mds reply
   */
  static int parse_reply_info(struct ceph_msg *msg,
@@@ -255,10 -234,10 +265,10 @@@
  			goto out_bad;
  	}
  
 -	/* dir content */
 +	/* extra */
  	ceph_decode_32_safe(&p, end, len, bad);
  	if (len > 0) {
- 		err = parse_reply_info_extra(&p, p+len, info);
 -		err = parse_reply_info_dir(&p, p+len, info, features);
++		err = parse_reply_info_extra(&p, p+len, info, features);
  		if (err < 0)
  			goto out_bad;
  	}

^ permalink raw reply	[flat|nested] 28+ messages in thread
* linux-next: manual merge of the ceph tree with Linus' tree
@ 2010-09-23  1:04 Stephen Rothwell
  0 siblings, 0 replies; 28+ messages in thread
From: Stephen Rothwell @ 2010-09-23  1:04 UTC (permalink / raw)
  To: Sage Weil; +Cc: linux-next, linux-kernel, Yehuda Sadeh

[-- Attachment #1: Type: text/plain, Size: 585 bytes --]

Hi Sage,

Today's linux-next merge of the ceph tree got a conflict in
fs/ceph/pagelist.c between commit
3d4401d9d0aef5c40706350685ddea3df6708496 ("ceph: fix pagelist kunmap
tail") from Linus' tree and commit
49dde0c8bee346a349862c4a3eddcd58e0d0ae90 ("ceph: factor out libceph from
Ceph file system") from the ceph tree.

The latter moved the file to net/ceph/pagelist.c, and the former patch
has been applied there, so I just removed the fs/ceph version of the file.
-- 
Cheers,
Stephen Rothwell                    sfr@canb.auug.org.au
http://www.canb.auug.org.au/~sfr/

[-- Attachment #2: Type: application/pgp-signature, Size: 490 bytes --]

^ permalink raw reply	[flat|nested] 28+ messages in thread
* linux-next: manual merge of the ceph tree with Linus' tree
@ 2010-09-23  0:56 Stephen Rothwell
  0 siblings, 0 replies; 28+ messages in thread
From: Stephen Rothwell @ 2010-09-23  0:56 UTC (permalink / raw)
  To: Sage Weil; +Cc: linux-next, linux-kernel, Greg Farnum

Hi Sage,

Today's linux-next merge of the ceph tree got a conflict in
fs/ceph/mds_client.c between commit
3612abbd5df6baa9ca3e0777c6c8646e202d3f66 ("ceph: fix reconnect encoding
for old servers") from Linus' tree and commit
20d5970378f075f8f567b92bd2c16373fbe09b72 ("ceph: preallocate flock state
without locks held") from the ceph tree.

I fixed it up (I think - see below) and can carry the fix for a while.
-- 
Cheers,
Stephen Rothwell                    sfr@canb.auug.org.au

diff --cc fs/ceph/mds_client.c
index fad95f8,9c648ed..0000000
--- a/fs/ceph/mds_client.c
+++ b/fs/ceph/mds_client.c
@@@ -2361,21 -2365,35 +2365,37 @@@ static int encode_caps_cb(struct inode 
  
  	if (recon_state->flock) {
  		int num_fcntl_locks, num_flock_locks;
- 
- 		lock_kernel();
- 		ceph_count_locks(inode, &num_fcntl_locks, &num_flock_locks);
- 		rec.v2.flock_len = (2*sizeof(u32) +
- 				    (num_fcntl_locks+num_flock_locks) *
- 				    sizeof(struct ceph_filelock));
- 
- 		err = ceph_pagelist_append(pagelist, &rec, reclen);
- 		if (!err)
- 			err = ceph_encode_locks(inode, pagelist,
- 						num_fcntl_locks,
- 						num_flock_locks);
- 		unlock_kernel();
+ 		struct ceph_pagelist_cursor trunc_point;
+ 
+ 		ceph_pagelist_set_cursor(pagelist, &trunc_point);
+ 		do {
+ 			lock_kernel();
+ 			ceph_count_locks(inode, &num_fcntl_locks,
+ 					 &num_flock_locks);
+ 			rec.v2.flock_len = (2*sizeof(u32) +
+ 					    (num_fcntl_locks+num_flock_locks) *
+ 					    sizeof(struct ceph_filelock));
+ 			unlock_kernel();
+ 
+ 			/* pre-alloc pagelist */
+ 			ceph_pagelist_truncate(pagelist, &trunc_point);
+ 			err = ceph_pagelist_append(pagelist, &rec, reclen);
+ 			if (!err)
+ 				err = ceph_pagelist_reserve(pagelist,
+ 							    rec.v2.flock_len);
+ 
+ 			/* encode locks */
+ 			if (!err) {
+ 				lock_kernel();
+ 				err = ceph_encode_locks(inode,
+ 							pagelist,
+ 							num_fcntl_locks,
+ 							num_flock_locks);
+ 				unlock_kernel();
+ 			}
+ 		} while (err == -ENOSPC);
 +	} else {
 +		err = ceph_pagelist_append(pagelist, &rec, reclen);
  	}
  
  out_free:

^ permalink raw reply	[flat|nested] 28+ messages in thread
* linux-next: manual merge of the ceph tree with Linus' tree
@ 2010-09-23  0:29 Stephen Rothwell
  2010-09-23  3:36 ` Sage Weil
  0 siblings, 1 reply; 28+ messages in thread
From: Stephen Rothwell @ 2010-09-23  0:29 UTC (permalink / raw)
  To: Sage Weil; +Cc: linux-next, linux-kernel

Hi Sage,

Today's linux-next merge of the ceph tree got a conflict in
fs/ceph/Kconfig between commit be4f104dfd3b5e3ae262bff607965cfc38027dec
("ceph: select CRYPTO") from Linus' tree and commit
49dde0c8bee346a349862c4a3eddcd58e0d0ae90 ("ceph: factor out libceph from
Ceph file system") from the ceph tree.

Just overlapping additions.  I fixed it up (see below) and can carry the
fix for a while.  (though the adding of "default n" is, I think,
redundant as that is the default anyway).
-- 
Cheers,
Stephen Rothwell                    sfr@canb.auug.org.au

diff --cc fs/ceph/Kconfig
index 0fcd264,73a7b31..0000000
--- a/fs/ceph/Kconfig
+++ b/fs/ceph/Kconfig
@@@ -1,9 -1,10 +1,11 @@@
  config CEPH_FS
          tristate "Ceph distributed file system (EXPERIMENTAL)"
  	depends on INET && EXPERIMENTAL
+ 	select CEPH_LIB
  	select LIBCRC32C
  	select CRYPTO_AES
 +	select CRYPTO
+ 	default n
  	help
  	  Choose Y or M here to include support for mounting the
  	  experimental Ceph distributed file system.  Ceph is an extremely

^ permalink raw reply	[flat|nested] 28+ messages in thread
* linux-next: manual merge of the ceph tree with Linus' tree
@ 2010-08-13  0:28 Stephen Rothwell
  0 siblings, 0 replies; 28+ messages in thread
From: Stephen Rothwell @ 2010-08-13  0:28 UTC (permalink / raw)
  To: Sage Weil; +Cc: linux-next, linux-kernel, Wang Lei, David Howells, Steve French

Hi Sage,

Today's linux-next merge of the ceph tree got a conflict in net/Makefile
between commit 1a4240f4764ac78adbf4b0ebb49b3bd8c72ffa11 ("DNS: Separate
out CIFS DNS Resolver code") from Linus' tree and commit
28419a6b287727e879aa94f2f8662a3810d14182 ("ceph: factor out libceph from
Ceph file system") from the ceph tree.

Just overlapping additions.  I fixed it up (see below) and can carry the
fix for a while.
-- 
Cheers,
Stephen Rothwell                    sfr@canb.auug.org.au

diff --cc net/Makefile
index ea60fbc,873c2ae..0000000
--- a/net/Makefile
+++ b/net/Makefile
@@@ -67,4 -67,4 +67,5 @@@ ifeq ($(CONFIG_NET),y
  obj-$(CONFIG_SYSCTL)		+= sysctl_net.o
  endif
  obj-$(CONFIG_WIMAX)		+= wimax/
 +obj-$(CONFIG_DNS_RESOLVER)	+= dns_resolver/
+ obj-$(CONFIG_CEPH_LIB)		+= ceph/

^ permalink raw reply	[flat|nested] 28+ messages in thread
* linux-next: manual merge of the ceph tree with Linus' tree
@ 2010-05-14  0:07 Stephen Rothwell
  0 siblings, 0 replies; 28+ messages in thread
From: Stephen Rothwell @ 2010-05-14  0:07 UTC (permalink / raw)
  To: Sage Weil; +Cc: linux-next, linux-kernel

Hi Sage,

Today's linux-next merge of the ceph tree got a conflict in
fs/ceph/messenger.c between commit
45c6ceb547ad2d98215351974a4686bf8cb13e14 ("ceph: zero unused message
header, footer fields") from Linus' tree and commit
c46c4a323cad3fb2678a6b9ffd200b7640b0dc61 ("ceph: simplify ceph_msg_new")
from the ceph tree.

I fixed it up (I think - see below) and can carry the fix for a while.
-- 
Cheers,
Stephen Rothwell                    sfr@canb.auug.org.au

diff --cc fs/ceph/messenger.c
index cd4fadb,402d9ee..0000000
--- a/fs/ceph/messenger.c
+++ b/fs/ceph/messenger.c
@@@ -1406,15 -1380,12 +1408,13 @@@ static int read_partial_message(struct 
  			con->in_base_pos = -front_len - middle_len - data_len -
  				sizeof(m->footer);
  			con->in_tag = CEPH_MSGR_TAG_READY;
 +			con->in_seq++;
  			return 0;
  		}
- 		if (IS_ERR(con->in_msg)) {
- 			ret = PTR_ERR(con->in_msg);
- 			con->in_msg = NULL;
+ 		if (!con->in_msg) {
  			con->error_msg =
  				"error allocating memory for incoming message";
- 			return ret;
+ 			return -ENOMEM;
  		}
  		m = con->in_msg;
  		m->front.iov_len = 0;    /* haven't read it yet */
@@@ -2094,15 -2061,12 +2093,15 @@@ struct ceph_msg *ceph_msg_new(int type
  	kref_init(&m->kref);
  	INIT_LIST_HEAD(&m->list_head);
  
 +	m->hdr.tid = 0;
  	m->hdr.type = cpu_to_le16(type);
 +	m->hdr.priority = cpu_to_le16(CEPH_MSG_PRIO_DEFAULT);
 +	m->hdr.version = 0;
  	m->hdr.front_len = cpu_to_le32(front_len);
  	m->hdr.middle_len = 0;
- 	m->hdr.data_len = cpu_to_le32(page_len);
- 	m->hdr.data_off = cpu_to_le16(page_off);
+ 	m->hdr.data_len = 0;
+ 	m->hdr.data_off = 0;
 -	m->hdr.priority = cpu_to_le16(CEPH_MSG_PRIO_DEFAULT);
 +	m->hdr.reserved = 0;
  	m->footer.front_crc = 0;
  	m->footer.middle_crc = 0;
  	m->footer.data_crc = 0;

^ permalink raw reply	[flat|nested] 28+ messages in thread
* linux-next: manual merge of the ceph tree with Linus' tree
@ 2010-05-14  0:07 Stephen Rothwell
  0 siblings, 0 replies; 28+ messages in thread
From: Stephen Rothwell @ 2010-05-14  0:07 UTC (permalink / raw)
  To: Sage Weil; +Cc: linux-next, linux-kernel, Cheng Renquan

Hi Sage,

Today's linux-next merge of the ceph tree got a conflict in
fs/ceph/caps.c between commit f818a73674c5d197f66b636a46d7d578d7258129
("ceph: fix cap removal races") from Linus' tree and commit
9f2a2a1faa0fd990d4930605583a67d7dff28bff ("ceph: use ceph_sb_to_client
instead of ceph_client") from the ceph tree.

Just context changes.  I fixed it up (see below) and can carry the fix
for a while.
-- 
Cheers,
Stephen Rothwell                    sfr@canb.auug.org.au

diff --cc fs/ceph/caps.c
index d940053,1747db0..0000000
--- a/fs/ceph/caps.c
+++ b/fs/ceph/caps.c
@@@ -867,8 -864,8 +867,9 @@@ void __ceph_remove_cap(struct ceph_cap 
  {
  	struct ceph_mds_session *session = cap->session;
  	struct ceph_inode_info *ci = cap->ci;
- 	struct ceph_mds_client *mdsc = &ceph_client(ci->vfs_inode.i_sb)->mdsc;
+ 	struct ceph_mds_client *mdsc =
+ 		&ceph_sb_to_client(ci->vfs_inode.i_sb)->mdsc;
 +	int removed = 0;
  
  	dout("__ceph_remove_cap %p from %p\n", cap, &ci->vfs_inode);
  

^ permalink raw reply	[flat|nested] 28+ messages in thread
* linux-next: manual merge of the ceph tree with Linus' tree
@ 2010-05-14  0:07 Stephen Rothwell
  2010-05-14  4:25 ` Sage Weil
  0 siblings, 1 reply; 28+ messages in thread
From: Stephen Rothwell @ 2010-05-14  0:07 UTC (permalink / raw)
  To: Sage Weil; +Cc: linux-next, linux-kernel, Cheng Renquan

Hi Sage,

Today's linux-next merge of the ceph tree got a conflict in
fs/ceph/super.c between commit 5dfc589a8467470226feccdc50f1b32713318e7b
("ceph: unregister bdi before kill_anon_super releases device name") from
Linus' tree and commits 9f2a2a1faa0fd990d4930605583a67d7dff28bff ("ceph:
use ceph_sb_to_client instead of ceph_client") and
c72b09ba224e6f2c00bcf810a0a62059fcf405f7 ("ceph: name bdi ceph-%d instead
of major:minor") from the ceph tree.

I fixed it up (see below) and can carry the fix for a while.
-- 
Cheers,
Stephen Rothwell                    sfr@canb.auug.org.au

diff --cc fs/ceph/super.c
index 110857b,30fa891..0000000
--- a/fs/ceph/super.c
+++ b/fs/ceph/super.c
@@@ -8,14 -8,10 +8,11 @@@
  #include <linux/module.h>
  #include <linux/mount.h>
  #include <linux/parser.h>
- #include <linux/rwsem.h>
  #include <linux/sched.h>
  #include <linux/seq_file.h>
 +#include <linux/slab.h>
  #include <linux/statfs.h>
  #include <linux/string.h>
- #include <linux/version.h>
- #include <linux/vmalloc.h>
  
  #include "decode.h"
  #include "super.h"
@@@ -893,9 -910,8 +921,10 @@@ static int ceph_register_bdi(struct sup
  		client->backing_dev_info.ra_pages =
  			(client->mount_args->rsize + PAGE_CACHE_SIZE - 1)
  			>> PAGE_SHIFT;
- 	err = bdi_register_dev(&client->backing_dev_info, sb->s_dev);
+ 	err = bdi_register(&client->backing_dev_info, NULL, "ceph-%d",
+ 			   atomic_long_inc_return(&bdi_seq));
 +	if (!err)
 +		sb->s_bdi = &client->backing_dev_info;
  	return err;
  }
  

^ permalink raw reply	[flat|nested] 28+ messages in thread
* linux-next: manual merge of the ceph tree with Linus' tree
@ 2010-01-12  0:09 Stephen Rothwell
  0 siblings, 0 replies; 28+ messages in thread
From: Stephen Rothwell @ 2010-01-12  0:09 UTC (permalink / raw)
  To: Sage Weil; +Cc: linux-next, linux-kernel, Randy Dunlap

Hi Sage,

Today's linux-next merge of the ceph tree got a conflict in
Documentation/ioctl/ioctl-number.txt between commit
cb5a8b2c92febbed57126e1b8416dfd7607ff03d ("docs: large update to
ioctl-number.txt") from Linus' tree and commit
8f4e91dee2a245e4be6942f4a8d83a769e13a47d ("ceph: ioctls") from the ceph
tree.

Just overlapping additions - not a big deal.  I fixed it up (see below)
and can carry the fix as necessary.
-- 
Cheers,
Stephen Rothwell                    sfr@canb.auug.org.au

diff --cc Documentation/ioctl/ioctl-number.txt
index 35cf64d,91cfdd7..0000000
--- a/Documentation/ioctl/ioctl-number.txt
+++ b/Documentation/ioctl/ioctl-number.txt
@@@ -289,9 -181,8 +289,10 @@@ Code  Seq#(hex)	Include File		Comment
  0x8C	00-3F				WiNRADiO driver
  					<http://www.proximity.com.au/~brian/winradio/>
  0x90	00	drivers/cdrom/sbpcd.h
 +0x92	00-0F	drivers/usb/mon/mon_bin.c
  0x93	60-7F	linux/auto_fs.h
 +0x94	all	fs/btrfs/ioctl.h
+ 0x97    00-7F   fs/ceph/ioctl.h         Ceph file system
  0x99	00-0F				537-Addinboard driver
  					<mailto:buk@buks.ipn.de>
  0xA0	all	linux/sdp/sdp.h		Industrial Device Project

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

end of thread, other threads:[~2023-11-05 22:24 UTC | newest]

Thread overview: 28+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2012-07-31  1:58 linux-next: manual merge of the ceph tree with Linus' tree Stephen Rothwell
  -- strict thread matches above, loose matches on Subject: below --
2023-11-05 22:24 Stephen Rothwell
2013-07-10  1:24 Stephen Rothwell
2013-07-10  3:57 ` Sage Weil
2013-06-19  1:22 Stephen Rothwell
2013-04-18  1:34 Stephen Rothwell
2012-07-21 23:16 Stephen Rothwell
2012-05-22  1:45 Stephen Rothwell
2012-05-22  3:58 ` Sage Weil
2012-03-21  1:23 Stephen Rothwell
2012-01-11  1:27 Stephen Rothwell
2012-01-11  1:31 ` Al Viro
2012-01-11  1:35   ` Sage Weil
2012-01-11  1:49     ` Al Viro
2012-01-11  3:02     ` Stephen Rothwell
2012-01-11  2:10   ` Alex Elder
2010-12-15  0:14 Stephen Rothwell
2010-09-23  1:04 Stephen Rothwell
2010-09-23  0:56 Stephen Rothwell
2010-09-23  0:29 Stephen Rothwell
2010-09-23  3:36 ` Sage Weil
2010-08-13  0:28 Stephen Rothwell
2010-05-14  0:07 Stephen Rothwell
2010-05-14  0:07 Stephen Rothwell
2010-05-14  0:07 Stephen Rothwell
2010-05-14  4:25 ` Sage Weil
2010-05-14  6:00   ` Stephen Rothwell
2010-01-12  0:09 Stephen Rothwell

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).