scoutfs: don't add dirs to data_seq index

Directories were getting added to the data_seq index.  It might have
looked like they weren't because their data_seqs were always 0 but when
inodes are created they don't have 'have_item' set so all the fields are
added regardless of their current value.

We'd rather not have to wade their directories when looking for regular
file data in the data_seq index so let's explicitly test for regular
files when updating the data_seq index items.

Signed-off-by: Zach Brown <zab@versity.com>
This commit is contained in:
Zach Brown
2017-08-03 15:56:31 -07:00
committed by Zach Brown
parent 1398b2316d
commit 3768e3c41c

View File

@@ -594,10 +594,12 @@ void scoutfs_update_inode_item(struct inode *inode)
le64_to_cpu(sinode.size), 0, si->item_size, 0) ?:
update_index(sb, si, ino, SCOUTFS_INODE_INDEX_META_SEQ_TYPE,
le64_to_cpu(sinode.meta_seq), 0,
si->item_meta_seq, 0) ?:
update_index(sb, si, ino, SCOUTFS_INODE_INDEX_DATA_SEQ_TYPE,
le64_to_cpu(sinode.data_seq), 0,
si->item_data_seq, 0);
si->item_meta_seq, 0);
if (ret == 0 && S_ISREG(inode->i_mode))
ret = update_index(sb, si, ino,
SCOUTFS_INODE_INDEX_DATA_SEQ_TYPE,
le64_to_cpu(sinode.data_seq), 0,
si->item_data_seq, 0);
BUG_ON(ret);
scoutfs_inode_init_key(&key, &ikey, ino);