@@ -1450,9 +1450,11 @@ bool aa_update_label_name(struct aa_ns *ns, struct aa_label *label, gfp_t gfp)
14501450 * cached label name is present and visible
14511451 * @label->hname only exists if label is namespace hierachical
14521452 */
1453- static inline bool use_label_hname (struct aa_ns * ns , struct aa_label * label )
1453+ static inline bool use_label_hname (struct aa_ns * ns , struct aa_label * label ,
1454+ int flags )
14541455{
1455- if (label -> hname && labels_ns (label ) == ns )
1456+ if (label -> hname && (!ns || labels_ns (label ) == ns ) &&
1457+ !(flags & ~FLAG_SHOW_MODE ))
14561458 return true;
14571459
14581460 return false;
@@ -1710,10 +1712,8 @@ void aa_label_xaudit(struct audit_buffer *ab, struct aa_ns *ns,
17101712 AA_BUG (!ab );
17111713 AA_BUG (!label );
17121714
1713- if (!ns )
1714- ns = labels_ns (label );
1715-
1716- if (!use_label_hname (ns , label ) || display_mode (ns , label , flags )) {
1715+ if (!use_label_hname (ns , label , flags ) ||
1716+ display_mode (ns , label , flags )) {
17171717 len = aa_label_asxprint (& name , ns , label , flags , gfp );
17181718 if (len == -1 ) {
17191719 AA_DEBUG ("label print error" );
@@ -1738,10 +1738,7 @@ void aa_label_seq_xprint(struct seq_file *f, struct aa_ns *ns,
17381738 AA_BUG (!f );
17391739 AA_BUG (!label );
17401740
1741- if (!ns )
1742- ns = labels_ns (label );
1743-
1744- if (!use_label_hname (ns , label )) {
1741+ if (!use_label_hname (ns , label , flags )) {
17451742 char * str ;
17461743 int len ;
17471744
@@ -1764,10 +1761,7 @@ void aa_label_xprintk(struct aa_ns *ns, struct aa_label *label, int flags,
17641761{
17651762 AA_BUG (!label );
17661763
1767- if (!ns )
1768- ns = labels_ns (label );
1769-
1770- if (!use_label_hname (ns , label )) {
1764+ if (!use_label_hname (ns , label , flags )) {
17711765 char * str ;
17721766 int len ;
17731767
0 commit comments