public inbox for linux-xfs@vger.kernel.org
 help / color / mirror / Atom feed
* [PATCH 0/2] xfs: fix some sparse warnings.
@ 2013-09-02  3:22 Dave Chinner
  2013-09-02  3:22 ` [PATCH 1/2] xfs: fix endian warning in xlog_recover_get_buf_lsn() Dave Chinner
  2013-09-02  3:22 ` [PATCH 2/2] xfs: fix some minor sparse warnings Dave Chinner
  0 siblings, 2 replies; 9+ messages in thread
From: Dave Chinner @ 2013-09-02  3:22 UTC (permalink / raw)
  To: xfs

The first patch is a new warning from the log recovery ordering code
- I used the wrong structure to pull the superblock LSN out of the
on disk buffer. On most platforms there should be no actual bug here
as both the xfs_sb and xfs_dsb have identical layouts.

The second patch is just fixing a few bits of warning noise that
sparse produces. There's not actual compiled code change from them.

_______________________________________________
xfs mailing list
xfs@oss.sgi.com
http://oss.sgi.com/mailman/listinfo/xfs

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

* [PATCH 1/2] xfs: fix endian warning in xlog_recover_get_buf_lsn()
  2013-09-02  3:22 [PATCH 0/2] xfs: fix some sparse warnings Dave Chinner
@ 2013-09-02  3:22 ` Dave Chinner
  2013-09-02  8:18   ` Christoph Hellwig
  2013-09-09 22:50   ` Ben Myers
  2013-09-02  3:22 ` [PATCH 2/2] xfs: fix some minor sparse warnings Dave Chinner
  1 sibling, 2 replies; 9+ messages in thread
From: Dave Chinner @ 2013-09-02  3:22 UTC (permalink / raw)
  To: xfs

From: Dave Chinner <dchinner@redhat.com>

sparse reports:

fs/xfs/xfs_log_recover.c:2017:24: sparse: cast to restricted __be64

