Lines Matching full:sb

53 static int parse_mount_options(struct super_block *sb, char *options,  in parse_mount_options()  argument
56 struct orangefs_sb_info_s *orangefs_sb = ORANGEFS_SB(sb); in parse_mount_options()
64 sb->s_flags &= ~SB_POSIXACL; in parse_mount_options()
77 sb->s_flags |= SB_POSIXACL; in parse_mount_options()
105 static struct inode *orangefs_alloc_inode(struct super_block *sb) in orangefs_alloc_inode() argument
168 struct super_block *sb = NULL; in orangefs_statfs() local
170 sb = dentry->d_sb; in orangefs_statfs()
173 "%s: called on sb %p (fs_id is %d)\n", in orangefs_statfs()
175 sb, in orangefs_statfs()
176 (int)(ORANGEFS_SB(sb)->fs_id)); in orangefs_statfs()
181 new_op->upcall.req.statfs.fs_id = ORANGEFS_SB(sb)->fs_id; in orangefs_statfs()
183 if (ORANGEFS_SB(sb)->flags & ORANGEFS_OPT_INTR) in orangefs_statfs()
202 buf->f_type = sb->s_magic; in orangefs_statfs()
203 memcpy(&buf->f_fsid, &ORANGEFS_SB(sb)->fs_id, sizeof(buf->f_fsid)); in orangefs_statfs()
224 static int orangefs_remount_fs(struct super_block *sb, int *flags, char *data) in orangefs_remount_fs() argument
227 return parse_mount_options(sb, data, 1); in orangefs_remount_fs()
275 * store the id assigned to this sb -- it's just a in orangefs_remount()
325 static struct dentry *orangefs_fh_to_dentry(struct super_block *sb, in orangefs_fh_to_dentry() argument
342 return d_obtain_alias(orangefs_iget(sb, &refn)); in orangefs_fh_to_dentry()
412 static int orangefs_fill_sb(struct super_block *sb, in orangefs_fill_sb() argument
421 ORANGEFS_SB(sb)->sb = sb; in orangefs_fill_sb()
423 ORANGEFS_SB(sb)->root_khandle = fs_mount->root_khandle; in orangefs_fill_sb()
424 ORANGEFS_SB(sb)->fs_id = fs_mount->fs_id; in orangefs_fill_sb()
425 ORANGEFS_SB(sb)->id = fs_mount->id; in orangefs_fill_sb()
428 ret = parse_mount_options(sb, data, silent); in orangefs_fill_sb()
434 sb->s_xattr = orangefs_xattr_handlers; in orangefs_fill_sb()
435 sb->s_magic = ORANGEFS_SUPER_MAGIC; in orangefs_fill_sb()
436 sb->s_op = &orangefs_s_ops; in orangefs_fill_sb()
437 sb->s_d_op = &orangefs_dentry_operations; in orangefs_fill_sb()
439 sb->s_blocksize = PAGE_SIZE; in orangefs_fill_sb()
440 sb->s_blocksize_bits = PAGE_SHIFT; in orangefs_fill_sb()
441 sb->s_maxbytes = MAX_LFS_FILESIZE; in orangefs_fill_sb()
443 ret = super_setup_bdi(sb); in orangefs_fill_sb()
447 root_object.khandle = ORANGEFS_SB(sb)->root_khandle; in orangefs_fill_sb()
448 root_object.fs_id = ORANGEFS_SB(sb)->fs_id; in orangefs_fill_sb()
454 root = orangefs_iget(sb, &root_object); in orangefs_fill_sb()
468 sb->s_export_op = &orangefs_export_ops; in orangefs_fill_sb()
469 sb->s_root = root_dentry; in orangefs_fill_sb()
479 struct super_block *sb = ERR_PTR(-EINVAL); in orangefs_mount() local
516 sb = sget(fst, NULL, set_anon_super, flags, NULL); in orangefs_mount()
518 if (IS_ERR(sb)) { in orangefs_mount()
519 d = ERR_CAST(sb); in orangefs_mount()
525 /* alloc and init our private orangefs sb info */ in orangefs_mount()
526 sb->s_fs_info = kzalloc(sizeof(struct orangefs_sb_info_s), GFP_KERNEL); in orangefs_mount()
527 if (!ORANGEFS_SB(sb)) { in orangefs_mount()
532 ret = orangefs_fill_sb(sb, in orangefs_mount()
545 strncpy(ORANGEFS_SB(sb)->devname, in orangefs_mount()
550 ORANGEFS_SB(sb)->mount_pending = 0; in orangefs_mount()
553 * finally, add this sb to our list of known orangefs in orangefs_mount()
554 * sb's in orangefs_mount()
557 "Adding SB %p to orangefs superblocks\n", in orangefs_mount()
558 ORANGEFS_SB(sb)); in orangefs_mount()
560 list_add_tail(&ORANGEFS_SB(sb)->list, &orangefs_superblocks); in orangefs_mount()
565 ORANGEFS_SB(sb)->no_list = 0; in orangefs_mount()
579 return dget(sb->s_root); in orangefs_mount()
582 /* Will call orangefs_kill_sb with sb not in list. */ in orangefs_mount()
583 ORANGEFS_SB(sb)->no_list = 1; in orangefs_mount()
585 deactivate_locked_super(sb); in orangefs_mount()
598 void orangefs_kill_sb(struct super_block *sb) in orangefs_kill_sb() argument
603 /* provided sb cleanup */ in orangefs_kill_sb()
604 kill_anon_super(sb); in orangefs_kill_sb()
606 if (!ORANGEFS_SB(sb)) { in orangefs_kill_sb()
615 r = orangefs_unmount(ORANGEFS_SB(sb)->id, ORANGEFS_SB(sb)->fs_id, in orangefs_kill_sb()
616 ORANGEFS_SB(sb)->devname); in orangefs_kill_sb()
618 ORANGEFS_SB(sb)->mount_pending = 1; in orangefs_kill_sb()
620 if (!ORANGEFS_SB(sb)->no_list) { in orangefs_kill_sb()
621 /* remove the sb from our list of orangefs specific sb's */ in orangefs_kill_sb()
624 __list_del_entry(&ORANGEFS_SB(sb)->list); in orangefs_kill_sb()
625 ORANGEFS_SB(sb)->list.prev = NULL; in orangefs_kill_sb()
637 kfree(ORANGEFS_SB(sb)); in orangefs_kill_sb()