• Home
  • Raw
  • Download

Lines Matching +full:srp +full:- +full:capable

1 // SPDX-License-Identifier: GPL-2.0-only
3 * Copyright (C) 2007 Casey Schaufler <casey@schaufler-ca.com>
6 * Casey Schaufler <casey@schaufler-ca.com>
38 SMK_CIPSO = 4, /* load label -> CIPSO mapping */
43 SMK_ONLYCAP = 9, /* the only "capable" label */
51 SMK_CIPSO2 = 17, /* load long label -> CIPSO mapping */
52 SMK_REVOKE_SUBJ = 18, /* set rules with subject label to '-' */
99 * debugging and application bring-up purposes only.
162 #define SMK_OACCESSLEN (sizeof(SMK_OACCESS) - 1)
163 #define SMK_ACCESSLEN (sizeof(SMK_ACCESS) - 1)
176 catsetp[(cat - 1) / 8] |= 0x80 >> ((cat - 1) % 8); in smack_catset_bit()
180 * smk_netlabel_audit_set - fill a netlbl_audit struct
187 nap->loginuid = audit_get_loginuid(current); in smk_netlabel_audit_set()
188 nap->sessionid = audit_get_sessionid(current); in smk_netlabel_audit_set()
189 nap->secid = skp->smk_secid; in smk_netlabel_audit_set()
199 * smk_set_access - add a rule to the rule list or replace an old rule
200 * @srp: the rule to add or replace
209 * Returns 0 if nothing goes wrong or -ENOMEM if it fails
212 static int smk_set_access(struct smack_parsed_rule *srp, in smk_set_access() argument
227 if (sp->smk_object == srp->smk_object && in smk_set_access()
228 sp->smk_subject == srp->smk_subject) { in smk_set_access()
230 sp->smk_access |= srp->smk_access1; in smk_set_access()
231 sp->smk_access &= ~srp->smk_access2; in smk_set_access()
239 rc = -ENOMEM; in smk_set_access()
243 sp->smk_subject = srp->smk_subject; in smk_set_access()
244 sp->smk_object = srp->smk_object; in smk_set_access()
245 sp->smk_access = srp->smk_access1 & ~srp->smk_access2; in smk_set_access()
247 list_add_rcu(&sp->list, rule_list); in smk_set_access()
256 * smk_perm_from_str - parse smack accesses from a text string
268 case '-': in smk_perm_from_str()
304 * smk_fill_rule - Fill Smack rule from strings
310 * @import: if non-zero, import labels
324 rule->smk_subject = smk_import_entry(subject, len); in smk_fill_rule()
325 if (IS_ERR(rule->smk_subject)) in smk_fill_rule()
326 return PTR_ERR(rule->smk_subject); in smk_fill_rule()
328 rule->smk_object = smk_import_entry(object, len); in smk_fill_rule()
329 if (IS_ERR(rule->smk_object)) in smk_fill_rule()
330 return PTR_ERR(rule->smk_object); in smk_fill_rule()
338 return -ENOENT; in smk_fill_rule()
339 rule->smk_subject = skp; in smk_fill_rule()
347 return -ENOENT; in smk_fill_rule()
348 rule->smk_object = skp; in smk_fill_rule()
351 rule->smk_access1 = smk_perm_from_str(access1); in smk_fill_rule()
353 rule->smk_access2 = smk_perm_from_str(access2); in smk_fill_rule()
355 rule->smk_access2 = ~rule->smk_access1; in smk_fill_rule()
361 * smk_parse_rule - parse Smack rule from load string
364 * @import: if non-zero, import labels
366 * Returns 0 on success, -1 on errors.
380 * smk_parse_long_rule - parse Smack rule from rule string
383 * @import: if non-zero, import labels
386 * Returns number of processed bytes on success, -ERRNO on failure.
397 * Parsing the rule in-place, filling all white-spaces with '\0' in smk_parse_long_rule()
405 return -EINVAL; in smk_parse_long_rule()
426 * smk_write_rules_list - write() for any /smack rule file
430 * @ppos: where to start - must be 0
433 * @format: /smack/load or /smack/load2 or /smack/change-rule format.
461 return -EINVAL; in smk_write_rules_list()
468 return -EINVAL; in smk_write_rules_list()
471 count = PAGE_SIZE - 1; in smk_write_rules_list()
485 while (count > 0 && (data[count - 1] != '\n')) in smk_write_rules_list()
486 --count; in smk_write_rules_list()
488 rc = -EINVAL; in smk_write_rules_list()
506 rc = -EINVAL; in smk_write_rules_list()
513 rc = smk_set_access(&rule, &rule.smk_subject->smk_rules, in smk_write_rules_list()
514 &rule.smk_subject->smk_rules_lock); in smk_write_rules_list()
542 if (i-- == 0) in smk_seq_start()
565 static void smk_rule_show(struct seq_file *s, struct smack_rule *srp, int max) in smk_rule_show() argument
573 if (strlen(srp->smk_subject->smk_known) >= max || in smk_rule_show()
574 strlen(srp->smk_object->smk_known) >= max) in smk_rule_show()
577 if (srp->smk_access == 0) in smk_rule_show()
581 srp->smk_subject->smk_known, in smk_rule_show()
582 srp->smk_object->smk_known); in smk_rule_show()
586 if (srp->smk_access & MAY_READ) in smk_rule_show()
588 if (srp->smk_access & MAY_WRITE) in smk_rule_show()
590 if (srp->smk_access & MAY_EXEC) in smk_rule_show()
592 if (srp->smk_access & MAY_APPEND) in smk_rule_show()
594 if (srp->smk_access & MAY_TRANSMUTE) in smk_rule_show()
596 if (srp->smk_access & MAY_LOCK) in smk_rule_show()
598 if (srp->smk_access & MAY_BRINGUP) in smk_rule_show()
621 struct smack_rule *srp; in load_seq_show() local
625 list_for_each_entry_rcu(srp, &skp->smk_rules, list) in load_seq_show()
626 smk_rule_show(s, srp, SMK_LABELLEN); in load_seq_show()
639 * smk_open_load - open() for /smack/load
651 * smk_write_load - write() for /smack/load
655 * @ppos: where to start - must be 0
667 return -EPERM; in smk_write_load()
682 * smk_cipso_doi - initialize the CIPSO domain
698 doip->map.std = NULL; in smk_cipso_doi()
699 doip->doi = smk_cipso_doi_value; in smk_cipso_doi()
700 doip->type = CIPSO_V4_MAP_PASS; in smk_cipso_doi()
701 doip->tags[0] = CIPSO_V4_TAG_RBITMAP; in smk_cipso_doi()
703 doip->tags[rc] = CIPSO_V4_TAG_INVALID; in smk_cipso_doi()
712 rc = netlbl_cfg_cipsov4_map_add(doip->doi, NULL, NULL, NULL, &nai); in smk_cipso_doi()
716 netlbl_cfg_cipsov4_del(doip->doi, &nai); in smk_cipso_doi()
722 * smk_unlbl_ambient - initialize the unlabeled domain
741 rc = netlbl_cfg_unlbl_map_add(smack_net_ambient->smk_known, PF_INET, in smk_unlbl_ambient()
771 struct netlbl_lsm_catmap *cmp = skp->smk_netlabel.attr.mls.cat; in cipso_seq_show()
783 if (strlen(skp->smk_known) >= SMK_LABELLEN) in cipso_seq_show()
786 seq_printf(s, "%s %3d", skp->smk_known, skp->smk_netlabel.attr.mls.lvl); in cipso_seq_show()
807 * smk_open_cipso - open() for /smack/cipso
820 * smk_set_cipso - do the work for write() for cipso and cipso2
840 ssize_t rc = -EINVAL; in smk_set_cipso()
852 return -EPERM; in smk_set_cipso()
854 return -EINVAL; in smk_set_cipso()
857 return -EINVAL; in smk_set_cipso()
859 return -EINVAL; in smk_set_cipso()
881 rule += strlen(skp->smk_known) + 1; in smk_set_cipso()
884 rc = -EOVERFLOW; in smk_set_cipso()
894 rc = -EOVERFLOW; in smk_set_cipso()
911 rc = -EOVERFLOW; in smk_set_cipso()
923 old_cat = skp->smk_netlabel.attr.mls.cat; in smk_set_cipso()
924 rcu_assign_pointer(skp->smk_netlabel.attr.mls.cat, ncats.attr.mls.cat); in smk_set_cipso()
926 skp->smk_netlabel.flags |= NETLBL_SECATTR_MLS_CAT; in smk_set_cipso()
928 skp->smk_netlabel.flags &= ~(u32)NETLBL_SECATTR_MLS_CAT; in smk_set_cipso()
929 skp->smk_netlabel.attr.mls.lvl = ncats.attr.mls.lvl; in smk_set_cipso()
946 * smk_write_cipso - write() for /smack/cipso
982 struct netlbl_lsm_catmap *cmp = skp->smk_netlabel.attr.mls.cat; in cipso2_seq_show()
986 seq_printf(s, "%s %3d", skp->smk_known, skp->smk_netlabel.attr.mls.lvl); in cipso2_seq_show()
1007 * smk_open_cipso2 - open() for /smack/cipso2
1020 * smk_write_cipso2 - write() for /smack/cipso2
1067 if (skp->smk_label != NULL) in net4addr_seq_show()
1068 kp = skp->smk_label->smk_known; in net4addr_seq_show()
1069 seq_printf(s, "%pI4/%d %s\n", &skp->smk_host.s_addr, in net4addr_seq_show()
1070 skp->smk_masks, kp); in net4addr_seq_show()
1083 * smk_open_net4addr - open() for /smack/netlabel
1110 list_add_rcu(&new->list, &smk_net4addr_list); in smk_net4addr_insert()
1118 if (new->smk_masks > m->smk_masks) { in smk_net4addr_insert()
1119 list_add_rcu(&new->list, &smk_net4addr_list); in smk_net4addr_insert()
1124 if (list_is_last(&m->list, &smk_net4addr_list)) { in smk_net4addr_insert()
1125 list_add_rcu(&new->list, &m->list); in smk_net4addr_insert()
1128 m_next = list_entry_rcu(m->list.next, in smk_net4addr_insert()
1130 if (new->smk_masks > m_next->smk_masks) { in smk_net4addr_insert()
1131 list_add_rcu(&new->list, &m->list); in smk_net4addr_insert()
1139 * smk_write_net4addr - write() for /smack/netlabel
1175 return -EPERM; in smk_write_net4addr()
1177 return -EINVAL; in smk_write_net4addr()
1178 if (count < SMK_NETLBLADDRMIN || count > PAGE_SIZE - 1) in smk_write_net4addr()
1179 return -EINVAL; in smk_write_net4addr()
1187 rc = -ENOMEM; in smk_write_net4addr()
1197 rc = -EINVAL; in smk_write_net4addr()
1203 rc = -EINVAL; in smk_write_net4addr()
1208 * If smack begins with '-', it is an option, don't import it in smk_write_net4addr()
1210 if (smack[0] != '-') { in smk_write_net4addr()
1218 * Only the -CIPSO option is supported for IPv4 in smk_write_net4addr()
1221 rc = -EINVAL; in smk_write_net4addr()
1226 for (m = masks, temp_mask = 0; m > 0; m--) { in smk_write_net4addr()
1243 if (snp->smk_host.s_addr == nsa && snp->smk_masks == masks) { in smk_write_net4addr()
1253 rc = -ENOMEM; in smk_write_net4addr()
1256 snp->smk_host.s_addr = newname.sin_addr.s_addr; in smk_write_net4addr()
1257 snp->smk_mask.s_addr = mask.s_addr; in smk_write_net4addr()
1258 snp->smk_label = skp; in smk_write_net4addr()
1259 snp->smk_masks = masks; in smk_write_net4addr()
1267 if (snp->smk_label != NULL) in smk_write_net4addr()
1269 &snp->smk_host, &snp->smk_mask, in smk_write_net4addr()
1273 snp->smk_label = skp; in smk_write_net4addr()
1283 &snp->smk_host, &snp->smk_mask, PF_INET, in smk_write_net4addr()
1284 snp->smk_label->smk_secid, &audit_info); in smk_write_net4addr()
1331 if (skp->smk_label != NULL) in net6addr_seq_show()
1332 seq_printf(s, "%pI6/%d %s\n", &skp->smk_host, skp->smk_masks, in net6addr_seq_show()
1333 skp->smk_label->smk_known); in net6addr_seq_show()
1346 * smk_open_net6addr - open() for /smack/netlabel
1373 list_add_rcu(&new->list, &smk_net6addr_list); in smk_net6addr_insert()
1380 if (new->smk_masks > m->smk_masks) { in smk_net6addr_insert()
1381 list_add_rcu(&new->list, &smk_net6addr_list); in smk_net6addr_insert()
1386 if (list_is_last(&m->list, &smk_net6addr_list)) { in smk_net6addr_insert()
1387 list_add_rcu(&new->list, &m->list); in smk_net6addr_insert()
1390 m_next = list_entry_rcu(m->list.next, in smk_net6addr_insert()
1392 if (new->smk_masks > m_next->smk_masks) { in smk_net6addr_insert()
1393 list_add_rcu(&new->list, &m->list); in smk_net6addr_insert()
1401 * smk_write_net6addr - write() for /smack/netlabel
1434 return -EPERM; in smk_write_net6addr()
1436 return -EINVAL; in smk_write_net6addr()
1437 if (count < SMK_NETLBLADDRMIN || count > PAGE_SIZE - 1) in smk_write_net6addr()
1438 return -EINVAL; in smk_write_net6addr()
1446 rc = -ENOMEM; in smk_write_net6addr()
1460 rc = -EINVAL; in smk_write_net6addr()
1465 rc = -EINVAL; in smk_write_net6addr()
1470 rc = -EINVAL; in smk_write_net6addr()
1477 * If smack begins with '-', it is an option, don't import it in smk_write_net6addr()
1479 if (smack[0] != '-') { in smk_write_net6addr()
1487 * Only -DELETE is supported for IPv6 in smk_write_net6addr()
1490 rc = -EINVAL; in smk_write_net6addr()
1498 m -= 16; in smk_write_net6addr()
1500 fullmask.s6_addr16[i] = (1 << m) - 1; in smk_write_net6addr()
1516 if (mask != snp->smk_masks) in smk_write_net6addr()
1520 snp->smk_host.s6_addr16[i]) { in smk_write_net6addr()
1531 rc = -ENOMEM; in smk_write_net6addr()
1533 snp->smk_host = newname; in smk_write_net6addr()
1534 snp->smk_mask = fullmask; in smk_write_net6addr()
1535 snp->smk_masks = mask; in smk_write_net6addr()
1536 snp->smk_label = skp; in smk_write_net6addr()
1540 snp->smk_label = skp; in smk_write_net6addr()
1566 * smk_read_doi - read() for /smack/doi
1590 * smk_write_doi - write() for /smack/doi
1605 return -EPERM; in smk_write_doi()
1608 return -EINVAL; in smk_write_doi()
1611 return -EFAULT; in smk_write_doi()
1616 return -EINVAL; in smk_write_doi()
1632 * smk_read_direct - read() for /smack/direct
1656 * smk_write_direct - write() for /smack/direct
1672 return -EPERM; in smk_write_direct()
1675 return -EINVAL; in smk_write_direct()
1678 return -EFAULT; in smk_write_direct()
1683 return -EINVAL; in smk_write_direct()
1693 if (skp->smk_netlabel.attr.mls.lvl == in smk_write_direct()
1695 skp->smk_netlabel.attr.mls.lvl = i; in smk_write_direct()
1710 * smk_read_mapped - read() for /smack/mapped
1734 * smk_write_mapped - write() for /smack/mapped
1750 return -EPERM; in smk_write_mapped()
1753 return -EINVAL; in smk_write_mapped()
1756 return -EFAULT; in smk_write_mapped()
1761 return -EINVAL; in smk_write_mapped()
1771 if (skp->smk_netlabel.attr.mls.lvl == in smk_write_mapped()
1773 skp->smk_netlabel.attr.mls.lvl = i; in smk_write_mapped()
1788 * smk_read_ambient - read() for /smack/ambient
1810 asize = strlen(smack_net_ambient->smk_known) + 1; in smk_read_ambient()
1814 smack_net_ambient->smk_known, in smk_read_ambient()
1817 rc = -EINVAL; in smk_read_ambient()
1825 * smk_write_ambient - write() for /smack/ambient
1842 return -EPERM; in smk_write_ambient()
1846 return -EINVAL; in smk_write_ambient()
1860 oldambient = smack_net_ambient->smk_known; in smk_write_ambient()
1896 seq_puts(s, sklep->smk_label->smk_known); in onlycap_seq_show()
1915 * smk_list_swap_rcu - swap public list with a private one in RCU-safe way
1932 first = public->next; in smk_list_swap_rcu()
1933 last = public->prev; in smk_list_swap_rcu()
1935 /* Publish private list in place of public in RCU-safe way */ in smk_list_swap_rcu()
1936 private->prev->next = public; in smk_list_swap_rcu()
1937 private->next->prev = public; in smk_list_swap_rcu()
1938 rcu_assign_pointer(public->next, private->next); in smk_list_swap_rcu()
1939 public->prev = private->prev; in smk_list_swap_rcu()
1945 private->next = first; in smk_list_swap_rcu()
1946 private->prev = last; in smk_list_swap_rcu()
1947 first->prev = private; in smk_list_swap_rcu()
1948 last->next = private; in smk_list_swap_rcu()
1953 * smk_parse_label_list - parse list of Smack labels, separated by spaces
1976 return -ENOMEM; in smk_parse_label_list()
1978 sklep->smk_label = skp; in smk_parse_label_list()
1979 list_add(&sklep->list, list); in smk_parse_label_list()
1986 * smk_destroy_label_list - destroy a list of smack_known_list_elem
2001 * smk_write_onlycap - write() for smackfs/onlycap
2017 return -EPERM; in smk_write_onlycap()
2020 return -EINVAL; in smk_write_onlycap()
2033 * Importing will also reject a label beginning with '-', in smk_write_onlycap()
2034 * so "-usecapabilities" will also work. in smk_write_onlycap()
2039 if (!rc || (rc == -EINVAL && list_empty(&list_tmp))) { in smk_write_onlycap()
2061 * smk_read_unconfined - read() for smackfs/unconfined
2073 ssize_t rc = -EINVAL; in smk_read_unconfined()
2080 smack = smack_unconfined->smk_known; in smk_read_unconfined()
2091 * smk_write_unconfined - write() for smackfs/unconfined
2107 return -EPERM; in smk_write_unconfined()
2110 return -EINVAL; in smk_write_unconfined()
2120 * Importing will also reject a label beginning with '-', in smk_write_unconfined()
2121 * so "-confine" will also work. in smk_write_unconfined()
2126 if (PTR_ERR(skp) == -EINVAL) in smk_write_unconfined()
2148 * smk_read_logging - read() for /smack/logging
2171 * smk_write_logging - write() for /smack/logging
2186 return -EPERM; in smk_write_logging()
2189 return -EINVAL; in smk_write_logging()
2192 return -EFAULT; in smk_write_logging()
2197 return -EINVAL; in smk_write_logging()
2199 return -EINVAL; in smk_write_logging()
2213 * Seq_file read operations for /smack/load-self
2220 return smk_seq_start(s, pos, &tsp->smk_rules); in load_self_seq_start()
2227 return smk_seq_next(s, v, pos, &tsp->smk_rules); in load_self_seq_next()
2233 struct smack_rule *srp = in load_self_seq_show() local
2236 smk_rule_show(s, srp, SMK_LABELLEN); in load_self_seq_show()
2250 * smk_open_load_self - open() for /smack/load-self2
2262 * smk_write_load_self - write() for /smack/load-self
2266 * @ppos: where to start - must be 0
2274 return smk_write_rules_list(file, buf, count, ppos, &tsp->smk_rules, in smk_write_load_self()
2275 &tsp->smk_rules_lock, SMK_FIXED24_FMT); in smk_write_load_self()
2287 * smk_user_access - handle access check transaction
2291 * @ppos: where to start - must be 0
2292 * @format: /smack/load or /smack/load2 or /smack/change-rule format.
2307 return -EINVAL; in smk_user_access()
2311 * simple_transaction_get() returns null-terminated data in smk_user_access()
2319 else if (res != -ENOENT) in smk_user_access()
2336 * smk_write_access - handle access check transaction
2340 * @ppos: where to start - must be 0
2363 struct smack_rule *srp; in load2_seq_show() local
2367 list_for_each_entry_rcu(srp, &skp->smk_rules, list) in load2_seq_show()
2368 smk_rule_show(s, srp, SMK_LONGLABEL); in load2_seq_show()
2381 * smk_open_load2 - open() for /smack/load2
2393 * smk_write_load2 - write() for /smack/load2
2397 * @ppos: where to start - must be 0
2407 return -EPERM; in smk_write_load2()
2422 * Seq_file read operations for /smack/load-self2
2429 return smk_seq_start(s, pos, &tsp->smk_rules); in load_self2_seq_start()
2436 return smk_seq_next(s, v, pos, &tsp->smk_rules); in load_self2_seq_next()
2442 struct smack_rule *srp = in load_self2_seq_show() local
2445 smk_rule_show(s, srp, SMK_LONGLABEL); in load_self2_seq_show()
2458 * smk_open_load_self2 - open() for /smack/load-self2
2470 * smk_write_load_self2 - write() for /smack/load-self2
2474 * @ppos: where to start - must be 0
2482 return smk_write_rules_list(file, buf, count, ppos, &tsp->smk_rules, in smk_write_load_self2()
2483 &tsp->smk_rules_lock, SMK_LONG_FMT); in smk_write_load_self2()
2495 * smk_write_access2 - handle access check transaction
2499 * @ppos: where to start - must be 0
2515 * smk_write_revoke_subj - write() for /smack/revoke-subject
2519 * @ppos: where to start - must be 0
2533 return -EINVAL; in smk_write_revoke_subj()
2536 return -EPERM; in smk_write_revoke_subj()
2539 return -EINVAL; in smk_write_revoke_subj()
2555 rule_list = &skp->smk_rules; in smk_write_revoke_subj()
2556 rule_lock = &skp->smk_rules_lock; in smk_write_revoke_subj()
2561 sp->smk_access = 0; in smk_write_revoke_subj()
2581 * smk_init_sysfs - initialize /sys/fs/smackfs
2590 * smk_write_change_rule - write() for /smack/change-rule
2594 * @ppos: where to start - must be 0
2603 return -EPERM; in smk_write_change_rule()
2617 * smk_read_syslog - read() for smackfs/syslog
2629 ssize_t rc = -EINVAL; in smk_read_syslog()
2640 asize = strlen(skp->smk_known) + 1; in smk_read_syslog()
2643 rc = simple_read_from_buffer(buf, cn, ppos, skp->smk_known, in smk_read_syslog()
2650 * smk_write_syslog - write() for smackfs/syslog
2666 return -EPERM; in smk_write_syslog()
2670 return -EINVAL; in smk_write_syslog()
2693 * Seq_file read operations for /smack/relabel-self
2700 return smk_seq_start(s, pos, &tsp->smk_relabel); in relabel_self_seq_start()
2707 return smk_seq_next(s, v, pos, &tsp->smk_relabel); in relabel_self_seq_next()
2716 seq_puts(s, sklep->smk_label->smk_known); in relabel_self_seq_show()
2730 * smk_open_relabel_self - open() for /smack/relabel-self
2732 * @file: "relabel-self" file pointer
2734 * Connect our relabel_self_seq_* operations with /smack/relabel-self
2743 * smk_write_relabel_self - write() for /smack/relabel-self
2747 * @ppos: where to start - must be 0
2761 return -EPERM; in smk_write_relabel_self()
2768 return -EINVAL; in smk_write_relabel_self()
2770 return -EINVAL; in smk_write_relabel_self()
2779 if (!rc || (rc == -EINVAL && list_empty(&list_tmp))) { in smk_write_relabel_self()
2785 rc = -ENOMEM; in smk_write_relabel_self()
2789 smk_destroy_label_list(&tsp->smk_relabel); in smk_write_relabel_self()
2790 list_splice(&list_tmp, &tsp->smk_relabel); in smk_write_relabel_self()
2808 * smk_read_ptrace - read() for /smack/ptrace
2831 * smk_write_ptrace - write() for /smack/ptrace
2835 * @ppos: where to start - must be 0
2844 return -EPERM; in smk_write_ptrace()
2847 return -EINVAL; in smk_write_ptrace()
2850 return -EFAULT; in smk_write_ptrace()
2855 return -EINVAL; in smk_write_ptrace()
2857 return -EINVAL; in smk_write_ptrace()
2870 * smk_fill_super - fill the smackfs superblock
2900 "load-self", &smk_load_self_ops, S_IRUGO|S_IWUGO}, in smk_fill_super()
2908 "load-self2", &smk_load_self2_ops, S_IRUGO|S_IWUGO}, in smk_fill_super()
2914 "revoke-subject", &smk_revoke_subj_ops, in smk_fill_super()
2917 "change-rule", &smk_change_rule_ops, S_IRUGO|S_IWUSR}, in smk_fill_super()
2931 "relabel-self", &smk_relabel_self_ops, in smk_fill_super()
2948 * smk_get_tree - get the smackfs superblock
2965 * smk_init_fs_context - Initialise a filesystem context for smackfs
2970 fc->ops = &smk_context_ops; in smk_init_fs_context()
2983 * init_smk_fs - get the smackfs superblock