shmem.c (cb28a1bbdb4790378e7366d6c9ee1d2340b84f92) | shmem.c (14fcc23fdc78e9d32372553ccf21758a9bd56fa1) |
---|---|
1/* 2 * Resizable virtual memory filesystem for Linux. 3 * 4 * Copyright (C) 2000 Linus Torvalds. 5 * 2000 Transmeta Corp. 6 * 2000-2001 Christoph Rohland 7 * 2000-2001 SAP AG 8 * 2002 Red Hat Inc. --- 1499 unchanged lines hidden (view full) --- 1508 return NULL; 1509 1510 inode = new_inode(sb); 1511 if (inode) { 1512 inode->i_mode = mode; 1513 inode->i_uid = current->fsuid; 1514 inode->i_gid = current->fsgid; 1515 inode->i_blocks = 0; | 1/* 2 * Resizable virtual memory filesystem for Linux. 3 * 4 * Copyright (C) 2000 Linus Torvalds. 5 * 2000 Transmeta Corp. 6 * 2000-2001 Christoph Rohland 7 * 2000-2001 SAP AG 8 * 2002 Red Hat Inc. --- 1499 unchanged lines hidden (view full) --- 1508 return NULL; 1509 1510 inode = new_inode(sb); 1511 if (inode) { 1512 inode->i_mode = mode; 1513 inode->i_uid = current->fsuid; 1514 inode->i_gid = current->fsgid; 1515 inode->i_blocks = 0; |
1516 inode->i_mapping->a_ops = &shmem_aops; | |
1517 inode->i_mapping->backing_dev_info = &shmem_backing_dev_info; 1518 inode->i_atime = inode->i_mtime = inode->i_ctime = CURRENT_TIME; 1519 inode->i_generation = get_seconds(); 1520 info = SHMEM_I(inode); 1521 memset(info, 0, (char *)inode - (char *)info); 1522 spin_lock_init(&info->lock); 1523 INIT_LIST_HEAD(&info->swaplist); 1524 1525 switch (mode & S_IFMT) { 1526 default: 1527 inode->i_op = &shmem_special_inode_operations; 1528 init_special_inode(inode, mode, dev); 1529 break; 1530 case S_IFREG: | 1516 inode->i_mapping->backing_dev_info = &shmem_backing_dev_info; 1517 inode->i_atime = inode->i_mtime = inode->i_ctime = CURRENT_TIME; 1518 inode->i_generation = get_seconds(); 1519 info = SHMEM_I(inode); 1520 memset(info, 0, (char *)inode - (char *)info); 1521 spin_lock_init(&info->lock); 1522 INIT_LIST_HEAD(&info->swaplist); 1523 1524 switch (mode & S_IFMT) { 1525 default: 1526 inode->i_op = &shmem_special_inode_operations; 1527 init_special_inode(inode, mode, dev); 1528 break; 1529 case S_IFREG: |
1530 inode->i_mapping->a_ops = &shmem_aops; |
|
1531 inode->i_op = &shmem_inode_operations; 1532 inode->i_fop = &shmem_file_operations; 1533 mpol_shared_policy_init(&info->policy, 1534 shmem_get_sbmpol(sbinfo)); 1535 break; 1536 case S_IFDIR: 1537 inc_nlink(inode); 1538 /* Some things misbehave if size == 0 on a directory */ --- 385 unchanged lines hidden (view full) --- 1924 inode->i_op = &shmem_symlink_inline_operations; 1925 } else { 1926 error = shmem_getpage(inode, 0, &page, SGP_WRITE, NULL); 1927 if (error) { 1928 iput(inode); 1929 return error; 1930 } 1931 unlock_page(page); | 1531 inode->i_op = &shmem_inode_operations; 1532 inode->i_fop = &shmem_file_operations; 1533 mpol_shared_policy_init(&info->policy, 1534 shmem_get_sbmpol(sbinfo)); 1535 break; 1536 case S_IFDIR: 1537 inc_nlink(inode); 1538 /* Some things misbehave if size == 0 on a directory */ --- 385 unchanged lines hidden (view full) --- 1924 inode->i_op = &shmem_symlink_inline_operations; 1925 } else { 1926 error = shmem_getpage(inode, 0, &page, SGP_WRITE, NULL); 1927 if (error) { 1928 iput(inode); 1929 return error; 1930 } 1931 unlock_page(page); |
1932 inode->i_mapping->a_ops = &shmem_aops; |
|
1932 inode->i_op = &shmem_symlink_inode_operations; 1933 kaddr = kmap_atomic(page, KM_USER0); 1934 memcpy(kaddr, symname, len); 1935 kunmap_atomic(kaddr, KM_USER0); 1936 set_page_dirty(page); 1937 page_cache_release(page); 1938 } 1939 if (dir->i_mode & S_ISGID) --- 664 unchanged lines hidden --- | 1933 inode->i_op = &shmem_symlink_inode_operations; 1934 kaddr = kmap_atomic(page, KM_USER0); 1935 memcpy(kaddr, symname, len); 1936 kunmap_atomic(kaddr, KM_USER0); 1937 set_page_dirty(page); 1938 page_cache_release(page); 1939 } 1940 if (dir->i_mode & S_ISGID) --- 664 unchanged lines hidden --- |