Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
L
linux
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
Analytics
Analytics
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Commits
Issue Boards
Open sidebar
nexedi
linux
Commits
b9386771
Commit
b9386771
authored
Oct 03, 2004
by
Anton Altaparmakov
Browse files
Options
Browse Files
Download
Plain Diff
Merge
ssh://linux-ntfs@bkbits.net/ntfs-2.6-devel
into cantab.net:/home/src/ntfs-2.6-devel
parents
54f4cc4a
ec4db73b
Changes
11
Show whitespace changes
Inline
Side-by-side
Showing
11 changed files
with
63 additions
and
42 deletions
+63
-42
Documentation/filesystems/ntfs.txt
Documentation/filesystems/ntfs.txt
+2
-0
Documentation/tty.txt
Documentation/tty.txt
+4
-4
arch/ppc/platforms/pmac_pci.c
arch/ppc/platforms/pmac_pci.c
+7
-0
arch/ppc64/kernel/pmac_pci.c
arch/ppc64/kernel/pmac_pci.c
+11
-1
drivers/char/tty_io.c
drivers/char/tty_io.c
+5
-8
drivers/char/tty_ioctl.c
drivers/char/tty_ioctl.c
+9
-21
fs/locks.c
fs/locks.c
+7
-4
fs/ntfs/ChangeLog
fs/ntfs/ChangeLog
+13
-2
fs/ntfs/Makefile
fs/ntfs/Makefile
+1
-1
fs/ntfs/attrib.c
fs/ntfs/attrib.c
+3
-1
include/linux/tty.h
include/linux/tty.h
+1
-0
No files found.
Documentation/filesystems/ntfs.txt
View file @
b9386771
...
@@ -277,6 +277,8 @@ ChangeLog
...
@@ -277,6 +277,8 @@ ChangeLog
Note, a technical ChangeLog aimed at kernel hackers is in fs/ntfs/ChangeLog.
Note, a technical ChangeLog aimed at kernel hackers is in fs/ntfs/ChangeLog.
2.1.20:
- Fix two stupid bugs introduced in 2.1.18 release.
2.1.19:
2.1.19:
- Minor bugfix in handling of the default upcase table.
- Minor bugfix in handling of the default upcase table.
- Many internal cleanups and improvements. Many thanks to Linus
- Many internal cleanups and improvements. Many thanks to Linus
...
...
Documentation/tty.txt
View file @
b9386771
...
@@ -60,8 +60,8 @@ chars_in_buffer() - Report the number of bytes in the buffer.
...
@@ -60,8 +60,8 @@ chars_in_buffer() - Report the number of bytes in the buffer.
set_termios() - Called on termios structure changes. The caller
set_termios() - Called on termios structure changes. The caller
passes the old termios data and the current data
passes the old termios data and the current data
is in the tty. Called under the termios
lock
so
is in the tty. Called under the termios
semaphore
so
may not
sleep. Serialized against itself only.
allowed to
sleep. Serialized against itself only.
read() - Move data from the line discipline to the user.
read() - Move data from the line discipline to the user.
Multiple read calls may occur in parallel and the
Multiple read calls may occur in parallel and the
...
@@ -158,8 +158,8 @@ write_room() - Return the number of characters tht can be stuffed
...
@@ -158,8 +158,8 @@ write_room() - Return the number of characters tht can be stuffed
ioctl() - Called when an ioctl may be for the driver
ioctl() - Called when an ioctl may be for the driver
set_termios() - Called on termios change,
may get parallel calls,
set_termios() - Called on termios change,
serialized against
may block for now (may change that)
itself by a semaphore. May sleep.
set_ldisc() - Notifier for discipline change. At the point this
set_ldisc() - Notifier for discipline change. At the point this
is done the discipline is not yet usable. Can now
is done the discipline is not yet usable. Can now
...
...
arch/ppc/platforms/pmac_pci.c
View file @
b9386771
...
@@ -316,6 +316,10 @@ u3_ht_read_config(struct pci_bus *bus, unsigned int devfn, int offset,
...
@@ -316,6 +316,10 @@ u3_ht_read_config(struct pci_bus *bus, unsigned int devfn, int offset,
unsigned
int
addr
;
unsigned
int
addr
;
int
i
;
int
i
;
struct
device_node
*
np
=
pci_busdev_to_OF_node
(
bus
,
devfn
);
if
(
np
==
NULL
)
return
PCIBIOS_DEVICE_NOT_FOUND
;
/*
/*
* When a device in K2 is powered down, we die on config
* When a device in K2 is powered down, we die on config
* cycle accesses. Fix that here.
* cycle accesses. Fix that here.
...
@@ -363,6 +367,9 @@ u3_ht_write_config(struct pci_bus *bus, unsigned int devfn, int offset,
...
@@ -363,6 +367,9 @@ u3_ht_write_config(struct pci_bus *bus, unsigned int devfn, int offset,
unsigned
int
addr
;
unsigned
int
addr
;
int
i
;
int
i
;
struct
device_node
*
np
=
pci_busdev_to_OF_node
(
bus
,
devfn
);
if
(
np
==
NULL
)
return
PCIBIOS_DEVICE_NOT_FOUND
;
/*
/*
* When a device in K2 is powered down, we die on config
* When a device in K2 is powered down, we die on config
* cycle accesses. Fix that here.
* cycle accesses. Fix that here.
...
...
arch/ppc64/kernel/pmac_pci.c
View file @
b9386771
...
@@ -271,7 +271,7 @@ static int __pmac u3_ht_read_config(struct pci_bus *bus, unsigned int devfn,
...
@@ -271,7 +271,7 @@ static int __pmac u3_ht_read_config(struct pci_bus *bus, unsigned int devfn,
int
offset
,
int
len
,
u32
*
val
)
int
offset
,
int
len
,
u32
*
val
)
{
{
struct
pci_controller
*
hose
;
struct
pci_controller
*
hose
;
struct
device_node
*
busdn
;
struct
device_node
*
busdn
,
*
dn
;
unsigned
long
addr
;
unsigned
long
addr
;
if
(
bus
->
self
)
if
(
bus
->
self
)
...
@@ -284,6 +284,16 @@ static int __pmac u3_ht_read_config(struct pci_bus *bus, unsigned int devfn,
...
@@ -284,6 +284,16 @@ static int __pmac u3_ht_read_config(struct pci_bus *bus, unsigned int devfn,
if
(
hose
==
NULL
)
if
(
hose
==
NULL
)
return
PCIBIOS_DEVICE_NOT_FOUND
;
return
PCIBIOS_DEVICE_NOT_FOUND
;
/* We only allow config cycles to devices that are in OF device-tree
* as we are apparently having some weird things going on with some
* revs of K2 on recent G5s
*/
for
(
dn
=
busdn
->
child
;
dn
;
dn
=
dn
->
sibling
)
if
(
dn
->
devfn
==
devfn
)
break
;
if
(
dn
==
NULL
)
return
PCIBIOS_DEVICE_NOT_FOUND
;
addr
=
u3_ht_cfg_access
(
hose
,
bus
->
number
,
devfn
,
offset
);
addr
=
u3_ht_cfg_access
(
hose
,
bus
->
number
,
devfn
,
offset
);
if
(
!
addr
)
if
(
!
addr
)
return
PCIBIOS_DEVICE_NOT_FOUND
;
return
PCIBIOS_DEVICE_NOT_FOUND
;
...
...
drivers/char/tty_io.c
View file @
b9386771
...
@@ -130,8 +130,6 @@ LIST_HEAD(tty_drivers); /* linked list of tty drivers */
...
@@ -130,8 +130,6 @@ LIST_HEAD(tty_drivers); /* linked list of tty drivers */
/* Semaphore to protect creating and releasing a tty. This is shared with
/* Semaphore to protect creating and releasing a tty. This is shared with
vt.c for deeply disgusting hack reasons */
vt.c for deeply disgusting hack reasons */
DECLARE_MUTEX
(
tty_sem
);
DECLARE_MUTEX
(
tty_sem
);
/* Lock for tty_termios changes - private to tty_io/tty_ioctl */
spinlock_t
tty_termios_lock
=
SPIN_LOCK_UNLOCKED
;
#ifdef CONFIG_UNIX98_PTYS
#ifdef CONFIG_UNIX98_PTYS
extern
struct
tty_driver
*
ptm_driver
;
/* Unix98 pty masters; for /dev/ptmx */
extern
struct
tty_driver
*
ptm_driver
;
/* Unix98 pty masters; for /dev/ptmx */
...
@@ -239,10 +237,9 @@ static int check_tty_count(struct tty_struct *tty, const char *routine)
...
@@ -239,10 +237,9 @@ static int check_tty_count(struct tty_struct *tty, const char *routine)
static
void
tty_set_termios_ldisc
(
struct
tty_struct
*
tty
,
int
num
)
static
void
tty_set_termios_ldisc
(
struct
tty_struct
*
tty
,
int
num
)
{
{
unsigned
long
flags
;
down
(
&
tty
->
termios_sem
);
spin_lock_irqsave
(
&
tty_termios_lock
,
flags
);
tty
->
termios
->
c_line
=
num
;
tty
->
termios
->
c_line
=
num
;
spin_unlock_irqrestore
(
&
tty_termios_lock
,
flags
);
up
(
&
tty
->
termios_sem
);
}
}
/*
/*
...
@@ -811,10 +808,9 @@ void do_tty_hangup(void *data)
...
@@ -811,10 +808,9 @@ void do_tty_hangup(void *data)
*/
*/
if
(
tty
->
driver
->
flags
&
TTY_DRIVER_RESET_TERMIOS
)
if
(
tty
->
driver
->
flags
&
TTY_DRIVER_RESET_TERMIOS
)
{
{
unsigned
long
flags
;
down
(
&
tty
->
termios_sem
);
spin_lock_irqsave
(
&
tty_termios_lock
,
flags
);
*
tty
->
termios
=
tty
->
driver
->
init_termios
;
*
tty
->
termios
=
tty
->
driver
->
init_termios
;
spin_unlock_irqrestore
(
&
tty_termios_lock
,
flags
);
up
(
&
tty
->
termios_sem
);
}
}
/* Defer ldisc switch */
/* Defer ldisc switch */
...
@@ -2606,6 +2602,7 @@ static void initialize_tty_struct(struct tty_struct *tty)
...
@@ -2606,6 +2602,7 @@ static void initialize_tty_struct(struct tty_struct *tty)
tty
->
flip
.
flag_buf_ptr
=
tty
->
flip
.
flag_buf
;
tty
->
flip
.
flag_buf_ptr
=
tty
->
flip
.
flag_buf
;
INIT_WORK
(
&
tty
->
flip
.
work
,
flush_to_ldisc
,
tty
);
INIT_WORK
(
&
tty
->
flip
.
work
,
flush_to_ldisc
,
tty
);
init_MUTEX
(
&
tty
->
flip
.
pty_sem
);
init_MUTEX
(
&
tty
->
flip
.
pty_sem
);
init_MUTEX
(
&
tty
->
termios_sem
);
init_waitqueue_head
(
&
tty
->
write_wait
);
init_waitqueue_head
(
&
tty
->
write_wait
);
init_waitqueue_head
(
&
tty
->
read_wait
);
init_waitqueue_head
(
&
tty
->
read_wait
);
INIT_WORK
(
&
tty
->
hangup_work
,
do_tty_hangup
,
tty
);
INIT_WORK
(
&
tty
->
hangup_work
,
do_tty_hangup
,
tty
);
...
...
drivers/char/tty_ioctl.c
View file @
b9386771
...
@@ -29,8 +29,6 @@
...
@@ -29,8 +29,6 @@
#undef DEBUG
#undef DEBUG
extern
spinlock_t
tty_termios_lock
;
/*
/*
* Internal flag options for termios setting behavior
* Internal flag options for termios setting behavior
*/
*/
...
@@ -101,7 +99,6 @@ static void change_termios(struct tty_struct * tty, struct termios * new_termios
...
@@ -101,7 +99,6 @@ static void change_termios(struct tty_struct * tty, struct termios * new_termios
int
canon_change
;
int
canon_change
;
struct
termios
old_termios
=
*
tty
->
termios
;
struct
termios
old_termios
=
*
tty
->
termios
;
struct
tty_ldisc
*
ld
;
struct
tty_ldisc
*
ld
;
unsigned
long
flags
;
/*
/*
* Perform the actual termios internal changes under lock.
* Perform the actual termios internal changes under lock.
...
@@ -110,7 +107,7 @@ static void change_termios(struct tty_struct * tty, struct termios * new_termios
...
@@ -110,7 +107,7 @@ static void change_termios(struct tty_struct * tty, struct termios * new_termios
/* FIXME: we need to decide on some locking/ordering semantics
/* FIXME: we need to decide on some locking/ordering semantics
for the set_termios notification eventually */
for the set_termios notification eventually */
spin_lock_irqsave
(
&
tty_termios_lock
,
flags
);
down
(
&
tty
->
termios_sem
);
*
tty
->
termios
=
*
new_termios
;
*
tty
->
termios
=
*
new_termios
;
unset_locked_termios
(
tty
->
termios
,
&
old_termios
,
tty
->
termios_locked
);
unset_locked_termios
(
tty
->
termios
,
&
old_termios
,
tty
->
termios_locked
);
...
@@ -146,13 +143,6 @@ static void change_termios(struct tty_struct * tty, struct termios * new_termios
...
@@ -146,13 +143,6 @@ static void change_termios(struct tty_struct * tty, struct termios * new_termios
}
}
}
}
/*
* Fixme! We should really try to protect the driver and ldisc
* termios usage too. But they need to be able to sleep, so
* the global termios spinlock is not the right thing.
*/
spin_unlock_irqrestore
(
&
tty_termios_lock
,
flags
);
if
(
tty
->
driver
->
set_termios
)
if
(
tty
->
driver
->
set_termios
)
(
*
tty
->
driver
->
set_termios
)(
tty
,
&
old_termios
);
(
*
tty
->
driver
->
set_termios
)(
tty
,
&
old_termios
);
...
@@ -162,6 +152,7 @@ static void change_termios(struct tty_struct * tty, struct termios * new_termios
...
@@ -162,6 +152,7 @@ static void change_termios(struct tty_struct * tty, struct termios * new_termios
(
ld
->
set_termios
)(
tty
,
&
old_termios
);
(
ld
->
set_termios
)(
tty
,
&
old_termios
);
tty_ldisc_deref
(
ld
);
tty_ldisc_deref
(
ld
);
}
}
up
(
&
tty
->
termios_sem
);
}
}
static
int
set_termios
(
struct
tty_struct
*
tty
,
void
__user
*
arg
,
int
opt
)
static
int
set_termios
(
struct
tty_struct
*
tty
,
void
__user
*
arg
,
int
opt
)
...
@@ -255,15 +246,14 @@ static int get_sgflags(struct tty_struct * tty)
...
@@ -255,15 +246,14 @@ static int get_sgflags(struct tty_struct * tty)
static
int
get_sgttyb
(
struct
tty_struct
*
tty
,
struct
sgttyb
__user
*
sgttyb
)
static
int
get_sgttyb
(
struct
tty_struct
*
tty
,
struct
sgttyb
__user
*
sgttyb
)
{
{
struct
sgttyb
tmp
;
struct
sgttyb
tmp
;
unsigned
long
flags
;
spin_lock_irqsave
(
&
tty_termios_lock
,
flags
);
down
(
&
tty
->
termios_sem
);
tmp
.
sg_ispeed
=
0
;
tmp
.
sg_ispeed
=
0
;
tmp
.
sg_ospeed
=
0
;
tmp
.
sg_ospeed
=
0
;
tmp
.
sg_erase
=
tty
->
termios
->
c_cc
[
VERASE
];
tmp
.
sg_erase
=
tty
->
termios
->
c_cc
[
VERASE
];
tmp
.
sg_kill
=
tty
->
termios
->
c_cc
[
VKILL
];
tmp
.
sg_kill
=
tty
->
termios
->
c_cc
[
VKILL
];
tmp
.
sg_flags
=
get_sgflags
(
tty
);
tmp
.
sg_flags
=
get_sgflags
(
tty
);
spin_unlock_irqrestore
(
&
tty_termios_lock
,
flags
);
up
(
&
tty
->
termios_sem
);
return
copy_to_user
(
sgttyb
,
&
tmp
,
sizeof
(
tmp
))
?
-
EFAULT
:
0
;
return
copy_to_user
(
sgttyb
,
&
tmp
,
sizeof
(
tmp
))
?
-
EFAULT
:
0
;
}
}
...
@@ -299,7 +289,6 @@ static int set_sgttyb(struct tty_struct * tty, struct sgttyb __user * sgttyb)
...
@@ -299,7 +289,6 @@ static int set_sgttyb(struct tty_struct * tty, struct sgttyb __user * sgttyb)
int
retval
;
int
retval
;
struct
sgttyb
tmp
;
struct
sgttyb
tmp
;
struct
termios
termios
;
struct
termios
termios
;
unsigned
long
flags
;
retval
=
tty_check_change
(
tty
);
retval
=
tty_check_change
(
tty
);
if
(
retval
)
if
(
retval
)
...
@@ -308,12 +297,12 @@ static int set_sgttyb(struct tty_struct * tty, struct sgttyb __user * sgttyb)
...
@@ -308,12 +297,12 @@ static int set_sgttyb(struct tty_struct * tty, struct sgttyb __user * sgttyb)
if
(
copy_from_user
(
&
tmp
,
sgttyb
,
sizeof
(
tmp
)))
if
(
copy_from_user
(
&
tmp
,
sgttyb
,
sizeof
(
tmp
)))
return
-
EFAULT
;
return
-
EFAULT
;
spin_lock_irqsave
(
&
tty_termios_lock
,
flags
);
down
(
&
tty
->
termios_sem
);
termios
=
*
tty
->
termios
;
termios
=
*
tty
->
termios
;
termios
.
c_cc
[
VERASE
]
=
tmp
.
sg_erase
;
termios
.
c_cc
[
VERASE
]
=
tmp
.
sg_erase
;
termios
.
c_cc
[
VKILL
]
=
tmp
.
sg_kill
;
termios
.
c_cc
[
VKILL
]
=
tmp
.
sg_kill
;
set_sgflags
(
&
termios
,
tmp
.
sg_flags
);
set_sgflags
(
&
termios
,
tmp
.
sg_flags
);
spin_unlock_irqrestore
(
&
tty_termios_lock
,
flags
);
up
(
&
tty
->
termios_sem
);
change_termios
(
tty
,
&
termios
);
change_termios
(
tty
,
&
termios
);
return
0
;
return
0
;
}
}
...
@@ -405,7 +394,6 @@ int n_tty_ioctl(struct tty_struct * tty, struct file * file,
...
@@ -405,7 +394,6 @@ int n_tty_ioctl(struct tty_struct * tty, struct file * file,
void
__user
*
p
=
(
void
__user
*
)
arg
;
void
__user
*
p
=
(
void
__user
*
)
arg
;
int
retval
;
int
retval
;
struct
tty_ldisc
*
ld
;
struct
tty_ldisc
*
ld
;
unsigned
long
flags
;
if
(
tty
->
driver
->
type
==
TTY_DRIVER_TYPE_PTY
&&
if
(
tty
->
driver
->
type
==
TTY_DRIVER_TYPE_PTY
&&
tty
->
driver
->
subtype
==
PTY_TYPE_MASTER
)
tty
->
driver
->
subtype
==
PTY_TYPE_MASTER
)
...
@@ -549,11 +537,11 @@ int n_tty_ioctl(struct tty_struct * tty, struct file * file,
...
@@ -549,11 +537,11 @@ int n_tty_ioctl(struct tty_struct * tty, struct file * file,
case
TIOCSSOFTCAR
:
case
TIOCSSOFTCAR
:
if
(
get_user
(
arg
,
(
unsigned
int
__user
*
)
arg
))
if
(
get_user
(
arg
,
(
unsigned
int
__user
*
)
arg
))
return
-
EFAULT
;
return
-
EFAULT
;
spin_lock_irqsave
(
&
tty_termios_lock
,
flags
);
down
(
&
tty
->
termios_sem
);
tty
->
termios
->
c_cflag
=
tty
->
termios
->
c_cflag
=
((
tty
->
termios
->
c_cflag
&
~
CLOCAL
)
|
((
tty
->
termios
->
c_cflag
&
~
CLOCAL
)
|
(
arg
?
CLOCAL
:
0
));
(
arg
?
CLOCAL
:
0
));
spin_unlock_irqrestore
(
&
tty_termios_lock
,
flags
);
up
(
&
tty
->
termios_sem
);
return
0
;
return
0
;
default:
default:
return
-
ENOIOCTLCMD
;
return
-
ENOIOCTLCMD
;
...
...
fs/locks.c
View file @
b9386771
...
@@ -1766,7 +1766,12 @@ void locks_remove_flock(struct file *filp)
...
@@ -1766,7 +1766,12 @@ void locks_remove_flock(struct file *filp)
while
((
fl
=
*
before
)
!=
NULL
)
{
while
((
fl
=
*
before
)
!=
NULL
)
{
if
(
fl
->
fl_file
==
filp
)
{
if
(
fl
->
fl_file
==
filp
)
{
if
(
IS_FLOCK
(
fl
))
{
/*
* We might have a POSIX lock that was created at the same time
* the filp was closed for the last time. Just remove that too,
* regardless of ownership, since nobody can own it.
*/
if
(
IS_FLOCK
(
fl
)
||
IS_POSIX
(
fl
))
{
locks_delete_lock
(
before
);
locks_delete_lock
(
before
);
continue
;
continue
;
}
}
...
@@ -1774,9 +1779,7 @@ void locks_remove_flock(struct file *filp)
...
@@ -1774,9 +1779,7 @@ void locks_remove_flock(struct file *filp)
lease_modify
(
before
,
F_UNLCK
);
lease_modify
(
before
,
F_UNLCK
);
continue
;
continue
;
}
}
/* FL_POSIX locks of this process have already been
/* What? */
* removed in filp_close->locks_remove_posix.
*/
BUG
();
BUG
();
}
}
before
=
&
fl
->
fl_next
;
before
=
&
fl
->
fl_next
;
...
...
fs/ntfs/ChangeLog
View file @
b9386771
...
@@ -21,7 +21,7 @@ ToDo/Notes:
...
@@ -21,7 +21,7 @@ ToDo/Notes:
- Enable the code for setting the NT4 compatibility flag when we start
- Enable the code for setting the NT4 compatibility flag when we start
making NTFS 1.2 specific modifications.
making NTFS 1.2 specific modifications.
2.1.2
0
-WIP
2.1.2
1
-WIP
- Implement extent mft record deallocation
- Implement extent mft record deallocation
fs/ntfs/mft.c::ntfs_extent_mft_record_free().
fs/ntfs/mft.c::ntfs_extent_mft_record_free().
...
@@ -44,7 +44,18 @@ ToDo/Notes:
...
@@ -44,7 +44,18 @@ ToDo/Notes:
fs/ntfs/attrib.[hc]::ntfs_attr_set() and switch
fs/ntfs/attrib.[hc]::ntfs_attr_set() and switch
fs/ntfs/logfile.c::ntfs_empty_logfile() to using it.
fs/ntfs/logfile.c::ntfs_empty_logfile() to using it.
- Remove unnecessary casts from LCN_* constants.
- Remove unnecessary casts from LCN_* constants.
- Implement fs/ntfs/runlist.c::ntfs_rl_truncate().
- Implement fs/ntfs/runlist.c::ntfs_rl_truncate_nolock().
2.1.20 - Fix two stupid bugs introduced in 2.1.18 release.
- Fix stupid bug in fs/ntfs/attrib.c::ntfs_attr_reinit_search_ctx()
where we did not clear ctx->al_entry but it was still set due to
changes in ntfs_attr_lookup() and ntfs_external_attr_find() in
particular.
- Fix another stupid bug in fs/ntfs/attrib.c::ntfs_external_attr_find()
where we forgot to unmap the extent mft record when we had finished
enumerating an attribute which caused a bug check to trigger when the
VFS calls ->clear_inode.
2.1.19 - Many cleanups, improvements, and a minor bug fix.
2.1.19 - Many cleanups, improvements, and a minor bug fix.
...
...
fs/ntfs/Makefile
View file @
b9386771
...
@@ -6,7 +6,7 @@ ntfs-objs := aops.o attrib.o collate.o compress.o debug.o dir.o file.o \
...
@@ -6,7 +6,7 @@ ntfs-objs := aops.o attrib.o collate.o compress.o debug.o dir.o file.o \
index.o inode.o mft.o mst.o namei.o runlist.o super.o sysctl.o
\
index.o inode.o mft.o mst.o namei.o runlist.o super.o sysctl.o
\
unistr.o upcase.o
unistr.o upcase.o
EXTRA_CFLAGS
=
-DNTFS_VERSION
=
\"
2.1.2
0
-WIP
\"
EXTRA_CFLAGS
=
-DNTFS_VERSION
=
\"
2.1.2
1
-WIP
\"
ifeq
($(CONFIG_NTFS_DEBUG),y)
ifeq
($(CONFIG_NTFS_DEBUG),y)
EXTRA_CFLAGS
+=
-DDEBUG
EXTRA_CFLAGS
+=
-DDEBUG
...
...
fs/ntfs/attrib.c
View file @
b9386771
...
@@ -774,11 +774,13 @@ static int ntfs_external_attr_find(const ATTR_TYPE type,
...
@@ -774,11 +774,13 @@ static int ntfs_external_attr_find(const ATTR_TYPE type,
* correctly yet as we do not know what @ctx->attr will be set to by
* correctly yet as we do not know what @ctx->attr will be set to by
* the call to ntfs_attr_find() below.
* the call to ntfs_attr_find() below.
*/
*/
if
(
ni
!=
base_ni
)
unmap_extent_mft_record
(
ni
);
ctx
->
mrec
=
ctx
->
base_mrec
;
ctx
->
mrec
=
ctx
->
base_mrec
;
ctx
->
attr
=
(
ATTR_RECORD
*
)((
u8
*
)
ctx
->
mrec
+
ctx
->
attr
=
(
ATTR_RECORD
*
)((
u8
*
)
ctx
->
mrec
+
le16_to_cpu
(
ctx
->
mrec
->
attrs_offset
));
le16_to_cpu
(
ctx
->
mrec
->
attrs_offset
));
ctx
->
is_first
=
TRUE
;
ctx
->
is_first
=
TRUE
;
ctx
->
ntfs_ino
=
ctx
->
base_ntfs_ino
;
ctx
->
ntfs_ino
=
base_ni
;
ctx
->
base_ntfs_ino
=
NULL
;
ctx
->
base_ntfs_ino
=
NULL
;
ctx
->
base_mrec
=
NULL
;
ctx
->
base_mrec
=
NULL
;
ctx
->
base_attr
=
NULL
;
ctx
->
base_attr
=
NULL
;
...
...
include/linux/tty.h
View file @
b9386771
...
@@ -244,6 +244,7 @@ struct tty_struct {
...
@@ -244,6 +244,7 @@ struct tty_struct {
struct
tty_driver
*
driver
;
struct
tty_driver
*
driver
;
int
index
;
int
index
;
struct
tty_ldisc
ldisc
;
struct
tty_ldisc
ldisc
;
struct
semaphore
termios_sem
;
struct
termios
*
termios
,
*
termios_locked
;
struct
termios
*
termios
,
*
termios_locked
;
char
name
[
64
];
char
name
[
64
];
int
pgrp
;
int
pgrp
;
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment