b=12888
i=johann, green
Description: mds_mfd_close() ASSERTION(rc == 0)
Details : In mds_mfd_close(), we need protect inode's writecount change
within its orphan write semaphore to prevent possible races.
'tunefs.lustre --param="mdt.quota_type=ug1" $MDTDEV'.
For more information, please refer to bugzilla 13904.
'tunefs.lustre --param="mdt.quota_type=ug1" $MDTDEV'.
For more information, please refer to bugzilla 13904.
+Severity : normal
+Bugzilla : 12888
+Description: mds_mfd_close() ASSERTION(rc == 0)
+Details : In mds_mfd_close(), we need protect inode's writecount change
+ within its orphan write semaphore to prevent possible races.
+
Severity : minor
Bugzilla : 14645
Frequency : rare, on shutdown ost
Description: don't hit live lock with umount ost.
Severity : minor
Bugzilla : 14645
Frequency : rare, on shutdown ost
Description: don't hit live lock with umount ost.
-Description: shrink_dcache_parent can be in long loop with destroy dentries,
+Details : shrink_dcache_parent can be in long loop with destroy dentries,
use shrink_dcache_sb instead.
Severity : minor
use shrink_dcache_sb instead.
Severity : minor
inode->i_nlink, mds_orphan_open_count(inode));
last_orphan = mds_orphan_open_dec_test(inode) &&
inode->i_nlink, mds_orphan_open_count(inode));
last_orphan = mds_orphan_open_dec_test(inode) &&
- mds_inode_is_orphan(inode);
- MDS_UP_WRITE_ORPHAN_SEM(inode);
+ mds_inode_is_orphan(inode);
/* this is half of the actual "close" */
if (mfd->mfd_mode & FMODE_WRITE) {
/* this is half of the actual "close" */
if (mfd->mfd_mode & FMODE_WRITE) {
} else if (mfd->mfd_mode & MDS_FMODE_EXEC) {
mds_allow_write_access(inode);
}
} else if (mfd->mfd_mode & MDS_FMODE_EXEC) {
mds_allow_write_access(inode);
}
+ /* here writecount change also needs protection from orphan write sem.
+ * so drop orphan write sem after mds_put_write_access, bz 12888. */
+ MDS_UP_WRITE_ORPHAN_SEM(inode);
if (last_orphan && unlink_orphan) {
int stripe_count = 0;
if (last_orphan && unlink_orphan) {
int stripe_count = 0;