/* setup defaults */
        v9ses->maxdata = 8192;
-       v9ses->extended = 1;
+       v9ses->flags = V9FS_EXTENDED;
        v9ses->afid = ~0;
        v9ses->debug = 0;
        v9ses->cache = 0;
                        match_strcpy(v9ses->remotename, &args[0]);
                        break;
                case Opt_legacy:
-                       v9ses->extended = 0;
+                       v9ses->flags &= ~V9FS_EXTENDED;
                        break;
                case Opt_nodevmap:
                        v9ses->nodev = 1;
                v9ses->maxdata = v9ses->trans->maxsize-P9_IOHDRSZ;
 
        v9ses->clnt = p9_client_create(trans, v9ses->maxdata+P9_IOHDRSZ,
-               v9ses->extended);
+               v9fs_extended(v9ses));
 
        if (IS_ERR(v9ses->clnt)) {
                retval = PTR_ERR(v9ses->clnt);
 
 struct v9fs_session_info {
        /* options */
        unsigned int maxdata;
-       unsigned char extended; /* set to 1 if we are using UNIX extensions */
+       unsigned char flags;    /* session flags */
        unsigned char nodev;    /* set to 1 if no disable device mapping */
        unsigned short debug;   /* debug level */
        unsigned int afid;      /* authentication fid */
        struct dentry *debugfs_dir;
 };
 
+/* session flags */
+enum {
+       V9FS_EXTENDED,
+};
+
 /* possible values of ->cache */
 /* eventually support loose, tight, time, session, default always none */
 enum {
 {
        return (inode->i_sb->s_fs_info);
 }
+
+static inline int v9fs_extended(struct v9fs_session_info *v9ses)
+{
+       return v9ses->flags & V9FS_EXTENDED;
+}
 
        res = mode & 0777;
        if (S_ISDIR(mode))
                res |= P9_DMDIR;
-       if (v9ses->extended) {
+       if (v9fs_extended(v9ses)) {
                if (S_ISLNK(mode))
                        res |= P9_DMSYMLINK;
                if (v9ses->nodev == 0) {
 
        if ((mode & P9_DMDIR) == P9_DMDIR)
                res |= S_IFDIR;
-       else if ((mode & P9_DMSYMLINK) && (v9ses->extended))
+       else if ((mode & P9_DMSYMLINK) && (v9fs_extended(v9ses)))
                res |= S_IFLNK;
-       else if ((mode & P9_DMSOCKET) && (v9ses->extended)
+       else if ((mode & P9_DMSOCKET) && (v9fs_extended(v9ses))
                 && (v9ses->nodev == 0))
                res |= S_IFSOCK;
-       else if ((mode & P9_DMNAMEDPIPE) && (v9ses->extended)
+       else if ((mode & P9_DMNAMEDPIPE) && (v9fs_extended(v9ses))
                 && (v9ses->nodev == 0))
                res |= S_IFIFO;
-       else if ((mode & P9_DMDEVICE) && (v9ses->extended)
+       else if ((mode & P9_DMDEVICE) && (v9fs_extended(v9ses))
                 && (v9ses->nodev == 0))
                res |= S_IFBLK;
        else
                res |= S_IFREG;
 
-       if (v9ses->extended) {
+       if (v9fs_extended(v9ses)) {
                if ((mode & P9_DMSETUID) == P9_DMSETUID)
                        res |= S_ISUID;
 
                case S_IFBLK:
                case S_IFCHR:
                case S_IFSOCK:
-                       if(!v9ses->extended) {
+                       if (!v9fs_extended(v9ses)) {
                                P9_DPRINTK(P9_DEBUG_ERROR,
                                      "special files without extended mode\n");
                                return ERR_PTR(-EINVAL);
                        inode->i_fop = &v9fs_file_operations;
                        break;
                case S_IFLNK:
-                       if(!v9ses->extended) {
+                       if (!v9fs_extended(v9ses)) {
                                P9_DPRINTK(P9_DEBUG_ERROR,
                                        "extended modes used w/o 9P2000.u\n");
                                return ERR_PTR(-EINVAL);
                        break;
                case S_IFDIR:
                        inc_nlink(inode);
-                       if(v9ses->extended)
+                       if (v9fs_extended(v9ses))
                                inode->i_op = &v9fs_dir_inode_operations_ext;
                        else
                                inode->i_op = &v9fs_dir_inode_operations;
        if (iattr->ia_valid & ATTR_SIZE)
                wstat.length = iattr->ia_size;
 
-       if (v9ses->extended) {
+       if (v9fs_extended(v9ses)) {
                if (iattr->ia_valid & ATTR_UID)
                        wstat.n_uid = iattr->ia_uid;
 
        inode->i_uid = v9ses->uid;
        inode->i_gid = v9ses->gid;
 
-       if (v9ses->extended) {
+       if (v9fs_extended(v9ses)) {
                inode->i_uid = stat->n_uid;
                inode->i_gid = stat->n_gid;
        }
        if(IS_ERR(fid))
                return PTR_ERR(fid);
 
-       if (!v9ses->extended)
+       if (!v9fs_extended(v9ses))
                return -EBADF;
 
        st = p9_client_stat(fid);
        struct p9_fid *fid;
 
        v9ses = v9fs_inode2v9ses(dir);
-       if (!v9ses->extended) {
+       if (!v9fs_extended(v9ses)) {
                P9_DPRINTK(P9_DEBUG_ERROR, "not extended\n");
                return -EPERM;
        }