Because I used the wrong structure for the on-disk superblock cast
in 50d5c8d ("xfs: check LSN ordering for v5 superblocks during
recovery"). Fix it.

Reported-by: kbuild test robot
Signed-off-by: Dave Chinner <dchinner@redhat.com>
---
 fs/xfs/xfs_log_recover.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/fs/xfs/xfs_log_recover.c b/fs/xfs/xfs_log_recover.c
index 8984ec4..1c3b0c9 100644
--- a/fs/xfs/xfs_log_recover.c
+++ b/fs/xfs/xfs_log_recover.c
@@ -2014,7 +2014,7 @@ xlog_recover_get_buf_lsn(
 	case XFS_ATTR3_RMT_MAGIC:
 		return be64_to_cpu(((struct xfs_attr3_rmt_hdr *)blk)->rm_lsn);
 	case XFS_SB_MAGIC:
-		return be64_to_cpu(((struct xfs_sb *)blk)->sb_lsn);
+		return be64_to_cpu(((struct xfs_dsb *)blk)->sb_lsn);
 	default:
 		break;
 	}
-- 
1.8.3.2

_______________________________________________
xfs mailing list
xfs@oss.sgi.com
http://oss.sgi.com/mailman/listinfo/xfs

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

* [PATCH 2/2] xfs: fix some minor sparse warnings
  2013-09-02  3:22 [PATCH 0/2] xfs: fix some sparse warnings Dave Chinner
  2013-09-02  3:22 ` [PATCH 1/2] xfs: fix endian warning in xlog_recover_get_buf_lsn() Dave Chinner
@ 2013-09-02  3:22 ` Dave Chinner
  2013-09-02  8:19   ` Christoph Hellwig
  1 sibling, 1 reply; 9+ messages in thread
From: Dave Chinner @ 2013-09-02  3:22 UTC (permalink / raw)
  To: xfs

From: Dave Chinner <dchinner@redhat.com>

A couple of simple locking annotations and 0 vs NULL warnings.
Nothing that changes any code behaviour, just removes build noise.

Signed-off-by: Dave Chinner <dchinner@redhat.com>
---
 fs/xfs/xfs_bmap.c        | 2 +-
 fs/xfs/xfs_dquot_item.c  | 2 ++
 fs/xfs/xfs_extent_busy.c | 2 ++
 fs/xfs/xfs_ioctl.c       | 2 +-
 fs/xfs/xfs_itable.c      | 5 +++--
 fs/xfs/xfs_log.c         | 2 ++
 6 files changed, 11 insertions(+), 4 deletions(-)

diff --git a/fs/xfs/xfs_bmap.c b/fs/xfs/xfs_bmap.c
index 92b8309..f47e65c 100644
--- a/fs/xfs/xfs_bmap.c
+++ b/fs/xfs/xfs_bmap.c
@@ -4450,7 +4450,7 @@ xfs_bmapi_write(
 {
 	struct xfs_mount	*mp = ip->i_mount;
 	struct xfs_ifork	*ifp;
-	struct xfs_bmalloca	bma = { 0 };	/* args for xfs_bmap_alloc */
+	struct xfs_bmalloca	bma = { NULL };	/* args for xfs_bmap_alloc */
 	xfs_fileoff_t		end;		/* end of mapped file region */
 	int			eof;		/* after the end of extents */
 	int			error;		/* error return */
diff --git a/fs/xfs/xfs_dquot_item.c b/fs/xfs/xfs_dquot_item.c
index 60c6e1f..77eb762 100644
--- a/fs/xfs/xfs_dquot_item.c
+++ b/fs/xfs/xfs_dquot_item.c
@@ -143,6 +143,8 @@ STATIC uint
 xfs_qm_dquot_logitem_push(
 	struct xfs_log_item	*lip,
 	struct list_head	*buffer_list)
+	__releases(&lip->li_ailp->xa_lock)
+	__acquires(&lip->li_ailp->xa_lock)
 {
 	struct xfs_dquot	*dqp = DQUOT_ITEM(lip)->qli_dquot;
 	struct xfs_buf		*bp = NULL;
diff --git a/fs/xfs/xfs_extent_busy.c b/fs/xfs/xfs_extent_busy.c
index 86f559f..504e51ee 100644
--- a/fs/xfs/xfs_extent_busy.c
+++ b/fs/xfs/xfs_extent_busy.c
@@ -161,6 +161,8 @@ xfs_extent_busy_update_extent(
 	xfs_agblock_t		fbno,
 	xfs_extlen_t		flen,
 	bool			userdata)
+	__releases(&pag->pagb_lock)
+	__acquires(&pag->pagb_lock)
 {
 	xfs_agblock_t		fend = fbno + flen;
 	xfs_agblock_t		bbno = busyp->bno;
diff --git a/fs/xfs/xfs_ioctl.c b/fs/xfs/xfs_ioctl.c
index bdebc21..21d9c9df 100644
--- a/fs/xfs/xfs_ioctl.c
+++ b/fs/xfs/xfs_ioctl.c
@@ -71,7 +71,7 @@ xfs_find_handle(
 	int			hsize;
 	xfs_handle_t		handle;
 	struct inode		*inode;
-	struct fd		f = {0};
+	struct fd		f = {NULL};
 	struct path		path;
 	int			error;
 	struct xfs_inode	*ip;
diff --git a/fs/xfs/xfs_itable.c b/fs/xfs/xfs_itable.c
index b93e14b..8a67d53 100644
--- a/fs/xfs/xfs_itable.c
+++ b/fs/xfs/xfs_itable.c
@@ -541,8 +541,9 @@ xfs_bulkstat_single(
 	 * at the expense of the error case.
 	 */
 
-	ino = (xfs_ino_t)*lastinop;
-	error = xfs_bulkstat_one(mp, ino, buffer, sizeof(xfs_bstat_t), 0, &res);
+	ino = *lastinop;
+	error = xfs_bulkstat_one(mp, ino, buffer, sizeof(xfs_bstat_t),
+				 NULL, &res);
 	if (error) {
 		/*
 		 * Special case way failed, do it the "long" way
diff --git a/fs/xfs/xfs_log.c b/fs/xfs/xfs_log.c
index 5372d58..8215b63 100644
--- a/fs/xfs/xfs_log.c
+++ b/fs/xfs/xfs_log.c
@@ -258,6 +258,8 @@ xlog_grant_head_wait(
 	struct xlog_grant_head	*head,
 	struct xlog_ticket	*tic,
 	int			need_bytes)
+	__releases(&head->lock)
+	__acquires(&head->lock)
 {
 	list_add_tail(&tic->t_queue, &head->waiters);
 
-- 
1.8.3.2

_______________________________________________
xfs mailing list
xfs@oss.sgi.com
http://oss.sgi.com/mailman/listinfo/xfs

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

* Re: [PATCH 1/2] xfs: fix endian warning in xlog_recover_get_buf_lsn()
  2013-09-02  3:22 ` [PATCH 1/2] xfs: fix endian warning in xlog_recover_get_buf_lsn() Dave Chinner
@ 2013-09-02  8:18   ` Christoph Hellwig
  2013-09-09 22:50   ` Ben Myers
  1 sibling, 0 replies; 9+ messages in thread
From: Christoph Hellwig @ 2013-09-02  8:18 UTC (permalink / raw)
  To: Dave Chinner; +Cc: xfs

On Mon, Sep 02, 2013 at 01:22:58PM +1000, Dave Chinner wrote:
> From: Dave Chinner <dchinner@redhat.com>
> 
> sparse reports:
> 
> fs/xfs/xfs_log_recover.c:2017:24: sparse: cast to restricted __be64
> 
> Because I used the wrong structure for the on-disk superblock cast
> in 50d5c8d ("xfs: check LSN ordering for v5 superblocks during
> recovery"). Fix it.
> 
> Reported-by: kbuild test robot
> Signed-off-by: Dave Chinner <dchinner@redhat.com>


Looks good,

Reviewed-by: Christoph Hellwig <hch@lst.de>

_______________________________________________
xfs mailing list
xfs@oss.sgi.com
http://oss.sgi.com/mailman/listinfo/xfs

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

* Re: [PATCH 2/2] xfs: fix some minor sparse warnings
  2013-09-02  3:22 ` [PATCH 2/2] xfs: fix some minor sparse warnings Dave Chinner
@ 2013-09-02  8:19   ` Christoph Hellwig
  2013-09-02 10:09     ` Dave Chinner
  0 siblings, 1 reply; 9+ messages in thread
From: Christoph Hellwig @ 2013-09-02  8:19 UTC (permalink / raw)
  To: Dave Chinner; +Cc: xfs

> --- a/fs/xfs/xfs_dquot_item.c
> +++ b/fs/xfs/xfs_dquot_item.c
> @@ -143,6 +143,8 @@ STATIC uint
>  xfs_qm_dquot_logitem_push(
>  	struct xfs_log_item	*lip,
>  	struct list_head	*buffer_list)
> +	__releases(&lip->li_ailp->xa_lock)
> +	__acquires(&lip->li_ailp->xa_lock)
>  {

Having these markers indented the same amount as the parameters isn't
very readable.  Maybe give them another tab level?

Otherwise looks good:

Reviewed-by: Christoph Hellwig <hch@lst.de>

_______________________________________________
xfs mailing list
xfs@oss.sgi.com
http://oss.sgi.com/mailman/listinfo/xfs

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

* Re: [PATCH 2/2] xfs: fix some minor sparse warnings
  2013-09-02  8:19   ` Christoph Hellwig
@ 2013-09-02 10:09     ` Dave Chinner
  2013-09-02 10:49       ` [PATCH 2/2 v2] " Dave Chinner
  0 siblings, 1 reply; 9+ messages in thread
From: Dave Chinner @ 2013-09-02 10:09 UTC (permalink / raw)
  To: Christoph Hellwig; +Cc: xfs

On Mon, Sep 02, 2013 at 01:19:54AM -0700, Christoph Hellwig wrote:
> > --- a/fs/xfs/xfs_dquot_item.c
> > +++ b/fs/xfs/xfs_dquot_item.c
> > @@ -143,6 +143,8 @@ STATIC uint
> >  xfs_qm_dquot_logitem_push(
> >  	struct xfs_log_item	*lip,
> >  	struct list_head	*buffer_list)
> > +	__releases(&lip->li_ailp->xa_lock)
> > +	__acquires(&lip->li_ailp->xa_lock)
> >  {
> 
> Having these markers indented the same amount as the parameters isn't
> very readable.  Maybe give them another tab level?

Sure. Can do.

-- 
Dave Chinner
david@fromorbit.com

_______________________________________________
xfs mailing list
xfs@oss.sgi.com
http://oss.sgi.com/mailman/listinfo/xfs

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

* [PATCH 2/2 v2] xfs: fix some minor sparse warnings
  2013-09-02 10:09     ` Dave Chinner
@ 2013-09-02 10:49       ` Dave Chinner
  2013-09-09 22:50         ` Ben Myers
  0 siblings, 1 reply; 9+ messages in thread
From: Dave Chinner @ 2013-09-02 10:49 UTC (permalink / raw)
  To: Christoph Hellwig; +Cc: xfs

xfs: fix some minor sparse warnings

From: Dave Chinner <dchinner@redhat.com>

A couple of simple locking annotations and 0 vs NULL warnings.
Nothing that changes any code behaviour, just removes build noise.

Signed-off-by: Dave Chinner <dchinner@redhat.com>
Reviewed-by: Christoph Hellwig <hch@lst.de>
---
v2: move __release annotations to match the other notations in the
    XFS code at the end of the function declaration.

 fs/xfs/xfs_bmap.c        | 2 +-
 fs/xfs/xfs_dquot_item.c  | 3 ++-
 fs/xfs/xfs_extent_busy.c | 3 ++-
 fs/xfs/xfs_ioctl.c       | 2 +-
 fs/xfs/xfs_itable.c      | 5 +++--
 fs/xfs/xfs_log.c         | 3 ++-
 6 files changed, 11 insertions(+), 7 deletions(-)

diff --git a/fs/xfs/xfs_bmap.c b/fs/xfs/xfs_bmap.c
index 92b8309..f47e65c 100644
--- a/fs/xfs/xfs_bmap.c
+++ b/fs/xfs/xfs_bmap.c
@@ -4450,7 +4450,7 @@ xfs_bmapi_write(
 {
 	struct xfs_mount	*mp = ip->i_mount;
 	struct xfs_ifork	*ifp;
-	struct xfs_bmalloca	bma = { 0 };	/* args for xfs_bmap_alloc */
+	struct xfs_bmalloca	bma = { NULL };	/* args for xfs_bmap_alloc */
 	xfs_fileoff_t		end;		/* end of mapped file region */
 	int			eof;		/* after the end of extents */
 	int			error;		/* error return */
diff --git a/fs/xfs/xfs_dquot_item.c b/fs/xfs/xfs_dquot_item.c
index 60c6e1f..e838d84 100644
--- a/fs/xfs/xfs_dquot_item.c
+++ b/fs/xfs/xfs_dquot_item.c
@@ -142,7 +142,8 @@ xfs_qm_dqunpin_wait(
 STATIC uint
 xfs_qm_dquot_logitem_push(
 	struct xfs_log_item	*lip,
-	struct list_head	*buffer_list)
+	struct list_head	*buffer_list) __releases(&lip->li_ailp->xa_lock)
+					      __acquires(&lip->li_ailp->xa_lock)
 {
 	struct xfs_dquot	*dqp = DQUOT_ITEM(lip)->qli_dquot;
 	struct xfs_buf		*bp = NULL;
diff --git a/fs/xfs/xfs_extent_busy.c b/fs/xfs/xfs_extent_busy.c
index 86f559f..e43708e 100644
--- a/fs/xfs/xfs_extent_busy.c
+++ b/fs/xfs/xfs_extent_busy.c
@@ -160,7 +160,8 @@ xfs_extent_busy_update_extent(
 	struct xfs_extent_busy	*busyp,
 	xfs_agblock_t		fbno,
 	xfs_extlen_t		flen,
-	bool			userdata)
+	bool			userdata) __releases(&pag->pagb_lock)
+					  __acquires(&pag->pagb_lock)
 {
 	xfs_agblock_t		fend = fbno + flen;
 	xfs_agblock_t		bbno = busyp->bno;
diff --git a/fs/xfs/xfs_ioctl.c b/fs/xfs/xfs_ioctl.c
index bdebc21..21d9c9df 100644
--- a/fs/xfs/xfs_ioctl.c
+++ b/fs/xfs/xfs_ioctl.c
@@ -71,7 +71,7 @@ xfs_find_handle(
 	int			hsize;
 	xfs_handle_t		handle;
 	struct inode		*inode;
-	struct fd		f = {0};
+	struct fd		f = {NULL};
 	struct path		path;
 	int			error;
 	struct xfs_inode	*ip;
diff --git a/fs/xfs/xfs_itable.c b/fs/xfs/xfs_itable.c
index b93e14b..8a67d53 100644
--- a/fs/xfs/xfs_itable.c
+++ b/fs/xfs/xfs_itable.c
@@ -541,8 +541,9 @@ xfs_bulkstat_single(
 	 * at the expense of the error case.
 	 */
 
-	ino = (xfs_ino_t)*lastinop;
-	error = xfs_bulkstat_one(mp, ino, buffer, sizeof(xfs_bstat_t), 0, &res);
+	ino = *lastinop;
+	error = xfs_bulkstat_one(mp, ino, buffer, sizeof(xfs_bstat_t),
+				 NULL, &res);
 	if (error) {
 		/*
 		 * Special case way failed, do it the "long" way
diff --git a/fs/xfs/xfs_log.c b/fs/xfs/xfs_log.c
index 5372d58..a2dea108 100644
--- a/fs/xfs/xfs_log.c
+++ b/fs/xfs/xfs_log.c
@@ -257,7 +257,8 @@ xlog_grant_head_wait(
 	struct xlog		*log,
 	struct xlog_grant_head	*head,
 	struct xlog_ticket	*tic,
-	int			need_bytes)
+	int			need_bytes) __releases(&head->lock)
+					    __acquires(&head->lock)
 {
 	list_add_tail(&tic->t_queue, &head->waiters);
 

_______________________________________________
xfs mailing list
xfs@oss.sgi.com
http://oss.sgi.com/mailman/listinfo/xfs

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

* Re: [PATCH 1/2] xfs: fix endian warning in xlog_recover_get_buf_lsn()
  2013-09-02  3:22 ` [PATCH 1/2] xfs: fix endian warning in xlog_recover_get_buf_lsn() Dave Chinner
  2013-09-02  8:18   ` Christoph Hellwig
@ 2013-09-09 22:50   ` Ben Myers
  1 sibling, 0 replies; 9+ messages in thread
From: Ben Myers @ 2013-09-09 22:50 UTC (permalink / raw)
  To: Dave Chinner; +Cc: xfs

On Mon, Sep 02, 2013 at 01:22:58PM +1000, Dave Chinner wrote:
> From: Dave Chinner <dchinner@redhat.com>
> 
> sparse reports:
> 
> fs/xfs/xfs_log_recover.c:2017:24: sparse: cast to restricted __be64
> 
> Because I used the wrong structure for the on-disk superblock cast
> in 50d5c8d ("xfs: check LSN ordering for v5 superblocks during
> recovery"). Fix it.
> 
> Reported-by: kbuild test robot
> Signed-off-by: Dave Chinner <dchinner@redhat.com>

Applied.


_______________________________________________
xfs mailing list
xfs@oss.sgi.com
http://oss.sgi.com/mailman/listinfo/xfs

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

* Re: [PATCH 2/2 v2] xfs: fix some minor sparse warnings
  2013-09-02 10:49       ` [PATCH 2/2 v2] " Dave Chinner
@ 2013-09-09 22:50         ` Ben Myers
  0 siblings, 0 replies; 9+ messages in thread
From: Ben Myers @ 2013-09-09 22:50 UTC (permalink / raw)
  To: Dave Chinner; +Cc: Christoph Hellwig, xfs

On Mon, Sep 02, 2013 at 08:49:36PM +1000, Dave Chinner wrote:
> xfs: fix some minor sparse warnings
> 
> From: Dave Chinner <dchinner@redhat.com>
> 
> A couple of simple locking annotations and 0 vs NULL warnings.
> Nothing that changes any code behaviour, just removes build noise.
> 
> Signed-off-by: Dave Chinner <dchinner@redhat.com>
> Reviewed-by: Christoph Hellwig <hch@lst.de>

Applied.

_______________________________________________
xfs mailing list
xfs@oss.sgi.com
http://oss.sgi.com/mailman/listinfo/xfs

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

end of thread, other threads:[~2013-09-09 22:50 UTC | newest]

Thread overview: 9+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2013-09-02  3:22 [PATCH 0/2] xfs: fix some sparse warnings Dave Chinner
2013-09-02  3:22 ` [PATCH 1/2] xfs: fix endian warning in xlog_recover_get_buf_lsn() Dave Chinner
2013-09-02  8:18   ` Christoph Hellwig
2013-09-09 22:50   ` Ben Myers
2013-09-02  3:22 ` [PATCH 2/2] xfs: fix some minor sparse warnings Dave Chinner
2013-09-02  8:19   ` Christoph Hellwig
2013-09-02 10:09     ` Dave Chinner
2013-09-02 10:49       ` [PATCH 2/2 v2] " Dave Chinner
2013-09-09 22:50         ` Ben Myers

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