|
|
1.1 root 1: diff -u -r -N linux-2.0.33-cyrix-patched-uvfat/fs/uvfat/emd.c linux-2.0.33-cyrix-patched-uvfat-test/fs/uvfat/emd.c
2: --- linux-2.0.33-cyrix-patched-uvfat/fs/uvfat/emd.c Sun Jan 4 15:01:56 1998
3: +++ linux-2.0.33-cyrix-patched-uvfat-test/fs/uvfat/emd.c Sun Jan 4 15:15:23 1998
4: @@ -34,6 +34,7 @@
5: int ret;
6: int old_fs = get_fs();
7: set_fs (KERNEL_DS);
8: + MSDOS_I(inode)->i_binary=2;
9: ret = fat_file_read(inode,filp,buf,count);
10: set_fs (old_fs);
11: return ret;
12: @@ -50,6 +51,7 @@
13: int ret;
14: int old_fs = get_fs();
15: set_fs (KERNEL_DS);
16: + MSDOS_I(inode)->i_binary=2;
17: ret = fat_file_write(inode,filp,buf,count);
18: set_fs (old_fs);
19: return ret;
20: diff -u -r -N linux-2.0.33-cyrix-patched-uvfat/fs/uvfat/file.c linux-2.0.33-cyrix-patched-uvfat-test/fs/uvfat/file.c
21: --- linux-2.0.33-cyrix-patched-uvfat/fs/uvfat/file.c Sun Jan 4 15:01:56 1998
22: +++ linux-2.0.33-cyrix-patched-uvfat-test/fs/uvfat/file.c Sun Jan 4 15:18:16 1998
23: @@ -131,3 +131,38 @@
24: NULL, /* smap */
25: };
26:
27: +/* For other with larger and unaligned file system with readpage */
28: +struct file_operations uvfat_file_operations_readpage = {
29: + NULL, /* lseek - default */
30: + UVFAT_file_read, /* read */
31: + UVFAT_file_write, /* write */
32: + NULL, /* readdir - bad */
33: + NULL, /* select - default */
34: + NULL, /* ioctl - default */
35: + generic_file_mmap, /* mmap */
36: + NULL, /* no special open is needed */
37: + NULL, /* release */
38: + file_fsync /* fsync */
39: +};
40: +
41: +struct inode_operations uvfat_file_inode_operations_readpage = {
42: + &uvfat_file_operations_readpage, /* default file operations */
43: + NULL, /* create */
44: + NULL, /* lookup */
45: + NULL, /* link */
46: + NULL, /* unlink */
47: + NULL, /* symlink */
48: + NULL, /* mkdir */
49: + NULL, /* rmdir */
50: + NULL, /* mknod */
51: + NULL, /* rename */
52: + NULL, /* readlink */
53: + NULL, /* follow_link */
54: + fat_readpage, /* readpage */
55: + NULL, /* writepage */
56: + NULL, /* bmap */
57: + UVFAT_truncate,/* truncate */
58: + NULL, /* permission */
59: + NULL, /* smap */
60: +};
61: +
62: diff -u -r -N linux-2.0.33-cyrix-patched-uvfat/fs/uvfat/inode.c linux-2.0.33-cyrix-patched-uvfat-test/fs/uvfat/inode.c
63: --- linux-2.0.33-cyrix-patched-uvfat/fs/uvfat/inode.c Sun Jan 4 15:01:56 1998
64: +++ linux-2.0.33-cyrix-patched-uvfat-test/fs/uvfat/inode.c Sun Jan 4 15:22:33 1998
65: @@ -165,11 +165,20 @@
66: if (!uvfat_isinit(inode)){
67: inode->u.uvfat_i.i_emd_dir = 0;
68: if (S_ISREG(inode->i_mode)){
69: + if (MSDOS_SB(inode->i_sb)->cvf_format){
70: + if (MSDOS_SB(inode->i_sb)->cvf_format->flags
71: + &CVF_USE_READPAGE){
72: + inode->i_op = &uvfat_file_inode_operations_readpage;
73: + }else{
74: + inode->i_op = &uvfat_file_inode_operations_no_bmap;
75: + }
76: + }else{
77: if (inode->i_op->bmap != NULL){
78: inode->i_op = &uvfat_file_inode_operations;
79: }else{
80: inode->i_op = &uvfat_file_inode_operations_no_bmap;
81: }
82: + }
83: }else if (S_ISDIR(inode->i_mode)){
84: if (dir != NULL){
85: uvfat_setup_dir_inode(inode);
86: diff -u -r -N linux-2.0.33-cyrix-patched-uvfat/fs/uvfat/ioctl.c linux-2.0.33-cyrix-patched-uvfat-test/fs/uvfat/ioctl.c
87: --- linux-2.0.33-cyrix-patched-uvfat/fs/uvfat/ioctl.c Sun Jan 4 15:01:56 1998
88: +++ linux-2.0.33-cyrix-patched-uvfat-test/fs/uvfat/ioctl.c Sun Jan 4 15:24:41 1998
89: @@ -62,6 +62,21 @@
90: {
91: int ret = -EPERM;
92: int err;
93: +
94: + /* forward non-uvfat ioctls - this hopefully doesn't cause conflicts */
95: + if(cmd!=UVFAT_GETVERSION
96: + &&cmd!=UVFAT_READDIR_DOS
97: + &&cmd!=UVFAT_READDIR_EMD
98: + &&cmd!=UVFAT_INIT_EMD
99: + &&cmd!=UVFAT_CREAT_EMD
100: + &&cmd!=UVFAT_RENAME_DOS
101: + &&cmd!=UVFAT_UNLINK_EMD
102: + &&cmd!=UVFAT_UNLINK_DOS
103: + &&cmd!=UVFAT_RMDIR_DOS
104: + &&cmd!=UVFAT_STAT_DOS
105: + &&cmd!=UVFAT_DOS_SETUP)
106: + return fat_dir_ioctl(dir,filp,cmd,data);
107: +
108: /* #Specification: ioctl / acces
109: Only root (effective id) is allowed to do IOCTL on directory
110: in UVFAT. EPERM is returned for other user.
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.