#
fe2ed425 |
| 12-Jan-2017 |
Jeff Layton <jlayton@redhat.com> |
ceph: fix endianness bug in frag_tree_split_cmp
sparse says:
fs/ceph/inode.c:308:36: warning: incorrect type in argument 1 (different base types) fs/ceph/inode.c:308:36: expected unsigne
ceph: fix endianness bug in frag_tree_split_cmp
sparse says:
fs/ceph/inode.c:308:36: warning: incorrect type in argument 1 (different base types) fs/ceph/inode.c:308:36: expected unsigned int [unsigned] [usertype] a fs/ceph/inode.c:308:36: got restricted __le32 [usertype] frag fs/ceph/inode.c:308:46: warning: incorrect type in argument 2 (different base types) fs/ceph/inode.c:308:46: expected unsigned int [unsigned] [usertype] b fs/ceph/inode.c:308:46: got restricted __le32 [usertype] frag
We need to convert these values to host-endian before calling the comparator.
Fixes: a407846ef7c6 ("ceph: don't assume frag tree splits in mds reply are sorted") Signed-off-by: Jeff Layton <jlayton@redhat.com> Reviewed-by: Sage Weil <sage@redhat.com> Signed-off-by: Ilya Dryomov <idryomov@gmail.com>
show more ...
|
Revision tags: v4.9 |
|
#
dfeef688 |
| 09-Dec-2016 |
Miklos Szeredi <mszeredi@redhat.com> |
vfs: remove ".readlink = generic_readlink" assignments
If .readlink == NULL implies generic_readlink().
Generated by:
to_del="\.readlink.*=.*generic_readlink" for i in `git grep -l $to_del`; do se
vfs: remove ".readlink = generic_readlink" assignments
If .readlink == NULL implies generic_readlink().
Generated by:
to_del="\.readlink.*=.*generic_readlink" for i in `git grep -l $to_del`; do sed -i "/$to_del"/d $i; done
Signed-off-by: Miklos Szeredi <mszeredi@redhat.com>
show more ...
|
Revision tags: openbmc-4.4-20161121-1, v4.4.33, v4.4.32, v4.4.31, v4.4.30, v4.4.29 |
|
#
ad5cb123 |
| 28-Oct-2016 |
Al Viro <viro@zeniv.linux.org.uk> |
ceph: switch to use of ->d_init()
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
|
#
18fc8abd |
| 28-Oct-2016 |
Al Viro <viro@zeniv.linux.org.uk> |
ceph: unify dentry_operations instances
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
|
Revision tags: v4.4.28, v4.4.27, v4.7.10, openbmc-4.4-20161021-1, v4.7.9, v4.4.26, v4.7.8, v4.4.25 |
|
#
f72f9455 |
| 12-Oct-2016 |
Yan, Zheng <zyan@redhat.com> |
ceph: fix readdir vs fragmentation race
following sequence of events tigger the race
- client readdir frag 0* -> got item 'A' - MDS merges frag 0* and frag 1* - client send readdir request (frag 1*
ceph: fix readdir vs fragmentation race
following sequence of events tigger the race
- client readdir frag 0* -> got item 'A' - MDS merges frag 0* and frag 1* - client send readdir request (frag 1*, offset 2, readdir_start 'A') - MDS reply items (that are after item 'A') in frag *
Link: http://tracker.ceph.com/issues/17286 Signed-off-by: Yan, Zheng <zyan@redhat.com>
show more ...
|
Revision tags: v4.4.24, v4.7.7, v4.8, v4.4.23, v4.7.6 |
|
#
fd50ecad |
| 29-Sep-2016 |
Andreas Gruenbacher <agruenba@redhat.com> |
vfs: Remove {get,set,remove}xattr inode operations
These inode operations are no longer used; remove them.
Signed-off-by: Andreas Gruenbacher <agruenba@redhat.com> Signed-off-by: Al Viro <viro@zeni
vfs: Remove {get,set,remove}xattr inode operations
These inode operations are no longer used; remove them.
Signed-off-by: Andreas Gruenbacher <agruenba@redhat.com> Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
show more ...
|
Revision tags: v4.7.5, v4.4.22, v4.4.21, v4.7.4 |
|
#
c2050a45 |
| 14-Sep-2016 |
Deepa Dinamani <deepa.kernel@gmail.com> |
fs: Replace current_fs_time() with current_time()
current_fs_time() uses struct super_block* as an argument. As per Linus's suggestion, this is changed to take struct inode* as a parameter instead.
fs: Replace current_fs_time() with current_time()
current_fs_time() uses struct super_block* as an argument. As per Linus's suggestion, this is changed to take struct inode* as a parameter instead. This is because the function is primarily meant for vfs inode timestamps. Also the function was renamed as per Arnd's suggestion.
Change all calls to current_fs_time() to use the new current_time() function instead. current_fs_time() will be deleted.
Signed-off-by: Deepa Dinamani <deepa.kernel@gmail.com> Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
show more ...
|
Revision tags: v4.7.3, v4.4.20, v4.7.2, v4.4.19, openbmc-4.4-20160819-1, v4.7.1, v4.4.18, v4.4.17, openbmc-4.4-20160804-1, v4.4.16, v4.7, openbmc-4.4-20160722-1, openbmc-20160722-1, openbmc-20160713-1, v4.4.15, v4.6.4, v4.6.3, v4.4.14, v4.6.2, v4.4.13, openbmc-20160606-1, v4.6.1, v4.4.12 |
|
#
31051c85 |
| 26-May-2016 |
Jan Kara <jack@suse.cz> |
fs: Give dentry to inode_change_ok() instead of inode
inode_change_ok() will be resposible for clearing capabilities and IMA extended attributes and as such will need dentry. Give it as an argument
fs: Give dentry to inode_change_ok() instead of inode
inode_change_ok() will be resposible for clearing capabilities and IMA extended attributes and as such will need dentry. Give it as an argument to inode_change_ok() instead of an inode. Also rename inode_change_ok() to setattr_prepare() to better relect that it does also some modifications in addition to checks.
Reviewed-by: Christoph Hellwig <hch@lst.de> Signed-off-by: Jan Kara <jack@suse.cz>
show more ...
|
#
fd5472ed |
| 26-May-2016 |
Jan Kara <jack@suse.cz> |
ceph: Propagate dentry down to inode_change_ok()
To avoid clearing of capabilities or security related extended attributes too early, inode_change_ok() will need to take dentry instead of inode. cep
ceph: Propagate dentry down to inode_change_ok()
To avoid clearing of capabilities or security related extended attributes too early, inode_change_ok() will need to take dentry instead of inode. ceph_setattr() has the dentry easily available but __ceph_setattr() is also called from ceph_set_acl() where dentry is not easily available. Luckily that call path does not need inode_change_ok() to be called anyway. So reorganize functions a bit so that inode_change_ok() is called only from paths where dentry is available.
Reviewed-by: Christoph Hellwig <hch@lst.de> Acked-by: Jeff Layton <jlayton@redhat.com> Signed-off-by: Jan Kara <jack@suse.cz>
show more ...
|
#
e4500b5e |
| 05-Jul-2016 |
Yan, Zheng <zyan@redhat.com> |
ceph: use list instead of rbtree to track cap flushes
We don't have requirement of searching cap flush by TID. In most cases, we just need to know TID of the oldest cap flush. List is ideal for this
ceph: use list instead of rbtree to track cap flushes
We don't have requirement of searching cap flush by TID. In most cases, we just need to know TID of the oldest cap flush. List is ideal for this usage.
Signed-off-by: Yan, Zheng <zyan@redhat.com>
show more ...
|
#
9b16f03c |
| 22-Jun-2016 |
Miklos Szeredi <mszeredi@redhat.com> |
ceph: don't use ->d_time
Pretty simple: just use ceph_dentry_info.time instead (which was already there, unused).
Signed-off-by: Miklos Szeredi <mszeredi@redhat.com>
|
#
9a5530c6 |
| 15-Jun-2016 |
Yan, Zheng <zyan@redhat.com> |
ceph: wait unsafe sync writes for evicting inode
Otherwise ceph_sync_write_unsafe() may access/modify freed inode.
Signed-off-by: Yan, Zheng <zyan@redhat.com>
|
#
774a6a11 |
| 06-Jun-2016 |
Yan, Zheng <zyan@redhat.com> |
ceph: reduce i_nr_by_mode array size
Track usage count for individual fmode bit. This can reduce the array size by half.
Signed-off-by: Yan, Zheng <zyan@redhat.com>
|
Revision tags: openbmc-20160521-1, v4.4.11, openbmc-20160518-1, v4.6, v4.4.10, openbmc-20160511-1, openbmc-20160505-1, v4.4.9, v4.4.8, v4.4.7, openbmc-20160329-2, openbmc-20160329-1, openbmc-20160321-1, v4.4.6, v4.5, v4.4.5 |
|
#
779fe0fb |
| 06-Mar-2016 |
Yan, Zheng <zyan@redhat.com> |
ceph: rados pool namespace support
This patch adds codes that decode pool namespace information in cap message and request reply. Pool namespace is saved in i_layout, it will be passed to libceph wh
ceph: rados pool namespace support
This patch adds codes that decode pool namespace information in cap message and request reply. Pool namespace is saved in i_layout, it will be passed to libceph when doing read/write.
Signed-off-by: Yan, Zheng <zyan@redhat.com>
show more ...
|
Revision tags: v4.4.4, v4.4.3, openbmc-20160222-1, v4.4.2 |
|
#
30c156d9 |
| 13-Feb-2016 |
Yan, Zheng <zyan@redhat.com> |
libceph: rados pool namespace support
Add pool namesapce pointer to struct ceph_file_layout and struct ceph_object_locator. Pool namespace is used by when mapping object to PG, it's also used when c
libceph: rados pool namespace support
Add pool namesapce pointer to struct ceph_file_layout and struct ceph_object_locator. Pool namespace is used by when mapping object to PG, it's also used when composing OSD request.
The namespace pointer in struct ceph_file_layout is RCU protected. So libceph can read namespace without taking lock.
Signed-off-by: Yan, Zheng <zyan@redhat.com> [idryomov@gmail.com: ceph_oloc_destroy(), misc minor changes] Signed-off-by: Ilya Dryomov <idryomov@gmail.com>
show more ...
|
Revision tags: openbmc-20160212-1, openbmc-20160210-1 |
|
#
7627151e |
| 03-Feb-2016 |
Yan, Zheng <zyan@redhat.com> |
libceph: define new ceph_file_layout structure
Define new ceph_file_layout structure and rename old ceph_file_layout to ceph_file_layout_legacy. This is preparation for adding namespace to ceph_file
libceph: define new ceph_file_layout structure
Define new ceph_file_layout structure and rename old ceph_file_layout to ceph_file_layout_legacy. This is preparation for adding namespace to ceph_file_layout structure.
Signed-off-by: Yan, Zheng <zyan@redhat.com>
show more ...
|
#
8387ff25 |
| 10-Jun-2016 |
Linus Torvalds <torvalds@linux-foundation.org> |
vfs: make the string hashes salt the hash
We always mixed in the parent pointer into the dentry name hash, but we did it late at lookup time. It turns out that we can simplify that lookup-time acti
vfs: make the string hashes salt the hash
We always mixed in the parent pointer into the dentry name hash, but we did it late at lookup time. It turns out that we can simplify that lookup-time action by salting the hash with the parent pointer early instead of late.
A few other users of our string hashes also wanted to mix in their own pointers into the hash, and those are updated to use the same mechanism.
Hash users that don't have any particular initial salt can just use the NULL pointer as a no-salt.
Cc: Vegard Nossum <vegard.nossum@oracle.com> Cc: George Spelvin <linux@sciencehorizons.net> Cc: Al Viro <viro@zeniv.linux.org.uk> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
show more ...
|
#
9abd4db7 |
| 18-May-2016 |
Yan, Zheng <zyan@redhat.com> |
ceph: don't use truncate_pagecache() to invalidate read cache
truncate_pagecache() drops dirty pages, it's dangerous to use it to invalidate read cache. Besides, we shouldn't start invalidating read
ceph: don't use truncate_pagecache() to invalidate read cache
truncate_pagecache() drops dirty pages, it's dangerous to use it to invalidate read cache. Besides, we shouldn't start invalidating read cache while there are buffer writers. Because buffer writers may add dirty pages later.
Signed-off-by: Yan, Zheng <zyan@redhat.com>
show more ...
|
#
224a7542 |
| 05-May-2016 |
Yan, Zheng <zyan@redhat.com> |
ceph: tolerate bad i_size for symlink inode
A mds bug can cause symlink's size to be truncated to zero.
Signed-off-by: Yan, Zheng <zyan@redhat.com>
|
#
1b1bc16d |
| 03-May-2016 |
Yan, Zheng <zyan@redhat.com> |
ceph: improve fragtree change detection
check if number of splits in i_fragtree is equal to number of splits in mds reply
Signed-off-by: Yan, Zheng <zyan@redhat.com>
|
#
a4b7431f |
| 03-May-2016 |
Yan, Zheng <zyan@redhat.com> |
ceph: keep leaf frag when updating fragtree
Nodes in i_fragtree are sorted according to ceph_compare_frag(). It means frag node in i_fragtree always follow its direct parent node. To check if a leaf
ceph: keep leaf frag when updating fragtree
Nodes in i_fragtree are sorted according to ceph_compare_frag(). It means frag node in i_fragtree always follow its direct parent node. To check if a leaf node is valid, we just need to check if it's child of previous split node.
Signed-off-by: Yan, Zheng <zyan@redhat.com>
show more ...
|
#
42172119 |
| 03-May-2016 |
Yan, Zheng <zyan@redhat.com> |
ceph: fix dir_auth check in ceph_fill_dirfrag()
-1 is CDIR_AUTH_PARENT, it means dir's auth mds is the same as inode's auth mds
Signed-off-by: Yan, Zheng <zyan@redhat.com>
|
#
a407846e |
| 03-May-2016 |
Yan, Zheng <zyan@redhat.com> |
ceph: don't assume frag tree splits in mds reply are sorted
The algorithm that updates i_fragtree relies on that the frag tree splits in mds reply are of the same order of i_fragtree. This is not tr
ceph: don't assume frag tree splits in mds reply are sorted
The algorithm that updates i_fragtree relies on that the frag tree splits in mds reply are of the same order of i_fragtree. This is not true because current MDS encodes frag tree splits in ascending order of (unsigned)frag_t. But nodes in i_fragtree are sorted according to ceph_frag_compare().
The fix is sort the frag tree splits first, then updates i_fragtree.
Signed-off-by: Yan, Zheng <zyan@redhat.com>
show more ...
|
#
209ae762 |
| 29-Apr-2016 |
Yan, Zheng <zyan@redhat.com> |
ceph: fix inode reference leak
Signed-off-by: Yan, Zheng <zyan@redhat.com>
|
#
f3c4ebe6 |
| 28-Apr-2016 |
Yan, Zheng <zyan@redhat.com> |
ceph: using hash value to compose dentry offset
If MDS sorts dentries in dirfrag in hash order, we use hash value to compose dentry offset. dentry offset is:
(0xff << 52) | ((24 bits hash) << 28)
ceph: using hash value to compose dentry offset
If MDS sorts dentries in dirfrag in hash order, we use hash value to compose dentry offset. dentry offset is:
(0xff << 52) | ((24 bits hash) << 28) | (the nth entry hash hash collision)
This offset is stable across directory fragmentation. This alos means there is no need to reset readdir offset if directory get fragmented in the middle of readdir.
Signed-off-by: Yan, Zheng <zyan@redhat.com>
show more ...
|