]> pilppa.org Git - linux-2.6-omap-h63xx.git/blobdiff - fs/cifs/inode.c
[XFS] split ondisk vs incore versions of xfs_bmbt_rec_t
[linux-2.6-omap-h63xx.git] / fs / cifs / inode.c
index cfa5b360d12e6f56b6d4f53a5facb5cd8ecb550b..dd4167762a8edaf847913027a9265e3c293144ac 100644 (file)
@@ -583,7 +583,8 @@ void cifs_read_inode(struct inode *inode)
 
        cifs_sb = CIFS_SB(inode->i_sb);
        xid = GetXid();
-       if (cifs_sb->tcon->ses->capabilities & CAP_UNIX)
+
+       if (cifs_sb->tcon->unix_ext)
                cifs_get_inode_info_unix(&inode, "", inode->i_sb, xid);
        else
                cifs_get_inode_info(&inode, "", NULL, inode->i_sb, xid);
@@ -981,7 +982,7 @@ int cifs_mkdir(struct inode *inode, struct dentry *direntry, int mode)
        } else {
 mkdir_get_info:
                inc_nlink(inode);
-               if (pTcon->ses->capabilities & CAP_UNIX)
+               if (pTcon->unix_ext)
                        rc = cifs_get_inode_info_unix(&newinode, full_path,
                                                      inode->i_sb, xid);
                else
@@ -997,7 +998,7 @@ mkdir_get_info:
                  * failed to get it from the server or was set bogus */
                if ((direntry->d_inode) && (direntry->d_inode->i_nlink < 2))
                                direntry->d_inode->i_nlink = 2;
-               if (cifs_sb->tcon->ses->capabilities & CAP_UNIX) {
+               if (pTcon->unix_ext) {
                        mode &= ~current->fs->umask;
                        if (cifs_sb->mnt_cifs_flags & CIFS_MOUNT_SET_UID) {
                                CIFSSMBUnixSetPerms(xid, pTcon, full_path,
@@ -1130,7 +1131,7 @@ int cifs_rename(struct inode *source_inode, struct dentry *source_direntry,
                        kmalloc(2 * sizeof(FILE_UNIX_BASIC_INFO), GFP_KERNEL);
                if (info_buf_source != NULL) {
                        info_buf_target = info_buf_source + 1;
-                       if (pTcon->ses->capabilities & CAP_UNIX)
+                       if (pTcon->unix_ext)
                                rc = CIFSSMBUnixQPathInfo(xid, pTcon, fromName,
                                        info_buf_source,
                                        cifs_sb_source->local_nls,
@@ -1258,7 +1259,7 @@ int cifs_revalidate(struct dentry *direntry)
        local_mtime = direntry->d_inode->i_mtime;
        local_size = direntry->d_inode->i_size;
 
-       if (cifs_sb->tcon->ses->capabilities & CAP_UNIX) {
+       if (cifs_sb->tcon->unix_ext) {
                rc = cifs_get_inode_info_unix(&direntry->d_inode, full_path,
                                              direntry->d_sb, xid);
                if (rc) {
@@ -1346,17 +1347,13 @@ static int cifs_truncate_page(struct address_space *mapping, loff_t from)
        pgoff_t index = from >> PAGE_CACHE_SHIFT;
        unsigned offset = from & (PAGE_CACHE_SIZE - 1);
        struct page *page;
-       char *kaddr;
        int rc = 0;
 
        page = grab_cache_page(mapping, index);
        if (!page)
                return -ENOMEM;
 
-       kaddr = kmap_atomic(page, KM_USER0);
-       memset(kaddr + offset, 0, PAGE_CACHE_SIZE - offset);
-       flush_dcache_page(page);
-       kunmap_atomic(kaddr, KM_USER0);
+       zero_user_page(page, offset, PAGE_CACHE_SIZE - offset, KM_USER0);
        unlock_page(page);
        page_cache_release(page);
        return rc;
@@ -1546,7 +1543,7 @@ int cifs_setattr(struct dentry *direntry, struct iattr *attrs)
                mode = attrs->ia_mode;
        }
 
-       if ((cifs_sb->tcon->ses->capabilities & CAP_UNIX)
+       if ((pTcon->unix_ext)
            && (attrs->ia_valid & (ATTR_MODE | ATTR_GID | ATTR_UID)))
                rc = CIFSSMBUnixSetPerms(xid, pTcon, full_path, mode, uid, gid,
                                         0 /* dev_t */, cifs_sb->local_nls,