All of lore.kernel.org
 help / color / mirror / Atom feed
* re: ext4: add a new spinlock i_raw_lock to protect the ext4's raw inode
@ 2015-03-20 10:22 Dan Carpenter
  0 siblings, 0 replies; only message in thread
From: Dan Carpenter @ 2015-03-20 10:22 UTC (permalink / raw)
  To: tytso; +Cc: linux-ext4

Hello Theodore Ts'o,

The patch 202ee5df38b3: "ext4: add a new spinlock i_raw_lock to
protect the ext4's raw inode" from Apr 21, 2014, leads to the
following static checker warning:

	fs/ext4/inode.c:4359 ext4_do_update_inode()
	warn: we tested 'err' before and it was 'false'

fs/ext4/inode.c
  4351          ext4_inode_csum_set(inode, raw_inode, ei);
  4352          spin_unlock(&ei->i_raw_lock);
  4353          if (inode->i_sb->s_flags & MS_LAZYTIME)
  4354                  ext4_update_other_inodes_time(inode->i_sb, inode->i_ino,
  4355                                                bh->b_data);
  4356  
  4357          BUFFER_TRACE(bh, "call ext4_handle_dirty_metadata");
  4358          rc = ext4_handle_dirty_metadata(handle, NULL, bh);
  4359          if (!err)
  4360                  err = rc;

That patch shifted things around so now we can just say:

		err = ext4_handle_dirty_metadata(handle, NULL, bh);

But my only concern is that should we check the error code?

  4361          ext4_clear_inode_state(inode, EXT4_STATE_NEW);
  4362          if (set_large_file) {
  4363                  BUFFER_TRACE(EXT4_SB(sb)->s_sbh, "get write access");
  4364                  err = ext4_journal_get_write_access(handle, EXT4_SB(sb)->s_sbh);
                        ^^^
We overwrite it if set_large_file is true.

  4365                  if (err)
  4366                          goto out_brelse;
  4367                  ext4_update_dynamic_rev(sb);
  4368                  EXT4_SET_RO_COMPAT_FEATURE(sb,
  4369                                             EXT4_FEATURE_RO_COMPAT_LARGE_FILE);
  4370                  ext4_handle_sync(handle);
  4371                  err = ext4_handle_dirty_super(handle, sb);
  4372          }
  4373          ext4_update_inode_fsync_trans(handle, inode, need_datasync);
  4374  out_brelse:
  4375          brelse(bh);
  4376          ext4_std_error(inode->i_sb, err);
  4377          return err;
  4378  }

regards,
dan carpenter

^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2015-03-20 10:22 UTC | newest]

Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2015-03-20 10:22 ext4: add a new spinlock i_raw_lock to protect the ext4's raw inode Dan Carpenter

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.